<?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>206132</bug_id>
          
          <creation_ts>2020-01-11 11:45:44 -0800</creation_ts>
          <short_desc>[Media in GPU process] Synchronize the properties of video layers in the GPU process with the hosting layer in the web process</short_desc>
          <delta_ts>2020-02-21 11:43:03 -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>Media</component>
          <version>Safari 13</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>206043</dependson>
    
    <dependson>207502</dependson>
          <blocked>205123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605545</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-01-11 11:45:44 -0800</bug_when>
    <thetext>A follow-up task of webkit.org/b/206043.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605548</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-11 11:49:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/58505617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618321</commentid>
    <comment_count>2</comment_count>
      <attachid>390594</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-12 17:06:55 -0800</bug_when>
    <thetext>Created attachment 390594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618335</commentid>
    <comment_count>3</comment_count>
      <attachid>390599</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-12 17:34:45 -0800</bug_when>
    <thetext>Created attachment 390599
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618342</commentid>
    <comment_count>4</comment_count>
      <attachid>390594</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-12 17:56:20 -0800</bug_when>
    <thetext>Comment on attachment 390594
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Add an interface to MediaPlayer to set the frame of a video in the inline mode.

&quot;set the frame&quot; is ambiguous when used in the context of video.

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:332
&gt; +    void setVideoInlineFrame(const FloatRect&amp;);

Is this really a frame, or just a size? Does it ever have non-zero origin? Maybe call it setSize which would be much less confusing.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:470
&gt; +    // Initially the size of the platformLayer will be 0 because we do not provide mediaPlayerContentBoxRect() in this class.

A size will be 0x0

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:473
&gt; +    // Since the renderer in the Web process will take care of the video layers configurations,

video layer&apos;s configuration

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:474
&gt; +    // the RemoteMediaPlayerProxy does not need to manage the layers by itself.

This is a rather long-winded comment. Maybe prune it down to the minimum that will help a future you remember why the code is this way.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:515
&gt; +void RemoteMediaPlayerProxy::setVideoInlineFrameFenced(const FloatRect bounds, IPC::Attachment fencePort)

const FloatRect&amp; or FloatRect but not const FloatRect

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:521
&gt; +    m_player-&gt;setVideoInlineFrame(bounds);

&quot;bounds&quot; and &quot;frame&quot; have different meanings in AppKit/UIKit. &quot;frame&quot; is in the coordinate space of the superview. &quot;bounds&quot; establishes your local coordinate system Don&apos;t mix and match them.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:112
&gt; +    void setVideoInlineFrameFenced(const WebCore::FloatRect bounds, IPC::Attachment);

Please use MachPort, not IPC::Attachment (existing code also needs to be migrated).

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in:60
&gt; +    SetVideoInlineFrameFenced(WebCore::FloatRect bounds, IPC::Attachment fencePort)

MachPort

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:2685
&gt; +		1D32F89B23A84BA600B1EA6A /* RemoteMediaResourceProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaResourceProxy.h; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 4; };
&gt; +		1D32F89D23A84C5B00B1EA6A /* RemoteMediaResourceProxy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteMediaResourceProxy.cpp; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 4; };

Why tabWidth

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:1009
&gt; +void MediaPlayerPrivateRemote::setVideoInlineFrameFenced(const FloatRect&amp; rect, mach_port_name_t fencePort)

MachPort

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:123
&gt; +    void setVideoInlineFrameFenced(const WebCore::FloatRect&amp;, mach_port_name_t);

MachPort

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:233
&gt; +    void setSize(const WebCore::IntSize&amp;) final { };

No semicolon

&gt; Source/WebKit/WebProcess/GPU/media/VideoLayerRemote.h:38
&gt; +using LayerHostingContextID = uint32_t;

Pull in LayerHostingContext.h?

&gt; Source/WebKit/WebProcess/GPU/media/VideoLayerRemote.h:40
&gt; +RetainPtr&lt;CALayer&gt; createVideoLayerRemote(MediaPlayerPrivateRemote*, LayerHostingContextID);

This is cocoa code inside ENABLE(GPU_PROCESS). I think we should assume that other platforms will want to build with ENABLE(GPU_PROCESS), so you need #if PLATFORM(COCOA) as well.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:34
&gt; +@interface WKVideoLayerRemote : CALayer

PLATFORM(COCOA)

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:36
&gt; +@property (nonatomic, retain) CALayer *videoSublayer;

Layers retain their sublayers already. Does this need to be retain?

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:37
&gt; +@property CGRect videoLayerFrame;

nonatomic?

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:100
&gt; +        [self performSelector:@selector(resolveBounds) withObject:nil afterDelay:animationDuration + 0.1];

Noooooo. Source of test flakiness for decades to come!

Also please don&apos;t use performSelector:withObject:afterDelay:. Use an explicit timer, or dispatch with a block. Then you don&apos;t need all the cancelPreviousPerformRequestsWithTarget.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:121
&gt; +            _context = nil;

Why is the context nulled out here?

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:123
&gt; +            mach_port_name_t fencePort = _fenceSendRight.leakSendRight();
&gt; +            mediaPlayerPrivateRemote-&gt;setVideoInlineFrameFenced(self.videoLayerFrame, fencePort);

MachPort cleans this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618414</commentid>
    <comment_count>5</comment_count>
      <attachid>390621</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-12 23:35:49 -0800</bug_when>
    <thetext>Created attachment 390621
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618553</commentid>
    <comment_count>6</comment_count>
      <attachid>390662</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-13 10:04:48 -0800</bug_when>
    <thetext>Created attachment 390662
WIP patch - fixing build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618633</commentid>
    <comment_count>7</comment_count>
      <attachid>390674</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-13 12:02:21 -0800</bug_when>
    <thetext>Created attachment 390674
WIP patch - fixing iOS build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618832</commentid>
    <comment_count>8</comment_count>
      <attachid>390716</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-13 18:45:00 -0800</bug_when>
    <thetext>Created attachment 390716
WIP patch - updated according to review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618866</commentid>
    <comment_count>9</comment_count>
      <attachid>390594</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-13 21:11:29 -0800</bug_when>
    <thetext>Comment on attachment 390594
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Add an interface to MediaPlayer to set the frame of a video in the inline mode.
&gt; 
&gt; &quot;set the frame&quot; is ambiguous when used in the context of video.

Right, actually what we need to set is the size of the video container layer.
Will update the comment.

&gt;&gt; Source/WebCore/platform/graphics/MediaPlayer.h:332
&gt;&gt; +    void setVideoInlineFrame(const FloatRect&amp;);
&gt; 
&gt; Is this really a frame, or just a size? Does it ever have non-zero origin? Maybe call it setSize which would be much less confusing.

Just a size. There is a setSize() function in MediaPlayer class. In the new patch, we use its implementation in MediaPlayerPrivate to set the video container layer size when the media in GPU process feature is on (video layers are hosted remotely). For the case that the media in GPU process feature is off, that function should do nothing. So we have to add a flag to the MediaPlayerPrivate class to decide which behavior should choose.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:470
&gt;&gt; +    // Initially the size of the platformLayer will be 0 because we do not provide mediaPlayerContentBoxRect() in this class.
&gt; 
&gt; A size will be 0x0

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:473
&gt;&gt; +    // Since the renderer in the Web process will take care of the video layers configurations,
&gt; 
&gt; video layer&apos;s configuration

Removed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:474
&gt;&gt; +    // the RemoteMediaPlayerProxy does not need to manage the layers by itself.
&gt; 
&gt; This is a rather long-winded comment. Maybe prune it down to the minimum that will help a future you remember why the code is this way.

Removed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:515
&gt;&gt; +void RemoteMediaPlayerProxy::setVideoInlineFrameFenced(const FloatRect bounds, IPC::Attachment fencePort)
&gt; 
&gt; const FloatRect&amp; or FloatRect but not const FloatRect

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:521
&gt;&gt; +    m_player-&gt;setVideoInlineFrame(bounds);
&gt; 
&gt; &quot;bounds&quot; and &quot;frame&quot; have different meanings in AppKit/UIKit. &quot;frame&quot; is in the coordinate space of the superview. &quot;bounds&quot; establishes your local coordinate system Don&apos;t mix and match them.

Right, fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:112
&gt;&gt; +    void setVideoInlineFrameFenced(const WebCore::FloatRect bounds, IPC::Attachment);
&gt; 
&gt; Please use MachPort, not IPC::Attachment (existing code also needs to be migrated).

Fixed. Will migrate the exiting code on the video fullscreen API in webkit.org/b/207683.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in:60
&gt;&gt; +    SetVideoInlineFrameFenced(WebCore::FloatRect bounds, IPC::Attachment fencePort)
&gt; 
&gt; MachPort

Fixed.

&gt;&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:2685
&gt;&gt; +		1D32F89D23A84C5B00B1EA6A /* RemoteMediaResourceProxy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteMediaResourceProxy.cpp; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 4; };
&gt; 
&gt; Why tabWidth

Because of some misunderstanding :-)
Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:1009
&gt;&gt; +void MediaPlayerPrivateRemote::setVideoInlineFrameFenced(const FloatRect&amp; rect, mach_port_name_t fencePort)
&gt; 
&gt; MachPort

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:123
&gt;&gt; +    void setVideoInlineFrameFenced(const WebCore::FloatRect&amp;, mach_port_name_t);
&gt; 
&gt; MachPort

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:233
&gt;&gt; +    void setSize(const WebCore::IntSize&amp;) final { };
&gt; 
&gt; No semicolon

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/VideoLayerRemote.h:38
&gt;&gt; +using LayerHostingContextID = uint32_t;
&gt; 
&gt; Pull in LayerHostingContext.h?

Right. Added the header file.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/VideoLayerRemote.h:40
&gt;&gt; +RetainPtr&lt;CALayer&gt; createVideoLayerRemote(MediaPlayerPrivateRemote*, LayerHostingContextID);
&gt; 
&gt; This is cocoa code inside ENABLE(GPU_PROCESS). I think we should assume that other platforms will want to build with ENABLE(GPU_PROCESS), so you need #if PLATFORM(COCOA) as well.

Right, fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:34
&gt;&gt; +@interface WKVideoLayerRemote : CALayer
&gt; 
&gt; PLATFORM(COCOA)

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:36
&gt;&gt; +@property (nonatomic, retain) CALayer *videoSublayer;
&gt; 
&gt; Layers retain their sublayers already. Does this need to be retain?

Not need to be retain.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:37
&gt;&gt; +@property CGRect videoLayerFrame;
&gt; 
&gt; nonatomic?

Right.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:100
&gt;&gt; +        [self performSelector:@selector(resolveBounds) withObject:nil afterDelay:animationDuration + 0.1];
&gt; 
&gt; Noooooo. Source of test flakiness for decades to come!
&gt; 
&gt; Also please don&apos;t use performSelector:withObject:afterDelay:. Use an explicit timer, or dispatch with a block. Then you don&apos;t need all the cancelPreviousPerformRequestsWithTarget.

Changed to dispatch_after().

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:121
&gt;&gt; +            _context = nil;
&gt; 
&gt; Why is the context nulled out here?

Removed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:123
&gt;&gt; +            mediaPlayerPrivateRemote-&gt;setVideoInlineFrameFenced(self.videoLayerFrame, fencePort);
&gt; 
&gt; MachPort cleans this up.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618867</commentid>
    <comment_count>10</comment_count>
      <attachid>390727</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-13 21:17:32 -0800</bug_when>
    <thetext>Created attachment 390727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619338</commentid>
    <comment_count>11</comment_count>
      <attachid>390727</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-14 18:32:12 -0800</bug_when>
    <thetext>Comment on attachment 390727
Patch

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

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:331
&gt; +    void setHostVideoLayerRemotely(bool);

setHostsVideoLayerRemotely here and everywhere.

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:326
&gt; +    bool hostVideoLayerRemotely() { return m_hostVideoLayerRemotely; }

hostsVideoLayerRemotely

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:378
&gt; +    bool m_hostVideoLayerRemotely { false };

m_hostsVideoLayerRemotely

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:520
&gt; +    deallocateSendRightSafely(machPort.port());

I think you should be using MachSendRight so you don&apos;t have to call this manually. Tim? Maybe we meant to say use MachSendRight rather than MachPort.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:109
&gt; +        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, animationDuration + 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), _pendingResolveBoundsBlock);

What is this 100ms for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619355</commentid>
    <comment_count>12</comment_count>
      <attachid>390727</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-14 20:28:34 -0800</bug_when>
    <thetext>Comment on attachment 390727
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/MediaPlayer.h:331
&gt;&gt; +    void setHostVideoLayerRemotely(bool);
&gt; 
&gt; setHostsVideoLayerRemotely here and everywhere.

OK, will fix it.

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:326
&gt;&gt; +    bool hostVideoLayerRemotely() { return m_hostVideoLayerRemotely; }
&gt; 
&gt; hostsVideoLayerRemotely

ditto.

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:378
&gt;&gt; +    bool m_hostVideoLayerRemotely { false };
&gt; 
&gt; m_hostsVideoLayerRemotely

ditto.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:520
&gt;&gt; +    deallocateSendRightSafely(machPort.port());
&gt; 
&gt; I think you should be using MachSendRight so you don&apos;t have to call this manually. Tim? Maybe we meant to say use MachSendRight rather than MachPort.

Good idea. Will update the patch to use MachSendRight.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:109
&gt;&gt; +        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, animationDuration + 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), _pendingResolveBoundsBlock);
&gt; 
&gt; What is this 100ms for?

To avoid excessive XPC messages when a user change the video element size continuously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619359</commentid>
    <comment_count>13</comment_count>
      <attachid>390854</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-14 21:42:25 -0800</bug_when>
    <thetext>Created attachment 390854
Revised patch based on review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619361</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-14 22:24:35 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; Comment on attachment 390727 [details]
&gt; Patch
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:520
&gt; &gt; +    deallocateSendRightSafely(machPort.port());
&gt; 
&gt; I think you should be using MachSendRight so you don&apos;t have to call this
&gt; manually. Tim? Maybe we meant to say use MachSendRight rather than MachPort.

Whoops, yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619494</commentid>
    <comment_count>15</comment_count>
      <attachid>390854</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-16 07:26:38 -0800</bug_when>
    <thetext>Comment on attachment 390854
Revised patch based on review comments

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

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:378
&gt; +    bool m_hostsVideoLayerRemotely { false };

WebCore shouldn&apos;t care whether things are remotely hosted. This should probably be handled via an abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620024</commentid>
    <comment_count>16</comment_count>
      <attachid>390854</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-17 18:14:51 -0800</bug_when>
    <thetext>Comment on attachment 390854
Revised patch based on review comments

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

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:378
&gt;&gt; +    bool m_hostsVideoLayerRemotely { false };
&gt; 
&gt; WebCore shouldn&apos;t care whether things are remotely hosted. This should probably be handled via an abstraction.

Agree. Your comment reminds me that maybe we can avoid this flag by modifying the RenderVideo implementation. I will upload a WIP patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620028</commentid>
    <comment_count>17</comment_count>
      <attachid>391015</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-17 18:19:13 -0800</bug_when>
    <thetext>Created attachment 391015
WIP patch: RenderVideo only calls mediaPlayer-&gt;setSize() when supportsAcceleratedRendering is false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620063</commentid>
    <comment_count>18</comment_count>
      <attachid>391028</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-17 21:15:35 -0800</bug_when>
    <thetext>Created attachment 391028
WIP patch: RenderVideo only calls mediaPlayer-&gt;setSize() when supportsAcceleratedRendering is false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620068</commentid>
    <comment_count>19</comment_count>
      <attachid>391028</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-17 22:05:47 -0800</bug_when>
    <thetext>Comment on attachment 391028
WIP patch: RenderVideo only calls mediaPlayer-&gt;setSize() when supportsAcceleratedRendering is false

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

&gt; Source/WebCore/rendering/RenderVideo.cpp:261
&gt; +    if (!mediaPlayer-&gt;supportsAcceleratedRendering()) {

Simon, what do you think about this change? I think it&apos;s correct for iOS/Mac ports, and the layout tests for other ports pass.
With this change, we do not need the hostsVideoLayerRemotely flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620320</commentid>
    <comment_count>20</comment_count>
      <attachid>391090</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 14:17:39 -0800</bug_when>
    <thetext>Created attachment 391090
A simplified patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620333</commentid>
    <comment_count>21</comment_count>
      <attachid>391094</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 14:43:55 -0800</bug_when>
    <thetext>Created attachment 391094
Rebased patch (with a simplified implementation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620338</commentid>
    <comment_count>22</comment_count>
      <attachid>391094</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-18 14:49:46 -0800</bug_when>
    <thetext>Comment on attachment 391094
Rebased patch (with a simplified implementation)

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

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:106
&gt; +        _pendingResolveBoundsBlock = dispatch_block_create((dispatch_block_flags_t)0, ^{
&gt; +            _pendingResolveBoundsBlock = nil;
&gt; +            [self resolveBounds];

This block is capturing |self|, so I think you have a retain cycle here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620378</commentid>
    <comment_count>23</comment_count>
      <attachid>391104</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 15:26:02 -0800</bug_when>
    <thetext>Created attachment 391104
Fix the retain cycle problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620399</commentid>
    <comment_count>24</comment_count>
      <attachid>391111</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 15:47:46 -0800</bug_when>
    <thetext>Created attachment 391111
Fix the retain cycle problem (with BlockPtr)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620404</commentid>
    <comment_count>25</comment_count>
      <attachid>391111</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-18 15:53:38 -0800</bug_when>
    <thetext>Comment on attachment 391111
Fix the retain cycle problem (with BlockPtr)

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

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:105
&gt; +    _pendingResolveBoundsBlock = makeBlockPtr(dispatch_block_create((dispatch_block_flags_t)0, [self] {
&gt; +        _pendingResolveBoundsBlock = nil;
&gt; +        [self resolveBounds];
&gt; +    }));

Pretty sure this is still a retain cycle. self is retained by the block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620413</commentid>
    <comment_count>26</comment_count>
      <attachid>391111</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-18 16:02:15 -0800</bug_when>
    <thetext>Comment on attachment 391111
Fix the retain cycle problem (with BlockPtr)

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

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:105
&gt;&gt; +    }));
&gt; 
&gt; Pretty sure this is still a retain cycle. self is retained by the block.

OK it doesn&apos;t, but we prefer weak ptrs so you can remove -dealloc.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:106
&gt; +    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (animationDuration + 0.1) * NSEC_PER_SEC), dispatch_get_main_queue(), _pendingResolveBoundsBlock.get());

I really want a comment that justifies this 100ms timer.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:145
&gt; +    [videoLayerRemote setName:@&quot;WKVideoLayerRemote&quot;];

Maybe just do this always.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620415</commentid>
    <comment_count>27</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-18 16:09:28 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #26)
&gt; Comment on attachment 391111 [details]
&gt; Fix the retain cycle problem (with BlockPtr)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=391111&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:105
&gt; &gt;&gt; +    }));
&gt; &gt; 
&gt; &gt; Pretty sure this is still a retain cycle. self is retained by the block.
&gt; 
&gt; OK it doesn&apos;t, but we prefer weak ptrs so you can remove -dealloc.

I suggested WeakObjCPtr&lt;&gt; but you can also just use __weak :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620445</commentid>
    <comment_count>28</comment_count>
      <attachid>391111</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 17:03:24 -0800</bug_when>
    <thetext>Comment on attachment 391111
Fix the retain cycle problem (with BlockPtr)

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

&gt;&gt;&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:105
&gt;&gt;&gt;&gt; +    }));
&gt;&gt;&gt; 
&gt;&gt;&gt; Pretty sure this is still a retain cycle. self is retained by the block.
&gt;&gt; 
&gt;&gt; OK it doesn&apos;t, but we prefer weak ptrs so you can remove -dealloc.
&gt; 
&gt; I suggested WeakObjCPtr&lt;&gt; but you can also just use __weak :D

Got it. I will use WeakObjcPtr&lt;&gt; here and remove -dealloc.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:106
&gt;&gt; +    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (animationDuration + 0.1) * NSEC_PER_SEC), dispatch_get_main_queue(), _pendingResolveBoundsBlock.get());
&gt; 
&gt; I really want a comment that justifies this 100ms timer.

Will add some comment in the new patch.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:145
&gt;&gt; +    [videoLayerRemote setName:@&quot;WKVideoLayerRemote&quot;];
&gt; 
&gt; Maybe just do this always.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620459</commentid>
    <comment_count>29</comment_count>
      <attachid>391122</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 17:24:28 -0800</bug_when>
    <thetext>Created attachment 391122
Revise the patch based on review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620461</commentid>
    <comment_count>30</comment_count>
      <attachid>391123</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 17:31:24 -0800</bug_when>
    <thetext>Created attachment 391123
Rebase the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620476</commentid>
    <comment_count>31</comment_count>
      <attachid>391129</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-18 19:36:19 -0800</bug_when>
    <thetext>Created attachment 391129
Fix a unified build failure on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620647</commentid>
    <comment_count>32</comment_count>
      <attachid>391129</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-19 07:46:51 -0800</bug_when>
    <thetext>Comment on attachment 391129
Fix a unified build failure on iOS

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

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:97
&gt; +        auto _self = weakSelf.get();

Nit - Local variables usually aren’t prefixed with _.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:101
&gt; +        _self.get()-&gt;_pendingResolveBoundsBlock = nil;

Nit - no need for the .get()

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:143
&gt; +    WKVideoLayerRemote *videoLayerRemote = [[WKVideoLayerRemote alloc] init];

`auto videoLayerRemote = adoptNS([[WKVideoLayerRemote alloc] init]);` here, otherwise it’ll leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620650</commentid>
    <comment_count>33</comment_count>
      <attachid>391129</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-19 07:54:19 -0800</bug_when>
    <thetext>Comment on attachment 391129
Fix a unified build failure on iOS

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

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:43
&gt; +    CALayer* _videoSublayer;
&gt; +    CAContext* _context;

Nit - * on the other side.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:124
&gt; +            MachSendRight _fenceSendRight = MachSendRight::adopt([_context createFencePort]);

Nit - `auto fenceSendRight = MachSendRight::adopt([_context createFencePort]);` (no underscore)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620729</commentid>
    <comment_count>34</comment_count>
      <attachid>391177</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-19 10:30:50 -0800</bug_when>
    <thetext>Created attachment 391177
Update the patch based on Wenson&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620730</commentid>
    <comment_count>35</comment_count>
      <attachid>391129</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-19 10:32:22 -0800</bug_when>
    <thetext>Comment on attachment 391129
Fix a unified build failure on iOS

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

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:43
&gt;&gt; +    CAContext* _context;
&gt; 
&gt; Nit - * on the other side.

Right, fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:97
&gt;&gt; +        auto _self = weakSelf.get();
&gt; 
&gt; Nit - Local variables usually aren’t prefixed with _.

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:101
&gt;&gt; +        _self.get()-&gt;_pendingResolveBoundsBlock = nil;
&gt; 
&gt; Nit - no need for the .get()

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:124
&gt;&gt; +            MachSendRight _fenceSendRight = MachSendRight::adopt([_context createFencePort]);
&gt; 
&gt; Nit - `auto fenceSendRight = MachSendRight::adopt([_context createFencePort]);` (no underscore)

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:143
&gt;&gt; +    WKVideoLayerRemote *videoLayerRemote = [[WKVideoLayerRemote alloc] init];
&gt; 
&gt; `auto videoLayerRemote = adoptNS([[WKVideoLayerRemote alloc] init]);` here, otherwise it’ll leak.

Got it! Fixed.
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620896</commentid>
    <comment_count>36</comment_count>
      <attachid>391177</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-19 15:16:15 -0800</bug_when>
    <thetext>Comment on attachment 391177
Update the patch based on Wenson&apos;s comments

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

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:56
&gt; +- (WebKit::MediaPlayerPrivateRemote *)mediaPlayerPrivateRemote

Nit - * on the wrong side.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:61
&gt; +- (void)setMediaPlayerPrivateRemote:(WebKit::MediaPlayerPrivateRemote *)mediaPlayerPrivateRemote

(Here too)

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:96
&gt; +    _pendingResolveBoundsBlock = makeBlockPtr(dispatch_block_create((dispatch_block_flags_t)0, [weakSelf = WeakObjCPtr&lt;WKVideoLayerRemote&gt;(self)] {

I think this would still leak, since dispatch_block_create() returns a +1 object and makeBlockPtr then `Block_copy`s it.

I think you want either just ^{} or a C++ lambda ([] {}) that will be automatically converted into an Objective-C block.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:123
&gt; +        if (auto *mediaPlayerPrivateRemote = self.mediaPlayerPrivateRemote) {

Nit - * on the wrong side.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:144
&gt; +    [videoLayerRemote setFrame:CGRectMake(0, 0, 0, 0)];

Nit - I think you can remove this line, since the frame (by default) is already NSZeroRect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620898</commentid>
    <comment_count>37</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-19 15:18:14 -0800</bug_when>
    <thetext>Otherwise, this looks reasonable to me (though I’m not familiar with media code, so one of the media folks should probably give the final r+)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621026</commentid>
    <comment_count>38</comment_count>
      <attachid>391177</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-19 19:15:33 -0800</bug_when>
    <thetext>Comment on attachment 391177
Update the patch based on Wenson&apos;s comments

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

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:56
&gt;&gt; +- (WebKit::MediaPlayerPrivateRemote *)mediaPlayerPrivateRemote
&gt; 
&gt; Nit - * on the wrong side.

Should be like below?
- (WebKit::MediaPlayerPrivateRemote*)mediaPlayerPrivateRemote

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:123
&gt;&gt; +        if (auto *mediaPlayerPrivateRemote = self.mediaPlayerPrivateRemote) {
&gt; 
&gt; Nit - * on the wrong side.

Got it, will fix it.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:144
&gt;&gt; +    [videoLayerRemote setFrame:CGRectMake(0, 0, 0, 0)];
&gt; 
&gt; Nit - I think you can remove this line, since the frame (by default) is already NSZeroRect.

Right. Will remove it.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:154
&gt; +    [videoSublayer setFrame:videoLayerRemote.get().bounds];

Can be removed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621027</commentid>
    <comment_count>39</comment_count>
      <attachid>391177</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-02-19 19:18:25 -0800</bug_when>
    <thetext>Comment on attachment 391177
Update the patch based on Wenson&apos;s comments

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

&gt;&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:56
&gt;&gt;&gt; +- (WebKit::MediaPlayerPrivateRemote *)mediaPlayerPrivateRemote
&gt;&gt; 
&gt;&gt; Nit - * on the wrong side.
&gt; 
&gt; Should be like below?
&gt; - (WebKit::MediaPlayerPrivateRemote*)mediaPlayerPrivateRemote

Yep! Since WebKit::MediaPlayerPrivateRemote is a C++ class, as opposed to an Objective-C class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621070</commentid>
    <comment_count>40</comment_count>
      <attachid>391256</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-19 21:25:55 -0800</bug_when>
    <thetext>Created attachment 391256
A timer based implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621075</commentid>
    <comment_count>41</comment_count>
      <attachid>391257</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-19 21:32:42 -0800</bug_when>
    <thetext>Created attachment 391257
A timer based implementation (with the fix for the style checking error)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621409</commentid>
    <comment_count>42</comment_count>
      <attachid>391257</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-02-20 14:01:05 -0800</bug_when>
    <thetext>Comment on attachment 391257
A timer based implementation (with the fix for the style checking error)

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

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:685
&gt; -    notImplemented();
&gt; +    // We always render to a layer, so this function is empty.

No need to land this in this patch.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:690
&gt; -    notImplemented();
&gt; +    // We always render to a layer, so this function is empty.

Ditto.

&gt; Source/WebKit/WebProcess/GPU/media/VideoLayerRemote.h:28
&gt; +#if ENABLE(GPU_PROCESS) &amp;&amp; PLATFORM(COCOA)

I don&apos;t think PLATFORM(COCOA) is needed here, if you just replace `CALayer` with `PlatformLayer`.  The call site in MediaPlayerPrivateRemote isn&apos;t guarded by a PLATFORM(COCOA) call.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:30
&gt; +#import &lt;pal/spi/cocoa/QuartzCoreSPI.h&gt;

Does this need to be in the header, or can this be moved to the implementation file?

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:38
&gt; +@property (nonatomic, assign) WebKit::MediaPlayerPrivateRemote *mediaPlayerPrivateRemote;
&gt; +@property (nonatomic, assign) CALayer *videoSublayer;

Why are these marked as &quot;assign&quot;?

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:42
&gt; +    CALayer *_videoSublayer;

RetainPtr&lt;&gt;?

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:43
&gt; +    CAContext *_context;

Ditto.

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:65
&gt; +    if (self) {
&gt; +        self.masksToBounds = YES;
&gt; +        _resolveBoundsTimer = makeUnique&lt;WebCore::Timer&gt;([weakSelf = WeakObjCPtr&lt;WKVideoLayerRemote&gt;(self)] {
&gt; +            auto localSelf = weakSelf.get();
&gt; +            if (!localSelf)
&gt; +                return;
&gt; +
&gt; +            [localSelf resolveBounds];
&gt; +        });
&gt; +        _shouldRestartWhenTimerFires = false;
&gt; +    }
&gt; +
&gt; +    return self;

I&apos;d do an early return here:

```
if (!self)
    return nil;
````

If you want to be super fancy, you could do:

```
if (!(self = [super init]))
    return nil;
```

&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:107
&gt; +    _delay = Seconds(animationDuration + 0.1);

This (0.1) should be declared at the top of the file as `static const Seconds PostAnimationDelay { 100_ms }`, rather than just a magic number here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621481</commentid>
    <comment_count>43</comment_count>
      <attachid>391356</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-20 16:28:38 -0800</bug_when>
    <thetext>Created attachment 391356
Revise the patch according to Jer&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621482</commentid>
    <comment_count>44</comment_count>
      <attachid>391257</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-20 16:32:09 -0800</bug_when>
    <thetext>Comment on attachment 391257
A timer based implementation (with the fix for the style checking error)

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

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:685
&gt;&gt; +    // We always render to a layer, so this function is empty.
&gt; 
&gt; No need to land this in this patch.

Removed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:690
&gt;&gt; +    // We always render to a layer, so this function is empty.
&gt; 
&gt; Ditto.

Removed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/VideoLayerRemote.h:28
&gt;&gt; +#if ENABLE(GPU_PROCESS) &amp;&amp; PLATFORM(COCOA)
&gt; 
&gt; I don&apos;t think PLATFORM(COCOA) is needed here, if you just replace `CALayer` with `PlatformLayer`.  The call site in MediaPlayerPrivateRemote isn&apos;t guarded by a PLATFORM(COCOA) call.

Right. Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:30
&gt;&gt; +#import &lt;pal/spi/cocoa/QuartzCoreSPI.h&gt;
&gt; 
&gt; Does this need to be in the header, or can this be moved to the implementation file?

Moved to the implementation file.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:38
&gt;&gt; +@property (nonatomic, assign) CALayer *videoSublayer;
&gt; 
&gt; Why are these marked as &quot;assign&quot;?

We do not need to keep a pointer to the videoSublayer because it will be the first sublayer of WKVideoLayerRemote. So it is removed in the revised patch.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:42
&gt;&gt; +    CALayer *_videoSublayer;
&gt; 
&gt; RetainPtr&lt;&gt;?

Removed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:43
&gt;&gt; +    CAContext *_context;
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:65
&gt;&gt; +    return self;
&gt; 
&gt; I&apos;d do an early return here:
&gt; 
&gt; ```
&gt; if (!self)
&gt;     return nil;
&gt; ````
&gt; 
&gt; If you want to be super fancy, you could do:
&gt; 
&gt; ```
&gt; if (!(self = [super init]))
&gt;     return nil;
&gt; ```

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:107
&gt;&gt; +    _delay = Seconds(animationDuration + 0.1);
&gt; 
&gt; This (0.1) should be declared at the top of the file as `static const Seconds PostAnimationDelay { 100_ms }`, rather than just a magic number here.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621573</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-20 22:57:12 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 391356:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621574</commentid>
    <comment_count>46</comment_count>
      <attachid>391356</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-20 22:57:52 -0800</bug_when>
    <thetext>Comment on attachment 391356
Revise the patch according to Jer&apos;s comments

Clearing flags on attachment: 391356

Committed r257127: &lt;https://trac.webkit.org/changeset/257127&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621575</commentid>
    <comment_count>47</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-20 22:57:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621695</commentid>
    <comment_count>48</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-21 10:24:21 -0800</bug_when>
    <thetext>Reopen this bug to fix a unified build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621701</commentid>
    <comment_count>49</comment_count>
      <attachid>391408</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-21 10:32:08 -0800</bug_when>
    <thetext>Created attachment 391408
A follow-up patch to fix Catalyst/watchOS/tvOS build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621730</commentid>
    <comment_count>50</comment_count>
      <attachid>391408</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-21 11:43:01 -0800</bug_when>
    <thetext>Comment on attachment 391408
A follow-up patch to fix Catalyst/watchOS/tvOS build failures

Clearing flags on attachment: 391408

Committed r257153: &lt;https://trac.webkit.org/changeset/257153&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621731</commentid>
    <comment_count>51</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-02-21 11:43:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390594</attachid>
            <date>2020-02-12 17:06:55 -0800</date>
            <delta_ts>2020-02-12 17:56:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206132-20200212170655.patch</filename>
            <type>text/plain</type>
            <size>64500</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI1OWQwMmVhOGFmYTg2
MjkyYjU0NmI5YjUxZGExMjAxMThkZTgyYi4uMmViMDM4Yzg1NjVjZTUwYTcwZGNlODFhOTEzOTVj
N2VhM2ExMzU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTEyICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW50ZXJm
YWNlIHRvIE1lZGlhUGxheWVyIHRvIHNldCB0aGUgZnJhbWUgb2YgYSB2aWRlbyBpbiB0aGUgaW5s
aW5lIG1vZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9JbmxpbmVGcmFtZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9M
YXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0lubGluZUZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbToKKyAgICAgICAgKCtbQ0FM
YXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpdKToKKwogMjAyMC0wMi0xMiAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNocmluayBDYWNoZWRS
ZXNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA5OGFiYzQzZTQ3Y2VkODMyMTVkNDBmYjc0ZGU4MzI5MzIxZDE0
NjczLi40YTNkNDA4OGNhZTljMjE3NjdkYWM5YWYzNjBkNjUyZTMxMDdlYzMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEyICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJv
cGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3Rp
bmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgY3JlYXRlcyBXS1Zp
ZGVvTGF5ZXJSZW1vdGUgd2hvc2Ugc3VibGF5ZXIgaXMgY3JlYXRlZCBieSBMYXllckhvc3RpbmdD
b250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQoKS4KKyAgICAgICAg
VGhlIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIGJlIHVzZWQgYnkgdGhlIHJlbmRlcmVyIHRvIG1h
bmFnZSB0aGUgdmlkZW8gZWxlbWVudCBpbiB0aGUgV2ViIHByb2Nlc3MuIFdoZW4gaXRzIHNpZGUg
aXMgY2hhbmdlZCBieSB0aGUgcmVuZGVyZXIsCisgICAgICAgIGl0IGFwcGxpZXMgYSB0cmFuc2Zv
cm0gd2l0aG91dCBjaGFuZ2luZyBpdHMgYWN0dWFsIHNpemUsIGFuZCBzZW5kcyBhIG1lc3NhZ2Ug
dG8gdGhlIHZpZGVvIGxheWVyIG1hbmFnZXIgaW4gdGhlIEdQVSBwcm9jZXNzCisgICAgICAgIHRv
IGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyIGxheWVyICh2aWRlb0lubGluZUxheWVy
KS4gQWZ0ZXIgdGhhdCBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBzZXQgaXRzIHNpemUgdG8gdGhl
IGNvcnJlY3Qgb25lLgorICAgICAgICBXZSBuZWVkIHRvIHVzZSBhIEZlbmNlUG9ydCB0byBzeW5j
aHJvbml6ZSB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBXZWIgcHJvY2VzcyBhbmQgdGhlIEdQVSBw
cm9jZXNzLgorCisgICAgICAgIFdlIGhhdmUgdG8gdXNlIHN1Y2ggYSBwcm9jZXNzIHRvIGNoYW5n
ZSB0aGUgYXBwZWFyYW5jZSBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUgaW4gb3JkZXIgdG8gZ3VhcmFu
dGVlIHRoZSBzbW9vdGhuZXNzIHdoZW4gYSB1c2VyCisgICAgICAgIGNoYW5nZSB0aGUgc2l6ZSBv
ZiBhIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lRnJhbWVGZW5j
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckNvbnRlbnRCb3hSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOiBB
ZGRlZC4KKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToKKyAgICAgICAgKC1b
V0tWaWRlb0xheWVyUmVtb3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJS
ZW1vdGUgc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAgICAoLVtXS1ZpZGVv
TGF5ZXJSZW1vdGUgdmlkZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1v
dGUgc2V0VmlkZW9TdWJsYXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGxh
eW91dFN1YmxheWVyc10pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgcmVzb2x2ZUJv
dW5kc10pOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVtb3RlKToKKwogMjAy
MC0wMi0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgQ1NTX0RFVklDRV9BREFQVEFUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjI0Y2EzNTRkNmM5NzQ0ZDkxOGM2
NWRmYTFhN2Q0NmMyNDA3YmQyMC4uOGU2YTNkYWFhMzM3MjUxNWVlMjk2N2ExMjA4OTU4YzJmYWVh
NTM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTMxLDYgKzEzMSw3IEBACiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAv
KiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAq
LzsgfTsKIAkJMDc1NEE1RUEyMTVFQTNCODAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzU3QjEz
RTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRl
b1ByZXNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTA3NUJBODQ5MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1QkE4NDcyMDYxOEFB
NTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi87IH07CiAJCTA3NjM4QTk5MTg4NDQ4
NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyog
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc2MzhBOTgxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
bW0gKi87IH07CiAJCTA3Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0
MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLzsgfTsKQEAgLTE1ODUsNiAr
MTU4Niw3IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1
N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0
NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUEx
QTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1
Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUy
Q0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDY5LDYgKzU0NzEsNyBAQAogCQkw
NzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1NEE1RUIyMTVFQURGMzAwMkQz
QTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVv
UHJlc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAv
KiBWaWRlb0xheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0xheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5
NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDUxLDYgKzg0NTQsOCBAQAogCQk1MkIwRDRCRjFDNTdG
RDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8q
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE1MUM1
NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNjFDNTc0ODg5MDBE
RTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MTIzLDcgKzI1MTI4LDcg
QEAKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAogCQkJ
CTBGNUE1N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBG
MUEwQzM2MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKLQkJCQkxRDM5MkYy
QjIzRjIwOUQ4MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKKwkJCQkwNzVCQTg0
NzIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKIAkJCQlCRUYyOUVF
QTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKIAkJCQkxNDExRENC
MDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oICovLAogCQkJCTkzOUIwMkVDMEVBMkRC
QzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLywKQEAgLTI2NzI5LDggKzI2NzM0LDgg
QEAKIAkJCQk3QTI5RjU3MTE4QzY5NTE0MDA0RDBGODEgLyogT3V0T2ZCYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRi5oICovLAogCQkJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNEQzhCNUE4MTgwNDdGRjEwMDE2RTY4NSAvKiBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLywKLQkJCQkxRDM5MkYyQTIzRjIwOUI1MDBF
MDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCi0JCQkJMUQzOTJGMjgyM0YyMDlC
NDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKKwkJCQk1MkQ1QTE4RTFD
NTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCisJCQkJNTJENUEx
OEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKIAkJCQlD
RDMzNkY2NTE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCAq
LywKIAkJCQlDRDMzNkY2NjE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZP
YmpDLmggKi8sCiAJCQkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCkBAIC0zMjgyNyw2ICszMjgzMiw3IEBACiAJCQkJ
NTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTA3NUJBODQ5MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tR
dWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyog
VmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2
NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDI1NCw3ICsz
NDI2MCw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcxOTFFRjQxNzAw
N0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUQzOTJGMkQyM0YyMEE3MDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUyRDVBMThGMUM1
NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk0MUNENkY4QzIzRDZFODIxMDBCMTY0MjEgLyogVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4
IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNhNzFlN2UwYjU4NmM3
YjU1YjExMjczMmJhZDU5YjAxZDhhNDE4MWIuLmI0OWRhNDI2NzRiZTQ2OGM2OWQzOGNjYzRhYWU1
NmY0MjRjZTE4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKQEAgLTExMCw5ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVz
ZSgpIGZpbmFsIHsgfQogCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KLQogICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZsb2F0U2l6ZSgpOyB9Ci0KICAgICBib29sIGhhc1ZpZGVv
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc0F1ZGlvKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtOTE3LDYgKzkxNSwxMyBAQCBib29sIE1l
ZGlhUGxheWVyOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKQogICAgIHJldHVybiBtX3ByaXZhdGUtPmRp
ZExvYWRpbmdQcm9ncmVzcygpOwogfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQordm9pZCBN
ZWRpYVBsYXllcjo6c2V0VmlkZW9JbmxpbmVGcmFtZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lKQor
eworICAgIG1fcHJpdmF0ZS0+c2V0VmlkZW9JbmxpbmVGcmFtZShmcmFtZSk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYVBsYXllcjo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogeyAKICAg
ICBtX3NpemUgPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKaW5kZXggN2U2Y2I4YTM5MGRmN2ZlMWE3YWFlMDE3MzlkYzk0OGY3NzY2MjFl
ZS4uMWE5MDAzZTVlNTA3Mjg0NjEzNGFmMWM2ZDk0NjI3YzVlMTA4MjdmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zMjgsNiArMzI4
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNB
dWRpbygpIGNvbnN0OwogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZvaWQgc2V0Vmlk
ZW9JbmxpbmVGcmFtZShjb25zdCBGbG9hdFJlY3QmKTsKKyNlbmRpZgorCiAgICAgSW50U2l6ZSBz
aXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IElu
dFNpemUmIHNpemUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDlmN2Y2ZTZiMDJkM2JlYmUwOTBlYmNjMzJh
NGIwZGNhMWNjMTc1YTguLjFlMTc5OTQ0NDAxZGE4YTRmZTE5N2NkN2I3MGY1NGExNjI2MWNmYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCkBAIC0xNTQsNiArMTU0LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSB7IH0KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9JbmxpbmVGcmFtZShjb25zdCBGbG9hdFJlY3Qm
KSB7IH07CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjLCBjb25zdCBGbG9hdFJlY3QmIHIpIHsg
cGFpbnQoYywgcik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBhZjZjODA0ZjZjZjhlNjA4
ZDg3ZDgzOWZkODA2ZjA4OTAzZDIzZmI2Li4zNmMyYTg2MjQ5MDYyY2M5NTY1MWEzOTFjNzRmYWVl
ODkzNTg5YTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNzQsNiArMTc0LDkgQEAgcHJp
dmF0ZToKICAgICBib29sIHBsYXRmb3JtUGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRWb2x1bWUoZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCkgb3Zl
cnJpZGU7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVG
cmFtZShjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyNlbmRpZgogICAgIHZvaWQgcGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
KSBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwZGMyZTc3MmFlOWRlOTMyMzVkZDBj
YzVjOTg5NzhkNzgyNmQzNmU3Li42OWU3ODcxYjQxNDAyOGFmN2RkYjU2ZmM0YWE0YzkwNjI2N2Q0
YmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTE1MjIsNiArMTUyMiwxMyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udAogICAgIG1fdmlkZW9GcmFtZUhhc0RyYXduID0gdHJ1ZTsKIH0K
IAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0VmlkZW9JbmxpbmVGcmFtZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lKQor
eworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvSW5saW5lRnJhbWUoZnJhbWUpOwor
fQorI2VuZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAg
ICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRl
eCBjY2I4NzU2NDMzYWQzZDRjNmIwYTFjMzE2MzZhNjI5MWFkMTA0NTZlLi5jMmYwZTAxZmIxZGU4
ZGNmYzZiZDFiODM2NTc2ZjJiM2RkMDZlMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAg
RmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92
aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQogCiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3Jt
TGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50U2l6ZSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0lu
bGluZUZyYW1lKEZsb2F0UmVjdCk7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5J
bmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCmluZGV4IDU3MTBjNmEzY2EwZjRhNDZkNGMzN2MwOWRm
YWVmNWMwNWQ0OWJlMjguLmMzMDViN2Y5YWEyOTIxNjUwODY0ODYyOTk2ODNjMmY4ODE5MWJiZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0K
QEAgLTczLDYgKzczLDIwIEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xh
eWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29uCiAgICAgfQogfQogCit2
b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9JbmxpbmVGcmFtZShGbG9hdFJlY3Qg
dmlkZW9JbmxpbmVGcmFtZSkKK3sKKyAgICBpZiAoIW1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV92aWRlb0lubGluZUZyYW1lID0gdmlkZW9JbmxpbmVGcmFtZTsK
KyAgICAvLyBXZSBkbyBub3Qgd2FudCBhbmltYXRpb25zIGhlcmUKKyAgICBbQ0FUcmFuc2FjdGlv
biBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAg
ICBbbV92aWRlb0lubGluZUxheWVyIHNldEZyYW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07CisgICAg
W0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Cit9CisK
IHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJ
bWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKIHsKICAgICBpZiAobV92aWRlb0lubGluZUxheWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2Y2ZmMjgzNjVjZjZj
OGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAyNzQ0OWZiZDhmOTI2MzZjMzU0NTQ2OWRjYWQ0Mzk0MjFi
YzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtODIsNyArODIsNyBAQAogewog
ICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FMYXllckhvc3QgbGF5ZXJdOwogI2lmbmRl
ZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJXZWJWaWRlb0hvc3RpbmdMYXllciJd
OworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIkhvc3RpbmcgbGF5ZXIiXTsKICNlbmRpZgogICAg
IGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7CiAgICAgcmV0dXJuIGxheWVySG9zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3MmM2MjcxYzFiYzg5YWUyYjdmMzI3ZWMy
ZWEyY2JhLi42YzM5NjNjZTdlNGRlZDVkN2JjOWVlM2VkYzU0Mjc0YjA5YmUxNDk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwCkBAIC0xMDYsMTMgKzEwNiwxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OmxvYWQoVVJMJiYgdXJsLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
JgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCi12
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlv
dXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNr
KGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJl
bG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9h
dCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXll
ckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAg
bV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZl
c1BpdGNoKHByZXNlcnZlc1BpdGNoKTsKICAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmlu
ZygpOwotICAgIG1fdmlkZW9Db250ZW50Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRl
b0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nl
c3MoKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRl
eHRJRCgpKTsKQEAgLTQ2OCw2ICs0NjcsMTEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICAvLyBJbml0
aWFsbHkgdGhlIHNpemUgb2YgdGhlIHBsYXRmb3JtTGF5ZXIgd2lsbCBiZSAwIGJlY2F1c2Ugd2Ug
ZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGluIHRoaXMgY2xhc3Mu
CisgICAgLy8gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWVkaWFQbGF5ZXJDb250ZW50
Qm94UmVjdCgpIHdpbGwgcmV0dXJuIGFuIGVtcHR5IHJlY3RhbmdsZSwKKyAgICAvLyB3aGljaCB3
aWxsIGJlIHVzZWQgYnkgVmlkZW9MYXllck1hbmFnZXIgdG8gY3JlYXRlIHRoZSBpbmxpbmUgdmlk
ZW8gY29udGFpbmVyIGxheWVyIGFuZCB0aGUgdmlkZW8gY29udGVudCBsYXllci4KKyAgICAvLyBT
aW5jZSB0aGUgcmVuZGVyZXIgaW4gdGhlIFdlYiBwcm9jZXNzIHdpbGwgdGFrZSBjYXJlIG9mIHRo
ZSB2aWRlbyBsYXllcnMgY29uZmlndXJhdGlvbnMsCisgICAgLy8gdGhlIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkgZG9lcyBub3QgbmVlZCB0byBtYW5hZ2UgdGhlIGxheWVycyBieSBpdHNlbGYuCiAg
ICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobV9wbGF5ZXItPnBsYXRmb3Jt
TGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKSwgbV9pZCk7
CiB9CkBAIC01MDgsNiArNTEyLDE2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVk
aWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpCiB9CiAjZW5kaWYKIAordm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IEZsb2F0UmVj
dCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCit7CisgICAgaWYgKGZlbmNlUG9y
dC5kaXNwb3NpdGlvbigpICE9IE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldEZlbmNlUG9ydChmZW5jZVBvcnQu
cG9ydCgpKTsKKyAgICBtX3BsYXllci0+c2V0VmlkZW9JbmxpbmVGcmFtZShib3VuZHMpOworICAg
IGRlYWxsb2NhdGVTZW5kUmlnaHRTYWZlbHkoZmVuY2VQb3J0LnBvcnQoKSk7Cit9CisKICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJv
b2wgaXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcykKIHsKQEAgLTU0NiwxMSArNTYwLDYg
QEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBl
cm1pdHRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1MYXlvdXRSZWN0IFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3ZpZGVvQ29udGVudEJveFJlY3Q7Ci19Ci0KIGZsb2F0IFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fdmlkZW9Db250ZW50U2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBiMjI2MzBmZGFkYmY0
NzNmN2RiYTk3YTMzZmJmMmM1M2RiYjEwNzg5Li4yOTg0YjI0MWQ5MjBhNWMyMjY2ZGM1ZmQyMzc2
ZGIwYjUxYjVjMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlv
biYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9v
bCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0Nv
bnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdD
b250ZXh0SUQ+JiYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZl
c1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4m
Jik+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBsb2Fk
KFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNv
cmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzEwOSw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9k
ZSk7CiAKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lRnJhbWVGZW5jZWQoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50KTsKKwogI2lmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wp
OwpAQCAtMTc4LDcgKzE4MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVs
bHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5Q
ZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNv
bnN0IGZpbmFsOwotICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94
UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZv
aWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDhmODYxNWE0ZjVmYzQyZGNkOTVlZjY1NDQ2MTRjZjE5YWEzYWQ3YzIuLjE4Y2Ey
MWI1YTAzYWI4ZmM5ZWI5Njg0YTI4YjgzNGZjOWUwY2MxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewot
ICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1Bp
dGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0
UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVy
SG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9u
YWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkg
QXN5bmMKIAogICAgIExvYWQoVVJMIHVybCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+IHNhbmRib3hFeHRlbnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRl
bnRUeXBlLCBTdHJpbmcga2V5U3lzdGVtKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2Vs
TG9hZCgpCkBAIC01Nyw2ICs1Nyw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkgTm90UmVmQ291bnRlZCB7CiAgICAgVmlkZW9UcmFja1NldFNlbGVjdGVkKFdlYktpdDo6VHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIGVuYWJsZWQpCiAgICAgVGV4
dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJ
RCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUgbW9k
ZSkKIAorICAgIFNldFZpZGVvSW5saW5lRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJv
dW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkKKwogICAgICMgUGFpbnQKICAgICAjIFBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzgzLDYgQEAgbWVzc2FnZXMgLT4g
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0aW9u
V2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQotCiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCAyMzdiZGU0ODc1YTczMGU2Mjhk
NTJiOGQ0NzY0NzRlMWU4YzIyYTNkLi5kZWY3ODkyMzUxNjM0ZDk4M2UwZDE1YmQ1OTNmZTVhMjky
MThkMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHByaXZh
dGU6CiAgICAgdWludDY0X3QgbV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgaW50PiBtX2NsaWVudENvdW50czsKIH07Ci0gICAgCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0ODg1YjQ2
MzJkZTljODhjZjAyNjVkNWVlZjlhYjA3NTRiZjU1ODcuLjIyYTU1MjE0ZmRlY2I0OTdiMzU2Y2Nl
OTY3MmJmZTc1YTQ5Njk0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNDE3LDYgKzQxNyw4IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkx
RDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyog
U2hhcmVTaGVldENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJh
Y2tJRC5oICovOyB9OworCQkxREFGNUE1NzIzRUNDMDBFMDBCN0I1MTggLyogVmlkZW9MYXllclJl
bW90ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMURBRjVBNTUyM0VDQzAwRTAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAq
LzsgfTsKKwkJMURBRjVBNTgyM0VDQzU2NzAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUY1QTUyMjNF
Q0E1OEIwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi87IH07CiAJCTFEQjAxOTQzMjEx
Q0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJl
U2hlZXQuaCAqLzsgfTsKIAkJMURCMDE5NDQyMTFDRjAwNTAwOUZCM0U4IC8qIFdLU2hhcmVTaGVl
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkJC
MDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi87IH07CiAJCTFGMzM1QkMw
MTg1Qjg0RjAwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzM1QkJGMTg1Qjg0
RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjA2NywxNiArMjA2OSwx
NiBAQAogCQkwMEI5NjYxNTE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTAwQjk2NjE3MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmluZENsaWVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTgxOEUyNUFFMTAwQ0UxRjg4
IC8qIEZpbmRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmluZENs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzAxNzg5QjIzQkFFMjYxMDA1
RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTA3MDE3ODlDMjNCQUUyNjIwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTc3MjNDOTNC
QjcwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
NzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzAxNzg5QjIzQkFFMjYxMDA1RjBGQUEgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gNDsgfTsKKwkJMDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBl
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA0OyB9OworCQkwNzFC
QzU3NzIzQzkzQkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA0OyB9OworCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyogQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJ
CTA3MUJDNTdCMjNDQTUzMjQwMDY4MEQ3QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcxQkM1N0QyM0NBNTZEMjAwNjgwRDdDIC8q
IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzFC
QzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3MUJDNTdGMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNr
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBE
N0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA0OyB9OworCQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07
CiAJCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcxQkM1ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZp
ZGVvVHJhY2tQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcxQkM1OEIyM0NERkU3NTAwNjgwRDdDIC8q
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDAs
MjQgKzIxMDIsMjQgQEAKIAkJMDc0RTc2MDExREY3MDc1RDAwRDMxOEVDIC8qIE1lZGlhRGV2aWNl
U2FuZGJveEV4dGVuc2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzZFODg0RDFBMTNDQURGMDA1RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJQ29udGV4dE1lbnVDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RTg4NEYxQTEzQ0JDNjAwNUU5MEZDIC8qIEFQ
SUluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSUluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5
MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzkyMzEzMzIzOUIzQjBDMDA5NTk4
RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CisJCTA3
OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA0OyB9OworCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4
RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7
IH07CisJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CisJCTA3OTIzMTM0MjM5
QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gNDsgfTsKIAkJMDc5MjMxNDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTQzMjM5Q0JDQjYwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDQy
MzlDQkNCNjAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5
MjMxNDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDYyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzE0NzIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMDc5MjMxNEUyMzlENUY1MzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzkyMzE0
RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKIAkJMDdBNUVCQjkxQzdCQTQz
RTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3QjNC
NDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKKwkJMDdCM0I0NkYyM0FC
MkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDQ7IH07CiAJCTA3QjNCNDc1MjNBRDg5MDQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXll
clByb3h5Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0I5M0ZG
NTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVy
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07
CiAJCTA3QkFGMzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDdCQUYzNTcyM0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTE5RUY4MjNENDAxRjAwMDk0RkZC
NCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NzksOCAr
MjY4MSw4IEBACiAJCTFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDMyRjg5
ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFE
MzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODlC
MjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gNDsgfTsKKwkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291
cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJ
CTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDNBQjA0RTIz
QUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI2OTAsNiArMjY5Miw5IEBACiAJCTFENjdCMzM4MjEyRTFGNjEwMEZB
QTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURBNDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBRjVB
NTIyM0VDQTU4QjAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9MYXllclJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7
IH07CisJCTFEQUY1QTU0MjNFQ0MwMEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKKwkJMURBRjVBNTUyM0VDQzAwRTAwQjdCNTE4IC8q
IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA0OyB9
OwogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFy
ZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hhcmVTaGVldC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUyREZBQzIzQTk1OUY4MDAzRTAxM0Eg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUyNDYsNiArNTI1MSw3IEBACiAJCTA3OTIzMTJGMjM5QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNEQy
M0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3
QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JC
NzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEy
MzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC01
MjYzLDYgKzUyNjksNyBAQAogCQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlUHJveHkuaCAqLywKIAkJCQkwN0UxOUYwODIzRDUzM0I5MDA5NEZGQjQgLyog
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDdFMTlGMDkyM0Q1MzNCQTAwOTRG
RkI0IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKKwkJCQkxREFGNUE1MjIzRUNBNThC
MDBCN0I1MTggLyogVmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUw
MDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIy
M0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkpOwpA
QCAtNjEzOSw2ICs2MTQ2LDE1IEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2Nv
YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVB
NTQyM0VDQzAwRTAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovLAorCQkJCTFE
QUY1QTU1MjNFQ0MwMEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8sCisJ
CQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJMUYwMTgxNjgxODU4REMxNTAwRjkyODg0IC8qIENvY29hICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTY5OTcsOCArNzAxMyw4IEBACiAJCQkJMUE0MjJG
OEExOEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovLAogCQkJ
CTUxRDEyNDg0MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5oICovLAogCQkJ
CTUxRDEyNDg1MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLywKLQkJ
CQlERjQ2MkUwRTIzRjIyRjUzMDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmgg
Ki8sCiAJCQkJNTFEMTI0ODYxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlSW50
ZXJuYWwuaCAqLywKKwkJCQlERjQ2MkUwRTIzRjIyRjUzMDBFRkYzNUYgLyogV0tIVFRQQ29va2ll
U3RvcmVQcml2YXRlLmggKi8sCiAJCQkJMUFCNDBFRTMxQkY2NzdFMzAwQkE4MUJFIC8qIFdLTWVu
dUl0ZW1JZGVudGlmaWVycy5tbSAqLywKIAkJCQkxQUI0MEVFNDFCRjY3N0UzMDBCQTgxQkUgLyog
V0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oICovLAogCQkJCTFBNUIxQzRGMTg5ODYwNkYw
MDRGQ0Y5QiAvKiBXS05hdmlnYXRpb24uaCAqLywKQEAgLTEwMjU0LDcgKzEwMjcwLDYgQEAKIAkJ
CQkyRDU4NzVCRjIxOUI1MzE1MDA3MEI5QUEgLyogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFu
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0
b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8q
IFdLQ29udGVudFdvcmxkUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQTgxMEY0
MzdEMTAwNThDMTVBIC8qIEVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQjE1QTg1MTM4
NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFBNTc1RkIxNDk2QjUyNjAwQTRFRTA2IC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMDYwNyw2ICsxMDYyMiw3IEBACiAJCQkJMDc0RTc1RkUxREYyMjExOTAwRDMx
OEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4
NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTJENUExQjAxQzU3NDk1QTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBRjVBNTgyM0VDQzU2NzAwQjdCNTE4IC8qIFZpZGVv
TGF5ZXJSZW1vdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTND
QiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1RDVF
MTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkQ4MTlCQTIxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2Vv
bWV0cnlDb2xsZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDcyMSw3ICsxMDcz
Nyw2IEBACiAJCQkJRkVFNDNGRDMxRTY3QjAxODAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVy
cnVwdERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFREJEQ0Q3MUU2OEQyMDUwMEE1
OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDOEUyQTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJREY0NjJFMEYyM0YyMkY1NTAwRUZGMzVGIC8qIFdL
SFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTI4MzQxMjc1
RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
Q0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUM4OTFENjYxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3Rv
clVJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwOTM0LDYgKzEwOTQ5LDcgQEAKIAkJCQkwRjA0MTU5
RTIzQzdDQzczMDA2MEEzRTIgLyogV0tDb250ZW50Vmlld01hYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTExMDY1RkMyM0VDOTU3MjAwNTQ0M0Q2IC8qIFdLQ29udGVudFdvcmxkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTEwNjVGRDIzRUM5NTdCMDA1NDQzRDYgLyogV0tDb250ZW50V29ybGRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8qIFdL
Q29udGVudFdvcmxkUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCOUUyNEIxMTIwRTE1
QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFNTJGOTgxOTIw
MjY3MjAwQTFGQTM3IC8qIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBNDQ1QkE1MTg0RDVGREEwMDRCMzQxNCAvKiBXS0NvbnRleHRDb25uZWN0aW9uQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTExMDE3LDYgKzExMDMzLDcgQEAKIAkJCQkxQTQyMkY4
QjE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUQxMjQ5OTFFNzYzQzAxMDAyQjI4MjAgLyogV0tIVFRQQ29v
a2llU3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCURGNDYyRTBGMjNGMjJGNTUwMEVGRjM1RiAv
KiBXS0hUVFBDb29raWVTdG9yZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNjZBNEI1
MjMyMDk2MjQwMEVBNEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTIzQ0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VD
Ry5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjM4NCw2ICsxMjQwMSw3IEBACiAJCQkJQ0Q0OTFCMTcx
RTczNTI1NTAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8q
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxREFGNUE1NzIzRUND
MDBFMDBCN0I1MTggLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDgxOUJBMTE4NjI4MDBFMDAxRjAz
RDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyNjg0MDU1MjE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURp
c3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKaW5kZXggOWRjMGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRj
NTI3OS4uM2RiZjM1M2M1MTY1NzMzZmZkZjMzZTE2NDU2MjY2MjdiODI5NjM2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgiCisjaW5jbHVkZSAiVmlkZW9M
YXllclJlbW90ZS5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpA
QCAtOTAsMTcgKzkxLDE2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJl
Rm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKQogewotICAgIGF1dG8gbGF5b3V0
UmVjdCA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50Qm94UmVjdCgpOwogICAgIGF1dG8gc2NhbGUg
PSBtX3BsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFy
ZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFy
ZSwgbGF5b3V0UmVjdCwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRo
aXNdKGF1dG8gY29udGV4dElkKSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxh
eWJhY2socHJpdmF0ZU1vZGUsIHByZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2Fs
ZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGlmICghY29udGV4dElkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IG1fdmlkZW9MYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJG
b3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQudmFsdWUoKSk7CisgICAgICAgIG1fdmlkZW9Jbmxp
bmVMYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUodGhpcywgY29udGV4dElkLnZhbHVlKCkp
OwogICAgIH0sIG1faWQpOwogfQogCkBAIC0zMDUsNiArMzA1LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSgpCiB7CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAgICAgbV9wbGF5ZXItPmZp
cnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwogfQogCkBAIC01NDcsNyArNTQ4LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikKIAogUGxh
dGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgpOworICAgIHJldHVybiBtX3ZpZGVv
SW5saW5lTGF5ZXIuZ2V0KCk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpAQCAtNjczLDEy
ICs2NzQsMTIgQEAgdW5zaWduZWQgbG9uZyBsb25nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
dG90YWxCeXRlcygpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWlu
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0
aW9uIGlzIGVtcHR5LgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBs
YXllciwgc28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dM
ZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKQpAQCAtMTAwNSw2ICsxMDA2LDEx
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVVcGRhdGVkKCkKICAgICBt
X3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgbWFjaF9wb3J0X25hbWVfdCBmZW5jZVBvcnQpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5saW5lRnJhbWVGZW5j
ZWQocmVjdCwgSVBDOjpBdHRhY2htZW50KGZlbmNlUG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NF
TkQpKSwgbV9pZCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphY3RpdmVT
b3VyY2VCdWZmZXJzQ2hhbmdlZCgpCiB7CiAgICAgbV9wbGF5ZXItPmFjdGl2ZVNvdXJjZUJ1ZmZl
cnNDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2Ux
MWY0YWQwMjVhMTgzMGU1Y2YzYzg5NTAwZGE4Li42OGE3M2RhMzEyNTY5ZjIwM2U1OWI3OWFmZGVj
NTk5ZmE1NDhiMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTEyMCw2ICsxMjAs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hh
bmdlZChib29sKTsKICNlbmRpZgogCisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lRmVuY2Vk
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIG1hY2hfcG9ydF9uYW1lX3QpOworCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAqbV9sb2dnZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIjsgfQpAQCAt
MjI4LDEwICsyMzAsOSBAQCBwcml2YXRlOgogICAgIC8vIEluIHRoZSBDb2NvYSBXZWJLaXQgcG9y
dCwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2l6ZSgpIGRvZXMgbm90
aGluZywKICAgICAvLyBzbyB0aGUgV2ViIHByb2Nlc3MgZG9lcyBub3QgbmVlZCB0byBzZW5kIElQ
QyBtZXNzYWdlcyB0byBjYWxsIGl0IGluIHRoZSBHUFUgcHJvY2Vzcy4KICAgICAvLyBPdGhlciBX
ZWJLaXQgcG9ydHMgbWF5IG5lZWQgdG8gZG8gdGhhdC4KLSAgICB2b2lkIHNldFNpemUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgZmluYWwgeyB9OwogCiAgICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKLQogICAgIHZv
aWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0
dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQ
bGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBH
Q0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CiAgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwpAQCAtMzQ4LDcgKzM0OSw3IEBAIHBy
aXZhdGU6CiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRp
YVJlc291cmNlTG9hZGVyOwotICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvTGF5
ZXI7CisgICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICAg
ICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlm
aWVyOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3Rl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjE5ZjRhOTVmYzI1ZjczZGNmZDRlNzE1MWI0MDZmOWVhZGUwYTZhNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlk
ZW9MYXllclJlbW90ZS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KKworT0JKQ19DTEFTUyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQg
PSB1aW50MzJfdDsKKworUmV0YWluUHRyPENBTGF5ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiwgTGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2Q0NGNiMWJhYzEyNWNkMTU0YTdjYjQ1MmFhMTM1NDA0MjMwYmNkMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29j
b2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK30KKworQGludGVyZmFjZSBX
S1ZpZGVvTGF5ZXJSZW1vdGUgOiBDQUxheWVyCitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWdu
KSBXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgQ0FMYXllciAqdmlkZW9TdWJsYXll
cjsKK0Bwcm9wZXJ0eSBDR1JlY3QgdmlkZW9MYXllckZyYW1lOworQGVuZAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9M
YXllclJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmMyZmNiZmViZmRlNjdj
NGNiOTAzODk1NTgzZTc4ZWEwYWFjNDMyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCkBA
IC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlLmgiCisjaW1wb3J0IDxRdWFy
dHpDb3JlL0NBQ29udGV4dC5oPgorI2ltcG9ydCA8UXVhcnR6Q29yZS9DQVRyYW5zYWN0aW9uLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmln
aHQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrUHRyLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS1ZpZGVv
TGF5ZXJSZW1vdGUgeworICAgIFdlYWtQdHI8V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU+IF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF92
aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCogX2NvbnRleHQ7Cit9CisKKy0gKGluc3RhbmNl
dHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikKKyAg
ICAgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVTOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisK
Ky0gKHZvaWQpZGVhbGxvYworeworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1S
ZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5kcykg
b2JqZWN0Om5pbF07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIHJl
dHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdldCgpOworfQorCistICh2b2lkKXNldE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUg
KiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBfbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk7Cit9CisKKy0gKENB
TGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgcmV0dXJuIF92aWRlb1N1YmxheWVyLmdldCgp
OworfQorCistICh2b2lkKXNldFZpZGVvU3VibGF5ZXI6KENBTGF5ZXIgKil2aWRlb1N1YmxheWVy
Cit7CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVyOworfQorCistICh2b2lkKWxh
eW91dFN1YmxheWVycworeworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXllcl0gIT0g
c2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNvdXJjZVZp
ZGVvRnJhbWUgPSBzZWxmLnZpZGVvTGF5ZXJGcmFtZTsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qg
dGFyZ2V0VmlkZW9GcmFtZSA9IHNlbGYuYm91bmRzOworICAgIENHQWZmaW5lVHJhbnNmb3JtIHRy
YW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHRhcmdldFZpZGVvRnJhbWUud2lk
dGgoKSAvIHNvdXJjZVZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0VmlkZW9GcmFtZS5oZWlnaHQo
KSAvIHNvdXJjZVZpZGVvRnJhbWUuaGVpZ2h0KCkpOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVn
aW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisgICAgW192
aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1pZFgoc2VsZi5i
b3VuZHMpLCBDR1JlY3RHZXRNaWRZKHNlbGYuYm91bmRzKSldOworICAgIFtfdmlkZW9TdWJsYXll
ciBzZXRBZmZpbmVUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOworCisgICAgX2NvbnRleHQgPSBbQ0FDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyAgICBO
U1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtDQVRyYW5zYWN0aW9uIGFuaW1hdGlv
bkR1cmF0aW9uXTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBeeworICAgICAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRo
VGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxd
OworICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMp
IHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6YW5pbWF0aW9uRHVyYXRpb24gKyAwLjFdOworICAg
IH0pOworfQorCistICh2b2lkKXJlc29sdmVCb3VuZHMKK3sKKyAgICBbTlNPYmplY3QgY2FuY2Vs
UHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOworCisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBz
dXBlcmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoQ0dSZWN0RXF1
YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRy
YW5zZm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47
CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlz
YWJsZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRl
b0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFt
ZSA9IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hT
ZW5kUmlnaHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0
IGNyZWF0ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgX2NvbnRleHQgPSBuaWw7CisgICAgICAg
ICAgICBtYWNoX3BvcnRfbmFtZV90IGZlbmNlUG9ydCA9IF9mZW5jZVNlbmRSaWdodC5sZWFrU2Vu
ZFJpZ2h0KCk7CisgICAgICAgICAgICBtZWRpYVBsYXllclByaXZhdGVSZW1vdGUtPnNldFZpZGVv
SW5saW5lRnJhbWVGZW5jZWQoc2VsZi52aWRlb0xheWVyRnJhbWUsIGZlbmNlUG9ydCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNH
QWZmaW5lVHJhbnNmb3JtSWRlbnRpdHldOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRGcmFtZTpz
ZWxmLmJvdW5kc107CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCitAZW5kCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXll
clJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElEIGNvbnRleHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHks
IGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUgZW1wdHkgKGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUg
MCkgYW5kIGludmlzaWJsZS4KKyAgICAvLyBUaGUgcmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNp
emVzIG9mIFdLVmlkZW9MYXllclJlbW90ZSB0byB0cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMg
YW5kIG1ha2UgdGhlbSB2aXNpYmxlLgorICAgIFdLVmlkZW9MYXllclJlbW90ZSAqdmlkZW9MYXll
clJlbW90ZSA9IFtbV0tWaWRlb0xheWVyUmVtb3RlIGFsbG9jXSBpbml0XTsKKyAgICBbdmlkZW9M
YXllclJlbW90ZSBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDAsIDApXTsKKyNpZm5kZWYgTkRF
QlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TmFtZTpAIldLVmlkZW9MYXllclJlbW90ZSJd
OworI2VuZGlmCisKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlXTsKKworICAgIGF1dG8gdmlkZW9TdWJsYXll
ciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29u
dGV4dChjb250ZXh0SWQpOworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6
dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgYWRkU3VibGF5ZXI6
dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvU3VibGF5ZXIgc2V0RnJhbWU6dmlkZW9M
YXllclJlbW90ZS5ib3VuZHNdOworCisgICAgcmV0dXJuIHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>
<flag name="review"
          id="406218"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390599</attachid>
            <date>2020-02-12 17:34:45 -0800</date>
            <delta_ts>2020-02-12 23:35:49 -0800</delta_ts>
            <desc>Rebased patch</desc>
            <filename>bug-206132-20200212173444.patch</filename>
            <type>text/plain</type>
            <size>64590</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlYzI3NGExZjM5ZGU0
OTMwMDgxMzJhMWE1ZjMxMTkxYjRkNmU2OS4uYzEwYzk5NTY5YjhkZjMyNzgyOGFlNjFlZmRjZmFj
YTM0NWM0N2UzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTEyICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW50ZXJm
YWNlIHRvIE1lZGlhUGxheWVyIHRvIHNldCB0aGUgZnJhbWUgb2YgYSB2aWRlbyBpbiB0aGUgaW5s
aW5lIG1vZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9JbmxpbmVGcmFtZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9M
YXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0lubGluZUZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbToKKyAgICAgICAgKCtbQ0FM
YXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpdKToKKwogMjAyMC0wMi0xMiAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjU2MDEwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZDZhYjEwNGY5MWE3M2FiYzMyNzIwYzE5
MGNhZTY3YzE2YzQyOTcwLi40OTVmYjg4YmQ0MGZhY2FmYTQwMDcwNjA1NzIxNmMzNTAwNjE0NTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEyICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBTeW5jaHJv
bml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBwcm9jZXNzIHdp
dGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUg
Y3JlYXRlcyBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2hvc2Ugc3VibGF5ZXIgaXMgY3JlYXRlZCBieSBM
YXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQo
KS4KKyAgICAgICAgVGhlIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIGJlIHVzZWQgYnkgdGhlIHJl
bmRlcmVyIHRvIG1hbmFnZSB0aGUgdmlkZW8gZWxlbWVudCBpbiB0aGUgV2ViIHByb2Nlc3MuIFdo
ZW4gaXRzIHNpZGUgaXMgY2hhbmdlZCBieSB0aGUgcmVuZGVyZXIsCisgICAgICAgIGl0IGFwcGxp
ZXMgYSB0cmFuc2Zvcm0gd2l0aG91dCBjaGFuZ2luZyBpdHMgYWN0dWFsIHNpemUsIGFuZCBzZW5k
cyBhIG1lc3NhZ2UgdG8gdGhlIHZpZGVvIGxheWVyIG1hbmFnZXIgaW4gdGhlIEdQVSBwcm9jZXNz
CisgICAgICAgIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyIGxheWVyICh2aWRl
b0lubGluZUxheWVyKS4gQWZ0ZXIgdGhhdCBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBzZXQgaXRz
IHNpemUgdG8gdGhlIGNvcnJlY3Qgb25lLgorICAgICAgICBXZSBuZWVkIHRvIHVzZSBhIEZlbmNl
UG9ydCB0byBzeW5jaHJvbml6ZSB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBXZWIgcHJvY2VzcyBh
bmQgdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFdlIGhhdmUgdG8gdXNlIHN1Y2ggYSBwcm9j
ZXNzIHRvIGNoYW5nZSB0aGUgYXBwZWFyYW5jZSBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUgaW4gb3Jk
ZXIgdG8gZ3VhcmFudGVlIHRoZSBzbW9vdGhuZXNzIHdoZW4gYSB1c2VyCisgICAgICAgIGNoYW5n
ZSB0aGUgc2l6ZSBvZiBhIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJs
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5s
aW5lRnJhbWVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFp
bGFibGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRm
b3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90
ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToK
KyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tW
aWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtX
S1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAg
ICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlkZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1Zp
ZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xh
eWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1v
dGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVt
b3RlKToKKwogMjAyMC0wMi0xMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU2MDEwLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVmYWQ1YzE5
YjhlOGQ2NWRmMjlkZDJhMWY1NTNmN2Y2ZTJmMjliMzkuLmVhY2YxMjgzMjdkYjMxNGY5NTg1ODZi
MDRiZDIyNmFlYWEzZDgwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMSw2ICsxMzEsNyBAQAogCQkwNzUzODYwMzE0NDg5
RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVk
VGV4dFRyYWNrLmggKi87IH07CiAJCTA3NTRBNUVBMjE1RUEzQjgwMDJEM0E5OSAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU3QjEzQzIxNEFFNzk3MDA3
OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwNzVCQTg0OTIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovOyB9OwogCQkw
NzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTcxODg0NDg3
MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIg
LyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VySU9TLm1tICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4
dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07
CkBAIC0xNTgzLDYgKzE1ODQsNyBAQAogCQk1MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxh
dGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0QzAxQzU3RkQ2NjAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMg
LyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyog
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRDMTFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi87
IH07CiAJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExQTQx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJENUExQTgxQzU3NDhBMzAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYg
LyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJFMkNBRkIxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQ2Nyw2ICs1
NDY5LDcgQEAKIAkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUVC
MjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTdCMTNDMjE0QUU3OTcwMDc5
NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzVCQTg0NzIwNjE4
QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklP
Uy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5ODE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRUcmFja0xpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ0NSw2ICs4NDQ4LDggQEAKIAkJ
NTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjBENEMxMUM1N0ZG
OTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0IxMURCMjJGRERCMkUwMDlGMEE2NCAvKiBXSExT
TERlZmF1bHREZWxldGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xEZWZhdWx0RGVsZXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBW
aWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUyRDVBMThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpD
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRB
MyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUEx
QTYxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTEx
Myw3ICsyNTExOCw3IEBACiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXpp
ZXIuaCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNw
cCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8s
Ci0JCQkJMUQzOTJGMkIyM0YyMDlEODAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8s
CisJCQkJMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8s
CiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8s
CiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKIAkJCQk5
MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8sCkBAIC0yNjcx
OSw4ICsyNjcyNCw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYx
MDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJG
MkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFE
MzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJ
CQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICov
LAorCQkJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gKi8sCiAJCQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5jcHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBW
aWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMzI4MTcsNiArMzI4
MjIsNyBAQAogCQkJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRB
MyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTgx
QzU3NDhBMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwNzVCQTg0OTIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTgzREIyMTgzQzQ0MDYwMDMxRUFBMyAvKiBW
aWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc1N0IxM0UyMTRBRTc5
OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlEODI3QTFD
N0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBpbiBIZWFkZXJzICovLApA
QCAtMzQyNDMsNyArMzQyNDksOCBAQAogCQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNG
QjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBB
NzAwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDFDRDZGOEMyM0Q2RTgyMTAwQjE2NDIxIC8qIFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMERFMTcxNUQyQTIw
MDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMEUxMTcx
NUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IGNhNzFlN2UwYjU4NmM3YjU1YjExMjczMmJhZDU5YjAxZDhhNDE4
MWIuLmI0OWRhNDI2NzRiZTQ2OGM2OWQzOGNjYzRhYWU1NmY0MjRjZTE4NDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTExMCw5
ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVzZSgpIGZpbmFsIHsgfQogCiAgICAgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7
IH0KLQogICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZs
b2F0U2l6ZSgpOyB9Ci0KICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KIApAQCAtOTE3LDYgKzkxNSwxMyBAQCBib29sIE1lZGlhUGxheWVyOjpkaWRMb2FkaW5nUHJv
Z3Jlc3MoKQogICAgIHJldHVybiBtX3ByaXZhdGUtPmRpZExvYWRpbmdQcm9ncmVzcygpOwogfQog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQordm9pZCBNZWRpYVBsYXllcjo6c2V0VmlkZW9Jbmxp
bmVGcmFtZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lKQoreworICAgIG1fcHJpdmF0ZS0+c2V0Vmlk
ZW9JbmxpbmVGcmFtZShmcmFtZSk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllcjo6c2V0
U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogeyAKICAgICBtX3NpemUgPSBzaXplOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggN2U2Y2I4
YTM5MGRmN2ZlMWE3YWFlMDE3MzlkYzk0OGY3NzY2MjFlZS4uMWE5MDAzZTVlNTA3Mjg0NjEzNGFm
MWM2ZDk0NjI3YzVlMTA4MjdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCkBAIC0zMjgsNiArMzI4LDEwIEBAIHB1YmxpYzoKICAgICBib29s
IGhhc1ZpZGVvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0OwogCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVGcmFtZShjb25zdCBGbG9h
dFJlY3QmKTsKKyNlbmRpZgorCiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9z
aXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CmluZGV4IDlmN2Y2ZTZiMDJkM2JlYmUwOTBlYmNjMzJhNGIwZGNhMWNjMTc1YTguLjFlMTc5OTQ0
NDAxZGE4YTRmZTE5N2NkN2I3MGY1NGExNjI2MWNmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0xNTQsNiAr
MTU0LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEludFNp
emUmKSB7IH0KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlkZW9JbmxpbmVGcmFtZShjb25zdCBGbG9hdFJlY3QmKSB7IH07CisjZW5kaWYKKwogICAgIHZp
cnR1YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3ND
b250ZXh0JiBjLCBjb25zdCBGbG9hdFJlY3QmIHIpIHsgcGFpbnQoYywgcik7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCBhZjZjODA0ZjZjZjhlNjA4ZDg3ZDgzOWZkODA2ZjA4OTAzZDIzZmI2
Li4zNmMyYTg2MjQ5MDYyY2M5NTY1MWEzOTFjNzRmYWVlODkzNTg5YTk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0xNzQsNiArMTc0LDkgQEAgcHJpdmF0ZToKICAgICBib29sIHBsYXRmb3Jt
UGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCkgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVGcmFtZShjb25zdCBGbG9hdFJlY3QmKSBm
aW5hbDsKKyNlbmRpZgogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICBQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQppbmRleCAwZGMyZTc3MmFlOWRlOTMyMzVkZDBjYzVjOTg5NzhkNzgyNmQzNmU3Li42OWU3
ODcxYjQxNDAyOGFmN2RkYjU2ZmM0YWE0YzkwNjI2N2Q0YmNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KQEAgLTE1MjIsNiArMTUyMiwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udAogICAg
IG1fdmlkZW9GcmFtZUhhc0RyYXduID0gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9Jbmxp
bmVGcmFtZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lKQoreworICAgIG1fdmlkZW9MYXllck1hbmFn
ZXItPnNldFZpZGVvSW5saW5lRnJhbWUoZnJhbWUpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJs
ZSgpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFn
ZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCBjY2I4NzU2NDMzYWQzZDRjNmIwYTFj
MzE2MzZhNjI5MWFkMTA0NTZlLi5jMmYwZTAxZmIxZGU4ZGNmYzZiZDFiODM2NTc2ZjJiM2RkMDZl
MTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMu
aApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVl
bkZyYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQog
CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50
U2l6ZSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lKEZsb2F0UmVjdCk7CiAg
ICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgZmluYWw7
CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0
cikgZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
CmluZGV4IDU3MTBjNmEzY2EwZjRhNDZkNGMzN2MwOWRmYWVmNWMwNWQ0OWJlMjguLmMzMDViN2Y5
YWEyOTIxNjUwODY0ODYyOTk2ODNjMmY4ODE5MWJiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAgLTczLDYgKzczLDIwIEBAIHZvaWQg
VmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVv
TGF5ZXIsIEludFNpemUgY29uCiAgICAgfQogfQogCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qzo6c2V0VmlkZW9JbmxpbmVGcmFtZShGbG9hdFJlY3QgdmlkZW9JbmxpbmVGcmFtZSkKK3sKKyAg
ICBpZiAoIW1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aWRl
b0lubGluZUZyYW1lID0gdmlkZW9JbmxpbmVGcmFtZTsKKyAgICAvLyBXZSBkbyBub3Qgd2FudCBh
bmltYXRpb25zIGhlcmUKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNh
Y3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNl
dEZyYW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsK
KyAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Cit9CisKIHZvaWQgVmlkZW9MYXllck1hbmFnZXJP
YmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFn
ZSkKIHsKICAgICBpZiAobV92aWRlb0lubGluZUxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbQppbmRleCAxODA1YzBhNWY2Y2ZmMjgzNjVjZjZjOGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAy
NzQ0OWZiZDhmOTI2MzZjMzU0NTQ2OWRjYWQ0Mzk0MjFiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXll
ckV4dHJhcy5tbQpAQCAtODIsNyArODIsNyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhv
c3QgPSBbQ0FMYXllckhvc3QgbGF5ZXJdOwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0
IHNldE5hbWU6QCJXZWJWaWRlb0hvc3RpbmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFt
ZTpAIkhvc3RpbmcgbGF5ZXIiXTsKICNlbmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBj
b250ZXh0SUQ7CiAgICAgcmV0dXJuIGxheWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBk
OWUzYmQzNzI3MmM2MjcxYzFiYzg5YWUyYjdmMzI3ZWMyZWEyY2JhLi42YzM5NjNjZTdlNGRlZDVk
N2JjOWVlM2VkYzU0Mjc0YjA5YmUxNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0xMDYsMTMg
KzEwNiwxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQoVVJMJiYgdXJsLCBP
cHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JgogICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJl
cGFyZUZvclJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRl
bnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250
ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRj
aCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29u
dGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0
ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJl
bG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNoKTsK
ICAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1fdmlkZW9Db250ZW50
Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29u
dGVudFNjYWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRl
eHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAgLTQ2OCw2ICs0Njcs
MTEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckVuZ2luZVVwZGF0
ZWQoKQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRmlyc3RWaWRl
b0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICAvLyBJbml0aWFsbHkgdGhlIHNpemUgb2YgdGhlIHBs
YXRmb3JtTGF5ZXIgd2lsbCBiZSAwIGJlY2F1c2Ugd2UgZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5
ZXJDb250ZW50Qm94UmVjdCgpIGluIHRoaXMgY2xhc3MuCisgICAgLy8gVGhlIGRlZmF1bHQgaW1w
bGVtZW50YXRpb24gb2YgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIHdpbGwgcmV0dXJuIGFu
IGVtcHR5IHJlY3RhbmdsZSwKKyAgICAvLyB3aGljaCB3aWxsIGJlIHVzZWQgYnkgVmlkZW9MYXll
ck1hbmFnZXIgdG8gY3JlYXRlIHRoZSBpbmxpbmUgdmlkZW8gY29udGFpbmVyIGxheWVyIGFuZCB0
aGUgdmlkZW8gY29udGVudCBsYXllci4KKyAgICAvLyBTaW5jZSB0aGUgcmVuZGVyZXIgaW4gdGhl
IFdlYiBwcm9jZXNzIHdpbGwgdGFrZSBjYXJlIG9mIHRoZSB2aWRlbyBsYXllcnMgY29uZmlndXJh
dGlvbnMsCisgICAgLy8gdGhlIFJlbW90ZU1lZGlhUGxheWVyUHJveHkgZG9lcyBub3QgbmVlZCB0
byBtYW5hZ2UgdGhlIGxheWVycyBieSBpdHNlbGYuCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
LT5zZXRSb290TGF5ZXIobV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpG
aXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKSwgbV9pZCk7CiB9CkBAIC01MDgsNiArNTEyLDE2IEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hh
bmdlZCgpCiB9CiAjZW5kaWYKIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRl
b0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IEZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVu
dCBmZW5jZVBvcnQpCit7CisgICAgaWYgKGZlbmNlUG9ydC5kaXNwb3NpdGlvbigpICE9IE1BQ0hf
TVNHX1RZUEVfTU9WRV9TRU5EKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVySG9zdGlu
Z0NvbnRleHQtPnNldEZlbmNlUG9ydChmZW5jZVBvcnQucG9ydCgpKTsKKyAgICBtX3BsYXllci0+
c2V0VmlkZW9JbmxpbmVGcmFtZShib3VuZHMpOworICAgIGRlYWxsb2NhdGVTZW5kUmlnaHRTYWZl
bHkoZmVuY2VQb3J0LnBvcnQoKSk7Cit9CisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckN1cnJlbnRQ
bGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wgaXNDdXJyZW50UGxheWJhY2tUYXJn
ZXRXaXJlbGVzcykKIHsKQEAgLTU0NiwxMSArNTYwLDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1MYXlvdXRSZWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX3ZpZGVvQ29udGVu
dEJveFJlY3Q7Ci19Ci0KIGZsb2F0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
Q29udGVudHNTY2FsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlkZW9Db250ZW50U2NhbGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaAppbmRleCBiMjI2MzBmZGFkYmY0NzNmN2RiYTk3YTMzZmJmMmM1M2RiYjEw
Nzg5Li4yOTg0YjI0MWQ5MjBhNWMyMjY2ZGM1ZmQyMzc2ZGIwYjUxYjVjMjQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0
aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJl
Rm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBX
ZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYpPiYmKTsKKyAgICB2
b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JS
ZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+JiYpOwogICAgIHZvaWQgcHJlcGFy
ZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBsb2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHZpZGVv
VHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKICAg
ICB2b2lkIHRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2Vi
Q29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSk7CiAKKyAgICB2b2lkIHNldFZpZGVv
SW5saW5lRnJhbWVGZW5jZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpB
dHRhY2htZW50KTsKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAg
dm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsKICAgICB2b2lkIHNl
dFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpOwpAQCAtMTc4LDcgKzE4MCw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwotICAgIFdlYkNvcmU6
OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOwogICAg
IGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
bWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhmODYxNWE0ZjVmYzQy
ZGNkOTVlZjY1NDQ2MTRjZjE5YWEzYWQ3YzIuLjE4Y2EyMWI1YTAzYWI4ZmM5ZWI5Njg0YTI4Yjgz
NGZjOWUwY2MxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3
ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5k
ZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50
U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJI
b3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBw
cmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZs
b2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVy
bCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRl
bnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVt
KSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXll
ckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01Nyw2ICs1Nyw4IEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAg
VmlkZW9UcmFja1NldFNlbGVjdGVkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciB0cmFja0lELCBib29sIGVuYWJsZWQpCiAgICAgVGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgZW51bTp1aW50OF90IFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUgbW9kZSkKIAorICAgIFNldFZpZGVvSW5saW5l
RnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZl
bmNlUG9ydCkKKwogICAgICMgUGFpbnQKICAgICAjIFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
CiAKQEAgLTgxLDcgKzgzLDYgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBO
b3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAg
QXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaAppbmRleCAyMzdiZGU0ODc1YTczMGU2MjhkNTJiOGQ0NzY0NzRlMWU4YzIyYTNkLi5k
ZWY3ODkyMzUxNjM0ZDk4M2UwZDE1YmQ1OTNmZTVhMjkyMThkMGM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9jb250
cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50PiBt
X2NsaWVudENvdW50czsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0ODg1YjQ2MzJkZTljODhjZjAyNjVkNWVlZjlhYjA3
NTRiZjU1ODcuLjIyYTU1MjE0ZmRlY2I0OTdiMzU2Y2NlOTY3MmJmZTc1YTQ5Njk0ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE3
LDYgKzQxNyw4IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9
OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENjdCMzM4MjEy
RTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9OworCQkxREFGNUE1
NzIzRUNDMDBFMDBCN0I1MTggLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBRjVBNTUyM0VDQzAwRTAwQjdC
NTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLzsgfTsKKwkJMURBRjVBNTgyM0VDQzU2
NzAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUY1QTUyMjNFQ0E1OEIwMEI3QjUxOCAvKiBWaWRlb0xh
eWVyUmVtb3RlLmggKi87IH07CiAJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJl
U2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
RTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLzsgfTsKIAkJMURCMDE5
NDQyMTFDRjAwNTAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBX
S1NoYXJlU2hlZXQubW0gKi87IH07CiAJCTFGMzM1QkMwMTg1Qjg0RjAwMDFBMjAxQSAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzM1QkJGMTg1Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMjA2NywxNiArMjA2OSwxNiBAQAogCQkwMEI5NjYxNTE4RTI0Q0JB
MDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBUElGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAwQjk2
NjE3MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRmluZENsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDBCOTY2MTgxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmluZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwNzAxNzg5QjIzQkFFMjYxMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNSU1FVHlwZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MDE3ODlD
MjNCQUUyNjIwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTc3MjNDOTNCQjcwMDY4MEQ3QyAvKiBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0Mg
LyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9U
cmFja1ByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzAx
Nzg5QjIzQkFFMjYxMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKKwkJMDcwMTc4OUMyM0JB
RTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA0OyB9OworCQkwNzFCQzU3NzIzQzkzQkI3MDA2ODBEN0MgLyog
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA0OyB9OworCQkw
NzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJCTA3MUJDNTdCMjNDQTUzMjQwMDY4MEQ3
QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcxQkM1N0QyM0NBNTZEMjAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyog
UmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MUJDNTdGMjND
QTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3
MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0Mg
LyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA0OyB9Owor
CQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJCTA3MUJDNTg0MjNDQzJDMDkwMDY4
MEQ3QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlVmlkZW9UcmFja1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcx
QkM1ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcxQkM1OEIyM0NERkU3NTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDAsMjQgKzIxMDIsMjQgQEAKIAkJMDc0RTc2
MDExREY3MDc1RDAwRDMxOEVDIC8qIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZFODg0RDFBMTNDQURGMDA1RTkw
RkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc2RTg4NEYxQTEzQ0JDNjAwNUU5MEZDIC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZUNvbnRl
eHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8q
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzky
MzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwNzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5
OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5MjMx
MzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CisJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAv
KiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA0OyB9OworCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CisJCTA3OTIzMTMzMjM5QjNCMEMw
MDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDQ7IH07CisJCTA3OTIzMTM0MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKIAkJMDc5MjMx
NDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3OTIzMTQzMjM5Q0JDQjYwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDQyMzlDQkNCNjAwOTU5OEUyIC8qIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDUyMzlDQkNCNzAwOTU5OEUyIC8q
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5
MjMxNDYyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzkyMzE0NzIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxNEUy
MzlENUY1MzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzkyMzE0RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gNDsgfTsKIAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5k
bGVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZUhh
bmRsZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0
M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBS
ZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVy
U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdCMUQwNEIyM0QzOEZDRTAw
Mzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gNDsgfTsKKwkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJCTA3QjNCNDc1MjNB
RDg5MDQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0I5
M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJCTA3QkFGMzU2MjNBMkNDMTcwMDQ0
MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCQUYzNTcy
M0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3RTE5RUY4MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NzksOCArMjY4MSw4IEBACiAJCTFDQkJFNDlGMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDMyRjg5QjIzQTg0
QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKKwkJMUQz
MkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2
QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxRDNBQjA0RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2OTAsNiAr
MjY5Miw5IEBACiAJCTFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJh
Y2tJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZVNoZWV0Q2FsbGJh
Y2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREE0MDg5NDIzQTgwQTNFMDA1
OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MURBNDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBRjVBNTIyM0VDQTU4QjAwQjdCNTE4IC8qIFZp
ZGVvTGF5ZXJSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CisJCTFEQUY1QTU0MjNFQ0MwMEUw
MEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9M
YXllclJlbW90ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsg
fTsKKwkJMURBRjVBNTUyM0VDQzAwRTAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA0OyB9OwogCQkxREJCQjA2MTIxMUNDM0NCMDA1
MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
REUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hhcmVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxREUyREZBQzIzQTk1OUY4MDAzRTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNDYsNiArNTI1MSw3IEBACiAJCTA3
OTIzMTJGMjM5QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29h
ICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC01MjYzLDYgKzUyNjksNyBAQAogCQkJCTFE
MzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAqLywK
IAkJCQkwN0UxOUYwODIzRDUzM0I5MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAgKi8sCiAJCQkJMDdFMTlGMDkyM0Q1MzNCQTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZhdGVS
ZW1vdGUuaCAqLywKKwkJCQkxREFGNUE1MjIzRUNBNThCMDBCN0I1MTggLyogVmlkZW9MYXllclJl
bW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkpOwpAQCAtNjEzOSw2ICs2MTQ2LDE1IEBACiAJ
CQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJ
CTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNTQyM0VDQzAwRTAwQjdCNTE4IC8qIFZp
ZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovLAorCQkJCTFEQUY1QTU1MjNFQ0MwMEUwMEI3QjUxOCAv
KiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUYwMTgxNjgxODU4REMxNTAwRjky
ODg0IC8qIENvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTY5OTcsOCArNzAxMyw4IEBACiAJCQkJMUE0MjJGOEExOEIyOUI1NDAwRDhDRDk2IC8qIFdL
SGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovLAogCQkJCTUxRDEyNDg0MUU3MzRBRTMwMDJCMjgy
MCAvKiBXS0hUVFBDb29raWVTdG9yZS5oICovLAogCQkJCTUxRDEyNDg1MUU3MzRBRTMwMDJCMjgy
MCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLywKLQkJCQlERjQ2MkUwRTIzRjIyRjUzMDBFRkYz
NUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmggKi8sCiAJCQkJNTFEMTI0ODYxRTczNEFF
MzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwuaCAqLywKKwkJCQlERjQ2MkUw
RTIzRjIyRjUzMDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmggKi8sCiAJCQkJ
MUFCNDBFRTMxQkY2NzdFMzAwQkE4MUJFIC8qIFdLTWVudUl0ZW1JZGVudGlmaWVycy5tbSAqLywK
IAkJCQkxQUI0MEVFNDFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJzUHJp
dmF0ZS5oICovLAogCQkJCTFBNUIxQzRGMTg5ODYwNkYwMDRGQ0Y5QiAvKiBXS05hdmlnYXRpb24u
aCAqLywKQEAgLTEwMjU0LDcgKzEwMjcwLDYgQEAKIAkJCQkyRDU4NzVCRjIxOUI1MzE1MDA3MEI5
QUEgLyogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMDVG
RTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8qIFdLQ29udGVudFdvcmxkUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQTgxMEY0MzdEMTAwNThDMTVBIC8qIEVuY29kZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9u
bWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNTc1RkIxNDk2QjUyNjAwQTRF
RTA2IC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDYwNyw2ICsxMDYy
Miw3IEBACiAJCQkJMDc0RTc1RkUxREYyMjExOTAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4NjQ5MzFCMTY3NTA3MDBDODJGNDAgLyog
VmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQjAxQzU3NDk1QTAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MURBRjVBNTgyM0VDQzU2NzAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1RDVFMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3
R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4MTlCQTIx
ODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMDcyMSw3ICsxMDczNyw2IEBACiAJCQkJRkVFNDNGRDMxRTY3
QjAxODAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFREJEQ0Q3MUU2OEQyMDUwMEE1OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRl
cnJ1cHREaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyQTM2MTI3
Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJREY0NjJFMEYyM0YyMkY1NTAwRUZGMzVGIC8qIFdLSFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3Bl
Y3RvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIg
LyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4OTFE
NjYxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggaW4gSGVhZGVycyAqLywKQEAg
LTEwOTM0LDYgKzEwOTQ5LDcgQEAKIAkJCQkwRjA0MTU5RTIzQzdDQzczMDA2MEEzRTIgLyogV0tD
b250ZW50Vmlld01hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMDY1RkMyM0VDOTU3MjAwNTQ0
M0Q2IC8qIFdLQ29udGVudFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTEwNjVGRDIzRUM5
NTdCMDA1NDQzRDYgLyogV0tDb250ZW50V29ybGRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8qIFdLQ29udGVudFdvcmxkUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNCOUUyNEIxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFNTJGOTgxOTIwMjY3MjAwQTFGQTM3IC8qIFdLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDQ1QkE1MTg0RDVGREEw
MDRCMzQxNCAvKiBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTExMDE3LDYgKzExMDMzLDcgQEAKIAkJCQkxQTQyMkY4QjE4QjI5QjU0MDBEOENEOTYgLyogV0tI
aXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNjJFNzMxMjE0MzA0
N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUQx
MjQ5OTFFNzYzQzAxMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCBpbiBIZWFkZXJzICov
LAorCQkJCURGNDYyRTBGMjNGMjJGNTUwMEVGRjM1RiAvKiBXS0hUVFBDb29raWVTdG9yZVByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNjZBNEI1MjMyMDk2MjQwMEVBNEQ0NCAvKiBXS0hU
VFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMEFFMEQxMzNDMTZDQjAw
NzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTIzQ0YxQzEz
M0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MjM4NCw2ICsxMjQwMSw3IEBACiAJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRkIxODg3QkQ5NzAw
Mjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxREFGNUE1NzIzRUNDMDBFMDBCN0I1MTggLyogVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2
NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDgxOUJBMTE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRy
eUNvbGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjg0MDU1
MjE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOWRj
MGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uM2RiZjM1M2M1MTY1NzMzZmZk
ZjMzZTE2NDU2MjY2MjdiODI5NjM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlLmgiCisjaW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgogI2luY2x1ZGUg
IlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtOTAsMTcgKzkxLDE2IEBAIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRl
TW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlKQogewotICAgIGF1dG8gbGF5b3V0UmVjdCA9IG1fcGxheWVyLT5wbGF5ZXJD
b250ZW50Qm94UmVjdCgpOwogICAgIGF1dG8gc2NhbGUgPSBtX3BsYXllci0+cGxheWVyQ29udGVu
dHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2Rl
LCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgbGF5b3V0UmVjdCwgc2NhbGUpLCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4dElkKSBtdXRh
YmxlIHsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHByZWxv
YWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUgewogICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICghY29udGV4dElk
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fdmlkZW9MYXllciA9IExheWVySG9z
dGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0
SWQudmFsdWUoKSk7CisgICAgICAgIG1fdmlkZW9JbmxpbmVMYXllciA9IGNyZWF0ZVZpZGVvTGF5
ZXJSZW1vdGUodGhpcywgY29udGV4dElkLnZhbHVlKCkpOwogICAgIH0sIG1faWQpOwogfQogCkBA
IC0zMDUsNiArMzA1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNpemVDaGFu
Z2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSkKIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7CisgICAgSU5GT19MT0co
TE9HSURFTlRJRklFUik7CiAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgp
OwogfQogCkBAIC01NDcsNyArNTQ4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikKIAogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRl
b0xheWVyLmdldCgpOworICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7CiB9CiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpKQpAQCAtNjczLDEyICs2NzQsMTIgQEAgdW5zaWduZWQgbG9u
ZyBsb25nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dG90YWxCeXRlcygpIGNvbnN0CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gV2UgYWx3YXlz
IHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVtcHR5LgogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwgc28gdGhpcyBmdW5jdGlvbiBp
cyBlbXB0eS4KIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3Jt
R0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVt
LCBib29sLCBib29sKQpAQCAtMTAwNSw2ICsxMDA2LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjplbmdpbmVVcGRhdGVkKCkKICAgICBtX3BsYXllci0+bWVkaWFFbmdpbmVVcGRh
dGVkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGlu
ZUZyYW1lRmVuY2VkKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgbWFjaF9wb3J0X25hbWVfdCBmZW5j
ZVBvcnQpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6OlNldFZpZGVvSW5saW5lRnJhbWVGZW5jZWQocmVjdCwgSVBDOjpBdHRhY2htZW50
KGZlbmNlUG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKSwgbV9pZCk7Cit9CisKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpCiB7
CiAgICAgbV9wbGF5ZXItPmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5NTAw
ZGE4Li42OGE3M2RhMzEyNTY5ZjIwM2U1OWI3OWFmZGVjNTk5ZmE1NDhiMWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTEyMCw2ICsxMjAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
dXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgogCisg
ICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYsIG1hY2hfcG9ydF9uYW1lX3QpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
Y29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAqbV9sb2dnZXI7IH0K
ICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIjsgfQpAQCAtMjI4LDEwICsyMzAsOSBAQCBwcml2YXRl
OgogICAgIC8vIEluIHRoZSBDb2NvYSBXZWJLaXQgcG9ydCwgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2V0U2l6ZSgpIGRvZXMgbm90aGluZywKICAgICAvLyBzbyB0aGUgV2Vi
IHByb2Nlc3MgZG9lcyBub3QgbmVlZCB0byBzZW5kIElQQyBtZXNzYWdlcyB0byBjYWxsIGl0IGlu
IHRoZSBHUFUgcHJvY2Vzcy4KICAgICAvLyBPdGhlciBXZWJLaXQgcG9ydHMgbWF5IG5lZWQgdG8g
ZG8gdGhhdC4KLSAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGZpbmFs
IHsgfQorICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgZmluYWwgeyB9
OwogCiAgICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKLQogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNv
bnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JikgZmluYWw7CiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51
bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmlu
YWw7CiAgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGlt
ZSgpIGZpbmFsOwpAQCAtMzQ4LDcgKzM0OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwotICAgIFJl
dGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRyPFBsYXRm
b3JtTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE5ZjRhOTVm
YzI1ZjczZGNmZDRlNzE1MWI0MDZmOWVhZGUwYTZhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVy
OworCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKKworUmV0YWluUHRy
PENBTGF5ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KiwgTGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q0NGNiMWJh
YzEyNWNkMTU0YTdjYjQ1MmFhMTM1NDA0MjMwYmNkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTsKK30KKworQGludGVyZmFjZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgOiBDQUxh
eWVyCitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJldGFpbikgQ0FMYXllciAqdmlkZW9TdWJsYXllcjsKK0Bwcm9wZXJ0eSBDR1JlY3Qgdmlk
ZW9MYXllckZyYW1lOworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29j
b2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmMyZmNiZmViZmRlNjdjNGNiOTAzODk1NTgzZTc4ZWEwYWFjNDMy
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
Y29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlQ29jb2Eu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCisjaW1wb3J0ICJW
aWRlb0xheWVyUmVtb3RlLmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL0NBQ29udGV4dC5oPgorI2lt
cG9ydCA8UXVhcnR6Q29yZS9DQVRyYW5zYWN0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFr
UHRyLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS1ZpZGVvTGF5ZXJSZW1vdGUgeworICAgIFdlYWtQ
dHI8V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IF9tZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF92aWRlb1N1YmxheWVyOworICAgIENBQ29u
dGV4dCogX2NvbnRleHQ7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikKKyAgICAgICAgc2VsZi5tYXNrc1RvQm91bmRz
ID0gWUVTOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAg
IFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5kcykgb2JqZWN0Om5pbF07CisgICAgW3N1cGVy
IGRlYWxsb2NdOworfQorCistIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmdldCgpOworfQorCistICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZToo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1v
dGUKK3sKKyAgICBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZSk7Cit9CisKKy0gKENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7
CisgICAgcmV0dXJuIF92aWRlb1N1YmxheWVyLmdldCgpOworfQorCistICh2b2lkKXNldFZpZGVv
U3VibGF5ZXI6KENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgX3ZpZGVvU3VibGF5ZXIg
PSB2aWRlb1N1YmxheWVyOworfQorCistICh2b2lkKWxheW91dFN1YmxheWVycworeworICAgIGlm
IChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNvdXJjZVZpZGVvRnJhbWUgPSBzZWxmLnZpZGVvTGF5
ZXJGcmFtZTsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VmlkZW9GcmFtZSA9IHNlbGYu
Ym91bmRzOworICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNm
b3JtTWFrZVNjYWxlKHRhcmdldFZpZGVvRnJhbWUud2lkdGgoKSAvIHNvdXJjZVZpZGVvRnJhbWUu
d2lkdGgoKSwgdGFyZ2V0VmlkZW9GcmFtZS5oZWlnaHQoKSAvIHNvdXJjZVZpZGVvRnJhbWUuaGVp
Z2h0KCkpOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9u
IHNldERpc2FibGVBY3Rpb25zOllFU107CisgICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9u
OkNHUG9pbnRNYWtlKENHUmVjdEdldE1pZFgoc2VsZi5ib3VuZHMpLCBDR1JlY3RHZXRNaWRZKHNl
bGYuYm91bmRzKSldOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06dHJh
bnNmb3JtXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworCisgICAgX2NvbnRleHQgPSBb
Q0FDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25E
dXJhdGlvbiA9IFtDQVRyYW5zYWN0aW9uIGFuaW1hdGlvbkR1cmF0aW9uXTsKKyAgICBkaXNwYXRj
aF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICBbTlNPYmplY3Qg
Y2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOworICAgICAgICBbc2VsZiBwZXJmb3Jt
U2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVs
YXk6YW5pbWF0aW9uRHVyYXRpb24gKyAwLjFdOworICAgIH0pOworfQorCistICh2b2lkKXJlc29s
dmVCb3VuZHMKK3sKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNX
aXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpu
aWxdOworCisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAhPSBzZWxmKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVy
RnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoc2VsZi5h
ZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBi
ZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAg
IGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRz
KSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFtZSA9IHNlbGYuYm91bmRzOworICAgICAg
ICBpZiAoYXV0byAqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlID0gc2VsZi5tZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hTZW5kUmlnaHQgX2ZlbmNlU2VuZFJpZ2h0
ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0IGNyZWF0ZUZlbmNlUG9ydF0pOworICAg
ICAgICAgICAgX2NvbnRleHQgPSBuaWw7CisgICAgICAgICAgICBtYWNoX3BvcnRfbmFtZV90IGZl
bmNlUG9ydCA9IF9mZW5jZVNlbmRSaWdodC5sZWFrU2VuZFJpZ2h0KCk7CisgICAgICAgICAgICBt
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUtPnNldFZpZGVvSW5saW5lRnJhbWVGZW5jZWQoc2VsZi52
aWRlb0xheWVyRnJhbWUsIGZlbmNlUG9ydCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBbX3Zp
ZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHld
OworICAgIFtfdmlkZW9TdWJsYXllciBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisKKyAgICBbQ0FU
cmFuc2FjdGlvbiBjb21taXRdOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZXRhaW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElE
IGNvbnRleHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHksIGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUg
ZW1wdHkgKGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgMCkgYW5kIGludmlzaWJsZS4KKyAgICAv
LyBUaGUgcmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNpemVzIG9mIFdLVmlkZW9MYXllclJlbW90
ZSB0byB0cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMgYW5kIG1ha2UgdGhlbSB2aXNpYmxlLgor
ICAgIFdLVmlkZW9MYXllclJlbW90ZSAqdmlkZW9MYXllclJlbW90ZSA9IFtbV0tWaWRlb0xheWVy
UmVtb3RlIGFsbG9jXSBpbml0XTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDAsIDApXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1v
dGUgc2V0TmFtZTpAIldLVmlkZW9MYXllclJlbW90ZSJdOworI2VuZGlmCisKKyAgICBbdmlkZW9M
YXllclJlbW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlXTsKKworICAgIGF1dG8gdmlkZW9TdWJsYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6
OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQpOworICAgIFt2
aWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07Cisg
ICAgW3ZpZGVvTGF5ZXJSZW1vdGUgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07Cisg
ICAgW3ZpZGVvU3VibGF5ZXIgc2V0RnJhbWU6dmlkZW9MYXllclJlbW90ZS5ib3VuZHNdOworCisg
ICAgcmV0dXJuIHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390621</attachid>
            <date>2020-02-12 23:35:49 -0800</date>
            <delta_ts>2020-02-13 10:04:45 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>82482</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OGVjMjc0YTFmMy4uYzEwYzk5NTY5YjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0wMi0xMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGFuIGludGVyZmFjZSB0byBNZWRpYVBsYXllciB0byBzZXQgdGhl
IGZyYW1lIG9mIGEgdmlkZW8gaW4gdGhlIGlubGluZSBtb2RlLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRWaWRl
b0lubGluZUZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRWaWRlb0lubGlu
ZUZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9Jbmxp
bmVGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5
ZXJFeHRyYXMubW06CisgICAgICAgICgrW0NBTGF5ZXIgX3dlYl9yZW5kZXJMYXllcldpdGhDb250
ZXh0SUQ6XSk6CisKIDIwMjAtMDItMTIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NjAxMC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZmFk
NWMxOWI4ZS4uMzQxMGEyODU3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMSw2ICsxMzEsNyBAQAogCQkwNzUzODYwMzE0
NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2Fj
aGVkVGV4dFRyYWNrLmggKi87IH07CiAJCTA3NTRBNUVBMjE1RUEzQjgwMDJEM0E5OSAvKiBSZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VGYWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU3QjEzQzIxNEFFNzk3
MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwNzVCQTg0OTIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXll
ck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovOyB9Owog
CQkwNzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTcxODg0
NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLm1tICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyog
VGV4dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87
IH07CkBAIC02MzMsNyArNjM0LDYgQEAKIAkJMUQyRjhFMDQyMzQ0NzUxNjAwOTkzQjY4IC8qIEVu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQTIzM0MzRDBCMDBFRTIyOEQgLyogRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjggLyogSFRNTFZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBIVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQaWN0dXJlSW5QaWN0dXJlV2luZG93
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZD
RDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFEMzkyRjJEMjNGMjBBNzAw
MEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDM5MkYyODIzRjIwOUI0MDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQg
LyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAw
QjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBp
Y3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTFGMzZFQTlDMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3Jv
dW5kVGFza0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0Nv
bnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTU4Myw2ICsxNTgzLDcgQEAKIAkJNTJCMEQ0QkUxQzU3RkQxRTAwNzdDRTUzIC8qIFBs
YXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMwMUM1N0ZENjYw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8q
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFu
YWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICov
OyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE0
MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRDVBMUE4MUM1NzQ4QTMwMERF
MzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExQTUxQzU3NDg4OTAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRG
IC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU0NjcsNiAr
NTQ2OCw3IEBACiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVF
QjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3
OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc1QkE4NDcyMDYx
OEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTgxODg0NDg3MjAwRTE1
QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1MDgsOSArNjUxMCw2IEBACiAJ
CTFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0
dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlE
OTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZD
NSAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5Q
aWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5MkYyODIz
RjIwOUI0MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5MkYyQTIzRjIwOUI1MDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5
MkYyQjIzRjIwOUQ4MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1
cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAwNEI3ODBFIC8q
IE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JTaGFy
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjExQkE4NDEwMDRC
NzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYXJlRGF0YS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDQ1LDYgKzg0NDQsOCBAQAogCQk1
MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdITFNM
RGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTExMyw3ICsyNTExNCw3IEBACiAJCQkJRTRBRkNGQTQw
REFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFF
MDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBE
MzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCi0JCQkJMUQzOTJGMkIyM0YyMDlEODAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5
IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5QkMx
IC8qIFdpZHRoQ2FjaGUuaCAqLywKIAkJCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5jcHAgKi8sCkBAIC0yNjcxOSw4ICsyNjcyMCw4IEBACiAJCQkJN0EyOUY1NzEx
OEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJ
CQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRB
MyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJCQkJQ0QzMzZGNjUxN0ZBMEFDNjAw
REREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgKi8sCiAJCQkJQ0QzMzZGNjYx
N0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
OEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oICovLApAQCAtMzI4MTcsNiArMzI4MTgsNyBAQAogCQkJCTUyQjBENEMyMUM1N0ZGOTEw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTgxQzU3NDhBMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzVCQTg0OTIwNjE4
QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
RTgzREIyMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDlEODI3QTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJl
Q29waWVyQ1YuaCBpbiBIZWFkZXJzICovLApAQCAtMzQyNDMsNyArMzQyNDUsNyBAQAogCQkJCTdD
RTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVz
c2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5
ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1
RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
RTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTguLmI0OWRhNDI2NzRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0x
MTAsOSArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGF1c2UoKSBmaW5hbCB7IH0KIAogICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxs
cHRyOyB9Ci0KICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBGbG9hdFNpemUoKTsgfQotCiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CiAKQEAgLTkxNyw2ICs5MTUsMTMgQEAgYm9vbCBNZWRpYVBsYXllcjo6ZGlkTG9hZGlu
Z1Byb2dyZXNzKCkKICAgICByZXR1cm4gbV9wcml2YXRlLT5kaWRMb2FkaW5nUHJvZ3Jlc3MoKTsK
IH0KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNldFZpZGVv
SW5saW5lRnJhbWUoY29uc3QgRmxvYXRSZWN0JiBmcmFtZSkKK3sKKyAgICBtX3ByaXZhdGUtPnNl
dFZpZGVvSW5saW5lRnJhbWUoZnJhbWUpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXI6
OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsgCiAgICAgbV9zaXplID0gc2l6ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdl
NmNiOGEzOTBkLi4xYTkwMDNlNWU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zMjgsNiArMzI4LDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGhhc1ZpZGVvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0OwogCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVGcmFtZShjb25zdCBG
bG9hdFJlY3QmKTsKKyNlbmRpZgorCiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4g
bV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCmluZGV4IDlmN2Y2ZTZiMDJkLi4xZTE3OTk0NDQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE1NCw2
ICsxNTQsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3QgSW50
U2l6ZSYpIHsgfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRWaWRlb0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVjdCYpIHsgfTsKKyNlbmRpZgorCiAgICAg
dmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmIGMsIGNvbnN0IEZsb2F0UmVjdCYgcikgeyBwYWludChjLCByKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCmluZGV4IGFmNmM4MDRmNmNmLi4zNmMyYTg2MjQ5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaApAQCAtMTc0LDYgKzE3NCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbGF0Zm9y
bVBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSBvdmVy
cmlkZTsKICAgICB2b2lkIHNldE11dGVkKGJvb2wpIG92ZXJyaWRlOworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lRnJhbWUoY29uc3QgRmxvYXRSZWN0Jikg
ZmluYWw7CisjZW5kaWYKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KaW5kZXggMGRjMmU3NzJhZTkuLjY5ZTc4NzFiNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KQEAgLTE1MjIsNiArMTUyMiwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udAogICAg
IG1fdmlkZW9GcmFtZUhhc0RyYXduID0gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9Jbmxp
bmVGcmFtZShjb25zdCBGbG9hdFJlY3QmIGZyYW1lKQoreworICAgIG1fdmlkZW9MYXllck1hbmFn
ZXItPnNldFZpZGVvSW5saW5lRnJhbWUoZnJhbWUpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJs
ZSgpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFn
ZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCBjY2I4NzU2NDMzYS4uYzJmMGUwMWZi
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5o
CkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVu
RnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CiAK
ICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRT
aXplKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lRnJhbWUoRmxvYXRSZWN0KTsKICAg
ICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsK
ICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRy
KSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0K
aW5kZXggNTcxMGM2YTNjYTAuLmMzMDViN2Y5YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCkBAIC03Myw2ICs3MywyMCBAQCB2b2lkIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xh
eWVyLCBJbnRTaXplIGNvbgogICAgIH0KIH0KIAordm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6
OnNldFZpZGVvSW5saW5lRnJhbWUoRmxvYXRSZWN0IHZpZGVvSW5saW5lRnJhbWUpCit7CisgICAg
aWYgKCFtX3ZpZGVvSW5saW5lTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmlkZW9J
bmxpbmVGcmFtZSA9IHZpZGVvSW5saW5lRnJhbWU7CisgICAgLy8gV2UgZG8gbm90IHdhbnQgYW5p
bWF0aW9ucyBoZXJlCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0
aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRG
cmFtZTptX3ZpZGVvSW5saW5lRnJhbWVdOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cisg
ICAgc3luY1RleHRUcmFja0JvdW5kcygpOworfQorCiB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIgaW1hZ2Up
CiB7CiAgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMu
bW0KaW5kZXggMTgwNWMwYTVmNmMuLmYxMDI3NDQ5ZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4
dHJhcy5tbQpAQCAtODIsNyArODIsNyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3Qg
PSBbQ0FMYXllckhvc3QgbGF5ZXJdOwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNl
dE5hbWU6QCJXZWJWaWRlb0hvc3RpbmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpA
Ikhvc3RpbmcgbGF5ZXIiXTsKICNlbmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250
ZXh0SUQ7CiAgICAgcmV0dXJuIGxheWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWQ2YWIxMDRmOTEuLjQ5
NWZiODhiZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEyICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNz
XSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBw
cm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgY3JlYXRlcyBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2hvc2Ugc3VibGF5ZXIgaXMgY3Jl
YXRlZCBieSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGlu
Z0NvbnRleHQoKS4KKyAgICAgICAgVGhlIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIGJlIHVzZWQg
YnkgdGhlIHJlbmRlcmVyIHRvIG1hbmFnZSB0aGUgdmlkZW8gZWxlbWVudCBpbiB0aGUgV2ViIHBy
b2Nlc3MuIFdoZW4gaXRzIHNpZGUgaXMgY2hhbmdlZCBieSB0aGUgcmVuZGVyZXIsCisgICAgICAg
IGl0IGFwcGxpZXMgYSB0cmFuc2Zvcm0gd2l0aG91dCBjaGFuZ2luZyBpdHMgYWN0dWFsIHNpemUs
IGFuZCBzZW5kcyBhIG1lc3NhZ2UgdG8gdGhlIHZpZGVvIGxheWVyIG1hbmFnZXIgaW4gdGhlIEdQ
VSBwcm9jZXNzCisgICAgICAgIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyIGxh
eWVyICh2aWRlb0lubGluZUxheWVyKS4gQWZ0ZXIgdGhhdCBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2ls
bCBzZXQgaXRzIHNpemUgdG8gdGhlIGNvcnJlY3Qgb25lLgorICAgICAgICBXZSBuZWVkIHRvIHVz
ZSBhIEZlbmNlUG9ydCB0byBzeW5jaHJvbml6ZSB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBXZWIg
cHJvY2VzcyBhbmQgdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFdlIGhhdmUgdG8gdXNlIHN1
Y2ggYSBwcm9jZXNzIHRvIGNoYW5nZSB0aGUgYXBwZWFyYW5jZSBvZiBXS1ZpZGVvTGF5ZXJSZW1v
dGUgaW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoZSBzbW9vdGhuZXNzIHdoZW4gYSB1c2VyCisgICAg
ICAgIGNoYW5nZSB0aGUgc2l6ZSBvZiBhIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFt
ZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNl
dFZpZGVvSW5saW5lRnJhbWVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNr
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVv
RnJhbWVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29j
b2EuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9M
YXllclJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3Rl
IGluaXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGRlYWxsb2NdKToKKyAgICAg
ICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV0pOgorICAg
ICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOl0p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlkZW9TdWJsYXllcl0pOgorICAgICAg
ICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjpdKToKKyAgICAgICAgKC1b
V0tWaWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10pOgorICAgICAgICAoLVtXS1ZpZGVv
TGF5ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWaWRl
b0xheWVyUmVtb3RlKToKKwogMjAyMC0wMi0xMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU2MDEwLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwCmluZGV4IGQ5ZTNiZDM3MjcyLi4yYTc2MmNhNmY1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2lu
Y2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJNYWNoUG9ydC5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkuaCIKQEAgLTEwNiwxMyArMTA3LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4mCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiB9CiAK
LXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJp
dmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBMYXlvdXRSZWN0IGxh
eW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJh
Y2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBw
cmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZs
b2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExh
eWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKHByaXZhdGVNb2RlKTsKICAg
ICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAgICBtX3BsYXllci0+c2V0UHJlc2Vy
dmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogICAgIG1fcGxheWVyLT5wcmVwYXJlRm9yUmVuZGVy
aW5nKCk7Ci0gICAgbV92aWRlb0NvbnRlbnRCb3hSZWN0ID0gbGF5b3V0UmVjdDsKICAgICBtX3Zp
ZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAgbV9sYXllckhvc3RpbmdD
b250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJv
Y2VzcygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29u
dGV4dElEKCkpOwpAQCAtNDY4LDYgKzQ2OCw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7CisgICAgLy8gSW5p
dGlhbGx5IHRoZSBzaXplIG9mIHRoZSBwbGF0Zm9ybUxheWVyIHdpbGwgYmUgMHgwIGJlY2F1c2Ug
d2UgZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGluIHRoaXMgY2xh
c3MuCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobV9wbGF5ZXItPnBs
YXRmb3JtTGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKSwg
bV9pZCk7CiB9CkBAIC01MDgsNiArNTA5LDE2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpCiB9CiAjZW5kaWYKIAordm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IEZs
b2F0UmVjdCYgYm91bmRzLCBjb25zdCBJUEM6Ok1hY2hQb3J0JiBtYWNoUG9ydCkKK3sKKyAgICBp
ZiAobWFjaFBvcnQuZGlzcG9zaXRpb24oKSAhPSBNQUNIX01TR19UWVBFX01PVkVfU0VORCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQo
bWFjaFBvcnQucG9ydCgpKTsKKyAgICBtX3BsYXllci0+c2V0VmlkZW9JbmxpbmVGcmFtZShib3Vu
ZHMpOworICAgIGRlYWxsb2NhdGVTZW5kUmlnaHRTYWZlbHkobWFjaFBvcnQucG9ydCgpKTsKK30K
KwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0No
YW5nZWQoYm9vbCBpc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKQogewpAQCAtNTQ2LDEx
ICs1NTcsNiBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNGdWxs
c2NyZWVuUGVybWl0dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxheW91dFJl
Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlkZW9Db250ZW50Qm94UmVjdDsKLX0KLQogZmxvYXQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV92aWRlb0NvbnRlbnRTY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IGIyMjYz
MGZkYWRiLi5jNDhjZTQ3Yjc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC00Niw2ICs0NiwxMCBAQAog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIE1hY2hQb3J0OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYs
NyArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CiAKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29s
IHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91
dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+JiYpOworICAgIHZvaWQgcHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxv
YXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5n
KCk7CiAKICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKT4mJik7
CkBAIC0xMDksNiArMTEzLDggQEAgcHVibGljOgogICAgIHZvaWQgdmlkZW9UcmFja1NldFNlbGVj
dGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOwogICAgIHZvaWQgdGV4dFRy
YWNrU2V0TW9kZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3JlOjpJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlOjpNb2RlKTsKIAorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVGcmFtZUZl
bmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgSVBDOjpNYWNoUG9y
dCYpOworCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIHNl
dFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCk7CkBAIC0xNzgsNyArMTg0LDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBtZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgbWVkaWFQbGF5ZXJJc1ZpZGVvKCkgY29uc3QgZmluYWw7Ci0gICAgV2ViQ29yZTo6TGF5b3V0
UmVjdCBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QgZmluYWw7CiAgICAgZmxvYXQg
bWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBs
YXllclBhdXNlKCkgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllclBsYXkoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOGY4NjE1YTRmNWYuLjcwMTYxM2Nj
NTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBA
QAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2
YXRlTW9kZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQg
cHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBX
ZWJDb3JlOjpMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAt
PiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0Nv
bnRleHRJZCkgQXN5bmMKKyAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
ZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwg
Ym9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRl
b0NvbnRlbnRTY2FsZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElE
PiBsYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1cmwsIE9wdGlv
bmFsPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBX
ZWJDb3JlOjpDb250ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0
cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1
cmF0aW9uKSBBc3luYwogICAgIENhbmNlbExvYWQoKQpAQCAtNTcsNiArNTcsOCBAQCBtZXNzYWdl
cyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFZpZGVvVHJh
Y2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJ
RCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyAgICBTZXRWaWRlb0lubGluZUZyYW1lRmVu
Y2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6TWFjaFBvcnQgbWFjaFBvcnQpCisK
ICAgICAjIFBhaW50CiAgICAgIyBQYWludEN1cnJlbnRGcmFtZUluQ29udGV4dAogCkBAIC04MSw3
ICs4Myw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRl
ZCB7CiAKICAgICBBcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogICAgIEFwcGxpY2F0aW9u
RGlkQmVjb21lQWN0aXZlKCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5k
ZXggMjM3YmRlNDg3NWEuLmRlZjc4OTIzNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAt
MTkwLDcgKzE5MCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9jb250cm9sc01hbmFnZXJD
b250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50PiBtX2NsaWVudENvdW50
czsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGQ0ODg1YjQ2MzJkLi41Yzc5NTZlODRjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTcsNiArNDE3LDggQEAK
IAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTFENjdCMzM5
MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ2N0IzMzgyMTJFMUY2MTAwRkFBNzg2
IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggKi87IH07CisJCTFEQUY1QTU3MjNFQ0MwMEUwMEI3
QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREFGNUE1NTIzRUNDMDBFMDBCN0I1MTggLyogVmlkZW9M
YXllclJlbW90ZUNvY29hLm1tICovOyB9OworCQkxREFGNUE1ODIzRUNDNTY3MDBCN0I1MTggLyog
VmlkZW9MYXllclJlbW90ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMURBRjVBNTIyM0VDQTU4QjAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAq
LzsgfTsKIAkJMURCMDE5NDMyMTFDRjAwMjAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFMEQwOTUyMTFDQzIx
MzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovOyB9OwogCQkxREIwMTk0NDIxMUNGMDA1MDA5
RkIzRTggLyogV0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMURCQkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVldC5t
bSAqLzsgfTsKIAkJMUYzMzVCQzAxODVCODRGMDAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJ
bkxvYWREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUYzMzVCQkYxODVCODREODAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWRE
ZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0yMDY3LDI1ICsyMDY5LDI1IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBB
UElGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAw
Q0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5
NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTA3MDE3ODlCMjNCQUUyNjEwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcwMTc4OUMyM0JBRTI2MjAwNUYw
RkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTdCMjNDQTUzMjQw
MDY4MEQ3QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMDcxQkM1N0QyM0NBNTZEMjAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBE
N0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZUF1ZGlvVHJhY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJD
NTdGMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlQXVkaW9UcmFja1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTA3MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzFCQzU4NDIzQ0MyQzA5MDA2
ODBEN0MgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZVZpZGVvVHJhY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3
MUJDNTg1MjNDQzJDMDkwMDY4MEQ3QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3MUJDNThCMjNDREZFNzUwMDY4MEQ3QyAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MDE3ODlCMjNCQUUyNjEwMDVGMEZBQSAvKiBS
ZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQkwNzAxNzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CisJCTA3MUJDNTc3MjNDOTNCQjcwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAv
KiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKKwkJMDcxQkM1N0IyM0NBNTMyNDAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJD
NTdEMjNDQTU2RDIwMDY4MEQ3QyAvKiBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0Mg
LyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1
ZGlvVHJhY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
fTsKKwkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyog
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkw
NzFCQzU4MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3
QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
VmlkZW9UcmFja1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OworCQkwNzFCQzU4NTIzQ0MyQzA5MDA2ODBEN0MgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNThCMjNDREZFNzUwMDY4MEQ3QyAv
KiBSZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKIAkJMDcxQkM1OEMyM0NFMUVBOTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3MUJDNThEMjNDRTFFQUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3MUJDNThFMjNDRTFFQUEwMDY4MEQ3QyAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMDcyNUVGQUIyMzlBRTM4NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzI1RUZBQzIzOUFF
Mzg1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyNUVGQUIyMzlB
RTM4NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MjVFRkFDMjM5QUUzODUwMEE1
MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IH07CisJCTA3MjVFRkFEMjM5QjAyNDUwMEE1MzhBOSAvKiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKIAkJMDcyOTdGOUMxQzE3MTFFQTAwM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9y
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZUlkSGFz
aFNhbHRTdG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUMx
QzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUQxQzE3QkJF
QTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTAwLDMyICsyMTAyLDMyIEBACiAJCTA3NEU3
NjAxMURGNzA3NUQwMEQzMThFQyAvKiBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RTg4NEQxQTEzQ0FERjAwNUU5
MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFQSUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NkU4ODRGMUExM0NCQzYwMDVFOTBGQyAvKiBBUElJbmplY3RlZEJ1bmRsZVBhZ2VDb250
ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwNzkyMzEzMDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAv
KiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5
MjMxMzIyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMDc5MjMxMzMyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3OTIzMTM0MjM5QjNCMEMwMDk1
OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3OTIz
MTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkwNzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIg
LyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKKwkJMDc5MjMxMzIyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkwNzkyMzEzMzIzOUIzQjBD
MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB9OworCQkwNzkyMzEzNDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTA3OTIz
MTQyMjM5Q0JDQjUwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzkyMzE0MzIzOUNCQ0I2MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTQ0MjM5Q0JDQjYwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTQ1MjM5Q0JDQjcwMDk1OThFMiAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
OTIzMTQ2MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDc5MjMxNDcyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3OTIzMTRF
MjM5RDVGNTMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5MjMxNEUyMzlENUY1MzAwOTU5OEUyIC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IH07CiAJCTA3QTVFQkI5MUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFu
ZGxlUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRnJhbWVI
YW5kbGVSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0E1RUJCQTFDN0JB
NDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0ZyYW1lSGFuZGxlUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTA3QjFEMDRCMjNEMzhGQ0UwMDM5OUE2RSAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyog
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXll
clN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3QjNCNDc1MjNBRDg5MDQw
MEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVy
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwN0JBRjM1NjIz
QTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9Owor
CQkwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDdCM0I0NzUyM0FEODkwNDAwQkE1QjEyIC8qIFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKKwkJMDdCOTNGRjUyM0FGMENCODAwMzZGOEVBIC8qIFJlbW90ZU1l
ZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9
OworCQkwN0JBRjM1NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDdCQUYzNTcyM0EyQ0MxOTAwNDQyNTdFIC8q
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
fTsKIAkJMDdFMTlFRjgyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0UxOUVGOTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdFMTlFRkEyM0Q0MDFGMDAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlGMDUyM0Q0REM4ODAwOTRGRkI0IC8qIFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3
RTE5RjA2MjNENERDODgwMDk0RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVUZXh0VHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwN0UxOUYwNzIzRDREQzg4MDA5NEZGQjQgLyogUmVtb3RlVGV4dFRyYWNrUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwN0UxOUYwNTIzRDREQzg4MDA5NEZGQjQgLyogVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB9OworCQkwN0UxOUYwNjIzRDREQzg4MDA5NEZGQjQgLyogUmVtb3RlVGV4dFRyYWNr
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlVGV4dFRyYWNrUHJveHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkwN0UxOUYwNzIzRDREQzg4MDA5NEZG
QjQgLyogUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
VGV4dFRyYWNrUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IH07CiAJCTA3RTE5RjA4MjNENTMzQjkwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxOUYwOTIzRDUzM0JBMDA5NEZGQjQgLyogVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NjdENkE1RkU4NDAzMDdDMDJB
QUMwNyAvKiBBcHBLaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3
b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsg
c291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTI2NzcsMjIgKzI2NzksMjUgQEAKIAkJ
MUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
MUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTFEMzJGODk4MjNBODQ2NUEwMEIx
RUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzMkY4OTkyM0E4NDY4
MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFE
MzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzMkY4QTYyM0E4NjAxOTAwQjFF
QTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkxRDNBQjA0RDIzQUIwMDcyMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFEM0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDMyRjg5
ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKKwkJMUQzMkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMUQzMkY4OUIyM0E4NEJBNjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB9OworCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMUQzMkY4QTYy
M0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OworCQkxRDNBQjA0RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkxRDRENzM2QjIz
QTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQ2N0IzMzgyMTJFMUY2MTAwRkFBNzg2
IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNoYXJlU2hlZXRDYWxsYmFja0lELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREE0MDg5NDIz
QTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB9OworCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IH07CisJCTFEQUY1QTUyMjNFQ0E1OEIwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQkxREFGNUE1NDIzRUNDMDBFMDBCN0I1MTggLyogVmlkZW9MYXll
clJlbW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTFEQUY1QTU1MjNFQ0Mw
MEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgfTsKIAkJMURCQkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVl
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU2hhcmVTaGVl
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURFMEQwOTUyMTFDQzIxMzAwNDM5
QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMURFMkRGQUMyM0E5
NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTFGMDE4
MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyogV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzAyOCwyMCArMzAzMywyMCBAQAogCQkyRDlFQTMwQzFBOTZDQjU5MDAyRDI4MDcgLyogV0tQYWdl
SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQ5RUEzMEUxQTk2Q0JGRjAwMkQyODA3IC8qIFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RUEzMTAxQTk2RDlF
QjAwMkQyODA3IC8qIFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDlGQjIwMDIzNzUyMDlEMDA0OUY5MzYg
LyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjAx
MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQ
VVByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDlGQjIwMjIzNzUy
MDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVQcm9jZXNzLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRDlGQjIwMzIzNzUyMDlE
MDA0OUY5MzYgLyogR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJEOUZCMjAwMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkyRDlGQjIwMTIzNzUyMDlEMDA0
OUY5MzYgLyogR1BVUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQcm9jZXNzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkyRDlGQjIwMjIz
NzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHUFVQcm9jZXNz
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJ
CTJEOUZCMjAzMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkyRDlGQjIwNTIzNzUyMDlEMDA0
OUY5MzYgLyogR1BVUHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVByb2Nl
c3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOUZCMjA3MjM3NTIwOUQw
MDQ5RjkzNiAvKiBHUFVQcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVUHJv
Y2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RkIyMDgyMzc1MjA5
RDAwNDlGOTM2IC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20u
YXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTJEOUZCMjA5MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjBDMjM3NTIwOUQwMDQ5RjkzNiAv
KiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RDlGQjIwOTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTJEOUZCMjBDMjM3NTIwOUQw
MDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IH07CiAJCTJEOUZCMjEwMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVTZXJ2
aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdQVVNlcnZpY2VFbnRyeVBv
aW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlGQjIxMjIzNzUyMDlEMDA0
OUY5MzYgLyogSW5mby1PU1gucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJJbmZvLU9TWC5wbGlzdCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOUZCMjEzMjM3NTIwOUQwMDQ5RjkzNiAv
KiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8taU9TLnBsaXN0Ijsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIyMTQyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJE
OUZCMjE1MjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQ
VVByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ5RkIyMTQyMzc1MjA5
RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMkQ5RkIyMTUyMzc1MjA5RDAwNDlGOTM2IC8q
IEdQVVByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTJEOUZCMjI4MjM3NTIzODMwMDQ5RjkzNiAv
KiBjb20uYXBwbGUuV2ViS2l0LkdQVS54cGMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2aWNlIjsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5HUFUueHBjOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQkyRDlGQjIyQTIzNzUyM0ZCMDA0OUY5MzYgLyogR1BVU2Vydmlj
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBHUFVTZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyREEwNDlCMTE4MENDQ0QzMDBBQUZBOUUgLyogUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBs
YXRmb3JtQ0FMYXllclJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01
MjQ2LDYgKzUyNTEsNyBAQAogCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1QTREMjNF
QzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0Mg
LyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjNDOTNCQjcw
MDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3OTIzMTMxMjM5
QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLApAQCAtNTI2
Myw2ICs1MjY5LDcgQEAKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZVByb3h5LmggKi8sCiAJCQkJMDdFMTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZC
NCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMURBRjVBNTIyM0VDQTU4QjAw
QjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkwNzFCQzU4MzIzQ0MyQkQ1MDA2
ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTgyMjND
QzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJKTsKQEAg
LTYxMzksNiArNjE0NiwxNSBAQAogCQkJcGF0aCA9IEF1dG9tYXRpb247CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQkxREFGNUE0RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2Eg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1QTU0
MjNFQ0MwMEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLywKKwkJCQkxREFG
NUE1NTIzRUNDMDBFMDBCN0I1MTggLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovLAorCQkJ
KTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTFGMDE4MTY4MTg1OERDMTUwMEY5Mjg4NCAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTk3LDggKzcwMTMsOCBAQAogCQkJCTFBNDIyRjhB
MThCMjlCNTQwMEQ4Q0Q5NiAvKiBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUuaCAqLywKIAkJCQk1
MUQxMjQ4NDFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCAqLywKIAkJCQk1
MUQxMjQ4NTFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUubW0gKi8sCi0JCQkJ
REY0NjJFMEUyM0YyMkY1MzAwRUZGMzVGIC8qIFdLSFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5oICov
LAogCQkJCTUxRDEyNDg2MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZUludGVy
bmFsLmggKi8sCisJCQkJREY0NjJFMEUyM0YyMkY1MzAwRUZGMzVGIC8qIFdLSFRUUENvb2tpZVN0
b3JlUHJpdmF0ZS5oICovLAogCQkJCTFBQjQwRUUzMUJGNjc3RTMwMEJBODFCRSAvKiBXS01lbnVJ
dGVtSWRlbnRpZmllcnMubW0gKi8sCiAJCQkJMUFCNDBFRTQxQkY2NzdFMzAwQkE4MUJFIC8qIFdL
TWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaCAqLywKIAkJCQkxQTVCMUM0RjE4OTg2MDZGMDA0
RkNGOUIgLyogV0tOYXZpZ2F0aW9uLmggKi8sCkBAIC0xMDI1NCw3ICsxMDI3MCw2IEBACiAJCQkJ
MkQ1ODc1QkYyMTlCNTMxNTAwNzBCOUFBIC8qIEVkaXRhYmxlSW1hZ2VDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1Jhbmdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MUFCNTEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9y
U3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCURGNDYyRTEyMjNGMzM4QkUwMEVGRjM1RiAvKiBX
S0NvbnRlbnRXb3JsZFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREE4MTBGNDM3
RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUIxNUE4NTEzODQz
QTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTA2MDcsNiArMTA2MjIsNyBAQAogCQkJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThF
QyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRFODY0
OTMxQjE2NzUwNzAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aCBpbiBIZWFkZXJzICovLAorCQkJCTFEQUY1QTU4MjNFQ0M1NjcwMEI3QjUxOCAvKiBWaWRlb0xh
eWVyUmVtb3RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDEyNUM1RTE4NTdFQTA1MDAzQkEzQ0Ig
LyogVmlld0dlc3R1cmVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDFCNUQ1RTE4
NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEODE5QkEyMTg2MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21l
dHJ5Q29sbGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTA3MjEsNyArMTA3Mzcs
NiBAQAogCQkJCUZFRTQzRkQzMUU2N0IwMTgwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1
cHREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRURCRENENzFFNjhEMjA1MDBBNTlG
OEYgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQzhFMkEzNjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCURGNDYyRTBGMjNGMjJGNTUwMEVGRjM1RiAvKiBXS0hU
VFBDb29raWVTdG9yZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyODM0MTI3NUQ3
MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNB
OEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFDODkxRDY2MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JV
SS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDkzNCw2ICsxMDk0OSw3IEBACiAJCQkJMEYwNDE1OUUy
M0M3Q0M3MzAwNjBBM0UyIC8qIFdLQ29udGVudFZpZXdNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxMTA2NUZDMjNFQzk1NzIwMDU0NDNENiAvKiBXS0NvbnRlbnRXb3JsZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTExMDY1RkQyM0VDOTU3QjAwNTQ0M0Q2IC8qIFdLQ29udGVudFdvcmxkSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAorCQkJCURGNDYyRTEyMjNGMzM4QkUwMEVGRjM1RiAvKiBXS0Nv
bnRlbnRXb3JsZFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjlFMjRCMTEyMEUxNUMw
MEExMzdFMCAvKiBXS0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjk4MTkyMDI2
NzIwMEExRkEzNyAvKiBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTQ0NUJBNTE4NEQ1RkRBMDA0QjM0MTQgLyogV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTAxNyw2ICsxMTAzMyw3IEBACiAJCQkJMUE0MjJGOEIx
OEIyOUI1NDAwRDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjYyRTczMTIxNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTFEMTI0OTkxRTc2M0MwMTAwMkIyODIwIC8qIFdLSFRUUENvb2tp
ZVN0b3JlLmggaW4gSGVhZGVycyAqLywKKwkJCQlERjQ2MkUwRjIzRjIyRjU1MDBFRkYzNUYgLyog
V0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzY2QTRCNTIz
MjA5NjI0MDBFQTRENDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMTBBRTBEMTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cu
aCBpbiBIZWFkZXJzICovLApAQCAtMTIzODQsNiArMTI0MDEsNyBAQAogCQkJCUNENDkxQjE3MUU3
MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMURBRjVBNTcyM0VDQzAw
RTAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTJEMUI1RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4MTlCQTExODYyODAwRTAwMUYwM0Qx
IC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMjY4NDA1NTIxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNw
YXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCmluZGV4IDlkYzBlYmI2MDY2Li43NDdlYzgxNjg3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMzAsMTAgKzMwLDEyIEBACiAKICNpbmNsdWRlICJBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJN
YWNoUG9ydC5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTkwLDE3ICs5MiwxNiBAQCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlh
UGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFy
ZSkKIHsKLSAgICBhdXRvIGxheW91dFJlY3QgPSBtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJl
Y3QoKTsKICAgICBhdXRvIHNjYWxlID0gbV9wbGF5ZXItPnBsYXllckNvbnRlbnRzU2NhbGUoKTsK
IAotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwg
cHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIGxheW91dFJlY3QsIHNjYWxlKSwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CisgICAg
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2
ZXNQaXRjaCwgcHJlcGFyZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHRoaXNdKGF1dG8gY29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWNvbnRleHRJZCkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0
OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQoY29udGV4dElkLnZhbHVlKCkp
OworICAgICAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRo
aXMsIGNvbnRleHRJZC52YWx1ZSgpKTsKICAgICB9LCBtX2lkKTsKIH0KIApAQCAtMzA1LDYgKzMw
Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzaXplQ2hhbmdlZChXZWJDb3Jl
OjpGbG9hdFNpemUgbmF0dXJhbFNpemUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIpOwogICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKIH0KIApAQCAt
NTQ3LDcgKzU0OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKE1lZGlh
U3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQo
KTsKKyAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSkKQEAgLTY3MywxMiArNjc1LDEyIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMoKSBjb25zdAogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8g
YSBsYXllciwgc28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBX
ZSBhbHdheXMgcmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9
CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBH
Q0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9v
bCkKQEAgLTEwMDUsNiArMTAwNywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
ZW5naW5lVXBkYXRlZCgpCiAgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOwogfQog
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNl
ZChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IElQQzo6TWFjaFBvcnQmIG1hY2hQb3J0KQor
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpTZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKHJlY3QsIG1hY2hQb3J0KSwgbV9pZCk7Cit9CisK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdl
ZCgpCiB7CiAgICAgbV9wbGF5ZXItPmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzNy4uZWY5N2Q2ZGY5ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYv
TWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7
CitjbGFzcyBNYWNoUG9ydDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSVNPV2Vi
VlRUQ3VlOwogfQpAQCAtMTIwLDYgKzEyNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1cnJlbnRQ
bGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wpOwogI2VuZGlmCiAKKyAgICB2b2lk
IHNldFZpZGVvSW5saW5lRnJhbWVGZW5jZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29u
c3QgSVBDOjpNYWNoUG9ydCYpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29u
c3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAqbV9sb2dnZXI7IH0KICAg
ICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlIjsgfQpAQCAtMjMxLDcgKzIzNyw2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbCB7IH0KIAogICAg
IHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JikgZmluYWw7Ci0KICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFs
OwogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xp
bnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAg
IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5h
bDsKQEAgLTM0OCw3ICszNTMsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5
ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8
UGxhdGZvcm1MYXllcj4gbV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVy
PiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21h
bmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5jMjQ5MDZmMjFiMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
UExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIENBTGF5ZXI7CisKK2NsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0
cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSosIExheWVySG9zdGluZ0NvbnRleHRJRCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29j
b2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41N2Q2NzljNTdmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworbmFtZXNwYWNlIFdlYktpdCB7
CitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRl
b0xheWVyUmVtb3RlIDogQ0FMYXllcgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQ0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29h
L1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5kMzZhMGJjM2NmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
Lm1tCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQuaCIK
KyNpbXBvcnQgIk1hY2hQb3J0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRS
ZWN0Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKyNpbXBvcnQg
PHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorCitAaW1wbGVt
ZW50YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworICAgIFJldGFp
blB0cjxDQUxheWVyPiBfdmlkZW9TdWJsYXllcjsKKyAgICBDQUNvbnRleHQqIF9jb250ZXh0Owor
fQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Cisg
ICAgaWYgKHNlbGYpCisgICAgICAgIHNlbGYubWFza3NUb0JvdW5kcyA9IFlFUzsKKworICAgIHJl
dHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbTlNPYmplY3QgY2FuY2Vs
UHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwor
LSAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUKK3sKKyAgICByZXR1cm4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5nZXQoKTsKK30K
KworLSAodm9pZClzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6KFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgX21lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZSA9IG1ha2VXZWFrUHRyKCptZWRpYVBsYXllclByaXZhdGVSZW1v
dGUpOworfQorCistIChDQUxheWVyICopdmlkZW9TdWJsYXllcgoreworICAgIHJldHVybiBfdmlk
ZW9TdWJsYXllci5nZXQoKTsKK30KKworLSAodm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVy
ICopdmlkZW9TdWJsYXllcgoreworICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsK
K30KKworLSAodm9pZClsYXlvdXRTdWJsYXllcnMKK3sKKyAgICBpZiAoW192aWRlb1N1YmxheWVy
IHN1cGVybGF5ZXJdICE9IHNlbGYpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCBzb3VyY2VWaWRlb0ZyYW1lID0gc2VsZi52aWRlb0xheWVyRnJhbWU7CisgICAgV2Vi
Q29yZTo6RmxvYXRSZWN0IHRhcmdldFZpZGVvRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICBDR0Fm
ZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSh0YXJn
ZXRWaWRlb0ZyYW1lLndpZHRoKCkgLyBzb3VyY2VWaWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldFZp
ZGVvRnJhbWUuaGVpZ2h0KCkgLyBzb3VyY2VWaWRlb0ZyYW1lLmhlaWdodCgpKTsKKworICAgIFtD
QVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9u
czpZRVNdOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1Jl
Y3RHZXRNaWRYKHNlbGYuYm91bmRzKSwgQ0dSZWN0R2V0TWlkWShzZWxmLmJvdW5kcykpXTsKKyAg
ICBbX3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOnRyYW5zZm9ybV07CisgICAgW0NB
VHJhbnNhY3Rpb24gY29tbWl0XTsKKworICAgIF9jb250ZXh0ID0gW0NBQ29udGV4dCBjdXJyZW50
Q29udGV4dF07CisgICAgTlNUaW1lSW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbQ0FUcmFu
c2FjdGlvbiBhbmltYXRpb25EdXJhdGlvbl07CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVy
Zm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihyZXNvbHZlQm91
bmRzKSBvYmplY3Q6bmlsXTsKKyAgICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihyZXNvbHZlQm91bmRzKSB3aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OmFuaW1hdGlvbkR1cmF0
aW9uICsgMC4xXTsKKyAgICB9KTsKK30KKworLSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAg
W05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNl
bGVjdG9yOkBzZWxlY3RvcihyZXNvbHZlQm91bmRzKSBvYmplY3Q6bmlsXTsKKworICAgIGlmIChb
X3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5k
cykgJiYgQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KHNlbGYuYWZmaW5lVHJhbnNmb3JtKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRy
YW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisKKyAgICBpZiAoIUNHUmVjdEVxdWFs
VG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykpIHsKKyAgICAgICAgc2Vs
Zi52aWRlb0xheWVyRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICAgICAgaWYgKGF1dG8gKm1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZSA9IHNlbGYubWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKSB7Cisg
ICAgICAgICAgICBNYWNoU2VuZFJpZ2h0IF9mZW5jZVNlbmRSaWdodCA9IE1hY2hTZW5kUmlnaHQ6
OmFkb3B0KFtfY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsKKyAgICAgICAgICAgIG1hY2hfcG9y
dF9uYW1lX3QgZmVuY2VQb3J0ID0gX2ZlbmNlU2VuZFJpZ2h0LmxlYWtTZW5kUmlnaHQoKTsKKyAg
ICAgICAgICAgIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS0+c2V0VmlkZW9JbmxpbmVGcmFtZUZl
bmNlZChzZWxmLnZpZGVvTGF5ZXJGcmFtZSwgSVBDOjpNYWNoUG9ydChmZW5jZVBvcnQsIE1BQ0hf
TVNHX1RZUEVfTU9WRV9TRU5EKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHldOworICAg
IFtfdmlkZW9TdWJsYXllciBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBjb21taXRdOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5Q
dHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElEIGNvbnRl
eHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHksIGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUgZW1wdHkg
KGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgMCkgYW5kIGludmlzaWJsZS4KKyAgICAvLyBUaGUg
cmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNpemVzIG9mIFdLVmlkZW9MYXllclJlbW90ZSB0byB0
cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMgYW5kIG1ha2UgdGhlbSB2aXNpYmxlLgorICAgIFdL
VmlkZW9MYXllclJlbW90ZSAqdmlkZW9MYXllclJlbW90ZSA9IFtbV0tWaWRlb0xheWVyUmVtb3Rl
IGFsbG9jXSBpbml0XTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDAsIDApXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0
TmFtZTpAIldLVmlkZW9MYXllclJlbW90ZSJdOworI2VuZGlmCisKKyAgICBbdmlkZW9MYXllclJl
bW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
XTsKKworICAgIGF1dG8gdmlkZW9TdWJsYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0
ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQpOworICAgIFt2aWRlb0xh
eWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3Zp
ZGVvTGF5ZXJSZW1vdGUgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3Zp
ZGVvU3VibGF5ZXIgc2V0RnJhbWU6dmlkZW9MYXllclJlbW90ZS5ib3VuZHNdOworCisgICAgcmV0
dXJuIHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390662</attachid>
            <date>2020-02-13 10:04:48 -0800</date>
            <delta_ts>2020-02-13 12:02:20 -0800</delta_ts>
            <desc>WIP patch - fixing build errors</desc>
            <filename>bug-206132-20200213100446.patch</filename>
            <type>text/plain</type>
            <size>84969</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlYzI3NGExZjM5ZGU0
OTMwMDgxMzJhMWE1ZjMxMTkxYjRkNmU2OS4uODRkYjRiN2ZkZmNlZDAyOTBlYzU0ODBkNWM5NTI3
NGJjMDE1MjA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTEzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW50ZXJm
YWNlIHRvIE1lZGlhUGxheWVyIHRvIHNldCB0aGUgZnJhbWUgb2YgYSB2aWRlbyBpbiB0aGUgaW5s
aW5lIG1vZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9JbmxpbmVGcmFtZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9M
YXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0lubGluZUZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbToKKyAgICAgICAgKCtbQ0FM
YXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpdKToKKwogMjAyMC0wMi0xMiAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjU2MDEwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggODkwYTg0MzhmYTBmMDY3
NTc2ZDUwYTc5NGZkMmUxMGIzNjBhNTUxMy4uMzNiZGJlODk5NTAyMzE1YTAzYWUxYjE4ZGJjMWQ2
M2Q4ZWU3NmExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDIt
MTMgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4g
R1BVIHByb2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBp
biB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2ViIHByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFs
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisKIDIwMjAtMDItMTIgIFJ5YW4gSGFkZGFkICA8
cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMWQ2YWIxMDRmOTFhNzNhYmMzMjcyMGMxOTBjYWU2N2MxNmM0
Mjk3MC4uZDRiYjA5NjlmMDVkZTFiYjIwZjgxNmZmM2VlNjdiZTE4YzZmZmUzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0OSBAQAorMjAyMC0wMi0xMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHBy
b3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0
aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGNyZWF0ZXMgV0tW
aWRlb0xheWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkgTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KCkuCisgICAgICAg
IFRoZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSByZW5kZXJlciB0byBt
YW5hZ2UgdGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBXaGVuIGl0cyBzaWRl
IGlzIGNoYW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBsaWVzIGEgdHJhbnNm
b3JtIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2VuZHMgYSBtZXNzYWdl
IHRvIHRoZSB2aWRlbyBsYXllciBtYW5hZ2VyIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICB0
byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllciAodmlkZW9JbmxpbmVMYXll
cikuIEFmdGVyIHRoYXQgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRo
ZSBjb3JyZWN0IG9uZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2UgYSBGZW5jZVBvcnQgdG8gc3lu
Y2hyb25pemUgdGhlIHRyYW5zYWN0aW9ucyBpbiB0aGUgV2ViIHByb2Nlc3MgYW5kIHRoZSBHUFUg
cHJvY2Vzcy4KKworICAgICAgICBXZSBoYXZlIHRvIHVzZSBzdWNoIGEgcHJvY2VzcyB0byBjaGFu
Z2UgdGhlIGFwcGVhcmFuY2Ugb2YgV0tWaWRlb0xheWVyUmVtb3RlIGluIG9yZGVyIHRvIGd1YXJh
bnRlZSB0aGUgc21vb3RobmVzcyB3aGVuIGEgdXNlcgorICAgICAgICBjaGFuZ2UgdGhlIHNpemUg
b2YgYSB2aWRlbyBlbGVtZW50LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZUZyYW1lRmVu
Y2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJDb250ZW50Qm94UmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldFZpZGVvSW5saW5lRnJhbWVGZW5jZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTog
QWRkZWQuCisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBpbml0XSk6CisgICAgICAgICgt
W1dLVmlkZW9MYXllclJlbW90ZSBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJl
bW90ZSBtZWRpYVBsYXllclByaXZhdGVSZW1vdGVdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVy
UmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTpdKToKKyAgICAgICAgKC1bV0tWaWRl
b0xheWVyUmVtb3RlIHZpZGVvU3VibGF5ZXJdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIHNldFZpZGVvU3VibGF5ZXI6XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBs
YXlvdXRTdWJsYXllcnNdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHJlc29sdmVC
b3VuZHNdKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlVmlkZW9MYXllclJlbW90ZSk6CisKIDIw
MjAtMDItMTIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCAwZjllYWQ3YmI5NTI4MWI5ZTI2
NDgxMTlkZGY1Y2VlZTVmOTQ4MTIxLi41MzNmNzBkZGY4NWJkMWZiYmVjYjI2NzY1NzRiOTcwOTg1
ZTNmYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJlbmRlckNvbnRl
eHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQogKyAoTlNBcnJh
eSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7CiArIChDQUNv
bnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250ZXh0V2l0aE9w
dGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVmYWQ1
YzE5YjhlOGQ2NWRmMjlkZDJhMWY1NTNmN2Y2ZTJmMjliMzkuLjM0MTBhMjg1NzUzYTdlYmIxZmI2
OGY4ZjI3MGQ0MjdjZDA3NzM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMSw2ICsxMzEsNyBAQAogCQkwNzUzODYwMzE0
NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2Fj
aGVkVGV4dFRyYWNrLmggKi87IH07CiAJCTA3NTRBNUVBMjE1RUEzQjgwMDJEM0E5OSAvKiBSZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VGYWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU3QjEzQzIxNEFFNzk3
MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwNzVCQTg0OTIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXll
ck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovOyB9Owog
CQkwNzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTcxODg0
NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLm1tICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyog
VGV4dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87
IH07CkBAIC02MzMsNyArNjM0LDYgQEAKIAkJMUQyRjhFMDQyMzQ0NzUxNjAwOTkzQjY4IC8qIEVu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQTIzM0MzRDBCMDBFRTIyOEQgLyogRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjggLyogSFRNTFZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBIVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQaWN0dXJlSW5QaWN0dXJlV2luZG93
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZD
RDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFEMzkyRjJEMjNGMjBBNzAw
MEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDM5MkYyODIzRjIwOUI0MDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQg
LyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAw
QjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBp
Y3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTFGMzZFQTlDMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3Jv
dW5kVGFza0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0Nv
bnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTU4Myw2ICsxNTgzLDcgQEAKIAkJNTJCMEQ0QkUxQzU3RkQxRTAwNzdDRTUzIC8qIFBs
YXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMwMUM1N0ZENjYw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8q
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFu
YWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICov
OyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE0
MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRDVBMUE4MUM1NzQ4QTMwMERF
MzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExQTUxQzU3NDg4OTAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRG
IC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU0NjcsNiAr
NTQ2OCw3IEBACiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVF
QjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3
OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc1QkE4NDcyMDYx
OEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTgxODg0NDg3MjAwRTE1
QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1MDgsOSArNjUxMCw2IEBACiAJ
CTFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0
dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlE
OTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZD
NSAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5Q
aWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5MkYyODIz
RjIwOUI0MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5MkYyQTIzRjIwOUI1MDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5
MkYyQjIzRjIwOUQ4MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1
cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAwNEI3ODBFIC8q
IE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JTaGFy
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjExQkE4NDEwMDRC
NzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYXJlRGF0YS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDQ1LDYgKzg0NDQsOCBAQAogCQk1
MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdITFNM
RGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTExMyw3ICsyNTExNCw3IEBACiAJCQkJRTRBRkNGQTQw
REFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFF
MDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBE
MzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCi0JCQkJMUQzOTJGMkIyM0YyMDlEODAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5
IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5QkMx
IC8qIFdpZHRoQ2FjaGUuaCAqLywKIAkJCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5jcHAgKi8sCkBAIC0yNjcxOSw4ICsyNjcyMCw4IEBACiAJCQkJN0EyOUY1NzEx
OEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJ
CQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRB
MyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJCQkJQ0QzMzZGNjUxN0ZBMEFDNjAw
REREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgKi8sCiAJCQkJQ0QzMzZGNjYx
N0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
OEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oICovLApAQCAtMzI4MTcsNiArMzI4MTgsNyBAQAogCQkJCTUyQjBENEMyMUM1N0ZGOTEw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTgxQzU3NDhBMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzVCQTg0OTIwNjE4
QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
RTgzREIyMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDlEODI3QTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJl
Q29waWVyQ1YuaCBpbiBIZWFkZXJzICovLApAQCAtMzQyNDMsNyArMzQyNDUsNyBAQAogCQkJCTdD
RTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVz
c2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5
ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1
RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
RTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTViMTEyNzMyYmFkNTliMDFk
OGE0MTgxYi4uYjQ5ZGE0MjY3NGJlNDY4YzY5ZDM4Y2NjNGFhZTU2ZjQyNGNlMTg0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTEwLDkgKzExMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhdXNlKCkgZmluYWwgeyB9CiAKICAg
ICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVs
bHB0cjsgfQotCiAgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gRmxvYXRTaXplKCk7IH0KLQogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogCkBAIC05MTcsNiArOTE1LDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmRpZExvYWRp
bmdQcm9ncmVzcygpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZGlkTG9hZGluZ1Byb2dyZXNzKCk7
CiB9CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCit2b2lkIE1lZGlhUGxheWVyOjpzZXRWaWRl
b0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpCit7CisgICAgbV9wcml2YXRlLT5z
ZXRWaWRlb0lubGluZUZyYW1lKGZyYW1lKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVy
OjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7IAogICAgIG1fc2l6ZSA9IHNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3
ZTZjYjhhMzkwZGY3ZmUxYTdhYWUwMTczOWRjOTQ4Zjc3NjYyMWVlLi4xYTkwMDNlNWU1MDcyODQ2
MTM0YWYxYzZkOTQ2MjdjNWUxMDgyN2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTMyOCw2ICszMjgsMTAgQEAgcHVibGljOgogICAg
IGJvb2wgaGFzVmlkZW8oKSBjb25zdDsKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Q7CiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lKGNvbnN0
IEZsb2F0UmVjdCYpOworI2VuZGlmCisKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVy
biBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmgKaW5kZXggOWY3ZjZlNmIwMmQzYmViZTA5MGViY2MzMmE0YjBkY2ExY2MxNzVhOC4uMWUx
Nzk5NDQ0MDFkYThhNGZlMTk3Y2Q3YjcwZjU0YTE2MjYxY2ZiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE1
NCw2ICsxNTQsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYpIHsgfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaWRlb0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVjdCYpIHsgfTsKKyNlbmRpZgorCiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnRleHQmIGMsIGNvbnN0IEZsb2F0UmVjdCYgcikgeyBwYWludChjLCByKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IGFmNmM4MDRmNmNmOGU2MDhkODdkODM5ZmQ4MDZmMDg5MDNk
MjNmYjYuLjM2YzJhODYyNDkwNjJjYzk1NjUxYTM5MWM3NGZhZWU4OTM1ODlhOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTE3NCw2ICsxNzQsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgcGxh
dGZvcm1QYXVzZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNdXRlZChib29sKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVj
dCYpIGZpbmFsOworI2VuZGlmCiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCmluZGV4IDBkYzJlNzcyYWU5ZGU5MzIzNWRkMGNjNWM5ODk3OGQ3ODI2ZDM2ZTcu
LjY5ZTc4NzFiNDE0MDI4YWY3ZGRiNTZmYzRhYTRjOTA2MjY3ZDRiY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQpAQCAtMTUyMiw2ICsxNTIyLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250
CiAgICAgbV92aWRlb0ZyYW1lSGFzRHJhd24gPSB0cnVlOwogfQogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRl
b0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpCit7CisgICAgbV92aWRlb0xheWVy
TWFuYWdlci0+c2V0VmlkZW9JbmxpbmVGcmFtZShmcmFtZSk7Cit9CisjZW5kaWYKKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIW1ldGFEYXRhQXZh
aWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCmluZGV4IGNjYjg3NTY0MzNhZDNkNGM2
YjBhMWMzMTYzNmE2MjkxYWQxMDQ1NmUuLmMyZjBlMDFmYjFkZThkY2ZjNmJkMWI4MzY1NzZmMmIz
ZGQwNmUxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgdmlkZW9GdWxs
c2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1l
OyB9CiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNv
bnRlbnRTaXplKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lRnJhbWUoRmxvYXRSZWN0
KTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBm
aW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUlt
YWdlUHRyKSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVj
dCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9i
akMubW0KaW5kZXggNTcxMGM2YTNjYTBmNGE0NmQ0YzM3YzA5ZGZhZWY1YzA1ZDQ5YmUyOC4uYzMw
NWI3ZjlhYTI5MjE2NTA4NjQ4NjI5OTY4M2MyZjg4MTkxYmJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtNzMsNiArNzMsMjAgQEAg
dm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAq
dmlkZW9MYXllciwgSW50U2l6ZSBjb24KICAgICB9CiB9CiAKK3ZvaWQgVmlkZW9MYXllck1hbmFn
ZXJPYmpDOjpzZXRWaWRlb0lubGluZUZyYW1lKEZsb2F0UmVjdCB2aWRlb0lubGluZUZyYW1lKQor
eworICAgIGlmICghbV92aWRlb0lubGluZUxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3ZpZGVvSW5saW5lRnJhbWUgPSB2aWRlb0lubGluZUZyYW1lOworICAgIC8vIFdlIGRvIG5vdCB3
YW50IGFuaW1hdGlvbnMgaGVyZQorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFttX3ZpZGVvSW5saW5lTGF5
ZXIgc2V0RnJhbWU6bV92aWRlb0lubGluZUZyYW1lXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOworICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKK30KKwogdm9pZCBWaWRlb0xheWVyTWFu
YWdlck9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRy
IGltYWdlKQogewogICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVy
RXh0cmFzLm1tCmluZGV4IDE4MDVjMGE1ZjZjZmYyODM2NWNmNmM4Yzg3MTNiNDJlODUwMjk4ZTku
LmYxMDI3NDQ5ZmJkOGY5MjYzNmMzNTQ1NDY5ZGNhZDQzOTQyMWJjMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFz
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVD
QUxheWVyRXh0cmFzLm1tCkBAIC04Miw3ICs4Miw3IEBACiB7CiAgICAgQ0FMYXllckhvc3QgKmxh
eWVySG9zdCA9IFtDQUxheWVySG9zdCBsYXllcl07CiAjaWZuZGVmIE5ERUJVRwotICAgIFtsYXll
ckhvc3Qgc2V0TmFtZTpAIldlYlZpZGVvSG9zdGluZ0xheWVyIl07CisgICAgW2xheWVySG9zdCBz
ZXROYW1lOkAiSG9zdGluZyBsYXllciJdOwogI2VuZGlmCiAgICAgbGF5ZXJIb3N0LmNvbnRleHRJ
ZCA9IGNvbnRleHRJRDsKICAgICByZXR1cm4gbGF5ZXJIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmlu
ZGV4IGQ5ZTNiZDM3MjcyYzYyNzFjMWJjODlhZTJiN2YzMjdlYzJlYTJjYmEuLjJhNzYyY2E2ZjUz
OTk5MzMxZGJmOTcwN2ZkNWE4MTFkMDI2ODA0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmgi
CkBAIC0xMDYsMTMgKzEwNywxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQo
VVJMJiYgdXJsLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JgogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9h
dCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXll
ckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0
ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBw
cmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRl
bnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250
ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXll
ci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNl
dFByZWxvYWQocHJlbG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNl
cnZlc1BpdGNoKTsKICAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1f
dmlkZW9Db250ZW50Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2Fs
ZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAg
LTQ2OCw2ICs0NjgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
RW5naW5lVXBkYXRlZCgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUgc2l6
ZSBvZiB0aGUgcGxhdGZvcm1MYXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBwcm92
aWRlIG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1fbGF5
ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkp
OwogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6Rmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpAQCAt
NTA4LDYgKzUwOSwxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
V2FpdGluZ0ZvcktleUNoYW5nZWQoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZChjb25zdCBGbG9hdFJlY3QmIGJvdW5k
cywgY29uc3QgSVBDOjpNYWNoUG9ydCYgbWFjaFBvcnQpCit7CisgICAgaWYgKG1hY2hQb3J0LmRp
c3Bvc2l0aW9uKCkgIT0gTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KG1hY2hQb3J0LnBvcnQo
KSk7CisgICAgbV9wbGF5ZXItPnNldFZpZGVvSW5saW5lRnJhbWUoYm91bmRzKTsKKyAgICBkZWFs
bG9jYXRlU2VuZFJpZ2h0U2FmZWx5KG1hY2hQb3J0LnBvcnQoKSk7Cit9CisKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wgaXND
dXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcykKIHsKQEAgLTU0NiwxMSArNTU3LDYgQEAgYm9v
bCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1MYXlvdXRSZWN0IFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3ZpZGVvQ29udGVudEJveFJlY3Q7Ci19Ci0KIGZsb2F0IFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
dmlkZW9Db250ZW50U2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBiMjI2MzBmZGFkYmY0NzNmN2Ri
YTk3YTMzZmJmMmM1M2RiYjEwNzg5Li5jNDhjZTQ3Yjc1MjExZmZjNGM2NWYzZGZhYTg2MzBlZmUy
YWNkZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgewor
Y2xhc3MgTWFjaFBvcnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvVHJh
Y2tQcml2YXRlOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CkBAIC03Niw3ICs4MCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZ2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24mKTsKIAotICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgV2ViQ29yZTo6TGF5b3V0UmVjdCwgZmxvYXQg
dmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJI
b3N0aW5nQ29udGV4dElEPiYmKT4mJik7CisgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9v
bCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBw
cmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRl
bnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250
ZXh0SUQ+JiYpPiYmKTsKICAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKTsKIAogICAgIHZv
aWQgbG9hZChVUkwmJiwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYmLCBjb25z
dCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYpPiYmKTsKQEAgLTEwOSw2ICsx
MTMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZh
dGU6Ok1vZGUpOwogCisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgYm91bmRzLCBjb25zdCBJUEM6Ok1hY2hQb3J0Jik7CisKICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZvaWQgc2V0V2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbWVk
aWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVy
SXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXll
cklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IG1lZGlhUGxh
eWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBtZWRpYVBsYXllckNv
bnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGF1c2UoKSBm
aW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1ZmM0MmRjZDk1ZWY2NTQ0NjE0Y2YxOWFh
M2FkN2MyLi43MDE2MTNjYzU5OGM3Zjc4YjVkNGE5ODhlZjRhNDU2Nzk3YmJmMmM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RS
ZWZDb3VudGVkIHsKLSAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51
bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlv
dXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8
V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5
bmMKKyAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50OF90
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2
ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2Fs
ZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXllckhvc3Rp
bmdDb250ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1cmwsIE9wdGlvbmFsPFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpDb250
ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBBc3lu
YwogICAgIENhbmNlbExvYWQoKQpAQCAtNTcsNiArNTcsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFZpZGVvVHJhY2tTZXRTZWxlY3Rl
ZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFi
bGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpNb2RlIG1vZGUpCiAKKyAgICBTZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKFdlYkNvcmU6
OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6TWFjaFBvcnQgbWFjaFBvcnQpCisKICAgICAjIFBhaW50
CiAgICAgIyBQYWludEN1cnJlbnRGcmFtZUluQ29udGV4dAogCkBAIC04MSw3ICs4Myw2IEBAIG1l
c3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAKICAgICBB
cHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogICAgIEFwcGxpY2F0aW9uRGlkQmVjb21lQWN0
aXZlKCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMjM3YmRlNDg3
NWE3MzBlNjI4ZDUyYjhkNDc2NDc0ZTFlOGMyMmEzZC4uZGVmNzg5MjM1MTYzNGQ5ODNlMGQxNWJk
NTkzZmU1YTI5MjE4ZDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAs
NyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsg
MCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAg
IAorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkNDg4NWI0NjMyZGU5Yzg4Y2YwMjY1ZDVlZWY5YWIwNzU0YmY1NTg3Li41Yzc5NTZlODRjMjVk
MWY2ZjBjZTNmOGNiYjcxZTcyMjQ4MzAwZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNyw2ICs0MTcsOCBAQAogCQkxRDRENzM3
MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkMy
M0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAq
LzsgfTsKIAkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJMUQ2N0IzMzkyMTJFMUY2MTAw
RkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVT
aGVldENhbGxiYWNrSUQuaCAqLzsgfTsKKwkJMURBRjVBNTcyM0VDQzAwRTAwQjdCNTE4IC8qIFZp
ZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFEQUY1QTU1MjNFQ0MwMEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3Rl
Q29jb2EubW0gKi87IH07CisJCTFEQUY1QTU4MjNFQ0M1NjcwMEI3QjUxOCAvKiBWaWRlb0xheWVy
UmVtb3RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
REFGNUE1MjIzRUNBNThCMDBCN0I1MTggLyogVmlkZW9MYXllclJlbW90ZS5oICovOyB9OwogCQkx
REIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBX
S1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9Owog
CQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMz
NUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwNjcs
MjUgKzIwNjksMjUgQEAKIAkJMDBCOTY2MTUxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRmluZENsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYxNzE4RTI1QUUxMDBDRTFGODggLyog
RmluZENsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZp
bmRDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAwQjk2NjE4MThFMjVB
RTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZpbmRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcwMTc4OUIy
M0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzAxNzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzFC
QzU3NzIzQzkzQkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1N0IyM0NBNTMyNDAwNjgwRDdDIC8q
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzFCQzU3RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1v
dGVBdWRpb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9UcmFj
a1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1N0YyM0NBNURC
MTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVBdWRpb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1
ODIyM0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3QyAvKiBS
ZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9U
cmFja1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1ODUyM0ND
MkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVWaWRlb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcx
QkM1OEIyM0NERkU3NTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CisJCTA3MDE3ODlDMjNCQUUyNjIwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1
NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkw
NzFCQzU3QjIzQ0E1MzI0MDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1N0QyM0NBNTZE
MjAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVB
dWRpb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9UcmFja1By
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkwNzFC
QzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTgzMjND
QzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90
ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNr
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3
MUJDNTg1MjNDQzJDMDkwMDY4MEQ3QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1OEIyM0NERkU3NTAwNjgwRDdDIC8qIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkw
NzFCQzU4QzIzQ0UxRUE5MDA2ODBEN0MgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVN
ZWRpYVBsYXllclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcxQkM1OEQyM0NFMUVBQTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVBsYXllclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcx
QkM1OEUyM0NFMUVBQTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
NzI1RUZBQjIzOUFFMzg0MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjVFRkFDMjM5QUUzODUwMEE1MzhB
OSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzI1RUZBQjIzOUFFMzg0MDBBNTM4
QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcyNUVGQUMyMzlBRTM4NTAwQTUzOEE5IC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKKwkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkw
NzI5N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlSWRIYXNoU2FsdFN0b3Jh
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTdCQkVBMDAz
RjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5RDFDMTdCQkVBMDAzRjA3MzUg
LyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDAsMzIgKzIxMDIsMzIgQEAKIAkJMDc0RTc2MDExREY3MDc1
RDAwRDMxOEVDIC8qIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZFODg0RDFBMTNDQURGMDA1RTkwRkMgLyogQVBJ
Q29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJ
Q29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RTg4
NEYxQTEzQ0JDNjAwNUU5MEZDIC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUluamVjdGVkQnVuZGxl
UGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3
OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzkyMzEzMjIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5MjMxMzAyMzlCM0Iw
QzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IH07CisJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9Owor
CQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThFMiAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CisJCTA3OTIzMTM0MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJMDc5MjMxNDIyMzlDQkNC
NTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3OTIzMTQzMjM5Q0JDQjYwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDQyMzlDQkNCNjAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDYyMzlD
QkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzE0NzIz
OUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxNEUyMzlENUY1MzAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzkyMzE0RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKIAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2
OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCMUQw
NEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRp
YVBsYXllclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCM0I0NzUyM0FEODkwNDAwQkE1QjEyIC8q
IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTA3QjkzRkY1MjNBRjBDQjgwMDM2RjhFQSAvKiBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3QkFGMzU2MjNBMkNDMTcwMDQ0
MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCQUYzNTcy
M0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3QjFEMDRCMjNEMzhGQ0UwMDM5OUE2RSAvKiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3QjNCNDZG
MjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB9OworCQkwN0IzQjQ3NTIzQUQ4OTA0MDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB9OworCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJD
b25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3QkFG
MzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkwN0Ux
OUVGODIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3RTE5RUY5MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwN0UxOUYwNTIzRDREQzg4MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlGMDYyM0Q0
REM4ODAwOTRGRkI0IC8qIFJlbW90ZVRleHRUcmFja1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZVRleHRUcmFja1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RTE5
RjA3MjNENERDODgwMDk0RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3RTE5RjA1MjNENERDODgwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CisJCTA3RTE5RjA2MjNENERDODgwMDk0RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0VHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3RTE5RjA3MjNENERDODgwMDk0RkZCNCAvKiBSZW1v
dGVUZXh0VHJhY2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJMDdF
MTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja1ByaXZhdGVSZW1vdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFw
cEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVl
ID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjY3NywyMiArMjY3OSwyNSBAQAogCQkxQ0E4Qjk0NDEy
N0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3
RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5
QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRp
YVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzMkY4OUIyM0E4
NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFE
M0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMUQzQUIwNEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODk4MjNBODQ2NUEw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9Owor
CQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJ
CTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkxRDMyRjhBNjIzQTg2MDE5MDBC
MUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgfTsKKwkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJj
ZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTFE
M0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTFENEQ3MzZCMjNBOURGNTUwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVT
aGVldENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVT
aGVldENhbGxiYWNrSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMURBNDA4OTQy
M0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODk0MjNBODBBM0UwMDU4
Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CisJCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMURB
RjVBNTIyM0VDQTU4QjAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9MYXllclJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CisJCTFEQUY1QTU0MjNFQ0MwMEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29j
b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMURBRjVBNTUyM0VDQzAwRTAwQjdCNTE4
IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OwogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tT
aGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hhcmVTaGVl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxREUyREZBQzIzQTk1OUY4MDAzRTAx
M0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJMUYwMTgxNjkxODU4REMx
NTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDI4LDIwICsz
MDMzLDIwIEBACiAJCTJEOUVBMzBDMUE5NkNCNTkwMDJEMjgwNyAvKiBXS1BhZ2VJbmplY3RlZEJ1
bmRsZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlFQTMw
RTFBOTZDQkZGMDAyRDI4MDcgLyogV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlFQTMxMDFBOTZEOUVCMDAyRDI4MDcg
LyogV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjAwMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIyMDEyMzc1MjA5RDAw
NDlGOTM2IC8qIEdQVVByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUHJvY2Vzcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjAyMjM3NTIwOUQwMDQ5Rjkz
NiAvKiBHUFVQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVVByb2Nlc3MubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjAzMjM3NTIwOUQwMDQ5RjkzNiAv
KiBHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ5
RkIyMDAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTJEOUZCMjAxMjM3NTIwOUQwMDQ5RjkzNiAvKiBH
UFVQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVByb2Nlc3MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTJEOUZCMjAyMjM3NTIwOUQwMDQ5
RjkzNiAvKiBHUFVQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVVByb2Nlc3MubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMkQ5RkIyMDMy
Mzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTJEOUZCMjA1MjM3NTIwOUQwMDQ5RjkzNiAvKiBH
UFVQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVUHJvY2Vzc0lPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RkIyMDcyMzc1MjA5RDAwNDlGOTM2IC8q
IEdQVVByb2Nlc3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVQcm9jZXNzTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlGQjIwODIzNzUyMDlEMDA0OUY5MzYg
LyogY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJL
aXQuR1BVUHJvY2Vzcy5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIy
MDkyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIyMEMyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEOUZCMjA5MjM3
NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMkQ5RkIyMEMyMzc1MjA5RDAwNDlGOTM2IC8q
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKIAkJMkQ5RkIyMTAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVNlcnZpY2VFbnRyeVBv
aW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVU2VydmljZUVudHJ5UG9pbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOUZCMjEyMjM3NTIwOUQwMDQ5RjkzNiAvKiBJ
bmZvLU9TWC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8tT1NYLnBsaXN0Ijsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RkIyMTMyMzc1MjA5RDAwNDlGOTM2IC8qIEluZm8taU9T
LnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5wbGlzdC54bWw7IHBhdGggPSAiSW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyRDlGQjIxNDIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIyMTUyMzc1
MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUHJvY2Vzcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDlGQjIxNDIzNzUyMDlEMDA0OUY5MzYg
LyogR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
UFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQkyRDlGQjIxNTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vz
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKIAkJMkQ5RkIyMjgyMzc1MjM4MzAwNDlGOTM2IC8qIGNvbS5hcHBs
ZS5XZWJLaXQuR1BVLnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gIndyYXBwZXIueHBjLXNlcnZpY2UiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBjb20uYXBwbGUuV2ViS2l0LkdQVS54cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTJEOUZCMjJBMjM3NTIzRkIwMDQ5RjkzNiAvKiBHUFVTZXJ2aWNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IEdQVVNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEQTA0OUIxMTgwQ0NDRDMwMEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNDYsNiArNTI1
MSw3IEBACiAJCTA3OTIzMTJGMjM5QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNEQyM0VDOUY3OTAwQjdC
NTE4IC8qIGNvY29hICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8q
IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5
OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC01MjYzLDYgKzUyNjks
NyBAQAogCQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLywKIAkJCQkwN0UxOUYwODIzRDUzM0I5MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDdFMTlGMDkyM0Q1MzNCQTAwOTRGRkI0IC8qIFRleHRU
cmFja1ByaXZhdGVSZW1vdGUuaCAqLywKKwkJCQkxREFGNUE1MjIzRUNBNThCMDBCN0I1MTggLyog
VmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJEMzAwNjgw
RDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkpOwpAQCAtNjEzOSw2ICs2
MTQ2LDE1IEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNTQyM0VDQzAwRTAw
QjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovLAorCQkJCTFEQUY1QTU1MjNFQ0Mw
MEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0
aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUYwMTgxNjgx
ODU4REMxNTAwRjkyODg0IC8qIENvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTY5OTcsOCArNzAxMyw4IEBACiAJCQkJMUE0MjJGOEExOEIyOUI1NDAw
RDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovLAogCQkJCTUxRDEyNDg0MUU3
MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5oICovLAogCQkJCTUxRDEyNDg1MUU3
MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLywKLQkJCQlERjQ2MkUwRTIz
RjIyRjUzMDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmggKi8sCiAJCQkJNTFE
MTI0ODYxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwuaCAqLywK
KwkJCQlERjQ2MkUwRTIzRjIyRjUzMDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRl
LmggKi8sCiAJCQkJMUFCNDBFRTMxQkY2NzdFMzAwQkE4MUJFIC8qIFdLTWVudUl0ZW1JZGVudGlm
aWVycy5tbSAqLywKIAkJCQkxQUI0MEVFNDFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlk
ZW50aWZpZXJzUHJpdmF0ZS5oICovLAogCQkJCTFBNUIxQzRGMTg5ODYwNkYwMDRGQ0Y5QiAvKiBX
S05hdmlnYXRpb24uaCAqLywKQEAgLTEwMjU0LDcgKzEwMjcwLDYgQEAKIAkJCQkyRDU4NzVCRjIx
OUI1MzE1MDA3MEI5QUEgLyogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8qIFdLQ29udGVudFdv
cmxkUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQTgxMEY0MzdEMTAwNThDMTVB
IC8qIEVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFE
OCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNTc1RkIx
NDk2QjUyNjAwQTRFRTA2IC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MDYwNyw2ICsxMDYyMiw3IEBACiAJCQkJMDc0RTc1RkUxREYyMjExOTAwRDMxOEVDIC8qIFVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4NjQ5MzFCMTY3NTA3
MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQjAx
QzU3NDk1QTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMURBRjVBNTgyM0VDQzU2NzAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1RDVFMTg1ODY5QzgwMDZD
NjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ4MTlCQTIxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0
b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDcyMSw3ICsxMDczNyw2IEBACiAJCQkJ
RkVFNDNGRDMxRTY3QjAxODAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNo
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFREJEQ0Q3MUU2OEQyMDUwMEE1OUY4RiAvKiBXZWJJ
bnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFDOEUyQTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJREY0NjJFMEYyM0YyMkY1NTAwRUZGMzVGIC8qIFdLSFRUUENvb2tpZVN0
b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQw
IC8qIFdlYkluc3BlY3RvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0E4Qjk0NjEyN0M4
ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUM4OTFENjYxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEwOTM0LDYgKzEwOTQ5LDcgQEAKIAkJCQkwRjA0MTU5RTIzQzdDQzczMDA2
MEEzRTIgLyogV0tDb250ZW50Vmlld01hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMDY1RkMy
M0VDOTU3MjAwNTQ0M0Q2IC8qIFdLQ29udGVudFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTEwNjVGRDIzRUM5NTdCMDA1NDQzRDYgLyogV0tDb250ZW50V29ybGRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8qIFdLQ29udGVudFdvcmxk
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCOUUyNEIxMTIwRTE1QzAwQTEzN0UwIC8q
IFdLQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFNTJGOTgxOTIwMjY3MjAwQTFGQTM3
IC8qIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDQ1
QkE1MTg0RDVGREEwMDRCMzQxNCAvKiBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTExMDE3LDYgKzExMDMzLDcgQEAKIAkJCQkxQTQyMkY4QjE4QjI5QjU0MDBE
OENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
NjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUQxMjQ5OTFFNzYzQzAxMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCBp
biBIZWFkZXJzICovLAorCQkJCURGNDYyRTBGMjNGMjJGNTUwMEVGRjM1RiAvKiBXS0hUVFBDb29r
aWVTdG9yZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNjZBNEI1MjMyMDk2MjQwMEVB
NEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMEFF
MEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTIzQ0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMjM4NCw2ICsxMjQwMSw3IEBACiAJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThF
RkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxREFGNUE1NzIzRUNDMDBFMDBCN0I1MTgg
LyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQx
ODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDgxOUJBMTE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dl
c3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyNjg0MDU1MjE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKaW5kZXggOWRjMGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uNzQ3ZWM4
MTY4N2JjMzJkNWM1NmVlZjNlOGY1YjUwNThhZmExMWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcApAQCAtMzAsMTAgKzMwLDEyIEBACiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNYWNoUG9ydC5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgorI2lu
Y2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKQEAgLTkwLDE3ICs5MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQ
cmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAg
ICBhdXRvIGxheW91dFJlY3QgPSBtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAg
ICBhdXRvIHNjYWxlID0gbV9wbGF5ZXItPnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVz
UGl0Y2gsIHByZXBhcmUsIGxheW91dFJlY3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwg
cHJlcGFyZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1
dG8gY29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQ
bGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAg
ICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRl
eHRJZC52YWx1ZSgpKTsKICAgICB9LCBtX2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNp
emUgbmF0dXJhbFNpemUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZp
ZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAg
IG1fcGxheWVyLT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0
OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJp
dmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZv
cm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICBy
ZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KSkKQEAgLTY3MywxMiArNjc1LDEyIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMoKSBjb25zdAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwg
c28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMg
cmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwg
R0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKQEAgLTEw
MDUsNiArMTAwNywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZW5naW5lVXBk
YXRlZCgpCiAgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOwogfQogCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZChjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGNvbnN0IElQQzo6TWFjaFBvcnQmIG1hY2hQb3J0KQoreworICAgIGNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRWaWRl
b0lubGluZUZyYW1lRmVuY2VkKHJlY3QsIG1hY2hQb3J0KSwgbV9pZCk7Cit9CisKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpCiB7CiAg
ICAgbV9wbGF5ZXItPmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5NTAwZGE4
Li5lZjk3ZDZkZjlkZDhkNGM0MDdmNGM3Nzg1ZDQ1YTUyNzVlZDVjYWQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKQEAgLTM4LDYgKzM4LDEwIEBACiAjaW5jbHVkZSA8d3RmL01lZGlhVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3Mg
TWFjaFBvcnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZUVEN1ZTsK
IH0KQEAgLTEyMCw2ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tU
YXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgogCisgICAgdm9pZCBzZXRWaWRl
b0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IElQQzo6
TWFjaFBvcnQmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dl
ciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gKm1fbG9nZ2VyOyB9CiAgICAgY29uc3Qg
Y2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSI7IH0KQEAgLTIzMSw3ICsyMzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgZmluYWwgeyB9CiAKICAgICB2b2lkIHBh
aW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IGZpbmFsOwotCiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKICAgICBi
b29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dM
ZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSBmaW5hbDsKICAgICBXZWJDb3Jl
OjpOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CkBAIC0z
NDgsNyArMzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3Bs
YXllciB7IG51bGxwdHIgfTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7Ci0gICAgUmV0YWluUHRyPFBsYXRmb3Jt
TGF5ZXI+IG1fdmlkZW9MYXllcjsKKyAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRl
b0lubGluZUxheWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2VyOwog
ICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3Jl
bW90ZUVuZ2luZUlkZW50aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9WaWRlb0xheWVyUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvTGF5ZXJSZW1vdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFiMGQ2ZTRjYzkwYWJmZGU1
MDc5MjNlM2YwNmM4YTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgQ0FMYXllcjsKKworY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPENBTGF5
ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiwgTGF5
ZXJIb3N0aW5nQ29udGV4dElEKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRl
b0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
Y29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdkNjc5YzU3ZjgxMzhi
NjAzOTk3NjEyYTY4YjViZTk0YTQwNmI3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFz
cyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRlb0xheWVy
UmVtb3RlIDogQ0FMYXllcgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitAcHJvcGVy
dHkgKG5vbmF0b21pYykgQ0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
Y29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0YTQ2YTk5ODRjMDY5
OWI4MmRjN2FkNTRiNzViYzIxY2JiODk4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpA
QCAtMCwwICsxLDE1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiVmlkZW9MYXllclJlbW90ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1w
b3J0ICJNYWNoUG9ydC5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCisj
aW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlLmgiCisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5o
PgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisjaW1wb3J0IDx3dGYv
TWFjaFNlbmRSaWdodC5oPgorI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KKworQGltcGxlbWVudGF0
aW9uIFdLVmlkZW9MYXllclJlbW90ZSB7CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZT4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKyAgICBDQUxheWVyKiBf
dmlkZW9TdWJsYXllcjsKKyAgICBDQUNvbnRleHQqIF9jb250ZXh0OworfQorCistIChpbnN0YW5j
ZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKHNlbGYpCisg
ICAgICAgIHNlbGYubWFza3NUb0JvdW5kcyA9IFlFUzsKKworICAgIHJldHVybiBzZWxmOworfQor
CistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3Jt
UmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMp
IG9iamVjdDpuaWxdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBy
ZXR1cm4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5nZXQoKTsKK30KKworLSAodm9pZClzZXRN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
ICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgX21lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSA9IG1ha2VXZWFrUHRyKCptZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOworfQorCistIChD
QUxheWVyICopdmlkZW9TdWJsYXllcgoreworICAgIHJldHVybiBfdmlkZW9TdWJsYXllcjsKK30K
KworLSAodm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVyICopdmlkZW9TdWJsYXllcgorewor
ICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsKK30KKworLSAodm9pZClsYXlvdXRT
dWJsYXllcnMKK3sKKyAgICBpZiAoW192aWRlb1N1YmxheWVyIHN1cGVybGF5ZXJdICE9IHNlbGYp
CisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3VyY2VWaWRlb0Zy
YW1lID0gc2VsZi52aWRlb0xheWVyRnJhbWU7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdl
dFZpZGVvRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zv
cm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSh0YXJnZXRWaWRlb0ZyYW1lLndpZHRoKCkg
LyBzb3VyY2VWaWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldFZpZGVvRnJhbWUuaGVpZ2h0KCkgLyBz
b3VyY2VWaWRlb0ZyYW1lLmhlaWdodCgpKTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsK
KyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFtfdmlkZW9T
dWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKHNlbGYuYm91bmRz
KSwgQ0dSZWN0R2V0TWlkWShzZWxmLmJvdW5kcykpXTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0
QWZmaW5lVHJhbnNmb3JtOnRyYW5zZm9ybV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsK
KworICAgIF9jb250ZXh0ID0gW0NBQ29udGV4dCBjdXJyZW50Q29udGV4dF07CisgICAgTlNUaW1l
SW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbQ0FUcmFuc2FjdGlvbiBhbmltYXRpb25EdXJh
dGlvbl07CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsK
KyAgICAgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdl
dDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihyZXNvbHZlQm91bmRzKSBvYmplY3Q6bmlsXTsKKyAg
ICAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihyZXNvbHZlQm91bmRzKSB3aXRo
T2JqZWN0Om5pbCBhZnRlckRlbGF5OmFuaW1hdGlvbkR1cmF0aW9uICsgMC4xXTsKKyAgICB9KTsK
K30KKworLSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgW05TT2JqZWN0IGNhbmNlbFByZXZp
b3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihyZXNv
bHZlQm91bmRzKSBvYmplY3Q6bmlsXTsKKworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJs
YXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKENHUmVjdEVxdWFsVG9S
ZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykgJiYgQ0dBZmZpbmVUcmFuc2Zv
cm1Jc0lkZW50aXR5KHNlbGYuYWZmaW5lVHJhbnNmb3JtKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVB
Y3Rpb25zOllFU107CisKKyAgICBpZiAoIUNHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlkZW9MYXll
ckZyYW1lLCBzZWxmLmJvdW5kcykpIHsKKyAgICAgICAgc2VsZi52aWRlb0xheWVyRnJhbWUgPSBz
ZWxmLmJvdW5kczsKKyAgICAgICAgaWYgKGF1dG8gKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSA9
IHNlbGYubWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKSB7CisgICAgICAgICAgICBNYWNoU2VuZFJp
Z2h0IF9mZW5jZVNlbmRSaWdodCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KFtfY29udGV4dCBjcmVh
dGVGZW5jZVBvcnRdKTsKKyAgICAgICAgICAgIG1hY2hfcG9ydF9uYW1lX3QgZmVuY2VQb3J0ID0g
X2ZlbmNlU2VuZFJpZ2h0LmxlYWtTZW5kUmlnaHQoKTsKKyAgICAgICAgICAgIG1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS0+c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZChzZWxmLnZpZGVvTGF5ZXJG
cmFtZSwgSVBDOjpNYWNoUG9ydChmZW5jZVBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNm
b3JtOkNHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHldOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRG
cmFtZTpzZWxmLmJvdW5kc107CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCitA
ZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlk
ZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqIG1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElEIGNvbnRleHRJZCkKK3sKKyAgICAvLyBJbml0
aWFsbHksIGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUgZW1wdHkgKGJvdGggd2lkdGggYW5kIGhlaWdo
dCBhcmUgMCkgYW5kIGludmlzaWJsZS4KKyAgICAvLyBUaGUgcmVuZGVyZXIgd2lsbCBjaGFuZ2Ug
dGhlIHNpemVzIG9mIFdLVmlkZW9MYXllclJlbW90ZSB0byB0cmlnZ2VyIGxheW91dCBvZiBzdWJs
YXllcnMgYW5kIG1ha2UgdGhlbSB2aXNpYmxlLgorICAgIFdLVmlkZW9MYXllclJlbW90ZSAqdmlk
ZW9MYXllclJlbW90ZSA9IFtbV0tWaWRlb0xheWVyUmVtb3RlIGFsbG9jXSBpbml0XTsKKyAgICBb
dmlkZW9MYXllclJlbW90ZSBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDAsIDApXTsKKyNpZm5k
ZWYgTkRFQlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TmFtZTpAIldLVmlkZW9MYXllclJl
bW90ZSJdOworI2VuZGlmCisKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlXTsKKworICAgIGF1dG8gdmlkZW9T
dWJsYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0
aW5nQ29udGV4dChjb250ZXh0SWQpOworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3Vi
bGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgYWRkU3Vi
bGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvU3VibGF5ZXIgc2V0RnJhbWU6
dmlkZW9MYXllclJlbW90ZS5ib3VuZHNdOworCisgICAgcmV0dXJuIHZpZGVvTGF5ZXJSZW1vdGU7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390674</attachid>
            <date>2020-02-13 12:02:21 -0800</date>
            <delta_ts>2020-02-13 18:44:58 -0800</delta_ts>
            <desc>WIP patch - fixing iOS build failures</desc>
            <filename>bug-206132-20200213120221.patch</filename>
            <type>text/plain</type>
            <size>84971</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlYzI3NGExZjM5ZGU0
OTMwMDgxMzJhMWE1ZjMxMTkxYjRkNmU2OS4uODRkYjRiN2ZkZmNlZDAyOTBlYzU0ODBkNWM5NTI3
NGJjMDE1MjA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTEzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW50ZXJm
YWNlIHRvIE1lZGlhUGxheWVyIHRvIHNldCB0aGUgZnJhbWUgb2YgYSB2aWRlbyBpbiB0aGUgaW5s
aW5lIG1vZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U6OnNldFZpZGVvSW5saW5lRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9JbmxpbmVGcmFtZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9M
YXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0lubGluZUZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbToKKyAgICAgICAgKCtbQ0FM
YXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpdKToKKwogMjAyMC0wMi0xMiAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjU2MDEwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggODkwYTg0MzhmYTBmMDY3
NTc2ZDUwYTc5NGZkMmUxMGIzNjBhNTUxMy4uMzNiZGJlODk5NTAyMzE1YTAzYWUxYjE4ZGJjMWQ2
M2Q4ZWU3NmExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDIt
MTMgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4g
R1BVIHByb2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBp
biB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2ViIHByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFs
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisKIDIwMjAtMDItMTIgIFJ5YW4gSGFkZGFkICA8
cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMWQ2YWIxMDRmOTFhNzNhYmMzMjcyMGMxOTBjYWU2N2MxNmM0
Mjk3MC4uZDRiYjA5NjlmMDVkZTFiYjIwZjgxNmZmM2VlNjdiZTE4YzZmZmUzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0OSBAQAorMjAyMC0wMi0xMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHBy
b3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0
aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGNyZWF0ZXMgV0tW
aWRlb0xheWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkgTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KCkuCisgICAgICAg
IFRoZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSByZW5kZXJlciB0byBt
YW5hZ2UgdGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBXaGVuIGl0cyBzaWRl
IGlzIGNoYW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBsaWVzIGEgdHJhbnNm
b3JtIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2VuZHMgYSBtZXNzYWdl
IHRvIHRoZSB2aWRlbyBsYXllciBtYW5hZ2VyIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICB0
byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllciAodmlkZW9JbmxpbmVMYXll
cikuIEFmdGVyIHRoYXQgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRo
ZSBjb3JyZWN0IG9uZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2UgYSBGZW5jZVBvcnQgdG8gc3lu
Y2hyb25pemUgdGhlIHRyYW5zYWN0aW9ucyBpbiB0aGUgV2ViIHByb2Nlc3MgYW5kIHRoZSBHUFUg
cHJvY2Vzcy4KKworICAgICAgICBXZSBoYXZlIHRvIHVzZSBzdWNoIGEgcHJvY2VzcyB0byBjaGFu
Z2UgdGhlIGFwcGVhcmFuY2Ugb2YgV0tWaWRlb0xheWVyUmVtb3RlIGluIG9yZGVyIHRvIGd1YXJh
bnRlZSB0aGUgc21vb3RobmVzcyB3aGVuIGEgdXNlcgorICAgICAgICBjaGFuZ2UgdGhlIHNpemUg
b2YgYSB2aWRlbyBlbGVtZW50LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZUZyYW1lRmVu
Y2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJDb250ZW50Qm94UmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldFZpZGVvSW5saW5lRnJhbWVGZW5jZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTog
QWRkZWQuCisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBpbml0XSk6CisgICAgICAgICgt
W1dLVmlkZW9MYXllclJlbW90ZSBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJl
bW90ZSBtZWRpYVBsYXllclByaXZhdGVSZW1vdGVdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVy
UmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTpdKToKKyAgICAgICAgKC1bV0tWaWRl
b0xheWVyUmVtb3RlIHZpZGVvU3VibGF5ZXJdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIHNldFZpZGVvU3VibGF5ZXI6XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBs
YXlvdXRTdWJsYXllcnNdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHJlc29sdmVC
b3VuZHNdKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlVmlkZW9MYXllclJlbW90ZSk6CisKIDIw
MjAtMDItMTIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCAwZjllYWQ3YmI5NTI4MWI5ZTI2
NDgxMTlkZGY1Y2VlZTVmOTQ4MTIxLi41MzNmNzBkZGY4NWJkMWZiYmVjYjI2NzY1NzRiOTcwOTg1
ZTNmYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFy
dHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJlbmRlckNvbnRl
eHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQogKyAoTlNBcnJh
eSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7CiArIChDQUNv
bnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250ZXh0V2l0aE9w
dGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVmYWQ1
YzE5YjhlOGQ2NWRmMjlkZDJhMWY1NTNmN2Y2ZTJmMjliMzkuLjM0MTBhMjg1NzUzYTdlYmIxZmI2
OGY4ZjI3MGQ0MjdjZDA3NzM2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMSw2ICsxMzEsNyBAQAogCQkwNzUzODYwMzE0
NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2Fj
aGVkVGV4dFRyYWNrLmggKi87IH07CiAJCTA3NTRBNUVBMjE1RUEzQjgwMDJEM0E5OSAvKiBSZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VGYWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU3QjEzQzIxNEFFNzk3
MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwNzVCQTg0OTIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXll
ck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovOyB9Owog
CQkwNzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTcxODg0
NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLm1tICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyog
VGV4dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87
IH07CkBAIC02MzMsNyArNjM0LDYgQEAKIAkJMUQyRjhFMDQyMzQ0NzUxNjAwOTkzQjY4IC8qIEVu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQTIzM0MzRDBCMDBFRTIyOEQgLyogRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjggLyogSFRNTFZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBIVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQaWN0dXJlSW5QaWN0dXJlV2luZG93
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZD
RDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFEMzkyRjJEMjNGMjBBNzAw
MEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDM5MkYyODIzRjIwOUI0MDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQg
LyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAw
QjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBp
Y3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTFGMzZFQTlDMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3Jv
dW5kVGFza0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0Nv
bnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTU4Myw2ICsxNTgzLDcgQEAKIAkJNTJCMEQ0QkUxQzU3RkQxRTAwNzdDRTUzIC8qIFBs
YXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMwMUM1N0ZENjYw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUz
IC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8q
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFu
YWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICov
OyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE0
MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRDVBMUE4MUM1NzQ4QTMwMERF
MzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExQTUxQzU3NDg4OTAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRG
IC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU0NjcsNiAr
NTQ2OCw3IEBACiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVF
QjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3
OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc1QkE4NDcyMDYx
OEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTgxODg0NDg3MjAwRTE1
QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1MDgsOSArNjUxMCw2IEBACiAJ
CTFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0
dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlE
OTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZD
NSAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5Q
aWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5MkYyODIz
RjIwOUI0MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5MkYyQTIzRjIwOUI1MDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5
MkYyQjIzRjIwOUQ4MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1
cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAwNEI3ODBFIC8q
IE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JTaGFy
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjExQkE4NDEwMDRC
NzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYXJlRGF0YS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDQ1LDYgKzg0NDQsOCBAQAogCQk1
MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdITFNM
RGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTExMyw3ICsyNTExNCw3IEBACiAJCQkJRTRBRkNGQTQw
REFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFF
MDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBE
MzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCi0JCQkJMUQzOTJGMkIyM0YyMDlEODAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5
IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5QkMx
IC8qIFdpZHRoQ2FjaGUuaCAqLywKIAkJCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5jcHAgKi8sCkBAIC0yNjcxOSw4ICsyNjcyMCw4IEBACiAJCQkJN0EyOUY1NzEx
OEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJ
CQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRB
MyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJCQkJQ0QzMzZGNjUxN0ZBMEFDNjAw
REREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgKi8sCiAJCQkJQ0QzMzZGNjYx
N0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
OEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oICovLApAQCAtMzI4MTcsNiArMzI4MTgsNyBAQAogCQkJCTUyQjBENEMyMUM1N0ZGOTEw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTgxQzU3NDhBMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzVCQTg0OTIwNjE4
QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
RTgzREIyMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDlEODI3QTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJl
Q29waWVyQ1YuaCBpbiBIZWFkZXJzICovLApAQCAtMzQyNDMsNyArMzQyNDUsNyBAQAogCQkJCTdD
RTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVz
c2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5
ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1
RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
RTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTViMTEyNzMyYmFkNTliMDFk
OGE0MTgxYi4uYjQ5ZGE0MjY3NGJlNDY4YzY5ZDM4Y2NjNGFhZTU2ZjQyNGNlMTg0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTEwLDkgKzExMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhdXNlKCkgZmluYWwgeyB9CiAKICAg
ICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVs
bHB0cjsgfQotCiAgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gRmxvYXRTaXplKCk7IH0KLQogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogCkBAIC05MTcsNiArOTE1LDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmRpZExvYWRp
bmdQcm9ncmVzcygpCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZGlkTG9hZGluZ1Byb2dyZXNzKCk7
CiB9CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCit2b2lkIE1lZGlhUGxheWVyOjpzZXRWaWRl
b0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpCit7CisgICAgbV9wcml2YXRlLT5z
ZXRWaWRlb0lubGluZUZyYW1lKGZyYW1lKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVy
OjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7IAogICAgIG1fc2l6ZSA9IHNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3
ZTZjYjhhMzkwZGY3ZmUxYTdhYWUwMTczOWRjOTQ4Zjc3NjYyMWVlLi4xYTkwMDNlNWU1MDcyODQ2
MTM0YWYxYzZkOTQ2MjdjNWUxMDgyN2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTMyOCw2ICszMjgsMTAgQEAgcHVibGljOgogICAg
IGJvb2wgaGFzVmlkZW8oKSBjb25zdDsKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Q7CiAKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lKGNvbnN0
IEZsb2F0UmVjdCYpOworI2VuZGlmCisKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVy
biBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmgKaW5kZXggOWY3ZjZlNmIwMmQzYmViZTA5MGViY2MzMmE0YjBkY2ExY2MxNzVhOC4uMWUx
Nzk5NDQ0MDFkYThhNGZlMTk3Y2Q3YjcwZjU0YTE2MjYxY2ZiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE1
NCw2ICsxNTQsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYpIHsgfQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaWRlb0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVjdCYpIHsgfTsKKyNlbmRpZgorCiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnRleHQmIGMsIGNvbnN0IEZsb2F0UmVjdCYgcikgeyBwYWludChjLCByKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IGFmNmM4MDRmNmNmOGU2MDhkODdkODM5ZmQ4MDZmMDg5MDNk
MjNmYjYuLjM2YzJhODYyNDkwNjJjYzk1NjUxYTM5MWM3NGZhZWU4OTM1ODlhOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTE3NCw2ICsxNzQsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgcGxh
dGZvcm1QYXVzZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNdXRlZChib29sKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVj
dCYpIGZpbmFsOworI2VuZGlmCiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIFBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCmluZGV4IDBkYzJlNzcyYWU5ZGU5MzIzNWRkMGNjNWM5ODk3OGQ3ODI2ZDM2ZTcu
LjY5ZTc4NzFiNDE0MDI4YWY3ZGRiNTZmYzRhYTRjOTA2MjY3ZDRiY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQpAQCAtMTUyMiw2ICsxNTIyLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250
CiAgICAgbV92aWRlb0ZyYW1lSGFzRHJhd24gPSB0cnVlOwogfQogCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRl
b0lubGluZUZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpCit7CisgICAgbV92aWRlb0xheWVy
TWFuYWdlci0+c2V0VmlkZW9JbmxpbmVGcmFtZShmcmFtZSk7Cit9CisjZW5kaWYKKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIW1ldGFEYXRhQXZh
aWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCmluZGV4IGNjYjg3NTY0MzNhZDNkNGM2
YjBhMWMzMTYzNmE2MjkxYWQxMDQ1NmUuLmMyZjBlMDFmYjFkZThkY2ZjNmJkMWI4MzY1NzZmMmIz
ZGQwNmUxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgdmlkZW9GdWxs
c2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1l
OyB9CiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNv
bnRlbnRTaXplKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lRnJhbWUoRmxvYXRSZWN0
KTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBm
aW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUlt
YWdlUHRyKSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVj
dCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9i
akMubW0KaW5kZXggNTcxMGM2YTNjYTBmNGE0NmQ0YzM3YzA5ZGZhZWY1YzA1ZDQ5YmUyOC4uYzMw
NWI3ZjlhYTI5MjE2NTA4NjQ4NjI5OTY4M2MyZjg4MTkxYmJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtNzMsNiArNzMsMjAgQEAg
dm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAq
dmlkZW9MYXllciwgSW50U2l6ZSBjb24KICAgICB9CiB9CiAKK3ZvaWQgVmlkZW9MYXllck1hbmFn
ZXJPYmpDOjpzZXRWaWRlb0lubGluZUZyYW1lKEZsb2F0UmVjdCB2aWRlb0lubGluZUZyYW1lKQor
eworICAgIGlmICghbV92aWRlb0lubGluZUxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3ZpZGVvSW5saW5lRnJhbWUgPSB2aWRlb0lubGluZUZyYW1lOworICAgIC8vIFdlIGRvIG5vdCB3
YW50IGFuaW1hdGlvbnMgaGVyZQorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFttX3ZpZGVvSW5saW5lTGF5
ZXIgc2V0RnJhbWU6bV92aWRlb0lubGluZUZyYW1lXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOworICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKK30KKwogdm9pZCBWaWRlb0xheWVyTWFu
YWdlck9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRy
IGltYWdlKQogewogICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVy
RXh0cmFzLm1tCmluZGV4IDE4MDVjMGE1ZjZjZmYyODM2NWNmNmM4Yzg3MTNiNDJlODUwMjk4ZTku
LmYxMDI3NDQ5ZmJkOGY5MjYzNmMzNTQ1NDY5ZGNhZDQzOTQyMWJjMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFz
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVD
QUxheWVyRXh0cmFzLm1tCkBAIC04Miw3ICs4Miw3IEBACiB7CiAgICAgQ0FMYXllckhvc3QgKmxh
eWVySG9zdCA9IFtDQUxheWVySG9zdCBsYXllcl07CiAjaWZuZGVmIE5ERUJVRwotICAgIFtsYXll
ckhvc3Qgc2V0TmFtZTpAIldlYlZpZGVvSG9zdGluZ0xheWVyIl07CisgICAgW2xheWVySG9zdCBz
ZXROYW1lOkAiSG9zdGluZyBsYXllciJdOwogI2VuZGlmCiAgICAgbGF5ZXJIb3N0LmNvbnRleHRJ
ZCA9IGNvbnRleHRJRDsKICAgICByZXR1cm4gbGF5ZXJIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmlu
ZGV4IGQ5ZTNiZDM3MjcyYzYyNzFjMWJjODlhZTJiN2YzMjdlYzJlYTJjYmEuLjJhNzYyY2E2ZjUz
OTk5MzMxZGJmOTcwN2ZkNWE4MTFkMDI2ODA0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmgi
CkBAIC0xMDYsMTMgKzEwNywxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQo
VVJMJiYgdXJsLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JgogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9h
dCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXll
ckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0
ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBw
cmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRl
bnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250
ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXll
ci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNl
dFByZWxvYWQocHJlbG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNl
cnZlc1BpdGNoKTsKICAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1f
dmlkZW9Db250ZW50Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2Fs
ZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAg
LTQ2OCw2ICs0NjgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
RW5naW5lVXBkYXRlZCgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUgc2l6
ZSBvZiB0aGUgcGxhdGZvcm1MYXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBwcm92
aWRlIG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1fbGF5
ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkp
OwogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6Rmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpAQCAt
NTA4LDYgKzUwOSwxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
V2FpdGluZ0ZvcktleUNoYW5nZWQoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZChjb25zdCBGbG9hdFJlY3QmIGJvdW5k
cywgY29uc3QgSVBDOjpNYWNoUG9ydCYgbWFjaFBvcnQpCit7CisgICAgaWYgKG1hY2hQb3J0LmRp
c3Bvc2l0aW9uKCkgIT0gTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KG1hY2hQb3J0LnBvcnQo
KSk7CisgICAgbV9wbGF5ZXItPnNldFZpZGVvSW5saW5lRnJhbWUoYm91bmRzKTsKKyAgICBkZWFs
bG9jYXRlU2VuZFJpZ2h0U2FmZWx5KG1hY2hQb3J0LnBvcnQoKSk7Cit9CisKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wgaXND
dXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcykKIHsKQEAgLTU0NiwxMSArNTU3LDYgQEAgYm9v
bCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1MYXlvdXRSZWN0IFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3ZpZGVvQ29udGVudEJveFJlY3Q7Ci19Ci0KIGZsb2F0IFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6Om1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
dmlkZW9Db250ZW50U2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBiMjI2MzBmZGFkYmY0NzNmN2Ri
YTk3YTMzZmJmMmM1M2RiYjEwNzg5Li5jNDhjZTQ3Yjc1MjExZmZjNGM2NWYzZGZhYTg2MzBlZmUy
YWNkZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgewor
Y2xhc3MgTWFjaFBvcnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvVHJh
Y2tQcml2YXRlOwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CkBAIC03Niw3ICs4MCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZ2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24mKTsKIAotICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgV2ViQ29yZTo6TGF5b3V0UmVjdCwgZmxvYXQg
dmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJI
b3N0aW5nQ29udGV4dElEPiYmKT4mJik7CisgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9v
bCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBw
cmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRl
bnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250
ZXh0SUQ+JiYpPiYmKTsKICAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKTsKIAogICAgIHZv
aWQgbG9hZChVUkwmJiwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYmLCBjb25z
dCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYpPiYmKTsKQEAgLTEwOSw2ICsx
MTMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRy
YWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZh
dGU6Ok1vZGUpOwogCisgICAgdm9pZCBzZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgYm91bmRzLCBjb25zdCBJUEM6Ok1hY2hQb3J0Jik7CisKICNpZiBF
TkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZvaWQgc2V0V2lyZWxlc3NWaWRl
b1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbWVk
aWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVy
SXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXll
cklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IG1lZGlhUGxh
eWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBtZWRpYVBsYXllckNv
bnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGF1c2UoKSBm
aW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1ZmM0MmRjZDk1ZWY2NTQ0NjE0Y2YxOWFh
M2FkN2MyLi43MDE2MTNjYzU5OGM3Zjc4YjVkNGE5ODhlZjRhNDU2Nzk3YmJmMmM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RS
ZWZDb3VudGVkIHsKLSAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51
bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlv
dXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8
V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5
bmMKKyAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50OF90
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2
ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2Fs
ZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXllckhvc3Rp
bmdDb250ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1cmwsIE9wdGlvbmFsPFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpDb250
ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBBc3lu
YwogICAgIENhbmNlbExvYWQoKQpAQCAtNTcsNiArNTcsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFZpZGVvVHJhY2tTZXRTZWxlY3Rl
ZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFi
bGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpNb2RlIG1vZGUpCiAKKyAgICBTZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKFdlYkNvcmU6
OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6TWFjaFBvcnQgbWFjaFBvcnQpCisKICAgICAjIFBhaW50
CiAgICAgIyBQYWludEN1cnJlbnRGcmFtZUluQ29udGV4dAogCkBAIC04MSw3ICs4Myw2IEBAIG1l
c3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAKICAgICBB
cHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogICAgIEFwcGxpY2F0aW9uRGlkQmVjb21lQWN0
aXZlKCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMjM3YmRlNDg3
NWE3MzBlNjI4ZDUyYjhkNDc2NDc0ZTFlOGMyMmEzZC4uZGVmNzg5MjM1MTYzNGQ5ODNlMGQxNWJk
NTkzZmU1YTI5MjE4ZDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAs
NyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsg
MCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAg
IAorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkNDg4NWI0NjMyZGU5Yzg4Y2YwMjY1ZDVlZWY5YWIwNzU0YmY1NTg3Li41Yzc5NTZlODRjMjVk
MWY2ZjBjZTNmOGNiYjcxZTcyMjQ4MzAwZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNyw2ICs0MTcsOCBAQAogCQkxRDRENzM3
MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkMy
M0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAq
LzsgfTsKIAkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJMUQ2N0IzMzkyMTJFMUY2MTAw
RkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVT
aGVldENhbGxiYWNrSUQuaCAqLzsgfTsKKwkJMURBRjVBNTcyM0VDQzAwRTAwQjdCNTE4IC8qIFZp
ZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFEQUY1QTU1MjNFQ0MwMEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3Rl
Q29jb2EubW0gKi87IH07CisJCTFEQUY1QTU4MjNFQ0M1NjcwMEI3QjUxOCAvKiBWaWRlb0xheWVy
UmVtb3RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
REFGNUE1MjIzRUNBNThCMDBCN0I1MTggLyogVmlkZW9MYXllclJlbW90ZS5oICovOyB9OwogCQkx
REIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBX
S1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9Owog
CQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMz
NUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwNjcs
MjUgKzIwNjksMjUgQEAKIAkJMDBCOTY2MTUxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRmluZENsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYxNzE4RTI1QUUxMDBDRTFGODggLyog
RmluZENsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZp
bmRDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAwQjk2NjE4MThFMjVB
RTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZpbmRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcwMTc4OUIy
M0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzAxNzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzFC
QzU3NzIzQzkzQkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1N0IyM0NBNTMyNDAwNjgwRDdDIC8q
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzFCQzU3RDIzQ0E1NkQyMDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1v
dGVBdWRpb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9UcmFj
a1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1N0YyM0NBNURC
MTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVBdWRpb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1
ODIyM0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3QyAvKiBS
ZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlVmlkZW9U
cmFja1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcxQkM1ODUyM0ND
MkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVWaWRlb1RyYWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcx
QkM1OEIyM0NERkU3NTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CisJCTA3MDE3ODlDMjNCQUUyNjIwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1
NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJh
Y2tQcml2YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkw
NzFCQzU3QjIzQ0E1MzI0MDA2ODBEN0MgLyogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1N0QyM0NBNTZE
MjAwNjgwRDdDIC8qIFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTdFMjNDQTVEQjEwMDY4MEQ3QyAvKiBSZW1vdGVB
dWRpb1RyYWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQXVkaW9UcmFja1By
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkwNzFC
QzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3MUJDNTgzMjND
QzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90
ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVWaWRlb1RyYWNr
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3
MUJDNTg1MjNDQzJDMDkwMDY4MEQ3QyAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlVmlkZW9UcmFja1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKKwkJMDcxQkM1OEIyM0NERkU3NTAwNjgwRDdDIC8qIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkw
NzFCQzU4QzIzQ0UxRUE5MDA2ODBEN0MgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVN
ZWRpYVBsYXllclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcxQkM1OEQyM0NFMUVBQTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVBsYXllclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcx
QkM1OEUyM0NFMUVBQTAwNjgwRDdDIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
NzI1RUZBQjIzOUFFMzg0MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3MjVFRkFDMjM5QUUzODUwMEE1MzhB
OSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzI1RUZBQjIzOUFFMzg0MDBBNTM4
QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMDcyNUVGQUMyMzlBRTM4NTAwQTUzOEE5IC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKKwkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkw
NzI5N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlSWRIYXNoU2FsdFN0b3Jh
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTdCQkVBMDAz
RjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5RDFDMTdCQkVBMDAzRjA3MzUg
LyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDAsMzIgKzIxMDIsMzIgQEAKIAkJMDc0RTc2MDExREY3MDc1
RDAwRDMxOEVDIC8qIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZFODg0RDFBMTNDQURGMDA1RTkwRkMgLyogQVBJ
Q29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJ
Q29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RTg4
NEYxQTEzQ0JDNjAwNUU5MEZDIC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUluamVjdGVkQnVuZGxl
UGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3
OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzkyMzEzMjIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5MjMxMzAyMzlCM0Iw
QzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IH07CisJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9Owor
CQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThFMiAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CisJCTA3OTIzMTM0MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJMDc5MjMxNDIyMzlDQkNC
NTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3OTIzMTQzMjM5Q0JDQjYwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDQyMzlDQkNCNjAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDYyMzlD
QkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzE0NzIz
OUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc5MjMxNEUyMzlENUY1MzAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzkyMzE0RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgfTsKIAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2
OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCMUQw
NEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRp
YVBsYXllclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCM0I0NzUyM0FEODkwNDAwQkE1QjEyIC8q
IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTA3QjkzRkY1MjNBRjBDQjgwMDM2RjhFQSAvKiBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3QkFGMzU2MjNBMkNDMTcwMDQ0
MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdCQUYzNTcy
M0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3QjFEMDRCMjNEMzhGQ0UwMDM5OUE2RSAvKiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3QjNCNDZG
MjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB9OworCQkwN0IzQjQ3NTIzQUQ4OTA0MDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB9OworCQkwN0I5M0ZGNTIzQUYwQ0I4MDAzNkY4RUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJD
b25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3QkFG
MzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQkwN0Ux
OUVGODIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3RTE5RUY5MjNENDAxRjAwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0UxOUVGQTIzRDQwMUYwMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwN0UxOUYwNTIzRDREQzg4MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdFMTlGMDYyM0Q0
REM4ODAwOTRGRkI0IC8qIFJlbW90ZVRleHRUcmFja1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZVRleHRUcmFja1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3RTE5
RjA3MjNENERDODgwMDk0RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVUZXh0VHJhY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3RTE5RjA1MjNENERDODgwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07
CisJCTA3RTE5RjA2MjNENERDODgwMDk0RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVUZXh0VHJhY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTA3RTE5RjA3MjNENERDODgwMDk0RkZCNCAvKiBSZW1v
dGVUZXh0VHJhY2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJMDdF
MTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja1ByaXZhdGVSZW1vdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFw
cEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVl
ID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjY3NywyMiArMjY3OSwyNSBAQAogCQkxQ0E4Qjk0NDEy
N0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3
RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5
QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRp
YVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzMkY4OUIyM0E4
NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFE
M0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMUQzQUIwNEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODk4MjNBODQ2NUEw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9Owor
CQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJ
CTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQkxRDMyRjhBNjIzQTg2MDE5MDBC
MUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgfTsKKwkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJj
ZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTFE
M0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTFENEQ3MzZCMjNBOURGNTUwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVT
aGVldENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVT
aGVldENhbGxiYWNrSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMURBNDA4OTQy
M0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODk0MjNBODBBM0UwMDU4
Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CisJCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMURB
RjVBNTIyM0VDQTU4QjAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9MYXllclJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CisJCTFEQUY1QTU0MjNFQ0MwMEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29j
b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMURBRjVBNTUyM0VDQzAwRTAwQjdCNTE4
IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OwogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tT
aGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hhcmVTaGVl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxREUyREZBQzIzQTk1OUY4MDAzRTAx
M0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJMUYwMTgxNjkxODU4REMx
NTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDI4LDIwICsz
MDMzLDIwIEBACiAJCTJEOUVBMzBDMUE5NkNCNTkwMDJEMjgwNyAvKiBXS1BhZ2VJbmplY3RlZEJ1
bmRsZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlFQTMw
RTFBOTZDQkZGMDAyRDI4MDcgLyogV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlFQTMxMDFBOTZEOUVCMDAyRDI4MDcg
LyogV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjAwMjM3NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIyMDEyMzc1MjA5RDAw
NDlGOTM2IC8qIEdQVVByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVUHJvY2Vzcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjAyMjM3NTIwOUQwMDQ5Rjkz
NiAvKiBHUFVQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVVByb2Nlc3MubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJEOUZCMjAzMjM3NTIwOUQwMDQ5RjkzNiAv
KiBHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ5
RkIyMDAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTJEOUZCMjAxMjM3NTIwOUQwMDQ5RjkzNiAvKiBH
UFVQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdQVVByb2Nlc3MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTJEOUZCMjAyMjM3NTIwOUQwMDQ5
RjkzNiAvKiBHUFVQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdQVVByb2Nlc3MubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMkQ5RkIyMDMy
Mzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTJEOUZCMjA1MjM3NTIwOUQwMDQ5RjkzNiAvKiBH
UFVQcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVUHJvY2Vzc0lPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RkIyMDcyMzc1MjA5RDAwNDlGOTM2IC8q
IEdQVVByb2Nlc3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHUFVQcm9jZXNzTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDlGQjIwODIzNzUyMDlEMDA0OUY5MzYg
LyogY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJL
aXQuR1BVUHJvY2Vzcy5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIy
MDkyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIyMEMyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEOUZCMjA5MjM3
NTIwOUQwMDQ5RjkzNiAvKiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJMkQ5RkIyMEMyMzc1MjA5RDAwNDlGOTM2IC8q
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKIAkJMkQ5RkIyMTAyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVNlcnZpY2VFbnRyeVBv
aW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR1BVU2VydmljZUVudHJ5UG9pbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOUZCMjEyMjM3NTIwOUQwMDQ5RjkzNiAvKiBJ
bmZvLU9TWC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8tT1NYLnBsaXN0Ijsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5RkIyMTMyMzc1MjA5RDAwNDlGOTM2IC8qIEluZm8taU9T
LnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5wbGlzdC54bWw7IHBhdGggPSAiSW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyRDlGQjIxNDIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHUFVQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ5RkIyMTUyMzc1
MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUHJvY2Vzcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDlGQjIxNDIzNzUyMDlEMDA0OUY5MzYg
LyogR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
UFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OworCQkyRDlGQjIxNTIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2Vz
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKIAkJMkQ5RkIyMjgyMzc1MjM4MzAwNDlGOTM2IC8qIGNvbS5hcHBs
ZS5XZWJLaXQuR1BVLnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gIndyYXBwZXIueHBjLXNlcnZpY2UiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBjb20uYXBwbGUuV2ViS2l0LkdQVS54cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTJEOUZCMjJBMjM3NTIzRkIwMDQ5RjkzNiAvKiBHUFVTZXJ2aWNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IEdQVVNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEQTA0OUIxMTgwQ0NDRDMwMEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNDYsNiArNTI1
MSw3IEBACiAJCTA3OTIzMTJGMjM5QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNEQyM0VDOUY3OTAwQjdC
NTE4IC8qIGNvY29hICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8q
IEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5
OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC01MjYzLDYgKzUyNjks
NyBAQAogCQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLywKIAkJCQkwN0UxOUYwODIzRDUzM0I5MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDdFMTlGMDkyM0Q1MzNCQTAwOTRGRkI0IC8qIFRleHRU
cmFja1ByaXZhdGVSZW1vdGUuaCAqLywKKwkJCQkxREFGNUE1MjIzRUNBNThCMDBCN0I1MTggLyog
VmlkZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBW
aWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJEMzAwNjgw
RDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkpOwpAQCAtNjEzOSw2ICs2
MTQ2LDE1IEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNTQyM0VDQzAwRTAw
QjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovLAorCQkJCTFEQUY1QTU1MjNFQ0Mw
MEUwMEI3QjUxOCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0
aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUYwMTgxNjgx
ODU4REMxNTAwRjkyODg0IC8qIENvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTY5OTcsOCArNzAxMyw4IEBACiAJCQkJMUE0MjJGOEExOEIyOUI1NDAw
RDhDRDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oICovLAogCQkJCTUxRDEyNDg0MUU3
MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5oICovLAogCQkJCTUxRDEyNDg1MUU3
MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLywKLQkJCQlERjQ2MkUwRTIz
RjIyRjUzMDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmggKi8sCiAJCQkJNTFE
MTI0ODYxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwuaCAqLywK
KwkJCQlERjQ2MkUwRTIzRjIyRjUzMDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRl
LmggKi8sCiAJCQkJMUFCNDBFRTMxQkY2NzdFMzAwQkE4MUJFIC8qIFdLTWVudUl0ZW1JZGVudGlm
aWVycy5tbSAqLywKIAkJCQkxQUI0MEVFNDFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlk
ZW50aWZpZXJzUHJpdmF0ZS5oICovLAogCQkJCTFBNUIxQzRGMTg5ODYwNkYwMDRGQ0Y5QiAvKiBX
S05hdmlnYXRpb24uaCAqLywKQEAgLTEwMjU0LDcgKzEwMjcwLDYgQEAKIAkJCQkyRDU4NzVCRjIx
OUI1MzE1MDA3MEI5QUEgLyogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8qIFdLQ29udGVudFdv
cmxkUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQTgxMEY0MzdEMTAwNThDMTVB
IC8qIEVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFE
OCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNTc1RkIx
NDk2QjUyNjAwQTRFRTA2IC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MDYwNyw2ICsxMDYyMiw3IEBACiAJCQkJMDc0RTc1RkUxREYyMjExOTAwRDMxOEVDIC8qIFVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4NjQ5MzFCMTY3NTA3
MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQjAx
QzU3NDk1QTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMURBRjVBNTgyM0VDQzU2NzAwQjdCNTE4IC8qIFZpZGVvTGF5ZXJSZW1vdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1RDVFMTg1ODY5QzgwMDZD
NjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQ4MTlCQTIxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0
b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDcyMSw3ICsxMDczNyw2IEBACiAJCQkJ
RkVFNDNGRDMxRTY3QjAxODAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNo
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFREJEQ0Q3MUU2OEQyMDUwMEE1OUY4RiAvKiBXZWJJ
bnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFDOEUyQTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJREY0NjJFMEYyM0YyMkY1NTAwRUZGMzVGIC8qIFdLSFRUUENvb2tpZVN0
b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQw
IC8qIFdlYkluc3BlY3RvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0E4Qjk0NjEyN0M4
ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUM4OTFENjYxOUIxMjRGRjAwQkE3OUREIC8qIFdlYkluc3BlY3RvclVJLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEwOTM0LDYgKzEwOTQ5LDcgQEAKIAkJCQkwRjA0MTU5RTIzQzdDQzczMDA2
MEEzRTIgLyogV0tDb250ZW50Vmlld01hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMDY1RkMy
M0VDOTU3MjAwNTQ0M0Q2IC8qIFdLQ29udGVudFdvcmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTEwNjVGRDIzRUM5NTdCMDA1NDQzRDYgLyogV0tDb250ZW50V29ybGRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREY0NjJFMTIyM0YzMzhCRTAwRUZGMzVGIC8qIFdLQ29udGVudFdvcmxk
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCOUUyNEIxMTIwRTE1QzAwQTEzN0UwIC8q
IFdLQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFNTJGOTgxOTIwMjY3MjAwQTFGQTM3
IC8qIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDQ1
QkE1MTg0RDVGREEwMDRCMzQxNCAvKiBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTExMDE3LDYgKzExMDMzLDcgQEAKIAkJCQkxQTQyMkY4QjE4QjI5QjU0MDBE
OENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
NjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyogV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUQxMjQ5OTFFNzYzQzAxMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCBp
biBIZWFkZXJzICovLAorCQkJCURGNDYyRTBGMjNGMjJGNTUwMEVGRjM1RiAvKiBXS0hUVFBDb29r
aWVTdG9yZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNjZBNEI1MjMyMDk2MjQwMEVB
NEQ0NCAvKiBXS0hUVFBDb29raWVTdG9yZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMEFF
MEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTIzQ0YxQzEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMjM4NCw2ICsxMjQwMSw3IEBACiAJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5
MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThF
RkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxREFGNUE1NzIzRUNDMDBFMDBCN0I1MTgg
LyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQx
ODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDgxOUJBMTE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dl
c3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyNjg0MDU1MjE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKaW5kZXggOWRjMGViYjYwNjY0ODk3ZjgyZGI3ZTA1MTgwOGYwZTQ4OWRjNTI3OS4uNzQ3ZWM4
MTY4N2JjMzJkNWM1NmVlZjNlOGY1YjUwNThhZmExMWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcApAQCAtMzAsMTAgKzMwLDEyIEBACiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJp
dmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNYWNoUG9ydC5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgorI2lu
Y2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKQEAgLTkwLDE3ICs5MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQ
cmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAg
ICBhdXRvIGxheW91dFJlY3QgPSBtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAg
ICBhdXRvIHNjYWxlID0gbV9wbGF5ZXItPnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVz
UGl0Y2gsIHByZXBhcmUsIGxheW91dFJlY3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwg
cHJlcGFyZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1
dG8gY29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQ
bGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAg
ICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRl
eHRJZC52YWx1ZSgpKTsKICAgICB9LCBtX2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNp
emUgbmF0dXJhbFNpemUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZp
ZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAg
IG1fcGxheWVyLT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0
OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJp
dmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZv
cm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICBy
ZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KSkKQEAgLTY3MywxMiArNjc1LDEyIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMoKSBjb25zdAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwg
c28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMg
cmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwg
R0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKQEAgLTEw
MDUsNiArMTAwNywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZW5naW5lVXBk
YXRlZCgpCiAgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgpOwogfQogCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVGcmFtZUZlbmNlZChjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGNvbnN0IElQQzo6TWFjaFBvcnQmIG1hY2hQb3J0KQoreworICAgIGNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRWaWRl
b0lubGluZUZyYW1lRmVuY2VkKHJlY3QsIG1hY2hQb3J0KSwgbV9pZCk7Cit9CisKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpCiB7CiAg
ICAgbV9wbGF5ZXItPmFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5NTAwZGE4
Li5lZjk3ZDZkZjlkZDhkNGM0MDdmNGM3Nzg1ZDQ1YTUyNzVlZDVjYWQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKQEAgLTM4LDYgKzM4LDEwIEBACiAjaW5jbHVkZSA8d3RmL01lZGlhVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3Mg
TWFjaFBvcnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZUVEN1ZTsK
IH0KQEAgLTEyMCw2ICsxMjQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tU
YXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgogCisgICAgdm9pZCBzZXRWaWRl
b0lubGluZUZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IElQQzo6
TWFjaFBvcnQmKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dl
ciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gKm1fbG9nZ2VyOyB9CiAgICAgY29uc3Qg
Y2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSI7IH0KQEAgLTIzMSw3ICsyMzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgZmluYWwgeyB9CiAKICAgICB2b2lkIHBh
aW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IGZpbmFsOwotCiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKICAgICBi
b29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dM
ZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSBmaW5hbDsKICAgICBXZWJDb3Jl
OjpOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CkBAIC0z
NDgsNyArMzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3Bs
YXllciB7IG51bGxwdHIgfTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7Ci0gICAgUmV0YWluUHRyPFBsYXRmb3Jt
TGF5ZXI+IG1fdmlkZW9MYXllcjsKKyAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRl
b0lubGluZUxheWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2VyOwog
ICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3Jl
bW90ZUVuZ2luZUlkZW50aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9WaWRlb0xheWVyUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvTGF5ZXJSZW1vdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFiMGQ2ZTRjYzkwYWJmZGU1
MDc5MjNlM2YwNmM4YTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgQ0FMYXllcjsKKworY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPENBTGF5
ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiwgTGF5
ZXJIb3N0aW5nQ29udGV4dElEKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRl
b0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
Y29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM1ODEwOGE2NDI3YjAz
MzRmNGUzY2UwZjk5MDBlZDhmMDE1MDdkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9R
dWFydHpDb3JlU1BJLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOworfQorCitAaW50ZXJmYWNlIFdLVmlkZW9MYXllclJlbW90ZSA6IENBTGF5
ZXIKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlICptZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgYXNzaWduKSBDQUxheWVyICp2aWRlb1N1YmxheWVyOworQHByb3BlcnR5IChub25hdG9taWMp
IENHUmVjdCB2aWRlb0xheWVyRnJhbWU7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTUzMTAzMjY0MzYyYzgxZjgyOTNiNDMzZTVj
OWNjZjU5MDc1NGYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KQEAgLTAsMCArMSwxNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NP
QSkKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2ltcG9ydCAiTWFjaFBvcnQu
aCIKKyNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgorI2ltcG9ydCAiVmlkZW9M
YXllclJlbW90ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorCitAaW1wbGVtZW50
YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworICAgIENBTGF5ZXIq
IF92aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCogX2NvbnRleHQ7Cit9CisKKy0gKGluc3Rh
bmNldHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikK
KyAgICAgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVTOworCisgICAgcmV0dXJuIHNlbGY7Cit9
CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZv
cm1SZXF1ZXN0c1dpdGhUYXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5k
cykgb2JqZWN0Om5pbF07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAg
IHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdldCgpOworfQorCistICh2b2lkKXNl
dE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBfbWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk7Cit9CisKKy0g
KENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgcmV0dXJuIF92aWRlb1N1YmxheWVyOwor
fQorCistICh2b2lkKXNldFZpZGVvU3VibGF5ZXI6KENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7
CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVyOworfQorCistICh2b2lkKWxheW91
dFN1YmxheWVycworeworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXllcl0gIT0gc2Vs
ZikKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNvdXJjZVZpZGVv
RnJhbWUgPSBzZWxmLnZpZGVvTGF5ZXJGcmFtZTsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgdGFy
Z2V0VmlkZW9GcmFtZSA9IHNlbGYuYm91bmRzOworICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5z
Zm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHRhcmdldFZpZGVvRnJhbWUud2lkdGgo
KSAvIHNvdXJjZVZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0VmlkZW9GcmFtZS5oZWlnaHQoKSAv
IHNvdXJjZVZpZGVvRnJhbWUuaGVpZ2h0KCkpOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5d
OworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisgICAgW192aWRl
b1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1pZFgoc2VsZi5ib3Vu
ZHMpLCBDR1JlY3RHZXRNaWRZKHNlbGYuYm91bmRzKSldOworICAgIFtfdmlkZW9TdWJsYXllciBz
ZXRBZmZpbmVUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRd
OworCisgICAgX2NvbnRleHQgPSBbQ0FDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyAgICBOU1Rp
bWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtDQVRyYW5zYWN0aW9uIGFuaW1hdGlvbkR1
cmF0aW9uXTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
eworICAgICAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFy
Z2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOwor
ICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIHdp
dGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6YW5pbWF0aW9uRHVyYXRpb24gKyAwLjFdOworICAgIH0p
OworfQorCistICh2b2lkKXJlc29sdmVCb3VuZHMKK3sKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJl
dmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJl
c29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOworCisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBl
cmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoQ0dSZWN0RXF1YWxU
b1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRyYW5z
Zm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47CisK
KyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJs
ZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xh
eWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFtZSA9
IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
ID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hTZW5k
UmlnaHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0IGNy
ZWF0ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgbWFjaF9wb3J0X25hbWVfdCBmZW5jZVBvcnQg
PSBfZmVuY2VTZW5kUmlnaHQubGVha1NlbmRSaWdodCgpOworICAgICAgICAgICAgbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLT5zZXRWaWRlb0lubGluZUZyYW1lRmVuY2VkKHNlbGYudmlkZW9MYXll
ckZyYW1lLCBJUEM6Ok1hY2hQb3J0KGZlbmNlUG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQp
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFu
c2Zvcm06Q0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eV07CisgICAgW192aWRlb1N1YmxheWVyIHNl
dEZyYW1lOnNlbGYuYm91bmRzXTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisK
K0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVW
aWRlb0xheWVyUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLCBMYXllckhvc3RpbmdDb250ZXh0SUQgY29udGV4dElkKQoreworICAgIC8vIElu
aXRpYWxseSwgYWxsIHRoZSBsYXllcnMgd2lsbCBiZSBlbXB0eSAoYm90aCB3aWR0aCBhbmQgaGVp
Z2h0IGFyZSAwKSBhbmQgaW52aXNpYmxlLgorICAgIC8vIFRoZSByZW5kZXJlciB3aWxsIGNoYW5n
ZSB0aGUgc2l6ZXMgb2YgV0tWaWRlb0xheWVyUmVtb3RlIHRvIHRyaWdnZXIgbGF5b3V0IG9mIHN1
YmxheWVycyBhbmQgbWFrZSB0aGVtIHZpc2libGUuCisgICAgV0tWaWRlb0xheWVyUmVtb3RlICp2
aWRlb0xheWVyUmVtb3RlID0gW1tXS1ZpZGVvTGF5ZXJSZW1vdGUgYWxsb2NdIGluaXRdOworICAg
IFt2aWRlb0xheWVyUmVtb3RlIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMCwgMCldOworI2lm
bmRlZiBOREVCVUcKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXROYW1lOkAiV0tWaWRlb0xheWVy
UmVtb3RlIl07CisjZW5kaWYKKworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTptZWRpYVBsYXllclByaXZhdGVSZW1vdGVdOworCisgICAgYXV0byB2aWRl
b1N1YmxheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhv
c3RpbmdDb250ZXh0KGNvbnRleHRJZCk7CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9T
dWJsYXllcjp2aWRlb1N1YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBhZGRT
dWJsYXllcjp2aWRlb1N1YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFt
ZTp2aWRlb0xheWVyUmVtb3RlLmJvdW5kc107CisKKyAgICByZXR1cm4gdmlkZW9MYXllclJlbW90
ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390716</attachid>
            <date>2020-02-13 18:45:00 -0800</date>
            <delta_ts>2020-02-13 21:17:30 -0800</delta_ts>
            <desc>WIP patch - updated according to review comments</desc>
            <filename>bug-206132-20200213184459.patch</filename>
            <type>text/plain</type>
            <size>55977</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlYzI3NGExZjM5ZGU0
OTMwMDgxMzJhMWE1ZjMxMTkxYjRkNmU2OS4uMjgyZWQ0YWNkYmNhNGJkODFmOTdhOWFhMzllZTNh
OGEwODkwYWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAyLTEzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW50ZXJm
YWNlIHRvIE1lZGlhUGxheWVyIHRvIHNldCB0aGUgZnJhbWUgb2YgYSB2aWRlbyBpbiB0aGUgaW5s
aW5lIG1vZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldEhvc3RWaWRlb0xheWVyUmVtb3RlbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U6OnNldEhvc3RWaWRlb0xheWVyUmVtb3RlbHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6aG9zdFZpZGVvTGF5ZXJSZW1vdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaXplKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFu
YWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnNl
dFZpZGVvSW5saW5lU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZUNBTGF5ZXJFeHRyYXMubW06CisgICAgICAgICgrW0NBTGF5ZXIgX3dlYl9yZW5kZXJMYXll
cldpdGhDb250ZXh0SUQ6XSk6CisKIDIwMjAtMDItMTIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRh
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NjAxMC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDg5MGE4NDM4ZmEwZjA2NzU3NmQ1MGE3OTRmZDJlMTBiMzYw
YTU1MTMuLjMzYmRiZTg5OTUwMjMxNWEwM2FlMWIxOGRiYzFkNjNkOGVlNzZhMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAyLTEzICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBTeW5jaHJv
bml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBwcm9jZXNzIHdp
dGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY29jb2EvUXVhcnR6Q29y
ZVNQSS5oOgorCiAyMDIwLTAyLTEyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTYwMTAuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDFkNmFiMTA0ZjkxYTczYWJjMzI3MjBjMTkwY2FlNjdjMTZjNDI5NzAuLmNmN2Y4MzNjZmRiZDdh
ZTI5NzQwYzZlMzM3OTFjMzBhNzI1ZTAxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIw
MjAtMDItMTMgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVk
aWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxh
eWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2Vi
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjcmVhdGVzIFdLVmlkZW9MYXllclJlbW90ZSB3aG9z
ZSBzdWJsYXllciBpcyBjcmVhdGVkIGJ5IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRm
b3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgpLgorICAgICAgICBUaGUgV0tWaWRlb0xheWVyUmVt
b3RlIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVyZXIgdG8gbWFuYWdlIHRoZSB2aWRlbyBlbGVt
ZW50IGluIHRoZSBXZWIgcHJvY2Vzcy4gV2hlbiBpdHMgc2lkZSBpcyBjaGFuZ2VkIGJ5IHRoZSBy
ZW5kZXJlciwKKyAgICAgICAgaXQgYXBwbGllcyBhIHRyYW5zZm9ybSB3aXRob3V0IGNoYW5naW5n
IGl0cyBhY3R1YWwgc2l6ZSwgYW5kIHNlbmRzIGEgbWVzc2FnZSB0byB0aGUgdmlkZW8gbGF5ZXIg
bWFuYWdlciBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgdG8gY2hhbmdlIHRoZSBzaXplIG9m
IHRoZSBjb250YWluZXIgbGF5ZXIgKHZpZGVvSW5saW5lTGF5ZXIpLiBBZnRlciB0aGF0IFdLVmlk
ZW9MYXllclJlbW90ZSB3aWxsIHNldCBpdHMgc2l6ZSB0byB0aGUgY29ycmVjdCBvbmUuCisgICAg
ICAgIFdlIG5lZWQgdG8gdXNlIGEgRmVuY2VQb3J0IHRvIHN5bmNocm9uaXplIHRoZSB0cmFuc2Fj
dGlvbnMgaW4gdGhlIFdlYiBwcm9jZXNzIGFuZCB0aGUgR1BVIHByb2Nlc3MuCisKKyAgICAgICAg
V2UgaGF2ZSB0byB1c2Ugc3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9m
IFdLVmlkZW9MYXllclJlbW90ZSBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHNtb290aG5lc3Mg
d2hlbiBhIHVzZXIKKyAgICAgICAgY2hhbmdlIHRoZSBzaXplIG9mIGEgdmlkZW8gZWxlbWVudC4K
KworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0
VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRl
b0lubGluZVNpemVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOiBB
ZGRlZC4KKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToKKyAgICAgICAgKC1b
V0tWaWRlb0xheWVyUmVtb3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJS
ZW1vdGUgc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAgICAoLVtXS1ZpZGVv
TGF5ZXJSZW1vdGUgdmlkZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1v
dGUgc2V0VmlkZW9TdWJsYXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGxh
eW91dFN1YmxheWVyc10pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgcmVzb2x2ZUJv
dW5kc10pOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVtb3RlKToKKwogMjAy
MC0wMi0xMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjU2MDEwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDBmOWVhZDdiYjk1MjgxYjllMjY0
ODExOWRkZjVjZWVlNWY5NDgxMjEuLjUzM2Y3MGRkZjg1YmQxZmJiZWNiMjY3NjU3NGI5NzA5ODVl
M2ZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0
ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NBUmVuZGVyQ29udGV4
dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0ICgpCiArIChOU0FycmF5
ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50Q29udGV4dDsKICsgKENBQ29u
dGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNvbnRleHRXaXRoT3B0
aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWZhZDVj
MTliOGU4ZDY1ZGYyOWRkMmExZjU1M2Y3ZjZlMmYyOWIzOS4uMzQxMGEyODU3NTNhN2ViYjFmYjY4
ZjhmMjcwZDQyN2NkMDc3MzZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxLDYgKzEzMSw3IEBACiAJCTA3NTM4NjAzMTQ0
ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNo
ZWRUZXh0VHJhY2suaCAqLzsgfTsKIAkJMDc1NEE1RUEyMTVFQTNCODAwMkQzQTk5IC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTdCMTNDMjE0QUU3OTcw
MDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTA3NUJBODQ5MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVy
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi87IH07CiAJ
CTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5NzE4ODQ0
ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUEx
QiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTgxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJJT1MubW0gKi87IH07CiAJCTA3Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBU
ZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLzsg
fTsKQEAgLTYzMyw3ICs2MzQsNiBAQAogCQkxRDJGOEUwNDIzNDQ3NTE2MDA5OTNCNjggLyogRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFERUYwNkNBMjMzQzNEMEIwMEVFMjI4RCAvKiBFbnRlclBpY3R1cmVJ
blBpY3R1cmVFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFEMkY4RTA1MjM0NDc1MUQwMDk5M0I2OCAvKiBIVE1MVmlkZW9FbGVtZW50UGlj
dHVyZUluUGljdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMURFRjA2Q0MyMzNDM0QyMDAwRUUyMjhEIC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJl
SW5QaWN0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMUQyRjhFMDYyMzQ0NzUyMzAwOTkzQjY4IC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNE
MjMzQzNEMkEwMEVFMjI4RCAvKiBQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMUQzOTJGMkQyM0YyMEE3MDAw
RTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMubW0gKi87IH07CiAJCTFEOUYwRkMxMjEyMjAyOUIwMDVEOEZENCAv
KiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgwRSAvKiBTaGFyZURhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREJDMUI1NjIzNDdCM0QyMDBC
OTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyogUGlj
dHVyZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMxRTIxQkExNzAwNjIxRTI1IC8qIFdlYkJhY2tncm91
bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAwNjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29u
dHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xNTgzLDYgKzE1ODMsNyBAQAogCQk1MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxh
dGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0QzAxQzU3RkQ2NjAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMg
LyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyog
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRDMTFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi87
IH07CiAJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExQTQx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJENUExQTgxQzU3NDhBMzAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYg
LyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJFMkNBRkIxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQ2Nyw2ICs1
NDY4LDcgQEAKIAkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUVC
MjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTdCMTNDMjE0QUU3OTcwMDc5
NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzVCQTg0NzIwNjE4
QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklP
Uy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5ODE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRUcmFja0xpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjUwOCw5ICs2NTEwLDYgQEAKIAkJ
MUQwMDI2QTgyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1
cmVFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDAwMjZBOTIzNzRGOUQ5
MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQyQzgyQjYyMzZBM0Y2QTAwNTVENkM1
IC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1cmVJblBp
Y3R1cmVTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFEMzkyRjJBMjNGMjA5QjUwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFEMzky
RjJCMjNGMjA5RDgwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVy
ZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRDIxMUJBMTJBMDA0Qjc4MEUgLyog
TmF2aWdhdG9yU2hhcmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvclNoYXJl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkYyMTFCQTg0MTAwNEI3
ODBFIC8qIFNoYXJlRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2hhcmVEYXRhLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NDUsNiArODQ0NCw4IEBACiAJCTUy
QjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkIwRDRDMTFDNTdGRjkx
MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNCMTFEQjIyRkREQjJFMDA5RjBBNjQgLyogV0hMU0xE
ZWZhdWx0RGVsZXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRGVmYXVsdERlbGV0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IH07CisJCTUyRDVBMThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsK
IAkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNjFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MTEzLDcgKzI1MTE0LDcgQEAKIAkJCQlFNEFGQ0ZBNDBE
QUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAogCQkJCTBGNUE1N0NBMjI5QjE4QUUw
MDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBGMUEwQzM2MjI5QTQ4MTgwMEQz
N0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKLQkJCQkxRDM5MkYyQjIzRjIwOUQ4MDBFMDRCMkQg
LyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKKwkJCQkwNzVCQTg0NzIwNjE4QUE1MDBGQ0I0QUQg
LyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKIAkJCQlCRUYyOUVFQTE3MTVERDA5MDBDNEI0Qzkg
LyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKIAkJCQkxNDExRENCMDE2NEMzOUE4MDBENDlCQzEg
LyogV2lkdGhDYWNoZS5oICovLAogCQkJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0
aEl0ZXJhdG9yLmNwcCAqLywKQEAgLTI2NzE5LDggKzI2NzIwLDggQEAKIAkJCQk3QTI5RjU3MTE4
QzY5NTE0MDA0RDBGODEgLyogT3V0T2ZCYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovLAogCQkJ
CUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
ICovLAogCQkJCUNEQzhCNUE4MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbSAqLywKLQkJCQkxRDM5MkYyQTIzRjIwOUI1MDBFMDRCMkQgLyogVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmggKi8sCi0JCQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKKwkJCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCisJCQkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKIAkJCQlDRDMzNkY2NTE3RkEwQUM2MDBE
RERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCAqLywKIAkJCQlDRDMzNkY2NjE3
RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJQ0Q4
QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmggKi8sCkBAIC0zMjgxNyw2ICszMjgxOCw3IEBACiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NUJBODQ5MjA2MThB
QTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RF
ODNEQjIxODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVD
b3BpZXJDVi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDI0Myw3ICszNDI0NSw3IEBACiAJCQkJN0NF
NjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNz
YWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4
ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMUQzOTJGMkQyM0YyMEE3MDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBW
aWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCRTg4RTBERTE3MTVE
MkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRTg4RTBF
MTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0QzMzZGNjcxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAppbmRleCBjYTcxZTdlMGI1ODZjN2I1NWIxMTI3MzJiYWQ1OWIwMWQ4
YTQxODFiLi5jZTBiMjFhMDc0MDE4YzhkZmM2MTVmZWYwNjdkNGQ5MjBjODk3M2FjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0x
MTAsOSArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGF1c2UoKSBmaW5hbCB7IH0KIAogICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxs
cHRyOyB9Ci0KICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBGbG9hdFNpemUoKTsgfQotCiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CiAKQEAgLTkyMyw2ICs5MjEsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6c2V0U2l6ZShj
b25zdCBJbnRTaXplJiBzaXplKQogICAgIG1fcHJpdmF0ZS0+c2V0U2l6ZShzaXplKTsKIH0KIAor
dm9pZCBNZWRpYVBsYXllcjo6c2V0SG9zdFZpZGVvTGF5ZXJSZW1vdGVseShib29sIGhvc3RWaWRl
b0xheWVyUmVtb3RlbHkpCit7CisgICAgbV9wcml2YXRlLT5zZXRIb3N0VmlkZW9MYXllclJlbW90
ZWx5KGhvc3RWaWRlb0xheWVyUmVtb3RlbHkpOworfQorCiBib29sIE1lZGlhUGxheWVyOjp2aXNp
YmxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92aXNpYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggN2U2Y2I4YTM5MGRmN2ZlMWE3
YWFlMDE3MzlkYzk0OGY3NzY2MjFlZS4uYTdmNTExZmZkMjQzODBlNTk4M2EwNzI0ZWRlNzI3NDg2
OTNkNThkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCkBAIC0zMjgsNiArMzI4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzVmlkZW8oKSBj
b25zdDsKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldEhvc3RWaWRl
b0xheWVyUmVtb3RlbHkoYm9vbCk7CiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4g
bV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCmluZGV4IDlmN2Y2ZTZiMDJkM2JlYmUwOTBlYmNjMzJhNGIwZGNhMWNjMTc1YTguLjRjNDFl
N2I1MzVhN2QxODcwNGQ0YjNiM2RhMjBmMGIzYTVhODQ4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0xNTIs
NiArMTUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFs
Qnl0ZXMoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBib29sIGRpZExvYWRpbmdQ
cm9ncmVzcygpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRIb3N0VmlkZW9MYXll
clJlbW90ZWx5KGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEludFNp
emUmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzlkYTU1OGU2ZGIzOGYwYzc3OGM1MTc4MGEwNzYy
YjVmNjUwMGIwZi4uYzlkNjFiYWI1NGVlODJlZGNjYWFmOGRiMDM2NGY5YjYxYzU1NTFkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aApAQCAtMzIzLDcgKzMyMywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRSZXNvbHZlZFVS
TChVUkwmJik7CiAgICAgY29uc3QgVVJMJiByZXNvbHZlZFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb2x2ZWRVUkw7IH0KIAorICAgIGJvb2wgaG9zdFZpZGVvTGF5ZXJSZW1vdGVseSgpIHsgcmV0
dXJuIG1faG9zdFZpZGVvTGF5ZXJSZW1vdGVseTsgfQorCiBwcml2YXRlOgorICAgIHZvaWQgc2V0
SG9zdFZpZGVvTGF5ZXJSZW1vdGVseShib29sIGhvc3RWaWRlb0xheWVyUmVtb3RlbHkpIGZpbmFs
IHsgbV9ob3N0VmlkZW9MYXllclJlbW90ZWx5ID0gaG9zdFZpZGVvTGF5ZXJSZW1vdGVseTsgfQor
CiAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwogCiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+
IG1fcGVuZGluZ1NlZWs7CkBAIC0zNzEsNiArMzc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZDsKICAgICBib29sIG1fc2hvdWxkTWFpbnRhaW5Bc3BlY3RS
YXRpbzsKICAgICBib29sIG1fc2Vla2luZzsKKyAgICBib29sIG1faG9zdFZpZGVvTGF5ZXJSZW1v
dGVseSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggYWY2YzgwNGY2Y2Y4ZTYwOGQ4N2Q4MzlmZDgwNmYwODkwM2QyM2ZiNi4u
YzFmODIwZDI2YTUyNWJhMDI4ZWI4ODNkNzUyZmFlODI2Y2M1ZmI4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtMTc0LDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbGF0Zm9ybVBh
dXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldE11dGVkKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2l6ZShj
b25zdCBJbnRTaXplJikgZmluYWw7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCmluZGV4IDBkYzJlNzcyYWU5ZGU5MzIzNWRkMGNjNWM5ODk3OGQ3ODI2ZDM2
ZTcuLjBhNmJlMzRkNTgwNGRiYjI4YTAzZWI5MTllY2NmYTc5NDlmMDRmYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQpAQCAtMTUyMiw2ICsxNTIyLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3ND
b250CiAgICAgbV92aWRlb0ZyYW1lSGFzRHJhd24gPSB0cnVlOwogfQogCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
K3sKKyAgICBpZiAoaG9zdFZpZGVvTGF5ZXJSZW1vdGVseSgpKQorICAgICAgICBtX3ZpZGVvTGF5
ZXJNYW5hZ2VyLT5zZXRWaWRlb0lubGluZVNpemUoc2l6ZSk7Cit9CisKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgp
IHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCBjY2I4NzU2NDMzYWQzZDRjNmIwYTFjMzE2
MzZhNjI5MWFkMTA0NTZlLi4xYjNmYjY3M2IyYTZhNDFmN2U5ZjQ0ZmUzZTMyMjMxZGRjYTgxN2Zi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaApA
QCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQogCiAg
ICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50U2l6
ZSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemUoY29uc3QgSW50U2l6ZSYpOwog
ICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpIGZpbmFs
OwogICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQ
dHIpIGZpbmFsOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5t
bQppbmRleCA1NzEwYzZhM2NhMGY0YTQ2ZDRjMzdjMDlkZmFlZjVjMDVkNDliZTI4Li42MzEzZDUz
NjFhYWQ3MDM1MTVlMzg1OTVjMGMzMGY4ODhiMDU0ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCkBAIC03Myw2ICs3MywyMCBAQCB2b2lk
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRl
b0xheWVyLCBJbnRTaXplIGNvbgogICAgIH0KIH0KIAordm9pZCBWaWRlb0xheWVyTWFuYWdlck9i
akM6OnNldFZpZGVvSW5saW5lU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlmICgh
bV92aWRlb0lubGluZUxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVvSW5saW5l
RnJhbWUgPSBDR1JlY3RNYWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Cisg
ICAgLy8gV2UgZG8gbm90IHdhbnQgYW5pbWF0aW9ucyBoZXJlCisgICAgW0NBVHJhbnNhY3Rpb24g
YmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisgICAg
W21fdmlkZW9JbmxpbmVMYXllciBzZXRGcmFtZTptX3ZpZGVvSW5saW5lRnJhbWVdOworICAgIFtD
QVRyYW5zYWN0aW9uIGNvbW1pdF07CisgICAgc3luY1RleHRUcmFja0JvdW5kcygpOworfQorCiB2
b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1h
Z2UoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCiB7CiAgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNv
cmVDQUxheWVyRXh0cmFzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KaW5kZXggMTgwNWMwYTVmNmNmZjI4MzY1Y2Y2Yzhj
ODcxM2I0MmU4NTAyOThlOS4uZjEwMjc0NDlmYmQ4ZjkyNjM2YzM1NDU0NjlkY2FkNDM5NDIxYmMz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZUNBTGF5ZXJFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KQEAgLTgyLDcgKzgyLDcgQEAKIHsKICAg
ICBDQUxheWVySG9zdCAqbGF5ZXJIb3N0ID0gW0NBTGF5ZXJIb3N0IGxheWVyXTsKICNpZm5kZWYg
TkRFQlVHCi0gICAgW2xheWVySG9zdCBzZXROYW1lOkAiV2ViVmlkZW9Ib3N0aW5nTGF5ZXIiXTsK
KyAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJIb3N0aW5nIGxheWVyIl07CiAjZW5kaWYKICAgICBs
YXllckhvc3QuY29udGV4dElkID0gY29udGV4dElEOwogICAgIHJldHVybiBsYXllckhvc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKaW5kZXggZDllM2JkMzcyNzJjNjI3MWMxYmM4OWFlMmI3ZjMyN2VjMmVh
MmNiYS4uZWQzMTQwNTA2NGQ4N2I3NTI0YmI0MmFkOGExZDM3MWRkYjJjZWFkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
I2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJNYWNoUG9y
dC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTEwMiwxNyArMTAzLDE3IEBAIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4mCiAgICAgfQogCiAgICAgbV9wbGF5ZXItPmxvYWQodXJsLCBjb250ZW50VHlwZSwga2V5
U3lzdGVtKTsKKyAgICBtX3BsYXllci0+c2V0SG9zdFZpZGVvTGF5ZXJSZW1vdGVseSh0cnVlKTsK
ICAgICBnZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pOwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wg
cHJlcGFyZUZvclJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0Nv
bnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdD
b250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYg
Y29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJp
dmF0ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQo
cHJlbG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNo
KTsKICAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1fdmlkZW9Db250
ZW50Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVv
Q29udGVudFNjYWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0Nv
bnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBjb21wbGV0aW9u
SGFuZGxlcihtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAgLTQ2OCw2ICs0
NjksNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBk
YXRlZCgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZp
ZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUgc2l6ZSBvZiB0aGUg
cGxhdGZvcm1MYXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBwcm92aWRlIG1lZGlh
UGxheWVyQ29udGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1fbGF5ZXJIb3N0aW5n
Q29udGV4dC0+c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwogICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6Rmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpAQCAtNTA4LDYgKzUx
MCwxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyV2FpdGluZ0Zv
cktleUNoYW5nZWQoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IElQQzo6
TWFjaFBvcnQmIG1hY2hQb3J0KQoreworICAgIGlmIChtYWNoUG9ydC5kaXNwb3NpdGlvbigpICE9
IE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVy
SG9zdGluZ0NvbnRleHQtPnNldEZlbmNlUG9ydChtYWNoUG9ydC5wb3J0KCkpOworICAgIG1fcGxh
eWVyLT5zZXRTaXplKHNpemUpOworICAgIGRlYWxsb2NhdGVTZW5kUmlnaHRTYWZlbHkobWFjaFBv
cnQucG9ydCgpKTsKK30KKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFy
Z2V0SXNXaXJlbGVzc0NoYW5nZWQoYm9vbCBpc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNz
KQogewpAQCAtNTQ2LDExICs1NTgsNiBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLUxheW91dFJlY3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250
ZW50Qm94UmVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlkZW9Db250ZW50Qm94UmVjdDsK
LX0KLQogZmxvYXQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50c1Nj
YWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92aWRlb0NvbnRlbnRTY2FsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oCmluZGV4IGIyMjYzMGZkYWRiZjQ3M2Y3ZGJhOTdhMzNmYmYyYzUzZGJiMTA3ODkuLjc0MWYy
MjE4MTczYTg1Y2U0OTQxZGZmMWQxYTg1NWFlOTAxN2M0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAt
NDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBNYWNoUG9ydDsKK30KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CiBjbGFzcyBWaWRlb1RyYWNr
UHJpdmF0ZTsKQEAgLTc2LDcgKzgwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRDb25maWd1
cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwogCi0gICAgdm9pZCBwcmVw
YXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5n
LCBXZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYpPiYmKTsKKyAg
ICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVG
b3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+JiYpOwogICAgIHZvaWQgcHJl
cGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBsb2FkKFVSTCYmLCBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29u
c3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzExMywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2
aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7
CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUpOwogCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIGNvbnN0IElQQzo6TWFjaFBvcnQmKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5YmFj
a0Rpc2FibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQo
Ym9vbCk7CkBAIC0xNzgsNyArMTg2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVy
SXNGdWxsc2NyZWVuKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNj
cmVlblBlcm1pdHRlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVv
KCkgY29uc3QgZmluYWw7Ci0gICAgV2ViQ29yZTo6TGF5b3V0UmVjdCBtZWRpYVBsYXllckNvbnRl
bnRCb3hSZWN0KCkgY29uc3QgZmluYWw7CiAgICAgZmxvYXQgbWVkaWFQbGF5ZXJDb250ZW50c1Nj
YWxlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllclBhdXNlKCkgZmluYWw7CiAg
ICAgdm9pZCBtZWRpYVBsYXllclBsYXkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggOGY4NjE1YTRmNWZjNDJkY2Q5NWVmNjU0NDYxNGNmMTlhYTNhZDdjMi4u
ODEzZWNkNDdmMGJhMmZmYmMyMzYxYzgzODI2MzQzNGM1OTE1NjczMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRl
ZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhf
dCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2Vy
dmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgV2ViQ29yZTo6TGF5b3V0UmVjdCBs
YXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisgICAg
UHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gs
IGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+IChP
cHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJIb3N0aW5nQ29udGV4
dElkKSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRpb25hbDxXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6Q29udGVudFR5cGUg
Y29udGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKICAgICBD
YW5jZWxMb2FkKCkKQEAgLTU3LDYgKzU3LDEwIEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgVmlkZW9UcmFja1NldFNlbGVjdGVkKFdlYktp
dDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIGVuYWJsZWQpCiAg
ICAgVGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
dHJhY2tJRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1v
ZGUgbW9kZSkKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFZpZGVvSW5saW5lU2l6ZUZl
bmNlZChXZWJDb3JlOjpJbnRTaXplIHNpemUsIElQQzo6TWFjaFBvcnQgbWFjaFBvcnQpCisjZW5k
aWYKKwogICAgICMgUGFpbnQKICAgICAjIFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAg
LTgxLDcgKzg1LDYgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZD
b3VudGVkIHsKIAogICAgIEFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGlj
YXRpb25EaWRCZWNvbWVBY3RpdmUoKQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IGUxZmM2ZjczNzJiMTYwM2U1ZGQyNWViMGE0YTYwMWM2YzliZTIzZWEuLmVlNmJhOWZh
YTkxMjEyOTM2MjZkOWNjZWE0MmFlMzc1OWMwZGYxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
QEAgLTU1NCw2ICs1NTQsOCBAQCBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQog
CiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2Vydmlj
ZUVudHJ5UG9pbnQubW0KIAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJl
bW90ZUNvY29hLm1tCisKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlQmFubmVyLmNwcAogCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL21hYy9XS0J1
bmRsZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCAyMzdiZGU0ODc1YTczMGU2Mjhk
NTJiOGQ0NzY0NzRlMWU4YzIyYTNkLi5kZWY3ODkyMzUxNjM0ZDk4M2UwZDE1YmQ1OTNmZTVhMjky
MThkMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHByaXZh
dGU6CiAgICAgdWludDY0X3QgbV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgaW50PiBtX2NsaWVudENvdW50czsKIH07Ci0gICAgCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0ODg1YjQ2
MzJkZTljODhjZjAyNjVkNWVlZjlhYjA3NTRiZjU1ODcuLmI5ZmZmODNkMTFkMTU5ODJkNjBhNzRj
OGI3MjZmODZlMzZlZDFjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjY5Myw2ICsyNjkzLDEwIEBACiAJCTFEQkJCMDYxMjExQ0Mz
Q0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBERjIzRjYwRTFFMDBF
OUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJl
bW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMjIzRjYx
MEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRUcmFja1ByaXZhdGVSZW1vdGUu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTY5MTg1OERD
MTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI0Niw2ICs1
MjUwLDcgQEAKIAkJMDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlhICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxREFGNUE0RDIzRUM5Rjc5MDBC
N0I1MTggLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU3NzIzQzkzQkI3MDA2ODBEN0Mg
LyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkwNzkyMzEzMTIzOUIzQjBDMDA5
NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKQEAgLTUyNjMsNiArNTI2
OCw4IEBACiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eS5oICovLAogCQkJCTA3RTE5RjA4MjNENTMzQjkwMDk0RkZCNCAvKiBUZXh0VHJhY2tQ
cml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwN0UxOUYwOTIzRDUzM0JBMDA5NEZGQjQgLyogVGV4
dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLAorCQkJCTFERkREMEUyMjNG
NjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8sCiAJCQkJMDcxQkM1ODMyM0ND
MkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFC
QzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJ
CSk7CkBAIC02MTM5LDYgKzYxNDYsMTUgQEAKIAkJCXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8q
IGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkx
REZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8sCisJ
CQkJMURGREQwREYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAq
LywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQkxRjAxODE2ODE4NThEQzE1MDBGOTI4ODQgLyogQ29jb2EgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjk5Nyw4ICs3MDEzLDggQEAKIAkJCQkx
QTQyMkY4QTE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlLmggKi8s
CiAJCQkJNTFEMTI0ODQxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggKi8s
CiAJCQkJNTFEMTI0ODUxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLm1tICov
LAotCQkJCURGNDYyRTBFMjNGMjJGNTMwMEVGRjM1RiAvKiBXS0hUVFBDb29raWVTdG9yZVByaXZh
dGUuaCAqLywKIAkJCQk1MUQxMjQ4NjFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3Rv
cmVJbnRlcm5hbC5oICovLAorCQkJCURGNDYyRTBFMjNGMjJGNTMwMEVGRjM1RiAvKiBXS0hUVFBD
b29raWVTdG9yZVByaXZhdGUuaCAqLywKIAkJCQkxQUI0MEVFMzFCRjY3N0UzMDBCQTgxQkUgLyog
V0tNZW51SXRlbUlkZW50aWZpZXJzLm1tICovLAogCQkJCTFBQjQwRUU0MUJGNjc3RTMwMEJBODFC
RSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmggKi8sCiAJCQkJMUE1QjFDNEYxODk4
NjA2RjAwNEZDRjlCIC8qIFdLTmF2aWdhdGlvbi5oICovLApAQCAtMTAyNTQsNyArMTAyNzAsNiBA
QAogCQkJCTJENTg3NUJGMjE5QjUzMTUwMDcwQjlBQSAvKiBFZGl0YWJsZUltYWdlQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRp
bmdSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDFBQjUxMkMwMkVDNDAwMkJFNjdCIC8q
IEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlERjQ2MkUxMjIzRjMzOEJFMDBFRkYz
NUYgLyogV0tDb250ZW50V29ybGRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRB
ODEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCMTVB
ODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUE1NzVGQjE0OTZCNTI2MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTEwNzIxLDcgKzEwNzM2LDYgQEAKIAkJCQlGRUU0M0ZEMzFFNjdCMDE4
MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkVEQkRDRDcxRTY4RDIwNTAwQTU5RjhGIC8qIFdlYkluc3BlY3RvckludGVycnVw
dERpc3BhdGNoZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTJBMzYxMjc3ODUy
NDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQlE
RjQ2MkUwRjIzRjIyRjU1MDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQzhFMjgzNDEyNzVENzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9y
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzg5MUQ2NjE5
QjEyNEZGMDBCQTc5REQgLyogV2ViSW5zcGVjdG9yVUkuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5
MzQsNiArMTA5NDgsNyBAQAogCQkJCTBGMDQxNTlFMjNDN0NDNzMwMDYwQTNFMiAvKiBXS0NvbnRl
bnRWaWV3TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTEwNjVGQzIzRUM5NTcyMDA1NDQzRDYg
LyogV0tDb250ZW50V29ybGQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMTA2NUZEMjNFQzk1N0Iw
MDU0NDNENiAvKiBXS0NvbnRlbnRXb3JsZEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlE
RjQ2MkUxMjIzRjMzOEJFMDBFRkYzNUYgLyogV0tDb250ZW50V29ybGRQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0I5RTI0QjExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUU1MkY5ODE5MjAyNjcyMDBBMUZBMzcgLyogV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0NDVCQTUxODRENUZEQTAwNEIz
NDE0IC8qIFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTEw
MTcsNiArMTEwMzIsNyBAQAogCQkJCTFBNDIyRjhCMThCMjlCNTQwMEQ4Q0Q5NiAvKiBXS0hpc3Rv
cnlEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2MkU3MzEyMTQzMDQ3QjAw
MDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDEyNDk5
MUU3NjNDMDEwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJREY0NjJFMEYyM0YyMkY1NTAwRUZGMzVGIC8qIFdLSFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUM2NkE0QjUyMzIwOTYyNDAwRUE0RDQ0IC8qIFdLSFRUUENv
b2tpZVN0b3JlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTEwQUUwRDEzM0MxNkNCMDA3Mjcx
N0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjNDRjFDMTMzRDI2
MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2NjQ4OTdmODJkYjdlMDUxODA4ZjBl
NDg5ZGM1Mjc5Li4xMTlhYTMwODM1Mjg1OGI5MWY1YjQ1NzI1MDJiNzY1MTg5ZmMwMTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0zMCwxMCArMzAsMTIgQEAKIAogI2luY2x1
ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmgiCisjaW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgogI2luY2x1ZGUgIlZp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtOTAsMTcgKzkyLDE2IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9k
ZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9v
bCBwcmVwYXJlKQogewotICAgIGF1dG8gbGF5b3V0UmVjdCA9IG1fcGxheWVyLT5wbGF5ZXJDb250
ZW50Qm94UmVjdCgpOwogICAgIGF1dG8gc2NhbGUgPSBtX3BsYXllci0+cGxheWVyQ29udGVudHNT
Y2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBw
cmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgbGF5b3V0UmVjdCwgc2NhbGUpLCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4dElkKSBtdXRhYmxl
IHsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHByZWxvYWQs
IHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICghY29udGV4dElkKQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fdmlkZW9MYXllciA9IExheWVySG9zdGlu
Z0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQu
dmFsdWUoKSk7CisgICAgICAgIG1fdmlkZW9JbmxpbmVMYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJS
ZW1vdGUodGhpcywgY29udGV4dElkLnZhbHVlKCkpOwogICAgIH0sIG1faWQpOwogfQogCkBAIC0z
MDUsNiArMzA2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNpemVDaGFuZ2Vk
KFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSkKIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7CisgICAgSU5GT19MT0coTE9H
SURFTlRJRklFUik7CiAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwog
fQogCkBAIC01NDcsNyArNTQ5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Omxv
YWQoTWVkaWFTdHJlYW1Qcml2YXRlJikKIAogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0xh
eWVyLmdldCgpOworICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7CiB9CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpKQpAQCAtNjcxLDE0ICs2NzMsMjEgQEAgdW5zaWduZWQgbG9uZyBs
b25nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAgcmV0
dXJuIDA7CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29u
c3QgSVBDOjpNYWNoUG9ydCYgbWFjaFBvcnQpCit7CisgICAgY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChz
aXplLCBtYWNoUG9ydCksIG1faWQpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewot
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVy
LCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVtcHR5LgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5
cyByZW5kZXIgdG8gYSBsYXllciwgc28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4
dHVyZShHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVt
LCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggN2Y3MzkwNDE5MzdlMTFmNGFkMDI1YTE4MzBlNWNm
M2M4OTUwMGRhOC4uYTg4YTgxNTRkZDc2NWE5NmVlYTZlOTJkMjE5MmJkZDc4MDI1YjRkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0
Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgSVBD
IHsKK2NsYXNzIE1hY2hQb3J0OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJU09X
ZWJWVFRDdWU7CiB9CkBAIC04Nyw2ICs5MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYXJhY3Rl
cmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKICAgICB2b2lkIHNpemVDaGFuZ2VkKFdlYkNv
cmU6OkZsb2F0U2l6ZSk7CiAgICAgdm9pZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgSVBDOjpNYWNoUG9ydCYpOworI2VuZGlmCiAKICAg
ICB2b2lkIGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90
ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CkBAIC0yMjUsMTMgKzIz
Miw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXMoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IGZpbmFsOwogCi0g
ICAgLy8gSW4gdGhlIENvY29hIFdlYktpdCBwb3J0LCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpzZXRTaXplKCkgZG9lcyBub3RoaW5nLAotICAgIC8vIHNvIHRoZSBXZWIgcHJv
Y2VzcyBkb2VzIG5vdCBuZWVkIHRvIHNlbmQgSVBDIG1lc3NhZ2VzIHRvIGNhbGwgaXQgaW4gdGhl
IEdQVSBwcm9jZXNzLgotICAgIC8vIE90aGVyIFdlYktpdCBwb3J0cyBtYXkgbmVlZCB0byBkbyB0
aGF0LgotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgZmluYWwgeyB9
Ci0KICAgICB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpIGZpbmFsOwotCiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29u
dGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KSBmaW5hbDsKICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVt
LCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSBmaW5h
bDsKICAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1l
KCkgZmluYWw7CkBAIC0zNDgsNyArMzQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIgfTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7Ci0gICAgUmV0
YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9MYXllcjsKKyAgICBSZXRhaW5QdHI8UGxhdGZv
cm1MYXllcj4gbV92aWRlb0lubGluZUxheWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciYgbV9tYW5hZ2VyOwogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFi
MGQ2ZTRjYzkwYWJmZGU1MDc5MjNlM2YwNmM4YTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQu
aCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgQ0FMYXllcjsKKwor
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UmV0YWluUHRyPENBTGF5ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlKiwgTGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODM1ODEwOGE2NDI3YjAzMzRmNGUzY2UwZjk5MDBlZDhmMDE1MDdkYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJl
bW90ZUNvY29hLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworfQorCitAaW50ZXJmYWNlIFdLVmlkZW9MYXll
clJlbW90ZSA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICptZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDQUxheWVyICp2aWRlb1N1YmxheWVyOworQHByb3Bl
cnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb0xheWVyRnJhbWU7CitAZW5kCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRl
b0xheWVyUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmVmN2JhNGM0Nzkx
N2RkZDhiMDBmZWMyZjZmNmZmMmM0NmYzMzZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0K
QEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2lt
cG9ydCAiTWFjaFBvcnQuaCIKKyNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgor
I2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5o
PgorCitAaW1wbGVtZW50YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRyPFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OworICAgIENBTGF5ZXIqIF92aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCogX2NvbnRleHQ7
CisgICAgZGlzcGF0Y2hfYmxvY2tfdCBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jazsKK30KKwor
LSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlm
IChzZWxmKSB7CisgICAgICAgIHNlbGYubWFza3NUb0JvdW5kcyA9IFlFUzsKKyAgICAgICAgX3Bl
bmRpbmdSZXNvbHZlQm91bmRzQmxvY2sgPSBuaWw7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGY7
Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGlmIChfcGVuZGluZ1Jlc29sdmVCb3VuZHNC
bG9jaykKKyAgICAgICAgZGlzcGF0Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVzb2x2ZUJvdW5k
c0Jsb2NrKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgcmV0dXJu
IF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUg
PSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKK30KKworLSAoQ0FMYXll
ciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5ZXI7Cit9CisKKy0g
KHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICBf
dmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZvaWQpbGF5b3V0U3VibGF5
ZXJzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAhPSBzZWxmKQorICAg
ICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc291cmNlVmlkZW9GcmFtZSA9
IHNlbGYudmlkZW9MYXllckZyYW1lOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRWaWRl
b0ZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Q0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUodGFyZ2V0VmlkZW9GcmFtZS53aWR0aCgpIC8gc291
cmNlVmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRWaWRlb0ZyYW1lLmhlaWdodCgpIC8gc291cmNl
VmlkZW9GcmFtZS5oZWlnaHQoKSk7CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAg
W0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBbX3ZpZGVvU3VibGF5
ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChzZWxmLmJvdW5kcyksIENH
UmVjdEdldE1pZFkoc2VsZi5ib3VuZHMpKV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEFmZmlu
ZVRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKKyAg
ICBfY29udGV4dCA9IFtDQUNvbnRleHQgY3VycmVudENvbnRleHRdOworICAgIE5TVGltZUludGVy
dmFsIGFuaW1hdGlvbkR1cmF0aW9uID0gW0NBVHJhbnNhY3Rpb24gYW5pbWF0aW9uRHVyYXRpb25d
OworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAg
ICAgIGlmIChfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jaykKKyAgICAgICAgICAgIGRpc3BhdGNo
X2Jsb2NrX2NhbmNlbChfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayk7CisKKyAgICAgICAgX3Bl
bmRpbmdSZXNvbHZlQm91bmRzQmxvY2sgPSBkaXNwYXRjaF9ibG9ja19jcmVhdGUoKGRpc3BhdGNo
X2Jsb2NrX2ZsYWdzX3QpMCwgXnsKKyAgICAgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Js
b2NrID0gbmlsOworICAgICAgICAgICAgW3NlbGYgcmVzb2x2ZUJvdW5kc107CisgICAgICAgIH0p
OworICAgICAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9X
LCBhbmltYXRpb25EdXJhdGlvbiArIDAuMSAqIE5TRUNfUEVSX1NFQyksIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKTsKKyAgICB9KTsKK30KKwor
LSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxh
eWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoQ0dSZWN0RXF1YWxUb1Jl
Y3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRyYW5zZm9y
bUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47CisKKyAg
ICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFj
dGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVy
RnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFtZSA9IHNl
bGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlID0g
c2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hTZW5kUmln
aHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0IGNyZWF0
ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgbWFjaF9wb3J0X25hbWVfdCBmZW5jZVBvcnQgPSBf
ZmVuY2VTZW5kUmlnaHQubGVha1NlbmRSaWdodCgpOworICAgICAgICAgICAgbWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLT5zZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZShz
ZWxmLnZpZGVvTGF5ZXJGcmFtZS5zaXplKSwgSVBDOjpNYWNoUG9ydChmZW5jZVBvcnQsIE1BQ0hf
TVNHX1RZUEVfTU9WRV9TRU5EKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHldOworICAg
IFtfdmlkZW9TdWJsYXllciBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBjb21taXRdOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5Q
dHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElEIGNvbnRl
eHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHksIGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUgZW1wdHkg
KGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgMCkgYW5kIGludmlzaWJsZS4KKyAgICAvLyBUaGUg
cmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNpemVzIG9mIFdLVmlkZW9MYXllclJlbW90ZSB0byB0
cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMgYW5kIG1ha2UgdGhlbSB2aXNpYmxlLgorICAgIFdL
VmlkZW9MYXllclJlbW90ZSAqdmlkZW9MYXllclJlbW90ZSA9IFtbV0tWaWRlb0xheWVyUmVtb3Rl
IGFsbG9jXSBpbml0XTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDAsIDApXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0
TmFtZTpAIldLVmlkZW9MYXllclJlbW90ZSJdOworI2VuZGlmCisKKyAgICBbdmlkZW9MYXllclJl
bW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
XTsKKworICAgIGF1dG8gdmlkZW9TdWJsYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0
ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQpOworICAgIFt2aWRlb0xh
eWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3Zp
ZGVvTGF5ZXJSZW1vdGUgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3Zp
ZGVvU3VibGF5ZXIgc2V0RnJhbWU6dmlkZW9MYXllclJlbW90ZS5ib3VuZHNdOworCisgICAgcmV0
dXJuIHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390727</attachid>
            <date>2020-02-13 21:17:32 -0800</date>
            <delta_ts>2020-02-14 21:42:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206132-20200213211731.patch</filename>
            <type>text/plain</type>
            <size>56276</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlYzI3NGExZjM5ZGU0
OTMwMDgxMzJhMWE1ZjMxMTkxYjRkNmU2OS4uMmE5NzU2MjQxMzNjYWRiZDliMzQwZDhiYzZjNDYz
YTExZTc3OGU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAyLTEzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmbGFnICht
X2hvc3RWaWRlb0xheWVyUmVtb3RlbHkpIGluIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbiB3aXRoIGEgZGVmYXVsdCB2YWx1ZSBmYWxzZS4KKyAgICAgICAgV2hlbiBpdHMgdmFs
dWUgaXMgdHJ1ZSwgTWVkaWFQbGF5ZXJDbGllbnQgKGEgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBp
bnN0YW5jZSB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVkIGFuZCB0aGUgbWVkaWEgaW4g
R1BVCisgICAgICAgIHByb2Nlc3MgZmVhdHVyZSBpcyBvbikgY2FuIHJlcXVlc3QgdGhlIFZpZGVv
IExheWVyIE1hbmFnZXIgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSB2aWRlbyBjb250YWluZXIg
bGF5ZXIgZm9yIGlubGluZSB2aWRlby4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c2V0SG9zdFZpZGVvTGF5ZXJSZW1v
dGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6c2V0SG9zdFZpZGVvTGF5ZXJSZW1v
dGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpob3N0VmlkZW9MYXllclJlbW90ZWx5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9JbmxpbmVTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBf
d2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpdKToKKwogMjAyMC0wMi0xMiAgUnlhbiBIYWRk
YWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjU2MDEwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggODkwYTg0MzhmYTBmMDY3NTc2ZDUw
YTc5NGZkMmUxMGIzNjBhNTUxMy4uMzNiZGJlODk5NTAyMzE1YTAzYWUxYjE4ZGJjMWQ2M2Q4ZWU3
NmExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDItMTMgIFBl
bmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHBy
b2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUg
R1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmg6CisKIDIwMjAtMDItMTIgIFJ5YW4gSGFkZGFkICA8cnlhbmhh
ZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NjAx
MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggMWQ2YWIxMDRmOTFhNzNhYmMzMjcyMGMxOTBjYWU2N2MxNmM0Mjk3MC4u
MjY0ZDJhNTVkNTRhYWVjNDU2NzJhYzcyMGI4YzFhNmU0ZGEwZTUxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAyMC0wMi0xMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGNyZWF0ZXMgV0tWaWRlb0xh
eWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkgTGF5ZXJIb3N0aW5nQ29udGV4
dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KCkuCisgICAgICAgIFRoZSBX
S1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSByZW5kZXJlciB0byBtYW5hZ2Ug
dGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBXaGVuIGl0cyBzaXplIGlzIGNo
YW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBsaWVzIGEgdHJhbnNmb3JtIHdp
dGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2VuZHMgYSBtZXNzYWdlIHRvIHRo
ZSB2aWRlbyBsYXllciBtYW5hZ2VyIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICB0byBjaGFu
Z2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllciAodmlkZW9JbmxpbmVMYXllcikuIEFm
dGVyIHRoYXQgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRoZSBjb3Jy
ZWN0IG9uZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2UgYSBGZW5jZVBvcnQgdG8gc3luY2hyb25p
emUgdGhlIHRyYW5zYWN0aW9ucyBpbiB0aGUgV2ViIHByb2Nlc3MgYW5kIHRoZSBHUFUgcHJvY2Vz
cy4KKworICAgICAgICBXZSBoYXZlIHRvIHVzZSBzdWNoIGEgcHJvY2VzcyB0byBjaGFuZ2UgdGhl
IGFwcGVhcmFuY2Ugb2YgV0tWaWRlb0xheWVyUmVtb3RlIGluIG9yZGVyIHRvIGd1YXJhbnRlZSB0
aGUgc21vb3RobmVzcyB3aGVuIGEgdXNlcgorICAgICAgICBjaGFuZ2UgdGhlIHNpemUgb2YgYSB2
aWRlbyBlbGVtZW50LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVG
b3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVB
dmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBs
YXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVt
b3RlQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgaW5pdF0p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgZGVhbGxvY10pOgorICAgICAgICAoLVtX
S1ZpZGVvTGF5ZXJSZW1vdGUgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlXSk6CisgICAgICAgICgt
W1dLVmlkZW9MYXllclJlbW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6XSk6CisgICAg
ICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSB2aWRlb1N1YmxheWVyXSk6CisgICAgICAgICgtW1dL
VmlkZW9MYXllclJlbW90ZSBzZXRWaWRlb1N1YmxheWVyOl0pOgorICAgICAgICAoLVtXS1ZpZGVv
TGF5ZXJSZW1vdGUgbGF5b3V0U3VibGF5ZXJzXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJl
bW90ZSByZXNvbHZlQm91bmRzXSk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVZpZGVvTGF5ZXJS
ZW1vdGUpOgorCiAyMDIwLTAyLTEyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTYwMTAuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggMGY5ZWFk
N2JiOTUyODFiOWUyNjQ4MTE5ZGRmNWNlZWU1Zjk0ODEyMS4uNTMzZjcwZGRmODViZDFmYmJlY2Iy
Njc2NTc0Yjk3MDk4NWUzZmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaApAQCAtNjAsNiArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBf
Q0FSZW5kZXJDb250ZXh0IENBUmVuZGVyQ29udGV4dDsKIAogQGludGVyZmFjZSBDQUNvbnRleHQg
KCkKICsgKE5TQXJyYXkgKilhbGxDb250ZXh0czsKKysgKENBQ29udGV4dCAqKWN1cnJlbnRDb250
ZXh0OwogKyAoQ0FDb250ZXh0ICopbG9jYWxDb250ZXh0OwogKyAoQ0FDb250ZXh0ICopcmVtb3Rl
Q29udGV4dFdpdGhPcHRpb25zOihOU0RpY3Rpb25hcnkgKilkaWN0OwogI2lmIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1ZmFkNWMxOWI4ZThkNjVkZjI5ZGQyYTFmNTUzZjdmNmUyZjI5YjM5Li4zNDEwYTI4
NTc1M2E3ZWJiMWZiNjhmOGYyNzBkNDI3Y2QwNzczNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzEsNiArMTMxLDcgQEAK
IAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAw
Qjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwogCQkwNzU0QTVFQTIxNUVBM0I4MDAy
RDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NTdCMTNFMjE0QUU3OTkwMDc5NEIwRCAvKiBWaWRlb1By
ZXNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1
N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc1QkE4NDkyMDYxOEFBNTAwRkNCNEFE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzVCQTg0NzIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFn
ZXIuaCAqLzsgfTsKIAkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc2MzhBOUEx
ODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4
NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwICovOyB9OwpAQCAtNjMzLDcgKzYzNCw2IEBACiAJCTFEMkY4RTA0MjM0NDc1MTYw
MDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzNDM0QwQjAwRUUyMjhEIC8q
IEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxW
aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVyZUlu
UGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxRDM5
MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzOTJGMjgyM0YyMDlCNDAw
RTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJMUQ5RjBGQzEyMTIy
MDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0YS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEQkMx
QjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkMxQjU1MjM0N0IzRDIw
MEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFFMjFCQTE3MDA2MjFFMjUg
LyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFj
a2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODMsNiArMTU4Myw3IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUw
MDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIw
RDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1
N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZG
OTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1
MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFB
ODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1
NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRTJDQUZDMTlG
RjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQ
cm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC01NDY3LDYgKzU0NjgsNyBAQAogCQkwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc1NEE1RUIyMTVFQURGMzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1N0Ix
M0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNz
aW9uTWFuYWdlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk4
MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8q
IFRleHRUcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGV4dFRyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTA4LDkg
KzY1MTAsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJ
blBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVy
UGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFE
MDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5Q
aWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJCNjIz
NkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAw
RTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUQzOTJGMkIyM0YyMDlEODAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQ
aWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVy
ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZEMjExQkEx
MkEwMDRCNzgwRSAvKiBOYXZpZ2F0b3JTaGFyZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TmF2aWdhdG9yU2hhcmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNG
RjIxMUJBODQxMDA0Qjc4MEUgLyogU2hhcmVEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTaGFyZURhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ0NSw2ICs4
NDQ0LDggQEAKIAkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUy
QjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0IxMURCMjJGRERCMkUwMDlG
MEE2NCAvKiBXSExTTERlZmF1bHREZWxldGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xEZWZhdWx0
RGVsZXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVBMThEMUM1NDU5MDMw
MERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB9OwogCQk1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTUxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE2MUM1NzQ4ODkwMERFMzRB
MyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUxMTMsNyArMjUxMTQsNyBAQAog
CQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJCQkJMEY1
QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBD
MzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovLAotCQkJCTFEMzkyRjJCMjNG
MjA5RDgwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovLAorCQkJCTA3NUJBODQ3MjA2
MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCUJFRjI5RUVBMTcx
NUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLAogCQkJCTE0MTFEQ0IwMTY0
QzM5QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggKi8sCiAJCQkJOTM5QjAyRUMwRUEyREJDNDAw
QzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovLApAQCAtMjY3MTksOCArMjY3MjAsOCBAQAog
CQkJCTdBMjlGNTcxMThDNjk1MTQwMDREMEY4MSAvKiBPdXRPZkJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGLmggKi8sCiAJCQkJQ0RDOEI1QTkxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJQ0RDOEI1QTgxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tICovLAotCQkJCTFEMzkyRjJBMjNGMjA5QjUwMEUwNEIy
RCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLywKLQkJCQkxRDM5MkYyODIzRjIwOUI0MDBF
MDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovLAorCQkJCTUyRDVBMThFMUM1NDU5
MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLywKKwkJCQk1MkQ1QTE4RDFD
NTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovLAogCQkJCUNEMzM2
RjY1MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwICovLAog
CQkJCUNEMzM2RjY2MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMu
aCAqLywKIAkJCQlDRDhCNUE0MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaCAqLywKQEAgLTMyODE3LDYgKzMyODE4LDcgQEAKIAkJCQk1MkIw
RDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAv
KiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MDc1QkE4NDkyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREU4M0RCMjE4M0M0NDA2MDAzMUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxp
dHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NTdCMTNFMjE0QUU3OTkwMDc5NEIwRCAvKiBWaWRl
b1ByZXNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8q
IFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVycyAqLywKQEAgLTM0MjQzLDcgKzM0MjQ1
LDcgQEAKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVy
RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUw
NjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzRkJDNEFGMzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0gaW4gU291cmNlcyAqLywKLQkJCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTJENUExOEYxQzU0NTky
MzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJFODhFMERFMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJFODhFMEUxMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNhNzFlN2UwYjU4NmM3YjU1YjEx
MjczMmJhZDU5YjAxZDhhNDE4MWIuLmNlMGIyMWEwNzQwMThjOGRmYzYxNWZlZjA2N2Q0ZDkyMGM4
OTczYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKQEAgLTExMCw5ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVzZSgpIGZp
bmFsIHsgfQogCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG51bGxwdHI7IH0KLQogICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIEZsb2F0U2l6ZSgpOyB9Ci0KICAgICBib29sIGhhc1ZpZGVvKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtOTIzLDYgKzkyMSwxMSBAQCB2b2lkIE1lZGlhUGxh
eWVyOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgbV9wcml2YXRlLT5zZXRTaXpl
KHNpemUpOwogfQogCit2b2lkIE1lZGlhUGxheWVyOjpzZXRIb3N0VmlkZW9MYXllclJlbW90ZWx5
KGJvb2wgaG9zdFZpZGVvTGF5ZXJSZW1vdGVseSkKK3sKKyAgICBtX3ByaXZhdGUtPnNldEhvc3RW
aWRlb0xheWVyUmVtb3RlbHkoaG9zdFZpZGVvTGF5ZXJSZW1vdGVseSk7Cit9CisKIGJvb2wgTWVk
aWFQbGF5ZXI6OnZpc2libGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3Zpc2libGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3ZTZj
YjhhMzkwZGY3ZmUxYTdhYWUwMTczOWRjOTQ4Zjc3NjYyMWVlLi5hN2Y1MTFmZmQyNDM4MGU1OTgz
YTA3MjRlZGU3Mjc0ODY5M2Q1OGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTMyOCw2ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBoYXNWaWRlbygpIGNvbnN0OwogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdDsKIAorICAgIHZv
aWQgc2V0SG9zdFZpZGVvTGF5ZXJSZW1vdGVseShib29sKTsKICAgICBJbnRTaXplIHNpemUoKSBj
b25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggOWY3ZjZlNmIwMmQzYmViZTA5MGViY2MzMmE0YjBkY2Ex
Y2MxNzVhOC4uNGM0MWU3YjUzNWE3ZDE4NzA0ZDRiM2IzZGEyMGYwYjNhNWE4NDgxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBs
b25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGJv
b2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHNl
dEhvc3RWaWRlb0xheWVyUmVtb3RlbHkoYm9vbCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFNp
emUoY29uc3QgSW50U2l6ZSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCAzOWRhNTU4ZTZkYjM4ZjBj
Nzc4YzUxNzgwYTA3NjJiNWY2NTAwYjBmLi5jOWQ2MWJhYjU0ZWU4MmVkY2NhYWY4ZGIwMzY0Zjli
NjFjNTU1MWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oCkBAIC0zMjMsNyArMzIzLDExIEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IHNldFJlc29sdmVkVVJMKFVSTCYmKTsKICAgICBjb25zdCBVUkwmIHJlc29sdmVkVVJMKCkgY29u
c3QgeyByZXR1cm4gbV9yZXNvbHZlZFVSTDsgfQogCisgICAgYm9vbCBob3N0VmlkZW9MYXllclJl
bW90ZWx5KCkgeyByZXR1cm4gbV9ob3N0VmlkZW9MYXllclJlbW90ZWx5OyB9CisKIHByaXZhdGU6
CisgICAgdm9pZCBzZXRIb3N0VmlkZW9MYXllclJlbW90ZWx5KGJvb2wgaG9zdFZpZGVvTGF5ZXJS
ZW1vdGVseSkgZmluYWwgeyBtX2hvc3RWaWRlb0xheWVyUmVtb3RlbHkgPSBob3N0VmlkZW9MYXll
clJlbW90ZWx5OyB9CisKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKICAgICBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4gbV9wZW5kaW5nU2VlazsKQEAgLTM3MSw2ICszNzUsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9jaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkOwogICAgIGJvb2wgbV9zaG91bGRN
YWludGFpbkFzcGVjdFJhdGlvOwogICAgIGJvb2wgbV9zZWVraW5nOworICAgIGJvb2wgbV9ob3N0
VmlkZW9MYXllclJlbW90ZWx5IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBhZjZjODA0ZjZjZjhlNjA4ZDg3ZDgzOWZkODA2
ZjA4OTAzZDIzZmI2Li5jMWY4MjBkMjZhNTI1YmEwMjhlYjg4M2Q3NTJmYWU4MjZjYzVmYjhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNzQsNiArMTc0LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIHBsYXRmb3JtUGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWb2x1bWUo
ZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBmaW5hbDsKICAgICB2b2lkIHBhaW50KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikg
b3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMGRjMmU3NzJhZTlkZTkzMjM1ZGQwY2M1
Yzk4OTc4ZDc4MjZkMzZlNy4uMGE2YmUzNGQ1ODA0ZGJiMjhhMDNlYjkxOWVjY2ZhNzk0OWYwNGZh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xNTIyLDYgKzE1MjIsMTIgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29u
dGV4dChHcmFwaGljc0NvbnQKICAgICBtX3ZpZGVvRnJhbWVIYXNEcmF3biA9IHRydWU7CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2l6ZShjb25zdCBJ
bnRTaXplJiBzaXplKQoreworICAgIGlmIChob3N0VmlkZW9MYXllclJlbW90ZWx5KCkpCisgICAg
ICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvSW5saW5lU2l6ZShzaXplKTsKK30KKwog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludChHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIW1ldGFE
YXRhQXZhaWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRl
b0xheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCmluZGV4IGNjYjg3NTY0MzNh
ZDNkNGM2YjBhMWMzMTYzNmE2MjkxYWQxMDQ1NmUuLjFiM2ZiNjczYjJhNmE0MWY3ZTlmNDRmZTNl
MzIyMzFkZGNhODE3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3Qgdmlk
ZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVl
bkZyYW1lOyB9CiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBJbnRT
aXplIGNvbnRlbnRTaXplKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZShjb25z
dCBJbnRTaXplJik7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJ
bWFnZVB0cikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFn
ZShOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZShGbG9hdFJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLm1tCmluZGV4IDU3MTBjNmEzY2EwZjRhNDZkNGMzN2MwOWRmYWVmNWMwNWQ0
OWJlMjguLjYzMTNkNTM2MWFhZDcwMzUxNWUzODU5NWMwYzMwZjg4OGIwNTRkY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Zp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAgLTczLDYg
KzczLDIwIEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRm
b3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29uCiAgICAgfQogfQogCit2b2lkIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9JbmxpbmVTaXplKGNvbnN0IEludFNpemUmIHNpemUp
Cit7CisgICAgaWYgKCFtX3ZpZGVvSW5saW5lTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fdmlkZW9JbmxpbmVGcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXpl
LmhlaWdodCgpKTsKKyAgICAvLyBXZSBkbyBub3Qgd2FudCBhbmltYXRpb25zIGhlcmUKKyAgICBb
Q0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlv
bnM6WUVTXTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZyYW1lOm1fdmlkZW9JbmxpbmVG
cmFtZV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICBzeW5jVGV4dFRyYWNrQm91
bmRzKCk7Cit9CisKIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxz
Y3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKIHsKICAgICBpZiAobV92aWRl
b0lubGluZUxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2
Y2ZmMjgzNjVjZjZjOGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAyNzQ0OWZiZDhmOTI2MzZjMzU0NTQ2
OWRjYWQ0Mzk0MjFiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtODIsNyAr
ODIsNyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FMYXllckhvc3QgbGF5
ZXJdOwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJXZWJWaWRlb0hv
c3RpbmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIkhvc3RpbmcgbGF5ZXIiXTsK
ICNlbmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7CiAgICAgcmV0dXJu
IGxheWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3MmM2MjcxYzFiYzg5
YWUyYjdmMzI3ZWMyZWEyY2JhLi5lZDMxNDA1MDY0ZDg3Yjc1MjRiYjQyYWQ4YTFkMzcxZGRiMmNl
YWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIgpAQCAtMTAyLDE3ICsxMDMsMTcgQEAgdm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkKFVSTCYmIHVybCwgT3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiYKICAgICB9CiAKICAgICBtX3BsYXllci0+bG9hZCh1cmwsIGNv
bnRlbnRUeXBlLCBrZXlTeXN0ZW0pOworICAgIG1fcGxheWVyLT5zZXRIb3N0VmlkZW9MYXllclJl
bW90ZWx5KHRydWUpOwogICAgIGdldENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbik7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiB9CiAKLXZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUs
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2
ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBMYXlvdXRSZWN0IGxheW91dFJlY3Qs
IGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBw
cml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBi
b29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVv
Q29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGlu
Z0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1f
cGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKHByaXZhdGVNb2RlKTsKICAgICBtX3BsYXll
ci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAgICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2go
cHJlc2VydmVzUGl0Y2gpOwogICAgIG1fcGxheWVyLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7Ci0g
ICAgbV92aWRlb0NvbnRlbnRCb3hSZWN0ID0gbGF5b3V0UmVjdDsKICAgICBtX3ZpZGVvQ29udGVu
dFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0g
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkp
OwpAQCAtNDY4LDYgKzQ2OSw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRp
YVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7CisgICAgLy8gSW5pdGlhbGx5IHRo
ZSBzaXplIG9mIHRoZSBwbGF0Zm9ybUxheWVyIHdpbGwgYmUgMHgwIGJlY2F1c2Ugd2UgZG8gbm90
IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGluIHRoaXMgY2xhc3MuCiAgICAg
bV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobV9wbGF5ZXItPnBsYXRmb3JtTGF5
ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKSwgbV9pZCk7CiB9
CkBAIC01MDgsNiArNTEwLDE2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpCiB9CiAjZW5kaWYKIAordm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgSW50U2l6ZSYgc2l6
ZSwgY29uc3QgSVBDOjpNYWNoUG9ydCYgbWFjaFBvcnQpCit7CisgICAgaWYgKG1hY2hQb3J0LmRp
c3Bvc2l0aW9uKCkgIT0gTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KG1hY2hQb3J0LnBvcnQo
KSk7CisgICAgbV9wbGF5ZXItPnNldFNpemUoc2l6ZSk7CisgICAgZGVhbGxvY2F0ZVNlbmRSaWdo
dFNhZmVseShtYWNoUG9ydC5wb3J0KCkpOworfQorCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDdXJy
ZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sIGlzQ3VycmVudFBsYXliYWNr
VGFyZ2V0V2lyZWxlc3MpCiB7CkBAIC01NDYsMTEgKzU1OCw2IEBAIGJvb2wgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotTGF5b3V0UmVjdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92aWRlb0Nv
bnRlbnRCb3hSZWN0OwotfQotCiBmbG9hdCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllckNvbnRlbnRzU2NhbGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZpZGVvQ29udGVudFNj
YWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgKaW5kZXggYjIyNjMwZmRhZGJmNDczZjdkYmE5N2EzM2ZiZjJjNTNk
YmIxMDc4OS4uNzQxZjIyMTgxNzNhODVjZTQ5NDFkZmYxZDFhODU1YWU5MDE3YzRmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCkBAIC00Niw2ICs0NiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIE1hY2hQb3J0
OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNs
YXNzIFZpZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CiAK
LSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBh
cmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4mJik+JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUs
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gs
IGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4mJik7
CiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAKICAgICB2b2lkIGxvYWQoVVJMJiYs
IE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6Q29u
dGVudFR5cGUmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZU1l
ZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKT4mJik7CkBAIC0xMDksNiArMTEzLDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSk7CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgSVBDOjpNYWNoUG9ydCYpOworI2VuZGlmCisK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZvaWQgc2V0V2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9Q
bGF5YmFja1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODYsNiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlh
UGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRp
YVBsYXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IG1l
ZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBtZWRpYVBs
YXllckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGF1
c2UoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1ZmM0MmRjZDk1ZWY2NTQ0NjE0
Y2YxOWFhM2FkN2MyLi44MTNlY2Q0N2YwYmEyZmZiYzIzNjFjODM4MjYzNDM0YzU5MTU2NzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eSBOb3RSZWZDb3VudGVkIHsKLSAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9k
ZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3Jl
OjpMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0
aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJ
ZCkgQXN5bmMKKyAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51bTp1
aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBw
cmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRl
bnRTY2FsZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXll
ckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1cmwsIE9wdGlvbmFsPFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBXZWJDb3Jl
OjpDb250ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0cnVjdCBX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9u
KSBBc3luYwogICAgIENhbmNlbExvYWQoKQpAQCAtNTcsNiArNTcsMTAgQEAgbWVzc2FnZXMgLT4g
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBWaWRlb1RyYWNrU2V0
U2VsZWN0ZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGJv
b2wgZW5hYmxlZCkKICAgICBUZXh0VHJhY2tTZXRNb2RlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVt
b3RlSWRlbnRpZmllciB0cmFja0lELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZTo6TW9kZSBtb2RlKQogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0Vmlk
ZW9JbmxpbmVTaXplRmVuY2VkKFdlYkNvcmU6OkludFNpemUgc2l6ZSwgSVBDOjpNYWNoUG9ydCBt
YWNoUG9ydCkKKyNlbmRpZgorCiAgICAgIyBQYWludAogICAgICMgUGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQKIApAQCAtODEsNyArODUsNiBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXll
clByb3h5IE5vdFJlZkNvdW50ZWQgewogCiAgICAgQXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZl
KCkKICAgICBBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCi0KIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKaW5kZXggZTFmYzZmNzM3MmIxNjAzZTVkZDI1ZWIwYTRhNjAxYzZjOWJl
MjNlYS4uZWU2YmE5ZmFhOTEyMTI5MzYyNmQ5Y2NlYTQyYWUzNzU5YzBkZjE5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dApAQCAtNTU0LDYgKzU1NCw4IEBAIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dl
YkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KKwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIuY3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvbWFjL1dLQnVuZGxlTWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDIzN2Jk
ZTQ4NzVhNzMwZTYyOGQ1MmI4ZDQ3NjQ3NGUxZThjMjJhM2QuLmRlZjc4OTIzNTE2MzRkOTgzZTBk
MTViZDU5M2ZlNWEyOTIxOGQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0xOTAsNyAr
MTkwLDcgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJ
ZCB7IDAgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBpbnQ+IG1fY2xpZW50Q291bnRzOwogfTsK
LSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZDQ4ODViNDYzMmRlOWM4OGNmMDI2NWQ1ZWVmOWFiMDc1NGJmNTU4Ny4uYjlmZmY4M2Qx
MWQxNTk4MmQ2MGE3NGM4YjcyNmY4NmUzNmVkMWMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjkzLDYgKzI2OTMsMTAgQEAKIAkJ
MURCQkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMURFMEQwOTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVl
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkRE
MERGMjNGNjBFMUUwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAv
KiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9MYXllclJlbW90ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRleHRUcmFja1By
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUYwMTgxNjkxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01MjQ2LDYgKzUyNTAsNyBAQAogCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVk
aWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1
QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2
ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjND
OTNCQjcwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3OTIz
MTMxMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLApA
QCAtNTI2Myw2ICs1MjY4LDggQEAKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8sCiAJCQkJMDdFMTlGMDgyM0Q1MzNCOTAwOTRGRkI0
IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3RTE5RjA5MjNENTMzQkEw
MDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMURGREQwRTMyM0Y2
MTBGRTAwRTlCNDkwIC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMURGREQwRTIyM0Y2MTBGMDAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJ
CQkwNzFCQzU4MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3Bw
ICovLAogCQkJCTA3MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZS5oICovLAogCQkJKTsKQEAgLTYxMzksNiArNjE0NiwxNSBAQAogCQkJcGF0aCA9IEF1dG9t
YXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxREFGNUE0RDIzRUM5
Rjc5MDBCN0I1MTggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3Rl
Q29jb2EuaCAqLywKKwkJCQkxREZERDBERjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJl
bW90ZUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTFGMDE4MTY4MTg1OERDMTUwMEY5Mjg4NCAvKiBDb2NvYSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTk3LDggKzcw
MTMsOCBAQAogCQkJCTFBNDIyRjhBMThCMjlCNTQwMEQ4Q0Q5NiAvKiBXS0hpc3RvcnlEZWxlZ2F0
ZVByaXZhdGUuaCAqLywKIAkJCQk1MUQxMjQ4NDFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29v
a2llU3RvcmUuaCAqLywKIAkJCQk1MUQxMjQ4NTFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29v
a2llU3RvcmUubW0gKi8sCi0JCQkJREY0NjJFMEUyM0YyMkY1MzAwRUZGMzVGIC8qIFdLSFRUUENv
b2tpZVN0b3JlUHJpdmF0ZS5oICovLAogCQkJCTUxRDEyNDg2MUU3MzRBRTMwMDJCMjgyMCAvKiBX
S0hUVFBDb29raWVTdG9yZUludGVybmFsLmggKi8sCisJCQkJREY0NjJFMEUyM0YyMkY1MzAwRUZG
MzVGIC8qIFdLSFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5oICovLAogCQkJCTFBQjQwRUUzMUJGNjc3
RTMwMEJBODFCRSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnMubW0gKi8sCiAJCQkJMUFCNDBFRTQx
QkY2NzdFMzAwQkE4MUJFIC8qIFdLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaCAqLywKIAkJ
CQkxQTVCMUM0RjE4OTg2MDZGMDA0RkNGOUIgLyogV0tOYXZpZ2F0aW9uLmggKi8sCkBAIC0xMDI1
NCw3ICsxMDI3MCw2IEBACiAJCQkJMkQ1ODc1QkYyMTlCNTMxNTAwNzBCOUFBIC8qIEVkaXRhYmxl
SW1hZ2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4
RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MUFCNTEyQzAy
RUM0MDAyQkU2N0IgLyogRWRpdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCURGNDYyRTEy
MjNGMzM4QkUwMEVGRjM1RiAvKiBXS0NvbnRlbnRXb3JsZFByaXZhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDMyREE4MTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERp
c3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA3MjEsNyArMTA3MzYsNiBAQAogCQkJCUZF
RTQzRkQzMUU2N0IwMTgwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRURCRENENzFFNjhEMjA1MDBBNTlGOEYgLyogV2ViSW5z
cGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QzhFMkEzNjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCURGNDYyRTBGMjNGMjJGNTUwMEVGRjM1RiAvKiBXS0hUVFBDb29raWVTdG9y
ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAv
KiBXZWJJbnNwZWN0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNBOEI5NDYxMjdDODgy
QTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFDODkxRDY2MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JVSS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMDkzNCw2ICsxMDk0OCw3IEBACiAJCQkJMEYwNDE1OUUyM0M3Q0M3MzAwNjBB
M0UyIC8qIFdLQ29udGVudFZpZXdNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMTA2NUZDMjNF
Qzk1NzIwMDU0NDNENiAvKiBXS0NvbnRlbnRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEx
MDY1RkQyM0VDOTU3QjAwNTQ0M0Q2IC8qIFdLQ29udGVudFdvcmxkSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAorCQkJCURGNDYyRTEyMjNGMzM4QkUwMEVGRjM1RiAvKiBXS0NvbnRlbnRXb3JsZFBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjlFMjRCMTEyMEUxNUMwMEExMzdFMCAvKiBX
S0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjk4MTkyMDI2NzIwMEExRkEzNyAv
KiBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ0NUJB
NTE4NEQ1RkRBMDA0QjM0MTQgLyogV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMTAxNyw2ICsxMTAzMiw3IEBACiAJCQkJMUE0MjJGOEIxOEIyOUI1NDAwRDhD
RDk2IC8qIFdLSGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjYy
RTczMTIxNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFEMTI0OTkxRTc2M0MwMTAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlERjQ2MkUwRjIzRjIyRjU1MDBFRkYzNUYgLyogV0tIVFRQQ29va2ll
U3RvcmVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzY2QTRCNTIzMjA5NjI0MDBFQTRE
NDQgLyogV0tIVFRQQ29va2llU3RvcmVSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMTBBRTBE
MTMzQzE2Q0IwMDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlkYzBlYmI2MDY2NDg5N2Y4
MmRiN2UwNTE4MDhmMGU0ODlkYzUyNzkuLjExOWFhMzA4MzUyODU4YjkxZjViNDU3MjUwMmI3NjUx
ODlmYzAxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTMwLDEwICszMCwx
MiBAQAogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgi
CiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC05MCwxNyArOTIs
MTYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmUpCiB7Ci0gICAgYXV0byBsYXlvdXRSZWN0ID0gbV9wbGF5
ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCk7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5w
bGF5ZXJDb250ZW50c1NjYWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2so
cHJpdmF0ZU1vZGUsIHByZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBsYXlvdXRSZWN0
LCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250
ZXh0SWQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRl
TW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYg
KCFjb250ZXh0SWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0xheWVy
ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250
ZXh0KGNvbnRleHRJZC52YWx1ZSgpKTsKKyAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3Jl
YXRlVmlkZW9MYXllclJlbW90ZSh0aGlzLCBjb250ZXh0SWQudmFsdWUoKSk7CiAgICAgfSwgbV9p
ZCk7CiB9CiAKQEAgLTMwNSw2ICszMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6c2l6ZUNoYW5nZWQoV2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAg
ICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1l
QXZhaWxhYmxlKCk7CiB9CiAKQEAgLTU0Nyw3ICs1NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJl
dHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5n
ZXQoKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCkBAIC02NzEsMTQgKzY3MywyMSBAQCB1
bnNpZ25lZCBsb25nIGxvbmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkg
Y29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRT
aXplJiBzaXplLCBjb25zdCBJUEM6Ok1hY2hQb3J0JiBtYWNoUG9ydCkKK3sKKyAgICBjb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6U2V0VmlkZW9Jbmxp
bmVTaXplRmVuY2VkKHNpemUsIG1hY2hQb3J0KSwgbV9pZCk7Cit9CisjZW5kaWYKKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVu
ZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVt
cHR5LgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2UxMWY0
YWQwMjVhMTgzMGU1Y2YzYzg5NTAwZGE4Li5hODhhODE1NGRkNzY1YTk2ZWVhNmU5MmQyMTkyYmRk
NzgwMjViNGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTM4LDYgKzM4LDEwIEBA
CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
K25hbWVzcGFjZSBJUEMgeworY2xhc3MgTWFjaFBvcnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKIH0KQEAgLTg3LDYgKzkxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8s
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogICAgIHZvaWQgc2l6
ZUNoYW5nZWQoV2ViQ29yZTo6RmxvYXRTaXplKTsKICAgICB2b2lkIGZpcnN0VmlkZW9GcmFtZUF2
YWlsYWJsZSgpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVT
aXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBJUEM6Ok1hY2hQb3J0Jik7
CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZv
aWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsK
QEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90
YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29u
c3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29jb2EgV2ViS2l0IHBvcnQsIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUoKSBkb2VzIG5vdGhpbmcsCi0gICAgLy8g
c28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5lZWQgdG8gc2VuZCBJUEMgbWVzc2FnZXMgdG8g
Y2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0gICAgLy8gT3RoZXIgV2ViS2l0IHBvcnRzIG1h
eSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7Ci0KICAgICB2b2lkIHBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdl
Rm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0OCw3ICszNDksNyBAQCBwcml2YXRlOgogCiAg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0
cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxv
YWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0xheWVyOworICAgIFJl
dGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAgICAgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMyNDkwNmYyMWIwZDZlNGNjOTBhYmZkZTUwNzkyM2UzZjA2YzhhOWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1v
dGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSAiTGF5ZXJI
b3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFT
UyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUqLCBMYXllckhvc3RpbmdDb250ZXh0SUQpOworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MzU4MTA4YTY0MjdiMDMzNGY0ZTNjZTBmOTkwMGVkOGYwMTUwN2RhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09B
KQorCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZh
Y2UgV0tWaWRlb0xheWVyUmVtb3RlIDogQ0FMYXllcgorQHByb3BlcnR5IChub25hdG9taWMsIGFz
c2lnbikgV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3Vi
bGF5ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0Bl
bmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdiZWY3YmE0YzQ3OTE3ZGRkOGIwMGZlYzJmNmY2ZmYyYzQ2ZjMzNmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJMYXllckhvc3RpbmdD
b250ZXh0LmgiCisjaW1wb3J0ICJNYWNoUG9ydC5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlLmgiCisjaW1wb3J0IDxXZWJD
b3JlL0Zsb2F0UmVjdC5oPgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbXBvcnQg
PHd0Zi9XZWFrUHRyLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS1ZpZGVvTGF5ZXJSZW1vdGUgewor
ICAgIFdlYWtQdHI8V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IF9tZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CisgICAgQ0FMYXllciogX3ZpZGVvU3VibGF5ZXI7CisgICAgQ0FDb250
ZXh0KiBfY29udGV4dDsKKyAgICBkaXNwYXRjaF9ibG9ja190IF9wZW5kaW5nUmVzb2x2ZUJvdW5k
c0Jsb2NrOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CisgICAgaWYgKHNlbGYpIHsKKyAgICAgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVT
OworICAgICAgICBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IG5pbDsKKyAgICB9CisKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKF9wZW5kaW5n
UmVzb2x2ZUJvdW5kc0Jsb2NrKQorICAgICAgICBkaXNwYXRjaF9ibG9ja19jYW5jZWwoX3BlbmRp
bmdSZXNvbHZlQm91bmRzQmxvY2spOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUK
K3sKKyAgICByZXR1cm4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5nZXQoKTsKK30KKworLSAo
dm9pZClzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgX21lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSA9IG1ha2VXZWFrUHRyKCptZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOwor
fQorCistIChDQUxheWVyICopdmlkZW9TdWJsYXllcgoreworICAgIHJldHVybiBfdmlkZW9TdWJs
YXllcjsKK30KKworLSAodm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVyICopdmlkZW9TdWJs
YXllcgoreworICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsKK30KKworLSAodm9p
ZClsYXlvdXRTdWJsYXllcnMKK3sKKyAgICBpZiAoW192aWRlb1N1YmxheWVyIHN1cGVybGF5ZXJd
ICE9IHNlbGYpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3Vy
Y2VWaWRlb0ZyYW1lID0gc2VsZi52aWRlb0xheWVyRnJhbWU7CisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IHRhcmdldFZpZGVvRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICBDR0FmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSh0YXJnZXRWaWRlb0ZyYW1l
LndpZHRoKCkgLyBzb3VyY2VWaWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldFZpZGVvRnJhbWUuaGVp
Z2h0KCkgLyBzb3VyY2VWaWRlb0ZyYW1lLmhlaWdodCgpKTsKKworICAgIFtDQVRyYW5zYWN0aW9u
IGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAg
IFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKHNl
bGYuYm91bmRzKSwgQ0dSZWN0R2V0TWlkWShzZWxmLmJvdW5kcykpXTsKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOnRyYW5zZm9ybV07CisgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKKworICAgIF9jb250ZXh0ID0gW0NBQ29udGV4dCBjdXJyZW50Q29udGV4dF07Cisg
ICAgTlNUaW1lSW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbQ0FUcmFuc2FjdGlvbiBhbmlt
YXRpb25EdXJhdGlvbl07CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXnsKKyAgICAgICAgaWYgKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKQorICAgICAg
ICAgICAgZGlzcGF0Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKTsK
KworICAgICAgICBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IGRpc3BhdGNoX2Jsb2NrX2Ny
ZWF0ZSgoZGlzcGF0Y2hfYmxvY2tfZmxhZ3NfdCkwLCBeeworICAgICAgICAgICAgX3BlbmRpbmdS
ZXNvbHZlQm91bmRzQmxvY2sgPSBuaWw7CisgICAgICAgICAgICBbc2VsZiByZXNvbHZlQm91bmRz
XTsKKyAgICAgICAgfSk7CisgICAgICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUoRElT
UEFUQ0hfVElNRV9OT1csIGFuaW1hdGlvbkR1cmF0aW9uICsgMC4xICogTlNFQ19QRVJfU0VDKSwg
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2spOwor
ICAgIH0pOworfQorCistICh2b2lkKXJlc29sdmVCb3VuZHMKK3sKKyAgICBpZiAoW192aWRlb1N1
YmxheWVyIHN1cGVybGF5ZXJdICE9IHNlbGYpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChD
R1JlY3RFcXVhbFRvUmVjdChzZWxmLnZpZGVvTGF5ZXJGcmFtZSwgc2VsZi5ib3VuZHMpICYmIENH
QWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShzZWxmLmFmZmluZVRyYW5zZm9ybSkpCisgICAgICAg
IHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgaWYgKCFDR1JlY3RFcXVhbFRvUmVjdChz
ZWxmLnZpZGVvTGF5ZXJGcmFtZSwgc2VsZi5ib3VuZHMpKSB7CisgICAgICAgIHNlbGYudmlkZW9M
YXllckZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgICAgIGlmIChhdXRvICptZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUgPSBzZWxmLm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSkgeworICAgICAgICAg
ICAgTWFjaFNlbmRSaWdodCBfZmVuY2VTZW5kUmlnaHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChb
X2NvbnRleHQgY3JlYXRlRmVuY2VQb3J0XSk7CisgICAgICAgICAgICBtYWNoX3BvcnRfbmFtZV90
IGZlbmNlUG9ydCA9IF9mZW5jZVNlbmRSaWdodC5sZWFrU2VuZFJpZ2h0KCk7CisgICAgICAgICAg
ICBtZWRpYVBsYXllclByaXZhdGVSZW1vdGUtPnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChXZWJD
b3JlOjpJbnRTaXplKHNlbGYudmlkZW9MYXllckZyYW1lLnNpemUpLCBJUEM6Ok1hY2hQb3J0KGZl
bmNlUG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06Q0dBZmZpbmVUcmFuc2Zvcm1J
ZGVudGl0eV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEZyYW1lOnNlbGYuYm91bmRzXTsKKwor
ICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLCBMYXllckhvc3RpbmdD
b250ZXh0SUQgY29udGV4dElkKQoreworICAgIC8vIEluaXRpYWxseSwgYWxsIHRoZSBsYXllcnMg
d2lsbCBiZSBlbXB0eSAoYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwKSBhbmQgaW52aXNpYmxl
LgorICAgIC8vIFRoZSByZW5kZXJlciB3aWxsIGNoYW5nZSB0aGUgc2l6ZXMgb2YgV0tWaWRlb0xh
eWVyUmVtb3RlIHRvIHRyaWdnZXIgbGF5b3V0IG9mIHN1YmxheWVycyBhbmQgbWFrZSB0aGVtIHZp
c2libGUuCisgICAgV0tWaWRlb0xheWVyUmVtb3RlICp2aWRlb0xheWVyUmVtb3RlID0gW1tXS1Zp
ZGVvTGF5ZXJSZW1vdGUgYWxsb2NdIGluaXRdOworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgMCwgMCldOworI2lmbmRlZiBOREVCVUcKKyAgICBbdmlkZW9M
YXllclJlbW90ZSBzZXROYW1lOkAiV0tWaWRlb0xheWVyUmVtb3RlIl07CisjZW5kaWYKKworICAg
IFt2aWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTptZWRpYVBsYXll
clByaXZhdGVSZW1vdGVdOworCisgICAgYXV0byB2aWRlb1N1YmxheWVyID0gTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJZCk7
CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjp2aWRlb1N1YmxheWVyLmdl
dCgpXTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBhZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyLmdl
dCgpXTsKKyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFtZTp2aWRlb0xheWVyUmVtb3RlLmJvdW5k
c107CisKKyAgICByZXR1cm4gdmlkZW9MYXllclJlbW90ZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390854</attachid>
            <date>2020-02-14 21:42:25 -0800</date>
            <delta_ts>2020-02-17 18:19:11 -0800</delta_ts>
            <desc>Revised patch based on review comments</desc>
            <filename>bug-206132-20200214214225.patch</filename>
            <type>text/plain</type>
            <size>56042</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlYzI3NGExZjM5ZGU0
OTMwMDgxMzJhMWE1ZjMxMTkxYjRkNmU2OS4uY2E1OGExMjk0MTcyOTMxMDgwYjMwMTRjYzdiMGVj
MmZmZjNlNGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAyLTE0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmbGFnICht
X2hvc3RzVmlkZW9MYXllclJlbW90ZWx5KSBpbiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24gd2l0aCBhIGRlZmF1bHQgdmFsdWUgZmFsc2UuCisgICAgICAgIFdoZW4gaXRzIHZh
bHVlIGlzIHRydWUsIE1lZGlhUGxheWVyQ2xpZW50IChhIFJlbW90ZU1lZGlhUGxheWVyUHJveHkg
aW5zdGFuY2Ugd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgZW5hYmxlZCBhbmQgdGhlIG1lZGlhIGlu
IEdQVQorICAgICAgICBwcm9jZXNzIGZlYXR1cmUgaXMgb24pIGNhbiByZXF1ZXN0IHRoZSBWaWRl
byBMYXllciBNYW5hZ2VyIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgdmlkZW8gY29udGFpbmVy
IGxheWVyIGZvciBpbmxpbmUgdmlkZW8uCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldEhvc3RzVmlkZW9MYXllclJl
bW90ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRIb3N0c1ZpZGVvTGF5ZXJS
ZW1vdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xh
eWVyTWFuYWdlck9iakM6OnNldFZpZGVvSW5saW5lU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW06CisgICAgICAgICgrW0NBTGF5
ZXIgX3dlYl9yZW5kZXJMYXllcldpdGhDb250ZXh0SUQ6XSk6CisKIDIwMjAtMDItMTIgIFJ5YW4g
SGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDg5MGE4NDM4ZmEwZjA2NzU3
NmQ1MGE3OTRmZDJlMTBiMzYwYTU1MTMuLjFjZjM1Zjg1ZDgyODE2N2E0ZGMxODBlZGMwZTQ5Mjlm
NWI1M2RlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAyLTE0
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQ
VSBwcm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4g
dGhlIEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oOgorCiAyMDIwLTAyLTEyICBSeWFuIEhhZGRhZCAgPHJ5
YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
NTYwMTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDFkNmFiMTA0ZjkxYTczYWJjMzI3MjBjMTkwY2FlNjdjMTZjNDI5
NzAuLmRhYTJiMjQzY2ExY2NkMGViNjZiZGZlYjUwNmZhNjkyMzkyNDRmNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTEgQEAKKzIwMjAtMDItMTQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNv
bT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9w
ZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGlu
ZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjcmVhdGVzIFdLVmlk
ZW9MYXllclJlbW90ZSB3aG9zZSBzdWJsYXllciBpcyBjcmVhdGVkIGJ5IExheWVySG9zdGluZ0Nv
bnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgpLgorICAgICAgICBU
aGUgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVyZXIgdG8gbWFu
YWdlIHRoZSB2aWRlbyBlbGVtZW50IGluIHRoZSBXZWIgcHJvY2Vzcy4gV2hlbiBpdHMgc2l6ZSBp
cyBjaGFuZ2VkIGJ5IHRoZSByZW5kZXJlciwKKyAgICAgICAgaXQgYXBwbGllcyBhIHRyYW5zZm9y
bSB3aXRob3V0IGNoYW5naW5nIGl0cyBhY3R1YWwgc2l6ZSwgYW5kIHNlbmRzIGEgbWVzc2FnZSB0
byB0aGUgdmlkZW8gbGF5ZXIgbWFuYWdlciBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgdG8g
Y2hhbmdlIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIgbGF5ZXIgKHZpZGVvSW5saW5lTGF5ZXIp
LiBBZnRlciB0aGF0IFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIHNldCBpdHMgc2l6ZSB0byB0aGUg
Y29ycmVjdCBvbmUuCisgICAgICAgIFdlIG5lZWQgdG8gdXNlIGEgRmVuY2VQb3J0IHRvIHN5bmNo
cm9uaXplIHRoZSB0cmFuc2FjdGlvbnMgaW4gdGhlIFdlYiBwcm9jZXNzIGFuZCB0aGUgR1BVIHBy
b2Nlc3MuCisKKyAgICAgICAgV2UgaGF2ZSB0byB1c2Ugc3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdl
IHRoZSBhcHBlYXJhbmNlIG9mIFdLVmlkZW9MYXllclJlbW90ZSBpbiBvcmRlciB0byBndWFyYW50
ZWUgdGhlIHNtb290aG5lc3Mgd2hlbiBhIHVzZXIKKyAgICAgICAgY2hhbmdlIHRoZSBzaXplIG9m
IGEgdmlkZW8gZWxlbWVudC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJv
eFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0Zy
YW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGlu
aXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGRlYWxsb2NdKToKKyAgICAgICAg
KC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV0pOgorICAgICAg
ICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOl0pOgor
ICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlkZW9TdWJsYXllcl0pOgorICAgICAgICAo
LVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjpdKToKKyAgICAgICAgKC1bV0tW
aWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5
ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xh
eWVyUmVtb3RlKToKKwogMjAyMC0wMi0xMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU2MDEwLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDBm
OWVhZDdiYjk1MjgxYjllMjY0ODExOWRkZjVjZWVlNWY5NDgxMjEuLjUzM2Y3MGRkZjg1YmQxZmJi
ZWNiMjY3NjU3NGI5NzA5ODVlM2ZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NBUmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250
ZXh0ICgpCiArIChOU0FycmF5ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50
Q29udGV4dDsKICsgKENBQ29udGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4dCAqKXJl
bW90ZUNvbnRleHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNWZhZDVjMTliOGU4ZDY1ZGYyOWRkMmExZjU1M2Y3ZjZlMmYyOWIzOS4uMzQx
MGEyODU3NTNhN2ViYjFmYjY4ZjhmMjcwZDQyN2NkMDc3MzZiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxLDYgKzEzMSw3
IEBACiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlF
OTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKIAkJMDc1NEE1RUEyMTVFQTNC
ODAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlk
ZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NUJBODQ5MjA2MThBQTUwMEZD
QjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJN
YW5hZ2VyLmggKi87IH07CiAJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NjM4
QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTgxODg0NDg3MjAw
RTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi87IH07CiAJCTA3Njk3MDg2MTQ2
M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0
VHJhY2tMaXN0LmNwcCAqLzsgfTsKQEAgLTYzMyw3ICs2MzQsNiBAQAogCQkxRDJGOEUwNDIzNDQ3
NTE2MDA5OTNCNjggLyogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNBMjMzQzNEMEIwMEVFMjI4
RCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA1MjM0NDc1MUQwMDk5M0I2OCAvKiBI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0MyMzNDM0QyMDAwRUUyMjhEIC8qIEhUTUxW
aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDYyMzQ0NzUyMzAwOTkzQjY4IC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFERUYwNkNEMjMzQzNEMkEwMEVFMjI4RCAvKiBQaWN0dXJlSW5QaWN0dXJlV2lu
ZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MUQzOTJGMkQyM0YyMEE3MDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzkyRjI4MjNGMjA5
QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi87IH07CiAJCTFEOUYwRkMx
MjEyMjAyOUIwMDVEOEZENCAvKiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgwRSAvKiBTaGFyZURh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
REJDMUI1NjIzNDdCM0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdC
M0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMxRTIxQkExNzAwNjIx
RTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAwNjIxRTI1IC8qIFdl
YkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNTgzLDYgKzE1ODMsNyBAQAogCQk1MkIwRDRCRTFDNTdG
RDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1W
aWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRC
RjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMjFD
NTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRDMTFDNTdGRjkxMDA3
N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gKi87IH07CiAJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJE
NUExQTgxQzU3NDhBMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkUyQ0FG
QzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJFMkNBRkIxOUZGMDIwNzAwMUVFQjRGIC8qIE1l
ZGlhUHJvZHVjZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNTQ2Nyw2ICs1NDY4LDcgQEAKIAkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwNzVCQTg0NzIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFTZXNzaW9uTWFuYWdlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYz
OEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJD
RiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRleHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjUw
OCw5ICs2NTEwLDYgQEAKIAkJMUQwMDI2QTgyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0
dXJlSW5QaWN0dXJlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNF
bnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxRDAwMjZBOTIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGVyUGljdHVy
ZUluUGljdHVyZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQyQzgy
QjYyMzZBM0Y2QTAwNTVENkM1IC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTFEMzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyTWFu
YWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFEMzkyRjJBMjNGMjA5
QjUwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFEMzkyRjJCMjNGMjA5RDgwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYg
LyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1cmVJblBp
Y3R1cmVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRDIx
MUJBMTJBMDA0Qjc4MEUgLyogTmF2aWdhdG9yU2hhcmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE5hdmlnYXRvclNoYXJlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURD
NTUzRkYyMTFCQTg0MTAwNEI3ODBFIC8qIFNoYXJlRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU2hhcmVEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NDUs
NiArODQ0NCw4IEBACiAJCTUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MkIwRDRDMTFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNCMTFEQjIyRkREQjJF
MDA5RjBBNjQgLyogV0hMU0xEZWZhdWx0RGVsZXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRGVm
YXVsdERlbGV0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1QTE4RDFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTUyRDVBMThFMUM1NDU5MDMwMERF
MzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKIAkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE1MUM1
NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNjFDNTc0ODg5MDBE
RTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MTEzLDcgKzI1MTE0LDcg
QEAKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAogCQkJ
CTBGNUE1N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBG
MUEwQzM2MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKLQkJCQkxRDM5MkYy
QjIzRjIwOUQ4MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKKwkJCQkwNzVCQTg0
NzIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKIAkJCQlCRUYyOUVF
QTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKIAkJCQkxNDExRENC
MDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oICovLAogCQkJCTkzOUIwMkVDMEVBMkRC
QzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLywKQEAgLTI2NzE5LDggKzI2NzIwLDgg
QEAKIAkJCQk3QTI5RjU3MTE4QzY5NTE0MDA0RDBGODEgLyogT3V0T2ZCYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRi5oICovLAogCQkJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNEQzhCNUE4MTgwNDdGRjEwMDE2RTY4NSAvKiBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLywKLQkJCQkxRDM5MkYyQTIzRjIwOUI1MDBF
MDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCi0JCQkJMUQzOTJGMjgyM0YyMDlC
NDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKKwkJCQk1MkQ1QTE4RTFD
NTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCisJCQkJNTJENUEx
OEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKIAkJCQlD
RDMzNkY2NTE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCAq
LywKIAkJCQlDRDMzNkY2NjE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZP
YmpDLmggKi8sCiAJCQkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCkBAIC0zMjgxNyw2ICszMjgxOCw3IEBACiAJCQkJ
NTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTA3NUJBODQ5MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tR
dWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyog
VmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2
NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDI0Myw3ICsz
NDI0NSw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcxOTFFRjQxNzAw
N0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUQzOTJGMkQyM0YyMEE3MDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUyRDVBMThGMUM1
NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCRTg4RTBERTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCRTg4RTBFMTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzMzZGNjcxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBjYTcxZTdlMGI1ODZjN2I1
NWIxMTI3MzJiYWQ1OWIwMWQ4YTQxODFiLi5iZmJlZmQ1ZWI0OTQ3NDllMDI1ZWJmNzVlZDU0NzE1
YWQ5MDMzOTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCkBAIC0xMTAsOSArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGF1c2Uo
KSBmaW5hbCB7IH0KIAogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBudWxscHRyOyB9Ci0KICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBGbG9hdFNpemUoKTsgfQotCiAgICAgYm9vbCBoYXNWaWRlbygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTkyMyw2ICs5MjEsMTEgQEAgdm9pZCBNZWRp
YVBsYXllcjo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIG1fcHJpdmF0ZS0+c2V0
U2l6ZShzaXplKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6c2V0SG9zdHNWaWRlb0xheWVyUmVt
b3RlbHkoYm9vbCBob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseSkKK3sKKyAgICBtX3ByaXZhdGUtPnNl
dEhvc3RzVmlkZW9MYXllclJlbW90ZWx5KGhvc3RzVmlkZW9MYXllclJlbW90ZWx5KTsKK30KKwog
Ym9vbCBNZWRpYVBsYXllcjo6dmlzaWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlzaWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmlu
ZGV4IDdlNmNiOGEzOTBkZjdmZTFhN2FhZTAxNzM5ZGM5NDhmNzc2NjIxZWUuLjdjZjEyYWJjYTYz
N2U3ZDhkYWUwNzQ2OGZkMzViNTVkNjE3MTZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzI4LDYgKzMyOCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0Owog
CisgICAgdm9pZCBzZXRIb3N0c1ZpZGVvTGF5ZXJSZW1vdGVseShib29sKTsKICAgICBJbnRTaXpl
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggOWY3ZjZlNmIwMmQzYmViZTA5MGViY2Mz
MmE0YjBkY2ExY2MxNzVhOC4uODkxZjEyZjgwOWQyYzljNDA4ZGJjYzdhMGYwNDRhYjFmNzA5ZDI4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVh
bCB2b2lkIHNldEhvc3RzVmlkZW9MYXllclJlbW90ZWx5KGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzlkYTU1
OGU2ZGIzOGYwYzc3OGM1MTc4MGEwNzYyYjVmNjUwMGIwZi4uZjc0OTNhODEyMTIzYzhiMjMwMGUz
MThkYmUwOTFmNTQ5YjViYTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMzIzLDcgKzMyMywxMSBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBzZXRSZXNvbHZlZFVSTChVUkwmJik7CiAgICAgY29uc3QgVVJMJiByZXNvbHZl
ZFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRVUkw7IH0KIAorICAgIGJvb2wgaG9zdHNW
aWRlb0xheWVyUmVtb3RlbHkoKSB7IHJldHVybiBtX2hvc3RzVmlkZW9MYXllclJlbW90ZWx5OyB9
CisKIHByaXZhdGU6CisgICAgdm9pZCBzZXRIb3N0c1ZpZGVvTGF5ZXJSZW1vdGVseShib29sIGhv
c3RzVmlkZW9MYXllclJlbW90ZWx5KSBmaW5hbCB7IG1faG9zdHNWaWRlb0xheWVyUmVtb3RlbHkg
PSBob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseTsgfQorCiAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVy
OwogCiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fcGVuZGluZ1NlZWs7CkBAIC0zNzEsNiAr
Mzc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZDsKICAg
ICBib29sIG1fc2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbzsKICAgICBib29sIG1fc2Vla2luZzsK
KyAgICBib29sIG1faG9zdHNWaWRlb0xheWVyUmVtb3RlbHkgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGFmNmM4MDRmNmNm
OGU2MDhkODdkODM5ZmQ4MDZmMDg5MDNkMjNmYjYuLmMxZjgyMGQyNmE1MjViYTAyOGViODgzZDc1
MmZhZTgyNmNjNWZiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTE3NCw2ICsxNzQsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1QYXVzZWQoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIHNldFZvbHVtZShmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNdXRlZChib29s
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOwogICAg
IHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwZGMyZTc3
MmFlOWRlOTMyMzVkZDBjYzVjOTg5NzhkNzgyNmQzNmU3Li40MzcyYzg1N2IxNzhjNTZlZWJjY2Q1
ZDFmNDA4OThkNDBiZDZmNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTE1MjIsNiAr
MTUyMiwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50
Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udAogICAgIG1fdmlkZW9GcmFtZUhhc0Ry
YXduID0gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgaWYgKGhvc3RzVmlkZW9MYXll
clJlbW90ZWx5KCkpCisgICAgICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvSW5saW5l
U2l6ZShzaXplKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkK
IHsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2Fi
bGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5o
CmluZGV4IGNjYjg3NTY0MzNhZDNkNGM2YjBhMWMzMTYzNmE2MjkxYWQxMDQ1NmUuLjFiM2ZiNjcz
YjJhNmE0MWY3ZTlmNDRmZTNlMzIyMzFkZGNhODE3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxh
dGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXplKSBmaW5hbDsKKyAgICB2b2lkIHNldFZp
ZGVvSW5saW5lU2l6ZShjb25zdCBJbnRTaXplJik7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3Jl
ZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1
bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAgICAgdm9pZCBzZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCmluZGV4IDU3MTBjNmEzY2EwZjRhNDZk
NGMzN2MwOWRmYWVmNWMwNWQ0OWJlMjguLjYzMTNkNTM2MWFhZDcwMzUxNWUzODU5NWMwYzMwZjg4
OGIwNTRkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMubW0KQEAgLTczLDYgKzczLDIwIEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpz
ZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29uCiAgICAg
fQogfQogCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9JbmxpbmVTaXplKGNv
bnN0IEludFNpemUmIHNpemUpCit7CisgICAgaWYgKCFtX3ZpZGVvSW5saW5lTGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fdmlkZW9JbmxpbmVGcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwg
c2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKyAgICAvLyBXZSBkbyBub3Qgd2FudCBhbmlt
YXRpb25zIGhlcmUKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rp
b24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZy
YW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAg
ICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Cit9CisKIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpD
Ojp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkK
IHsKICAgICBpZiAobV92aWRlb0lubGluZUxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5t
bQppbmRleCAxODA1YzBhNWY2Y2ZmMjgzNjVjZjZjOGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAyNzQ0
OWZiZDhmOTI2MzZjMzU0NTQ2OWRjYWQ0Mzk0MjFiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4
dHJhcy5tbQpAQCAtODIsNyArODIsNyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3Qg
PSBbQ0FMYXllckhvc3QgbGF5ZXJdOwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNl
dE5hbWU6QCJXZWJWaWRlb0hvc3RpbmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpA
Ikhvc3RpbmcgbGF5ZXIiXTsKICNlbmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250
ZXh0SUQ7CiAgICAgcmV0dXJuIGxheWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBkOWUz
YmQzNzI3MmM2MjcxYzFiYzg5YWUyYjdmMzI3ZWMyZWEyY2JhLi4zM2IzYjE1MWI4YzcxOTM2NWM5
NGMwODZiMmFiMzhmMWQ0NmFmNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC00NSw2ICs0NSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC0xMDIsMTcgKzEwMywxNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQo
VVJMJiYgdXJsLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JgogICAgIH0KIAog
ICAgIG1fcGxheWVyLT5sb2FkKHVybCwgY29udGVudFR5cGUsIGtleVN5c3RlbSk7CisgICAgbV9w
bGF5ZXItPnNldEhvc3RzVmlkZW9MYXllclJlbW90ZWx5KHRydWUpOwogICAgIGdldENvbmZpZ3Vy
YXRpb24oY29uZmlndXJhdGlvbik7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25m
aWd1cmF0aW9uKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlBy
ZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVy
aW5nLCBMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250
ZXh0SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBh
cmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2Rl
KHByaXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAgICBt
X3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogICAgIG1fcGxheWVy
LT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7Ci0gICAgbV92aWRlb0NvbnRlbnRCb3hSZWN0ID0gbGF5
b3V0UmVjdDsKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAg
ICAgbV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9y
RXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbGF5ZXJI
b3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwpAQCAtNDY4LDYgKzQ2OSw3IEBAIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJs
ZSgpCiB7CisgICAgLy8gSW5pdGlhbGx5IHRoZSBzaXplIG9mIHRoZSBwbGF0Zm9ybUxheWVyIHdp
bGwgYmUgMHgwIGJlY2F1c2Ugd2UgZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94
UmVjdCgpIGluIHRoaXMgY2xhc3MuCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290
TGF5ZXIobV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVv
RnJhbWVBdmFpbGFibGUoKSwgbV9pZCk7CiB9CkBAIC01MDgsNiArNTEwLDEyIEBAIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJXYWl0aW5nRm9yS2V5Q2hhbmdlZCgpCiB9
CiAjZW5kaWYKIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBt
YWNoU2VuZFJpZ2h0KQoreworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0
KG1hY2hTZW5kUmlnaHQuc2VuZFJpZ2h0KCkpOworICAgIG1fcGxheWVyLT5zZXRTaXplKHNpemUp
OworfQorCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVs
ZXNzQ2hhbmdlZChib29sIGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MpCiB7CkBAIC01
NDYsMTEgKzU1NCw2IEBAIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJ
c0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotTGF5
b3V0UmVjdCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92aWRlb0NvbnRlbnRCb3hSZWN0OwotfQotCiBmbG9h
dCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25z
dAogewogICAgIHJldHVybiBtX3ZpZGVvQ29udGVudFNjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXgg
YjIyNjMwZmRhZGJmNDczZjdkYmE5N2EzM2ZiZjJjNTNkYmIxMDc4OS4uMTZiYjJkZGZhMjE0NzQ3
MGU4NjAwYWI3MTM5NmE1OWNkZjU0NDlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC00Niw2ICs0Niwx
MCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
CituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1hY2hTZW5kUmlnaHQ7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgVmlkZW9UcmFja1ByaXZh
dGU7CkBAIC03Niw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0Q29uZmlndXJhdGlv
bihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKTsKIAotICAgIHZvaWQgcHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgV2Vi
Q29yZTo6TGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4mJik7CisgICAgdm9p
ZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVu
ZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYpPiYmKTsKICAgICB2b2lkIHByZXBhcmVG
b3JSZW5kZXJpbmcoKTsKIAogICAgIHZvaWQgbG9hZChVUkwmJiwgT3B0aW9uYWw8U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlPiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIGNvbnN0IFN0
cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0
aW9uJiYpPiYmKTsKQEAgLTEwOSw2ICsxMTMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdmlkZW9U
cmFja1NldFNlbGVjdGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOwogICAg
IHZvaWQgdGV4dFRyYWNrU2V0TW9kZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlKTsKIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5YmFj
a0Rpc2FibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQo
Ym9vbCk7CkBAIC0xNzgsNyArMTg2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVy
SXNGdWxsc2NyZWVuKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNj
cmVlblBlcm1pdHRlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVv
KCkgY29uc3QgZmluYWw7Ci0gICAgV2ViQ29yZTo6TGF5b3V0UmVjdCBtZWRpYVBsYXllckNvbnRl
bnRCb3hSZWN0KCkgY29uc3QgZmluYWw7CiAgICAgZmxvYXQgbWVkaWFQbGF5ZXJDb250ZW50c1Nj
YWxlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllclBhdXNlKCkgZmluYWw7CiAg
ICAgdm9pZCBtZWRpYVBsYXllclBsYXkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggOGY4NjE1YTRmNWZjNDJkY2Q5NWVmNjU0NDYxNGNmMTlhYTNhZDdjMi4u
Y2E2NjMxNGRmYmU2ZDMxYmUwOTk1MmM1ZjI4MmYxMDYxOGZlYmViYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRl
ZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhf
dCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2Vy
dmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgV2ViQ29yZTo6TGF5b3V0UmVjdCBs
YXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisgICAg
UHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gs
IGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+IChP
cHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJIb3N0aW5nQ29udGV4
dElkKSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRpb25hbDxXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6Q29udGVudFR5cGUg
Y29udGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKICAgICBD
YW5jZWxMb2FkKCkKQEAgLTU3LDYgKzU3LDEwIEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgVmlkZW9UcmFja1NldFNlbGVjdGVkKFdlYktp
dDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIGVuYWJsZWQpCiAg
ICAgVGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
dHJhY2tJRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1v
ZGUgbW9kZSkKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFZpZGVvSW5saW5lU2l6ZUZl
bmNlZChXZWJDb3JlOjpJbnRTaXplIHNpemUsIE1hY2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkK
KyNlbmRpZgorCiAgICAgIyBQYWludAogICAgICMgUGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQK
IApAQCAtODEsNyArODUsNiBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5v
dFJlZkNvdW50ZWQgewogCiAgICAgQXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlKCkKICAgICBB
cHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggZTFmYzZmNzM3MmIxNjAzZTVkZDI1ZWIwYTRhNjAxYzZjOWJlMjNlYS4uZWU2
YmE5ZmFhOTEyMTI5MzYyNmQ5Y2NlYTQyYWUzNzU5YzBkZjE5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNTU0LDYgKzU1NCw4IEBAIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCiAKIFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRT
ZXJ2aWNlRW50cnlQb2ludC5tbQogCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xh
eWVyUmVtb3RlQ29jb2EubW0KKwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VCYW5uZXIuY3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFj
L1dLQnVuZGxlTWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDIzN2JkZTQ4NzVhNzMw
ZTYyOGQ1MmI4ZDQ3NjQ3NGUxZThjMjJhM2QuLmRlZjc4OTIzNTE2MzRkOTgzZTBkMTViZDU5M2Zl
NWEyOTIxOGQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0xOTAsNyArMTkwLDcgQEAg
cHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCB7IDAgfTsK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBpbnQ+IG1fY2xpZW50Q291bnRzOwogfTsKLSAgICAKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSB8
fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDQ4
ODViNDYzMmRlOWM4OGNmMDI2NWQ1ZWVmOWFiMDc1NGJmNTU4Ny4uYjlmZmY4M2QxMWQxNTk4MmQ2
MGE3NGM4YjcyNmY4NmUzNmVkMWMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjkzLDYgKzI2OTMsMTAgQEAKIAkJMURCQkIwNjEy
MTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMURFMEQwOTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMERGMjNGNjBF
MUUwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xh
eWVyUmVtb3RlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9M
YXllclJlbW90ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUy
MjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRleHRUcmFja1ByaXZhdGVSZW1v
dGUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNjkx
ODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJ
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjQ2
LDYgKzUyNTAsNyBAQAogCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1QTREMjNFQzlG
NzkwMEI3QjUxOCAvKiBjb2NvYSAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyog
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjNDOTNCQjcwMDY4
MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3OTIzMTMxMjM5QjNC
MEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLApAQCAtNTI2Myw2
ICs1MjY4LDggQEAKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmggKi8sCiAJCQkJMDdFMTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRleHRU
cmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZCNCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMURGREQwRTMyM0Y2MTBGRTAwRTlC
NDkwIC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMURGREQw
RTIyM0Y2MTBGMDAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkwNzFCQzU4
MzIzQ0MyQkQ1MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJ
CTA3MUJDNTgyMjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICov
LAogCQkJKTsKQEAgLTYxMzksNiArNjE0NiwxNSBAQAogCQkJcGF0aCA9IEF1dG9tYXRpb247CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxREFGNUE0RDIzRUM5Rjc5MDBCN0I1
MTggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAq
LywKKwkJCQkxREZERDBERjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29h
Lm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTFGMDE4MTY4MTg1OERDMTUwMEY5Mjg4NCAvKiBDb2NvYSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC02OTk3LDggKzcwMTMsOCBAQAog
CQkJCTFBNDIyRjhBMThCMjlCNTQwMEQ4Q0Q5NiAvKiBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUu
aCAqLywKIAkJCQk1MUQxMjQ4NDFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUu
aCAqLywKIAkJCQk1MUQxMjQ4NTFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUu
bW0gKi8sCi0JCQkJREY0NjJFMEUyM0YyMkY1MzAwRUZGMzVGIC8qIFdLSFRUUENvb2tpZVN0b3Jl
UHJpdmF0ZS5oICovLAogCQkJCTUxRDEyNDg2MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29r
aWVTdG9yZUludGVybmFsLmggKi8sCisJCQkJREY0NjJFMEUyM0YyMkY1MzAwRUZGMzVGIC8qIFdL
SFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5oICovLAogCQkJCTFBQjQwRUUzMUJGNjc3RTMwMEJBODFC
RSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnMubW0gKi8sCiAJCQkJMUFCNDBFRTQxQkY2NzdFMzAw
QkE4MUJFIC8qIFdLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaCAqLywKIAkJCQkxQTVCMUM0
RjE4OTg2MDZGMDA0RkNGOUIgLyogV0tOYXZpZ2F0aW9uLmggKi8sCkBAIC0xMDI1NCw3ICsxMDI3
MCw2IEBACiAJCQkJMkQ1ODc1QkYyMTlCNTMxNTAwNzBCOUFBIC8qIEVkaXRhYmxlSW1hZ2VDb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyog
RWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MUFCNTEyQzAyRUM0MDAyQkU2
N0IgLyogRWRpdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCURGNDYyRTEyMjNGMzM4QkUw
MEVGRjM1RiAvKiBXS0NvbnRlbnRXb3JsZFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MDMyREE4MTBGNDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMTA3MjEsNyArMTA3MzYsNiBAQAogCQkJCUZFRTQzRkQzMUU2
N0IwMTgwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRURCRENENzFFNjhEMjA1MDBBNTlGOEYgLyogV2ViSW5zcGVjdG9ySW50
ZXJydXB0RGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzhFMkEzNjEy
Nzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCURGNDYyRTBGMjNGMjJGNTUwMEVGRjM1RiAvKiBXS0hUVFBDb29raWVTdG9yZVByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNw
ZWN0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJC
IC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDODkx
RDY2MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JVSS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMDkzNCw2ICsxMDk0OCw3IEBACiAJCQkJMEYwNDE1OUUyM0M3Q0M3MzAwNjBBM0UyIC8qIFdL
Q29udGVudFZpZXdNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMTA2NUZDMjNFQzk1NzIwMDU0
NDNENiAvKiBXS0NvbnRlbnRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExMDY1RkQyM0VD
OTU3QjAwNTQ0M0Q2IC8qIFdLQ29udGVudFdvcmxkSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCURGNDYyRTEyMjNGMzM4QkUwMEVGRjM1RiAvKiBXS0NvbnRlbnRXb3JsZFByaXZhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQjlFMjRCMTEyMEUxNUMwMEExMzdFMCAvKiBXS0NvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjk4MTkyMDI2NzIwMEExRkEzNyAvKiBXS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ0NUJBNTE4NEQ1RkRB
MDA0QjM0MTQgLyogV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMTAxNyw2ICsxMTAzMiw3IEBACiAJCQkJMUE0MjJGOEIxOEIyOUI1NDAwRDhDRDk2IC8qIFdL
SGlzdG9yeURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjYyRTczMTIxNDMw
NDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFE
MTI0OTkxRTc2M0MwMTAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlERjQ2MkUwRjIzRjIyRjU1MDBFRkYzNUYgLyogV0tIVFRQQ29va2llU3RvcmVQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzY2QTRCNTIzMjA5NjI0MDBFQTRENDQgLyogV0tI
VFRQQ29va2llU3RvcmVSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMTBBRTBEMTMzQzE2Q0Iw
MDcyNzE3QSAvKiBXS0ljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyM0NGMUMx
MzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlkYzBlYmI2MDY2NDg5N2Y4MmRiN2UwNTE4
MDhmMGU0ODlkYzUyNzkuLjk2NDI1YzYwNDhlZTlhM2YyYzNhNmJhNjBjMTE5YTg2Y2I1OGEwMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTMwLDEwICszMCwxMiBAQAogCiAj
aW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRUcmFj
a1ByaXZhdGVSZW1vdGUuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCiAjaW5jbHVk
ZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC05MCwxNyArOTIsMTYgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNo
LCBib29sIHByZXBhcmUpCiB7Ci0gICAgYXV0byBsYXlvdXRSZWN0ID0gbV9wbGF5ZXItPnBsYXll
ckNvbnRlbnRCb3hSZWN0KCk7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250
ZW50c1NjYWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1v
ZGUsIHByZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBsYXlvdXRSZWN0LCBzY2FsZSks
IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11
dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJl
bG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFjb250ZXh0
SWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0xheWVyID0gTGF5ZXJI
b3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRl
eHRJZC52YWx1ZSgpKTsKKyAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9M
YXllclJlbW90ZSh0aGlzLCBjb250ZXh0SWQudmFsdWUoKSk7CiAgICAgfSwgbV9pZCk7CiB9CiAK
QEAgLTMwNSw2ICszMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNo
YW5nZWQoV2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSKTsKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxl
KCk7CiB9CiAKQEAgLTU0Nyw3ICs1NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3Zp
ZGVvTGF5ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKIH0K
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkpCkBAIC02NzEsMTQgKzY3MywyMSBAQCB1bnNpZ25lZCBs
b25nIGxvbmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAg
ICByZXR1cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBzaXpl
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5s
aW5lU2l6ZUZlbmNlZChzaXplLCBtYWNoU2VuZFJpZ2h0KSwgbV9pZCk7Cit9CisjZW5kaWYKKwog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdh
eXMgcmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9u
IGlzIGVtcHR5LgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZv
cm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVu
dW0sIGJvb2wsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkz
N2UxMWY0YWQwMjVhMTgzMGU1Y2YzYzg5NTAwZGE4Li41YjQ5ZmZhMWE3ODhlYWYxOTViNzRjMDY4
NmUxNTk4MDYxNjY3ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTM4LDYgKzM4
LDEwIEBACiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgTWFjaFBvcnQ7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKIH0KQEAgLTg3LDYgKzkxLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFz
VmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogICAgIHZv
aWQgc2l6ZUNoYW5nZWQoV2ViQ29yZTo6RmxvYXRTaXplKTsKICAgICB2b2lkIGZpcnN0VmlkZW9G
cmFtZUF2YWlsYWJsZSgpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0VmlkZW9J
bmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hT
ZW5kUmlnaHQmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
Jik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIpOwpAQCAtMjI1LDEzICsyMzIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJv
Z3Jlc3MoKSBjb25zdCBmaW5hbDsKIAotICAgIC8vIEluIHRoZSBDb2NvYSBXZWJLaXQgcG9ydCwg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2l6ZSgpIGRvZXMgbm90aGlu
ZywKLSAgICAvLyBzbyB0aGUgV2ViIHByb2Nlc3MgZG9lcyBub3QgbmVlZCB0byBzZW5kIElQQyBt
ZXNzYWdlcyB0byBjYWxsIGl0IGluIHRoZSBHUFUgcHJvY2Vzcy4KLSAgICAvLyBPdGhlciBXZWJL
aXQgcG9ydHMgbWF5IG5lZWQgdG8gZG8gdGhhdC4KLSAgICB2b2lkIHNldFNpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpIGZpbmFsIHsgfQotCiAgICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKLQogICAgIHZv
aWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0
dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQ
bGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBH
Q0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CiAgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwpAQCAtMzQ4LDcgKzM0OSw3IEBAIHBy
aXZhdGU6CiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRp
YVJlc291cmNlTG9hZGVyOwotICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvTGF5
ZXI7CisgICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICAg
ICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlm
aWVyOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3Rl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzI0OTA2ZjIxYjBkNmU0Y2M5MGFiZmRlNTA3OTIzZTNmMDZjOGE5Ygot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlk
ZW9MYXllclJlbW90ZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNs
dWRlICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
CitPQkpDX0NMQVNTIENBTGF5ZXI7CisKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xh
eWVyUmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSosIExheWVySG9zdGluZ0NvbnRleHRJ
RCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzNTgxMDhhNjQyN2IwMzM0ZjRlM2NlMGY5OTAwZWQ4
ZjAxNTA3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExB
VEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK30K
KworQGludGVyZmFjZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgOiBDQUxheWVyCitAcHJvcGVydHkgKG5v
bmF0b21pYywgYXNzaWduKSBXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqbWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQ0FMYXll
ciAqdmlkZW9TdWJsYXllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9MYXll
ckZyYW1lOworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTYzYTllMzIzNmMzYThkZDEyZjJhNjkzNTgyNDMyMmUxNTg0Y2I2NgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2Ev
VmlkZW9MYXllclJlbW90ZUNvY29hLm1tCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCIKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkxh
eWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
IgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJl
Y3QuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0
ci5oPgorCitAaW1wbGVtZW50YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRy
PFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOworICAgIENBTGF5ZXIqIF92aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCogX2NvbnRl
eHQ7CisgICAgZGlzcGF0Y2hfYmxvY2tfdCBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jazsKK30K
KworLSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAg
IGlmIChzZWxmKSB7CisgICAgICAgIHNlbGYubWFza3NUb0JvdW5kcyA9IFlFUzsKKyAgICAgICAg
X3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2sgPSBuaWw7CisgICAgfQorCisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGlmIChfcGVuZGluZ1Jlc29sdmVCb3Vu
ZHNCbG9jaykKKyAgICAgICAgZGlzcGF0Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVzb2x2ZUJv
dW5kc0Jsb2NrKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgcmV0
dXJuIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAq
KW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIF9tZWRpYVBsYXllclByaXZhdGVSZW1v
dGUgPSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKK30KKworLSAoQ0FM
YXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5ZXI7Cit9CisK
Ky0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAg
ICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZvaWQpbGF5b3V0U3Vi
bGF5ZXJzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAhPSBzZWxmKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc291cmNlVmlkZW9GcmFt
ZSA9IHNlbGYudmlkZW9MYXllckZyYW1lOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRW
aWRlb0ZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3Jt
ID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUodGFyZ2V0VmlkZW9GcmFtZS53aWR0aCgpIC8g
c291cmNlVmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRWaWRlb0ZyYW1lLmhlaWdodCgpIC8gc291
cmNlVmlkZW9GcmFtZS5oZWlnaHQoKSk7CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Cisg
ICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChzZWxmLmJvdW5kcyks
IENHUmVjdEdldE1pZFkoc2VsZi5ib3VuZHMpKV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEFm
ZmluZVRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisK
KyAgICBfY29udGV4dCA9IFtDQUNvbnRleHQgY3VycmVudENvbnRleHRdOworICAgIE5TVGltZUlu
dGVydmFsIGFuaW1hdGlvbkR1cmF0aW9uID0gW0NBVHJhbnNhY3Rpb24gYW5pbWF0aW9uRHVyYXRp
b25dOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Cisg
ICAgICAgIGlmIChfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jaykKKyAgICAgICAgICAgIGRpc3Bh
dGNoX2Jsb2NrX2NhbmNlbChfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayk7CisKKyAgICAgICAg
X3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2sgPSBkaXNwYXRjaF9ibG9ja19jcmVhdGUoKGRpc3Bh
dGNoX2Jsb2NrX2ZsYWdzX3QpMCwgXnsKKyAgICAgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5k
c0Jsb2NrID0gbmlsOworICAgICAgICAgICAgW3NlbGYgcmVzb2x2ZUJvdW5kc107CisgICAgICAg
IH0pOworICAgICAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVf
Tk9XLCBhbmltYXRpb25EdXJhdGlvbiArIDAuMSAqIE5TRUNfUEVSX1NFQyksIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKTsKKyAgICB9KTsKK30K
KworLSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBl
cmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoQ0dSZWN0RXF1YWxU
b1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRyYW5z
Zm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47CisK
KyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJs
ZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xh
eWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFtZSA9
IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
ID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hTZW5k
UmlnaHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0IGNy
ZWF0ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLT5z
ZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZShzZWxmLnZpZGVvTGF5ZXJG
cmFtZS5zaXplKSwgX2ZlbmNlU2VuZFJpZ2h0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFtf
dmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06Q0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0
eV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEZyYW1lOnNlbGYuYm91bmRzXTsKKworICAgIFtD
QVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLCBMYXllckhvc3RpbmdDb250ZXh0
SUQgY29udGV4dElkKQoreworICAgIC8vIEluaXRpYWxseSwgYWxsIHRoZSBsYXllcnMgd2lsbCBi
ZSBlbXB0eSAoYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwKSBhbmQgaW52aXNpYmxlLgorICAg
IC8vIFRoZSByZW5kZXJlciB3aWxsIGNoYW5nZSB0aGUgc2l6ZXMgb2YgV0tWaWRlb0xheWVyUmVt
b3RlIHRvIHRyaWdnZXIgbGF5b3V0IG9mIHN1YmxheWVycyBhbmQgbWFrZSB0aGVtIHZpc2libGUu
CisgICAgV0tWaWRlb0xheWVyUmVtb3RlICp2aWRlb0xheWVyUmVtb3RlID0gW1tXS1ZpZGVvTGF5
ZXJSZW1vdGUgYWxsb2NdIGluaXRdOworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMCwgMCldOworI2lmbmRlZiBOREVCVUcKKyAgICBbdmlkZW9MYXllclJl
bW90ZSBzZXROYW1lOkAiV0tWaWRlb0xheWVyUmVtb3RlIl07CisjZW5kaWYKKworICAgIFt2aWRl
b0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTptZWRpYVBsYXllclByaXZh
dGVSZW1vdGVdOworCisgICAgYXV0byB2aWRlb1N1YmxheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4
dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJZCk7CisgICAg
W3ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjp2aWRlb1N1YmxheWVyLmdldCgpXTsK
KyAgICBbdmlkZW9MYXllclJlbW90ZSBhZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyLmdldCgpXTsK
KyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFtZTp2aWRlb0xheWVyUmVtb3RlLmJvdW5kc107CisK
KyAgICByZXR1cm4gdmlkZW9MYXllclJlbW90ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391015</attachid>
            <date>2020-02-17 18:19:13 -0800</date>
            <delta_ts>2020-02-17 21:15:33 -0800</delta_ts>
            <desc>WIP patch: RenderVideo only calls mediaPlayer-&gt;setSize() when supportsAcceleratedRendering is false</desc>
            <filename>bug-206132-20200217181912.patch</filename>
            <type>text/plain</type>
            <size>56855</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlYzI3NGExZjM5ZGU0
OTMwMDgxMzJhMWE1ZjMxMTkxYjRkNmU2OS4uY2E1OGExMjk0MTcyOTMxMDgwYjMwMTRjYzdiMGVj
MmZmZjNlNGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAyLTE0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmbGFnICht
X2hvc3RzVmlkZW9MYXllclJlbW90ZWx5KSBpbiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24gd2l0aCBhIGRlZmF1bHQgdmFsdWUgZmFsc2UuCisgICAgICAgIFdoZW4gaXRzIHZh
bHVlIGlzIHRydWUsIE1lZGlhUGxheWVyQ2xpZW50IChhIFJlbW90ZU1lZGlhUGxheWVyUHJveHkg
aW5zdGFuY2Ugd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgZW5hYmxlZCBhbmQgdGhlIG1lZGlhIGlu
IEdQVQorICAgICAgICBwcm9jZXNzIGZlYXR1cmUgaXMgb24pIGNhbiByZXF1ZXN0IHRoZSBWaWRl
byBMYXllciBNYW5hZ2VyIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgdmlkZW8gY29udGFpbmVy
IGxheWVyIGZvciBpbmxpbmUgdmlkZW8uCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldEhvc3RzVmlkZW9MYXllclJl
bW90ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRIb3N0c1ZpZGVvTGF5ZXJS
ZW1vdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xh
eWVyTWFuYWdlck9iakM6OnNldFZpZGVvSW5saW5lU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW06CisgICAgICAgICgrW0NBTGF5
ZXIgX3dlYl9yZW5kZXJMYXllcldpdGhDb250ZXh0SUQ6XSk6CisKIDIwMjAtMDItMTIgIFJ5YW4g
SGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjI1NjAxMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDg5MGE4NDM4ZmEwZjA2NzU3
NmQ1MGE3OTRmZDJlMTBiMzYwYTU1MTMuLjFjZjM1Zjg1ZDgyODE2N2E0ZGMxODBlZGMwZTQ5Mjlm
NWI1M2RlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAyLTE0
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQ
VSBwcm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4g
dGhlIEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oOgorCiAyMDIwLTAyLTEyICBSeWFuIEhhZGRhZCAgPHJ5
YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
NTYwMTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDFkNmFiMTA0ZjkxYTczYWJjMzI3MjBjMTkwY2FlNjdjMTZjNDI5
NzAuLmRhYTJiMjQzY2ExY2NkMGViNjZiZGZlYjUwNmZhNjkyMzkyNDRmNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTEgQEAKKzIwMjAtMDItMTQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNv
bT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9w
ZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGlu
ZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjcmVhdGVzIFdLVmlk
ZW9MYXllclJlbW90ZSB3aG9zZSBzdWJsYXllciBpcyBjcmVhdGVkIGJ5IExheWVySG9zdGluZ0Nv
bnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgpLgorICAgICAgICBU
aGUgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVyZXIgdG8gbWFu
YWdlIHRoZSB2aWRlbyBlbGVtZW50IGluIHRoZSBXZWIgcHJvY2Vzcy4gV2hlbiBpdHMgc2l6ZSBp
cyBjaGFuZ2VkIGJ5IHRoZSByZW5kZXJlciwKKyAgICAgICAgaXQgYXBwbGllcyBhIHRyYW5zZm9y
bSB3aXRob3V0IGNoYW5naW5nIGl0cyBhY3R1YWwgc2l6ZSwgYW5kIHNlbmRzIGEgbWVzc2FnZSB0
byB0aGUgdmlkZW8gbGF5ZXIgbWFuYWdlciBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgdG8g
Y2hhbmdlIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIgbGF5ZXIgKHZpZGVvSW5saW5lTGF5ZXIp
LiBBZnRlciB0aGF0IFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIHNldCBpdHMgc2l6ZSB0byB0aGUg
Y29ycmVjdCBvbmUuCisgICAgICAgIFdlIG5lZWQgdG8gdXNlIGEgRmVuY2VQb3J0IHRvIHN5bmNo
cm9uaXplIHRoZSB0cmFuc2FjdGlvbnMgaW4gdGhlIFdlYiBwcm9jZXNzIGFuZCB0aGUgR1BVIHBy
b2Nlc3MuCisKKyAgICAgICAgV2UgaGF2ZSB0byB1c2Ugc3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdl
IHRoZSBhcHBlYXJhbmNlIG9mIFdLVmlkZW9MYXllclJlbW90ZSBpbiBvcmRlciB0byBndWFyYW50
ZWUgdGhlIHNtb290aG5lc3Mgd2hlbiBhIHVzZXIKKyAgICAgICAgY2hhbmdlIHRoZSBzaXplIG9m
IGEgdmlkZW8gZWxlbWVudC4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJv
eFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0Zy
YW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGlu
aXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGRlYWxsb2NdKToKKyAgICAgICAg
KC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV0pOgorICAgICAg
ICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOl0pOgor
ICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlkZW9TdWJsYXllcl0pOgorICAgICAgICAo
LVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjpdKToKKyAgICAgICAgKC1bV0tW
aWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5
ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xh
eWVyUmVtb3RlKToKKwogMjAyMC0wMi0xMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU2MDEwLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDBm
OWVhZDdiYjk1MjgxYjllMjY0ODExOWRkZjVjZWVlNWY5NDgxMjEuLjUzM2Y3MGRkZjg1YmQxZmJi
ZWNiMjY3NjU3NGI5NzA5ODVlM2ZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NBUmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250
ZXh0ICgpCiArIChOU0FycmF5ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50
Q29udGV4dDsKICsgKENBQ29udGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4dCAqKXJl
bW90ZUNvbnRleHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNWZhZDVjMTliOGU4ZDY1ZGYyOWRkMmExZjU1M2Y3ZjZlMmYyOWIzOS4uMzQx
MGEyODU3NTNhN2ViYjFmYjY4ZjhmMjcwZDQyN2NkMDc3MzZiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxLDYgKzEzMSw3
IEBACiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlF
OTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKIAkJMDc1NEE1RUEyMTVFQTNC
ODAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkg
LyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlk
ZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NUJBODQ5MjA2MThBQTUwMEZD
QjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvTGF5ZXJN
YW5hZ2VyLmggKi87IH07CiAJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Np
b25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NjM4
QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTgxODg0NDg3MjAw
RTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi87IH07CiAJCTA3Njk3MDg2MTQ2
M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0
VHJhY2tMaXN0LmNwcCAqLzsgfTsKQEAgLTYzMyw3ICs2MzQsNiBAQAogCQkxRDJGOEUwNDIzNDQ3
NTE2MDA5OTNCNjggLyogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNBMjMzQzNEMEIwMEVFMjI4
RCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA1MjM0NDc1MUQwMDk5M0I2OCAvKiBI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0MyMzNDM0QyMDAwRUUyMjhEIC8qIEhUTUxW
aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDYyMzQ0NzUyMzAwOTkzQjY4IC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFERUYwNkNEMjMzQzNEMkEwMEVFMjI4RCAvKiBQaWN0dXJlSW5QaWN0dXJlV2lu
ZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MUQzOTJGMkQyM0YyMEE3MDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzkyRjI4MjNGMjA5
QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi87IH07CiAJCTFEOUYwRkMx
MjEyMjAyOUIwMDVEOEZENCAvKiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgwRSAvKiBTaGFyZURh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
REJDMUI1NjIzNDdCM0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdC
M0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMxRTIxQkExNzAwNjIx
RTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAwNjIxRTI1IC8qIFdl
YkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNTgzLDYgKzE1ODMsNyBAQAogCQk1MkIwRDRCRTFDNTdG
RDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1W
aWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRC
RjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMjFD
NTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRDMTFDNTdGRjkxMDA3
N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gKi87IH07CiAJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJE
NUExQTgxQzU3NDhBMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkUyQ0FG
QzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJFMkNBRkIxOUZGMDIwNzAwMUVFQjRGIC8qIE1l
ZGlhUHJvZHVjZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNTQ2Nyw2ICs1NDY4LDcgQEAKIAkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8q
IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwNzVCQTg0NzIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFTZXNzaW9uTWFuYWdlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYz
OEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJD
RiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRleHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjUw
OCw5ICs2NTEwLDYgQEAKIAkJMUQwMDI2QTgyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0
dXJlSW5QaWN0dXJlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNF
bnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxRDAwMjZBOTIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGVyUGljdHVy
ZUluUGljdHVyZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQyQzgy
QjYyMzZBM0Y2QTAwNTVENkM1IC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTFEMzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyTWFu
YWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFEMzkyRjJBMjNGMjA5
QjUwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFEMzkyRjJCMjNGMjA5RDgwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYg
LyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1cmVJblBp
Y3R1cmVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRDIx
MUJBMTJBMDA0Qjc4MEUgLyogTmF2aWdhdG9yU2hhcmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE5hdmlnYXRvclNoYXJlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURD
NTUzRkYyMTFCQTg0MTAwNEI3ODBFIC8qIFNoYXJlRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU2hhcmVEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NDUs
NiArODQ0NCw4IEBACiAJCTUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MkIwRDRDMTFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNCMTFEQjIyRkREQjJF
MDA5RjBBNjQgLyogV0hMU0xEZWZhdWx0RGVsZXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRGVm
YXVsdERlbGV0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1QTE4RDFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTUyRDVBMThFMUM1NDU5MDMwMERF
MzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKIAkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE1MUM1
NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNjFDNTc0ODg5MDBE
RTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MTEzLDcgKzI1MTE0LDcg
QEAKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAogCQkJ
CTBGNUE1N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBG
MUEwQzM2MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKLQkJCQkxRDM5MkYy
QjIzRjIwOUQ4MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKKwkJCQkwNzVCQTg0
NzIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKIAkJCQlCRUYyOUVF
QTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKIAkJCQkxNDExRENC
MDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oICovLAogCQkJCTkzOUIwMkVDMEVBMkRC
QzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLywKQEAgLTI2NzE5LDggKzI2NzIwLDgg
QEAKIAkJCQk3QTI5RjU3MTE4QzY5NTE0MDA0RDBGODEgLyogT3V0T2ZCYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRi5oICovLAogCQkJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNEQzhCNUE4MTgwNDdGRjEwMDE2RTY4NSAvKiBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLywKLQkJCQkxRDM5MkYyQTIzRjIwOUI1MDBF
MDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCi0JCQkJMUQzOTJGMjgyM0YyMDlC
NDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKKwkJCQk1MkQ1QTE4RTFD
NTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCisJCQkJNTJENUEx
OEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKIAkJCQlD
RDMzNkY2NTE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCAq
LywKIAkJCQlDRDMzNkY2NjE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZP
YmpDLmggKi8sCiAJCQkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCkBAIC0zMjgxNyw2ICszMjgxOCw3IEBACiAJCQkJ
NTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVs
bHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTA3NUJBODQ5MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODNDNDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tR
dWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyog
VmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2
NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDI0Myw3ICsz
NDI0NSw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcxOTFFRjQxNzAw
N0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUQzOTJGMkQyM0YyMEE3MDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUyRDVBMThGMUM1
NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCRTg4RTBERTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCRTg4RTBFMTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzMzZGNjcxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBjYTcxZTdlMGI1ODZjN2I1
NWIxMTI3MzJiYWQ1OWIwMWQ4YTQxODFiLi5iZmJlZmQ1ZWI0OTQ3NDllMDI1ZWJmNzVlZDU0NzE1
YWQ5MDMzOTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCkBAIC0xMTAsOSArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGF1c2Uo
KSBmaW5hbCB7IH0KIAogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBudWxscHRyOyB9Ci0KICAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBGbG9hdFNpemUoKTsgfQotCiAgICAgYm9vbCBoYXNWaWRlbygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTkyMyw2ICs5MjEsMTEgQEAgdm9pZCBNZWRp
YVBsYXllcjo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIG1fcHJpdmF0ZS0+c2V0
U2l6ZShzaXplKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6c2V0SG9zdHNWaWRlb0xheWVyUmVt
b3RlbHkoYm9vbCBob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseSkKK3sKKyAgICBtX3ByaXZhdGUtPnNl
dEhvc3RzVmlkZW9MYXllclJlbW90ZWx5KGhvc3RzVmlkZW9MYXllclJlbW90ZWx5KTsKK30KKwog
Ym9vbCBNZWRpYVBsYXllcjo6dmlzaWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlzaWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmlu
ZGV4IDdlNmNiOGEzOTBkZjdmZTFhN2FhZTAxNzM5ZGM5NDhmNzc2NjIxZWUuLjdjZjEyYWJjYTYz
N2U3ZDhkYWUwNzQ2OGZkMzViNTVkNjE3MTZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzI4LDYgKzMyOCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0Owog
CisgICAgdm9pZCBzZXRIb3N0c1ZpZGVvTGF5ZXJSZW1vdGVseShib29sKTsKICAgICBJbnRTaXpl
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggOWY3ZjZlNmIwMmQzYmViZTA5MGViY2Mz
MmE0YjBkY2ExY2MxNzVhOC4uODkxZjEyZjgwOWQyYzljNDA4ZGJjYzdhMGYwNDRhYjFmNzA5ZDI4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVh
bCB2b2lkIHNldEhvc3RzVmlkZW9MYXllclJlbW90ZWx5KGJvb2wpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggMzlkYTU1
OGU2ZGIzOGYwYzc3OGM1MTc4MGEwNzYyYjVmNjUwMGIwZi4uZjc0OTNhODEyMTIzYzhiMjMwMGUz
MThkYmUwOTFmNTQ5YjViYTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMzIzLDcgKzMyMywxMSBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBzZXRSZXNvbHZlZFVSTChVUkwmJik7CiAgICAgY29uc3QgVVJMJiByZXNvbHZl
ZFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRVUkw7IH0KIAorICAgIGJvb2wgaG9zdHNW
aWRlb0xheWVyUmVtb3RlbHkoKSB7IHJldHVybiBtX2hvc3RzVmlkZW9MYXllclJlbW90ZWx5OyB9
CisKIHByaXZhdGU6CisgICAgdm9pZCBzZXRIb3N0c1ZpZGVvTGF5ZXJSZW1vdGVseShib29sIGhv
c3RzVmlkZW9MYXllclJlbW90ZWx5KSBmaW5hbCB7IG1faG9zdHNWaWRlb0xheWVyUmVtb3RlbHkg
PSBob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseTsgfQorCiAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVy
OwogCiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fcGVuZGluZ1NlZWs7CkBAIC0zNzEsNiAr
Mzc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZDsKICAg
ICBib29sIG1fc2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbzsKICAgICBib29sIG1fc2Vla2luZzsK
KyAgICBib29sIG1faG9zdHNWaWRlb0xheWVyUmVtb3RlbHkgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGFmNmM4MDRmNmNm
OGU2MDhkODdkODM5ZmQ4MDZmMDg5MDNkMjNmYjYuLmMxZjgyMGQyNmE1MjViYTAyOGViODgzZDc1
MmZhZTgyNmNjNWZiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTE3NCw2ICsxNzQsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1QYXVzZWQoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIHNldFZvbHVtZShmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRNdXRlZChib29s
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOwogICAg
IHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwZGMyZTc3
MmFlOWRlOTMyMzVkZDBjYzVjOTg5NzhkNzgyNmQzNmU3Li5iMDAyMTU3YTdhNTRjZGFiYzNkZWVi
ZjVhZjU2NTg3Y2VkNzA0Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTE1MjIsNiAr
MTUyMiwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50
Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udAogICAgIG1fdmlkZW9GcmFtZUhhc0Ry
YXduID0gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgbV92aWRlb0xheWVyTWFuYWdl
ci0+c2V0VmlkZW9JbmxpbmVTaXplKHNpemUpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSB8fCBjb250
ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9M
YXllck1hbmFnZXJPYmpDLmgKaW5kZXggY2NiODc1NjQzM2FkM2Q0YzZiMGExYzMxNjM2YTYyOTFh
ZDEwNDU2ZS4uMWIzZmI2NzNiMmE2YTQxZjdlOWY0NGZlM2UzMjIzMWRkY2E4MTdmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9MYXllck1hbmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgcHVibGljOgogICAgIEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWU7IH0KIAogICAgIHZvaWQg
c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICosIEludFNpemUgY29udGVudFNpemUpIGZpbmFs
OworICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplKGNvbnN0IEludFNpemUmKTsKICAgICB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKICAgICB2
b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKSBmaW5h
bDsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KaW5kZXgg
NTcxMGM2YTNjYTBmNGE0NmQ0YzM3YzA5ZGZhZWY1YzA1ZDQ5YmUyOC4uNjMxM2Q1MzYxYWFkNzAz
NTE1ZTM4NTk1YzBjMzBmODg4YjA1NGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtNzMsNiArNzMsMjAgQEAgdm9pZCBWaWRlb0xh
eWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9MYXllciwg
SW50U2l6ZSBjb24KICAgICB9CiB9CiAKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRW
aWRlb0lubGluZVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAoIW1fdmlkZW9J
bmxpbmVMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aWRlb0lubGluZUZyYW1lID0g
Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOworICAgIC8vIFdl
IGRvIG5vdCB3YW50IGFuaW1hdGlvbnMgaGVyZQorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsK
KyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFttX3ZpZGVv
SW5saW5lTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0lubGluZUZyYW1lXTsKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBjb21taXRdOworICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKK30KKwogdm9pZCBWaWRl
b0xheWVyTWFuYWdlck9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2
ZUltYWdlUHRyIGltYWdlKQogewogICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXll
ckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNv
cmVDQUxheWVyRXh0cmFzLm1tCmluZGV4IDE4MDVjMGE1ZjZjZmYyODM2NWNmNmM4Yzg3MTNiNDJl
ODUwMjk4ZTkuLmYxMDI3NDQ5ZmJkOGY5MjYzNmMzNTQ1NDY5ZGNhZDQzOTQyMWJjMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxh
eWVyRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCkBAIC04Miw3ICs4Miw3IEBACiB7CiAgICAgQ0FMYXll
ckhvc3QgKmxheWVySG9zdCA9IFtDQUxheWVySG9zdCBsYXllcl07CiAjaWZuZGVmIE5ERUJVRwot
ICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIldlYlZpZGVvSG9zdGluZ0xheWVyIl07CisgICAgW2xh
eWVySG9zdCBzZXROYW1lOkAiSG9zdGluZyBsYXllciJdOwogI2VuZGlmCiAgICAgbGF5ZXJIb3N0
LmNvbnRleHRJZCA9IGNvbnRleHRJRDsKICAgICByZXR1cm4gbGF5ZXJIb3N0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggZjgwYzIwMzNkYzY3NWYzMmRjYzIy
YTUxNmEwNzEyZjIzYTQ1NTI4Ni4uOWM4OTg5ZWVjY2NiYjYzZTEwY2ZlMDJjYTBlMzA1N2FiNjQ4
YWRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCkBAIC0yNTgs
OCArMjU4LDExIEBAIHZvaWQgUmVuZGVyVmlkZW86OnVwZGF0ZVBsYXllcigpCiAKICAgICBjb250
ZW50Q2hhbmdlZChWaWRlb0NoYW5nZWQpOwogICAgIAotICAgIEludFJlY3QgdmlkZW9Cb3VuZHMg
PSB2aWRlb0JveCgpOyAKLSAgICBtZWRpYVBsYXllci0+c2V0U2l6ZShJbnRTaXplKHZpZGVvQm91
bmRzLndpZHRoKCksIHZpZGVvQm91bmRzLmhlaWdodCgpKSk7CisgICAgaWYgKCFtZWRpYVBsYXll
ci0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKSB7CisgICAgICAgIEludFJlY3Qgdmlk
ZW9Cb3VuZHMgPSB2aWRlb0JveCgpOworICAgICAgICBtZWRpYVBsYXllci0+c2V0U2l6ZShJbnRT
aXplKHZpZGVvQm91bmRzLndpZHRoKCksIHZpZGVvQm91bmRzLmhlaWdodCgpKSk7CisgICAgfQor
CiAgICAgbWVkaWFQbGF5ZXItPnNldFZpc2libGUoIXZpZGVvRWxlbWVudCgpLmVsZW1lbnRJc0hp
ZGRlbigpKTsKICAgICBtZWRpYVBsYXllci0+c2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhz
dHlsZSgpLm9iamVjdEZpdCgpICE9IE9iamVjdEZpdDo6RmlsbCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAKaW5kZXggZDllM2JkMzcyNzJjNjI3MWMxYmM4OWFlMmI3ZjMyN2VjMmVhMmNiYS4uMzNiM2Ix
NTFiOGM3MTkzNjVjOTRjMDg2YjJhYjM4ZjFkNDZhZjcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApA
QCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIApAQCAtMTAyLDE3ICsxMDMsMTcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5Ojpsb2FkKFVSTCYmIHVybCwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiYKICAgICB9CiAKICAgICBtX3BsYXllci0+bG9hZCh1cmwsIGNvbnRlbnRUeXBlLCBrZXlTeXN0
ZW0pOworICAgIG1fcGxheWVyLT5zZXRIb3N0c1ZpZGVvTGF5ZXJSZW1vdGVseSh0cnVlKTsKICAg
ICBnZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pOwogICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJl
cGFyZUZvclJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRl
bnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250
ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRj
aCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29u
dGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0
ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJl
bG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNoKTsK
ICAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1fdmlkZW9Db250ZW50
Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29u
dGVudFNjYWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRl
eHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAgLTQ2OCw2ICs0Njks
NyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRl
ZCgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVv
RnJhbWVBdmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUgc2l6ZSBvZiB0aGUgcGxh
dGZvcm1MYXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBwcm92aWRlIG1lZGlhUGxh
eWVyQ29udGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dC0+c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwogICAgIG1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6Rmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpAQCAtNTA4LDYgKzUxMCwx
MiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyV2FpdGluZ0Zvcktl
eUNoYW5nZWQoKQogfQogI2VuZGlmCiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0
VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IFdURjo6TWFj
aFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKK3sKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQt
PnNldEZlbmNlUG9ydChtYWNoU2VuZFJpZ2h0LnNlbmRSaWdodCgpKTsKKyAgICBtX3BsYXllci0+
c2V0U2l6ZShzaXplKTsKK30KKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNr
VGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoYm9vbCBpc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVs
ZXNzKQogewpAQCAtNTQ2LDExICs1NTQsNiBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLUxheW91dFJlY3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJD
b250ZW50Qm94UmVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlkZW9Db250ZW50Qm94UmVj
dDsKLX0KLQogZmxvYXQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50
c1NjYWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92aWRlb0NvbnRlbnRTY2FsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5oCmluZGV4IGIyMjYzMGZkYWRiZjQ3M2Y3ZGJhOTdhMzNmYmYyYzUzZGJiMTA3ODkuLjE2
YmIyZGRmYTIxNDc0NzBlODYwMGFiNzEzOTZhNTljZGY1NDQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApA
QCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIFZp
ZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdl
dENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CiAKLSAgICB2
b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JS
ZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+
JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wg
cHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4mJik7CiAgICAg
dm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAKICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5
cGUmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbiYmKT4mJik7CkBAIC0xMDksNiArMTEzLDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSk7CiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKKwog
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KGJvb2wpOwpAQCAtMTc4LDcgKzE4Niw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQ
bGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlh
UGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwotICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVk
aWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxh
eWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVz
ZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhmODYxNWE0ZjVmYzQyZGNkOTVlZjY1NDQ2MTRj
ZjE5YWEzYWQ3YzIuLmNhNjYzMTRkZmJlNmQzMWJlMDk5NTJjNWYyODJmMTA2MThmZWJlYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5
IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2Fk
LCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6
OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRp
b25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJIb3N0aW5nQ29udGV4dElk
KSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHBy
ZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVu
dFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVy
SG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVybCwgT3B0aW9uYWw8V2Vi
S2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRlbnNpb24sIFdlYkNvcmU6
OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVtKSAtPiAoc3RydWN0IFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24p
IEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01Nyw2ICs1NywxMCBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFZpZGVvVHJhY2tTZXRT
ZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9v
bCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTZXRWaWRl
b0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1h
Y2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMgUGFpbnQKICAgICAjIFBhaW50Q3VycmVudEZy
YW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0aW9uV2lsbFJlc2lnbkFj
dGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQotCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGUxZmM2ZjczNzJiMTYwM2U1ZGQyNWViMGE0YTYwMWM2
YzliZTIzZWEuLmVlNmJhOWZhYTkxMjEyOTM2MjZkOWNjZWE0MmFlMzc1OWMwZGYxOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU1NCw2ICs1NTQsOCBAQCBXZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQogCiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2Vydmlj
ZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
Y29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCisKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlQmFubmVyLmNwcAogCiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL21hYy9XS0J1bmRsZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCAy
MzdiZGU0ODc1YTczMGU2MjhkNTJiOGQ0NzY0NzRlMWU4YzIyYTNkLi5kZWY3ODkyMzUxNjM0ZDk4
M2UwZDE1YmQ1OTNmZTVhMjkyMThkMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMTkw
LDcgKzE5MCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9jb250cm9sc01hbmFnZXJDb250
ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50PiBtX2NsaWVudENvdW50czsK
IH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGQ0ODg1YjQ2MzJkZTljODhjZjAyNjVkNWVlZjlhYjA3NTRiZjU1ODcuLmI5ZmZm
ODNkMTFkMTU5ODJkNjBhNzRjOGI3MjZmODZlMzZlZDFjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY5Myw2ICsyNjkzLDEwIEBA
CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJl
U2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
REZERDBERjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRU
cmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFGMDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThEQzE1MDBGOTI4
ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTI0Niw2ICs1MjUwLDcgQEAKIAkJMDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8q
IG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkx
REFGNUE0RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1NzkyM0M5M0JC
OTAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU3
NzIzQzkzQkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkw
NzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAq
LywKQEAgLTUyNjMsNiArNTI2OCw4IEBACiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJCTA3RTE5RjA4MjNENTMzQjkwMDk0
RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwN0UxOUYwOTIzRDUz
M0JBMDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTFERkREMEUz
MjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICov
LAorCQkJCTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8s
CiAJCQkJMDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcCAqLywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuaCAqLywKIAkJCSk7CkBAIC02MTM5LDYgKzYxNDYsMTUgQEAKIAkJCXBhdGggPSBB
dXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMURBRjVBNEQy
M0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJl
bW90ZUNvY29hLmggKi8sCisJCQkJMURGREQwREYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQkxRjAxODE2ODE4NThEQzE1MDBGOTI4ODQgLyogQ29j
b2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjk5Nyw4
ICs3MDEzLDggQEAKIAkJCQkxQTQyMkY4QTE4QjI5QjU0MDBEOENEOTYgLyogV0tIaXN0b3J5RGVs
ZWdhdGVQcml2YXRlLmggKi8sCiAJCQkJNTFEMTI0ODQxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRU
UENvb2tpZVN0b3JlLmggKi8sCiAJCQkJNTFEMTI0ODUxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRU
UENvb2tpZVN0b3JlLm1tICovLAotCQkJCURGNDYyRTBFMjNGMjJGNTMwMEVGRjM1RiAvKiBXS0hU
VFBDb29raWVTdG9yZVByaXZhdGUuaCAqLywKIAkJCQk1MUQxMjQ4NjFFNzM0QUUzMDAyQjI4MjAg
LyogV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5oICovLAorCQkJCURGNDYyRTBFMjNGMjJGNTMw
MEVGRjM1RiAvKiBXS0hUVFBDb29raWVTdG9yZVByaXZhdGUuaCAqLywKIAkJCQkxQUI0MEVFMzFC
RjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJzLm1tICovLAogCQkJCTFBQjQw
RUU0MUJGNjc3RTMwMEJBODFCRSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmggKi8s
CiAJCQkJMUE1QjFDNEYxODk4NjA2RjAwNEZDRjlCIC8qIFdLTmF2aWdhdGlvbi5oICovLApAQCAt
MTAyNTQsNyArMTAyNzAsNiBAQAogCQkJCTJENTg3NUJGMjE5QjUzMTUwMDcwQjlBQSAvKiBFZGl0
YWJsZUltYWdlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwNUZFNTQxOEQ3QjlE
RTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDFBQjUx
MkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlERjQ2
MkUxMjIzRjMzOEJFMDBFRkYzNUYgLyogV0tDb250ZW50V29ybGRQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzAzMkRBODEwRjQzN0QxMDA1OEMxNUEgLyogRW5jb2Rlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFCMTVBODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE1NzVGQjE0OTZCNTI2MDBBNEVFMDYgLyogRXZl
bnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEwNzIxLDcgKzEwNzM2LDYgQEAKIAkJ
CQlGRUU0M0ZEMzFFNjdCMDE4MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0
Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEQkRDRDcxRTY4RDIwNTAwQTU5RjhGIC8qIFdl
Ykluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUM4RTJBMzYxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKLQkJCQlERjQ2MkUwRjIzRjIyRjU1MDBFRkYzNUYgLyogV0tIVFRQQ29va2ll
U3RvcmVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzhFMjgzNDEyNzVENzM4MDBCQzdC
RDAgLyogV2ViSW5zcGVjdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQThCOTQ2MTI3
Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQzg5MUQ2NjE5QjEyNEZGMDBCQTc5REQgLyogV2ViSW5zcGVjdG9yVUkuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTA5MzQsNiArMTA5NDgsNyBAQAogCQkJCTBGMDQxNTlFMjNDN0NDNzMw
MDYwQTNFMiAvKiBXS0NvbnRlbnRWaWV3TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTEwNjVG
QzIzRUM5NTcyMDA1NDQzRDYgLyogV0tDb250ZW50V29ybGQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxMTA2NUZEMjNFQzk1N0IwMDU0NDNENiAvKiBXS0NvbnRlbnRXb3JsZEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKKwkJCQlERjQ2MkUxMjIzRjMzOEJFMDBFRkYzNUYgLyogV0tDb250ZW50V29y
bGRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0I5RTI0QjExMjBFMTVDMDBBMTM3RTAg
LyogV0tDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU1MkY5ODE5MjAyNjcyMDBBMUZB
MzcgLyogV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0
NDVCQTUxODRENUZEQTAwNEIzNDE0IC8qIFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTEwMTcsNiArMTEwMzIsNyBAQAogCQkJCTFBNDIyRjhCMThCMjlCNTQw
MEQ4Q0Q5NiAvKiBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUI2MkU3MzEyMTQzMDQ3QjAwMDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRDEyNDk5MUU3NjNDMDEwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJREY0NjJFMEYyM0YyMkY1NTAwRUZGMzVGIC8qIFdLSFRUUENv
b2tpZVN0b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM2NkE0QjUyMzIwOTYyNDAw
RUE0RDQ0IC8qIFdLSFRUUENvb2tpZVN0b3JlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTEw
QUUwRDEzM0MxNkNCMDA3MjcxN0EgLyogV0tJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMjNDRjFDMTMzRDI2MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2NjQ4
OTdmODJkYjdlMDUxODA4ZjBlNDg5ZGM1Mjc5Li45NjQyNWM2MDQ4ZWU5YTNmMmMzYTZiYTYwYzEx
OWE4NmNiNThhMDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0zMCwxMCAr
MzAsMTIgQEAKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNs
dWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgiCisjaW5jbHVkZSAiVmlkZW9MYXllclJlbW90
ZS5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtOTAsMTcg
KzkyLDE2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJh
Y2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBw
cmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKQogewotICAgIGF1dG8gbGF5b3V0UmVjdCA9IG1f
cGxheWVyLT5wbGF5ZXJDb250ZW50Qm94UmVjdCgpOwogICAgIGF1dG8gc2NhbGUgPSBtX3BsYXll
ci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXli
YWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgbGF5b3V0
UmVjdCwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8g
Y29udGV4dElkKSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJp
dmF0ZU1vZGUsIHByZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUg
ewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IGlmICghY29udGV4dElkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fdmlkZW9M
YXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5n
Q29udGV4dChjb250ZXh0SWQudmFsdWUoKSk7CisgICAgICAgIG1fdmlkZW9JbmxpbmVMYXllciA9
IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUodGhpcywgY29udGV4dElkLnZhbHVlKCkpOwogICAgIH0s
IG1faWQpOwogfQogCkBAIC0zMDUsNiArMzA2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSkKIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7
CisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9G
cmFtZUF2YWlsYWJsZSgpOwogfQogCkBAIC01NDcsNyArNTQ5LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikKIAogUGxhdGZvcm1MYXll
ciogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgpOworICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5
ZXIuZ2V0KCk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFD
KSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpAQCAtNjcxLDE0ICs2NzMsMjEg
QEAgdW5zaWduZWQgbG9uZyBsb25nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dG90YWxCeXRl
cygpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBtYWNoU2VuZFJpZ2h0KQor
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoc2l6ZSwgbWFjaFNlbmRSaWdodCksIG1faWQpOwor
fQorI2VuZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVt
cHR5LgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwgc28g
dGhpcyBmdW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NH
TGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5k
ZXggN2Y3MzkwNDE5MzdlMTFmNGFkMDI1YTE4MzBlNWNmM2M4OTUwMGRhOC4uNWI0OWZmYTFhNzg4
ZWFmMTk1Yjc0YzA2ODZlMTU5ODA2MTY2N2QzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
CkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIE1hY2hQb3J0OworfQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2ICs5
MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1
ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRU
eXBlKTsKICAgICB2b2lkIHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAgdm9p
ZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2
b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29u
c3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3RlQXVk
aW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToKICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29jb2Eg
V2ViS2l0IHBvcnQsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUo
KSBkb2VzIG5vdGhpbmcsCi0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5lZWQg
dG8gc2VuZCBJUEMgbWVzc2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0gICAg
Ly8gT3RoZXIgV2ViS2l0IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBzZXRT
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFpbnQo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmlu
YWw7Ci0KICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJvb2wg
Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVt
LCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6Ok5h
dGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0OCw3
ICszNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVy
IHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXll
cj4gbV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvSW5s
aW5lTGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3Rl
RW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Zp
ZGVvTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlk
ZW9MYXllclJlbW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNDkwNmYyMWIwZDZlNGNjOTBhYmZkZTUwNzky
M2UzZjA2YzhhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENP
Q09BKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXllcj4g
Y3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqLCBMYXllckhv
c3RpbmdDb250ZXh0SUQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzU4MTA4YTY0MjdiMDMzNGY0
ZTNjZTBmOTkwMGVkOGYwMTUwN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApAQCAtMCww
ICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0
ekNvcmVTUEkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRlb0xheWVyUmVtb3RlIDogQ0FMYXllcgor
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBh
c3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dS
ZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJl
bW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxZjQ2YjY5M2M4YWYzZWU4NmYzY2IxOGRmY2UzNmZm
NjQyZDYzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90
ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQor
CisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2ltcG9y
dCA8d3RmL1dlYWtQdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFdLVmlkZW9MYXllclJlbW90ZSB7
CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gX21lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTsKKyAgICBDQUxheWVyKiBfdmlkZW9TdWJsYXllcjsKKyAgICBDQUNv
bnRleHQqIF9jb250ZXh0OworICAgIGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdSZXNvbHZlQm91
bmRzQmxvY2s7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtzdXBl
ciBpbml0XTsKKyAgICBpZiAoc2VsZikgeworICAgICAgICBzZWxmLm1hc2tzVG9Cb3VuZHMgPSBZ
RVM7CisgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gbmlsOworICAgIH0KKwor
ICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoX3BlbmRp
bmdSZXNvbHZlQm91bmRzQmxvY2spCisgICAgICAgIGRpc3BhdGNoX2Jsb2NrX2NhbmNlbChfcGVu
ZGluZ1Jlc29sdmVCb3VuZHNCbG9jayk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdldCgpOworfQorCist
ICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBfbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk7
Cit9CisKKy0gKENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgcmV0dXJuIF92aWRlb1N1
YmxheWVyOworfQorCistICh2b2lkKXNldFZpZGVvU3VibGF5ZXI6KENBTGF5ZXIgKil2aWRlb1N1
YmxheWVyCit7CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVyOworfQorCistICh2
b2lkKWxheW91dFN1YmxheWVycworeworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXll
cl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHNv
dXJjZVZpZGVvRnJhbWUgPSBzZWxmLnZpZGVvTGF5ZXJGcmFtZTsKKyAgICBXZWJDb3JlOjpGbG9h
dFJlY3QgdGFyZ2V0VmlkZW9GcmFtZSA9IHNlbGYuYm91bmRzOworICAgIENHQWZmaW5lVHJhbnNm
b3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHRhcmdldFZpZGVvRnJh
bWUud2lkdGgoKSAvIHNvdXJjZVZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0VmlkZW9GcmFtZS5o
ZWlnaHQoKSAvIHNvdXJjZVZpZGVvRnJhbWUuaGVpZ2h0KCkpOworCisgICAgW0NBVHJhbnNhY3Rp
b24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107Cisg
ICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1pZFgo
c2VsZi5ib3VuZHMpLCBDR1JlY3RHZXRNaWRZKHNlbGYuYm91bmRzKSldOworICAgIFtfdmlkZW9T
dWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBjb21taXRdOworCisgICAgX2NvbnRleHQgPSBbQ0FDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsK
KyAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtDQVRyYW5zYWN0aW9uIGFu
aW1hdGlvbkR1cmF0aW9uXTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeeworICAgICAgICBpZiAoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2spCisgICAg
ICAgICAgICBkaXNwYXRjaF9ibG9ja19jYW5jZWwoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2sp
OworCisgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gZGlzcGF0Y2hfYmxvY2tf
Y3JlYXRlKChkaXNwYXRjaF9ibG9ja19mbGFnc190KTAsIF57CisgICAgICAgICAgICBfcGVuZGlu
Z1Jlc29sdmVCb3VuZHNCbG9jayA9IG5pbDsKKyAgICAgICAgICAgIFtzZWxmIHJlc29sdmVCb3Vu
ZHNdOworICAgICAgICB9KTsKKyAgICAgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShE
SVNQQVRDSF9USU1FX05PVywgKGFuaW1hdGlvbkR1cmF0aW9uICsgMC4xKSAqIE5TRUNfUEVSX1NF
QyksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2Nr
KTsKKyAgICB9KTsKK30KKworLSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKFtfdmlk
ZW9TdWJsYXllciBzdXBlcmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAm
JiBDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAg
ICAgICByZXR1cm47CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNh
Y3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1Jl
Y3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZp
ZGVvTGF5ZXJGcmFtZSA9IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAg
ICAgICAgIE1hY2hTZW5kUmlnaHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRv
cHQoW19jb250ZXh0IGNyZWF0ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgbWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLT5zZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZShz
ZWxmLnZpZGVvTGF5ZXJGcmFtZS5zaXplKSwgX2ZlbmNlU2VuZFJpZ2h0KTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06Q0dBZmZpbmVU
cmFuc2Zvcm1JZGVudGl0eV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEZyYW1lOnNlbGYuYm91
bmRzXTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK0BlbmQKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVyUmVtb3Rl
KE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLCBMYXll
ckhvc3RpbmdDb250ZXh0SUQgY29udGV4dElkKQoreworICAgIC8vIEluaXRpYWxseSwgYWxsIHRo
ZSBsYXllcnMgd2lsbCBiZSBlbXB0eSAoYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwKSBhbmQg
aW52aXNpYmxlLgorICAgIC8vIFRoZSByZW5kZXJlciB3aWxsIGNoYW5nZSB0aGUgc2l6ZXMgb2Yg
V0tWaWRlb0xheWVyUmVtb3RlIHRvIHRyaWdnZXIgbGF5b3V0IG9mIHN1YmxheWVycyBhbmQgbWFr
ZSB0aGVtIHZpc2libGUuCisgICAgV0tWaWRlb0xheWVyUmVtb3RlICp2aWRlb0xheWVyUmVtb3Rl
ID0gW1tXS1ZpZGVvTGF5ZXJSZW1vdGUgYWxsb2NdIGluaXRdOworICAgIFt2aWRlb0xheWVyUmVt
b3RlIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMCwgMCldOworI2lmbmRlZiBOREVCVUcKKyAg
ICBbdmlkZW9MYXllclJlbW90ZSBzZXROYW1lOkAiV0tWaWRlb0xheWVyUmVtb3RlIl07CisjZW5k
aWYKKworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTpt
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVdOworCisgICAgYXV0byB2aWRlb1N1YmxheWVyID0gTGF5
ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNv
bnRleHRJZCk7CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjp2aWRlb1N1
YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBhZGRTdWJsYXllcjp2aWRlb1N1
YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFtZTp2aWRlb0xheWVyUmVt
b3RlLmJvdW5kc107CisKKyAgICByZXR1cm4gdmlkZW9MYXllclJlbW90ZTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391028</attachid>
            <date>2020-02-17 21:15:35 -0800</date>
            <delta_ts>2020-02-18 14:17:37 -0800</delta_ts>
            <desc>WIP patch: RenderVideo only calls mediaPlayer-&gt;setSize() when supportsAcceleratedRendering is false</desc>
            <filename>bug-206132-20200217211534.patch</filename>
            <type>text/plain</type>
            <size>48978</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU5YjdiYjMwMzZlNGY2
OTI5MGEwN2QyMzA5ZWE4ODIzZjI2OGFjZi4uNmQ3OGI0YWMwYmU3YjA2MjhjMzMzNGI0YWQyZWJh
NDZmYTdlMWQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAyLTE3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmbGFnICht
X2hvc3RzVmlkZW9MYXllclJlbW90ZWx5KSBpbiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24gd2l0aCBhIGRlZmF1bHQgdmFsdWUgZmFsc2UuCisgICAgICAgIFdoZW4gaXRzIHZh
bHVlIGlzIHRydWUsIE1lZGlhUGxheWVyQ2xpZW50IChhIFJlbW90ZU1lZGlhUGxheWVyUHJveHkg
aW5zdGFuY2Ugd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgZW5hYmxlZCBhbmQgdGhlIG1lZGlhIGlu
IEdQVQorICAgICAgICBwcm9jZXNzIGZlYXR1cmUgaXMgb24pIGNhbiByZXF1ZXN0IHRoZSBWaWRl
byBMYXllciBNYW5hZ2VyIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgdmlkZW8gY29udGFpbmVy
IGxheWVyIGZvciBpbmxpbmUgdmlkZW8uCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldEhvc3RzVmlkZW9MYXllclJl
bW90ZWx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRIb3N0c1ZpZGVvTGF5ZXJS
ZW1vdGVseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xh
eWVyTWFuYWdlck9iakM6OnNldFZpZGVvSW5saW5lU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW06CisgICAgICAgICgrW0NBTGF5
ZXIgX3dlYl9yZW5kZXJMYXllcldpdGhDb250ZXh0SUQ6XSk6CisKIDIwMjAtMDItMTcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZlciBleGVjdXRpb24gb2Yg
YXN5bmMgc2NyaXB0cyB1bnRpbCB1bnRpbCB0aGUgZG9jdW1lbnQgaXMgbG9hZGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwppbmRleCA5MTNmMzE5MWI1NWU0MmNiZjFmZGQ4Zjg2YTY5Yjk3MTQ1NDQyYTVhLi43
NDI2NDg5ZGEzNWZmMDkzNDM2OWZmNmIyODlmODMzNzFkY2E5YjExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMi0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhl
IHByb3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBo
b3N0aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoK
KwogMjAyMC0wMi0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBjaGVjay13ZWJraXQtc3R5bGUgZXJyb3JzIHJlbGF0ZWQgdG8gQVZGb3VuZGF0aW9uU1BJ
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNzg3NTA4MjRlOTY4OTE1MmRlYTc2NmQ3MmM4OWU4MmZhZTdhZDYwYi4u
ZWY0ZjBjMTg2OWQwYjE0NTdiNWY5YWVkNmQxYTFkNzBkMjEwODc1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAyMC0wMi0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGNyZWF0ZXMgV0tWaWRlb0xh
eWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkgTGF5ZXJIb3N0aW5nQ29udGV4
dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KCkuCisgICAgICAgIFRoZSBX
S1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSByZW5kZXJlciB0byBtYW5hZ2Ug
dGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBXaGVuIGl0cyBzaXplIGlzIGNo
YW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBsaWVzIGEgdHJhbnNmb3JtIHdp
dGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2VuZHMgYSBtZXNzYWdlIHRvIHRo
ZSB2aWRlbyBsYXllciBtYW5hZ2VyIGluIHRoZSBHUFUgcHJvY2VzcworICAgICAgICB0byBjaGFu
Z2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllciAodmlkZW9JbmxpbmVMYXllcikuIEFm
dGVyIHRoYXQgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRoZSBjb3Jy
ZWN0IG9uZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2UgYSBGZW5jZVBvcnQgdG8gc3luY2hyb25p
emUgdGhlIHRyYW5zYWN0aW9ucyBpbiB0aGUgV2ViIHByb2Nlc3MgYW5kIHRoZSBHUFUgcHJvY2Vz
cy4KKworICAgICAgICBXZSBoYXZlIHRvIHVzZSBzdWNoIGEgcHJvY2VzcyB0byBjaGFuZ2UgdGhl
IGFwcGVhcmFuY2Ugb2YgV0tWaWRlb0xheWVyUmVtb3RlIGluIG9yZGVyIHRvIGd1YXJhbnRlZSB0
aGUgc21vb3RobmVzcyB3aGVuIGEgdXNlcgorICAgICAgICBjaGFuZ2UgdGhlIHNpemUgb2YgYSB2
aWRlbyBlbGVtZW50LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVG
b3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVB
dmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBs
YXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVt
b3RlQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgaW5pdF0p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgZGVhbGxvY10pOgorICAgICAgICAoLVtX
S1ZpZGVvTGF5ZXJSZW1vdGUgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlXSk6CisgICAgICAgICgt
W1dLVmlkZW9MYXllclJlbW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6XSk6CisgICAg
ICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSB2aWRlb1N1YmxheWVyXSk6CisgICAgICAgICgtW1dL
VmlkZW9MYXllclJlbW90ZSBzZXRWaWRlb1N1YmxheWVyOl0pOgorICAgICAgICAoLVtXS1ZpZGVv
TGF5ZXJSZW1vdGUgbGF5b3V0U3VibGF5ZXJzXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJl
bW90ZSByZXNvbHZlQm91bmRzXSk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVZpZGVvTGF5ZXJS
ZW1vdGUpOgorCiAyMDIwLTAyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgRGVmZXIgZXhlY3V0aW9uIG9mIGFzeW5jIHNjcmlwdHMgdW50aWwgdW50aWwgdGhl
IGRvY3VtZW50IGlzIGxvYWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDBmOWVhZDdiYjk1MjgxYjllMjY0ODExOWRkZjVjZWVl
NWY5NDgxMjEuLjUzM2Y3MGRkZjg1YmQxZmJiZWNiMjY3NjU3NGI5NzA5ODVlM2ZiNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAg
LTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NBUmVuZGVyQ29udGV4dCBDQVJlbmRlckNv
bnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0ICgpCiArIChOU0FycmF5ICopYWxsQ29udGV4
dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50Q29udGV4dDsKICsgKENBQ29udGV4dCAqKWxvY2Fs
Q29udGV4dDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNvbnRleHRXaXRoT3B0aW9uczooTlNEaWN0
aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JjZmRmNDQwNTE5MzBjYTlk
MDQ5NTE2YzJkMGUwNGRhOGE1ODhlYy4uMTdjY2Q0OWIxNzY5YjFkZmExOTBhZDllZTNkOWVjYzE1
ODNmNGU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJCTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2
OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzNDM0QwQjAwRUUyMjhEIC8qIEVudGVy
UGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0Vs
ZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZpZGVvRWxlbWVu
dFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxRDM5MkYyRDIz
RjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJMUQ5RjBGQzEyMTIyMDI5QjAw
NUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEQkMxQjU2MjM0
N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkMxQjU1MjM0N0IzRDIwMEI5MDFB
RiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFFMjFCQTE3MDA2MjFFMjUgLyogV2Vi
QmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3Vu
ZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE1ODQsNiArMTU4Myw3IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1
MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMDFD
NTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3
Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9M
YXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVl
bk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0
OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkw
MERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcw
MDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04
NDUwLDYgKzg0NTAsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZE
REIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQx
QzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjczNCw4ICsyNjcz
Niw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJ
CQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMzQyNjIsNyArMzQyNjQsNyBAQAog
CQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0
QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBp
biBTb3VyY2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
REUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggY2E3MWU3ZTBiNTg2YzdiNTViMTEyNzMyYmFk
NTliMDFkOGE0MTgxYi4uYmZiZWZkNWViNDk0NzQ5ZTAyNWViZjc1ZWQ1NDcxNWFkOTAzMzkxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cApAQCAtMTEwLDkgKzExMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhdXNlKCkgZmluYWwgeyB9
CiAKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbnVsbHB0cjsgfQotCiAgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gRmxvYXRTaXplKCk7IH0KLQogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogCkBAIC05MjMsNiArOTIxLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX3ByaXZhdGUtPnNldFNpemUoc2l6ZSk7
CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNldEhvc3RzVmlkZW9MYXllclJlbW90ZWx5KGJvb2wg
aG9zdHNWaWRlb0xheWVyUmVtb3RlbHkpCit7CisgICAgbV9wcml2YXRlLT5zZXRIb3N0c1ZpZGVv
TGF5ZXJSZW1vdGVseShob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseSk7Cit9CisKIGJvb2wgTWVkaWFQ
bGF5ZXI6OnZpc2libGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3Zpc2libGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3ZTZjYjhh
MzkwZGY3ZmUxYTdhYWUwMTczOWRjOTQ4Zjc3NjYyMWVlLi43Y2YxMmFiY2E2MzdlN2Q4ZGFlMDc0
NjhmZDM1YjU1ZDYxNzE2YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKQEAgLTMyOCw2ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNWaWRlbygpIGNvbnN0OwogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdDsKIAorICAgIHZvaWQg
c2V0SG9zdHNWaWRlb0xheWVyUmVtb3RlbHkoYm9vbCk7CiAgICAgSW50U2l6ZSBzaXplKCkgY29u
c3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmIHNp
emUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oCmluZGV4IDlmN2Y2ZTZiMDJkM2JlYmUwOTBlYmNjMzJhNGIwZGNhMWNj
MTc1YTguLjg5MWYxMmY4MDlkMmM5YzQwOGRiY2M3YTBmMDQ0YWIxZjcwOWQyODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCkBAIC0xNTIsNiArMTUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9u
ZyBsb25nIHRvdGFsQnl0ZXMoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBib29s
IGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRI
b3N0c1ZpZGVvTGF5ZXJSZW1vdGVseShib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6
ZShjb25zdCBJbnRTaXplJikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDM5ZGE1NThlNmRiMzhmMGM3
NzhjNTE3ODBhMDc2MmI1ZjY1MDBiMGYuLmY3NDkzYTgxMjEyM2M4YjIzMDBlMzE4ZGJlMDkxZjU0
OWI1YmE2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgKQEAgLTMyMyw3ICszMjMsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
c2V0UmVzb2x2ZWRVUkwoVVJMJiYpOwogICAgIGNvbnN0IFVSTCYgcmVzb2x2ZWRVUkwoKSBjb25z
dCB7IHJldHVybiBtX3Jlc29sdmVkVVJMOyB9CiAKKyAgICBib29sIGhvc3RzVmlkZW9MYXllclJl
bW90ZWx5KCkgeyByZXR1cm4gbV9ob3N0c1ZpZGVvTGF5ZXJSZW1vdGVseTsgfQorCiBwcml2YXRl
OgorICAgIHZvaWQgc2V0SG9zdHNWaWRlb0xheWVyUmVtb3RlbHkoYm9vbCBob3N0c1ZpZGVvTGF5
ZXJSZW1vdGVseSkgZmluYWwgeyBtX2hvc3RzVmlkZW9MYXllclJlbW90ZWx5ID0gaG9zdHNWaWRl
b0xheWVyUmVtb3RlbHk7IH0KKwogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKIAogICAgIFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiBtX3BlbmRpbmdTZWVrOwpAQCAtMzcxLDYgKzM3NSw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2NoYXJhY3RlcmlzdGljc0NoYW5nZWQ7CiAgICAgYm9vbCBtX3No
b3VsZE1haW50YWluQXNwZWN0UmF0aW87CiAgICAgYm9vbCBtX3NlZWtpbmc7CisgICAgYm9vbCBt
X2hvc3RzVmlkZW9MYXllclJlbW90ZWx5IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBhZjZjODA0ZjZjZjhlNjA4ZDg3ZDgz
OWZkODA2ZjA4OTAzZDIzZmI2Li5jMWY4MjBkMjZhNTI1YmEwMjhlYjg4M2Q3NTJmYWU4MjZjYzVm
YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNzQsNiArMTc0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHBsYXRmb3JtUGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRW
b2x1bWUoZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBmaW5hbDsKICAgICB2b2lkIHBhaW50
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQg
cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTUyNDQxMWFiMmM5N2E5YWRm
YjYxNTcxYTg4NDg5YTE0Nzg4MDYwZi4uYTUzZjI1YzY2NDg2NGQwZWIxYTk4ZjI4OWM1ZGE1MzVk
YTc5ZGNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xNTIyLDYgKzE1MjIsMTEgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1cnJlbnRGcmFt
ZUluQ29udGV4dChHcmFwaGljc0NvbnQKICAgICBtX3ZpZGVvRnJhbWVIYXNEcmF3biA9IHRydWU7
CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2l6ZShj
b25zdCBJbnRTaXplJiBzaXplKQoreworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVv
SW5saW5lU2l6ZShzaXplKTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkKIHsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgY29udGV4dC5wYWludGlu
Z0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oCmluZGV4IGUzMDMyMTc0ZTE5MDg3ZmFlNzg1MTg4MmJlMGNlOWY0MmU0ZTA4NzAuLjYx
MmQzYzgxYTMxNTM1YjQ5ZjQ4MDVmZjA1M2M0NzZlZTk5NTU3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC01MCw2ICs1MCw3IEBAIHB1
YmxpYzoKICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxh
dGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXplKTsKKyAgICB2b2lkIHNldFZpZGVvSW5s
aW5lU2l6ZShjb25zdCBJbnRTaXplJik7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyLCBOYXRpdmVJbWFnZVB0cik7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5Jbmxp
bmVJbWFnZShOYXRpdmVJbWFnZVB0cik7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZShGbG9hdFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tCmluZGV4IGY3ZTY3YjIwZDQ0YmUzMTgzNzgxZTI1YTQwZTk1NDU3NjZkZTBkZTQu
LjhiMjcxYjNmODIyODlhMTcyZmY0Zjg2YmYzMmEyY2JlOGM4OGI5MDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAgLTc1LDYgKzc1LDIw
IEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5
ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29uCiAgICAgfQogfQogCit2b2lkIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9JbmxpbmVTaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7Cisg
ICAgaWYgKCFtX3ZpZGVvSW5saW5lTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmlk
ZW9JbmxpbmVGcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpKTsKKyAgICAvLyBXZSBkbyBub3Qgd2FudCBhbmltYXRpb25zIGhlcmUKKyAgICBbQ0FUcmFu
c2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVT
XTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZyYW1lOm1fdmlkZW9JbmxpbmVGcmFtZV07
CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7
Cit9CisKIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5J
bmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKIHsKICAgICBpZiAobV92aWRlb0lubGlu
ZUxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2Y2ZmMjgz
NjVjZjZjOGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAyNzQ0OWZiZDhmOTI2MzZjMzU0NTQ2OWRjYWQ0
Mzk0MjFiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtODIsNyArODIsNyBA
QAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FMYXllckhvc3QgbGF5ZXJdOwog
I2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJXZWJWaWRlb0hvc3RpbmdM
YXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIkhvc3RpbmcgbGF5ZXIiXTsKICNlbmRp
ZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7CiAgICAgcmV0dXJuIGxheWVy
SG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCmluZGV4IGY4MGMy
MDMzZGM2NzVmMzJkY2MyMmE1MTZhMDcxMmYyM2E0NTUyODYuLjljODk4OWVlY2NjYmI2M2UxMGNm
ZTAyY2EwZTMwNTdhYjY0OGFkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmNwcApAQCAtMjU4LDggKzI1OCwxMSBAQCB2b2lkIFJlbmRlclZpZGVvOjp1cGRhdGVQbGF5
ZXIoKQogCiAgICAgY29udGVudENoYW5nZWQoVmlkZW9DaGFuZ2VkKTsKICAgICAKLSAgICBJbnRS
ZWN0IHZpZGVvQm91bmRzID0gdmlkZW9Cb3goKTsgCi0gICAgbWVkaWFQbGF5ZXItPnNldFNpemUo
SW50U2l6ZSh2aWRlb0JvdW5kcy53aWR0aCgpLCB2aWRlb0JvdW5kcy5oZWlnaHQoKSkpOworICAg
IGlmICghbWVkaWFQbGF5ZXItPnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSkgeworICAg
ICAgICBJbnRSZWN0IHZpZGVvQm91bmRzID0gdmlkZW9Cb3goKTsKKyAgICAgICAgbWVkaWFQbGF5
ZXItPnNldFNpemUoSW50U2l6ZSh2aWRlb0JvdW5kcy53aWR0aCgpLCB2aWRlb0JvdW5kcy5oZWln
aHQoKSkpOworICAgIH0KKwogICAgIG1lZGlhUGxheWVyLT5zZXRWaXNpYmxlKCF2aWRlb0VsZW1l
bnQoKS5lbGVtZW50SXNIaWRkZW4oKSk7CiAgICAgbWVkaWFQbGF5ZXItPnNldFNob3VsZE1haW50
YWluQXNwZWN0UmF0aW8oc3R5bGUoKS5vYmplY3RGaXQoKSAhPSBPYmplY3RGaXQ6OkZpbGwpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IGQ5ZTNiZDM3MjcyYzYyNzFjMWJjODlhZTJiN2YzMjdl
YzJlYTJjYmEuLjMzYjNiMTUxYjhjNzE5MzY1Yzk0YzA4NmIyYWIzOGYxZDQ2YWY3MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
UGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmln
aHQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTEwMiwxNyArMTAzLDE3IEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4mCiAgICAgfQogCiAgICAgbV9wbGF5ZXItPmxvYWQodXJsLCBjb250
ZW50VHlwZSwga2V5U3lzdGVtKTsKKyAgICBtX3BsYXllci0+c2V0SG9zdHNWaWRlb0xheWVyUmVt
b3RlbHkodHJ1ZSk7CiAgICAgZ2V0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAotdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZl
c1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIExheW91dFJlY3QgbGF5b3V0UmVjdCwg
ZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGNvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJv
b2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9D
b250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5n
Q29udGV4dElEPiYmIGNvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9w
bGF5ZXItPnNldFByaXZhdGVCcm93c2luZ01vZGUocHJpdmF0ZU1vZGUpOwogICAgIG1fcGxheWVy
LT5zZXRQcmVsb2FkKHByZWxvYWQpOwogICAgIG1fcGxheWVyLT5zZXRQcmVzZXJ2ZXNQaXRjaChw
cmVzZXJ2ZXNQaXRjaCk7CiAgICAgbV9wbGF5ZXItPnByZXBhcmVGb3JSZW5kZXJpbmcoKTsKLSAg
ICBtX3ZpZGVvQ29udGVudEJveFJlY3QgPSBsYXlvdXRSZWN0OwogICAgIG1fdmlkZW9Db250ZW50
U2NhbGUgPSB2aWRlb0NvbnRlbnRTY2FsZTsKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQgPSBM
YXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7CiAg
ICAgY29tcGxldGlvbkhhbmRsZXIobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSk7
CkBAIC00NjgsNiArNDY5LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllckVuZ2luZVVwZGF0ZWQoKQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICAvLyBJbml0aWFsbHkgdGhl
IHNpemUgb2YgdGhlIHBsYXRmb3JtTGF5ZXIgd2lsbCBiZSAweDAgYmVjYXVzZSB3ZSBkbyBub3Qg
cHJvdmlkZSBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgaW4gdGhpcyBjbGFzcy4KICAgICBt
X2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihtX3BsYXllci0+cGxhdGZvcm1MYXll
cigpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OkZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpLCBtX2lkKTsKIH0K
QEAgLTUwOCw2ICs1MTAsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllcldhaXRpbmdGb3JLZXlDaGFuZ2VkKCkKIH0KICNlbmRpZgogCit2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBzaXpl
LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgbV9sYXll
ckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFjaFNlbmRSaWdodC5zZW5kUmlnaHQoKSk7
CisgICAgbV9wbGF5ZXItPnNldFNpemUoc2l6ZSk7Cit9CisKICNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wgaXNDdXJyZW50UGxh
eWJhY2tUYXJnZXRXaXJlbGVzcykKIHsKQEAgLTU0NiwxMSArNTU0LDYgQEAgYm9vbCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1MYXlvdXRSZWN0IFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX3Zp
ZGVvQ29udGVudEJveFJlY3Q7Ci19Ci0KIGZsb2F0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlkZW9Db250
ZW50U2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBiMjI2MzBmZGFkYmY0NzNmN2RiYTk3YTMzZmJm
MmM1M2RiYjEwNzg5Li4xNmJiMmRkZmEyMTQ3NDcwZTg2MDBhYjcxMzk2YTU5Y2RmNTQ0OWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWFj
aFNlbmRSaWdodDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1By
aXZhdGU7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTc2LDcgKzgwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRl
b0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3Rp
bmdDb250ZXh0SUQ+JiYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4mJik+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBs
b2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzExMywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6
Ok1vZGUpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdo
dCYpOworI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAg
IHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODYsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3Jl
OjpMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAg
ICBmbG9hdCBtZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1ZmM0
MmRjZDk1ZWY2NTQ0NjE0Y2YxOWFhM2FkN2MyLi5jYTY2MzE0ZGZiZTZkMzFiZTA5OTUyYzVmMjgy
ZjEwNjE4ZmViZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQs
NyArMjQsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBQcmVwYXJlRm9yUGxheWJhY2so
Ym9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVu
ZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVu
dFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVy
SG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKKyAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2
YXRlTW9kZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQg
cHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBm
bG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5n
Q29udGV4dElEPiBsYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1
cmwsIE9wdGlvbmFsPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0
ZW5zaW9uLCBXZWJDb3JlOjpDb250ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3Rl
bSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5
ZXJDb25maWd1cmF0aW9uKSBBc3luYwogICAgIENhbmNlbExvYWQoKQpAQCAtNTcsNiArNTcsMTAg
QEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAg
ICBWaWRlb1RyYWNrU2V0U2VsZWN0ZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIHRyYWNrSUQsIGJvb2wgZW5hYmxlZCkKICAgICBUZXh0VHJhY2tTZXRNb2RlKFdlYktpdDo6
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSBtb2RlKQogCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgU2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKFdlYkNvcmU6OkludFNpemUgc2l6ZSwg
TWFjaFNlbmRSaWdodCBtYWNoU2VuZFJpZ2h0KQorI2VuZGlmCisKICAgICAjIFBhaW50CiAgICAg
IyBQYWludEN1cnJlbnRGcmFtZUluQ29udGV4dAogCkBAIC04MSw3ICs4NSw2IEBAIG1lc3NhZ2Vz
IC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAKICAgICBBcHBsaWNh
dGlvbldpbGxSZXNpZ25BY3RpdmUoKQogICAgIEFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkK
LQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBlMWZjNmY3MzcyYjE2MDNl
NWRkMjVlYjBhNGE2MDFjNmM5YmUyM2VhLi5lZTZiYTlmYWE5MTIxMjkzNjI2ZDljY2VhNDJhZTM3
NTljMGRmMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysr
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01NTQsNiArNTU0LDggQEAgV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKK1dlYlBy
b2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQorCiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVNYWMubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5LmgKaW5kZXggMjM3YmRlNDg3NWE3MzBlNjI4ZDUyYjhkNDc2NDc0ZTFlOGMyMmEzZC4u
ZGVmNzg5MjM1MTYzNGQ5ODNlMGQxNWJkNTkzZmU1YTI5MjE4ZDBjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29u
dHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIGludD4g
bV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YTQ1M2ZlM2Y3OTA0YzRlMTJjOWRiMTliYjkyNWFm
YmNlNjNmODdjLi43ODVjMDRjYWRiZmNiODUwZTY2OGIwNWQ5ODczZTI0MDU2NzM3M2FiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2
OTUsNiArMjY5NSwxMCBAQAogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNo
ZWV0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNo
ZWV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0
MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLU2hhcmVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUyREZBQzIz
QTk1OUY4MDAzRTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMURGREQwREYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1v
dGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURGREQw
RTAyM0Y2MEUxRjAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURGREQwRTIyM0Y2MTBGMDAwRTlCNDkwIC8qIFZpZGVvTGF5
ZXJSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJl
bW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMzIzRjYxMEZFMDBF
OUI0OTAgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgx
NkExODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5Mjg4
NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNTAsNiArNTI1NCw3IEBACiAJCTA3OTIzMTJGMjM5
QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICovLAogCQkJ
CTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAg
Ki8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC01MjY3LDYgKzUyNzIsOCBAQAogCQkJCTFEMzJGODlCMjNB
ODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAqLywKIAkJCQkwN0Ux
OUYwODIzRDUzM0I5MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJ
CQkJMDdFMTlGMDkyM0Q1MzNCQTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCAq
LywKKwkJCQkxREZERDBFMzIzRjYxMEZFMDBFOUI0OTAgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbiAqLywKKwkJCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9M
YXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJEMzAwNjgwRDdDIC8q
IFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkpOwpAQCAtNjE0NSw2ICs2MTUyLDE1
IEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMURGREQwRTAyM0Y2MEUxRjAwRTlCNDkw
IC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovLAorCQkJCTFERkREMERGMjNGNjBFMUUwMEU5
QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNv
Y29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUYwMTgxNjgxODU4REMx
NTAwRjkyODg0IC8qIENvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2NjQ4OTdm
ODJkYjdlMDUxODA4ZjBlNDg5ZGM1Mjc5Li42ZDJhYjIxMDhiYmJmY2FhMjE5MDQ2NTEwYmU1MDgx
YzMzMTBhNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUu
aCIKKyNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCkBAIC00Miw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRT
dHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC05MCwxNyArOTIsMTYgQEAgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVN
b2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBi
b29sIHByZXBhcmUpCiB7Ci0gICAgYXV0byBsYXlvdXRSZWN0ID0gbV9wbGF5ZXItPnBsYXllckNv
bnRlbnRCb3hSZWN0KCk7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50
c1NjYWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUs
IHByZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBsYXlvdXRSZWN0LCBzY2FsZSksIFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFi
bGUgeworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9h
ZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFjb250ZXh0SWQp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0
aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJ
ZC52YWx1ZSgpKTsKKyAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9MYXll
clJlbW90ZSh0aGlzLCBjb250ZXh0SWQudmFsdWUoKSk7CiAgICAgfSwgbV9pZCk7CiB9CiAKQEAg
LTMwNSw2ICszMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNoYW5n
ZWQoV2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSKTsKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7
CiB9CiAKQEAgLTU0Nyw3ICs1NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVv
TGF5ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKIH0KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkpCkBAIC02NzEsMTQgKzY3MywyMSBAQCB1bnNpZ25lZCBsb25n
IGxvbmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBzaXplLCBj
b25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5saW5l
U2l6ZUZlbmNlZChzaXplLCBtYWNoU2VuZFJpZ2h0KSwgbV9pZCk7Cit9CisjZW5kaWYKKwogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMg
cmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlz
IGVtcHR5LgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1H
TE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0s
IGJvb2wsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzN2Ux
MWY0YWQwMjVhMTgzMGU1Y2YzYzg5NTAwZGE4Li5jYzAzNDc3N2JiOWY0MDA1YTM1MGE1NTdkMjYy
NTIzMzRiYjUzM2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTM4LDYgKzM4LDEw
IEBACiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWFjaFNlbmRSaWdodDsKK30KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgSVNPV2ViVlRUQ3VlOwogfQpAQCAtODcsNiArOTEsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoYm9vbCBoYXNBdWRpbywgYm9vbCBo
YXNWaWRlbywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CiAgICAg
dm9pZCBzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNpemUpOwogICAgIHZvaWQgZmlyc3RWaWRl
b0ZyYW1lQXZhaWxhYmxlKCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRWaWRl
b0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFj
aFNlbmRSaWdodCYpOworI2VuZGlmCiAKICAgICB2b2lkIGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJh
Y2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmKTsKICAgICB2b2lkIHJlbW92ZVJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllcik7CkBAIC0yMjUsMTMgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bG9uZyBsb25nIHRvdGFsQnl0ZXMoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGRpZExvYWRpbmdQ
cm9ncmVzcygpIGNvbnN0IGZpbmFsOwogCi0gICAgLy8gSW4gdGhlIENvY29hIFdlYktpdCBwb3J0
LCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaXplKCkgZG9lcyBub3Ro
aW5nLAotICAgIC8vIHNvIHRoZSBXZWIgcHJvY2VzcyBkb2VzIG5vdCBuZWVkIHRvIHNlbmQgSVBD
IG1lc3NhZ2VzIHRvIGNhbGwgaXQgaW4gdGhlIEdQVSBwcm9jZXNzLgotICAgIC8vIE90aGVyIFdl
YktpdCBwb3J0cyBtYXkgbmVlZCB0byBkbyB0aGF0LgotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJikgZmluYWwgeyB9Ci0KICAgICB2b2lkIHBhaW50KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwotCiAgICAg
dm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKICAgICBib29sIGNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCos
IFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0s
IEdDR0xlbnVtLCBib29sLCBib29sKSBmaW5hbDsKICAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0
ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CkBAIC0zNDgsNyArMzQ5LDcgQEAg
cHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIg
fTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21l
ZGlhUmVzb3VyY2VMb2FkZXI7Ci0gICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9M
YXllcjsKKyAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0lubGluZUxheWVyOwog
ICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2VyOwogICAgIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3JlbW90ZUVuZ2luZUlkZW50
aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVt
b3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1v
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFiMGQ2ZTRjYzkwYWJmZGU1MDc5MjNlM2YwNmM4YTli
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9W
aWRlb0xheWVyUmVtb3RlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworI2lu
Y2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisKK09CSkNfQ0xBU1MgQ0FMYXllcjsKKworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPENBTGF5ZXI+IGNyZWF0ZVZpZGVv
TGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiwgTGF5ZXJIb3N0aW5nQ29udGV4
dElEKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29j
b2EuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM1ODEwOGE2NDI3YjAzMzRmNGUzY2UwZjk5MDBl
ZDhmMDE1MDdkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAgLTAsMCArMSw0MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQ
TEFURk9STShDT0NPQSkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwor
fQorCitAaW50ZXJmYWNlIFdLVmlkZW9MYXllclJlbW90ZSA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBhc3NpZ24pIFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICptZWRp
YVBsYXllclByaXZhdGVSZW1vdGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDQUxh
eWVyICp2aWRlb1N1YmxheWVyOworQHByb3BlcnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb0xh
eWVyRnJhbWU7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MWY0NmI2OTNjOGFmM2VlODZmM2NiMThkZmNlMzZmZjY0MmQ2M2FmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0KQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAi
TGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmgiCisjaW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlLmgiCisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFr
UHRyLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS1ZpZGVvTGF5ZXJSZW1vdGUgeworICAgIFdlYWtQ
dHI8V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IF9tZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU7CisgICAgQ0FMYXllciogX3ZpZGVvU3VibGF5ZXI7CisgICAgQ0FDb250ZXh0KiBfY29u
dGV4dDsKKyAgICBkaXNwYXRjaF9ibG9ja190IF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrOwor
fQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Cisg
ICAgaWYgKHNlbGYpIHsKKyAgICAgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVTOworICAgICAg
ICBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IG5pbDsKKyAgICB9CisKKyAgICByZXR1cm4g
c2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKF9wZW5kaW5nUmVzb2x2ZUJv
dW5kc0Jsb2NrKQorICAgICAgICBkaXNwYXRjaF9ibG9ja19jYW5jZWwoX3BlbmRpbmdSZXNvbHZl
Qm91bmRzQmxvY2spOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBy
ZXR1cm4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5nZXQoKTsKK30KKworLSAodm9pZClzZXRN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
ICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgX21lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSA9IG1ha2VXZWFrUHRyKCptZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOworfQorCistIChD
QUxheWVyICopdmlkZW9TdWJsYXllcgoreworICAgIHJldHVybiBfdmlkZW9TdWJsYXllcjsKK30K
KworLSAodm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVyICopdmlkZW9TdWJsYXllcgorewor
ICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsKK30KKworLSAodm9pZClsYXlvdXRT
dWJsYXllcnMKK3sKKyAgICBpZiAoW192aWRlb1N1YmxheWVyIHN1cGVybGF5ZXJdICE9IHNlbGYp
CisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3VyY2VWaWRlb0Zy
YW1lID0gc2VsZi52aWRlb0xheWVyRnJhbWU7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdl
dFZpZGVvRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zv
cm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSh0YXJnZXRWaWRlb0ZyYW1lLndpZHRoKCkg
LyBzb3VyY2VWaWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldFZpZGVvRnJhbWUuaGVpZ2h0KCkgLyBz
b3VyY2VWaWRlb0ZyYW1lLmhlaWdodCgpKTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsK
KyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFtfdmlkZW9T
dWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKHNlbGYuYm91bmRz
KSwgQ0dSZWN0R2V0TWlkWShzZWxmLmJvdW5kcykpXTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0
QWZmaW5lVHJhbnNmb3JtOnRyYW5zZm9ybV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsK
KworICAgIF9jb250ZXh0ID0gW0NBQ29udGV4dCBjdXJyZW50Q29udGV4dF07CisgICAgTlNUaW1l
SW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbQ0FUcmFuc2FjdGlvbiBhbmltYXRpb25EdXJh
dGlvbl07CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsK
KyAgICAgICAgaWYgKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKQorICAgICAgICAgICAgZGlz
cGF0Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKTsKKworICAgICAg
ICBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IGRpc3BhdGNoX2Jsb2NrX2NyZWF0ZSgoZGlz
cGF0Y2hfYmxvY2tfZmxhZ3NfdCkwLCBeeworICAgICAgICAgICAgX3BlbmRpbmdSZXNvbHZlQm91
bmRzQmxvY2sgPSBuaWw7CisgICAgICAgICAgICBbc2VsZiByZXNvbHZlQm91bmRzXTsKKyAgICAg
ICAgfSk7CisgICAgICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUoRElTUEFUQ0hfVElN
RV9OT1csIChhbmltYXRpb25EdXJhdGlvbiArIDAuMSkgKiBOU0VDX1BFUl9TRUMpLCBkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayk7CisgICAgfSk7
Cit9CisKKy0gKHZvaWQpcmVzb2x2ZUJvdW5kcworeworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIg
c3VwZXJsYXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKENHUmVjdEVx
dWFsVG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykgJiYgQ0dBZmZpbmVU
cmFuc2Zvcm1Jc0lkZW50aXR5KHNlbGYuYWZmaW5lVHJhbnNmb3JtKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERp
c2FibGVBY3Rpb25zOllFU107CisKKyAgICBpZiAoIUNHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlk
ZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykpIHsKKyAgICAgICAgc2VsZi52aWRlb0xheWVyRnJh
bWUgPSBzZWxmLmJvdW5kczsKKyAgICAgICAgaWYgKGF1dG8gKm1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZSA9IHNlbGYubWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKSB7CisgICAgICAgICAgICBNYWNo
U2VuZFJpZ2h0IF9mZW5jZVNlbmRSaWdodCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KFtfY29udGV4
dCBjcmVhdGVGZW5jZVBvcnRdKTsKKyAgICAgICAgICAgIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS0+c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKFdlYkNvcmU6OkludFNpemUoc2VsZi52aWRlb0xh
eWVyRnJhbWUuc2l6ZSksIF9mZW5jZVNlbmRSaWdodCk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBbX3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNHQWZmaW5lVHJhbnNmb3JtSWRl
bnRpdHldOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisKKyAg
ICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitSZXRhaW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSwgTGF5ZXJIb3N0aW5nQ29u
dGV4dElEIGNvbnRleHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHksIGFsbCB0aGUgbGF5ZXJzIHdp
bGwgYmUgZW1wdHkgKGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgMCkgYW5kIGludmlzaWJsZS4K
KyAgICAvLyBUaGUgcmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNpemVzIG9mIFdLVmlkZW9MYXll
clJlbW90ZSB0byB0cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMgYW5kIG1ha2UgdGhlbSB2aXNp
YmxlLgorICAgIFdLVmlkZW9MYXllclJlbW90ZSAqdmlkZW9MYXllclJlbW90ZSA9IFtbV0tWaWRl
b0xheWVyUmVtb3RlIGFsbG9jXSBpbml0XTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDAsIDApXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW3ZpZGVvTGF5
ZXJSZW1vdGUgc2V0TmFtZTpAIldLVmlkZW9MYXllclJlbW90ZSJdOworI2VuZGlmCisKKyAgICBb
dmlkZW9MYXllclJlbW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6bWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlXTsKKworICAgIGF1dG8gdmlkZW9TdWJsYXllciA9IExheWVySG9zdGluZ0Nv
bnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQpOwor
ICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQo
KV07CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQo
KV07CisgICAgW3ZpZGVvU3VibGF5ZXIgc2V0RnJhbWU6dmlkZW9MYXllclJlbW90ZS5ib3VuZHNd
OworCisgICAgcmV0dXJuIHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391090</attachid>
            <date>2020-02-18 14:17:39 -0800</date>
            <delta_ts>2020-02-18 14:43:53 -0800</delta_ts>
            <desc>A simplified patch</desc>
            <filename>bug-206132-20200218141738.patch</filename>
            <type>text/plain</type>
            <size>50873</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU5YjdiYjMwMzZlNGY2
OTI5MGEwN2QyMzA5ZWE4ODIzZjI2OGFjZi4uZTlhZDQyNmYyOWVjNzQwMDg5NjdlYjlkZWE5MDI1
NjkwNjVhYWU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTE4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIG5h
bWUgKGZvciBkZWJ1Z2dpbmcpIG9mIHRoZSBDQUxheWVyIGNyZWF0ZWQgYnkgX3dlYl9yZW5kZXJM
YXllcldpdGhDb250ZXh0SUQgKFRoZSBDQUxheWVyIHdpbGwgbm90IGJlIG9ubHkgdXNlZCBhcyB2
aWRlbyBsYXllcnMpLgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdGhlIG9yZGVyaW5n
IGlzc3VlIHJlbGF0ZWQgdG8gVmlkZW9MYXllck1hbmFnZXJPYmpDLmggYW5kIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5tbSBpbiB0aGUgWGNvZGUgcHJvamVjdCBmaWxlLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tOgorICAgICAgICAoK1tDQUxheWVyIF93
ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEOl0pOgorCiAyMDIwLTAyLTE3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRGVmZXIgZXhlY3V0aW9uIG9mIGFzeW5j
IHNjcmlwdHMgdW50aWwgdW50aWwgdGhlIGRvY3VtZW50IGlzIGxvYWRlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKaW5kZXggOTEzZjMxOTFiNTVlNDJjYmYxZmRkOGY4NmE2OWI5NzE0NTQ0MmE1YS4uNGM0M2Q0
ZjhjMjMwMWQ4NTBkOTIzYjQ4NjU4MTEwODI4ZDhmZTVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjAtMDItMTggIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNv
bT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9w
ZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGlu
ZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0aGUgQ0FDb250ZXh0IGludGVyZmFjZSB0byBleHBv
c2UgY3VycmVudENvbnRleHQgZm9yIGV4dGVybmFsIGJ1aWxkcy4KKworICAgICAgICAqIHBhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oOgorCiAyMDIwLTAyLTE3ICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGNoZWNrLXdlYmtpdC1zdHlsZSBlcnJvcnMg
cmVsYXRlZCB0byBBVkZvdW5kYXRpb25TUEkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ODc1MDgyNGU5Njg5MTUy
ZGVhNzY2ZDcyYzg5ZTgyZmFlN2FkNjBiLi4zMTczNTgyZThkNTM0ZWMyNDJhYjMxYzkwNTQzM2U2
YTE3ZDVlOTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTAyLTE4ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNz
XSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBw
cm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgY3JlYXRlcyBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2hvc2Ugc3VibGF5ZXIgaXMgY3Jl
YXRlZCBieSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGlu
Z0NvbnRleHQoKS4KKyAgICAgICAgVGhlIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIGJlIHVzZWQg
YnkgdGhlIHJlbmRlcmVyIHRvIG1hbmFnZSB0aGUgdmlkZW8gZWxlbWVudCBpbiB0aGUgV2ViIHBy
b2Nlc3MuIFdoZW4gaXRzIHNpemUgaXMgY2hhbmdlZCBieSB0aGUgcmVuZGVyZXIsCisgICAgICAg
IGl0IGFwcGxpZXMgYSB0cmFuc2Zvcm0gd2l0aG91dCBjaGFuZ2luZyBpdHMgYWN0dWFsIHNpemUs
IGFuZCBzZW5kcyBhIG1lc3NhZ2UgdG8gTWVkaWFQbGF5ZXJQcml2YXRlUHJveHkgaW4gdGhlIEdQ
VSBwcm9jZXNzCisgICAgICAgIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyIGxh
eWVyLiBBZnRlciB0aGF0LCBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBzZXQgaXRzIHNpemUgdG8g
dGhlIGNvcnJlY3Qgb25lIGluIHRoZSBXZWIgcHJvY2VzcyBzaWRlLgorICAgICAgICBXZSBuZWVk
IHRvIHVzZSBhIE1hY2hTZW5kUmlnaHQgdG8gc3luY2hyb25pemUgdGhlIHRyYW5zYWN0aW9ucyBp
biB0aGUgV2ViIHByb2Nlc3MgYW5kIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICBXZSBoYXZl
IHRvIHVzZSBzdWNoIGEgcHJvY2VzcyB0byBjaGFuZ2UgdGhlIGFwcGVhcmFuY2Ugb2YgV0tWaWRl
b0xheWVyUmVtb3RlIGluIG9yZGVyIHRvIGd1YXJhbnRlZSB0aGUgc21vb3RobmVzcyB3aGVuIGEg
dXNlcgorICAgICAgICBjaGFuZ2UgdGhlIHNpemUgb2YgYSB2aWRlbyBlbGVtZW50LgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0Zy
YW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvSW5saW5l
U2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50
Q3VycmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9WaWRlb0xheWVyUmVtb3RlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgaW5pdF0pOgorICAgICAgICAoLVtXS1ZpZGVv
TGF5ZXJSZW1vdGUgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgbWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBz
ZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJl
bW90ZSB2aWRlb1N1YmxheWVyXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBzZXRW
aWRlb1N1YmxheWVyOl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgbGF5b3V0U3Vi
bGF5ZXJzXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSByZXNvbHZlQm91bmRzXSk6
CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUpOgorCiAyMDIwLTAyLTE3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRGVmZXIgZXhlY3V0
aW9uIG9mIGFzeW5jIHNjcmlwdHMgdW50aWwgdW50aWwgdGhlIGRvY3VtZW50IGlzIGxvYWRlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmlu
ZGV4IDBmOWVhZDdiYjk1MjgxYjllMjY0ODExOWRkZjVjZWVlNWY5NDgxMjEuLjUzM2Y3MGRkZjg1
YmQxZmJiZWNiMjY3NjU3NGI5NzA5ODVlM2ZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgX0NBUmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2Ug
Q0FDb250ZXh0ICgpCiArIChOU0FycmF5ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKilj
dXJyZW50Q29udGV4dDsKICsgKENBQ29udGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4
dCAqKXJlbW90ZUNvbnRleHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggM2JjZmRmNDQwNTE5MzBjYTlkMDQ5NTE2YzJkMGUwNGRhOGE1ODhl
Yy4uOWE1MjRmNDUxYmJiZjFiNzk2MWJlNzY0MTNjODY2YzQwZTAyYzg4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcg
KzYzMyw2IEBACiAJCTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBp
Y3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMURFRjA2Q0EyMzNDM0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQy
RjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZD
QzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUw
NjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUy
MjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5tbSAqLzsgfTsKIAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAy
MTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxRjM2RUE5QzFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2
RUE5QTFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODQsNiAr
MTU4Myw3IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1
N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0
NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUEx
QTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1
Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUy
Q0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDA4LDcgKzM0MDgsNiBAQAogCQlB
QTdGRUVBRDE2QTRFNzRCMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBN0ZFRUFDMTZBNEU3NEIwMDRD
MEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5oICovOyB9OwogCQlBQUE3MjhGNzE2RDFEOEJDMDBE
M0JCQzYgLyogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBQTcyOEYxMTZEMUQ4QkMwMEQzQkJD
NiAvKiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5oICovOyB9OwogCQlBQUMwOENG
MzE1Rjk0MUZEMDBGMUUxODggLyogQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBQzA4Q0YxMTVGOTQxRkMwMEYxRTE4
OCAvKiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oICovOyB9OwotCQlBQUQ5RDBCNTIxREZBODEwMDAx
QjExQzcgLyogTGF6eUxvYWRJbWFnZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUQ5RDBCMzIxREZBODBFMDAxQjExQzcgLyogTGF6eUxv
YWRJbWFnZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQUIyM0EzMjgwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRl
ZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
QjIzQTMyNjA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCAqLzsg
fTsKIAkJQUIyNDdBNkQwQUZENjM4MzAwM0ZBNUZEIC8qIFJlbmRlclNsaWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUIyNDdBNkIwQUZENjM4MzAw
M0ZBNUZEIC8qIFJlbmRlclNsaWRlci5oICovOyB9OwogCQlBQjMxQzkxRTEwQUUxQjhFMDAwQzdC
OTIgLyogTGluZUNsYW1wVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEFCMzFDOTFEMTBBRTFCOEUwMDBDN0I5MiAvKiBMaW5lQ2xhbXBWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NTEx
LDggKzY1MTAsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1
cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJC
NjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVP
YnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5h
dmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgw
RSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NDUwLDYgKzg0NDcsOCBAQAogCQk1MkIw
RDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdITFNMRGVm
YXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1h
bmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJ
CTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0ODg5MDBERTM0QTMgLyogVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05MTg0LDggKzkxODMsNiBAQAogCQk2NUZFQTg2ODA5ODMzQURF
MDBCRUQ0QUIgLyogUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY5NzEwMTA3MUM2QkUx
NTUwMDE4QzdGMSAvKiBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY5NzEwMTA4MUM2QkUxNTUwMDE4QzdGMSAvKiBBY2Nl
c3NpYmlsaXR5U1ZHRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
QUQ5RDBCMTIxREZBODBDMDAxQjExQzcgLyogTGF6eUxvYWRJbWFnZU9ic2VydmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhenlMb2FkSW1hZ2VPYnNlcnZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUFBRDlEMEIzMjFERkE4MEUwMDFCMTFD
NyAvKiBMYXp5TG9hZEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF6eUxvYWRJbWFnZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZBMjJFODZGMUYxMDQxODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZBMjJFODcyMUYxMDQyQzQwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkE3Mjc5ODgxRjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIyMjUsNiArMTIyMjIsOCBAQAog
CQlBQUNDODNENjIzMTY1NjlFMDBFQjZCRjUgLyogSFRNTE9yRm9yZWlnbkVsZW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEhUTUxPckZvcmVpZ25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQUFDQzgzRDcyMzE2NTc2QTAwRUI2QkY1IC8qIEpTSFRNTE9yRm9yZWlnbkVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNIVE1MT3JGb3JlaWduRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBQUNDODNEODIzMTY1NzZCMDBFQjZCRjUgLyogSlNIVE1MT3JGb3JlaWdu
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPckZvcmVpZ25FbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUFEOUQwQjEyMURGQTgwQzAwMUIxMUM3
IC8qIExhenlMb2FkSW1hZ2VPYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYXp5TG9hZEltYWdlT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBQUQ5RDBCMzIxREZBODBFMDAxQjExQzcgLyogTGF6eUxvYWRJbWFnZU9ic2Vy
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhenlMb2FkSW1hZ2VPYnNl
cnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUUyN0I3NDE2Q0JGQzBEMDA2
MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUUyN0I3NTE2Q0JGQzBEMDA2MjMwNDMg
LyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjY3MzQsOCArMjY3MzMsOCBAQAogCQkJCTdBMjlGNTcxMThDNjk1MTQwMDRE
MEY4MSAvKiBPdXRPZkJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8sCiAJCQkJQ0RDOEI1QTkx
ODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJ
Q0RDOEI1QTgxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1t
ICovLAotCQkJCTFEMzkyRjJBMjNGMjA5QjUwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9i
akMuaCAqLywKLQkJCQkxRDM5MkYyODIzRjIwOUI0MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tICovLAorCQkJCTUyRDVBMThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMuaCAqLywKKwkJCQk1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9M
YXllck1hbmFnZXJPYmpDLm1tICovLAogCQkJCUNEMzM2RjY1MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwICovLAogCQkJCUNEMzM2RjY2MTdGQTBBQzYwMERE
RENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDRDhCNUE0MTE4MEQx
NDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLywK
QEAgLTM0MjYyLDcgKzM0MjYxLDcgQEAKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyog
VXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Qzcz
RkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywKLQkJCQkxRDM5MkYyRDIzRjIw
QTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUJFODhFMERFMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMEUxMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRl
b1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERD
RDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5
ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJD
b3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2Y2ZmMjgzNjVjZjZjOGM4NzEzYjQy
ZTg1MDI5OGU5Li5mMTAyNzQ0OWZiZDhmOTI2MzZjMzU0NTQ2OWRjYWQ0Mzk0MjFiYzM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FM
YXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtODIsNyArODIsNyBAQAogewogICAgIENBTGF5
ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FMYXllckhvc3QgbGF5ZXJdOwogI2lmbmRlZiBOREVCVUcK
LSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJXZWJWaWRlb0hvc3RpbmdMYXllciJdOworICAgIFts
YXllckhvc3Qgc2V0TmFtZTpAIkhvc3RpbmcgbGF5ZXIiXTsKICNlbmRpZgogICAgIGxheWVySG9z
dC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7CiAgICAgcmV0dXJuIGxheWVySG9zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcAppbmRleCBkOWUzYmQzNzI3MmM2MjcxYzFiYzg5YWUyYjdmMzI3ZWMyZWEyY2JhLi45
MGQ4YWRmNDc3NjY3MzNiNTMxNmU0N2VjMGFlYWM0MDhjMTQ1YzQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVk
ZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkxheWVySG9zdGluZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmgiCkBAIC0xMDYsMTMgKzEwNywxMiBAQCB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OmxvYWQoVVJMJiYgdXJsLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+JgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29uZmlndXJhdGlvbikp
OwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxv
YWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgTGF5b3V0
UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlBy
ZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVy
aW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9k
ZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7CiAgICAgbV9wbGF5ZXItPnNl
dFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNoKTsKICAgICBtX3BsYXllci0+cHJlcGFyZUZv
clJlbmRlcmluZygpOwotICAgIG1fdmlkZW9Db250ZW50Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAg
ICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIG1fbGF5ZXJI
b3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9z
dGluZ1Byb2Nlc3MoKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihtX2xheWVySG9zdGluZ0NvbnRl
eHQtPmNvbnRleHRJRCgpKTsKQEAgLTQ2OCw2ICs0NjgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAg
IC8vIEluaXRpYWxseSB0aGUgc2l6ZSBvZiB0aGUgcGxhdGZvcm1MYXllciB3aWxsIGJlIDB4MCBi
ZWNhdXNlIHdlIGRvIG5vdCBwcm92aWRlIG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBpbiB0
aGlzIGNsYXNzLgogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1fcGxh
eWVyLT5wbGF0Zm9ybUxheWVyKCkpOwogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Rmlyc3RWaWRlb0ZyYW1lQXZhaWxh
YmxlKCksIG1faWQpOwogfQpAQCAtNTQ2LDExICs1NDcsNiBAQCBib29sIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLUxheW91dFJlY3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVk
aWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlkZW9Db250
ZW50Qm94UmVjdDsKLX0KLQogZmxvYXQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJDb250ZW50c1NjYWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV92aWRlb0NvbnRlbnRTY2Fs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oCmluZGV4IGIyMjYzMGZkYWRiZjQ3M2Y3ZGJhOTdhMzNmYmYyYzUzZGJi
MTA3ODkuLjE2YmIyZGRmYTIxNDc0NzBlODYwMGFiNzEzOTZhNTljZGY1NDQ5ZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuaApAQCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJp
Z2h0OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsK
IGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYsNyArODAsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7
CiAKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHBy
ZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVu
dFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRl
eHRJRD4mJik+JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4m
Jik7CiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAKICAgICB2b2lkIGxvYWQoVVJM
JiYsIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6
Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKT4mJik7CkBAIC0xMDksNiArMTEzLDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSk7
CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNl
ZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBz
ZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsKICAgICB2b2lkIHNldFNob3Vs
ZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpOwpAQCAtMTc4LDcgKzE4Niw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwotICAgIFdlYkNvcmU6OkxheW91
dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0
IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQ
bGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhmODYxNWE0ZjVmYzQyZGNkOTVl
ZjY1NDQ2MTRjZjE5YWEzYWQ3YzIuLmNhNjYzMTRkZmJlNmQzMWJlMDk5NTJjNWYyODJmMTA2MThm
ZWJlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3
IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBs
YXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9h
ZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcs
IFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUp
IC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJIb3N0aW5n
Q29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2Fk
LCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZp
ZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0
SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVybCwgT3B0
aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRlbnNpb24s
IFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVtKSAtPiAo
c3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZp
Z3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01Nyw2ICs1NywxMCBAQCBtZXNz
YWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFZpZGVv
VHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgdHJh
Y2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNYWNoU2Vu
ZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMgUGFpbnQKICAgICAjIFBhaW50
Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYgQEAgbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0aW9uV2ls
bFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQotCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29h
L1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2FlNTMzZTBkNTUwODY4OWU4YTgyYTJkNTU0ODFmYzFmOGI4NjQ0MgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Q29jb2EubW0KQEAgLTAsMCArMSw0OSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJlbW90
ZU1lZGlhUGxheWVyUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZP
Uk0oQ09DT0EpCisKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbXBvcnQgPFF1
YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW1w
b3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBtYWNoU2VuZFJp
Z2h0KQoreworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KG1hY2hTZW5k
UmlnaHQuc2VuZFJpZ2h0KCkpOworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFttX2xheWVySG9zdGluZ0Nv
bnRleHQtPnJvb3RMYXllcigpIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpKV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGUxZmM2ZjczNzJiMTYwM2U1
ZGQyNWViMGE0YTYwMWM2YzliZTIzZWEuLjAwNzQ3ZjNiMzRlMGEyZWNkZTZkNTNjOWE4ZTYyOGE0
MjMyOGE4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3LDEwICs1NywxMSBAQCBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyLmNwcAogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENTb2NrZXQuY3BwCiAKK0dQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNz
SU9TLm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCitHUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQogR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KLUdQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFBsYXRmb3JtL2NmL01vZHVsZUNGLmNw
cAogCkBAIC01NTQsNiArNTU1LDggQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNl
cnZpY2VFbnRyeVBvaW50Lm1tCiAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMv
V0tCdW5kbGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMjM3YmRlNDg3NWE3MzBl
NjI4ZDUyYjhkNDc2NDc0ZTFlOGMyMmEzZC4uZGVmNzg5MjM1MTYzNGQ5ODNlMGQxNWJkNTkzZmU1
YTI5MjE4ZDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBw
cml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9Owog
ICAgIEhhc2hNYXA8dWludDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YTQ1
M2ZlM2Y3OTA0YzRlMTJjOWRiMTliYjkyNWFmYmNlNjNmODdjLi5hNDg4MWMxOTE3OWM2YTUyMWI5
NzM1ODQ2YzBlYmJiNWZlZTNkY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NzksNiArMjY3OSw3IEBACiAJCTFDQThCOTQ0MTI3
Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdE
ODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlGMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5NSw2ICsyNjk2LDEwIEBACiAJCTFE
QkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBE
RjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyog
VmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
REZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRUcmFja1By
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
MDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyog
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTI1MCw2ICs1MjU1LDcgQEAKIAkJMDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlh
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxREFGNUE0
RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgw
RDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU3NzIzQzkz
QkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkwNzkyMzEz
MTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKQEAg
LTUyNjcsNiArNTI3Myw4IEBACiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJCTA3RTE5RjA4MjNENTMzQjkwMDk0RkZCNCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwN0UxOUYwOTIzRDUzM0JBMDA5
NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTFERkREMEUzMjNGNjEw
RkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLAorCQkJ
CTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8sCiAJCQkJ
MDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAq
LywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaCAqLywKIAkJCSk7CkBAIC01Mjc2LDYgKzUyODQsNyBAQAogCQkwN0M3NUMxNzIzOTlBM0RC
MDA4OEU2NUIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKIAkJCQkwNzFC
QzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJ
CQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8s
CiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcCAqLywKQEAgLTYxNDUsNiArNjE1NCwyMyBAQAogCQkJcGF0aCA9IEF1dG9tYXRp
b247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxRDBFQ0VBOTIzRkM4NEJC
MDBEMTcyRjYgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxREZERDBFMDIz
RjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8sCisJCQkJMURGREQw
REYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLywKKwkJCSk7
CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkx
RjAxODE2ODE4NThEQzE1MDBGOTI4ODQgLyogQ29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlk
YzBlYmI2MDY2NDg5N2Y4MmRiN2UwNTE4MDhmMGU0ODlkYzUyNzkuLjZkMmFiMjEwOGJiYmZjYWEy
MTkwNDY1MTBiZTUwODFjMzMxMGE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRl
ICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTQyLDYgKzQzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
VGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01h
Y2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTkwLDE3ICs5
MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNr
KGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAgICBhdXRvIGxheW91dFJlY3QgPSBtX3Bs
YXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAgICBhdXRvIHNjYWxlID0gbV9wbGF5ZXIt
PnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFj
ayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIGxheW91dFJl
Y3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGNv
bnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZh
dGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgc2NhbGUpLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4dElkKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBp
ZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3ZpZGVvTGF5
ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0Nv
bnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBj
cmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRleHRJZC52YWx1ZSgpKTsKICAgICB9LCBt
X2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJhbFNpemUpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogewor
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIq
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVy
LmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKQEAgLTY3MSwxNCArNjczLDIxIEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMo
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IElu
dFNpemUmIHNpemUsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKK3sK
KyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
U2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKHNpemUsIG1hY2hTZW5kUmlnaHQpLCBtX2lkKTsKK30K
KyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwgc28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0
eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRo
aXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xl
bnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4
IDdmNzM5MDQxOTM3ZTExZjRhZDAyNWExODMwZTVjZjNjODk1MDBkYTguLmNjMDM0Nzc3YmI5ZjQw
MDVhMzUwYTU1N2QyNjI1MjMzNGJiNTMzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApA
QCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0Owor
fQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2
ICs5MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhh
c0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxv
YWRUeXBlKTsKICAgICB2b2lkIHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAg
dm9pZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Y29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3Rl
QXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29j
b2EgV2ViS2l0IHBvcnQsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNp
emUoKSBkb2VzIG5vdGhpbmcsCi0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5l
ZWQgdG8gc2VuZCBJUEMgbWVzc2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0g
ICAgLy8gT3RoZXIgV2ViS2l0IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBz
ZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFp
bnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7Ci0KICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJv
b2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xl
bnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0
OCw3ICszNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxh
eWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVv
SW5saW5lTGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VmlkZW9MYXllclJlbW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNDkwNmYyMWIwZDZlNGNjOTBhYmZkZTUw
NzkyM2UzZjA2YzhhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JN
KENPQ09BKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXll
cj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqLCBMYXll
ckhvc3RpbmdDb250ZXh0SUQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzU4MTA4YTY0MjdiMDMz
NGY0ZTNjZTBmOTkwMGVkOGYwMTUwN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRlb0xheWVyUmVtb3RlIDogQ0FMYXll
cgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Q0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxZjQ2YjY5M2M4YWYzZWU4NmYzY2IxOGRmY2Uz
NmZmNjQyZDYzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJl
bW90ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09B
KQorCisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2lt
cG9ydCA8d3RmL1dlYWtQdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFdLVmlkZW9MYXllclJlbW90
ZSB7CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gX21lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTsKKyAgICBDQUxheWVyKiBfdmlkZW9TdWJsYXllcjsKKyAgICBD
QUNvbnRleHQqIF9jb250ZXh0OworICAgIGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdSZXNvbHZl
Qm91bmRzQmxvY2s7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikgeworICAgICAgICBzZWxmLm1hc2tzVG9Cb3VuZHMg
PSBZRVM7CisgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gbmlsOworICAgIH0K
KworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoX3Bl
bmRpbmdSZXNvbHZlQm91bmRzQmxvY2spCisgICAgICAgIGRpc3BhdGNoX2Jsb2NrX2NhbmNlbChf
cGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCist
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdldCgpOworfQor
CistICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBfbWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSk7Cit9CisKKy0gKENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgcmV0dXJuIF92aWRl
b1N1YmxheWVyOworfQorCistICh2b2lkKXNldFZpZGVvU3VibGF5ZXI6KENBTGF5ZXIgKil2aWRl
b1N1YmxheWVyCit7CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVyOworfQorCist
ICh2b2lkKWxheW91dFN1YmxheWVycworeworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJs
YXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0
IHNvdXJjZVZpZGVvRnJhbWUgPSBzZWxmLnZpZGVvTGF5ZXJGcmFtZTsKKyAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgdGFyZ2V0VmlkZW9GcmFtZSA9IHNlbGYuYm91bmRzOworICAgIENHQWZmaW5lVHJh
bnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHRhcmdldFZpZGVv
RnJhbWUud2lkdGgoKSAvIHNvdXJjZVZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0VmlkZW9GcmFt
ZS5oZWlnaHQoKSAvIHNvdXJjZVZpZGVvRnJhbWUuaGVpZ2h0KCkpOworCisgICAgW0NBVHJhbnNh
Y3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107
CisgICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1p
ZFgoc2VsZi5ib3VuZHMpLCBDR1JlY3RHZXRNaWRZKHNlbGYuYm91bmRzKSldOworICAgIFtfdmlk
ZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBjb21taXRdOworCisgICAgX2NvbnRleHQgPSBbQ0FDb250ZXh0IGN1cnJlbnRDb250ZXh0
XTsKKyAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtDQVRyYW5zYWN0aW9u
IGFuaW1hdGlvbkR1cmF0aW9uXTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBeeworICAgICAgICBpZiAoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2spCisg
ICAgICAgICAgICBkaXNwYXRjaF9ibG9ja19jYW5jZWwoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxv
Y2spOworCisgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gZGlzcGF0Y2hfYmxv
Y2tfY3JlYXRlKChkaXNwYXRjaF9ibG9ja19mbGFnc190KTAsIF57CisgICAgICAgICAgICBfcGVu
ZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IG5pbDsKKyAgICAgICAgICAgIFtzZWxmIHJlc29sdmVC
b3VuZHNdOworICAgICAgICB9KTsKKyAgICAgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGlt
ZShESVNQQVRDSF9USU1FX05PVywgKGFuaW1hdGlvbkR1cmF0aW9uICsgMC4xKSAqIE5TRUNfUEVS
X1NFQyksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Js
b2NrKTsKKyAgICB9KTsKK30KKworLSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKFtf
dmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRz
KSAmJiBDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQor
ICAgICAgICByZXR1cm47CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJh
bnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxU
b1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxm
LnZpZGVvTGF5ZXJGcmFtZSA9IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAg
ICAgICAgICAgIE1hY2hTZW5kUmlnaHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6
YWRvcHQoW19jb250ZXh0IGNyZWF0ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLT5zZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6
ZShzZWxmLnZpZGVvTGF5ZXJGcmFtZS5zaXplKSwgX2ZlbmNlU2VuZFJpZ2h0KTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06Q0dBZmZp
bmVUcmFuc2Zvcm1JZGVudGl0eV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEZyYW1lOnNlbGYu
Ym91bmRzXTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK0BlbmQKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVyUmVt
b3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLCBM
YXllckhvc3RpbmdDb250ZXh0SUQgY29udGV4dElkKQoreworICAgIC8vIEluaXRpYWxseSwgYWxs
IHRoZSBsYXllcnMgd2lsbCBiZSBlbXB0eSAoYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwKSBh
bmQgaW52aXNpYmxlLgorICAgIC8vIFRoZSByZW5kZXJlciB3aWxsIGNoYW5nZSB0aGUgc2l6ZXMg
b2YgV0tWaWRlb0xheWVyUmVtb3RlIHRvIHRyaWdnZXIgbGF5b3V0IG9mIHN1YmxheWVycyBhbmQg
bWFrZSB0aGVtIHZpc2libGUuCisgICAgV0tWaWRlb0xheWVyUmVtb3RlICp2aWRlb0xheWVyUmVt
b3RlID0gW1tXS1ZpZGVvTGF5ZXJSZW1vdGUgYWxsb2NdIGluaXRdOworICAgIFt2aWRlb0xheWVy
UmVtb3RlIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMCwgMCldOworI2lmbmRlZiBOREVCVUcK
KyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXROYW1lOkAiV0tWaWRlb0xheWVyUmVtb3RlIl07Cisj
ZW5kaWYKKworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTptZWRpYVBsYXllclByaXZhdGVSZW1vdGVdOworCisgICAgYXV0byB2aWRlb1N1YmxheWVyID0g
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0
KGNvbnRleHRJZCk7CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjp2aWRl
b1N1YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBhZGRTdWJsYXllcjp2aWRl
b1N1YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFtZTp2aWRlb0xheWVy
UmVtb3RlLmJvdW5kc107CisKKyAgICByZXR1cm4gdmlkZW9MYXllclJlbW90ZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391094</attachid>
            <date>2020-02-18 14:43:55 -0800</date>
            <delta_ts>2020-02-18 15:26:00 -0800</delta_ts>
            <desc>Rebased patch (with a simplified implementation)</desc>
            <filename>bug-206132-20200218144354.patch</filename>
            <type>text/plain</type>
            <size>47567</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4ZDRmMDc1NDBlMmZj
MjU0MDdiYTdmODI4YzAzZDM4ZTJjZGRkMy4uMGNjZTEwZjZmZTU3YTI3ZmIyMDhiMzU3MzI0YWNk
ODhiMjE2OTdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTE4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIG5h
bWUgKGZvciBkZWJ1Z2dpbmcpIG9mIHRoZSBDQUxheWVyIGNyZWF0ZWQgYnkgX3dlYl9yZW5kZXJM
YXllcldpdGhDb250ZXh0SUQgKFRoZSBDQUxheWVyIHdpbGwgbm90IGJlIG9ubHkgdXNlZCBhcyB2
aWRlbyBsYXllcnMpLgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdGhlIG9yZGVyaW5n
IGlzc3VlIHJlbGF0ZWQgdG8gVmlkZW9MYXllck1hbmFnZXJPYmpDLmggYW5kIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5tbSBpbiB0aGUgWGNvZGUgcHJvamVjdCBmaWxlLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tOgorICAgICAgICAoK1tDQUxheWVyIF93
ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEOl0pOgorCiAyMDIwLTAyLTE4ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIERvbid0IGZpcmUgdGlt
ZXJzIHdoZW4gdGhlcmUgaXMgYSBwZW5kaW5nIHJlbmRlcmluZyB1cGRhdGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCmluZGV4IDU5YzdmNzYxYWViY2ZiZGM1NzMxNzBiMzVlYTlkM2Y2ZjNhOTJlZTguLjZkZDY4
YjliODFlMDNmZmZjMTljNDU1YzEwNDdjMzU5N2Q1MTUyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJv
cGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3Rp
bmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhw
b3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5hbCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwogMjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2Vi
UHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQgc3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tp
ZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjYzA2MmZhMzgyZWJhNzUxOWU0NGY2NGY5NGYy
MzBlYzI3MTMyMzQuLmRiZDY1NzQyY2Q3YWFiMzAxYjgyOTM1YTc3MGMyM2E1ZGIyMDQzNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDItMTggIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXpl
IHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0
aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjcmVh
dGVzIFdLVmlkZW9MYXllclJlbW90ZSB3aG9zZSBzdWJsYXllciBpcyBjcmVhdGVkIGJ5IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgpLgor
ICAgICAgICBUaGUgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVy
ZXIgdG8gbWFuYWdlIHRoZSB2aWRlbyBlbGVtZW50IGluIHRoZSBXZWIgcHJvY2Vzcy4gV2hlbiBp
dHMgc2l6ZSBpcyBjaGFuZ2VkIGJ5IHRoZSByZW5kZXJlciwKKyAgICAgICAgaXQgYXBwbGllcyBh
IHRyYW5zZm9ybSB3aXRob3V0IGNoYW5naW5nIGl0cyBhY3R1YWwgc2l6ZSwgYW5kIHNlbmRzIGEg
bWVzc2FnZSB0byBNZWRpYVBsYXllclByaXZhdGVQcm94eSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAg
ICAgICAgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIgbGF5ZXIuIEFmdGVyIHRo
YXQsIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIHNldCBpdHMgc2l6ZSB0byB0aGUgY29ycmVjdCBv
bmUgaW4gdGhlIFdlYiBwcm9jZXNzIHNpZGUuCisgICAgICAgIFdlIG5lZWQgdG8gdXNlIGEgTWFj
aFNlbmRSaWdodCB0byBzeW5jaHJvbml6ZSB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBXZWIgcHJv
Y2VzcyBhbmQgdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFdlIGhhdmUgdG8gdXNlIHN1Y2gg
YSBwcm9jZXNzIHRvIGNoYW5nZSB0aGUgYXBwZWFyYW5jZSBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUg
aW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoZSBzbW9vdGhuZXNzIHdoZW4gYSB1c2VyCisgICAgICAg
IGNoYW5nZSB0aGUgc2l6ZSBvZiBhIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGlu
ZVNpemVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
cmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJS
ZW1vdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlk
ZW9MYXllclJlbW90ZUNvY29hLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTogQWRkZWQuCisgICAgICAgICgtW1dL
VmlkZW9MYXllclJlbW90ZSBpbml0XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBk
ZWFsbG9jXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBtZWRpYVBsYXllclByaXZh
dGVSZW1vdGVdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHZpZGVvU3Vi
bGF5ZXJdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6
XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBsYXlvdXRTdWJsYXllcnNdKToKKyAg
ICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHJlc29sdmVCb3VuZHNdKToKKyAgICAgICAgKFdl
YktpdDo6Y3JlYXRlVmlkZW9MYXllclJlbW90ZSk6CisKIDIwMjAtMDItMTggIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gRG9uJ3QgZmlyZSB0aW1l
cnMgd2hlbiB0aGVyZSBpcyBhIHBlbmRpbmcgcmVuZGVyaW5nIHVwZGF0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDBmOWVhZDdi
Yjk1MjgxYjllMjY0ODExOWRkZjVjZWVlNWY5NDgxMjEuLjUzM2Y3MGRkZjg1YmQxZmJiZWNiMjY3
NjU3NGI5NzA5ODVlM2ZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NB
UmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0ICgp
CiArIChOU0FycmF5ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50Q29udGV4
dDsKICsgKENBQ29udGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNv
bnRleHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZjIwZDUyZjVmMjkwMzU4NWU0ZjhmYmU4ODk5YTYwYjI0NDE5N2U3Yy4uZTYwZTFhZDA3
NjkwMjY1ZDIxZWQ0Y2EzNmRkNWM0MWUxMTIyZDBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJ
CTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0Ey
MzNDM0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUx
RDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBF
RTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5
OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsg
fTsKIAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3
ODBFIC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5
QzFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3
MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODQsNiArMTU4Myw3IEBACiAJ
CTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1
MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBE
NEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFD
NTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAw
REUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3
MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC02NTExLDggKzY1MTEsNiBAQAogCQkxRDAwMjZBODIzNzRG
OUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBK
U0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUlu
UGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdl
ck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAw
QjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURD
NTUzRkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04NDUwLDYgKzg0NDgsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9G
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIy
MkZEREIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
SExTTERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUEx
OEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1
QTFBNTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjczOSw4ICsy
NjczOSw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRU
cmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0Yy
MDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4
MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJE
NUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJ
CTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8s
CiAJCQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2Jq
Qy5jcHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMjk2NzAsNiArMjk2NzAsNyBA
QAogCQkJCUE4MTg1RjQwMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTgxODVGM0QwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEOTJGNTEzMjI2MEZGRUUwMEY4N0JCMyAvKiBEb2N1bWVudEZ1
bGxzY3JlZW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODI2QkYyMjNGQjU5NzcwMEI5MjJCMSAv
KiBEb2N1bWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzM2MEFEQkE1
REUwMEE0NTU0RCAvKiBEb2N1bWVudExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUQyQkE4
M0MwOUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTA1N0ZBNjEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMwNTQwLDcgKzMwNTQxLDYgQEAKIAkJCQk5NDc5NDkzODFFMDQ1
OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTQ3OTQ5M0ExRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE2NjEyMEE1RDNGMDBEQzAyQTAgLyogSlNEZXZp
Y2VNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4MjZCRjIyM0ZCNTk3NzAwQjky
MkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODYwMDgx
MTlEQUZBMTAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjU5RERDODMwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUFEREE5NEMyMTk2ODdBQTUwMDQ1MzAyOSAvKiBKU0RvY3VtZW50Q3VzdG9t
LmggaW4gSGVhZGVycyAqLywKQEAgLTM0MjY3LDcgKzM0MjY3LDcgQEAKIAkJCQk3Q0U2ODM0NDE5
MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4MTU2MDA0
NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywK
LQkJCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMERFMTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMEUxMTcxNUQy
QTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDMz
NkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2Y2Zm
MjgzNjVjZjZjOGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAyNzQ0OWZiZDhmOTI2MzZjMzU0NTQ2OWRj
YWQ0Mzk0MjFiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtODIsNyArODIs
NyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FMYXllckhvc3QgbGF5ZXJd
OwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJXZWJWaWRlb0hvc3Rp
bmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIkhvc3RpbmcgbGF5ZXIiXTsKICNl
bmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7CiAgICAgcmV0dXJuIGxh
eWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3MmM2MjcxYzFiYzg5YWUy
YjdmMzI3ZWMyZWEyY2JhLi45MGQ4YWRmNDc3NjY3MzNiNTMxNmU0N2VjMGFlYWM0MDhjMTQ1YzQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCkBAIC0xMDYsMTMgKzEwNywx
MiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQoVVJMJiYgdXJsLCBPcHRpb25h
bDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnBy
ZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZv
clJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2Fs
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+
JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9v
bCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElk
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dz
aW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7
CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNoKTsKICAgICBt
X3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1fdmlkZW9Db250ZW50Qm94UmVj
dCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNj
YWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNy
ZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBjb21wbGV0aW9uSGFuZGxlciht
X2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAgLTQ2OCw2ICs0NjgsNyBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiAK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVB
dmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUgc2l6ZSBvZiB0aGUgcGxhdGZvcm1M
YXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBwcm92aWRlIG1lZGlhUGxheWVyQ29u
dGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+
c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwogICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Rmly
c3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpAQCAtNTQ2LDExICs1NDcsNiBAQCBi
b29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0
dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxheW91dFJlY3QgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fdmlkZW9Db250ZW50Qm94UmVjdDsKLX0KLQogZmxvYXQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV92aWRlb0NvbnRlbnRTY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IGIyMjYzMGZkYWRiZjQ3M2Y3
ZGJhOTdhMzNmYmYyYzUzZGJiMTA3ODkuLjE2YmIyZGRmYTIxNDc0NzBlODYwMGFiNzEzOTZhNTlj
ZGY1NDQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7
CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYsNyArODAs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uJik7CiAKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3Qs
IGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXli
YWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQs
IGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlk
ZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiYmKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAK
ICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4m
JiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKT4mJik7CkBAIC0x
MDksNiArMTEzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1Nl
dE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZTo6TW9kZSk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZp
ZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpN
YWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpOwpAQCAtMTc4LDcg
KzE4Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwot
ICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0
IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5
ZXJQbGF5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhm
ODYxNWE0ZjVmYzQyZGNkOTVlZjY1NDQ2MTRjZjE5YWEzYWQ3YzIuLmNhNjYzMTRkZmJlNmQzMWJl
MDk5NTJjNWYyODJmMTA2MThmZWJlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdl
cyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVG
b3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHBy
ZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQg
dmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRl
eHRJRD4gbGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JS
ZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpM
YXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAg
IExvYWQoVVJMIHVybCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IHNhbmRib3hFeHRlbnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJp
bmcga2V5U3lzdGVtKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01
Nyw2ICs1NywxMCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNv
dW50ZWQgewogICAgIFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1v
ZGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50
U2l6ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMg
UGFpbnQKICAgICAjIFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYg
QEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAog
ICAgIEFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmUoKQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29j
b2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzVmYzVkYmEwN2RhNjcyOTNkYzlmODgwMTkyNTc1MTQ3YTJhYjkx
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTAsMCArMSw1MCBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRl
eHQuaCIKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9JbnRTaXplLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV1RGOjpNYWNoU2Vu
ZFJpZ2h0JiBtYWNoU2VuZFJpZ2h0KQoreworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0
RmVuY2VQb3J0KG1hY2hTZW5kUmlnaHQuc2VuZFJpZ2h0KCkpOworICAgIC8vIFdlIGRvIG5vdCB3
YW50IGFuaW1hdGlvbnMgaGVyZQorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFttX2xheWVySG9zdGluZ0Nv
bnRleHQtPnJvb3RMYXllcigpIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpKV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQyNGE4MDQ4ZTM0NTA0NjM0
MjdjOTMwNDMyZWY5MDAzOTc1MTFjMGMuLmRhMjNiMGU1ZDMwY2M1NDY5ZWU0ZDcwOWUxZmE4YWQx
M2RjODA2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3LDEwICs1NywxMSBAQCBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyLmNwcAogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENTb2NrZXQuY3BwCiAKK0dQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNz
SU9TLm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCitHUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQogR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KLUdQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFBsYXRmb3JtL2NmL01vZHVsZUNGLmNw
cAogCkBAIC01NTQsNiArNTU1LDggQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNl
cnZpY2VFbnRyeVBvaW50Lm1tCiAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMv
V0tCdW5kbGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMjM3YmRlNDg3NWE3MzBl
NjI4ZDUyYjhkNDc2NDc0ZTFlOGMyMmEzZC4uZGVmNzg5MjM1MTYzNGQ5ODNlMGQxNWJkNTkzZmU1
YTI5MjE4ZDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBw
cml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9Owog
ICAgIEhhc2hNYXA8dWludDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzAw
MGJmNzAwN2JhNjljNGU3MTk1NmIyN2U0ZTAzNmEzZDYyYWUxLi41OTdhMzMwYTdmMjJjMDE4Y2Rh
ZTQwZjkyZDE4OWNlNDFlZjI3Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2ODAsNiArMjY4MCw3IEBACiAJCTFDQThCOTQ0MTI3
Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdE
ODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlGMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5Niw2ICsyNjk3LDEwIEBACiAJCTFE
QkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBE
RjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyog
VmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
REZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRUcmFja1By
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
MDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyog
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTI1NCw2ICs1MjU5LDcgQEAKIAkJMDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlh
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxREFGNUE0
RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgw
RDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU3NzIzQzkz
QkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkwNzkyMzEz
MTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKQEAg
LTUyNzEsNiArNTI3Nyw4IEBACiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJCTA3RTE5RjA4MjNENTMzQjkwMDk0RkZCNCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwN0UxOUYwOTIzRDUzM0JBMDA5
NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTFERkREMEUzMjNGNjEw
RkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLAorCQkJ
CTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8sCiAJCQkJ
MDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAq
LywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaCAqLywKIAkJCSk7CkBAIC01MjgwLDYgKzUyODgsNyBAQAogCQkwN0M3NUMxNzIzOTlBM0RC
MDA4OEU2NUIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKIAkJCQkwNzFC
QzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJ
CQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8s
CiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcCAqLywKQEAgLTYxNDksNiArNjE1OCwyMyBAQAogCQkJcGF0aCA9IEF1dG9tYXRp
b247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxRDBFQ0VBOTIzRkM4NEJC
MDBEMTcyRjYgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxREZERDBFMDIz
RjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8sCisJCQkJMURGREQw
REYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLywKKwkJCSk7
CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkx
RjAxODE2ODE4NThEQzE1MDBGOTI4ODQgLyogQ29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlk
YzBlYmI2MDY2NDg5N2Y4MmRiN2UwNTE4MDhmMGU0ODlkYzUyNzkuLjZkMmFiMjEwOGJiYmZjYWEy
MTkwNDY1MTBiZTUwODFjMzMxMGE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRl
ICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTQyLDYgKzQzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
VGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01h
Y2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTkwLDE3ICs5
MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNr
KGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAgICBhdXRvIGxheW91dFJlY3QgPSBtX3Bs
YXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAgICBhdXRvIHNjYWxlID0gbV9wbGF5ZXIt
PnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFj
ayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIGxheW91dFJl
Y3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGNv
bnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZh
dGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgc2NhbGUpLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4dElkKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBp
ZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3ZpZGVvTGF5
ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0Nv
bnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBj
cmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRleHRJZC52YWx1ZSgpKTsKICAgICB9LCBt
X2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJhbFNpemUpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogewor
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIq
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVy
LmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKQEAgLTY3MSwxNCArNjczLDIxIEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMo
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IElu
dFNpemUmIHNpemUsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKK3sK
KyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
U2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKHNpemUsIG1hY2hTZW5kUmlnaHQpLCBtX2lkKTsKK30K
KyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwgc28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0
eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRo
aXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xl
bnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4
IDdmNzM5MDQxOTM3ZTExZjRhZDAyNWExODMwZTVjZjNjODk1MDBkYTguLmNjMDM0Nzc3YmI5ZjQw
MDVhMzUwYTU1N2QyNjI1MjMzNGJiNTMzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApA
QCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0Owor
fQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2
ICs5MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhh
c0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxv
YWRUeXBlKTsKICAgICB2b2lkIHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAg
dm9pZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Y29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3Rl
QXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29j
b2EgV2ViS2l0IHBvcnQsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNp
emUoKSBkb2VzIG5vdGhpbmcsCi0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5l
ZWQgdG8gc2VuZCBJUEMgbWVzc2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0g
ICAgLy8gT3RoZXIgV2ViS2l0IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBz
ZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFp
bnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7Ci0KICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJv
b2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xl
bnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0
OCw3ICszNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxh
eWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVv
SW5saW5lTGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VmlkZW9MYXllclJlbW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNDkwNmYyMWIwZDZlNGNjOTBhYmZkZTUw
NzkyM2UzZjA2YzhhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JN
KENPQ09BKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXll
cj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqLCBMYXll
ckhvc3RpbmdDb250ZXh0SUQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzU4MTA4YTY0MjdiMDMz
NGY0ZTNjZTBmOTkwMGVkOGYwMTUwN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRlb0xheWVyUmVtb3RlIDogQ0FMYXll
cgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Q0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxZjQ2YjY5M2M4YWYzZWU4NmYzY2IxOGRmY2Uz
NmZmNjQyZDYzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJl
bW90ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09B
KQorCisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2lt
cG9ydCA8d3RmL1dlYWtQdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFdLVmlkZW9MYXllclJlbW90
ZSB7CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gX21lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTsKKyAgICBDQUxheWVyKiBfdmlkZW9TdWJsYXllcjsKKyAgICBD
QUNvbnRleHQqIF9jb250ZXh0OworICAgIGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdSZXNvbHZl
Qm91bmRzQmxvY2s7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikgeworICAgICAgICBzZWxmLm1hc2tzVG9Cb3VuZHMg
PSBZRVM7CisgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gbmlsOworICAgIH0K
KworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoX3Bl
bmRpbmdSZXNvbHZlQm91bmRzQmxvY2spCisgICAgICAgIGRpc3BhdGNoX2Jsb2NrX2NhbmNlbChf
cGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCist
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdldCgpOworfQor
CistICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBfbWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSk7Cit9CisKKy0gKENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgcmV0dXJuIF92aWRl
b1N1YmxheWVyOworfQorCistICh2b2lkKXNldFZpZGVvU3VibGF5ZXI6KENBTGF5ZXIgKil2aWRl
b1N1YmxheWVyCit7CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVyOworfQorCist
ICh2b2lkKWxheW91dFN1YmxheWVycworeworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJs
YXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0
IHNvdXJjZVZpZGVvRnJhbWUgPSBzZWxmLnZpZGVvTGF5ZXJGcmFtZTsKKyAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgdGFyZ2V0VmlkZW9GcmFtZSA9IHNlbGYuYm91bmRzOworICAgIENHQWZmaW5lVHJh
bnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHRhcmdldFZpZGVv
RnJhbWUud2lkdGgoKSAvIHNvdXJjZVZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0VmlkZW9GcmFt
ZS5oZWlnaHQoKSAvIHNvdXJjZVZpZGVvRnJhbWUuaGVpZ2h0KCkpOworCisgICAgW0NBVHJhbnNh
Y3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107
CisgICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1p
ZFgoc2VsZi5ib3VuZHMpLCBDR1JlY3RHZXRNaWRZKHNlbGYuYm91bmRzKSldOworICAgIFtfdmlk
ZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBjb21taXRdOworCisgICAgX2NvbnRleHQgPSBbQ0FDb250ZXh0IGN1cnJlbnRDb250ZXh0
XTsKKyAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtDQVRyYW5zYWN0aW9u
IGFuaW1hdGlvbkR1cmF0aW9uXTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBeeworICAgICAgICBpZiAoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2spCisg
ICAgICAgICAgICBkaXNwYXRjaF9ibG9ja19jYW5jZWwoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxv
Y2spOworCisgICAgICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gZGlzcGF0Y2hfYmxv
Y2tfY3JlYXRlKChkaXNwYXRjaF9ibG9ja19mbGFnc190KTAsIF57CisgICAgICAgICAgICBfcGVu
ZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IG5pbDsKKyAgICAgICAgICAgIFtzZWxmIHJlc29sdmVC
b3VuZHNdOworICAgICAgICB9KTsKKyAgICAgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGlt
ZShESVNQQVRDSF9USU1FX05PVywgKGFuaW1hdGlvbkR1cmF0aW9uICsgMC4xKSAqIE5TRUNfUEVS
X1NFQyksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Js
b2NrKTsKKyAgICB9KTsKK30KKworLSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKFtf
dmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRz
KSAmJiBDR0FmZmluZVRyYW5zZm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQor
ICAgICAgICByZXR1cm47CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJh
bnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxU
b1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxm
LnZpZGVvTGF5ZXJGcmFtZSA9IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAg
ICAgICAgICAgIE1hY2hTZW5kUmlnaHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6
YWRvcHQoW19jb250ZXh0IGNyZWF0ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLT5zZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6
ZShzZWxmLnZpZGVvTGF5ZXJGcmFtZS5zaXplKSwgX2ZlbmNlU2VuZFJpZ2h0KTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06Q0dBZmZp
bmVUcmFuc2Zvcm1JZGVudGl0eV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEZyYW1lOnNlbGYu
Ym91bmRzXTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK0BlbmQKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVyUmVt
b3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLCBM
YXllckhvc3RpbmdDb250ZXh0SUQgY29udGV4dElkKQoreworICAgIC8vIEluaXRpYWxseSwgYWxs
IHRoZSBsYXllcnMgd2lsbCBiZSBlbXB0eSAoYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwKSBh
bmQgaW52aXNpYmxlLgorICAgIC8vIFRoZSByZW5kZXJlciB3aWxsIGNoYW5nZSB0aGUgc2l6ZXMg
b2YgV0tWaWRlb0xheWVyUmVtb3RlIHRvIHRyaWdnZXIgbGF5b3V0IG9mIHN1YmxheWVycyBhbmQg
bWFrZSB0aGVtIHZpc2libGUuCisgICAgV0tWaWRlb0xheWVyUmVtb3RlICp2aWRlb0xheWVyUmVt
b3RlID0gW1tXS1ZpZGVvTGF5ZXJSZW1vdGUgYWxsb2NdIGluaXRdOworICAgIFt2aWRlb0xheWVy
UmVtb3RlIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMCwgMCldOworI2lmbmRlZiBOREVCVUcK
KyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXROYW1lOkAiV0tWaWRlb0xheWVyUmVtb3RlIl07Cisj
ZW5kaWYKKworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTptZWRpYVBsYXllclByaXZhdGVSZW1vdGVdOworCisgICAgYXV0byB2aWRlb1N1YmxheWVyID0g
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0
KGNvbnRleHRJZCk7CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjp2aWRl
b1N1YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBhZGRTdWJsYXllcjp2aWRl
b1N1YmxheWVyLmdldCgpXTsKKyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFtZTp2aWRlb0xheWVy
UmVtb3RlLmJvdW5kc107CisKKyAgICByZXR1cm4gdmlkZW9MYXllclJlbW90ZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391104</attachid>
            <date>2020-02-18 15:26:02 -0800</date>
            <delta_ts>2020-02-18 15:47:44 -0800</delta_ts>
            <desc>Fix the retain cycle problem</desc>
            <filename>bug-206132-20200218152601.patch</filename>
            <type>text/plain</type>
            <size>47509</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4ZDRmMDc1NDBlMmZj
MjU0MDdiYTdmODI4YzAzZDM4ZTJjZGRkMy4uMGNjZTEwZjZmZTU3YTI3ZmIyMDhiMzU3MzI0YWNk
ODhiMjE2OTdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTE4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIG5h
bWUgKGZvciBkZWJ1Z2dpbmcpIG9mIHRoZSBDQUxheWVyIGNyZWF0ZWQgYnkgX3dlYl9yZW5kZXJM
YXllcldpdGhDb250ZXh0SUQgKFRoZSBDQUxheWVyIHdpbGwgbm90IGJlIG9ubHkgdXNlZCBhcyB2
aWRlbyBsYXllcnMpLgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdGhlIG9yZGVyaW5n
IGlzc3VlIHJlbGF0ZWQgdG8gVmlkZW9MYXllck1hbmFnZXJPYmpDLmggYW5kIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5tbSBpbiB0aGUgWGNvZGUgcHJvamVjdCBmaWxlLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tOgorICAgICAgICAoK1tDQUxheWVyIF93
ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEOl0pOgorCiAyMDIwLTAyLTE4ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIERvbid0IGZpcmUgdGlt
ZXJzIHdoZW4gdGhlcmUgaXMgYSBwZW5kaW5nIHJlbmRlcmluZyB1cGRhdGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCmluZGV4IDU5YzdmNzYxYWViY2ZiZGM1NzMxNzBiMzVlYTlkM2Y2ZjNhOTJlZTguLjZkZDY4
YjliODFlMDNmZmZjMTljNDU1YzEwNDdjMzU5N2Q1MTUyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJv
cGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3Rp
bmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhw
b3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5hbCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwogMjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2Vi
UHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQgc3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tp
ZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjYzA2MmZhMzgyZWJhNzUxOWU0NGY2NGY5NGYy
MzBlYzI3MTMyMzQuLmRiZDY1NzQyY2Q3YWFiMzAxYjgyOTM1YTc3MGMyM2E1ZGIyMDQzNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDItMTggIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXpl
IHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0
aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjcmVh
dGVzIFdLVmlkZW9MYXllclJlbW90ZSB3aG9zZSBzdWJsYXllciBpcyBjcmVhdGVkIGJ5IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgpLgor
ICAgICAgICBUaGUgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVy
ZXIgdG8gbWFuYWdlIHRoZSB2aWRlbyBlbGVtZW50IGluIHRoZSBXZWIgcHJvY2Vzcy4gV2hlbiBp
dHMgc2l6ZSBpcyBjaGFuZ2VkIGJ5IHRoZSByZW5kZXJlciwKKyAgICAgICAgaXQgYXBwbGllcyBh
IHRyYW5zZm9ybSB3aXRob3V0IGNoYW5naW5nIGl0cyBhY3R1YWwgc2l6ZSwgYW5kIHNlbmRzIGEg
bWVzc2FnZSB0byBNZWRpYVBsYXllclByaXZhdGVQcm94eSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAg
ICAgICAgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIgbGF5ZXIuIEFmdGVyIHRo
YXQsIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIHNldCBpdHMgc2l6ZSB0byB0aGUgY29ycmVjdCBv
bmUgaW4gdGhlIFdlYiBwcm9jZXNzIHNpZGUuCisgICAgICAgIFdlIG5lZWQgdG8gdXNlIGEgTWFj
aFNlbmRSaWdodCB0byBzeW5jaHJvbml6ZSB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBXZWIgcHJv
Y2VzcyBhbmQgdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFdlIGhhdmUgdG8gdXNlIHN1Y2gg
YSBwcm9jZXNzIHRvIGNoYW5nZSB0aGUgYXBwZWFyYW5jZSBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUg
aW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoZSBzbW9vdGhuZXNzIHdoZW4gYSB1c2VyCisgICAgICAg
IGNoYW5nZSB0aGUgc2l6ZSBvZiBhIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGlu
ZVNpemVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
cmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJS
ZW1vdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlk
ZW9MYXllclJlbW90ZUNvY29hLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTogQWRkZWQuCisgICAgICAgICgtW1dL
VmlkZW9MYXllclJlbW90ZSBpbml0XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBk
ZWFsbG9jXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBtZWRpYVBsYXllclByaXZh
dGVSZW1vdGVdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHZpZGVvU3Vi
bGF5ZXJdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6
XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBsYXlvdXRTdWJsYXllcnNdKToKKyAg
ICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHJlc29sdmVCb3VuZHNdKToKKyAgICAgICAgKFdl
YktpdDo6Y3JlYXRlVmlkZW9MYXllclJlbW90ZSk6CisKIDIwMjAtMDItMTggIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gRG9uJ3QgZmlyZSB0aW1l
cnMgd2hlbiB0aGVyZSBpcyBhIHBlbmRpbmcgcmVuZGVyaW5nIHVwZGF0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDBmOWVhZDdi
Yjk1MjgxYjllMjY0ODExOWRkZjVjZWVlNWY5NDgxMjEuLjUzM2Y3MGRkZjg1YmQxZmJiZWNiMjY3
NjU3NGI5NzA5ODVlM2ZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NB
UmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0ICgp
CiArIChOU0FycmF5ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50Q29udGV4
dDsKICsgKENBQ29udGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNv
bnRleHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZjIwZDUyZjVmMjkwMzU4NWU0ZjhmYmU4ODk5YTYwYjI0NDE5N2U3Yy4uZTYwZTFhZDA3
NjkwMjY1ZDIxZWQ0Y2EzNmRkNWM0MWUxMTIyZDBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJ
CTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0Ey
MzNDM0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUx
RDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBF
RTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5
OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsg
fTsKIAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3
ODBFIC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5
QzFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3
MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODQsNiArMTU4Myw3IEBACiAJ
CTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1
MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBE
NEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFD
NTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAw
REUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3
MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC02NTExLDggKzY1MTEsNiBAQAogCQkxRDAwMjZBODIzNzRG
OUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBK
U0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUlu
UGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdl
ck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAw
QjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURD
NTUzRkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04NDUwLDYgKzg0NDgsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9G
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIy
MkZEREIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
SExTTERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUEx
OEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1
QTFBNTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjczOSw4ICsy
NjczOSw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRU
cmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0Yy
MDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4
MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJE
NUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJ
CTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8s
CiAJCQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2Jq
Qy5jcHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMjk2NzAsNiArMjk2NzAsNyBA
QAogCQkJCUE4MTg1RjQwMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTgxODVGM0QwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEOTJGNTEzMjI2MEZGRUUwMEY4N0JCMyAvKiBEb2N1bWVudEZ1
bGxzY3JlZW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODI2QkYyMjNGQjU5NzcwMEI5MjJCMSAv
KiBEb2N1bWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzM2MEFEQkE1
REUwMEE0NTU0RCAvKiBEb2N1bWVudExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUQyQkE4
M0MwOUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTA1N0ZBNjEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMwNTQwLDcgKzMwNTQxLDYgQEAKIAkJCQk5NDc5NDkzODFFMDQ1
OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTQ3OTQ5M0ExRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE2NjEyMEE1RDNGMDBEQzAyQTAgLyogSlNEZXZp
Y2VNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4MjZCRjIyM0ZCNTk3NzAwQjky
MkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODYwMDgx
MTlEQUZBMTAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjU5RERDODMwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUFEREE5NEMyMTk2ODdBQTUwMDQ1MzAyOSAvKiBKU0RvY3VtZW50Q3VzdG9t
LmggaW4gSGVhZGVycyAqLywKQEAgLTM0MjY3LDcgKzM0MjY3LDcgQEAKIAkJCQk3Q0U2ODM0NDE5
MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4MTU2MDA0
NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywK
LQkJCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMERFMTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMEUxMTcxNUQy
QTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDMz
NkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2Y2Zm
MjgzNjVjZjZjOGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAyNzQ0OWZiZDhmOTI2MzZjMzU0NTQ2OWRj
YWQ0Mzk0MjFiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtODIsNyArODIs
NyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FMYXllckhvc3QgbGF5ZXJd
OwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJXZWJWaWRlb0hvc3Rp
bmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIkhvc3RpbmcgbGF5ZXIiXTsKICNl
bmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7CiAgICAgcmV0dXJuIGxh
eWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3MmM2MjcxYzFiYzg5YWUy
YjdmMzI3ZWMyZWEyY2JhLi45MGQ4YWRmNDc3NjY3MzNiNTMxNmU0N2VjMGFlYWM0MDhjMTQ1YzQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCkBAIC0xMDYsMTMgKzEwNywx
MiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQoVVJMJiYgdXJsLCBPcHRpb25h
bDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnBy
ZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZv
clJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2Fs
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+
JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9v
bCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElk
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dz
aW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7
CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNoKTsKICAgICBt
X3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1fdmlkZW9Db250ZW50Qm94UmVj
dCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNj
YWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNy
ZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBjb21wbGV0aW9uSGFuZGxlciht
X2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAgLTQ2OCw2ICs0NjgsNyBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiAK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVB
dmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUgc2l6ZSBvZiB0aGUgcGxhdGZvcm1M
YXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBwcm92aWRlIG1lZGlhUGxheWVyQ29u
dGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+
c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwogICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Rmly
c3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpAQCAtNTQ2LDExICs1NDcsNiBAQCBi
b29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0
dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxheW91dFJlY3QgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fdmlkZW9Db250ZW50Qm94UmVjdDsKLX0KLQogZmxvYXQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV92aWRlb0NvbnRlbnRTY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IGIyMjYzMGZkYWRiZjQ3M2Y3
ZGJhOTdhMzNmYmYyYzUzZGJiMTA3ODkuLjE2YmIyZGRmYTIxNDc0NzBlODYwMGFiNzEzOTZhNTlj
ZGY1NDQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7
CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYsNyArODAs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uJik7CiAKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3Qs
IGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXli
YWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQs
IGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlk
ZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiYmKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAK
ICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4m
JiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKT4mJik7CkBAIC0x
MDksNiArMTEzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1Nl
dE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZTo6TW9kZSk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZp
ZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpN
YWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpOwpAQCAtMTc4LDcg
KzE4Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwot
ICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0
IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5
ZXJQbGF5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhm
ODYxNWE0ZjVmYzQyZGNkOTVlZjY1NDQ2MTRjZjE5YWEzYWQ3YzIuLmNhNjYzMTRkZmJlNmQzMWJl
MDk5NTJjNWYyODJmMTA2MThmZWJlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdl
cyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVG
b3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHBy
ZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQg
dmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRl
eHRJRD4gbGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JS
ZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpM
YXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAg
IExvYWQoVVJMIHVybCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IHNhbmRib3hFeHRlbnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJp
bmcga2V5U3lzdGVtKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01
Nyw2ICs1NywxMCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNv
dW50ZWQgewogICAgIFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1v
ZGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50
U2l6ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMg
UGFpbnQKICAgICAjIFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYg
QEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAog
ICAgIEFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmUoKQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29j
b2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzVmYzVkYmEwN2RhNjcyOTNkYzlmODgwMTkyNTc1MTQ3YTJhYjkx
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTAsMCArMSw1MCBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRl
eHQuaCIKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9JbnRTaXplLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV1RGOjpNYWNoU2Vu
ZFJpZ2h0JiBtYWNoU2VuZFJpZ2h0KQoreworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0
RmVuY2VQb3J0KG1hY2hTZW5kUmlnaHQuc2VuZFJpZ2h0KCkpOworICAgIC8vIFdlIGRvIG5vdCB3
YW50IGFuaW1hdGlvbnMgaGVyZQorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFttX2xheWVySG9zdGluZ0Nv
bnRleHQtPnJvb3RMYXllcigpIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpKV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQyNGE4MDQ4ZTM0NTA0NjM0
MjdjOTMwNDMyZWY5MDAzOTc1MTFjMGMuLmRhMjNiMGU1ZDMwY2M1NDY5ZWU0ZDcwOWUxZmE4YWQx
M2RjODA2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3LDEwICs1NywxMSBAQCBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyLmNwcAogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENTb2NrZXQuY3BwCiAKK0dQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNz
SU9TLm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCitHUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQogR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KLUdQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFBsYXRmb3JtL2NmL01vZHVsZUNGLmNw
cAogCkBAIC01NTQsNiArNTU1LDggQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNl
cnZpY2VFbnRyeVBvaW50Lm1tCiAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMv
V0tCdW5kbGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMjM3YmRlNDg3NWE3MzBl
NjI4ZDUyYjhkNDc2NDc0ZTFlOGMyMmEzZC4uZGVmNzg5MjM1MTYzNGQ5ODNlMGQxNWJkNTkzZmU1
YTI5MjE4ZDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBw
cml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9Owog
ICAgIEhhc2hNYXA8dWludDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzAw
MGJmNzAwN2JhNjljNGU3MTk1NmIyN2U0ZTAzNmEzZDYyYWUxLi41OTdhMzMwYTdmMjJjMDE4Y2Rh
ZTQwZjkyZDE4OWNlNDFlZjI3Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2ODAsNiArMjY4MCw3IEBACiAJCTFDQThCOTQ0MTI3
Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdE
ODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlGMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5Niw2ICsyNjk3LDEwIEBACiAJCTFE
QkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBE
RjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyog
VmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
REZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRUcmFja1By
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
MDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyog
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTI1NCw2ICs1MjU5LDcgQEAKIAkJMDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlh
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxREFGNUE0
RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgw
RDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU3NzIzQzkz
QkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkwNzkyMzEz
MTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKQEAg
LTUyNzEsNiArNTI3Nyw4IEBACiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJCTA3RTE5RjA4MjNENTMzQjkwMDk0RkZCNCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwN0UxOUYwOTIzRDUzM0JBMDA5
NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTFERkREMEUzMjNGNjEw
RkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLAorCQkJ
CTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8sCiAJCQkJ
MDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAq
LywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaCAqLywKIAkJCSk7CkBAIC01MjgwLDYgKzUyODgsNyBAQAogCQkwN0M3NUMxNzIzOTlBM0RC
MDA4OEU2NUIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKIAkJCQkwNzFC
QzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJ
CQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8s
CiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcCAqLywKQEAgLTYxNDksNiArNjE1OCwyMyBAQAogCQkJcGF0aCA9IEF1dG9tYXRp
b247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxRDBFQ0VBOTIzRkM4NEJC
MDBEMTcyRjYgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxREZERDBFMDIz
RjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8sCisJCQkJMURGREQw
REYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLywKKwkJCSk7
CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkx
RjAxODE2ODE4NThEQzE1MDBGOTI4ODQgLyogQ29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlk
YzBlYmI2MDY2NDg5N2Y4MmRiN2UwNTE4MDhmMGU0ODlkYzUyNzkuLjZkMmFiMjEwOGJiYmZjYWEy
MTkwNDY1MTBiZTUwODFjMzMxMGE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRl
ICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTQyLDYgKzQzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
VGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01h
Y2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTkwLDE3ICs5
MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNr
KGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAgICBhdXRvIGxheW91dFJlY3QgPSBtX3Bs
YXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAgICBhdXRvIHNjYWxlID0gbV9wbGF5ZXIt
PnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFj
ayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIGxheW91dFJl
Y3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGNv
bnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZh
dGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgc2NhbGUpLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4dElkKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBp
ZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3ZpZGVvTGF5
ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0Nv
bnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBj
cmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRleHRJZC52YWx1ZSgpKTsKICAgICB9LCBt
X2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJhbFNpemUpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogewor
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIq
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVy
LmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKQEAgLTY3MSwxNCArNjczLDIxIEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMo
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IElu
dFNpemUmIHNpemUsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKK3sK
KyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
U2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKHNpemUsIG1hY2hTZW5kUmlnaHQpLCBtX2lkKTsKK30K
KyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwgc28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0
eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRo
aXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xl
bnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4
IDdmNzM5MDQxOTM3ZTExZjRhZDAyNWExODMwZTVjZjNjODk1MDBkYTguLmNjMDM0Nzc3YmI5ZjQw
MDVhMzUwYTU1N2QyNjI1MjMzNGJiNTMzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApA
QCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0Owor
fQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2
ICs5MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhh
c0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxv
YWRUeXBlKTsKICAgICB2b2lkIHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAg
dm9pZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Y29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3Rl
QXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29j
b2EgV2ViS2l0IHBvcnQsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNp
emUoKSBkb2VzIG5vdGhpbmcsCi0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5l
ZWQgdG8gc2VuZCBJUEMgbWVzc2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0g
ICAgLy8gT3RoZXIgV2ViS2l0IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBz
ZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFp
bnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7Ci0KICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJv
b2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xl
bnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0
OCw3ICszNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxh
eWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVv
SW5saW5lTGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VmlkZW9MYXllclJlbW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNDkwNmYyMWIwZDZlNGNjOTBhYmZkZTUw
NzkyM2UzZjA2YzhhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JN
KENPQ09BKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXll
cj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqLCBMYXll
ckhvc3RpbmdDb250ZXh0SUQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzU4MTA4YTY0MjdiMDMz
NGY0ZTNjZTBmOTkwMGVkOGYwMTUwN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRlb0xheWVyUmVtb3RlIDogQ0FMYXll
cgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Q0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMDcwODkyOTlkNTA3NjNkMmFkNTMxNjRiYWU4
ZjA3NGNkZjZlMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJl
bW90ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09B
KQorCisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2lt
cG9ydCA8d3RmL09TT2JqZWN0UHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorCitAaW1w
bGVtZW50YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworICAgIENB
TGF5ZXIqIF92aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCogX2NvbnRleHQ7CisgICAgT1NP
YmplY3RQdHI8ZGlzcGF0Y2hfYmxvY2tfdD4gX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2s7Cit9
CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAg
ICBpZiAoc2VsZikKKyAgICAgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVTOworCisgICAgcmV0
dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGlmIChfcGVuZGluZ1Jlc29s
dmVCb3VuZHNCbG9jaykKKyAgICAgICAgZGlzcGF0Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVz
b2x2ZUJvdW5kc0Jsb2NrLmdldCgpKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Cit7CisgICAgcmV0dXJuIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUuZ2V0KCk7Cit9CisKKy0g
KHZvaWQpc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIF9tZWRpYVBsYXll
clByaXZhdGVSZW1vdGUgPSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsK
K30KKworLSAoQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3Vi
bGF5ZXI7Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3Vi
bGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZv
aWQpbGF5b3V0U3VibGF5ZXJzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxheWVy
XSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc291
cmNlVmlkZW9GcmFtZSA9IHNlbGYudmlkZW9MYXllckZyYW1lOworICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCB0YXJnZXRWaWRlb0ZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgQ0dBZmZpbmVUcmFuc2Zv
cm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUodGFyZ2V0VmlkZW9GcmFt
ZS53aWR0aCgpIC8gc291cmNlVmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRWaWRlb0ZyYW1lLmhl
aWdodCgpIC8gc291cmNlVmlkZW9GcmFtZS5oZWlnaHQoKSk7CisKKyAgICBbQ0FUcmFuc2FjdGlv
biBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAg
ICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChz
ZWxmLmJvdW5kcyksIENHUmVjdEdldE1pZFkoc2VsZi5ib3VuZHMpKV07CisgICAgW192aWRlb1N1
YmxheWVyIHNldEFmZmluZVRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5zYWN0aW9u
IGNvbW1pdF07CisKKyAgICBfY29udGV4dCA9IFtDQUNvbnRleHQgY3VycmVudENvbnRleHRdOwor
ICAgIE5TVGltZUludGVydmFsIGFuaW1hdGlvbkR1cmF0aW9uID0gW0NBVHJhbnNhY3Rpb24gYW5p
bWF0aW9uRHVyYXRpb25dOworICAgIGlmIChfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jaykKKyAg
ICAgICAgZGlzcGF0Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrLmdl
dCgpKTsKKworICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gYWRvcHRPU09iamVjdChk
aXNwYXRjaF9ibG9ja19jcmVhdGUoKGRpc3BhdGNoX2Jsb2NrX2ZsYWdzX3QpMCwgW3NlbGZdIHsK
KyAgICAgICAgX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2sgPSBuaWw7CisgICAgICAgIFtzZWxm
IHJlc29sdmVCb3VuZHNdOworICAgIH0pKTsKKyAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90
aW1lKERJU1BBVENIX1RJTUVfTk9XLCAoYW5pbWF0aW9uRHVyYXRpb24gKyAwLjEpICogTlNFQ19Q
RVJfU0VDKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgX3BlbmRpbmdSZXNvbHZlQm91bmRz
QmxvY2suZ2V0KCkpOworfQorCistICh2b2lkKXJlc29sdmVCb3VuZHMKK3sKKyAgICBpZiAoW192
aWRlb1N1YmxheWVyIHN1cGVybGF5ZXJdICE9IHNlbGYpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChDR1JlY3RFcXVhbFRvUmVjdChzZWxmLnZpZGVvTGF5ZXJGcmFtZSwgc2VsZi5ib3VuZHMp
ICYmIENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShzZWxmLmFmZmluZVRyYW5zZm9ybSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFu
c2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgaWYgKCFDR1JlY3RFcXVhbFRv
UmVjdChzZWxmLnZpZGVvTGF5ZXJGcmFtZSwgc2VsZi5ib3VuZHMpKSB7CisgICAgICAgIHNlbGYu
dmlkZW9MYXllckZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgICAgIGlmIChhdXRvICptZWRpYVBs
YXllclByaXZhdGVSZW1vdGUgPSBzZWxmLm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSkgeworICAg
ICAgICAgICAgTWFjaFNlbmRSaWdodCBfZmVuY2VTZW5kUmlnaHQgPSBNYWNoU2VuZFJpZ2h0Ojph
ZG9wdChbX2NvbnRleHQgY3JlYXRlRmVuY2VQb3J0XSk7CisgICAgICAgICAgICBtZWRpYVBsYXll
clByaXZhdGVSZW1vdGUtPnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChXZWJDb3JlOjpJbnRTaXpl
KHNlbGYudmlkZW9MYXllckZyYW1lLnNpemUpLCBfZmVuY2VTZW5kUmlnaHQpOworICAgICAgICB9
CisgICAgfQorCisgICAgW192aWRlb1N1YmxheWVyIHNldEFmZmluZVRyYW5zZm9ybTpDR0FmZmlu
ZVRyYW5zZm9ybUlkZW50aXR5XTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0RnJhbWU6c2VsZi5i
b3VuZHNdOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KKworQGVuZAorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPENBTGF5ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1v
dGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiBtZWRpYVBsYXllclByaXZhdGVSZW1vdGUsIExh
eWVySG9zdGluZ0NvbnRleHRJRCBjb250ZXh0SWQpCit7CisgICAgLy8gSW5pdGlhbGx5LCBhbGwg
dGhlIGxheWVycyB3aWxsIGJlIGVtcHR5IChib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIDApIGFu
ZCBpbnZpc2libGUuCisgICAgLy8gVGhlIHJlbmRlcmVyIHdpbGwgY2hhbmdlIHRoZSBzaXplcyBv
ZiBXS1ZpZGVvTGF5ZXJSZW1vdGUgdG8gdHJpZ2dlciBsYXlvdXQgb2Ygc3VibGF5ZXJzIGFuZCBt
YWtlIHRoZW0gdmlzaWJsZS4KKyAgICBXS1ZpZGVvTGF5ZXJSZW1vdGUgKnZpZGVvTGF5ZXJSZW1v
dGUgPSBbW1dLVmlkZW9MYXllclJlbW90ZSBhbGxvY10gaW5pdF07CisgICAgW3ZpZGVvTGF5ZXJS
ZW1vdGUgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAwLCAwKV07CisjaWZuZGVmIE5ERUJVRwor
ICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE5hbWU6QCJXS1ZpZGVvTGF5ZXJSZW1vdGUiXTsKKyNl
bmRpZgorCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Om1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV07CisKKyAgICBhdXRvIHZpZGVvU3VibGF5ZXIgPSBM
YXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQo
Y29udGV4dElkKTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRWaWRlb1N1YmxheWVyOnZpZGVv
U3VibGF5ZXIuZ2V0KCldOworICAgIFt2aWRlb0xheWVyUmVtb3RlIGFkZFN1YmxheWVyOnZpZGVv
U3VibGF5ZXIuZ2V0KCldOworICAgIFt2aWRlb1N1YmxheWVyIHNldEZyYW1lOnZpZGVvTGF5ZXJS
ZW1vdGUuYm91bmRzXTsKKworICAgIHJldHVybiB2aWRlb0xheWVyUmVtb3RlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391111</attachid>
            <date>2020-02-18 15:47:46 -0800</date>
            <delta_ts>2020-02-18 17:24:28 -0800</delta_ts>
            <desc>Fix the retain cycle problem (with BlockPtr)</desc>
            <filename>bug-206132-20200218154745.patch</filename>
            <type>text/plain</type>
            <size>47492</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4ZDRmMDc1NDBlMmZj
MjU0MDdiYTdmODI4YzAzZDM4ZTJjZGRkMy4uMGNjZTEwZjZmZTU3YTI3ZmIyMDhiMzU3MzI0YWNk
ODhiMjE2OTdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTE4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9j
ZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQ
VSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIG5h
bWUgKGZvciBkZWJ1Z2dpbmcpIG9mIHRoZSBDQUxheWVyIGNyZWF0ZWQgYnkgX3dlYl9yZW5kZXJM
YXllcldpdGhDb250ZXh0SUQgKFRoZSBDQUxheWVyIHdpbGwgbm90IGJlIG9ubHkgdXNlZCBhcyB2
aWRlbyBsYXllcnMpLgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgdGhlIG9yZGVyaW5n
IGlzc3VlIHJlbGF0ZWQgdG8gVmlkZW9MYXllck1hbmFnZXJPYmpDLmggYW5kIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5tbSBpbiB0aGUgWGNvZGUgcHJvamVjdCBmaWxlLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tOgorICAgICAgICAoK1tDQUxheWVyIF93
ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEOl0pOgorCiAyMDIwLTAyLTE4ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIERvbid0IGZpcmUgdGlt
ZXJzIHdoZW4gdGhlcmUgaXMgYSBwZW5kaW5nIHJlbmRlcmluZyB1cGRhdGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCmluZGV4IDU5YzdmNzYxYWViY2ZiZGM1NzMxNzBiMzVlYTlkM2Y2ZjNhOTJlZTguLjZkZDY4
YjliODFlMDNmZmZjMTljNDU1YzEwNDdjMzU5N2Q1MTUyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJv
cGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3Rp
bmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhw
b3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5hbCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwogMjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2Vi
UHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQgc3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tp
ZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjYzA2MmZhMzgyZWJhNzUxOWU0NGY2NGY5NGYy
MzBlYzI3MTMyMzQuLmRiZDY1NzQyY2Q3YWFiMzAxYjgyOTM1YTc3MGMyM2E1ZGIyMDQzNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDItMTggIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXpl
IHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0
aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjcmVh
dGVzIFdLVmlkZW9MYXllclJlbW90ZSB3aG9zZSBzdWJsYXllciBpcyBjcmVhdGVkIGJ5IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgpLgor
ICAgICAgICBUaGUgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVy
ZXIgdG8gbWFuYWdlIHRoZSB2aWRlbyBlbGVtZW50IGluIHRoZSBXZWIgcHJvY2Vzcy4gV2hlbiBp
dHMgc2l6ZSBpcyBjaGFuZ2VkIGJ5IHRoZSByZW5kZXJlciwKKyAgICAgICAgaXQgYXBwbGllcyBh
IHRyYW5zZm9ybSB3aXRob3V0IGNoYW5naW5nIGl0cyBhY3R1YWwgc2l6ZSwgYW5kIHNlbmRzIGEg
bWVzc2FnZSB0byBNZWRpYVBsYXllclByaXZhdGVQcm94eSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAg
ICAgICAgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIgbGF5ZXIuIEFmdGVyIHRo
YXQsIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIHNldCBpdHMgc2l6ZSB0byB0aGUgY29ycmVjdCBv
bmUgaW4gdGhlIFdlYiBwcm9jZXNzIHNpZGUuCisgICAgICAgIFdlIG5lZWQgdG8gdXNlIGEgTWFj
aFNlbmRSaWdodCB0byBzeW5jaHJvbml6ZSB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBXZWIgcHJv
Y2VzcyBhbmQgdGhlIEdQVSBwcm9jZXNzLgorCisgICAgICAgIFdlIGhhdmUgdG8gdXNlIHN1Y2gg
YSBwcm9jZXNzIHRvIGNoYW5nZSB0aGUgYXBwZWFyYW5jZSBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUg
aW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoZSBzbW9vdGhuZXNzIHdoZW4gYSB1c2VyCisgICAgICAg
IGNoYW5nZSB0aGUgc2l6ZSBvZiBhIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5Ojpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGlu
ZVNpemVGZW5jZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
cmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJS
ZW1vdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlk
ZW9MYXllclJlbW90ZUNvY29hLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTogQWRkZWQuCisgICAgICAgICgtW1dL
VmlkZW9MYXllclJlbW90ZSBpbml0XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBk
ZWFsbG9jXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBtZWRpYVBsYXllclByaXZh
dGVSZW1vdGVdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHZpZGVvU3Vi
bGF5ZXJdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6
XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBsYXlvdXRTdWJsYXllcnNdKToKKyAg
ICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHJlc29sdmVCb3VuZHNdKToKKyAgICAgICAgKFdl
YktpdDo6Y3JlYXRlVmlkZW9MYXllclJlbW90ZSk6CisKIDIwMjAtMDItMTggIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gRG9uJ3QgZmlyZSB0aW1l
cnMgd2hlbiB0aGVyZSBpcyBhIHBlbmRpbmcgcmVuZGVyaW5nIHVwZGF0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmluZGV4IDBmOWVhZDdi
Yjk1MjgxYjllMjY0ODExOWRkZjVjZWVlNWY5NDgxMjEuLjUzM2Y3MGRkZjg1YmQxZmJiZWNiMjY3
NjU3NGI5NzA5ODVlM2ZiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NB
UmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0ICgp
CiArIChOU0FycmF5ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50Q29udGV4
dDsKICsgKENBQ29udGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNv
bnRleHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZjIwZDUyZjVmMjkwMzU4NWU0ZjhmYmU4ODk5YTYwYjI0NDE5N2U3Yy4uZTYwZTFhZDA3
NjkwMjY1ZDIxZWQ0Y2EzNmRkNWM0MWUxMTIyZDBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJ
CTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0Ey
MzNDM0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUx
RDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBF
RTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5
OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsg
fTsKIAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3
ODBFIC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5
QzFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3
MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODQsNiArMTU4Myw3IEBACiAJ
CTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1
MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VN
YWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBE
NEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFD
NTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAw
REUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3
MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC02NTExLDggKzY1MTEsNiBAQAogCQkxRDAwMjZBODIzNzRG
OUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBK
U0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUlu
UGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdl
ck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAw
QjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURD
NTUzRkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04NDUwLDYgKzg0NDgsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9G
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIy
MkZEREIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
SExTTERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUEx
OEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1
QTFBNTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjczOSw4ICsy
NjczOSw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRU
cmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0Yy
MDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4
MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJE
NUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJ
CTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8s
CiAJCQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2Jq
Qy5jcHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMjk2NzAsNiArMjk2NzAsNyBA
QAogCQkJCUE4MTg1RjQwMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTgxODVGM0QwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEOTJGNTEzMjI2MEZGRUUwMEY4N0JCMyAvKiBEb2N1bWVudEZ1
bGxzY3JlZW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODI2QkYyMjNGQjU5NzcwMEI5MjJCMSAv
KiBEb2N1bWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzM2MEFEQkE1
REUwMEE0NTU0RCAvKiBEb2N1bWVudExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUQyQkE4
M0MwOUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTA1N0ZBNjEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMwNTQwLDcgKzMwNTQxLDYgQEAKIAkJCQk5NDc5NDkzODFFMDQ1
OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTQ3OTQ5M0ExRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE2NjEyMEE1RDNGMDBEQzAyQTAgLyogSlNEZXZp
Y2VNb3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4MjZCRjIyM0ZCNTk3NzAwQjky
MkIxIC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODYwMDgx
MTlEQUZBMTAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjU5RERDODMwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUFEREE5NEMyMTk2ODdBQTUwMDQ1MzAyOSAvKiBKU0RvY3VtZW50Q3VzdG9t
LmggaW4gSGVhZGVycyAqLywKQEAgLTM0MjY3LDcgKzM0MjY3LDcgQEAKIAkJCQk3Q0U2ODM0NDE5
MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4MTU2MDA0
NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywK
LQkJCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMERFMTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMEUxMTcxNUQy
QTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDMz
NkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2Y2Zm
MjgzNjVjZjZjOGM4NzEzYjQyZTg1MDI5OGU5Li5mMTAyNzQ0OWZiZDhmOTI2MzZjMzU0NTQ2OWRj
YWQ0Mzk0MjFiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQpAQCAtODIsNyArODIs
NyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FMYXllckhvc3QgbGF5ZXJd
OwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJXZWJWaWRlb0hvc3Rp
bmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIkhvc3RpbmcgbGF5ZXIiXTsKICNl
bmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7CiAgICAgcmV0dXJuIGxh
eWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3MmM2MjcxYzFiYzg5YWUy
YjdmMzI3ZWMyZWEyY2JhLi45MGQ4YWRmNDc3NjY3MzNiNTMxNmU0N2VjMGFlYWM0MDhjMTQ1YzQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvVHJhY2tQcm94eS5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCkBAIC0xMDYsMTMgKzEwNywx
MiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQoVVJMJiYgdXJsLCBPcHRpb25h
bDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnBy
ZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZv
clJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2Fs
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+
JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9v
bCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElk
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dz
aW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7
CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNoKTsKICAgICBt
X3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIG1fdmlkZW9Db250ZW50Qm94UmVj
dCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNj
YWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNy
ZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICBjb21wbGV0aW9uSGFuZGxlciht
X2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKQEAgLTQ2OCw2ICs0NjgsNyBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpCiAK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVB
dmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUgc2l6ZSBvZiB0aGUgcGxhdGZvcm1M
YXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBwcm92aWRlIG1lZGlhUGxheWVyQ29u
dGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+
c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwogICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Rmly
c3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpAQCAtNTQ2LDExICs1NDcsNiBAQCBi
b29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0
dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxheW91dFJlY3QgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fdmlkZW9Db250ZW50Qm94UmVjdDsKLX0KLQogZmxvYXQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV92aWRlb0NvbnRlbnRTY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IGIyMjYzMGZkYWRiZjQ3M2Y3
ZGJhOTdhMzNmYmYyYzUzZGJiMTA3ODkuLjE2YmIyZGRmYTIxNDc0NzBlODYwMGFiNzEzOTZhNTlj
ZGY1NDQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7
CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYsNyArODAs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uJik7CiAKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3Qs
IGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXli
YWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQs
IGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlk
ZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiYmKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAK
ICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4m
JiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmKT4mJik7CkBAIC0x
MDksNiArMTEzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1Nl
dE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZTo6TW9kZSk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZp
ZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpN
YWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpOwpAQCAtMTc4LDcg
KzE4Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwot
ICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0
IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5
ZXJQbGF5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhm
ODYxNWE0ZjVmYzQyZGNkOTVlZjY1NDQ2MTRjZjE5YWEzYWQ3YzIuLmNhNjYzMTRkZmJlNmQzMWJl
MDk5NTJjNWYyODJmMTA2MThmZWJlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdl
cyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVG
b3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHBy
ZXBhcmVGb3JSZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQg
dmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRl
eHRJRD4gbGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JS
ZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpM
YXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAg
IExvYWQoVVJMIHVybCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IHNhbmRib3hFeHRlbnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJp
bmcga2V5U3lzdGVtKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01
Nyw2ICs1NywxMCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNv
dW50ZWQgewogICAgIFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1v
ZGUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50
U2l6ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMg
UGFpbnQKICAgICAjIFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYg
QEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAog
ICAgIEFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmUoKQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29j
b2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzVmYzVkYmEwN2RhNjcyOTNkYzlmODgwMTkyNTc1MTQ3YTJhYjkx
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTAsMCArMSw1MCBAQAorLyoKKyog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRl
eHQuaCIKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9JbnRTaXplLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV1RGOjpNYWNoU2Vu
ZFJpZ2h0JiBtYWNoU2VuZFJpZ2h0KQoreworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0
RmVuY2VQb3J0KG1hY2hTZW5kUmlnaHQuc2VuZFJpZ2h0KCkpOworICAgIC8vIFdlIGRvIG5vdCB3
YW50IGFuaW1hdGlvbnMgaGVyZQorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFttX2xheWVySG9zdGluZ0Nv
bnRleHQtPnJvb3RMYXllcigpIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpKV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQyNGE4MDQ4ZTM0NTA0NjM0
MjdjOTMwNDMyZWY5MDAzOTc1MTFjMGMuLmRhMjNiMGU1ZDMwY2M1NDY5ZWU0ZDcwOWUxZmE4YWQx
M2RjODA2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3LDEwICs1NywxMSBAQCBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyLmNwcAogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENTb2NrZXQuY3BwCiAKK0dQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNz
SU9TLm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCitHUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQogR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KLUdQVVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFBsYXRmb3JtL2NmL01vZHVsZUNGLmNw
cAogCkBAIC01NTQsNiArNTU1LDggQEAgV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNl
cnZpY2VFbnRyeVBvaW50Lm1tCiAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMv
V0tCdW5kbGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMjM3YmRlNDg3NWE3MzBl
NjI4ZDUyYjhkNDc2NDc0ZTFlOGMyMmEzZC4uZGVmNzg5MjM1MTYzNGQ5ODNlMGQxNWJkNTkzZmU1
YTI5MjE4ZDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBw
cml2YXRlOgogICAgIHVpbnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9Owog
ICAgIEhhc2hNYXA8dWludDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzAw
MGJmNzAwN2JhNjljNGU3MTk1NmIyN2U0ZTAzNmEzZDYyYWUxLi41OTdhMzMwYTdmMjJjMDE4Y2Rh
ZTQwZjkyZDE4OWNlNDFlZjI3Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2ODAsNiArMjY4MCw3IEBACiAJCTFDQThCOTQ0MTI3
Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdE
ODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlGMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5Niw2ICsyNjk3LDEwIEBACiAJCTFE
QkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBE
RjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyog
VmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
REZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRUcmFja1By
aXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
MDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyog
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTI1NCw2ICs1MjU5LDcgQEAKIAkJMDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlh
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxREFGNUE0
RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgw
RDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU3NzIzQzkz
QkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkwNzkyMzEz
MTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKQEAg
LTUyNzEsNiArNTI3Nyw4IEBACiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJCTA3RTE5RjA4MjNENTMzQjkwMDk0RkZCNCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwN0UxOUYwOTIzRDUzM0JBMDA5
NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTFERkREMEUzMjNGNjEw
RkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovLAorCQkJ
CTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8sCiAJCQkJ
MDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAq
LywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaCAqLywKIAkJCSk7CkBAIC01MjgwLDYgKzUyODgsNyBAQAogCQkwN0M3NUMxNzIzOTlBM0RC
MDA4OEU2NUIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2NvYSAqLywKIAkJCQkwNzFC
QzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCAqLywKIAkJ
CQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5LmggKi8s
CiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcCAqLywKQEAgLTYxNDksNiArNjE1OCwyMyBAQAogCQkJcGF0aCA9IEF1dG9tYXRp
b247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxRDBFQ0VBOTIzRkM4NEJC
MDBEMTcyRjYgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxREZERDBFMDIz
RjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8sCisJCQkJMURGREQw
REYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSAqLywKKwkJCSk7
CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkx
RjAxODE2ODE4NThEQzE1MDBGOTI4ODQgLyogQ29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlk
YzBlYmI2MDY2NDg5N2Y4MmRiN2UwNTE4MDhmMGU0ODlkYzUyNzkuLjZkMmFiMjEwOGJiYmZjYWEy
MTkwNDY1MTBiZTUwODFjMzMxMGE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRl
ICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTQyLDYgKzQzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
VGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01h
Y2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTkwLDE3ICs5
MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNr
KGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAgICBhdXRvIGxheW91dFJlY3QgPSBtX3Bs
YXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAgICBhdXRvIHNjYWxlID0gbV9wbGF5ZXIt
PnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFj
ayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIGxheW91dFJl
Y3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGNv
bnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZh
dGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgc2NhbGUpLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4dElkKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBp
ZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3ZpZGVvTGF5
ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0Nv
bnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBj
cmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRleHRJZC52YWx1ZSgpKTsKICAgICB9LCBt
X2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJhbFNpemUpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogewor
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAgIG1fcGxheWVyLT5maXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIq
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVy
LmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKQEAgLTY3MSwxNCArNjczLDIxIEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMo
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IElu
dFNpemUmIHNpemUsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKK3sK
KyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
U2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKHNpemUsIG1hY2hTZW5kUmlnaHQpLCBtX2lkKTsKK30K
KyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwgc28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0
eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRo
aXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xl
bnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4
IDdmNzM5MDQxOTM3ZTExZjRhZDAyNWExODMwZTVjZjNjODk1MDBkYTguLmNjMDM0Nzc3YmI5ZjQw
MDVhMzUwYTU1N2QyNjI1MjMzNGJiNTMzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApA
QCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0Owor
fQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2
ICs5MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhh
c0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxv
YWRUeXBlKTsKICAgICB2b2lkIHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAg
dm9pZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Y29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3Rl
QXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVDb25maWd1cmF0aW9uJiYpOwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29j
b2EgV2ViS2l0IHBvcnQsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNp
emUoKSBkb2VzIG5vdGhpbmcsCi0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5l
ZWQgdG8gc2VuZCBJUEMgbWVzc2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0g
ICAgLy8gT3RoZXIgV2ViS2l0IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBz
ZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFp
bnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7Ci0KICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJv
b2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xl
bnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6
Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0
OCw3ICszNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxh
eWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVv
SW5saW5lTGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VmlkZW9MYXllclJlbW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNDkwNmYyMWIwZDZlNGNjOTBhYmZkZTUw
NzkyM2UzZjA2YzhhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JN
KENPQ09BKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXll
cj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqLCBMYXll
ckhvc3RpbmdDb250ZXh0SUQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzU4MTA4YTY0MjdiMDMz
NGY0ZTNjZTBmOTkwMGVkOGYwMTUwN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRlb0xheWVyUmVtb3RlIDogQ0FMYXll
cgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Q0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXll
clJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyNTViYTMyMGRjMWVlZGQxNTQ0ZjIwZTU4MmU2
NmE4YTQyZDRlNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJl
bW90ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09B
KQorCisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQg
PHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorCitAaW1wbGVt
ZW50YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRyPFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworICAgIENBTGF5
ZXIqIF92aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCogX2NvbnRleHQ7CisgICAgQmxvY2tQ
dHI8dm9pZCgpPiBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jazsKK30KKworLSAoaW5zdGFuY2V0
eXBlKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmIChzZWxmKQorICAg
ICAgICBzZWxmLm1hc2tzVG9Cb3VuZHMgPSBZRVM7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwor
LSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKQor
ICAgICAgICBkaXNwYXRjaF9ibG9ja19jYW5jZWwoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2su
Z2V0KCkpOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICByZXR1cm4g
X21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5nZXQoKTsKK30KKworLSAodm9pZClzZXRNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICopbWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSA9
IG1ha2VXZWFrUHRyKCptZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOworfQorCistIChDQUxheWVy
ICopdmlkZW9TdWJsYXllcgoreworICAgIHJldHVybiBfdmlkZW9TdWJsYXllcjsKK30KKworLSAo
dm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVyICopdmlkZW9TdWJsYXllcgoreworICAgIF92
aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsKK30KKworLSAodm9pZClsYXlvdXRTdWJsYXll
cnMKK3sKKyAgICBpZiAoW192aWRlb1N1YmxheWVyIHN1cGVybGF5ZXJdICE9IHNlbGYpCisgICAg
ICAgIHJldHVybjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3VyY2VWaWRlb0ZyYW1lID0g
c2VsZi52aWRlb0xheWVyRnJhbWU7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFZpZGVv
RnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZSh0YXJnZXRWaWRlb0ZyYW1lLndpZHRoKCkgLyBzb3Vy
Y2VWaWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldFZpZGVvRnJhbWUuaGVpZ2h0KCkgLyBzb3VyY2VW
aWRlb0ZyYW1lLmhlaWdodCgpKTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFtfdmlkZW9TdWJsYXll
ciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKHNlbGYuYm91bmRzKSwgQ0dS
ZWN0R2V0TWlkWShzZWxmLmJvdW5kcykpXTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5l
VHJhbnNmb3JtOnRyYW5zZm9ybV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKworICAg
IF9jb250ZXh0ID0gW0NBQ29udGV4dCBjdXJyZW50Q29udGV4dF07CisgICAgTlNUaW1lSW50ZXJ2
YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbQ0FUcmFuc2FjdGlvbiBhbmltYXRpb25EdXJhdGlvbl07
CisgICAgaWYgKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrKQorICAgICAgICBkaXNwYXRjaF9i
bG9ja19jYW5jZWwoX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2suZ2V0KCkpOworCisgICAgX3Bl
bmRpbmdSZXNvbHZlQm91bmRzQmxvY2sgPSBtYWtlQmxvY2tQdHIoZGlzcGF0Y2hfYmxvY2tfY3Jl
YXRlKChkaXNwYXRjaF9ibG9ja19mbGFnc190KTAsIFtzZWxmXSB7CisgICAgICAgIF9wZW5kaW5n
UmVzb2x2ZUJvdW5kc0Jsb2NrID0gbmlsOworICAgICAgICBbc2VsZiByZXNvbHZlQm91bmRzXTsK
KyAgICB9KSk7CisgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1F
X05PVywgKGFuaW1hdGlvbkR1cmF0aW9uICsgMC4xKSAqIE5TRUNfUEVSX1NFQyksIGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCksIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrLmdldCgpKTsKK30K
KworLSAodm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBl
cmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoQ0dSZWN0RXF1YWxU
b1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRyYW5z
Zm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47CisK
KyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJs
ZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xh
eWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFtZSA9
IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
ID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hTZW5k
UmlnaHQgX2ZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0IGNy
ZWF0ZUZlbmNlUG9ydF0pOworICAgICAgICAgICAgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLT5z
ZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZShzZWxmLnZpZGVvTGF5ZXJG
cmFtZS5zaXplKSwgX2ZlbmNlU2VuZFJpZ2h0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFtf
dmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06Q0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0
eV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEZyYW1lOnNlbGYuYm91bmRzXTsKKworICAgIFtD
QVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLCBMYXllckhvc3RpbmdDb250ZXh0
SUQgY29udGV4dElkKQoreworICAgIC8vIEluaXRpYWxseSwgYWxsIHRoZSBsYXllcnMgd2lsbCBi
ZSBlbXB0eSAoYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSAwKSBhbmQgaW52aXNpYmxlLgorICAg
IC8vIFRoZSByZW5kZXJlciB3aWxsIGNoYW5nZSB0aGUgc2l6ZXMgb2YgV0tWaWRlb0xheWVyUmVt
b3RlIHRvIHRyaWdnZXIgbGF5b3V0IG9mIHN1YmxheWVycyBhbmQgbWFrZSB0aGVtIHZpc2libGUu
CisgICAgV0tWaWRlb0xheWVyUmVtb3RlICp2aWRlb0xheWVyUmVtb3RlID0gW1tXS1ZpZGVvTGF5
ZXJSZW1vdGUgYWxsb2NdIGluaXRdOworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMCwgMCldOworI2lmbmRlZiBOREVCVUcKKyAgICBbdmlkZW9MYXllclJl
bW90ZSBzZXROYW1lOkAiV0tWaWRlb0xheWVyUmVtb3RlIl07CisjZW5kaWYKKworICAgIFt2aWRl
b0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTptZWRpYVBsYXllclByaXZh
dGVSZW1vdGVdOworCisgICAgYXV0byB2aWRlb1N1YmxheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4
dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJZCk7CisgICAg
W3ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJsYXllcjp2aWRlb1N1YmxheWVyLmdldCgpXTsK
KyAgICBbdmlkZW9MYXllclJlbW90ZSBhZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyLmdldCgpXTsK
KyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFtZTp2aWRlb0xheWVyUmVtb3RlLmJvdW5kc107CisK
KyAgICByZXR1cm4gdmlkZW9MYXllclJlbW90ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391122</attachid>
            <date>2020-02-18 17:24:28 -0800</date>
            <delta_ts>2020-02-18 17:31:24 -0800</delta_ts>
            <desc>Revise the patch based on review comments</desc>
            <filename>206132-landing.patch</filename>
            <type>text/plain</type>
            <size>46650</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1YjhkNGYwNzU0MC4uMGNjZTEwZjZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBuYW1lIChmb3IgZGVidWdnaW5nKSBvZiB0aGUgQ0FM
YXllciBjcmVhdGVkIGJ5IF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEIChUaGUgQ0FMYXll
ciB3aWxsIG5vdCBiZSBvbmx5IHVzZWQgYXMgdmlkZW8gbGF5ZXJzKS4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIGZpeGVzIHRoZSBvcmRlcmluZyBpc3N1ZSByZWxhdGVkIHRvIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIGFuZCBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gdGhlIFhjb2RlIHBy
b2plY3QgZmlsZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpd
KToKKwogMjAyMC0wMi0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW21hY09TXSBEb24ndCBmaXJlIHRpbWVycyB3aGVuIHRoZXJlIGlzIGEgcGVuZGluZyBy
ZW5kZXJpbmcgdXBkYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1OWM3Zjc2MWFlYi4uNmRkNjhi
OWI4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhl
IEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhl
IENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhwb3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5h
bCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwog
MjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
SzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2ViUHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQg
c3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tpZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggMGY5ZWFkN2Ji
OTUuLjUzM2Y3MGRkZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJl
bmRlckNvbnRleHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQog
KyAoTlNBcnJheSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7
CiArIChDQUNvbnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250
ZXh0V2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGYyMGQ1MmY1ZjI5Li5lNjBlMWFkMDc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJCTFE
MkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzND
M0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAw
OTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIy
OEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNC
NjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJ
blBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
OTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsK
IAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBF
IC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2
MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODQsNiArMTU4Myw3IEBACiAJCTUy
QjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMx
MUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1
OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NTExLDggKzY1MTEsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5
MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkw
MUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUz
RkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
NDUwLDYgKzg0NDgsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZE
REIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQx
QzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjczOSw4ICsyNjcz
OSw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJ
CQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMjk2NzAsNiArMjk2NzAsNyBAQAog
CQkJCUE4MTg1RjQwMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxODVGM0QwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEOTJGNTEzMjI2MEZGRUUwMEY4N0JCMyAvKiBEb2N1bWVudEZ1bGxz
Y3JlZW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODI2QkYyMjNGQjU5NzcwMEI5MjJCMSAvKiBE
b2N1bWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzM2MEFEQkE1REUw
MEE0NTU0RCAvKiBEb2N1bWVudExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUQyQkE4M0Mw
OUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RTA1N0ZBNjEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTMwNTQwLDcgKzMwNTQxLDYgQEAKIAkJCQk5NDc5NDkzODFFMDQ1OUZB
MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTQ3OTQ5M0ExRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE2NjEyMEE1RDNGMDBEQzAyQTAgLyogSlNEZXZpY2VN
b3Rpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4MjZCRjIyM0ZCNTk3NzAwQjkyMkIx
IC8qIERvY3VtZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODYwMDgxMTlE
QUZBMTAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU5RERDODMwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUFEREE5NEMyMTk2ODdBQTUwMDQ1MzAyOSAvKiBKU0RvY3VtZW50Q3VzdG9tLmgg
aW4gSGVhZGVycyAqLywKQEAgLTM0MjY3LDcgKzM0MjY3LDcgQEAKIAkJCQk3Q0U2ODM0NDE5MjE0
M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVy
c05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4MTU2MDA0NkVF
MzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywKLQkJ
CQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMERFMTcxNUQyQTIwMDY1OEQ5
OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFODhFMEUxMTcxNUQyQTIw
MDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2
NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQppbmRleCAxODA1YzBhNWY2Yy4uZjEw
Mjc0NDlmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCkBAIC04Miw3ICs4Miw3IEBA
CiB7CiAgICAgQ0FMYXllckhvc3QgKmxheWVySG9zdCA9IFtDQUxheWVySG9zdCBsYXllcl07CiAj
aWZuZGVmIE5ERUJVRwotICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIldlYlZpZGVvSG9zdGluZ0xh
eWVyIl07CisgICAgW2xheWVySG9zdCBzZXROYW1lOkAiSG9zdGluZyBsYXllciJdOwogI2VuZGlm
CiAgICAgbGF5ZXJIb3N0LmNvbnRleHRJZCA9IGNvbnRleHRJRDsKICAgICByZXR1cm4gbGF5ZXJI
b3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAyY2MwNjJmYTM4Mi4uZGJkNjU3NDJjZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTEgQEAKKzIwMjAtMDItMTggIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIFN5bmNocm9uaXplIHRoZSBwcm9wZXJ0
aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHByb2Nlc3Mgd2l0aCB0aGUgaG9zdGluZyBs
YXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBjcmVhdGVzIFdLVmlkZW9M
YXllclJlbW90ZSB3aG9zZSBzdWJsYXllciBpcyBjcmVhdGVkIGJ5IExheWVySG9zdGluZ0NvbnRl
eHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgpLgorICAgICAgICBUaGUg
V0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVyZXIgdG8gbWFuYWdl
IHRoZSB2aWRlbyBlbGVtZW50IGluIHRoZSBXZWIgcHJvY2Vzcy4gV2hlbiBpdHMgc2l6ZSBpcyBj
aGFuZ2VkIGJ5IHRoZSByZW5kZXJlciwKKyAgICAgICAgaXQgYXBwbGllcyBhIHRyYW5zZm9ybSB3
aXRob3V0IGNoYW5naW5nIGl0cyBhY3R1YWwgc2l6ZSwgYW5kIHNlbmRzIGEgbWVzc2FnZSB0byBN
ZWRpYVBsYXllclByaXZhdGVQcm94eSBpbiB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgdG8gY2hh
bmdlIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIgbGF5ZXIuIEFmdGVyIHRoYXQsIFdLVmlkZW9M
YXllclJlbW90ZSB3aWxsIHNldCBpdHMgc2l6ZSB0byB0aGUgY29ycmVjdCBvbmUgaW4gdGhlIFdl
YiBwcm9jZXNzIHNpZGUuCisgICAgICAgIFdlIG5lZWQgdG8gdXNlIGEgTWFjaFNlbmRSaWdodCB0
byBzeW5jaHJvbml6ZSB0aGUgdHJhbnNhY3Rpb25zIGluIHRoZSBXZWIgcHJvY2VzcyBhbmQgdGhl
IEdQVSBwcm9jZXNzLgorCisgICAgICAgIFdlIGhhdmUgdG8gdXNlIHN1Y2ggYSBwcm9jZXNzIHRv
IGNoYW5nZSB0aGUgYXBwZWFyYW5jZSBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUgaW4gb3JkZXIgdG8g
Z3VhcmFudGVlIHRoZSBzbW9vdGhuZXNzIHdoZW4gYSB1c2VyCisgICAgICAgIGNoYW5nZSB0aGUg
c2l6ZSBvZiBhIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNv
bnRlbnRCb3hSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxh
eWJhY2spOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmZpcnN0
VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90
ZUNvY29hLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1Zp
ZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTogQWRkZWQuCisgICAgICAgICgtW1dLVmlkZW9MYXllclJl
bW90ZSBpbml0XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBkZWFsbG9jXSk6Cisg
ICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBtZWRpYVBsYXllclByaXZhdGVSZW1vdGVdKToK
KyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHZpZGVvU3VibGF5ZXJdKToKKyAg
ICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6XSk6CisgICAgICAg
ICgtW1dLVmlkZW9MYXllclJlbW90ZSBsYXlvdXRTdWJsYXllcnNdKToKKyAgICAgICAgKC1bV0tW
aWRlb0xheWVyUmVtb3RlIHJlc29sdmVCb3VuZHNdKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRl
VmlkZW9MYXllclJlbW90ZSk6CisKIDIwMjAtMDItMTggIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gRG9uJ3QgZmlyZSB0aW1lcnMgd2hlbiB0aGVy
ZSBpcyBhIHBlbmRpbmcgcmVuZGVyaW5nIHVwZGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IGQ5
ZTNiZDM3MjcyLi45MGQ4YWRmNDc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMjksNiArMjks
NyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMYXllckhvc3RpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVB
dWRpb1RyYWNrUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5oIgpAQCAtMTA2LDEzICsxMDcsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojps
b2FkKFVSTCYmIHVybCwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYKICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAotdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZl
c1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIExheW91dFJlY3QgbGF5b3V0UmVjdCwg
ZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGNvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJv
b2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9D
b250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5n
Q29udGV4dElEPiYmIGNvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9w
bGF5ZXItPnNldFByaXZhdGVCcm93c2luZ01vZGUocHJpdmF0ZU1vZGUpOwogICAgIG1fcGxheWVy
LT5zZXRQcmVsb2FkKHByZWxvYWQpOwogICAgIG1fcGxheWVyLT5zZXRQcmVzZXJ2ZXNQaXRjaChw
cmVzZXJ2ZXNQaXRjaCk7CiAgICAgbV9wbGF5ZXItPnByZXBhcmVGb3JSZW5kZXJpbmcoKTsKLSAg
ICBtX3ZpZGVvQ29udGVudEJveFJlY3QgPSBsYXlvdXRSZWN0OwogICAgIG1fdmlkZW9Db250ZW50
U2NhbGUgPSB2aWRlb0NvbnRlbnRTY2FsZTsKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQgPSBM
YXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7CiAg
ICAgY29tcGxldGlvbkhhbmRsZXIobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSk7
CkBAIC00NjgsNiArNDY4LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllckVuZ2luZVVwZGF0ZWQoKQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICAvLyBJbml0aWFsbHkgdGhl
IHNpemUgb2YgdGhlIHBsYXRmb3JtTGF5ZXIgd2lsbCBiZSAweDAgYmVjYXVzZSB3ZSBkbyBub3Qg
cHJvdmlkZSBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgaW4gdGhpcyBjbGFzcy4KICAgICBt
X2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihtX3BsYXllci0+cGxhdGZvcm1MYXll
cigpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OkZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpLCBtX2lkKTsKIH0K
QEAgLTU0NiwxMSArNTQ3LDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1MYXlvdXRSZWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudEJv
eFJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX3ZpZGVvQ29udGVudEJveFJlY3Q7Ci19Ci0K
IGZsb2F0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlkZW9Db250ZW50U2NhbGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApp
bmRleCBiMjI2MzBmZGFkYi4uMTZiYjJkZGZhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtNDYsNiAr
NDYsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIFZpZGVvVHJhY2tQ
cml2YXRlOwpAQCAtNzYsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldENvbmZpZ3Vy
YXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CiAKLSAgICB2b2lkIHByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcs
IFdlYkNvcmU6OkxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+JiYpOworICAg
IHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZv
clJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4mJik7CiAgICAgdm9pZCBwcmVw
YXJlRm9yUmVuZGVyaW5nKCk7CiAKICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbiYmKT4mJik7CkBAIC0xMDksNiArMTEzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHZp
ZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsK
ICAgICB2b2lkIHRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwg
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSk7CiAKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKKwogI2lmIEVOQUJM
RShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxh
eWJhY2tEaXNhYmxlZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFy
Z2V0KGJvb2wpOwpAQCAtMTc4LDcgKzE4Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBs
YXllcklzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1
bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNW
aWRlbygpIGNvbnN0IGZpbmFsOwotICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJD
b250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVu
dHNTY2FsZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFs
OwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDhmODYxNWE0ZjVmLi5jYTY2MzE0ZGZiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291
bnRlZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgV2ViQ29yZTo6TGF5b3V0UmVj
dCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkgLT4gKE9wdGlvbmFsPFdlYktp
dDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisg
ICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+
IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJIb3N0aW5nQ29u
dGV4dElkKSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRpb25hbDxXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6Q29udGVudFR5
cGUgY29udGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKICAg
ICBDYW5jZWxMb2FkKCkKQEAgLTU3LDYgKzU3LDEwIEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlh
UGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgVmlkZW9UcmFja1NldFNlbGVjdGVkKFdl
YktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29sIGVuYWJsZWQp
CiAgICAgVGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6
Ok1vZGUgbW9kZSkKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFZpZGVvSW5saW5lU2l6
ZUZlbmNlZChXZWJDb3JlOjpJbnRTaXplIHNpemUsIE1hY2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdo
dCkKKyNlbmRpZgorCiAgICAgIyBQYWludAogICAgICMgUGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQKIApAQCAtODEsNyArODUsNiBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5
IE5vdFJlZkNvdW50ZWQgewogCiAgICAgQXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlKCkKICAg
ICBBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90
ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMzVmYzVkYmEwN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJSZW1vdGVNZWRpYVBsYXllclByb3h5Lmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0
ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmln
aHQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUs
IGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKK3sKKyAgICBtX2xheWVy
SG9zdGluZ0NvbnRleHQtPnNldEZlbmNlUG9ydChtYWNoU2VuZFJpZ2h0LnNlbmRSaWdodCgpKTsK
KyAgICAvLyBXZSBkbyBub3Qgd2FudCBhbmltYXRpb25zIGhlcmUKKyAgICBbQ0FUcmFuc2FjdGlv
biBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAg
ICBbbV9sYXllckhvc3RpbmdDb250ZXh0LT5yb290TGF5ZXIoKSBzZXRGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSldOworICAgIFtDQVRyYW5zYWN0aW9u
IGNvbW1pdF07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRl
eCBkMjRhODA0OGUzNC4uZGEyM2IwZTVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU3
LDEwICs1NywxMSBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyLmNw
cAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcAogTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCiAKK0dQVVByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiBHUFVQcm9j
ZXNzL2lvcy9HUFVQcm9jZXNzSU9TLm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1t
CitHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KLUdQVVByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFBsYXRm
b3JtL2NmL01vZHVsZUNGLmNwcAogCkBAIC01NTQsNiArNTU1LDggQEAgV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1Nl
cnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKK1dlYlByb2Nlc3MvR1BVL21l
ZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQorCiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5k
ZXggMjM3YmRlNDg3NWEuLmRlZjc4OTIzNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAt
MTkwLDcgKzE5MCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9jb250cm9sc01hbmFnZXJD
b250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50PiBtX2NsaWVudENvdW50
czsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGJjMDAwYmY3MDA3Li41OTdhMzMwYTdmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjgwLDYgKzI2ODAsNyBA
QAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JQcm94eU1l
c3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclByb3h5
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0
OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9y
VUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQwRUNFQUEyM0ZDODU4
NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZB
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2OTYsNiAr
MjY5NywxMCBAQAogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hh
cmVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUyREZBQzIzQTk1OUY4
MDAzRTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMURGREQwREYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURGREQwRTAyM0Y2
MEUxRjAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMURGREQwRTIyM0Y2MTBGMDAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1v
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMzIzRjYxMEZFMDBFOUI0OTAg
LyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkExODU4
REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5Mjg4NCAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNTQsNiArNTI1OSw3IEBACiAJCTA3OTIzMTJGMjM5QjNCMEMw
MDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICovLAogCQkJCTA3MUJD
NTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJ
CQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgg
Ki8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAgKi8sCkBAIC01MjcxLDYgKzUyNzcsOCBAQAogCQkJCTFEMzJGODlCMjNBODRCQTYw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAqLywKIAkJCQkwN0UxOUYwODIz
RDUzM0I5MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDdF
MTlGMDkyM0Q1MzNCQTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCAqLywKKwkJ
CQkxREZERDBFMzIzRjYxMEZFMDBFOUI0OTAgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbiAqLywKKwkJCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJl
bW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJEMzAwNjgwRDdDIC8qIFZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkpOwpAQCAtNTI4MCw2ICs1Mjg4LDcgQEAKIAkJ
MDdDNzVDMTcyMzk5QTNEQjAwODhFNjVCIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxRDBFQ0VBOTIzRkM4NEJCMDBEMTcyRjYgLyogY29j
b2EgKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlvVHJhY2tQ
cm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1ZGlv
VHJhY2tQcm94eS5oICovLAogCQkJCTA3MjVFRkFEMjM5QjAyNDUwMEE1MzhBOSAvKiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgKi8sCkBAIC02MTQ5LDYgKzYxNTgsMjMgQEAKIAkJ
CXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
MUQwRUNFQTkyM0ZDODRCQjAwRDE3MkY2IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTFEQUY1QTREMjNFQzlGNzkwMEI3
QjUxOCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJMURGREQwRTAyM0Y2MEUxRjAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5o
ICovLAorCQkJCTFERkREMERGMjNGNjBFMUUwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29j
b2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJMUYwMTgxNjgxODU4REMxNTAwRjkyODg0IC8qIENvY29hICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2Ni4uNmQyYWIyMTA4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5j
bHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1v
dGUuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTQyLDYg
KzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KQEAgLTkwLDE3ICs5MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJl
cGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkIHBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAgICBhdXRvIGxh
eW91dFJlY3QgPSBtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAgICBhdXRvIHNj
YWxlID0gbV9wbGF5ZXItPnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlBy
ZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHBy
ZXBhcmUsIGxheW91dFJlY3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZv
clBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwg
c2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4
dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBpZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBtX3ZpZGVvTGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxh
eWVyRm9ySG9zdGluZ0NvbnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAgICBtX3ZpZGVv
SW5saW5lTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRleHRJZC52YWx1
ZSgpKTsKICAgICB9LCBtX2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJh
bFNpemUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVB
dmFpbGFibGUoKQogeworICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAgIG1fcGxheWVy
LT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0OSw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAK
IFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICByZXR1cm4gbV92
aWRlb0lubGluZUxheWVyLmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwg
KFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKQEAgLTY3
MSwxNCArNjczLDIxIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCisjaWYgUExBVEZPUk0o
Q09DT0EpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9JbmxpbmVTaXpl
RmVuY2VkKGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFj
aFNlbmRSaWdodCkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6U2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKHNpemUsIG1hY2hTZW5kUmln
aHQpLCBtX2lkKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwgc28gdGhpcyBm
dW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVuZGVyIHRv
IGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwg
R0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCmluZGV4IDdmNzM5MDQxOTM3Li5jYzAzNDc3N2JiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1h
Y2hTZW5kUmlnaHQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZUVEN1
ZTsKIH0KQEAgLTg3LDYgKzkxLDkgQEAgcHVibGljOgogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWND
aGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVy
RW51bXM6Ok1vdmllTG9hZFR5cGUpOwogICAgIHZvaWQgc2l6ZUNoYW5nZWQoV2ViQ29yZTo6Rmxv
YXRTaXplKTsKICAgICB2b2lkIGZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKKyNlbmRpZgogCiAgICAg
dm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCByZW1vdmVSZW1vdGVB
dWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpOwpAQCAtMjI1LDEzICsyMzIs
NyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3Qg
ZmluYWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBmaW5hbDsKIAotICAg
IC8vIEluIHRoZSBDb2NvYSBXZWJLaXQgcG9ydCwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c2V0U2l6ZSgpIGRvZXMgbm90aGluZywKLSAgICAvLyBzbyB0aGUgV2ViIHByb2Nl
c3MgZG9lcyBub3QgbmVlZCB0byBzZW5kIElQQyBtZXNzYWdlcyB0byBjYWxsIGl0IGluIHRoZSBH
UFUgcHJvY2Vzcy4KLSAgICAvLyBPdGhlciBXZWJLaXQgcG9ydHMgbWF5IG5lZWQgdG8gZG8gdGhh
dC4KLSAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGZpbmFsIHsgfQot
CiAgICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKSBmaW5hbDsKLQogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7CiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwg
R0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7
CiAgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgp
IGZpbmFsOwpAQCAtMzQ4LDcgKzM0OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpNZWRp
YVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwotICAgIFJldGFp
blB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRyPFBsYXRmb3Jt
TGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIm
IG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAgIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmMyNDkwNmYyMWIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgQ0FMYXllcjsKKworY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0
YWluUHRyPENBTGF5ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlKiwgTGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgzNTgxMDhhNjQyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3Rl
Q29jb2EuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRlb0xheWVyUmVt
b3RlIDogQ0FMYXllcgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitAcHJvcGVydHkg
KG5vbmF0b21pYykgQ0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5
ZXJSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29j
b2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5hZjQ1NjAzMThmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCkBAIC0w
LDAgKzEsMTYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJW
aWRlb0xheWVyUmVtb3RlQ29jb2EuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExB
VEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbXBvcnQg
Ik1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZS5o
IgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5o
PgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0
ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFdLVmlkZW9M
YXllclJlbW90ZSB7CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZT4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKyAgICBDQUxheWVyKiBfdmlkZW9TdWJsYXll
cjsKKyAgICBDQUNvbnRleHQqIF9jb250ZXh0OworICAgIEJsb2NrUHRyPHZvaWQoKT4gX3BlbmRp
bmdSZXNvbHZlQm91bmRzQmxvY2s7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikKKyAgICAgICAgc2VsZi5tYXNrc1Rv
Qm91bmRzID0gWUVTOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7CisgICAgcmV0
dXJuIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAq
KW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIF9tZWRpYVBsYXllclByaXZhdGVSZW1v
dGUgPSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKK30KKworLSAoQ0FM
YXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5ZXI7Cit9CisK
Ky0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAg
ICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZvaWQpbGF5b3V0U3Vi
bGF5ZXJzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAhPSBzZWxmKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc291cmNlVmlkZW9GcmFt
ZSA9IHNlbGYudmlkZW9MYXllckZyYW1lOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRW
aWRlb0ZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3Jt
ID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUodGFyZ2V0VmlkZW9GcmFtZS53aWR0aCgpIC8g
c291cmNlVmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRWaWRlb0ZyYW1lLmhlaWdodCgpIC8gc291
cmNlVmlkZW9GcmFtZS5oZWlnaHQoKSk7CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Cisg
ICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChzZWxmLmJvdW5kcyks
IENHUmVjdEdldE1pZFkoc2VsZi5ib3VuZHMpKV07CisgICAgW192aWRlb1N1YmxheWVyIHNldEFm
ZmluZVRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisK
KyAgICBfY29udGV4dCA9IFtDQUNvbnRleHQgY3VycmVudENvbnRleHRdOworICAgIE5TVGltZUlu
dGVydmFsIGFuaW1hdGlvbkR1cmF0aW9uID0gW0NBVHJhbnNhY3Rpb24gYW5pbWF0aW9uRHVyYXRp
b25dOworICAgIGlmIChfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jaykKKyAgICAgICAgZGlzcGF0
Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrLmdldCgpKTsKKworICAg
IF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gbWFrZUJsb2NrUHRyKGRpc3BhdGNoX2Jsb2Nr
X2NyZWF0ZSgoZGlzcGF0Y2hfYmxvY2tfZmxhZ3NfdCkwLCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0
cjxXS1ZpZGVvTGF5ZXJSZW1vdGU+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gX3NlbGYgPSB3ZWFr
U2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFfc2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBfc2VsZi5nZXQoKS0+X3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2sgPSBuaWw7Cisg
ICAgICAgIFtfc2VsZiByZXNvbHZlQm91bmRzXTsKKyAgICB9KSk7CisKKyAgICAvLyBXZSB3YW50
IHRvIHdhaXQgZm9yIHNvbWUgc2hvcnQgdGltZSBhZnRlciB0aGUgY29tcGxldGlvbiBvZiB0aGUg
YW5pbWF0aW9uICh3ZSBjaG9vc2UgMTAwIG1zIGhlcmUpIHRvIGRpc3BhdGNoIHRoZSBibG9jawor
ICAgIC8vIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBYUEMgbWVzc2FnZXMgZnJvbSB0aGUgV2ViIHByb2Nl
c3MgdG8gdGhlIEdQVSBwcm9jZXNzLgorICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3RpbWUo
RElTUEFUQ0hfVElNRV9OT1csIChhbmltYXRpb25EdXJhdGlvbiArIDAuMSkgKiBOU0VDX1BFUl9T
RUMpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9j
ay5nZXQoKSk7Cit9CisKKy0gKHZvaWQpcmVzb2x2ZUJvdW5kcworeworICAgIGlmIChbX3ZpZGVv
U3VibGF5ZXIgc3VwZXJsYXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KENHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykgJiYg
Q0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KHNlbGYuYWZmaW5lVHJhbnNmb3JtKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0
aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisKKyAgICBpZiAoIUNHUmVjdEVxdWFsVG9SZWN0
KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykpIHsKKyAgICAgICAgc2VsZi52aWRl
b0xheWVyRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICAgICAgaWYgKGF1dG8gKm1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSA9IHNlbGYubWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKSB7CisgICAgICAg
ICAgICBNYWNoU2VuZFJpZ2h0IF9mZW5jZVNlbmRSaWdodCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0
KFtfY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsKKyAgICAgICAgICAgIG1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS0+c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKFdlYkNvcmU6OkludFNpemUoc2Vs
Zi52aWRlb0xheWVyRnJhbWUuc2l6ZSksIF9mZW5jZVNlbmRSaWdodCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNHQWZmaW5lVHJh
bnNmb3JtSWRlbnRpdHldOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRGcmFtZTpzZWxmLmJvdW5k
c107CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCitAZW5kCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSwgTGF5ZXJI
b3N0aW5nQ29udGV4dElEIGNvbnRleHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHksIGFsbCB0aGUg
bGF5ZXJzIHdpbGwgYmUgZW1wdHkgKGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgMCkgYW5kIGlu
dmlzaWJsZS4KKyAgICAvLyBUaGUgcmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNpemVzIG9mIFdL
VmlkZW9MYXllclJlbW90ZSB0byB0cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMgYW5kIG1ha2Ug
dGhlbSB2aXNpYmxlLgorICAgIFdLVmlkZW9MYXllclJlbW90ZSAqdmlkZW9MYXllclJlbW90ZSA9
IFtbV0tWaWRlb0xheWVyUmVtb3RlIGFsbG9jXSBpbml0XTsKKyAgICBbdmlkZW9MYXllclJlbW90
ZSBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDAsIDApXTsKKyNpZm5kZWYgTkRFQlVHCisgICAg
W3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TmFtZTpAIldLVmlkZW9MYXllclJlbW90ZSJdOworI2VuZGlm
CisKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6bWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlXTsKKworICAgIGF1dG8gdmlkZW9TdWJsYXllciA9IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250
ZXh0SWQpOworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6dmlkZW9TdWJs
YXllci5nZXQoKV07CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgYWRkU3VibGF5ZXI6dmlkZW9TdWJs
YXllci5nZXQoKV07CisgICAgW3ZpZGVvU3VibGF5ZXIgc2V0RnJhbWU6dmlkZW9MYXllclJlbW90
ZS5ib3VuZHNdOworCisgICAgcmV0dXJuIHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391123</attachid>
            <date>2020-02-18 17:31:24 -0800</date>
            <delta_ts>2020-02-18 19:36:19 -0800</delta_ts>
            <desc>Rebase the patch</desc>
            <filename>206132-landing-rebased.patch</filename>
            <type>text/plain</type>
            <size>45633</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZWNmNzI1ZTJmMy4uN2MwMTEwZGMwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBuYW1lIChmb3IgZGVidWdnaW5nKSBvZiB0aGUgQ0FM
YXllciBjcmVhdGVkIGJ5IF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEIChUaGUgQ0FMYXll
ciB3aWxsIG5vdCBiZSBvbmx5IHVzZWQgYXMgdmlkZW8gbGF5ZXJzKS4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIGZpeGVzIHRoZSBvcmRlcmluZyBpc3N1ZSByZWxhdGVkIHRvIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIGFuZCBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gdGhlIFhjb2RlIHBy
b2plY3QgZmlsZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpd
KToKKwogMjAyMC0wMi0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gUmVwbGFjZWQgZWxlbWVudHMgY2FuIGFsc28gZXN0YWJsaXNoIGZvcm1h
dHRpbmcgY29udGV4dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1OWM3Zjc2MWFlYi4uNmRkNjhi
OWI4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhl
IEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhl
IENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhwb3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5h
bCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwog
MjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
SzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2ViUHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQg
c3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tpZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggMGY5ZWFkN2Ji
OTUuLjUzM2Y3MGRkZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJl
bmRlckNvbnRleHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQog
KyAoTlNBcnJheSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7
CiArIChDQUNvbnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250
ZXh0V2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDc4YzgzN2E4Yzg0Li5mN2U4YzU2MzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJCTFE
MkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzND
M0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAw
OTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIy
OEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNC
NjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJ
blBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
OTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsK
IAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBF
IC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2
MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODIsNiArMTU4MSw3IEBACiAJCTUy
QjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMx
MUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1
OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NTEwLDggKzY1MTAsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5
MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkw
MUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUz
RkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
NDQ2LDYgKzg0NDQsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZE
REIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQx
QzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc1MCw4ICsyNjc1
MCw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJ
CQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMzQyNzcsNyArMzQyNzcsNyBAQAog
CQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0
QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBp
biBTb3VyY2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
REUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCmluZGV4
IDE4MDVjMGE1ZjZjLi5mMTAyNzQ0OWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0K
QEAgLTgyLDcgKzgyLDcgQEAKIHsKICAgICBDQUxheWVySG9zdCAqbGF5ZXJIb3N0ID0gW0NBTGF5
ZXJIb3N0IGxheWVyXTsKICNpZm5kZWYgTkRFQlVHCi0gICAgW2xheWVySG9zdCBzZXROYW1lOkAi
V2ViVmlkZW9Ib3N0aW5nTGF5ZXIiXTsKKyAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJIb3N0aW5n
IGxheWVyIl07CiAjZW5kaWYKICAgICBsYXllckhvc3QuY29udGV4dElkID0gY29udGV4dElEOwog
ICAgIHJldHVybiBsYXllckhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyMzNkMmNmZWU5Li4wZmFlMWI2MzY2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hy
b25pemUgdGhlIHByb3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3
aXRoIHRoZSBob3N0aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGNyZWF0ZXMgV0tWaWRlb0xheWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0
KCkuCisgICAgICAgIFRoZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSBy
ZW5kZXJlciB0byBtYW5hZ2UgdGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBX
aGVuIGl0cyBzaXplIGlzIGNoYW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBs
aWVzIGEgdHJhbnNmb3JtIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2Vu
ZHMgYSBtZXNzYWdlIHRvIE1lZGlhUGxheWVyUHJpdmF0ZVByb3h5IGluIHRoZSBHUFUgcHJvY2Vz
cworICAgICAgICB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllci4gQWZ0
ZXIgdGhhdCwgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRoZSBjb3Jy
ZWN0IG9uZSBpbiB0aGUgV2ViIHByb2Nlc3Mgc2lkZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2Ug
YSBNYWNoU2VuZFJpZ2h0IHRvIHN5bmNocm9uaXplIHRoZSB0cmFuc2FjdGlvbnMgaW4gdGhlIFdl
YiBwcm9jZXNzIGFuZCB0aGUgR1BVIHByb2Nlc3MuCisKKyAgICAgICAgV2UgaGF2ZSB0byB1c2Ug
c3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9mIFdLVmlkZW9MYXllclJl
bW90ZSBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHNtb290aG5lc3Mgd2hlbiBhIHVzZXIKKyAg
ICAgICAgY2hhbmdlIHRoZSBzaXplIG9mIGEgdmlkZW8gZWxlbWVudC4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5j
ZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlk
ZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJs
YXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAg
ICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVtb3RlKToKKz09PT09PT0KIDIwMjAtMDItMTgg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBB
bGxvdyBkaWZmZXJlbnQgYmFjay1lbmRzIGZvciBJbWFnZUJ1ZmZlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CmluZGV4IGQ5ZTNiZDM3MjcyLi45MGQ4YWRmNDc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAt
MjksNiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMYXllckhvc3RpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5oIgpAQCAtMTA2LDEzICsxMDcsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5Ojpsb2FkKFVSTCYmIHVybCwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiYKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KIAot
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2
YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29s
IHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIExheW91dFJlY3QgbGF5
b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGNvbnRleHRJZCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxv
YXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiYmIGNvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgbV9wbGF5ZXItPnNldFByaXZhdGVCcm93c2luZ01vZGUocHJpdmF0ZU1vZGUpOwogICAg
IG1fcGxheWVyLT5zZXRQcmVsb2FkKHByZWxvYWQpOwogICAgIG1fcGxheWVyLT5zZXRQcmVzZXJ2
ZXNQaXRjaChwcmVzZXJ2ZXNQaXRjaCk7CiAgICAgbV9wbGF5ZXItPnByZXBhcmVGb3JSZW5kZXJp
bmcoKTsKLSAgICBtX3ZpZGVvQ29udGVudEJveFJlY3QgPSBsYXlvdXRSZWN0OwogICAgIG1fdmlk
ZW9Db250ZW50U2NhbGUgPSB2aWRlb0NvbnRlbnRTY2FsZTsKICAgICBtX2xheWVySG9zdGluZ0Nv
bnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9j
ZXNzKCk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250
ZXh0SUQoKSk7CkBAIC00NjgsNiArNDY4LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICAvLyBJbml0
aWFsbHkgdGhlIHNpemUgb2YgdGhlIHBsYXRmb3JtTGF5ZXIgd2lsbCBiZSAweDAgYmVjYXVzZSB3
ZSBkbyBub3QgcHJvdmlkZSBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgaW4gdGhpcyBjbGFz
cy4KICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihtX3BsYXllci0+cGxh
dGZvcm1MYXllcigpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpLCBt
X2lkKTsKIH0KQEAgLTU0NiwxMSArNTQ3LDYgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1MYXlvdXRSZWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
Q29udGVudEJveFJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX3ZpZGVvQ29udGVudEJveFJl
Y3Q7Ci19Ci0KIGZsb2F0IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ29udGVu
dHNTY2FsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlkZW9Db250ZW50U2NhbGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuaAppbmRleCBiMjI2MzBmZGFkYi4uMTZiYjJkZGZhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApA
QCAtNDYsNiArNDYsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIFZp
ZGVvVHJhY2tQcml2YXRlOwpAQCAtNzYsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdl
dENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CiAKLSAgICB2
b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JS
ZW5kZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJik+
JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wg
cHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4mJik7CiAgICAg
dm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAKICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5
cGUmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbiYmKT4mJik7CkBAIC0xMDksNiArMTEzLDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHZpZGVvVHJhY2tTZXRTZWxlY3RlZChUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBib29sKTsKICAgICB2b2lkIHRleHRUcmFja1NldE1vZGUoVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9kZSk7CiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CisjZW5kaWYKKwog
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KGJvb2wpOwpAQCAtMTc4LDcgKzE4Niw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQ
bGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlh
UGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwotICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVk
aWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxh
eWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVz
ZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhmODYxNWE0ZjVmLi5jYTY2MzE0ZGZiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkg
Tm90UmVmQ291bnRlZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUs
IGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQs
IGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgV2ViQ29yZTo6
TGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkgLT4gKE9wdGlv
bmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXllckhvc3RpbmdDb250ZXh0SWQp
IEFzeW5jCisgICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50
U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJI
b3N0aW5nQ29udGV4dElkKSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRpb25hbDxXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6
Q29udGVudFR5cGUgY29udGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikg
QXN5bmMKICAgICBDYW5jZWxMb2FkKCkKQEAgLTU3LDYgKzU3LDEwIEBAIG1lc3NhZ2VzIC0+IFJl
bW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgVmlkZW9UcmFja1NldFNl
bGVjdGVkKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBib29s
IGVuYWJsZWQpCiAgICAgVGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgdHJhY2tJRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
a1ByaXZhdGU6Ok1vZGUgbW9kZSkKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZChXZWJDb3JlOjpJbnRTaXplIHNpemUsIE1hY2hTZW5kUmlnaHQgbWFj
aFNlbmRSaWdodCkKKyNlbmRpZgorCiAgICAgIyBQYWludAogICAgICMgUGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQKIApAQCAtODEsNyArODUsNiBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBs
YXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogCiAgICAgQXBwbGljYXRpb25XaWxsUmVzaWduQWN0
aXZlKCkKICAgICBBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCi0KIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMzVmYzVkYmEwN2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29h
Lm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJl
IG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJSZW1vdGVNZWRpYVBsYXll
clByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQor
CisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL1F1
YXJ0ekNvcmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2ltcG9ydCA8d3RmL01h
Y2hTZW5kUmlnaHQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNpemUsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKK3sKKyAg
ICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldEZlbmNlUG9ydChtYWNoU2VuZFJpZ2h0LnNlbmRS
aWdodCgpKTsKKyAgICAvLyBXZSBkbyBub3Qgd2FudCBhbmltYXRpb25zIGhlcmUKKyAgICBbQ0FU
cmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6
WUVTXTsKKyAgICBbbV9sYXllckhvc3RpbmdDb250ZXh0LT5yb290TGF5ZXIoKSBzZXRGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSldOworICAgIFtDQVRy
YW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCBkMjRhODA0OGUzNC4uZGEyM2IwZTVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKQEAgLTU3LDEwICs1NywxMSBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jl
c29sdmVyLmNwcAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENSZXNvbHZlckNvY29h
LmNwcAogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCiAKK0dQVVBy
b2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1t
CiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNzSU9TLm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9j
ZXNzTWFjLm1tCitHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlD
b2NvYS5tbQogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KLUdQVVBy
b2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1t
CiAKIFBsYXRmb3JtL2NmL01vZHVsZUNGLmNwcAogCkBAIC01NTQsNiArNTU1LDggQEAgV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KIAogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKK1dlYlByb2Nl
c3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQorCiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5jcHAKIAogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVNYWMubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmgKaW5kZXggMjM3YmRlNDg3NWEuLmRlZjc4OTIzNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9jb250cm9s
c01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50PiBtX2Ns
aWVudENvdW50czsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGJjMDAwYmY3MDA3Li41OTdhMzMwYTdmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjgwLDYg
KzI2ODAsNyBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0
b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3Bl
Y3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3Rv
clVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JV
SU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OUIyM0E4NEJB
NjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI2OTYsNiArMjY5NywxMCBAQAogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFy
ZVNoZWV0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFy
ZVNoZWV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEz
MDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLU2hhcmVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUyREZB
QzIzQTk1OUY4MDAzRTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMURGREQwREYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZp
ZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURG
REQwRTAyM0Y2MEUxRjAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURGREQwRTIyM0Y2MTBGMDAwRTlCNDkwIC8qIFZpZGVv
TGF5ZXJSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXll
clJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMzIzRjYxMEZF
MDBFOUI0OTAgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYw
MTgxNkExODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5
Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNTQsNiArNTI1OSw3IEBACiAJCTA3OTIzMTJG
MjM5QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMURBRjVBNEQyM0VDOUY3OTAwQjdCNTE4IC8qIGNvY29hICovLAog
CQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5j
cHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAgKi8sCkBAIC01MjcxLDYgKzUyNzcsOCBAQAogCQkJCTFEMzJGODlC
MjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAqLywKIAkJCQkw
N0UxOUYwODIzRDUzM0I5MDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8s
CiAJCQkJMDdFMTlGMDkyM0Q1MzNCQTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUu
aCAqLywKKwkJCQkxREZERDBFMzIzRjYxMEZFMDBFOUI0OTAgLyogVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZS5tZXNzYWdlcy5pbiAqLywKKwkJCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlk
ZW9MYXllclJlbW90ZS5oICovLAogCQkJCTA3MUJDNTgzMjNDQzJCRDUwMDY4MEQ3QyAvKiBWaWRl
b1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1ODIyM0NDMkJEMzAwNjgwRDdD
IC8qIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkpOwpAQCAtNTI4MCw2ICs1Mjg4
LDcgQEAKIAkJMDdDNzVDMTcyMzk5QTNEQjAwODhFNjVCIC8qIG1lZGlhICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxRDBFQ0VBOTIzRkM4NEJCMDBEMTcy
RjYgLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1N0UyM0NBNURCMTAwNjgwRDdDIC8qIFJlbW90ZUF1
ZGlvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1N0YyM0NBNURCMTAwNjgwRDdDIC8qIFJl
bW90ZUF1ZGlvVHJhY2tQcm94eS5oICovLAogCQkJCTA3MjVFRkFEMjM5QjAyNDUwMEE1MzhBOSAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgKi8sCkBAIC02MTQ5LDYgKzYxNTgs
MjMgQEAKIAkJCXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJMUQwRUNFQTkyM0ZDODRCQjAwRDE3MkY2IC8qIGNvY29hICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcy
RjYgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGgg
PSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTFEQUY1QTREMjNF
QzlGNzkwMEI3QjUxOCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJMURGREQwRTAyM0Y2MEUxRjAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1v
dGVDb2NvYS5oICovLAorCQkJCTFERkREMERGMjNGNjBFMUUwMEU5QjQ5MCAvKiBWaWRlb0xheWVy
UmVtb3RlQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUYwMTgxNjgxODU4REMxNTAwRjkyODg0IC8qIENvY29h
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcAppbmRleCA5ZGMwZWJiNjA2Ni4uNmQyYWIyMTA4YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9u
LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUgIlZpZGVv
TGF5ZXJSZW1vdGUuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
QEAgLTQyLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUg
PHd0Zi9VUkwuaD4KQEAgLTkwLDE3ICs5MiwxNiBAQCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQ
cmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKLSAg
ICBhdXRvIGxheW91dFJlY3QgPSBtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKTsKICAg
ICBhdXRvIHNjYWxlID0gbV9wbGF5ZXItPnBsYXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVz
UGl0Y2gsIHByZXBhcmUsIGxheW91dFJlY3QsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwg
cHJlcGFyZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1
dG8gY29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWNvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQ
bGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQoY29udGV4dElkLnZhbHVlKCkpOworICAgICAg
ICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGNvbnRl
eHRJZC52YWx1ZSgpKTsKICAgICB9LCBtX2lkKTsKIH0KIApAQCAtMzA1LDYgKzMwNiw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzaXplQ2hhbmdlZChXZWJDb3JlOjpGbG9hdFNp
emUgbmF0dXJhbFNpemUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpmaXJzdFZp
ZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogICAg
IG1fcGxheWVyLT5maXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKIH0KIApAQCAtNTQ3LDcgKzU0
OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJp
dmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZv
cm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKTsKKyAgICBy
ZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KSkKQEAgLTY3MSwxNCArNjczLDIxIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCisjaWYg
UExBVEZPUk0oQ09DT0EpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9J
bmxpbmVTaXplRmVuY2VkKGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IFdURjo6TWFjaFNlbmRS
aWdodCYgbWFjaFNlbmRSaWdodCkKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6U2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKHNpemUsIG1h
Y2hTZW5kUmlnaHQpLCBtX2lkKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFdlIGFsd2F5cyByZW5kZXIgdG8gYSBsYXllciwg
c28gdGhpcyBmdW5jdGlvbiBpcyBlbXB0eS4KIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMg
cmVuZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwg
R0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDdmNzM5MDQxOTM3Li5jYzAzNDc3N2JiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9N
ZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV1RGIHsK
K2NsYXNzIE1hY2hTZW5kUmlnaHQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElT
T1dlYlZUVEN1ZTsKIH0KQEAgLTg3LDYgKzkxLDkgQEAgcHVibGljOgogICAgIHZvaWQgY2hhcmFj
dGVyaXN0aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogICAgIHZvaWQgc2l6ZUNoYW5nZWQoV2Vi
Q29yZTo6RmxvYXRTaXplKTsKICAgICB2b2lkIGZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKKyNlbmRp
ZgogCiAgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCByZW1v
dmVSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpOwpAQCAtMjI1
LDEzICsyMzIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVz
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBmaW5h
bDsKIAotICAgIC8vIEluIHRoZSBDb2NvYSBXZWJLaXQgcG9ydCwgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6c2V0U2l6ZSgpIGRvZXMgbm90aGluZywKLSAgICAvLyBzbyB0aGUg
V2ViIHByb2Nlc3MgZG9lcyBub3QgbmVlZCB0byBzZW5kIElQQyBtZXNzYWdlcyB0byBjYWxsIGl0
IGluIHRoZSBHUFUgcHJvY2Vzcy4KLSAgICAvLyBPdGhlciBXZWJLaXQgcG9ydHMgbWF5IG5lZWQg
dG8gZG8gdGhhdC4KLSAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGZp
bmFsIHsgfQotCiAgICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKLQogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JikgZmluYWw7CiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1
cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBH
Q0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9v
bCkgZmluYWw7CiAgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJy
ZW50VGltZSgpIGZpbmFsOwpAQCAtMzQ4LDcgKzM0OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJD
b3JlOjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwot
ICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRy
PFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMyNDkwNmYyMWIwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIkxheWVySG9zdGluZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgQ0FMYXll
cjsKKworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmV0YWluUHRyPENBTGF5ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKiwgTGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgzNTgxMDhhNjQyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xh
eWVyUmVtb3RlQ29jb2EuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Cit9CisKK0BpbnRlcmZhY2UgV0tWaWRl
b0xheWVyUmVtb3RlIDogQ0FMYXllcgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENBTGF5ZXIgKnZpZGVvU3VibGF5ZXI7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQ0dSZWN0IHZpZGVvTGF5ZXJGcmFtZTsKK0BlbmQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29h
L1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5hZjQ1NjAzMThmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
Lm1tCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQuaCIK
KyNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgorI2ltcG9ydCAiVmlkZW9MYXll
clJlbW90ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPHd0Zi9C
bG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbXBvcnQgPHd0Zi9X
ZWFrT2JqQ1B0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KKworQGltcGxlbWVudGF0aW9u
IFdLVmlkZW9MYXllclJlbW90ZSB7CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZT4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKyAgICBDQUxheWVyKiBfdmlk
ZW9TdWJsYXllcjsKKyAgICBDQUNvbnRleHQqIF9jb250ZXh0OworICAgIEJsb2NrUHRyPHZvaWQo
KT4gX3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2s7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0
Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikKKyAgICAgICAgc2Vs
Zi5tYXNrc1RvQm91bmRzID0gWUVTOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICopbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlCit7
CisgICAgcmV0dXJuIF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUuZ2V0KCk7Cit9CisKKy0gKHZv
aWQpc2V0TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSAqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIF9tZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUgPSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKTsKK30K
KworLSAoQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5
ZXI7Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5
ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZvaWQp
bGF5b3V0U3VibGF5ZXJzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAh
PSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgc291cmNl
VmlkZW9GcmFtZSA9IHNlbGYudmlkZW9MYXllckZyYW1lOworICAgIFdlYkNvcmU6OkZsb2F0UmVj
dCB0YXJnZXRWaWRlb0ZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUodGFyZ2V0VmlkZW9GcmFtZS53
aWR0aCgpIC8gc291cmNlVmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRWaWRlb0ZyYW1lLmhlaWdo
dCgpIC8gc291cmNlVmlkZW9GcmFtZS5oZWlnaHQoKSk7CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBi
ZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBb
X3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChzZWxm
LmJvdW5kcyksIENHUmVjdEdldE1pZFkoc2VsZi5ib3VuZHMpKV07CisgICAgW192aWRlb1N1Ymxh
eWVyIHNldEFmZmluZVRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5zYWN0aW9uIGNv
bW1pdF07CisKKyAgICBfY29udGV4dCA9IFtDQUNvbnRleHQgY3VycmVudENvbnRleHRdOworICAg
IE5TVGltZUludGVydmFsIGFuaW1hdGlvbkR1cmF0aW9uID0gW0NBVHJhbnNhY3Rpb24gYW5pbWF0
aW9uRHVyYXRpb25dOworICAgIGlmIChfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jaykKKyAgICAg
ICAgZGlzcGF0Y2hfYmxvY2tfY2FuY2VsKF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrLmdldCgp
KTsKKworICAgIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gbWFrZUJsb2NrUHRyKGRpc3Bh
dGNoX2Jsb2NrX2NyZWF0ZSgoZGlzcGF0Y2hfYmxvY2tfZmxhZ3NfdCkwLCBbd2Vha1NlbGYgPSBX
ZWFrT2JqQ1B0cjxXS1ZpZGVvTGF5ZXJSZW1vdGU+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gX3Nl
bGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFfc2VsZikKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBfc2VsZi5nZXQoKS0+X3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2sg
PSBuaWw7CisgICAgICAgIFtfc2VsZiByZXNvbHZlQm91bmRzXTsKKyAgICB9KSk7CisKKyAgICAv
LyBXZSB3YW50IHRvIHdhaXQgZm9yIHNvbWUgc2hvcnQgdGltZSBhZnRlciB0aGUgY29tcGxldGlv
biBvZiB0aGUgYW5pbWF0aW9uICh3ZSBjaG9vc2UgMTAwIG1zIGhlcmUpIHRvIGRpc3BhdGNoIHRo
ZSBibG9jaworICAgIC8vIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBYUEMgbWVzc2FnZXMgZnJvbSB0aGUg
V2ViIHByb2Nlc3MgdG8gdGhlIEdQVSBwcm9jZXNzLgorICAgIGRpc3BhdGNoX2FmdGVyKGRpc3Bh
dGNoX3RpbWUoRElTUEFUQ0hfVElNRV9OT1csIChhbmltYXRpb25EdXJhdGlvbiArIDAuMSkgKiBO
U0VDX1BFUl9TRUMpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBfcGVuZGluZ1Jlc29sdmVC
b3VuZHNCbG9jay5nZXQoKSk7Cit9CisKKy0gKHZvaWQpcmVzb2x2ZUJvdW5kcworeworICAgIGlm
IChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJv
dW5kcykgJiYgQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KHNlbGYuYWZmaW5lVHJhbnNmb3Jt
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtD
QVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisKKyAgICBpZiAoIUNHUmVjdEVx
dWFsVG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykpIHsKKyAgICAgICAg
c2VsZi52aWRlb0xheWVyRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAgICAgICAgaWYgKGF1dG8gKm1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSA9IHNlbGYubWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKSB7
CisgICAgICAgICAgICBNYWNoU2VuZFJpZ2h0IF9mZW5jZVNlbmRSaWdodCA9IE1hY2hTZW5kUmln
aHQ6OmFkb3B0KFtfY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsKKyAgICAgICAgICAgIG1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS0+c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKFdlYkNvcmU6Oklu
dFNpemUoc2VsZi52aWRlb0xheWVyRnJhbWUuc2l6ZSksIF9mZW5jZVNlbmRSaWdodCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNH
QWZmaW5lVHJhbnNmb3JtSWRlbnRpdHldOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRGcmFtZTpz
ZWxmLmJvdW5kc107CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCitAZW5kCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXll
clJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElEIGNvbnRleHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHks
IGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUgZW1wdHkgKGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUg
MCkgYW5kIGludmlzaWJsZS4KKyAgICAvLyBUaGUgcmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNp
emVzIG9mIFdLVmlkZW9MYXllclJlbW90ZSB0byB0cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMg
YW5kIG1ha2UgdGhlbSB2aXNpYmxlLgorICAgIFdLVmlkZW9MYXllclJlbW90ZSAqdmlkZW9MYXll
clJlbW90ZSA9IFtbV0tWaWRlb0xheWVyUmVtb3RlIGFsbG9jXSBpbml0XTsKKyAgICBbdmlkZW9M
YXllclJlbW90ZSBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDAsIDApXTsKKyNpZm5kZWYgTkRF
QlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TmFtZTpAIldLVmlkZW9MYXllclJlbW90ZSJd
OworI2VuZGlmCisKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlXTsKKworICAgIGF1dG8gdmlkZW9TdWJsYXll
ciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29u
dGV4dChjb250ZXh0SWQpOworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldFZpZGVvU3VibGF5ZXI6
dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgYWRkU3VibGF5ZXI6
dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvU3VibGF5ZXIgc2V0RnJhbWU6dmlkZW9M
YXllclJlbW90ZS5ib3VuZHNdOworCisgICAgcmV0dXJuIHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391129</attachid>
            <date>2020-02-18 19:36:19 -0800</date>
            <delta_ts>2020-02-19 10:30:50 -0800</delta_ts>
            <desc>Fix a unified build failure on iOS</desc>
            <filename>206132-landing-rebased-v2.patch</filename>
            <type>text/plain</type>
            <size>46236</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZWNmNzI1ZTJmMy4uN2MwMTEwZGMwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBuYW1lIChmb3IgZGVidWdnaW5nKSBvZiB0aGUgQ0FM
YXllciBjcmVhdGVkIGJ5IF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEIChUaGUgQ0FMYXll
ciB3aWxsIG5vdCBiZSBvbmx5IHVzZWQgYXMgdmlkZW8gbGF5ZXJzKS4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIGZpeGVzIHRoZSBvcmRlcmluZyBpc3N1ZSByZWxhdGVkIHRvIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIGFuZCBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gdGhlIFhjb2RlIHBy
b2plY3QgZmlsZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpd
KToKKwogMjAyMC0wMi0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gUmVwbGFjZWQgZWxlbWVudHMgY2FuIGFsc28gZXN0YWJsaXNoIGZvcm1h
dHRpbmcgY29udGV4dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1OWM3Zjc2MWFlYi4uNmRkNjhi
OWI4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhl
IEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhl
IENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhwb3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5h
bCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwog
MjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
SzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2ViUHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQg
c3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tpZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggMGY5ZWFkN2Ji
OTUuLjUzM2Y3MGRkZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJl
bmRlckNvbnRleHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQog
KyAoTlNBcnJheSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7
CiArIChDQUNvbnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250
ZXh0V2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDc4YzgzN2E4Yzg0Li5mN2U4YzU2MzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJCTFE
MkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzND
M0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAw
OTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIy
OEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNC
NjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJ
blBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
OTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsK
IAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBF
IC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2
MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODIsNiArMTU4MSw3IEBACiAJCTUy
QjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMx
MUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1
OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NTEwLDggKzY1MTAsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5
MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkw
MUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUz
RkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
NDQ2LDYgKzg0NDQsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZE
REIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQx
QzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc1MCw4ICsyNjc1
MCw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJ
CQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMzQyNzcsNyArMzQyNzcsNyBAQAog
CQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0
QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBp
biBTb3VyY2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
REUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCmluZGV4
IDE4MDVjMGE1ZjZjLi5mMTAyNzQ0OWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0K
QEAgLTgyLDcgKzgyLDcgQEAKIHsKICAgICBDQUxheWVySG9zdCAqbGF5ZXJIb3N0ID0gW0NBTGF5
ZXJIb3N0IGxheWVyXTsKICNpZm5kZWYgTkRFQlVHCi0gICAgW2xheWVySG9zdCBzZXROYW1lOkAi
V2ViVmlkZW9Ib3N0aW5nTGF5ZXIiXTsKKyAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJIb3N0aW5n
IGxheWVyIl07CiAjZW5kaWYKICAgICBsYXllckhvc3QuY29udGV4dElkID0gY29udGV4dElEOwog
ICAgIHJldHVybiBsYXllckhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyMzNkMmNmZWU5Li5kYmYyYTJmZWQz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hy
b25pemUgdGhlIHByb3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3
aXRoIHRoZSBob3N0aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGNyZWF0ZXMgV0tWaWRlb0xheWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0
KCkuCisgICAgICAgIFRoZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSBy
ZW5kZXJlciB0byBtYW5hZ2UgdGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBX
aGVuIGl0cyBzaXplIGlzIGNoYW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBs
aWVzIGEgdHJhbnNmb3JtIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2Vu
ZHMgYSBtZXNzYWdlIHRvIE1lZGlhUGxheWVyUHJpdmF0ZVByb3h5IGluIHRoZSBHUFUgcHJvY2Vz
cworICAgICAgICB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllci4gQWZ0
ZXIgdGhhdCwgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRoZSBjb3Jy
ZWN0IG9uZSBpbiB0aGUgV2ViIHByb2Nlc3Mgc2lkZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2Ug
YSBNYWNoU2VuZFJpZ2h0IHRvIHN5bmNocm9uaXplIHRoZSB0cmFuc2FjdGlvbnMgaW4gdGhlIFdl
YiBwcm9jZXNzIGFuZCB0aGUgR1BVIHByb2Nlc3MuCisKKyAgICAgICAgV2UgaGF2ZSB0byB1c2Ug
c3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9mIFdLVmlkZW9MYXllclJl
bW90ZSBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHNtb290aG5lc3Mgd2hlbiBhIHVzZXIKKyAg
ICAgICAgY2hhbmdlIHRoZSBzaXplIG9mIGEgdmlkZW8gZWxlbWVudC4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5j
ZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlk
ZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJs
YXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAg
ICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06IEZpeGVkIGEgdW5pZmllZCBidWlsZCBmYWlsdXJl
LgorCiAyMDIwLTAyLTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWxsb3cgZGlmZmVyZW50IGJhY2stZW5kcyBmb3IgSW1hZ2VCdWZmZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3Mi4uOTBkOGFkZjQ3NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
ICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTGF5ZXJI
b3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTEwNiwxMyArMTA3LDEyIEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4mCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBs
YXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxv
YWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5n
LCBMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0
SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpw
cmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVG
b3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKHBy
aXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAgICBtX3Bs
YXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogICAgIG1fcGxheWVyLT5w
cmVwYXJlRm9yUmVuZGVyaW5nKCk7Ci0gICAgbV92aWRlb0NvbnRlbnRCb3hSZWN0ID0gbGF5b3V0
UmVjdDsKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAg
bV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwpAQCAtNDY4LDYgKzQ2OCw3IEBAIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgp
CiB7CisgICAgLy8gSW5pdGlhbGx5IHRoZSBzaXplIG9mIHRoZSBwbGF0Zm9ybUxheWVyIHdpbGwg
YmUgMHgwIGJlY2F1c2Ugd2UgZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCgpIGluIHRoaXMgY2xhc3MuCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5
ZXIobV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKSwgbV9pZCk7CiB9CkBAIC01NDYsMTEgKzU0Nyw2IEBAIGJvb2wgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotTGF5b3V0UmVjdCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92
aWRlb0NvbnRlbnRCb3hSZWN0OwotfQotCiBmbG9hdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZpZGVvQ29u
dGVudFNjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYjIyNjMwZmRhZGIuLjE2YmIyZGRmYTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWFj
aFNlbmRSaWdodDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1By
aXZhdGU7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTc2LDcgKzgwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRl
b0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3Rp
bmdDb250ZXh0SUQ+JiYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4mJik+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBs
b2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzExMywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6
Ok1vZGUpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdo
dCYpOworI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAg
IHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODYsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3Jl
OjpMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAg
ICBmbG9hdCBtZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1Zi4u
Y2E2NjMxNGRmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3
ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5k
ZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50
U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJI
b3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBw
cmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZs
b2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVy
bCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRl
bnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVt
KSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXll
ckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01Nyw2ICs1NywxMCBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAg
IFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBN
YWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMgUGFpbnQKICAgICAj
IFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0
aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM1ZmM1ZGJhMDdkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlh
UGxheWVyUHJveHlDb2NvYS5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQ
TEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2ltcG9y
dCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4K
KyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hT
ZW5kUmlnaHQpCit7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFj
aFNlbmRSaWdodC5zZW5kUmlnaHQoKSk7CisgICAgLy8gV2UgZG8gbm90IHdhbnQgYW5pbWF0aW9u
cyBoZXJlCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNl
dERpc2FibGVBY3Rpb25zOllFU107CisgICAgW21fbGF5ZXJIb3N0aW5nQ29udGV4dC0+cm9vdExh
eWVyKCkgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZDI0YTgwNDhlMzQuLmRhMjNiMGU1ZDMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01NywxMCArNTcsMTEgQEAgTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENSZXNvbHZlci5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUmVzb2x2ZXJDb2NvYS5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29j
a2V0LmNwcAogCitHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJv
Y2Vzcy9tYWMvR1BVUHJvY2Vzc01hYy5tbQorR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29jb2EubW0KIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tCi1HUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9jZi9Nb2R1bGVDRi5jcHAKIApAQCAtNTU0LDYg
KzU1NSw4IEBAIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2lu
dC5tbQogCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KKwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIu
Y3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlTWFjLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDIzN2JkZTQ4NzVhLi5kZWY3ODkyMzUxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIHVp
bnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9OwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMp
ICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzAwMGJmNzAwNy4uNTk3YTMz
MGE3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjY4MCw2ICsyNjgwLDcgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8q
IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0
b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4MjNBODQ2NUEw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTkyM0E4
NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNjk2LDYgKzI2OTcsMTAgQEAKIAkJMURCQkIwNjEyMTFDQzNDQjAw
NTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MURFMEQwOTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMERGMjNGNjBFMUUwMEU5QjQ5
MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3Rl
Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90
ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUyMjNGNjEwRjAw
MEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNjkxODU4REMxNTAw
RjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAx
ODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjU0LDYgKzUyNTks
NyBAQAogCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUx
OCAvKiBjb2NvYSAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyogQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjNDOTNCQjcwMDY4MEQ3QyAvKiBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThF
MiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLApAQCAtNTI3MSw2ICs1Mjc3LDgg
QEAKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmggKi8sCiAJCQkJMDdFMTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwICovLAogCQkJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZCNCAvKiBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMURGREQwRTIyM0Y2MTBG
MDAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkwNzFCQzU4MzIzQ0MyQkQ1
MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTgy
MjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJKTsK
QEAgLTUyODAsNiArNTI4OCw3IEBACiAJCTA3Qzc1QzE3MjM5OUEzREIwMDg4RTY1QiAvKiBtZWRp
YSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QTkyM0ZDODRCQjAwRDE3MkY2IC8qIGNvY29hICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4
MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVE
QjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovLApA
QCAtNjE0OSw2ICs2MTU4LDIzIEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2Nv
YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLywK
KwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OworCQkxREFGNUE0RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAv
KiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLywKKwkJCQkxREZERDBERjIzRjYwRTFFMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2Nv
YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGMDE4MTY4MTg1OERDMTUw
MEY5Mjg4NCAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOWRjMGViYjYwNjYuLjZkMmFi
MjEwOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIK
KyNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCkBAIC00Miw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC05MCwxNyArOTIsMTYgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmUpCiB7Ci0gICAgYXV0byBsYXlvdXRSZWN0ID0gbV9wbGF5ZXItPnBsYXllckNvbnRl
bnRCb3hSZWN0KCk7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50c1Nj
YWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHBy
ZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBsYXlvdXRSZWN0LCBzY2FsZSksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUg
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwg
cHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFjb250ZXh0SWQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJZC52
YWx1ZSgpKTsKKyAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9MYXllclJl
bW90ZSh0aGlzLCBjb250ZXh0SWQudmFsdWUoKSk7CiAgICAgfSwgbV9pZCk7CiB9CiAKQEAgLTMw
NSw2ICszMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNoYW5nZWQo
V2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICBJTkZPX0xPRyhMT0dJ
REVOVElGSUVSKTsKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiB9
CiAKQEAgLTU0Nyw3ICs1NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9h
ZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvTGF5
ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKIH0KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkpCkBAIC02NzEsMTQgKzY3MywyMSBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBzaXplLCBjb25z
dCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5saW5lU2l6
ZUZlbmNlZChzaXplLCBtYWNoU2VuZFJpZ2h0KSwgbV9pZCk7Cit9CisjZW5kaWYKKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVu
ZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVt
cHR5LgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzNy4uY2Mw
MzQ3NzdiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzgsNiArMzgsMTAgQEAK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2ICs5MSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBib29sIGhhc1Zp
ZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKICAgICB2b2lk
IHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAgdm9pZCBmaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5s
aW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2Vu
ZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dy
ZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29jb2EgV2ViS2l0IHBvcnQsIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUoKSBkb2VzIG5vdGhpbmcs
Ci0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5lZWQgdG8gc2VuZCBJUEMgbWVz
c2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0gICAgLy8gT3RoZXIgV2ViS2l0
IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7Ci0KICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJvb2wgY29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxh
dGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NH
TGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0OCw3ICszNDksNyBAQCBwcml2
YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9Owog
ICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVkaWFS
ZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0xheWVy
OworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmll
cjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFiMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRl
ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitP
QkpDX0NMQVNTIENBTGF5ZXI7CisKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVy
UmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSosIExheWVySG9zdGluZ0NvbnRleHRJRCk7
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1v
dGVDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzU4MTA4
YTY0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworfQorCitA
aW50ZXJmYWNlIFdLVmlkZW9MYXllclJlbW90ZSA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBhc3NpZ24pIFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICptZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDQUxheWVyICp2
aWRlb1N1YmxheWVyOworQHByb3BlcnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb0xheWVyRnJh
bWU7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWY0NTYwMzE4ZjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZUNvY29hLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJMYXllckhv
c3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKKyNp
bXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+
CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+
CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrUHRyLmg+CisK
K0BpbXBsZW1lbnRhdGlvbiBXS1ZpZGVvTGF5ZXJSZW1vdGUgeworICAgIFdlYWtQdHI8V2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Cisg
ICAgQ0FMYXllciogX3ZpZGVvU3VibGF5ZXI7CisgICAgQ0FDb250ZXh0KiBfY29udGV4dDsKKyAg
ICBCbG9ja1B0cjx2b2lkKCk+IF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrOworfQorCistIChp
bnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKHNl
bGYpCisgICAgICAgIHNlbGYubWFza3NUb0JvdW5kcyA9IFlFUzsKKworICAgIHJldHVybiBzZWxm
OworfQorCistIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdl
dCgpOworfQorCistICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAg
ICBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSk7Cit9CisKKy0gKENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgcmV0
dXJuIF92aWRlb1N1YmxheWVyOworfQorCistICh2b2lkKXNldFZpZGVvU3VibGF5ZXI6KENBTGF5
ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVy
OworfQorCistICh2b2lkKWxheW91dFN1YmxheWVycworeworICAgIGlmIChbX3ZpZGVvU3VibGF5
ZXIgc3VwZXJsYXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6
RmxvYXRSZWN0IHNvdXJjZVZpZGVvRnJhbWUgPSBzZWxmLnZpZGVvTGF5ZXJGcmFtZTsKKyAgICBX
ZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VmlkZW9GcmFtZSA9IHNlbGYuYm91bmRzOworICAgIENH
QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHRh
cmdldFZpZGVvRnJhbWUud2lkdGgoKSAvIHNvdXJjZVZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0
VmlkZW9GcmFtZS5oZWlnaHQoKSAvIHNvdXJjZVZpZGVvRnJhbWUuaGVpZ2h0KCkpOworCisgICAg
W0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rp
b25zOllFU107CisgICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENH
UmVjdEdldE1pZFgoc2VsZi5ib3VuZHMpLCBDR1JlY3RHZXRNaWRZKHNlbGYuYm91bmRzKSldOwor
ICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBjb21taXRdOworCisgICAgX2NvbnRleHQgPSBbQ0FDb250ZXh0IGN1cnJl
bnRDb250ZXh0XTsKKyAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtDQVRy
YW5zYWN0aW9uIGFuaW1hdGlvbkR1cmF0aW9uXTsKKyAgICBpZiAoX3BlbmRpbmdSZXNvbHZlQm91
bmRzQmxvY2spCisgICAgICAgIGRpc3BhdGNoX2Jsb2NrX2NhbmNlbChfcGVuZGluZ1Jlc29sdmVC
b3VuZHNCbG9jay5nZXQoKSk7CisKKyAgICBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IG1h
a2VCbG9ja1B0cihkaXNwYXRjaF9ibG9ja19jcmVhdGUoKGRpc3BhdGNoX2Jsb2NrX2ZsYWdzX3Qp
MCwgW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tWaWRlb0xheWVyUmVtb3RlPihzZWxmKV0gewor
ICAgICAgICBhdXRvIF9zZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghX3NlbGYp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgX3NlbGYuZ2V0KCktPl9wZW5kaW5nUmVz
b2x2ZUJvdW5kc0Jsb2NrID0gbmlsOworICAgICAgICBbX3NlbGYgcmVzb2x2ZUJvdW5kc107Cisg
ICAgfSkpOworCisgICAgLy8gV2Ugd2FudCB0byB3YWl0IGZvciBzb21lIHNob3J0IHRpbWUgYWZ0
ZXIgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGFuaW1hdGlvbiAod2UgY2hvb3NlIDEwMCBtcyBoZXJl
KSB0byBkaXNwYXRjaCB0aGUgYmxvY2sKKyAgICAvLyB0byBhdm9pZCBleGNlc3NpdmUgWFBDIG1l
c3NhZ2VzIGZyb20gdGhlIFdlYiBwcm9jZXNzIHRvIHRoZSBHUFUgcHJvY2Vzcy4KKyAgICBkaXNw
YXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCAoYW5pbWF0aW9uRHVy
YXRpb24gKyAwLjEpICogTlNFQ19QRVJfU0VDKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
X3BlbmRpbmdSZXNvbHZlQm91bmRzQmxvY2suZ2V0KCkpOworfQorCistICh2b2lkKXJlc29sdmVC
b3VuZHMKK3sKKyAgICBpZiAoW192aWRlb1N1YmxheWVyIHN1cGVybGF5ZXJdICE9IHNlbGYpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChDR1JlY3RFcXVhbFRvUmVjdChzZWxmLnZpZGVvTGF5
ZXJGcmFtZSwgc2VsZi5ib3VuZHMpICYmIENHQWZmaW5lVHJhbnNmb3JtSXNJZGVudGl0eShzZWxm
LmFmZmluZVRyYW5zZm9ybSkpCisgICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9u
IGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisg
ICAgaWYgKCFDR1JlY3RFcXVhbFRvUmVjdChzZWxmLnZpZGVvTGF5ZXJGcmFtZSwgc2VsZi5ib3Vu
ZHMpKSB7CisgICAgICAgIHNlbGYudmlkZW9MYXllckZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAg
ICAgIGlmIChhdXRvICptZWRpYVBsYXllclByaXZhdGVSZW1vdGUgPSBzZWxmLm1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSkgeworICAgICAgICAgICAgTWFjaFNlbmRSaWdodCBfZmVuY2VTZW5kUmln
aHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbX2NvbnRleHQgY3JlYXRlRmVuY2VQb3J0XSk7Cisg
ICAgICAgICAgICBtZWRpYVBsYXllclByaXZhdGVSZW1vdGUtPnNldFZpZGVvSW5saW5lU2l6ZUZl
bmNlZChXZWJDb3JlOjpJbnRTaXplKHNlbGYudmlkZW9MYXllckZyYW1lLnNpemUpLCBfZmVuY2VT
ZW5kUmlnaHQpOworICAgICAgICB9CisgICAgfQorCisgICAgW192aWRlb1N1YmxheWVyIHNldEFm
ZmluZVRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5XTsKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0RnJhbWU6c2VsZi5ib3VuZHNdOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0
XTsKK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPENBTGF5ZXI+
IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiBtZWRpYVBs
YXllclByaXZhdGVSZW1vdGUsIExheWVySG9zdGluZ0NvbnRleHRJRCBjb250ZXh0SWQpCit7Cisg
ICAgLy8gSW5pdGlhbGx5LCBhbGwgdGhlIGxheWVycyB3aWxsIGJlIGVtcHR5IChib3RoIHdpZHRo
IGFuZCBoZWlnaHQgYXJlIDApIGFuZCBpbnZpc2libGUuCisgICAgLy8gVGhlIHJlbmRlcmVyIHdp
bGwgY2hhbmdlIHRoZSBzaXplcyBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUgdG8gdHJpZ2dlciBsYXlv
dXQgb2Ygc3VibGF5ZXJzIGFuZCBtYWtlIHRoZW0gdmlzaWJsZS4KKyAgICBXS1ZpZGVvTGF5ZXJS
ZW1vdGUgKnZpZGVvTGF5ZXJSZW1vdGUgPSBbW1dLVmlkZW9MYXllclJlbW90ZSBhbGxvY10gaW5p
dF07CisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAwLCAw
KV07CisjaWZuZGVmIE5ERUJVRworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE5hbWU6QCJXS1Zp
ZGVvTGF5ZXJSZW1vdGUiXTsKKyNlbmRpZgorCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV07CisKKyAgICBh
dXRvIHZpZGVvU3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxh
eWVyRm9ySG9zdGluZ0NvbnRleHQoY29udGV4dElkKTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBz
ZXRWaWRlb1N1YmxheWVyOnZpZGVvU3VibGF5ZXIuZ2V0KCldOworICAgIFt2aWRlb0xheWVyUmVt
b3RlIGFkZFN1YmxheWVyOnZpZGVvU3VibGF5ZXIuZ2V0KCldOworICAgIFt2aWRlb1N1YmxheWVy
IHNldEZyYW1lOnZpZGVvTGF5ZXJSZW1vdGUuYm91bmRzXTsKKworICAgIHJldHVybiB2aWRlb0xh
eWVyUmVtb3RlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDM4NzZjZDE1ZTNlLi4zZmZjZGJlNTBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTExNyw2ICsxMTcsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9RdWlya3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyQmxvY2suaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVySW1hZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
TGF5ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVuZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25D
aGVja3MuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391177</attachid>
            <date>2020-02-19 10:30:50 -0800</date>
            <delta_ts>2020-02-19 21:25:55 -0800</delta_ts>
            <desc>Update the patch based on Wenson&apos;s comments</desc>
            <filename>206132-landing-rebased-v3.patch</filename>
            <type>text/plain</type>
            <size>46244</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZWNmNzI1ZTJmMy4uN2MwMTEwZGMwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBuYW1lIChmb3IgZGVidWdnaW5nKSBvZiB0aGUgQ0FM
YXllciBjcmVhdGVkIGJ5IF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEIChUaGUgQ0FMYXll
ciB3aWxsIG5vdCBiZSBvbmx5IHVzZWQgYXMgdmlkZW8gbGF5ZXJzKS4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIGZpeGVzIHRoZSBvcmRlcmluZyBpc3N1ZSByZWxhdGVkIHRvIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIGFuZCBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gdGhlIFhjb2RlIHBy
b2plY3QgZmlsZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpd
KToKKwogMjAyMC0wMi0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gUmVwbGFjZWQgZWxlbWVudHMgY2FuIGFsc28gZXN0YWJsaXNoIGZvcm1h
dHRpbmcgY29udGV4dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1OWM3Zjc2MWFlYi4uNmRkNjhi
OWI4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhl
IEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhl
IENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhwb3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5h
bCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwog
MjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
SzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2ViUHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQg
c3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tpZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggMGY5ZWFkN2Ji
OTUuLjUzM2Y3MGRkZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJl
bmRlckNvbnRleHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQog
KyAoTlNBcnJheSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7
CiArIChDQUNvbnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250
ZXh0V2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDc4YzgzN2E4Yzg0Li5mN2U4YzU2MzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJCTFE
MkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzND
M0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAw
OTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIy
OEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNC
NjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJ
blBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
OTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsK
IAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBF
IC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2
MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODIsNiArMTU4MSw3IEBACiAJCTUy
QjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMx
MUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1
OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NTEwLDggKzY1MTAsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5
MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkw
MUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUz
RkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
NDQ2LDYgKzg0NDQsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZE
REIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQx
QzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc1MCw4ICsyNjc1
MCw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJ
CQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMzQyNzcsNyArMzQyNzcsNyBAQAog
CQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0
QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBp
biBTb3VyY2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
REUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCmluZGV4
IDE4MDVjMGE1ZjZjLi5mMTAyNzQ0OWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0K
QEAgLTgyLDcgKzgyLDcgQEAKIHsKICAgICBDQUxheWVySG9zdCAqbGF5ZXJIb3N0ID0gW0NBTGF5
ZXJIb3N0IGxheWVyXTsKICNpZm5kZWYgTkRFQlVHCi0gICAgW2xheWVySG9zdCBzZXROYW1lOkAi
V2ViVmlkZW9Ib3N0aW5nTGF5ZXIiXTsKKyAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJIb3N0aW5n
IGxheWVyIl07CiAjZW5kaWYKICAgICBsYXllckhvc3QuY29udGV4dElkID0gY29udGV4dElEOwog
ICAgIHJldHVybiBsYXllckhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyMzNkMmNmZWU5Li5kYmYyYTJmZWQz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hy
b25pemUgdGhlIHByb3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3
aXRoIHRoZSBob3N0aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGNyZWF0ZXMgV0tWaWRlb0xheWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0
KCkuCisgICAgICAgIFRoZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSBy
ZW5kZXJlciB0byBtYW5hZ2UgdGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBX
aGVuIGl0cyBzaXplIGlzIGNoYW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBs
aWVzIGEgdHJhbnNmb3JtIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2Vu
ZHMgYSBtZXNzYWdlIHRvIE1lZGlhUGxheWVyUHJpdmF0ZVByb3h5IGluIHRoZSBHUFUgcHJvY2Vz
cworICAgICAgICB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllci4gQWZ0
ZXIgdGhhdCwgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRoZSBjb3Jy
ZWN0IG9uZSBpbiB0aGUgV2ViIHByb2Nlc3Mgc2lkZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2Ug
YSBNYWNoU2VuZFJpZ2h0IHRvIHN5bmNocm9uaXplIHRoZSB0cmFuc2FjdGlvbnMgaW4gdGhlIFdl
YiBwcm9jZXNzIGFuZCB0aGUgR1BVIHByb2Nlc3MuCisKKyAgICAgICAgV2UgaGF2ZSB0byB1c2Ug
c3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9mIFdLVmlkZW9MYXllclJl
bW90ZSBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHNtb290aG5lc3Mgd2hlbiBhIHVzZXIKKyAg
ICAgICAgY2hhbmdlIHRoZSBzaXplIG9mIGEgdmlkZW8gZWxlbWVudC4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5j
ZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlk
ZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJs
YXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAg
ICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06IEZpeGVkIGEgdW5pZmllZCBidWlsZCBmYWlsdXJl
LgorCiAyMDIwLTAyLTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWxsb3cgZGlmZmVyZW50IGJhY2stZW5kcyBmb3IgSW1hZ2VCdWZmZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3Mi4uOTBkOGFkZjQ3NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
ICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTGF5ZXJI
b3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTEwNiwxMyArMTA3LDEyIEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4mCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBs
YXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxv
YWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5n
LCBMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0
SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpw
cmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVG
b3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKHBy
aXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAgICBtX3Bs
YXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogICAgIG1fcGxheWVyLT5w
cmVwYXJlRm9yUmVuZGVyaW5nKCk7Ci0gICAgbV92aWRlb0NvbnRlbnRCb3hSZWN0ID0gbGF5b3V0
UmVjdDsKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAg
bV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwpAQCAtNDY4LDYgKzQ2OCw3IEBAIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgp
CiB7CisgICAgLy8gSW5pdGlhbGx5IHRoZSBzaXplIG9mIHRoZSBwbGF0Zm9ybUxheWVyIHdpbGwg
YmUgMHgwIGJlY2F1c2Ugd2UgZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCgpIGluIHRoaXMgY2xhc3MuCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5
ZXIobV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKSwgbV9pZCk7CiB9CkBAIC01NDYsMTEgKzU0Nyw2IEBAIGJvb2wgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotTGF5b3V0UmVjdCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92
aWRlb0NvbnRlbnRCb3hSZWN0OwotfQotCiBmbG9hdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZpZGVvQ29u
dGVudFNjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYjIyNjMwZmRhZGIuLjE2YmIyZGRmYTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWFj
aFNlbmRSaWdodDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1By
aXZhdGU7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTc2LDcgKzgwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRl
b0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3Rp
bmdDb250ZXh0SUQ+JiYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4mJik+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBs
b2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzExMywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6
Ok1vZGUpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdo
dCYpOworI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAg
IHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODYsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3Jl
OjpMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAg
ICBmbG9hdCBtZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1Zi4u
Y2E2NjMxNGRmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3
ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5k
ZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50
U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJI
b3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBw
cmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZs
b2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVy
bCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRl
bnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVt
KSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXll
ckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01Nyw2ICs1NywxMCBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAg
IFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBN
YWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMgUGFpbnQKICAgICAj
IFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0
aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM1ZmM1ZGJhMDdkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlh
UGxheWVyUHJveHlDb2NvYS5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQ
TEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2ltcG9y
dCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4K
KyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hT
ZW5kUmlnaHQpCit7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFj
aFNlbmRSaWdodC5zZW5kUmlnaHQoKSk7CisgICAgLy8gV2UgZG8gbm90IHdhbnQgYW5pbWF0aW9u
cyBoZXJlCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNl
dERpc2FibGVBY3Rpb25zOllFU107CisgICAgW21fbGF5ZXJIb3N0aW5nQ29udGV4dC0+cm9vdExh
eWVyKCkgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZDI0YTgwNDhlMzQuLmRhMjNiMGU1ZDMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01NywxMCArNTcsMTEgQEAgTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENSZXNvbHZlci5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUmVzb2x2ZXJDb2NvYS5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29j
a2V0LmNwcAogCitHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJv
Y2Vzcy9tYWMvR1BVUHJvY2Vzc01hYy5tbQorR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29jb2EubW0KIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tCi1HUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9jZi9Nb2R1bGVDRi5jcHAKIApAQCAtNTU0LDYg
KzU1NSw4IEBAIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2lu
dC5tbQogCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KKwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIu
Y3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlTWFjLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDIzN2JkZTQ4NzVhLi5kZWY3ODkyMzUxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIHVp
bnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9OwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMp
ICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzAwMGJmNzAwNy4uNTk3YTMz
MGE3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjY4MCw2ICsyNjgwLDcgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8q
IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0
b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4MjNBODQ2NUEw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTkyM0E4
NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNjk2LDYgKzI2OTcsMTAgQEAKIAkJMURCQkIwNjEyMTFDQzNDQjAw
NTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MURFMEQwOTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMERGMjNGNjBFMUUwMEU5QjQ5
MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3Rl
Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90
ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUyMjNGNjEwRjAw
MEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNjkxODU4REMxNTAw
RjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAx
ODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjU0LDYgKzUyNTks
NyBAQAogCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUx
OCAvKiBjb2NvYSAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyogQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjNDOTNCQjcwMDY4MEQ3QyAvKiBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThF
MiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLApAQCAtNTI3MSw2ICs1Mjc3LDgg
QEAKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmggKi8sCiAJCQkJMDdFMTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwICovLAogCQkJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZCNCAvKiBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMURGREQwRTIyM0Y2MTBG
MDAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkwNzFCQzU4MzIzQ0MyQkQ1
MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTgy
MjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJKTsK
QEAgLTUyODAsNiArNTI4OCw3IEBACiAJCTA3Qzc1QzE3MjM5OUEzREIwMDg4RTY1QiAvKiBtZWRp
YSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QTkyM0ZDODRCQjAwRDE3MkY2IC8qIGNvY29hICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4
MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVE
QjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovLApA
QCAtNjE0OSw2ICs2MTU4LDIzIEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2Nv
YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLywK
KwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OworCQkxREFGNUE0RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAv
KiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLywKKwkJCQkxREZERDBERjIzRjYwRTFFMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2Nv
YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGMDE4MTY4MTg1OERDMTUw
MEY5Mjg4NCAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOWRjMGViYjYwNjYuLjZkMmFi
MjEwOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIK
KyNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCkBAIC00Miw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC05MCwxNyArOTIsMTYgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmUpCiB7Ci0gICAgYXV0byBsYXlvdXRSZWN0ID0gbV9wbGF5ZXItPnBsYXllckNvbnRl
bnRCb3hSZWN0KCk7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50c1Nj
YWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHBy
ZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBsYXlvdXRSZWN0LCBzY2FsZSksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUg
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwg
cHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFjb250ZXh0SWQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJZC52
YWx1ZSgpKTsKKyAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9MYXllclJl
bW90ZSh0aGlzLCBjb250ZXh0SWQudmFsdWUoKSk7CiAgICAgfSwgbV9pZCk7CiB9CiAKQEAgLTMw
NSw2ICszMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNoYW5nZWQo
V2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICBJTkZPX0xPRyhMT0dJ
REVOVElGSUVSKTsKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiB9
CiAKQEAgLTU0Nyw3ICs1NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9h
ZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvTGF5
ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKIH0KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkpCkBAIC02NzEsMTQgKzY3MywyMSBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBzaXplLCBjb25z
dCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5saW5lU2l6
ZUZlbmNlZChzaXplLCBtYWNoU2VuZFJpZ2h0KSwgbV9pZCk7Cit9CisjZW5kaWYKKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVu
ZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVt
cHR5LgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzNy4uY2Mw
MzQ3NzdiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzgsNiArMzgsMTAgQEAK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2ICs5MSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBib29sIGhhc1Zp
ZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKICAgICB2b2lk
IHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAgdm9pZCBmaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5s
aW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2Vu
ZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dy
ZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29jb2EgV2ViS2l0IHBvcnQsIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUoKSBkb2VzIG5vdGhpbmcs
Ci0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5lZWQgdG8gc2VuZCBJUEMgbWVz
c2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0gICAgLy8gT3RoZXIgV2ViS2l0
IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7Ci0KICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJvb2wgY29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxh
dGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NH
TGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0OCw3ICszNDksNyBAQCBwcml2
YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9Owog
ICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVkaWFS
ZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0xheWVy
OworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmll
cjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFiMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRl
ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitP
QkpDX0NMQVNTIENBTGF5ZXI7CisKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVy
UmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSosIExheWVySG9zdGluZ0NvbnRleHRJRCk7
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1v
dGVDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzU4MTA4
YTY0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworfQorCitA
aW50ZXJmYWNlIFdLVmlkZW9MYXllclJlbW90ZSA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBhc3NpZ24pIFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICptZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDQUxheWVyICp2
aWRlb1N1YmxheWVyOworQHByb3BlcnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb0xheWVyRnJh
bWU7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDgxNGE1NTg2NTMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZUNvY29hLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJMYXllckhv
c3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKKyNp
bXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+
CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+
CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrUHRyLmg+CisK
K0BpbXBsZW1lbnRhdGlvbiBXS1ZpZGVvTGF5ZXJSZW1vdGUgeworICAgIFdlYWtQdHI8V2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGU7Cisg
ICAgQ0FMYXllciAqX3ZpZGVvU3VibGF5ZXI7CisgICAgQ0FDb250ZXh0ICpfY29udGV4dDsKKyAg
ICBCbG9ja1B0cjx2b2lkKCk+IF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrOworfQorCistIChp
bnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKHNl
bGYpCisgICAgICAgIHNlbGYubWFza3NUb0JvdW5kcyA9IFlFUzsKKworICAgIHJldHVybiBzZWxm
OworfQorCistIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSAqKW1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdl
dCgpOworfQorCistICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUgKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAg
ICBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSk7Cit9CisKKy0gKENBTGF5ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgcmV0
dXJuIF92aWRlb1N1YmxheWVyOworfQorCistICh2b2lkKXNldFZpZGVvU3VibGF5ZXI6KENBTGF5
ZXIgKil2aWRlb1N1YmxheWVyCit7CisgICAgX3ZpZGVvU3VibGF5ZXIgPSB2aWRlb1N1YmxheWVy
OworfQorCistICh2b2lkKWxheW91dFN1YmxheWVycworeworICAgIGlmIChbX3ZpZGVvU3VibGF5
ZXIgc3VwZXJsYXllcl0gIT0gc2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6
RmxvYXRSZWN0IHNvdXJjZVZpZGVvRnJhbWUgPSBzZWxmLnZpZGVvTGF5ZXJGcmFtZTsKKyAgICBX
ZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VmlkZW9GcmFtZSA9IHNlbGYuYm91bmRzOworICAgIENH
QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVNjYWxlKHRh
cmdldFZpZGVvRnJhbWUud2lkdGgoKSAvIHNvdXJjZVZpZGVvRnJhbWUud2lkdGgoKSwgdGFyZ2V0
VmlkZW9GcmFtZS5oZWlnaHQoKSAvIHNvdXJjZVZpZGVvRnJhbWUuaGVpZ2h0KCkpOworCisgICAg
W0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rp
b25zOllFU107CisgICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENH
UmVjdEdldE1pZFgoc2VsZi5ib3VuZHMpLCBDR1JlY3RHZXRNaWRZKHNlbGYuYm91bmRzKSldOwor
ICAgIFtfdmlkZW9TdWJsYXllciBzZXRBZmZpbmVUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBjb21taXRdOworCisgICAgX2NvbnRleHQgPSBbQ0FDb250ZXh0IGN1cnJl
bnRDb250ZXh0XTsKKyAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtDQVRy
YW5zYWN0aW9uIGFuaW1hdGlvbkR1cmF0aW9uXTsKKyAgICBpZiAoX3BlbmRpbmdSZXNvbHZlQm91
bmRzQmxvY2spCisgICAgICAgIGRpc3BhdGNoX2Jsb2NrX2NhbmNlbChfcGVuZGluZ1Jlc29sdmVC
b3VuZHNCbG9jay5nZXQoKSk7CisKKyAgICBfcGVuZGluZ1Jlc29sdmVCb3VuZHNCbG9jayA9IG1h
a2VCbG9ja1B0cihkaXNwYXRjaF9ibG9ja19jcmVhdGUoKGRpc3BhdGNoX2Jsb2NrX2ZsYWdzX3Qp
MCwgW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tWaWRlb0xheWVyUmVtb3RlPihzZWxmKV0gewor
ICAgICAgICBhdXRvIGxvY2FsU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIWxv
Y2FsU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2NhbFNlbGYtPl9wZW5k
aW5nUmVzb2x2ZUJvdW5kc0Jsb2NrID0gbmlsOworICAgICAgICBbbG9jYWxTZWxmIHJlc29sdmVC
b3VuZHNdOworICAgIH0pKTsKKworICAgIC8vIFdlIHdhbnQgdG8gd2FpdCBmb3Igc29tZSBzaG9y
dCB0aW1lIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBhbmltYXRpb24gKHdlIGNob29zZSAx
MDAgbXMgaGVyZSkgdG8gZGlzcGF0Y2ggdGhlIGJsb2NrCisgICAgLy8gdG8gYXZvaWQgZXhjZXNz
aXZlIFhQQyBtZXNzYWdlcyBmcm9tIHRoZSBXZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3Mu
CisgICAgZGlzcGF0Y2hfYWZ0ZXIoZGlzcGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgKGFu
aW1hdGlvbkR1cmF0aW9uICsgMC4xKSAqIE5TRUNfUEVSX1NFQyksIGRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCksIF9wZW5kaW5nUmVzb2x2ZUJvdW5kc0Jsb2NrLmdldCgpKTsKK30KKworLSAodm9p
ZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBlcmxheWVyXSAh
PSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3Qoc2Vs
Zi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRyYW5zZm9ybUlzSWRl
bnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47CisKKyAgICBbQ0FU
cmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6
WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUs
IHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFtZSA9IHNlbGYuYm91
bmRzOworICAgICAgICBpZiAoYXV0byAqbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlID0gc2VsZi5t
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hTZW5kUmlnaHQgZmVu
Y2VTZW5kUmlnaHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbX2NvbnRleHQgY3JlYXRlRmVuY2VQ
b3J0XSk7CisgICAgICAgICAgICBtZWRpYVBsYXllclByaXZhdGVSZW1vdGUtPnNldFZpZGVvSW5s
aW5lU2l6ZUZlbmNlZChXZWJDb3JlOjpJbnRTaXplKHNlbGYudmlkZW9MYXllckZyYW1lLnNpemUp
LCBmZW5jZVNlbmRSaWdodCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBbX3ZpZGVvU3VibGF5
ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOkNHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHldOworICAgIFtf
dmlkZW9TdWJsYXllciBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisKKyAgICBbQ0FUcmFuc2FjdGlv
biBjb21taXRdOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8
Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUq
IG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElEIGNvbnRleHRJ
ZCkKK3sKKyAgICAvLyBJbml0aWFsbHksIGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUgZW1wdHkgKGJv
dGggd2lkdGggYW5kIGhlaWdodCBhcmUgMCkgYW5kIGludmlzaWJsZS4KKyAgICAvLyBUaGUgcmVu
ZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNpemVzIG9mIFdLVmlkZW9MYXllclJlbW90ZSB0byB0cmln
Z2VyIGxheW91dCBvZiBzdWJsYXllcnMgYW5kIG1ha2UgdGhlbSB2aXNpYmxlLgorICAgIGF1dG8g
dmlkZW9MYXllclJlbW90ZSA9IGFkb3B0TlMoW1tXS1ZpZGVvTGF5ZXJSZW1vdGUgYWxsb2NdIGlu
aXRdKTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDAs
IDApXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TmFtZTpAIldL
VmlkZW9MYXllclJlbW90ZSJdOworI2VuZGlmCisKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlXTsKKworICAg
IGF1dG8gdmlkZW9TdWJsYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3Jt
TGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQpOworICAgIFt2aWRlb0xheWVyUmVtb3Rl
IHNldFZpZGVvU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvTGF5ZXJS
ZW1vdGUgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllci5nZXQoKV07CisgICAgW3ZpZGVvU3VibGF5
ZXIgc2V0RnJhbWU6dmlkZW9MYXllclJlbW90ZS5nZXQoKS5ib3VuZHNdOworCisgICAgcmV0dXJu
IHZpZGVvTGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KaW5kZXggMzg3NmNkMTVlM2UuLjNmZmNkYmU1MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTE3LDYgKzExNyw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJC
bG9jay5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJJbWFnZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391256</attachid>
            <date>2020-02-19 21:25:55 -0800</date>
            <delta_ts>2020-02-19 21:32:42 -0800</delta_ts>
            <desc>A timer based implementation</desc>
            <filename>206132-landing-v4.patch</filename>
            <type>text/plain</type>
            <size>46352</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZWNmNzI1ZTJmMy4uN2MwMTEwZGMwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBuYW1lIChmb3IgZGVidWdnaW5nKSBvZiB0aGUgQ0FM
YXllciBjcmVhdGVkIGJ5IF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEIChUaGUgQ0FMYXll
ciB3aWxsIG5vdCBiZSBvbmx5IHVzZWQgYXMgdmlkZW8gbGF5ZXJzKS4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIGZpeGVzIHRoZSBvcmRlcmluZyBpc3N1ZSByZWxhdGVkIHRvIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIGFuZCBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gdGhlIFhjb2RlIHBy
b2plY3QgZmlsZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpd
KToKKwogMjAyMC0wMi0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gUmVwbGFjZWQgZWxlbWVudHMgY2FuIGFsc28gZXN0YWJsaXNoIGZvcm1h
dHRpbmcgY29udGV4dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1OWM3Zjc2MWFlYi4uNmRkNjhi
OWI4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhl
IEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhl
IENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhwb3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5h
bCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwog
MjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
SzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2ViUHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQg
c3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tpZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggMGY5ZWFkN2Ji
OTUuLjUzM2Y3MGRkZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJl
bmRlckNvbnRleHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQog
KyAoTlNBcnJheSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7
CiArIChDQUNvbnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250
ZXh0V2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDc4YzgzN2E4Yzg0Li5mN2U4YzU2MzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJCTFE
MkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzND
M0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAw
OTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIy
OEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNC
NjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJ
blBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
OTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsK
IAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBF
IC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2
MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODIsNiArMTU4MSw3IEBACiAJCTUy
QjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMx
MUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1
OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NTEwLDggKzY1MTAsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5
MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkw
MUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUz
RkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
NDQ2LDYgKzg0NDQsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZE
REIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQx
QzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc1MCw4ICsyNjc1
MCw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJ
CQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMzQyNzcsNyArMzQyNzcsNyBAQAog
CQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0
QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBp
biBTb3VyY2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
REUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCmluZGV4
IDE4MDVjMGE1ZjZjLi5mMTAyNzQ0OWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0K
QEAgLTgyLDcgKzgyLDcgQEAKIHsKICAgICBDQUxheWVySG9zdCAqbGF5ZXJIb3N0ID0gW0NBTGF5
ZXJIb3N0IGxheWVyXTsKICNpZm5kZWYgTkRFQlVHCi0gICAgW2xheWVySG9zdCBzZXROYW1lOkAi
V2ViVmlkZW9Ib3N0aW5nTGF5ZXIiXTsKKyAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJIb3N0aW5n
IGxheWVyIl07CiAjZW5kaWYKICAgICBsYXllckhvc3QuY29udGV4dElkID0gY29udGV4dElEOwog
ICAgIHJldHVybiBsYXllckhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyMzNkMmNmZWU5Li5kYmYyYTJmZWQz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hy
b25pemUgdGhlIHByb3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3
aXRoIHRoZSBob3N0aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGNyZWF0ZXMgV0tWaWRlb0xheWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0
KCkuCisgICAgICAgIFRoZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSBy
ZW5kZXJlciB0byBtYW5hZ2UgdGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBX
aGVuIGl0cyBzaXplIGlzIGNoYW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBs
aWVzIGEgdHJhbnNmb3JtIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2Vu
ZHMgYSBtZXNzYWdlIHRvIE1lZGlhUGxheWVyUHJpdmF0ZVByb3h5IGluIHRoZSBHUFUgcHJvY2Vz
cworICAgICAgICB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllci4gQWZ0
ZXIgdGhhdCwgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRoZSBjb3Jy
ZWN0IG9uZSBpbiB0aGUgV2ViIHByb2Nlc3Mgc2lkZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2Ug
YSBNYWNoU2VuZFJpZ2h0IHRvIHN5bmNocm9uaXplIHRoZSB0cmFuc2FjdGlvbnMgaW4gdGhlIFdl
YiBwcm9jZXNzIGFuZCB0aGUgR1BVIHByb2Nlc3MuCisKKyAgICAgICAgV2UgaGF2ZSB0byB1c2Ug
c3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9mIFdLVmlkZW9MYXllclJl
bW90ZSBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHNtb290aG5lc3Mgd2hlbiBhIHVzZXIKKyAg
ICAgICAgY2hhbmdlIHRoZSBzaXplIG9mIGEgdmlkZW8gZWxlbWVudC4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5j
ZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlk
ZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJs
YXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAg
ICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06IEZpeGVkIGEgdW5pZmllZCBidWlsZCBmYWlsdXJl
LgorCiAyMDIwLTAyLTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWxsb3cgZGlmZmVyZW50IGJhY2stZW5kcyBmb3IgSW1hZ2VCdWZmZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3Mi4uOTBkOGFkZjQ3NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
ICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTGF5ZXJI
b3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTEwNiwxMyArMTA3LDEyIEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4mCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBs
YXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxv
YWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5n
LCBMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0
SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpw
cmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVG
b3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKHBy
aXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAgICBtX3Bs
YXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogICAgIG1fcGxheWVyLT5w
cmVwYXJlRm9yUmVuZGVyaW5nKCk7Ci0gICAgbV92aWRlb0NvbnRlbnRCb3hSZWN0ID0gbGF5b3V0
UmVjdDsKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAg
bV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwpAQCAtNDY4LDYgKzQ2OCw3IEBAIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgp
CiB7CisgICAgLy8gSW5pdGlhbGx5IHRoZSBzaXplIG9mIHRoZSBwbGF0Zm9ybUxheWVyIHdpbGwg
YmUgMHgwIGJlY2F1c2Ugd2UgZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCgpIGluIHRoaXMgY2xhc3MuCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5
ZXIobV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKSwgbV9pZCk7CiB9CkBAIC01NDYsMTEgKzU0Nyw2IEBAIGJvb2wgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotTGF5b3V0UmVjdCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92
aWRlb0NvbnRlbnRCb3hSZWN0OwotfQotCiBmbG9hdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZpZGVvQ29u
dGVudFNjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYjIyNjMwZmRhZGIuLjE2YmIyZGRmYTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWFj
aFNlbmRSaWdodDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1By
aXZhdGU7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTc2LDcgKzgwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRl
b0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3Rp
bmdDb250ZXh0SUQ+JiYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4mJik+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBs
b2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzExMywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6
Ok1vZGUpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdo
dCYpOworI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAg
IHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODYsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3Jl
OjpMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAg
ICBmbG9hdCBtZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1Zi4u
Y2E2NjMxNGRmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3
ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5k
ZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50
U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJI
b3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBw
cmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZs
b2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVy
bCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRl
bnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVt
KSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXll
ckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01Nyw2ICs1NywxMCBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAg
IFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBN
YWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMgUGFpbnQKICAgICAj
IFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0
aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM1ZmM1ZGJhMDdkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlh
UGxheWVyUHJveHlDb2NvYS5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQ
TEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2ltcG9y
dCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4K
KyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hT
ZW5kUmlnaHQpCit7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFj
aFNlbmRSaWdodC5zZW5kUmlnaHQoKSk7CisgICAgLy8gV2UgZG8gbm90IHdhbnQgYW5pbWF0aW9u
cyBoZXJlCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNl
dERpc2FibGVBY3Rpb25zOllFU107CisgICAgW21fbGF5ZXJIb3N0aW5nQ29udGV4dC0+cm9vdExh
eWVyKCkgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZDI0YTgwNDhlMzQuLmRhMjNiMGU1ZDMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01NywxMCArNTcsMTEgQEAgTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENSZXNvbHZlci5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUmVzb2x2ZXJDb2NvYS5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29j
a2V0LmNwcAogCitHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJv
Y2Vzcy9tYWMvR1BVUHJvY2Vzc01hYy5tbQorR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29jb2EubW0KIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tCi1HUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9jZi9Nb2R1bGVDRi5jcHAKIApAQCAtNTU0LDYg
KzU1NSw4IEBAIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2lu
dC5tbQogCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KKwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIu
Y3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlTWFjLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDIzN2JkZTQ4NzVhLi5kZWY3ODkyMzUxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIHVp
bnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9OwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMp
ICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzAwMGJmNzAwNy4uNTk3YTMz
MGE3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjY4MCw2ICsyNjgwLDcgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8q
IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0
b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4MjNBODQ2NUEw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTkyM0E4
NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNjk2LDYgKzI2OTcsMTAgQEAKIAkJMURCQkIwNjEyMTFDQzNDQjAw
NTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MURFMEQwOTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMERGMjNGNjBFMUUwMEU5QjQ5
MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3Rl
Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90
ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUyMjNGNjEwRjAw
MEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNjkxODU4REMxNTAw
RjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAx
ODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjU0LDYgKzUyNTks
NyBAQAogCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUx
OCAvKiBjb2NvYSAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyogQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjNDOTNCQjcwMDY4MEQ3QyAvKiBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThF
MiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLApAQCAtNTI3MSw2ICs1Mjc3LDgg
QEAKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmggKi8sCiAJCQkJMDdFMTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwICovLAogCQkJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZCNCAvKiBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMURGREQwRTIyM0Y2MTBG
MDAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkwNzFCQzU4MzIzQ0MyQkQ1
MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTgy
MjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJKTsK
QEAgLTUyODAsNiArNTI4OCw3IEBACiAJCTA3Qzc1QzE3MjM5OUEzREIwMDg4RTY1QiAvKiBtZWRp
YSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QTkyM0ZDODRCQjAwRDE3MkY2IC8qIGNvY29hICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4
MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVE
QjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovLApA
QCAtNjE0OSw2ICs2MTU4LDIzIEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2Nv
YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLywK
KwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OworCQkxREFGNUE0RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAv
KiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLywKKwkJCQkxREZERDBERjIzRjYwRTFFMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2Nv
YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGMDE4MTY4MTg1OERDMTUw
MEY5Mjg4NCAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOWRjMGViYjYwNjYuLjZkMmFi
MjEwOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIK
KyNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCkBAIC00Miw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC05MCwxNyArOTIsMTYgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmUpCiB7Ci0gICAgYXV0byBsYXlvdXRSZWN0ID0gbV9wbGF5ZXItPnBsYXllckNvbnRl
bnRCb3hSZWN0KCk7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50c1Nj
YWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHBy
ZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBsYXlvdXRSZWN0LCBzY2FsZSksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUg
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwg
cHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFjb250ZXh0SWQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJZC52
YWx1ZSgpKTsKKyAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9MYXllclJl
bW90ZSh0aGlzLCBjb250ZXh0SWQudmFsdWUoKSk7CiAgICAgfSwgbV9pZCk7CiB9CiAKQEAgLTMw
NSw2ICszMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNoYW5nZWQo
V2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICBJTkZPX0xPRyhMT0dJ
REVOVElGSUVSKTsKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiB9
CiAKQEAgLTU0Nyw3ICs1NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9h
ZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvTGF5
ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKIH0KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkpCkBAIC02NzEsMTQgKzY3MywyMSBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBzaXplLCBjb25z
dCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5saW5lU2l6
ZUZlbmNlZChzaXplLCBtYWNoU2VuZFJpZ2h0KSwgbV9pZCk7Cit9CisjZW5kaWYKKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVu
ZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVt
cHR5LgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzNy4uY2Mw
MzQ3NzdiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzgsNiArMzgsMTAgQEAK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2ICs5MSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBib29sIGhhc1Zp
ZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKICAgICB2b2lk
IHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAgdm9pZCBmaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5s
aW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2Vu
ZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dy
ZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29jb2EgV2ViS2l0IHBvcnQsIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUoKSBkb2VzIG5vdGhpbmcs
Ci0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5lZWQgdG8gc2VuZCBJUEMgbWVz
c2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0gICAgLy8gT3RoZXIgV2ViS2l0
IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7Ci0KICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJvb2wgY29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxh
dGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NH
TGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0OCw3ICszNDksNyBAQCBwcml2
YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9Owog
ICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVkaWFS
ZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0xheWVy
OworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmll
cjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFiMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRl
ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitP
QkpDX0NMQVNTIENBTGF5ZXI7CisKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVy
UmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSosIExheWVySG9zdGluZ0NvbnRleHRJRCk7
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1v
dGVDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzU4MTA4
YTY0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworfQorCitA
aW50ZXJmYWNlIFdLVmlkZW9MYXllclJlbW90ZSA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBhc3NpZ24pIFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICptZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDQUxheWVyICp2
aWRlb1N1YmxheWVyOworQHByb3BlcnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb0xheWVyRnJh
bWU7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWUwYjhkZThlZTkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZUNvY29hLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJMYXllckhv
c3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKKyNp
bXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL1RpbWVyLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5o
PgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgor
CitAaW1wbGVtZW50YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRyPFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwor
ICAgIENBTGF5ZXIgKl92aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCAqX2NvbnRleHQ7CisK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGltZXI+IF9yZXNvbHZlQm91bmRzVGltZXI7
CisgICAgYm9vbCBfc2hvdWxkUmVzdGFydFdoZW5UaW1lckZpcmVzOworICAgIFNlY29uZHMgX2Rl
bGF5OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5p
dF07CisgICAgaWYgKHNlbGYpIHsKKyAgICAgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVTOwor
ICAgICAgICBfcmVzb2x2ZUJvdW5kc1RpbWVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpU
aW1lcj4oW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tWaWRlb0xheWVyUmVtb3RlPihzZWxmKV0g
eworICAgICAgICAgICAgYXV0byBsb2NhbFNlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAg
ICAgIGlmICghbG9jYWxTZWxmKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgW2xvY2FsU2VsZiByZXNvbHZlQm91bmRzXTsKKyAgICAgICAgfSk7CisgICAgICAgIF9zaG91
bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMgPSBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gc2Vs
ZjsKK30KKworLSAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdl
dCgpOworfQorCistICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAg
IF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGUgPSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlKTsKK30KKworLSAoQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1
cm4gX3ZpZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXll
ciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7
Cit9CisKKy0gKHZvaWQpbGF5b3V0U3VibGF5ZXJzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXll
ciBzdXBlcmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpG
bG9hdFJlY3Qgc291cmNlVmlkZW9GcmFtZSA9IHNlbGYudmlkZW9MYXllckZyYW1lOworICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRWaWRlb0ZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgQ0dB
ZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUodGFy
Z2V0VmlkZW9GcmFtZS53aWR0aCgpIC8gc291cmNlVmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRW
aWRlb0ZyYW1lLmhlaWdodCgpIC8gc291cmNlVmlkZW9GcmFtZS5oZWlnaHQoKSk7CisKKyAgICBb
Q0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlv
bnM6WUVTXTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dS
ZWN0R2V0TWlkWChzZWxmLmJvdW5kcyksIENHUmVjdEdldE1pZFkoc2VsZi5ib3VuZHMpKV07Cisg
ICAgW192aWRlb1N1YmxheWVyIHNldEFmZmluZVRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtD
QVRyYW5zYWN0aW9uIGNvbW1pdF07CisKKyAgICBfY29udGV4dCA9IFtDQUNvbnRleHQgY3VycmVu
dENvbnRleHRdOworICAgIE5TVGltZUludGVydmFsIGFuaW1hdGlvbkR1cmF0aW9uID0gW0NBVHJh
bnNhY3Rpb24gYW5pbWF0aW9uRHVyYXRpb25dOworICAgIC8vIFdlIHdhbnQgdG8gd2FpdCBmb3Ig
c29tZSBzaG9ydCB0aW1lIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBhbmltYXRpb24gKHdl
IGNob29zZSAxMDAgbXMgaGVyZSkgdG8gZmlyZSB0aGUgdGltZXIKKyAgICAvLyB0byBhdm9pZCBl
eGNlc3NpdmUgWFBDIG1lc3NhZ2VzIGZyb20gdGhlIFdlYiBwcm9jZXNzIHRvIHRoZSBHUFUgcHJv
Y2Vzcy4KKyAgICBfZGVsYXkgPSBTZWNvbmRzKGFuaW1hdGlvbkR1cmF0aW9uICsgMC4xKTsKKyAg
ICBpZiAoX3Jlc29sdmVCb3VuZHNUaW1lci0+aXNBY3RpdmUoKSkgeworICAgICAgICBfc2hvdWxk
UmVzdGFydFdoZW5UaW1lckZpcmVzID0gdHJ1ZTsKKyAgICAgICAgX2RlbGF5IC09IF9yZXNvbHZl
Qm91bmRzVGltZXItPm5leHRGaXJlSW50ZXJ2YWwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBfcmVzb2x2ZUJvdW5kc1RpbWVyLT5zdGFydE9uZVNob3QoX2RlbGF5KTsKK30KKworLSAo
dm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKF9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmly
ZXMpIHsKKyAgICAgICAgX3Nob3VsZFJlc3RhcnRXaGVuVGltZXJGaXJlcyA9IGZhbHNlOworICAg
ICAgICBfcmVzb2x2ZUJvdW5kc1RpbWVyLT5zdGFydE9uZVNob3QoX2RlbGF5KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXllcl0gIT0g
c2VsZikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KHNlbGYu
dmlkZW9MYXllckZyYW1lLCBzZWxmLmJvdW5kcykgJiYgQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50
aXR5KHNlbGYuYWZmaW5lVHJhbnNmb3JtKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW0NBVHJh
bnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllF
U107CisKKyAgICBpZiAoIUNHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBz
ZWxmLmJvdW5kcykpIHsKKyAgICAgICAgc2VsZi52aWRlb0xheWVyRnJhbWUgPSBzZWxmLmJvdW5k
czsKKyAgICAgICAgaWYgKGF1dG8qIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSA9IHNlbGYubWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlKSB7CisgICAgICAgICAgICBNYWNoU2VuZFJpZ2h0IGZlbmNl
U2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0IGNyZWF0ZUZlbmNlUG9y
dF0pOworICAgICAgICAgICAgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLT5zZXRWaWRlb0lubGlu
ZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZShzZWxmLnZpZGVvTGF5ZXJGcmFtZS5zaXplKSwg
ZmVuY2VTZW5kUmlnaHQpOworICAgICAgICB9CisgICAgfQorCisgICAgW192aWRlb1N1YmxheWVy
IHNldEFmZmluZVRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5XTsKKyAgICBbX3Zp
ZGVvU3VibGF5ZXIgc2V0RnJhbWU6c2VsZi5ib3VuZHNdOworCisgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPENB
TGF5ZXI+IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiBt
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUsIExheWVySG9zdGluZ0NvbnRleHRJRCBjb250ZXh0SWQp
Cit7CisgICAgLy8gSW5pdGlhbGx5LCBhbGwgdGhlIGxheWVycyB3aWxsIGJlIGVtcHR5IChib3Ro
IHdpZHRoIGFuZCBoZWlnaHQgYXJlIDApIGFuZCBpbnZpc2libGUuCisgICAgLy8gVGhlIHJlbmRl
cmVyIHdpbGwgY2hhbmdlIHRoZSBzaXplcyBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUgdG8gdHJpZ2dl
ciBsYXlvdXQgb2Ygc3VibGF5ZXJzIGFuZCBtYWtlIHRoZW0gdmlzaWJsZS4KKyAgICBhdXRvIHZp
ZGVvTGF5ZXJSZW1vdGUgPSBhZG9wdE5TKFtbV0tWaWRlb0xheWVyUmVtb3RlIGFsbG9jXSBpbml0
XSk7CisjaWZuZGVmIE5ERUJVRworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE5hbWU6QCJXS1Zp
ZGVvTGF5ZXJSZW1vdGUiXTsKKyNlbmRpZgorCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV07CisKKyAgICBh
dXRvIHZpZGVvU3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxh
eWVyRm9ySG9zdGluZ0NvbnRleHQoY29udGV4dElkKTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBz
ZXRWaWRlb1N1YmxheWVyOnZpZGVvU3VibGF5ZXIuZ2V0KCldOworICAgIFt2aWRlb0xheWVyUmVt
b3RlIGFkZFN1YmxheWVyOnZpZGVvU3VibGF5ZXIuZ2V0KCldOworCisgICAgcmV0dXJuIHZpZGVv
TGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggMzg3NmNkMTVlM2UuLjNmZmNkYmU1MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTE3LDYgKzExNyw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9jay5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJJbWFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5k
ZXJMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391257</attachid>
            <date>2020-02-19 21:32:42 -0800</date>
            <delta_ts>2020-02-20 16:28:38 -0800</delta_ts>
            <desc>A timer based implementation (with the fix for the style checking error)</desc>
            <filename>206132-landing-v5.patch</filename>
            <type>text/plain</type>
            <size>46346</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZWNmNzI1ZTJmMy4uN2MwMTEwZGMwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBuYW1lIChmb3IgZGVidWdnaW5nKSBvZiB0aGUgQ0FM
YXllciBjcmVhdGVkIGJ5IF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEIChUaGUgQ0FMYXll
ciB3aWxsIG5vdCBiZSBvbmx5IHVzZWQgYXMgdmlkZW8gbGF5ZXJzKS4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIGZpeGVzIHRoZSBvcmRlcmluZyBpc3N1ZSByZWxhdGVkIHRvIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIGFuZCBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gdGhlIFhjb2RlIHBy
b2plY3QgZmlsZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpd
KToKKwogMjAyMC0wMi0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gUmVwbGFjZWQgZWxlbWVudHMgY2FuIGFsc28gZXN0YWJsaXNoIGZvcm1h
dHRpbmcgY29udGV4dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA1OWM3Zjc2MWFlYi4uNmRkNjhi
OWI4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAyLTE4ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBw
cm9jZXNzXSBTeW5jaHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhl
IEdQVSBwcm9jZXNzIHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhl
IENBQ29udGV4dCBpbnRlcmZhY2UgdG8gZXhwb3NlIGN1cnJlbnRDb250ZXh0IGZvciBleHRlcm5h
bCBidWlsZHMuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwog
MjAyMC0wMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
SzJdW0NvY29hXSBJbXBsZW1lbnQgaW4tV2ViUHJvY2VzcyBjb29raWUgY2FjaGUgdG8gYXZvaWQg
c3luYyBJUEMgZm9yIGRvY3VtZW50LmNvb2tpZSBpbiBtb3N0IGNhc2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggMGY5ZWFkN2Ji
OTUuLjUzM2Y3MGRkZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oCkBAIC02MCw2ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQVJl
bmRlckNvbnRleHQgQ0FSZW5kZXJDb250ZXh0OwogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoKQog
KyAoTlNBcnJheSAqKWFsbENvbnRleHRzOworKyAoQ0FDb250ZXh0ICopY3VycmVudENvbnRleHQ7
CiArIChDQUNvbnRleHQgKilsb2NhbENvbnRleHQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVDb250
ZXh0V2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDc4YzgzN2E4Yzg0Li5mN2U4YzU2MzIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMzLDcgKzYzMyw2IEBACiAJCTFE
MkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzND
M0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAw
OTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIy
OEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNC
NjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJ
blBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
OTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsK
IAkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBF
IC8qIFNoYXJlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFEQkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2
MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODIsNiArMTU4MSw3IEBACiAJCTUy
QjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMx
MUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkQ1QTE4RjFDNTQ1
OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NTEwLDggKzY1MTAsNiBAQAogCQkxRDAwMjZBODIzNzRGOUQ5
MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkw
MUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUz
RkQyMTFCQTEyQTAwNEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOYXZpZ2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQzU1M0ZGMjExQkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNoYXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
NDQ2LDYgKzg0NDQsOCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZE
REIyRTAwOUYwQTY0IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExT
TERlZmF1bHREZWxldGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUExOEQx
QzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NTFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4
OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc1MCw4ICsyNjc1
MCw4IEBACiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUg
LyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMUQzOTJGMkEyM0YyMDlC
NTAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAotCQkJCTFEMzkyRjI4MjNG
MjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJNTJENUEx
OEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJ
CQkJQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgKi8sCiAJCQkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oICovLAogCQkJCUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovLApAQCAtMzQyNzcsNyArMzQyNzcsNyBAQAog
CQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlw
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBV
c2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0
QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBp
biBTb3VyY2VzICovLAotCQkJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUw
REUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCmluZGV4
IDE4MDVjMGE1ZjZjLi5mMTAyNzQ0OWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0K
QEAgLTgyLDcgKzgyLDcgQEAKIHsKICAgICBDQUxheWVySG9zdCAqbGF5ZXJIb3N0ID0gW0NBTGF5
ZXJIb3N0IGxheWVyXTsKICNpZm5kZWYgTkRFQlVHCi0gICAgW2xheWVySG9zdCBzZXROYW1lOkAi
V2ViVmlkZW9Ib3N0aW5nTGF5ZXIiXTsKKyAgICBbbGF5ZXJIb3N0IHNldE5hbWU6QCJIb3N0aW5n
IGxheWVyIl07CiAjZW5kaWYKICAgICBsYXllckhvc3QuY29udGV4dElkID0gY29udGV4dElEOwog
ICAgIHJldHVybiBsYXllckhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyMzNkMmNmZWU5Li5kYmYyYTJmZWQz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMC0wMi0xOCAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hy
b25pemUgdGhlIHByb3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3
aXRoIHRoZSBob3N0aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
IGNyZWF0ZXMgV0tWaWRlb0xheWVyUmVtb3RlIHdob3NlIHN1YmxheWVyIGlzIGNyZWF0ZWQgYnkg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0
KCkuCisgICAgICAgIFRoZSBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSBy
ZW5kZXJlciB0byBtYW5hZ2UgdGhlIHZpZGVvIGVsZW1lbnQgaW4gdGhlIFdlYiBwcm9jZXNzLiBX
aGVuIGl0cyBzaXplIGlzIGNoYW5nZWQgYnkgdGhlIHJlbmRlcmVyLAorICAgICAgICBpdCBhcHBs
aWVzIGEgdHJhbnNmb3JtIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGFjdHVhbCBzaXplLCBhbmQgc2Vu
ZHMgYSBtZXNzYWdlIHRvIE1lZGlhUGxheWVyUHJpdmF0ZVByb3h5IGluIHRoZSBHUFUgcHJvY2Vz
cworICAgICAgICB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNvbnRhaW5lciBsYXllci4gQWZ0
ZXIgdGhhdCwgV0tWaWRlb0xheWVyUmVtb3RlIHdpbGwgc2V0IGl0cyBzaXplIHRvIHRoZSBjb3Jy
ZWN0IG9uZSBpbiB0aGUgV2ViIHByb2Nlc3Mgc2lkZS4KKyAgICAgICAgV2UgbmVlZCB0byB1c2Ug
YSBNYWNoU2VuZFJpZ2h0IHRvIHN5bmNocm9uaXplIHRoZSB0cmFuc2FjdGlvbnMgaW4gdGhlIFdl
YiBwcm9jZXNzIGFuZCB0aGUgR1BVIHByb2Nlc3MuCisKKyAgICAgICAgV2UgaGF2ZSB0byB1c2Ug
c3VjaCBhIHByb2Nlc3MgdG8gY2hhbmdlIHRoZSBhcHBlYXJhbmNlIG9mIFdLVmlkZW9MYXllclJl
bW90ZSBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhlIHNtb290aG5lc3Mgd2hlbiBhIHVzZXIKKyAg
ICAgICAgY2hhbmdlIHRoZSBzaXplIG9mIGEgdmlkZW8gZWxlbWVudC4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyQ29udGVudEJveFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5j
ZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bV0tWaWRlb0xheWVyUmVtb3RlIGluaXRdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVt
b3RlIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIG1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZV0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgdmlk
ZW9TdWJsYXllcl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgc2V0VmlkZW9TdWJs
YXllcjpdKToKKyAgICAgICAgKC1bV0tWaWRlb0xheWVyUmVtb3RlIGxheW91dFN1YmxheWVyc10p
OgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgcmVzb2x2ZUJvdW5kc10pOgorICAgICAg
ICAoV2ViS2l0OjpjcmVhdGVWaWRlb0xheWVyUmVtb3RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06IEZpeGVkIGEgdW5pZmllZCBidWlsZCBmYWlsdXJl
LgorCiAyMDIwLTAyLTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWxsb3cgZGlmZmVyZW50IGJhY2stZW5kcyBmb3IgSW1hZ2VCdWZmZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3Mi4uOTBkOGFkZjQ3NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
ICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTGF5ZXJI
b3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTEwNiwxMyArMTA3LDEyIEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZT4mCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25maWd1
cmF0aW9uKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBs
YXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxv
YWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5n
LCBMYXlvdXRSZWN0IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0
SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpw
cmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVG
b3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBjb250ZXh0SWQpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIG1fcGxheWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKHBy
aXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChwcmVsb2FkKTsKICAgICBtX3Bs
YXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogICAgIG1fcGxheWVyLT5w
cmVwYXJlRm9yUmVuZGVyaW5nKCk7Ci0gICAgbV92aWRlb0NvbnRlbnRCb3hSZWN0ID0gbGF5b3V0
UmVjdDsKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAg
bV9sYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbGF5ZXJIb3N0
aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwpAQCAtNDY4LDYgKzQ2OCw3IEBAIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkKIAogdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgp
CiB7CisgICAgLy8gSW5pdGlhbGx5IHRoZSBzaXplIG9mIHRoZSBwbGF0Zm9ybUxheWVyIHdpbGwg
YmUgMHgwIGJlY2F1c2Ugd2UgZG8gbm90IHByb3ZpZGUgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCgpIGluIHRoaXMgY2xhc3MuCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5
ZXIobV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpGaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKSwgbV9pZCk7CiB9CkBAIC01NDYsMTEgKzU0Nyw2IEBAIGJvb2wgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotTGF5b3V0UmVjdCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92
aWRlb0NvbnRlbnRCb3hSZWN0OwotfQotCiBmbG9hdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZpZGVvQ29u
dGVudFNjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYjIyNjMwZmRhZGIuLjE2YmIyZGRmYTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWFj
aFNlbmRSaWdodDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1By
aXZhdGU7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTc2LDcgKzgwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0LCBmbG9hdCB2aWRl
b0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3Rp
bmdDb250ZXh0SUQ+JiYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHBy
aXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4mJik+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBs
b2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTA5LDYgKzExMywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWRlb1RyYWNrU2V0U2VsZWN0ZWQoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCB0ZXh0VHJhY2tTZXRNb2RlKFRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6
Ok1vZGUpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBzZXRWaWRlb0lubGluZVNp
emVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdo
dCYpOworI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAg
IHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKTsKQEAgLTE3OCw3ICsxODYsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3Jl
OjpMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAg
ICBmbG9hdCBtZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4Zjg2MTVhNGY1Zi4u
Y2E2NjMxNGRmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3
ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhi
b29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5k
ZXJpbmcsIFdlYkNvcmU6OkxheW91dFJlY3QgbGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50
U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gbGF5ZXJI
b3N0aW5nQ29udGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBw
cmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZs
b2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVy
bCwgT3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRl
bnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVt
KSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXll
ckNvbmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC01Nyw2ICs1NywxMCBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAg
IFZpZGVvVHJhY2tTZXRTZWxlY3RlZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgdHJhY2tJRCwgYm9vbCBlbmFibGVkKQogICAgIFRleHRUcmFja1NldE1vZGUoV2ViS2l0OjpU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG1vZGUpCiAKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBN
YWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCisjZW5kaWYKKwogICAgICMgUGFpbnQKICAgICAj
IFBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0CiAKQEAgLTgxLDcgKzg1LDYgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIEFwcGxpY2F0
aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM1ZmM1ZGJhMDdkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlh
UGxheWVyUHJveHlDb2NvYS5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQ
TEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2ltcG9y
dCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4K
KyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hT
ZW5kUmlnaHQpCit7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFj
aFNlbmRSaWdodC5zZW5kUmlnaHQoKSk7CisgICAgLy8gV2UgZG8gbm90IHdhbnQgYW5pbWF0aW9u
cyBoZXJlCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNl
dERpc2FibGVBY3Rpb25zOllFU107CisgICAgW21fbGF5ZXJIb3N0aW5nQ29udGV4dC0+cm9vdExh
eWVyKCkgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZDI0YTgwNDhlMzQuLmRhMjNiMGU1ZDMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01NywxMCArNTcsMTEgQEAgTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENSZXNvbHZlci5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUmVzb2x2ZXJDb2NvYS5jcHAKIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29j
a2V0LmNwcAogCitHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogR1BVUHJvY2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJv
Y2Vzcy9tYWMvR1BVUHJvY2Vzc01hYy5tbQorR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29jb2EubW0KIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tCi1HUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2
aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9jZi9Nb2R1bGVDRi5jcHAKIApAQCAtNTU0LDYg
KzU1NSw4IEBAIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCiAKIFdlYlByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2lu
dC5tbQogCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2Eu
bW0KKwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIu
Y3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlTWFjLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDIzN2JkZTQ4NzVhLi5kZWY3ODkyMzUxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwcml2YXRlOgogICAgIHVp
bnQ2NF90IG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkIHsgMCB9OwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIGludD4gbV9jbGllbnRDb3VudHM7CiB9OwotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMp
ICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYzAwMGJmNzAwNy4uNTk3YTMz
MGE3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjY4MCw2ICsyNjgwLDcgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8q
IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0
b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCTFEMEVDRUFBMjNGQzg1ODQwMEQxNzJGNiAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4MjNBODQ2NUEw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OTkyM0E4
NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNjk2LDYgKzI2OTcsMTAgQEAKIAkJMURCQkIwNjEyMTFDQzNDQjAw
NTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MURFMEQwOTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMERGMjNGNjBFMUUwMEU5QjQ5
MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3Rl
Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllclJlbW90
ZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUyMjNGNjEwRjAw
MEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRleHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNjkxODU4REMxNTAw
RjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAx
ODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjU0LDYgKzUyNTks
NyBAQAogCQkwNzkyMzEyRjIzOUIzQjBDMDA5NTk4RTIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUx
OCAvKiBjb2NvYSAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0MgLyogQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjNDOTNCQjcwMDY4MEQ3QyAvKiBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThF
MiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLApAQCAtNTI3MSw2ICs1Mjc3LDgg
QEAKIAkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmggKi8sCiAJCQkJMDdFMTlGMDgyM0Q1MzNCOTAwOTRGRkI0IC8qIFRleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwICovLAogCQkJCTA3RTE5RjA5MjNENTMzQkEwMDk0RkZCNCAvKiBUZXh0VHJh
Y2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMURGREQwRTMyM0Y2MTBGRTAwRTlCNDkwIC8qIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCisJCQkJMURGREQwRTIyM0Y2MTBG
MDAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGUuaCAqLywKIAkJCQkwNzFCQzU4MzIzQ0MyQkQ1
MDA2ODBEN0MgLyogVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTgy
MjNDQzJCRDMwMDY4MEQ3QyAvKiBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJKTsK
QEAgLTUyODAsNiArNTI4OCw3IEBACiAJCTA3Qzc1QzE3MjM5OUEzREIwMDg4RTY1QiAvKiBtZWRp
YSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QTkyM0ZDODRCQjAwRDE3MkY2IC8qIGNvY29hICovLAogCQkJCTA3MUJDNTdFMjNDQTVEQjEwMDY4
MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTdGMjNDQTVE
QjEwMDY4MEQ3QyAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHkuaCAqLywKIAkJCQkwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovLApA
QCAtNjE0OSw2ICs2MTU4LDIzIEBACiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2Nv
YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLywK
KwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OworCQkxREFGNUE0RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAv
KiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLywKKwkJCQkxREZERDBERjIzRjYwRTFFMDBFOUI0
OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2Nv
YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGMDE4MTY4MTg1OERDMTUw
MEY5Mjg4NCAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOWRjMGViYjYwNjYuLjZkMmFi
MjEwOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIK
KyNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCkBAIC00Miw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC05MCwxNyArOTIsMTYgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmUpCiB7Ci0gICAgYXV0byBsYXlvdXRSZWN0ID0gbV9wbGF5ZXItPnBsYXllckNvbnRl
bnRCb3hSZWN0KCk7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50c1Nj
YWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHBy
ZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBsYXlvdXRSZWN0LCBzY2FsZSksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUg
eworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwg
cHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCB0aGlzXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFjb250ZXh0SWQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KGNvbnRleHRJZC52
YWx1ZSgpKTsKKyAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9MYXllclJl
bW90ZSh0aGlzLCBjb250ZXh0SWQudmFsdWUoKSk7CiAgICAgfSwgbV9pZCk7CiB9CiAKQEAgLTMw
NSw2ICszMDYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2l6ZUNoYW5nZWQo
V2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKKyAgICBJTkZPX0xPRyhMT0dJ
REVOVElGSUVSKTsKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiB9
CiAKQEAgLTU0Nyw3ICs1NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9h
ZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvTGF5
ZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKIH0KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkpCkBAIC02NzEsMTQgKzY3MywyMSBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBzaXplLCBjb25z
dCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvSW5saW5lU2l6
ZUZlbmNlZChzaXplLCBtYWNoU2VuZFJpZ2h0KSwgbV9pZCk7Cit9CisjZW5kaWYKKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBXZSBhbHdheXMgcmVu
ZGVyIHRvIGEgbGF5ZXIsIHNvIHRoaXMgZnVuY3Rpb24gaXMgZW1wdHkuCiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgLy8gV2UgYWx3YXlzIHJlbmRlciB0byBhIGxheWVyLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIGVt
cHR5LgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA3ZjczOTA0MTkzNy4uY2Mw
MzQ3NzdiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzgsNiArMzgsMTAgQEAK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBNYWNoU2VuZFJpZ2h0OworfQorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiB9CkBAIC04Nyw2ICs5MSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBib29sIGhhc1Zp
ZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKICAgICB2b2lk
IHNpemVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSk7CiAgICAgdm9pZCBmaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHNldFZpZGVvSW5s
aW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2Vu
ZFJpZ2h0Jik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYp
OwogICAgIHZvaWQgcmVtb3ZlUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyKTsKQEAgLTIyNSwxMyArMjMyLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dy
ZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBJbiB0aGUgQ29jb2EgV2ViS2l0IHBvcnQsIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNpemUoKSBkb2VzIG5vdGhpbmcs
Ci0gICAgLy8gc28gdGhlIFdlYiBwcm9jZXNzIGRvZXMgbm90IG5lZWQgdG8gc2VuZCBJUEMgbWVz
c2FnZXMgdG8gY2FsbCBpdCBpbiB0aGUgR1BVIHByb2Nlc3MuCi0gICAgLy8gT3RoZXIgV2ViS2l0
IHBvcnRzIG1heSBuZWVkIHRvIGRvIHRoYXQuCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKSBmaW5hbCB7IH0KLQogICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7Ci0KICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJvb2wgY29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxh
dGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NH
TGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKQEAgLTM0OCw3ICszNDksNyBAQCBwcml2
YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9Owog
ICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVkaWFS
ZXNvdXJjZUxvYWRlcjsKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0xheWVy
OworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmll
cjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvTGF5ZXJSZW1vdGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMjQ5MDZmMjFiMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9M
YXllclJlbW90ZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRl
ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitP
QkpDX0NMQVNTIENBTGF5ZXI7CisKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JldGFpblB0cjxDQUxheWVyPiBjcmVhdGVWaWRlb0xheWVy
UmVtb3RlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSosIExheWVySG9zdGluZ0NvbnRleHRJRCk7
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1v
dGVDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzU4MTA4
YTY0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9S
TShDT0NPQSkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworfQorCitA
aW50ZXJmYWNlIFdLVmlkZW9MYXllclJlbW90ZSA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBhc3NpZ24pIFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlICptZWRpYVBsYXll
clByaXZhdGVSZW1vdGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDQUxheWVyICp2
aWRlb1N1YmxheWVyOworQHByb3BlcnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb0xheWVyRnJh
bWU7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTIwZDVlOWJmYjYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVv
TGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlkZW9MYXllclJlbW90ZUNvY29hLmgiCisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJMYXllckhv
c3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKKyNp
bXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL1RpbWVyLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5o
PgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgor
CitAaW1wbGVtZW50YXRpb24gV0tWaWRlb0xheWVyUmVtb3RlIHsKKyAgICBXZWFrUHRyPFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwor
ICAgIENBTGF5ZXIgKl92aWRlb1N1YmxheWVyOworICAgIENBQ29udGV4dCAqX2NvbnRleHQ7CisK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGltZXI+IF9yZXNvbHZlQm91bmRzVGltZXI7
CisgICAgYm9vbCBfc2hvdWxkUmVzdGFydFdoZW5UaW1lckZpcmVzOworICAgIFNlY29uZHMgX2Rl
bGF5OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5p
dF07CisgICAgaWYgKHNlbGYpIHsKKyAgICAgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVTOwor
ICAgICAgICBfcmVzb2x2ZUJvdW5kc1RpbWVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpUaW1lcj4o
W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tWaWRlb0xheWVyUmVtb3RlPihzZWxmKV0geworICAg
ICAgICAgICAgYXV0byBsb2NhbFNlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgICAgIGlm
ICghbG9jYWxTZWxmKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgW2xv
Y2FsU2VsZiByZXNvbHZlQm91bmRzXTsKKyAgICAgICAgfSk7CisgICAgICAgIF9zaG91bGRSZXN0
YXJ0V2hlblRpbWVyRmlyZXMgPSBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZQoreworICAgIHJldHVybiBfbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmdldCgpOwor
fQorCistICh2b2lkKXNldE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTooV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUqKW1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZQoreworICAgIF9tZWRp
YVBsYXllclByaXZhdGVSZW1vdGUgPSBtYWtlV2Vha1B0cigqbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlKTsKK30KKworLSAoQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3Zp
ZGVvU3VibGF5ZXI7Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZp
ZGVvU3VibGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7Cit9CisK
Ky0gKHZvaWQpbGF5b3V0U3VibGF5ZXJzCit7CisgICAgaWYgKFtfdmlkZW9TdWJsYXllciBzdXBl
cmxheWVyXSAhPSBzZWxmKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpGbG9hdFJl
Y3Qgc291cmNlVmlkZW9GcmFtZSA9IHNlbGYudmlkZW9MYXllckZyYW1lOworICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCB0YXJnZXRWaWRlb0ZyYW1lID0gc2VsZi5ib3VuZHM7CisgICAgQ0dBZmZpbmVU
cmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUodGFyZ2V0Vmlk
ZW9GcmFtZS53aWR0aCgpIC8gc291cmNlVmlkZW9GcmFtZS53aWR0aCgpLCB0YXJnZXRWaWRlb0Zy
YW1lLmhlaWdodCgpIC8gc291cmNlVmlkZW9GcmFtZS5oZWlnaHQoKSk7CisKKyAgICBbQ0FUcmFu
c2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVT
XTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0
TWlkWChzZWxmLmJvdW5kcyksIENHUmVjdEdldE1pZFkoc2VsZi5ib3VuZHMpKV07CisgICAgW192
aWRlb1N1YmxheWVyIHNldEFmZmluZVRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5z
YWN0aW9uIGNvbW1pdF07CisKKyAgICBfY29udGV4dCA9IFtDQUNvbnRleHQgY3VycmVudENvbnRl
eHRdOworICAgIE5TVGltZUludGVydmFsIGFuaW1hdGlvbkR1cmF0aW9uID0gW0NBVHJhbnNhY3Rp
b24gYW5pbWF0aW9uRHVyYXRpb25dOworICAgIC8vIFdlIHdhbnQgdG8gd2FpdCBmb3Igc29tZSBz
aG9ydCB0aW1lIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBhbmltYXRpb24gKHdlIGNob29z
ZSAxMDAgbXMgaGVyZSkgdG8gZmlyZSB0aGUgdGltZXIKKyAgICAvLyB0byBhdm9pZCBleGNlc3Np
dmUgWFBDIG1lc3NhZ2VzIGZyb20gdGhlIFdlYiBwcm9jZXNzIHRvIHRoZSBHUFUgcHJvY2Vzcy4K
KyAgICBfZGVsYXkgPSBTZWNvbmRzKGFuaW1hdGlvbkR1cmF0aW9uICsgMC4xKTsKKyAgICBpZiAo
X3Jlc29sdmVCb3VuZHNUaW1lci0+aXNBY3RpdmUoKSkgeworICAgICAgICBfc2hvdWxkUmVzdGFy
dFdoZW5UaW1lckZpcmVzID0gdHJ1ZTsKKyAgICAgICAgX2RlbGF5IC09IF9yZXNvbHZlQm91bmRz
VGltZXItPm5leHRGaXJlSW50ZXJ2YWwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBf
cmVzb2x2ZUJvdW5kc1RpbWVyLT5zdGFydE9uZVNob3QoX2RlbGF5KTsKK30KKworLSAodm9pZCly
ZXNvbHZlQm91bmRzCit7CisgICAgaWYgKF9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMpIHsK
KyAgICAgICAgX3Nob3VsZFJlc3RhcnRXaGVuVGltZXJGaXJlcyA9IGZhbHNlOworICAgICAgICBf
cmVzb2x2ZUJvdW5kc1RpbWVyLT5zdGFydE9uZVNob3QoX2RlbGF5KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChbX3ZpZGVvU3VibGF5ZXIgc3VwZXJsYXllcl0gIT0gc2VsZikK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKENHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlkZW9M
YXllckZyYW1lLCBzZWxmLmJvdW5kcykgJiYgQ0dBZmZpbmVUcmFuc2Zvcm1Jc0lkZW50aXR5KHNl
bGYuYWZmaW5lVHJhbnNmb3JtKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rp
b24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisK
KyAgICBpZiAoIUNHUmVjdEVxdWFsVG9SZWN0KHNlbGYudmlkZW9MYXllckZyYW1lLCBzZWxmLmJv
dW5kcykpIHsKKyAgICAgICAgc2VsZi52aWRlb0xheWVyRnJhbWUgPSBzZWxmLmJvdW5kczsKKyAg
ICAgICAgaWYgKGF1dG8qIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSA9IHNlbGYubWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKSB7CisgICAgICAgICAgICBNYWNoU2VuZFJpZ2h0IGZlbmNlU2VuZFJp
Z2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW19jb250ZXh0IGNyZWF0ZUZlbmNlUG9ydF0pOwor
ICAgICAgICAgICAgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLT5zZXRWaWRlb0lubGluZVNpemVG
ZW5jZWQoV2ViQ29yZTo6SW50U2l6ZShzZWxmLnZpZGVvTGF5ZXJGcmFtZS5zaXplKSwgZmVuY2VT
ZW5kUmlnaHQpOworICAgICAgICB9CisgICAgfQorCisgICAgW192aWRlb1N1YmxheWVyIHNldEFm
ZmluZVRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5XTsKKyAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0RnJhbWU6c2VsZi5ib3VuZHNdOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0
XTsKK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmV0YWluUHRyPENBTGF5ZXI+
IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiBtZWRpYVBs
YXllclByaXZhdGVSZW1vdGUsIExheWVySG9zdGluZ0NvbnRleHRJRCBjb250ZXh0SWQpCit7Cisg
ICAgLy8gSW5pdGlhbGx5LCBhbGwgdGhlIGxheWVycyB3aWxsIGJlIGVtcHR5IChib3RoIHdpZHRo
IGFuZCBoZWlnaHQgYXJlIDApIGFuZCBpbnZpc2libGUuCisgICAgLy8gVGhlIHJlbmRlcmVyIHdp
bGwgY2hhbmdlIHRoZSBzaXplcyBvZiBXS1ZpZGVvTGF5ZXJSZW1vdGUgdG8gdHJpZ2dlciBsYXlv
dXQgb2Ygc3VibGF5ZXJzIGFuZCBtYWtlIHRoZW0gdmlzaWJsZS4KKyAgICBhdXRvIHZpZGVvTGF5
ZXJSZW1vdGUgPSBhZG9wdE5TKFtbV0tWaWRlb0xheWVyUmVtb3RlIGFsbG9jXSBpbml0XSk7Cisj
aWZuZGVmIE5ERUJVRworICAgIFt2aWRlb0xheWVyUmVtb3RlIHNldE5hbWU6QCJXS1ZpZGVvTGF5
ZXJSZW1vdGUiXTsKKyNlbmRpZgorCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZV07CisKKyAgICBhdXRvIHZp
ZGVvU3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9y
SG9zdGluZ0NvbnRleHQoY29udGV4dElkKTsKKyAgICBbdmlkZW9MYXllclJlbW90ZSBzZXRWaWRl
b1N1YmxheWVyOnZpZGVvU3VibGF5ZXIuZ2V0KCldOworICAgIFt2aWRlb0xheWVyUmVtb3RlIGFk
ZFN1YmxheWVyOnZpZGVvU3VibGF5ZXIuZ2V0KCldOworCisgICAgcmV0dXJuIHZpZGVvTGF5ZXJS
ZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMzg3
NmNkMTVlM2UuLjNmZmNkYmU1MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTE3LDYgKzExNyw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9jay5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SZW5kZXJJbWFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXll
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391356</attachid>
            <date>2020-02-20 16:28:38 -0800</date>
            <delta_ts>2020-02-20 22:57:52 -0800</delta_ts>
            <desc>Revise the patch according to Jer&apos;s comments</desc>
            <filename>206132.patch</filename>
            <type>text/plain</type>
            <size>47837</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YWFmZTcyMjgzMC4uN2RhMGYzYTI2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0yMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gU3luY2hyb25pemUgdGhlIHByb3BlcnRp
ZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJvY2VzcyB3aXRoIHRoZSBob3N0aW5nIGxh
eWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBuYW1lIChmb3IgZGVidWdnaW5nKSBvZiB0aGUgQ0FM
YXllciBjcmVhdGVkIGJ5IF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEIChUaGUgQ0FMYXll
ciB3aWxsIG5vdCBiZSBvbmx5IHVzZWQgYXMgdmlkZW8gbGF5ZXJzKS4KKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIGZpeGVzIHRoZSBvcmRlcmluZyBpc3N1ZSByZWxhdGVkIHRvIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIGFuZCBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gdGhlIFhjb2RlIHBy
b2plY3QgZmlsZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJh
cy5tbToKKyAgICAgICAgKCtbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpd
KToKKwogMjAyMC0wMi0yMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdIFNvbWV0aW1lcyBzdWJmcmFtZXMgZG9uJ3QgZXZlbiBoYXZlIGRvY3VtZW50IGVs
ZW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNzQ3ZmM2ZTRjNGQuLjEyOWQ4MGU1YjI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMi0yMCAgUGVuZyBMaXUg
IDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10g
U3luY2hyb25pemUgdGhlIHByb3BlcnRpZXMgb2YgdmlkZW8gbGF5ZXJzIGluIHRoZSBHUFUgcHJv
Y2VzcyB3aXRoIHRoZSBob3N0aW5nIGxheWVyIGluIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBDQUNvbnRl
eHQgaW50ZXJmYWNlIHRvIGV4cG9zZSBjdXJyZW50Q29udGV4dCBmb3IgZXh0ZXJuYWwgYnVpbGRz
LgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisKIDIwMjAtMDIt
MjAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgTlNVc2Vy
RGVmYXVsdHNTUEkuaCBpcyBjb3BpZWQgdG8gYW4gaW5jb3JyZWN0IHBhdGgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCAwZjllYWQ3
YmI5NS4uNTMzZjcwZGRmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTYwLDYgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NB
UmVuZGVyQ29udGV4dCBDQVJlbmRlckNvbnRleHQ7CiAKIEBpbnRlcmZhY2UgQ0FDb250ZXh0ICgp
CiArIChOU0FycmF5ICopYWxsQ29udGV4dHM7CisrIChDQUNvbnRleHQgKiljdXJyZW50Q29udGV4
dDsKICsgKENBQ29udGV4dCAqKWxvY2FsQ29udGV4dDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNv
bnRleHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKICNpZiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNzhjODM3YThjODQuLmY3ZThjNTYzMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzMsNyArNjMzLDYgQEAKIAkJ
MUQyRjhFMDQyMzQ0NzUxNjAwOTkzQjY4IC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQTIz
M0MzRDBCMDBFRTIyOEQgLyogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNTIzNDQ3NTFE
MDA5OTNCNjggLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVF
MjI4RCAvKiBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5
M0I2OCAvKiBQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDRDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVy
ZUluUGljdHVyZVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
RDM5MkYyODIzRjIwOUI0MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9
OwogCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4
MEUgLyogU2hhcmVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGMzZFQTlD
MUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJBMTcw
MDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTU4Miw2ICsxNTgxLDcgQEAKIAkJ
NTJCMEQ0QkUxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUz
IC8qIFBsYXRmb3JtVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5D
aGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0
QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUyRDVBMThGMUM1
NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMg
LyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBE
RTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5Nb2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlk
ZW9FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcw
MDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY1MTAsOCArNjUxMCw2IEBACiAJCTFEMDAyNkE4MjM3NEY5
RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpT
RW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5Q
aWN0dXJlU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxRDM5MkYyODIzRjIwOUI0MDBFMDRCMkQg
LyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkxRDM5MkYyQTIzRjIwOUI1MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREJDMUI1NTIzNDdCM0QyMDBC
OTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1
NTNGRDIxMUJBMTJBMDA0Qjc4MEUgLyogTmF2aWdhdG9yU2hhcmUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE5hdmlnYXRvclNoYXJlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMURDNTUzRkYyMTFCQTg0MTAwNEI3ODBFIC8qIFNoYXJlRGF0YS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU2hhcmVEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTg0NDYsNiArODQ0NCw4IEBACiAJCTUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MkIwRDRDMTFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNCMTFEQjIy
RkREQjJFMDA5RjBBNjQgLyogV0hMU0xEZWZhdWx0RGVsZXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdI
TFNMRGVmYXVsdERlbGV0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1QTE4
RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTUyRDVBMThFMUM1NDU5
MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
ZGVvRnVsbHNjcmVlbk1vZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVB
MUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNjFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NzUwLDggKzI2
NzUwLDggQEAKIAkJCQk3QTI5RjU3MTE4QzY5NTE0MDA0RDBGODEgLyogT3V0T2ZCYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRi5oICovLAogCQkJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNEQzhCNUE4MTgwNDdGRjEwMDE2RTY4
NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLywKLQkJCQkxRDM5MkYyQTIzRjIw
OUI1MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCi0JCQkJMUQzOTJGMjgy
M0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKKwkJCQk1MkQ1
QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8sCisJCQkJ
NTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywK
IAkJCQlDRDMzNkY2NTE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
LmNwcCAqLywKIAkJCQlDRDMzNkY2NjE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZh
dGVBVkZPYmpDLmggKi8sCiAJCQkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCkBAIC0zNDI3Nyw3ICszNDI3Nyw3IEBA
CiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2Ny
aXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8q
IFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZC
QzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJMUQzOTJGMkQyM0YyMEE3MDAwRTA0QjJEIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUyRDVBMThGMUM1NDU5MjMwMERF
MzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCRTg4
RTBERTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCRTg4RTBFMTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0QzMzZGNjcxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0KaW5k
ZXggMTgwNWMwYTVmNmMuLmYxMDI3NDQ5ZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5t
bQpAQCAtODIsNyArODIsNyBAQAogewogICAgIENBTGF5ZXJIb3N0ICpsYXllckhvc3QgPSBbQ0FM
YXllckhvc3QgbGF5ZXJdOwogI2lmbmRlZiBOREVCVUcKLSAgICBbbGF5ZXJIb3N0IHNldE5hbWU6
QCJXZWJWaWRlb0hvc3RpbmdMYXllciJdOworICAgIFtsYXllckhvc3Qgc2V0TmFtZTpAIkhvc3Rp
bmcgbGF5ZXIiXTsKICNlbmRpZgogICAgIGxheWVySG9zdC5jb250ZXh0SWQgPSBjb250ZXh0SUQ7
CiAgICAgcmV0dXJuIGxheWVySG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2RkMGJjYTg3MzkuLjIzYWE2ZWQ5
OTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAyLTIwICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBTeW5j
aHJvbml6ZSB0aGUgcHJvcGVydGllcyBvZiB2aWRlbyBsYXllcnMgaW4gdGhlIEdQVSBwcm9jZXNz
IHdpdGggdGhlIGhvc3RpbmcgbGF5ZXIgaW4gdGhlIHdlYiBwcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUgY3JlYXRlcyBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2hvc2Ugc3VibGF5ZXIgaXMgY3JlYXRlZCBi
eSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRl
eHQoKS4KKyAgICAgICAgVGhlIFdLVmlkZW9MYXllclJlbW90ZSB3aWxsIGJlIHVzZWQgYnkgdGhl
IHJlbmRlcmVyIHRvIG1hbmFnZSB0aGUgdmlkZW8gZWxlbWVudCBpbiB0aGUgV2ViIHByb2Nlc3Mu
IFdoZW4gaXRzIHNpemUgaXMgY2hhbmdlZCBieSB0aGUgcmVuZGVyZXIsCisgICAgICAgIGl0IGFw
cGxpZXMgYSB0cmFuc2Zvcm0gd2l0aG91dCBjaGFuZ2luZyBpdHMgYWN0dWFsIHNpemUsIGFuZCBz
ZW5kcyBhIG1lc3NhZ2UgdG8gTWVkaWFQbGF5ZXJQcml2YXRlUHJveHkgaW4gdGhlIEdQVSBwcm9j
ZXNzCisgICAgICAgIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyIGxheWVyLiBB
ZnRlciB0aGF0LCBXS1ZpZGVvTGF5ZXJSZW1vdGUgd2lsbCBzZXQgaXRzIHNpemUgdG8gdGhlIGNv
cnJlY3Qgb25lIGluIHRoZSBXZWIgcHJvY2VzcyBzaWRlLgorICAgICAgICBXZSBuZWVkIHRvIHVz
ZSBhIE1hY2hTZW5kUmlnaHQgdG8gc3luY2hyb25pemUgdGhlIHRyYW5zYWN0aW9ucyBpbiB0aGUg
V2ViIHByb2Nlc3MgYW5kIHRoZSBHUFUgcHJvY2Vzcy4KKworICAgICAgICBXZSBoYXZlIHRvIHVz
ZSBzdWNoIGEgcHJvY2VzcyB0byBjaGFuZ2UgdGhlIGFwcGVhcmFuY2Ugb2YgV0tWaWRlb0xheWVy
UmVtb3RlIGluIG9yZGVyIHRvIGd1YXJhbnRlZSB0aGUgc21vb3RobmVzcyB3aGVuIGEgdXNlcgor
ICAgICAgICBjaGFuZ2UgdGhlIHNpemUgb2YgYSB2aWRlbyBlbGVtZW50LgorCisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0Vmlk
ZW9JbmxpbmVTaXplRmVuY2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZl
bmNlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQp
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRl
b0xheWVyUmVtb3RlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2Nv
Y29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EubW06IEFkZGVkLgorICAgICAg
ICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgaW5pdF0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJS
ZW1vdGUgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBzZXRNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSB2
aWRlb1N1YmxheWVyXSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSBzZXRWaWRlb1N1
YmxheWVyOl0pOgorICAgICAgICAoLVtXS1ZpZGVvTGF5ZXJSZW1vdGUgbGF5b3V0U3VibGF5ZXJz
XSk6CisgICAgICAgICgtW1dLVmlkZW9MYXllclJlbW90ZSByZXNvbHZlQm91bmRzXSk6CisgICAg
ICAgIChXZWJLaXQ6OmNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbTogRml4ZWQgYSB1bmlmaWVkIGJ1aWxkIGZhaWx1
cmUuCisKIDIwMjAtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgV0tXZWJWaWV3IHdpdGggbm9uLXplcm8gb3JpZ2luIGhhcyB0aGUgd3Jvbmcg
dG9wIGNvbnRlbnQgaW5zZXQgd2l0aCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZp
ZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBkOWUzYmQzNzI3Mi4uNWVmZTY2MjVkNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTGF5
ZXJIb3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTEwMCwxOSArMTAxLDE4IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bG9hZChVUkwmJiB1cmwsIE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4mCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFdURkxvZ0Fs
d2F5cygiVW5hYmxlIHRvIGNyZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgbWVkaWEgdXJsLlxu
Iik7CiAgICAgfQotCisgICAgCiAgICAgbV9wbGF5ZXItPmxvYWQodXJsLCBjb250ZW50VHlwZSwg
a2V5U3lzdGVtKTsKICAgICBnZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pOwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogfQogCi12b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVz
UGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgTGF5b3V0UmVjdCBsYXlvdXRSZWN0LCBm
bG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJp
dmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0Nv
bnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdD
b250ZXh0SUQ+JiYgY29udGV4dElkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3Bs
YXllci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXIt
PnNldFByZWxvYWQocHJlbG9hZCk7CiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHBy
ZXNlcnZlc1BpdGNoKTsKICAgICBtX3BsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAg
IG1fdmlkZW9Db250ZW50Qm94UmVjdCA9IGxheW91dFJlY3Q7CiAgICAgbV92aWRlb0NvbnRlbnRT
Y2FsZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExh
eWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAg
ICBjb21wbGV0aW9uSGFuZGxlcihtX2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsK
QEAgLTQ2OCw2ICs0NjgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxh
eWVyRW5naW5lVXBkYXRlZCgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQogeworICAgIC8vIEluaXRpYWxseSB0aGUg
c2l6ZSBvZiB0aGUgcGxhdGZvcm1MYXllciB3aWxsIGJlIDB4MCBiZWNhdXNlIHdlIGRvIG5vdCBw
cm92aWRlIG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBpbiB0aGlzIGNsYXNzLgogICAgIG1f
bGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1fcGxheWVyLT5wbGF0Zm9ybUxheWVy
KCkpOwogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6Rmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCksIG1faWQpOwogfQpA
QCAtNTQ2LDExICs1NDcsNiBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxh
eWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUxheW91dFJlY3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50Qm94
UmVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlkZW9Db250ZW50Qm94UmVjdDsKLX0KLQog
ZmxvYXQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV92aWRlb0NvbnRlbnRTY2FsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmlu
ZGV4IGIyMjYzMGZkYWRiLi4xNmJiMmRkZmEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC00Niw2ICs0
NiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1hY2hTZW5kUmlnaHQ7Cit9CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgVmlkZW9UcmFja1By
aXZhdGU7CkBAIC03Niw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0Q29uZmlndXJh
dGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKTsKIAotICAgIHZvaWQgcHJlcGFy
ZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywg
V2ViQ29yZTo6TGF5b3V0UmVjdCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmKT4mJik7CisgICAg
dm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9y
UmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYpPiYmKTsKICAgICB2b2lkIHByZXBh
cmVGb3JSZW5kZXJpbmcoKTsKIAogICAgIHZvaWQgbG9hZChVUkwmJiwgT3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIGNvbnN0
IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uJiYpPiYmKTsKQEAgLTEwOSw2ICsxMTMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdmlk
ZW9UcmFja1NldFNlbGVjdGVkKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOwog
ICAgIHZvaWQgdGV4dFRyYWNrU2V0TW9kZShUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlKTsKIAorI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5
YmFja0Rpc2FibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJn
ZXQoYm9vbCk7CkBAIC0xNzgsNyArMTg2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxh
eWVySXNGdWxsc2NyZWVuKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVs
bHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1Zp
ZGVvKCkgY29uc3QgZmluYWw7Ci0gICAgV2ViQ29yZTo6TGF5b3V0UmVjdCBtZWRpYVBsYXllckNv
bnRlbnRCb3hSZWN0KCkgY29uc3QgZmluYWw7CiAgICAgZmxvYXQgbWVkaWFQbGF5ZXJDb250ZW50
c1NjYWxlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllclBhdXNlKCkgZmluYWw7
CiAgICAgdm9pZCBtZWRpYVBsYXllclBsYXkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggOGY4NjE1YTRmNWYuLmNhNjYzMTRkZmJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3Vu
dGVkIHsKLSAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVz
ZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBXZWJDb3JlOjpMYXlvdXRSZWN0
IGxheW91dFJlY3QsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0
OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKKyAg
ICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50OF90IFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRj
aCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkgLT4g
KE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBsYXllckhvc3RpbmdDb250
ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1cmwsIE9wdGlvbmFsPFdlYktpdDo6U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpDb250ZW50VHlw
ZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBBc3luYwogICAg
IENhbmNlbExvYWQoKQpAQCAtNTcsNiArNTcsMTAgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBWaWRlb1RyYWNrU2V0U2VsZWN0ZWQoV2Vi
S2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIGJvb2wgZW5hYmxlZCkK
ICAgICBUZXh0VHJhY2tTZXRNb2RlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciB0cmFja0lELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
TW9kZSBtb2RlKQogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU2V0VmlkZW9JbmxpbmVTaXpl
RmVuY2VkKFdlYkNvcmU6OkludFNpemUgc2l6ZSwgTWFjaFNlbmRSaWdodCBtYWNoU2VuZFJpZ2h0
KQorI2VuZGlmCisKICAgICAjIFBhaW50CiAgICAgIyBQYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dAogCkBAIC04MSw3ICs4NSw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkg
Tm90UmVmQ291bnRlZCB7CiAKICAgICBBcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogICAg
IEFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4zNWZjNWRiYTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTAs
MCArMSw1MCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQg
IkxheWVySG9zdGluZ0NvbnRleHQuaCIKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdo
dC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwg
Y29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBtYWNoU2VuZFJpZ2h0KQoreworICAgIG1fbGF5ZXJI
b3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KG1hY2hTZW5kUmlnaHQuc2VuZFJpZ2h0KCkpOwor
ICAgIC8vIFdlIGRvIG5vdCB3YW50IGFuaW1hdGlvbnMgaGVyZQorICAgIFtDQVRyYW5zYWN0aW9u
IGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAg
IFttX2xheWVySG9zdGluZ0NvbnRleHQtPnJvb3RMYXllcigpIHNldEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKV07CisgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGQyNGE4MDQ4ZTM0Li5kYTIzYjBlNWQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTcs
MTAgKzU3LDExIEBAIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUmVzb2x2ZXIuY3Bw
CiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3BwCiBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKIAorR1BVUHJvY2Vzcy9FbnRy
eVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvR1BVU2VydmljZUVudHJ5UG9pbnQubW0KIEdQVVByb2Nl
c3MvaW9zL0dQVVByb2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0K
K0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCiBH
UFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQotR1BVUHJvY2Vzcy9FbnRy
eVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvR1BVU2VydmljZUVudHJ5UG9pbnQubW0KIAogUGxhdGZv
cm0vY2YvTW9kdWxlQ0YuY3BwCiAKQEAgLTU1NCw2ICs1NTUsOCBAQCBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQogCiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2Vy
dmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KIAorV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1tCisKIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlQmFubmVyLmNwcAogCiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL21hYy9XS0J1bmRsZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRl
eCAyMzdiZGU0ODc1YS4uZGVmNzg5MjM1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0x
OTAsNyArMTkwLDcgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2NvbnRyb2xzTWFuYWdlckNv
bnRleHRJZCB7IDAgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBpbnQ+IG1fY2xpZW50Q291bnRz
OwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZGFjODg0ODg2ZTIuLmM2YmU1YWY1Mzc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2ODEsNiArMjY4MSw3IEBA
CiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclByb3h5TWVz
c2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5
RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JV
SU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDBFQ0VBQTIzRkM4NTg0
MDBEMTcyRjYgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY5Nyw2ICsy
Njk4LDEwIEBACiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAv
KiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFy
ZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5Rjgw
MDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxREZERDBERjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllclJl
bW90ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREZERDBFMDIzRjYw
RTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxREZERDBFMjIzRjYxMEYwMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyUmVtb3RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFRleHRUcmFja1ByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFGMDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QTE4NThE
QzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAwRjkyODg0IC8qIFdL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTI1Niw2ICs1MjYxLDcgQEAKIAkJMDc5MjMxMkYyMzlCM0IwQzAw
OTU5OEUyIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxREFGNUE0RDIzRUM5Rjc5MDBCN0I1MTggLyogY29jb2EgKi8sCiAJCQkJMDcxQkM1
NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJ
CQkwNzFCQzU3NzIzQzkzQkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCAq
LywKIAkJCQkwNzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcCAqLywKQEAgLTUyNzMsNiArNTI3OSw4IEBACiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJCTA3RTE5RjA4MjNE
NTMzQjkwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwN0Ux
OUYwOTIzRDUzM0JBMDA5NEZGQjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJ
CTFERkREMEUzMjNGNjEwRkUwMEU5QjQ5MCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlLm1lc3Nh
Z2VzLmluICovLAorCQkJCTFERkREMEUyMjNGNjEwRjAwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVt
b3RlLmggKi8sCiAJCQkJMDcxQkM1ODMyM0NDMkJENTAwNjgwRDdDIC8qIFZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzFCQzU4MjIzQ0MyQkQzMDA2ODBEN0MgLyogVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGUuaCAqLywKIAkJCSk7CkBAIC01MjgyLDYgKzUyOTAsNyBAQAogCQkw
N0M3NUMxNzIzOTlBM0RCMDA4OEU2NUIgLyogbWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFEMEVDRUE5MjNGQzg0QkIwMEQxNzJGNiAvKiBjb2Nv
YSAqLywKIAkJCQkwNzFCQzU3RTIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9UcmFja1By
b3h5LmNwcCAqLywKIAkJCQkwNzFCQzU3RjIzQ0E1REIxMDA2ODBEN0MgLyogUmVtb3RlQXVkaW9U
cmFja1Byb3h5LmggKi8sCiAJCQkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLywKQEAgLTU3MzgsNiArNTc0Nyw3IEBACiAJCQkJ
N0FGQkQzNkQyMUU1NDZFMzAwNURCQUNCIC8qIFBlcnNpc3RlbmN5VXRpbHMuaCAqLywKIAkJCQlC
Q0M0M0FCODEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcCAqLywK
IAkJCQlCQ0M0M0FCOTEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmgg
Ki8sCisJCQkJNDlFQ0E0MUIyM0ZDQTQ4NjAwMjMzNThEIC8qIFBvbGljeURlY2lzaW9uLmggKi8s
CiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8sCiAJCQkJ
RTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovLAogCQkJCTQ2M0ZENDgx
MUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLywKQEAgLTU4
NjIsNyArNTg3Miw2IEBACiAJCQkJN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovLAogCQkJCTQ5NjBBM0JDMjNDNTI4NjQwMDk2
MTg0MiAvKiBXZWJWaWV3Q2F0ZWdvcnkuaCAqLywKIAkJCQlDMDMzN0REMDEyN0EyOTgwMDA4RkY0
RjQgLyogV2ViV2hlZWxFdmVudC5jcHAgKi8sCi0JCQkJNDlFQ0E0MUIyM0ZDQTQ4NjAwMjMzNThE
IC8qIFBvbGljeURlY2lzaW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFNoYXJlZDsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MTUyLDYgKzYxNjEsMjMgQEAKIAkJCXBhdGggPSBB
dXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUQwRUNFQTky
M0ZDODRCQjAwRDE3MkY2IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTFEQUY1QTREMjNFQzlGNzkwMEI3QjUxOCAvKiBj
b2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMURG
REQwRTAyM0Y2MEUxRjAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oICovLAorCQkJ
CTFERkREMERGMjNGNjBFMUUwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EubW0gKi8s
CisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJMUYwMTgxNjgxODU4REMxNTAwRjkyODg0IC8qIENvY29hICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEwNDg4LDYgKzEwNTE0LDcgQEAKIAkJCQkx
QTRBOUYzMzEyQjg0NEUyMDA4RkU5ODQgLyogUGx1Z2luUXVpcmtzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3Q0Q2MjI3ODE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNkZCN0FGMTFFNjRCNjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0OUVDQTQxQzIzRkNBNUQ4MDAyMzM1OEQgLyogUG9saWN5
RGVjaXNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkQzMTgxMjJCMzUxNUIwMDhEMEU4QiAv
KiBQb3BVcFNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQTBF
RDM1MUY3NDdDQ0YwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzE1Q0JCMzYyM0YzNzc3MTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMDc4MSw3ICsxMDgwOCw2IEBACiAJCQkJMkQ1QzlEMDYxOUM4MUQ4RjAw
QjNDNUMxIC8qIFdlYlBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkMzOTIyOTIz
MTZFQzREMDA4RUVEOUIgLyogV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCRDM5MTUxMjVCQjFBODAwRDJDMjlGIC8qIFdlYlBhZ2VQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0OUVDQTQxQzIzRkNBNUQ4MDAyMzM1OEQgLyogUG9saWN5RGVj
aXNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjEyN0M0MTkwODIzOUEwMERBRjM1QyAvKiBX
ZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzQ2OTREMTFBNTFF
MzY4MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QzQ2OTRDQTFBNEI0RUExMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlkYzBlYmI2
MDY2Li5lMzY3OWUyNzMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRl
UmVtb3RlLmgiCisjaW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgogI2luY2x1ZGUgIlZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtNDIsNiArNDMsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1MYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1UaW1lUmFu
Z2VzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRS
aWdodC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmlu
Z1ByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtOTAsMTcgKzkyLDE2IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBw
cml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlKQogewotICAgIGF1dG8gbGF5b3V0UmVjdCA9IG1fcGxheWVyLT5w
bGF5ZXJDb250ZW50Qm94UmVjdCgpOwogICAgIGF1dG8gc2NhbGUgPSBtX3BsYXllci0+cGxheWVy
Q29udGVudHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZh
dGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgbGF5b3V0UmVjdCwgc2Nh
bGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gY29udGV4dElk
KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUs
IHByZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBjb250ZXh0SWQpIG11dGFibGUgewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICghY29u
dGV4dElkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fdmlkZW9MYXllciA9IExh
eWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChj
b250ZXh0SWQudmFsdWUoKSk7CisgICAgICAgIG1fdmlkZW9JbmxpbmVMYXllciA9IGNyZWF0ZVZp
ZGVvTGF5ZXJSZW1vdGUodGhpcywgY29udGV4dElkLnZhbHVlKCkpOwogICAgIH0sIG1faWQpOwog
fQogCkBAIC0zMDUsNiArMzA2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNp
emVDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSkKIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7CisgICAgSU5G
T19MT0coTE9HSURFTlRJRklFUik7CiAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSgpOwogfQogCkBAIC01NDcsNyArNTQ5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikKIAogUGxhdGZvcm1MYXllciogTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV92aWRlb0xheWVyLmdldCgpOworICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7
CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpAQCAtNjcxLDYgKzY3MywxMyBAQCB1bnNpZ25l
ZCBsb25nIGxvbmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QK
ICAgICByZXR1cm4gMDsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBJbnRTaXplJiBz
aXplLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCit7CisgICAgY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVv
SW5saW5lU2l6ZUZlbmNlZChzaXplLCBtYWNoU2VuZFJpZ2h0KSwgbV9pZCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCmluZGV4IDdmNzM5MDQxOTM3Li5jYzAzNDc3N2JiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9NZWRpYVRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNz
IE1hY2hTZW5kUmlnaHQ7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElTT1dlYlZU
VEN1ZTsKIH0KQEAgLTg3LDYgKzkxLDkgQEAgcHVibGljOgogICAgIHZvaWQgY2hhcmFjdGVyaXN0
aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogICAgIHZvaWQgc2l6ZUNoYW5nZWQoV2ViQ29yZTo6
RmxvYXRTaXplKTsKICAgICB2b2lkIGZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKKyNlbmRpZgogCiAg
ICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CiAgICAgdm9pZCByZW1vdmVSZW1v
dGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIpOwpAQCAtMjI1LDEzICsy
MzIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBmaW5hbDsKIAot
ICAgIC8vIEluIHRoZSBDb2NvYSBXZWJLaXQgcG9ydCwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0U2l6ZSgpIGRvZXMgbm90aGluZywKLSAgICAvLyBzbyB0aGUgV2ViIHBy
b2Nlc3MgZG9lcyBub3QgbmVlZCB0byBzZW5kIElQQyBtZXNzYWdlcyB0byBjYWxsIGl0IGluIHRo
ZSBHUFUgcHJvY2Vzcy4KLSAgICAvLyBPdGhlciBXZWJLaXQgcG9ydHMgbWF5IG5lZWQgdG8gZG8g
dGhhdC4KLSAgICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGZpbmFsIHsg
fQotCiAgICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKLQogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNv
bnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JikgZmluYWw7CiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51
bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmlu
YWw7CiAgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGlt
ZSgpIGZpbmFsOwpAQCAtMzQ4LDcgKzM0OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwotICAgIFJl
dGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRyPFBsYXRm
b3JtTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9MYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmY2NGVmZjZjOGVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb0xheWVyUmVtb3RlLmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVyOworCitjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGUqLCBM
YXllckhvc3RpbmdDb250ZXh0SUQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1Zp
ZGVvTGF5ZXJSZW1vdGVDb2NvYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZTYyZDY2NGNkYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5oCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworfQorCitAaW50ZXJmYWNlIFdLVmlkZW9MYXll
clJlbW90ZSA6IENBTGF5ZXIKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworQHByb3BlcnR5IChu
b25hdG9taWMpIENHUmVjdCB2aWRlb0xheWVyRnJhbWU7CitAZW5kCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVy
UmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29h
L1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMzUyZjBjYzNkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJSZW1vdGVDb2NvYS5tbQpAQCAtMCww
ICsxLDE3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlk
ZW9MYXllclJlbW90ZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRG
T1JNKENPQ09BKQorCisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJSZW1vdGUuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1RpbWVyLmg+
CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKyNpbXBvcnQgPHd0Zi9N
YWNoU2VuZFJpZ2h0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KKyNpbXBvcnQgPHd0
Zi9XZWFrUHRyLmg+CisKKy8vIFdlIHdhbnQgdG8gd2FpdCBmb3IgYSBzaG9ydCB0aW1lIGFmdGVy
IHRoZSBjb21wbGV0aW9uIG9mIHRoZSBhbmltYXRpb24gKHdlIGNob29zZSAxMDAgbXMgaGVyZSkg
dG8gZmlyZSB0aGUgdGltZXIKKy8vIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBYUEMgbWVzc2FnZXMgZnJv
bSB0aGUgV2ViIHByb2Nlc3MgdG8gdGhlIEdQVSBwcm9jZXNzLgorc3RhdGljIGNvbnN0IFNlY29u
ZHMgUG9zdEFuaW1hdGlvbkRlbGF5IHsgMTAwX21zIH07CisKK0BpbXBsZW1lbnRhdGlvbiBXS1Zp
ZGVvTGF5ZXJSZW1vdGUgeworICAgIFdlYWtQdHI8V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU+IF9tZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CisgICAgUmV0YWluUHRyPENBQ29udGV4
dD4gX2NvbnRleHQ7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGltZXI+IF9yZXNv
bHZlQm91bmRzVGltZXI7CisgICAgYm9vbCBfc2hvdWxkUmVzdGFydFdoZW5UaW1lckZpcmVzOwor
ICAgIFNlY29uZHMgX2RlbGF5OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOwor
CisgICAgc2VsZi5tYXNrc1RvQm91bmRzID0gWUVTOworICAgIF9yZXNvbHZlQm91bmRzVGltZXIg
PSBtYWtlVW5pcXVlPFdlYkNvcmU6OlRpbWVyPihbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1Zp
ZGVvTGF5ZXJSZW1vdGU+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gbG9jYWxTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7CisgICAgICAgIGlmICghbG9jYWxTZWxmKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIFtsb2NhbFNlbGYgcmVzb2x2ZUJvdW5kc107CisgICAgfSk7CisgICAgX3Nob3Vs
ZFJlc3RhcnRXaGVuVGltZXJGaXJlcyA9IGZhbHNlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisK
Ky0gKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKiltZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUKK3sKKyAgICByZXR1cm4gX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5nZXQoKTsKK30K
KworLSAodm9pZClzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6KFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKiltZWRpYVBsYXllclByaXZhdGVSZW1vdGUKK3sKKyAgICBfbWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlID0gbWFrZVdlYWtQdHIoKm1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSk7Cit9CisKKy0gKHZvaWQpbGF5b3V0U3VibGF5ZXJzCit7CisgICAgYXV0byogc3VibGF5ZXJz
ID0gW3NlbGYgc3VibGF5ZXJzXTsKKyAgICAKKyAgICBpZiAoW3N1YmxheWVycyBjb3VudF0gIT0g
MSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzb3VyY2VWaWRlb0ZyYW1lID0gc2VsZi52aWRl
b0xheWVyRnJhbWU7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFZpZGVvRnJhbWUgPSBz
ZWxmLmJvdW5kczsKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRy
YW5zZm9ybU1ha2VTY2FsZSh0YXJnZXRWaWRlb0ZyYW1lLndpZHRoKCkgLyBzb3VyY2VWaWRlb0Zy
YW1lLndpZHRoKCksIHRhcmdldFZpZGVvRnJhbWUuaGVpZ2h0KCkgLyBzb3VyY2VWaWRlb0ZyYW1l
LmhlaWdodCgpKTsKKworICAgIGF1dG8qIHZpZGVvU3VibGF5ZXIgPSBbc3VibGF5ZXJzIG9iamVj
dEF0SW5kZXg6MF07CisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0
aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisgICAgW3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRp
b246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChzZWxmLmJvdW5kcyksIENHUmVjdEdldE1pZFko
c2VsZi5ib3VuZHMpKV07CisgICAgW3ZpZGVvU3VibGF5ZXIgc2V0QWZmaW5lVHJhbnNmb3JtOnRy
YW5zZm9ybV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKworICAgIF9jb250ZXh0ID0g
W0NBQ29udGV4dCBjdXJyZW50Q29udGV4dF07CisgICAgTlNUaW1lSW50ZXJ2YWwgYW5pbWF0aW9u
RHVyYXRpb24gPSBbQ0FUcmFuc2FjdGlvbiBhbmltYXRpb25EdXJhdGlvbl07CisKKyAgICBfZGVs
YXkgPSBTZWNvbmRzKGFuaW1hdGlvbkR1cmF0aW9uKSArIFBvc3RBbmltYXRpb25EZWxheTsKKyAg
ICBpZiAoX3Jlc29sdmVCb3VuZHNUaW1lci0+aXNBY3RpdmUoKSkgeworICAgICAgICBfc2hvdWxk
UmVzdGFydFdoZW5UaW1lckZpcmVzID0gdHJ1ZTsKKyAgICAgICAgX2RlbGF5IC09IF9yZXNvbHZl
Qm91bmRzVGltZXItPm5leHRGaXJlSW50ZXJ2YWwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBfcmVzb2x2ZUJvdW5kc1RpbWVyLT5zdGFydE9uZVNob3QoX2RlbGF5KTsKK30KKworLSAo
dm9pZClyZXNvbHZlQm91bmRzCit7CisgICAgaWYgKF9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmly
ZXMpIHsKKyAgICAgICAgX3Nob3VsZFJlc3RhcnRXaGVuVGltZXJGaXJlcyA9IGZhbHNlOworICAg
ICAgICBfcmVzb2x2ZUJvdW5kc1RpbWVyLT5zdGFydE9uZVNob3QoX2RlbGF5KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIHN1YmxheWVycyA9IFtzZWxmIHN1YmxheWVyc107
CisgICAgaWYgKFtzdWJsYXllcnMgY291bnRdICE9IDEpIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoQ0dSZWN0RXF1YWxU
b1JlY3Qoc2VsZi52aWRlb0xheWVyRnJhbWUsIHNlbGYuYm91bmRzKSAmJiBDR0FmZmluZVRyYW5z
Zm9ybUlzSWRlbnRpdHkoc2VsZi5hZmZpbmVUcmFuc2Zvcm0pKQorICAgICAgICByZXR1cm47CisK
KyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJs
ZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICghQ0dSZWN0RXF1YWxUb1JlY3Qoc2VsZi52aWRlb0xh
eWVyRnJhbWUsIHNlbGYuYm91bmRzKSkgeworICAgICAgICBzZWxmLnZpZGVvTGF5ZXJGcmFtZSA9
IHNlbGYuYm91bmRzOworICAgICAgICBpZiAoYXV0byogbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
ID0gc2VsZi5tZWRpYVBsYXllclByaXZhdGVSZW1vdGUpIHsKKyAgICAgICAgICAgIE1hY2hTZW5k
UmlnaHQgZmVuY2VTZW5kUmlnaHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbX2NvbnRleHQgY3Jl
YXRlRmVuY2VQb3J0XSk7CisgICAgICAgICAgICBtZWRpYVBsYXllclByaXZhdGVSZW1vdGUtPnNl
dFZpZGVvSW5saW5lU2l6ZUZlbmNlZChXZWJDb3JlOjpJbnRTaXplKHNlbGYudmlkZW9MYXllckZy
YW1lLnNpemUpLCBmZW5jZVNlbmRSaWdodCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRv
KiB2aWRlb1N1YmxheWVyID0gW3N1YmxheWVycyBvYmplY3RBdEluZGV4OjBdOworICAgIFt2aWRl
b1N1YmxheWVyIHNldEFmZmluZVRyYW5zZm9ybTpDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5XTsK
KyAgICBbdmlkZW9TdWJsYXllciBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisKKyAgICBbQ0FUcmFu
c2FjdGlvbiBjb21taXRdOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZXRh
aW5QdHI8Q0FMYXllcj4gY3JlYXRlVmlkZW9MYXllclJlbW90ZShNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUqIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSwgTGF5ZXJIb3N0aW5nQ29udGV4dElEIGNv
bnRleHRJZCkKK3sKKyAgICAvLyBJbml0aWFsbHksIGFsbCB0aGUgbGF5ZXJzIHdpbGwgYmUgZW1w
dHkgKGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgMCkgYW5kIGludmlzaWJsZS4KKyAgICAvLyBU
aGUgcmVuZGVyZXIgd2lsbCBjaGFuZ2UgdGhlIHNpemVzIG9mIFdLVmlkZW9MYXllclJlbW90ZSB0
byB0cmlnZ2VyIGxheW91dCBvZiBzdWJsYXllcnMgYW5kIG1ha2UgdGhlbSB2aXNpYmxlLgorICAg
IGF1dG8gdmlkZW9MYXllclJlbW90ZSA9IGFkb3B0TlMoW1tXS1ZpZGVvTGF5ZXJSZW1vdGUgYWxs
b2NdIGluaXRdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW3ZpZGVvTGF5ZXJSZW1vdGUgc2V0TmFt
ZTpAIldLVmlkZW9MYXllclJlbW90ZSJdOworI2VuZGlmCisKKyAgICBbdmlkZW9MYXllclJlbW90
ZSBzZXRNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlXTsK
KworICAgIGF1dG8gdmlkZW9TdWJsYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBs
YXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dChjb250ZXh0SWQpOworICAgIFt2aWRlb0xheWVy
UmVtb3RlIGFkZFN1YmxheWVyOnZpZGVvU3VibGF5ZXIuZ2V0KCldOworCisgICAgcmV0dXJuIHZp
ZGVvTGF5ZXJSZW1vdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
aW5kZXggNzg2NTMxM2UxN2IuLjk3OTEzMDllZjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTE3LDYgKzExNyw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9j
ay5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJJbWFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9S
ZW5kZXJMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391408</attachid>
            <date>2020-02-21 10:32:08 -0800</date>
            <delta_ts>2020-02-21 11:43:01 -0800</delta_ts>
            <desc>A follow-up patch to fix Catalyst/watchOS/tvOS build failures</desc>
            <filename>bug-206132-20200221103207.patch</filename>
            <type>text/plain</type>
            <size>1366</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQwNDE0ZjkxMzg5ODlmYmI5
MmNiYzdkNjVlNjRjNGJhMWNiZjc2YmEuLmVjZGRjMjZiMmVjZDJiYTRjMmI1ZjYzZDQ0Y2RmMzll
Mzk5MThjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDItMjEgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3Nd
IFN5bmNocm9uaXplIHRoZSBwcm9wZXJ0aWVzIG9mIHZpZGVvIGxheWVycyBpbiB0aGUgR1BVIHBy
b2Nlc3Mgd2l0aCB0aGUgaG9zdGluZyBsYXllciBpbiB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgZm9sbG93LXVwIHBhdGNo
IHRvIGZpeCBDYXRhbHlzdC93YXRjaE9TL3R2T1MgYnVpbGQgZmFpbHVyZXMgcmVsYXRlZCB0byB1
bmlmaWVkIGJ1aWxkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlk
ZW9MYXllclJlbW90ZUNvY29hLmg6CisKIDIwMjAtMDItMjEgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEZpeCBtZWRpYSByZWxhdGVkIHNhbmRi
b3ggaXNzdWVzIGluIHRoZSBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
LmgKaW5kZXggZTYyZDY2NGNkYmNmNjlkOTgxZWNkMDgzNmRlZjMzZTlhMjYxMWEyMy4uNTBhNWE2
ZDI3NTkyYWVkYjE3NTg1MGI0M2Q3YjhmMTkxOWUwNjM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9WaWRlb0xheWVyUmVtb3RlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1ZpZGVvTGF5ZXJS
ZW1vdGVDb2NvYS5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIFBMQVRGT1JNKENPQ09BKQogCisjaW1wb3J0IDxRdWFydHpDb3JlL0NBTGF5ZXIuaD4KKwog
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>