<?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>216995</bug_id>
          
          <creation_ts>2020-09-25 14:21:26 -0700</creation_ts>
          <short_desc>[Media in GPU Process] Use VideoLayerManager to manage layers of MediaPlayerPrivateRemote</short_desc>
          <delta_ts>2020-09-29 16:25:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1692028</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-25 14:21:26 -0700</bug_when>
    <thetext>[Media in GPU Process] Use VideoLayerManager to manage layers of MediaPlayerPrivateRemote</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692031</commentid>
    <comment_count>1</comment_count>
      <attachid>409740</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-25 14:24:29 -0700</bug_when>
    <thetext>Created attachment 409740
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692624</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-28 11:36:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/69710141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692635</commentid>
    <comment_count>3</comment_count>
      <attachid>409911</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 11:59:46 -0700</bug_when>
    <thetext>Created attachment 409911
Fix build failures on GTK and WPE ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692658</commentid>
    <comment_count>4</comment_count>
      <attachid>409914</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 13:37:43 -0700</bug_when>
    <thetext>Created attachment 409914
Fix build failures on the GTK port again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692662</commentid>
    <comment_count>5</comment_count>
      <attachid>409917</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 13:50:42 -0700</bug_when>
    <thetext>Created attachment 409917
Fix build failures on the GTK and WPE ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692664</commentid>
    <comment_count>6</comment_count>
      <attachid>409918</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 13:58:53 -0700</bug_when>
    <thetext>Created attachment 409918
Fix build failures on the GTK and WPE ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692699</commentid>
    <comment_count>7</comment_count>
      <attachid>409925</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 15:54:07 -0700</bug_when>
    <thetext>Created attachment 409925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692712</commentid>
    <comment_count>8</comment_count>
      <attachid>409925</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-09-28 16:47:28 -0700</bug_when>
    <thetext>Comment on attachment 409925
Patch

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

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:137
&gt; +#if PLATFORM(COCOA)

`setVideoLayer` is pure-virtual and is not Cocoa-only, so would get rid of the compile flag and let other ports just ignore the call.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:138
&gt; +        IntSize defaultSize = snappedIntRect(m_player-&gt;playerContentBoxRect()).size();

Nit: this variable isn&apos;t necessary

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:159
&gt; +    RefPtr&lt;const Logger&gt; m_logger;

Can you make this be a Ref &lt;&gt; since it looks like it can never be NULL?

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:363
&gt;      RefPtr&lt;WebCore::PlatformMediaResourceLoader&gt; m_mediaResourceLoader;

Ditto.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:365
&gt; +    std::unique_ptr&lt;WebCore::VideoLayerManager&gt; m_videoLayerManager;

Can you make this be a UniqueRef&lt;&gt; since it looks like it can never be NULL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692785</commentid>
    <comment_count>9</comment_count>
      <attachid>409945</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 18:54:44 -0700</bug_when>
    <thetext>Created attachment 409945
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692786</commentid>
    <comment_count>10</comment_count>
      <attachid>409925</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 18:56:00 -0700</bug_when>
    <thetext>Comment on attachment 409925
Patch

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

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:137
&gt;&gt; +#if PLATFORM(COCOA)
&gt; 
&gt; `setVideoLayer` is pure-virtual and is not Cocoa-only, so would get rid of the compile flag and let other ports just ignore the call.

Right! Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:138
&gt;&gt; +        IntSize defaultSize = snappedIntRect(m_player-&gt;playerContentBoxRect()).size();
&gt; 
&gt; Nit: this variable isn&apos;t necessary

Correct. Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:159
&gt;&gt; +    RefPtr&lt;const Logger&gt; m_logger;
&gt; 
&gt; Can you make this be a Ref &lt;&gt; since it looks like it can never be NULL?

Yes. Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:363
&gt;&gt;      RefPtr&lt;WebCore::PlatformMediaResourceLoader&gt; m_mediaResourceLoader;
&gt; 
&gt; Ditto.

Fixed.
And filed bug 217074 to follow up.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:365
&gt;&gt; +    std::unique_ptr&lt;WebCore::VideoLayerManager&gt; m_videoLayerManager;
&gt; 
&gt; Can you make this be a UniqueRef&lt;&gt; since it looks like it can never be NULL?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692788</commentid>
    <comment_count>11</comment_count>
      <attachid>409947</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 19:08:00 -0700</bug_when>
    <thetext>Created attachment 409947
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692794</commentid>
    <comment_count>12</comment_count>
      <attachid>409950</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 19:17:53 -0700</bug_when>
    <thetext>Created attachment 409950
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692816</commentid>
    <comment_count>13</comment_count>
      <attachid>409950</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-09-28 20:57:29 -0700</bug_when>
    <thetext>Comment on attachment 409950
Patch for landing

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

&gt; Source/WebCore/platform/graphics/VideoLayerManager.h:37
&gt; +class VideoLayerManager {

Is this managing the layer for a single video, or all videos? I Don&apos;t think Manager is a good name here.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:41
&gt; +class VideoLayerManagerObjC final

We usually call these subclasses &quot;Cocoa&quot;, not &quot;ObjC&quot;. It&apos;s not about the language it&apos;s written in, it&apos;s about the platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692818</commentid>
    <comment_count>14</comment_count>
      <attachid>409925</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 21:00:02 -0700</bug_when>
    <thetext>Comment on attachment 409925
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:137
&gt;&gt;&gt; +#if PLATFORM(COCOA)
&gt;&gt; 
&gt;&gt; `setVideoLayer` is pure-virtual and is not Cocoa-only, so would get rid of the compile flag and let other ports just ignore the call.
&gt; 
&gt; Right! Fixed.

Oops, I am afraid we have to keep the compile flag for now because only Cocoa platforms have VideoLayerManager.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692821</commentid>
    <comment_count>15</comment_count>
      <attachid>409950</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-28 21:07:19 -0700</bug_when>
    <thetext>Comment on attachment 409950
Patch for landing

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

&gt;&gt; Source/WebCore/platform/graphics/VideoLayerManager.h:37
&gt;&gt; +class VideoLayerManager {
&gt; 
&gt; Is this managing the layer for a single video, or all videos? I Don&apos;t think Manager is a good name here.

It manages layers for a video element (video content layer, inline video container layer, fullscreen video container layer, and text track representation layer).

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:41
&gt;&gt; +class VideoLayerManagerObjC final
&gt; 
&gt; We usually call these subclasses &quot;Cocoa&quot;, not &quot;ObjC&quot;. It&apos;s not about the language it&apos;s written in, it&apos;s about the platform.

Got it! Let me fix the naming in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692827</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-28 21:52:59 -0700</bug_when>
    <thetext>Committed r267725: &lt;https://trac.webkit.org/changeset/267725&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409950.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692927</commentid>
    <comment_count>17</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-29 08:59:38 -0700</bug_when>
    <thetext>Reopen this bug because of a build failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692933</commentid>
    <comment_count>18</comment_count>
      <attachid>410007</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-29 09:03:19 -0700</bug_when>
    <thetext>Created attachment 410007
A follow-up patch to fix a build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692956</commentid>
    <comment_count>19</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-29 09:34:58 -0700</bug_when>
    <thetext>Committed r267741: &lt;https://trac.webkit.org/changeset/267741&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693044</commentid>
    <comment_count>20</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-29 11:35:10 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693045</commentid>
    <comment_count>21</comment_count>
      <attachid>410027</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-29 11:35:11 -0700</bug_when>
    <thetext>Created attachment 410027
A follow-up patch to remove WEBCORE_EXPORT of the VideoLayerManagerObjC constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693213</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-29 16:25:03 -0700</bug_when>
    <thetext>Committed r267769: &lt;https://trac.webkit.org/changeset/267769&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410027.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409740</attachid>
            <date>2020-09-25 14:24:29 -0700</date>
            <delta_ts>2020-09-28 11:59:45 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-216995-20200925142428.patch</filename>
            <type>text/plain</type>
            <size>43960</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc0YmVjMmJiMjQxNjhh
N2FkMDIxMDc4YTUwOWJiZmE3NGJjYjA5NS4uOTI4MjAxNGJlMWEyMjM4NDc1OWEwNDliM2ZkN2Zi
OGUwMmNmZjlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTI1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyTWFuYWdlcjo6flZpZGVvTGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0lubGluZUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKToKKwogMjAyMC0wOS0yNSAgRnJlZGVy
aWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgQnVnIDIxNjcwMiAtIEltcGxl
bWVudCB0aGUgQ1NTIG1hdGgtc3R5bGUgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjUzMzg3ZDI1NWRj
YzJiZGMyN2E1NWQ1YTZmZWI2OTc1NDZkZmQwMS4uZmFlYTU4MTBhMjc2ZmI2MmM5NTRkNTk0MjU3
Mjk4ODRlY2Y4ZTg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0wOS0yNSAgUGVu
ZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJv
Y2Vzc10gVXNlIFZpZGVvTGF5ZXJNYW5hZ2VyIHRvIG1hbmFnZSBsYXllcnMgb2YgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTY5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJl
cGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6ZW50ZXJGdWxsc2NyZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZCk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllciBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6c3luY1RleHRUcmFja0JvdW5kcyk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c3luY1RleHRUcmFja0JvdW5kcyk6IERlbGV0ZWQuCisKIDIw
MjAtMDktMjUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gRGVueSBhY2Nlc3MgdG8gZGlhZ25vc3RpY2QgaW4gdGhlIFdlYkNvbnRlbnQgcHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGIxNDRmNzZkN2QyMThmZTVmMTg3NzVhM2MwNGZmZDNjNjBiZjUyOTEuLjU2YTNl
ZjNlNDNlZGQyYWNlNTFmMWI0Zjc3YzNjMTZlZTljZmI5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMCw3ICs2MzAsMTEg
QEAKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJl
SW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBp
Y3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzND
M0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhG
RDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMURBQjMxMTIyNTFENkJG
MzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEIzMUExMjM3OURDODMwMDg4M0ZERSAvKiBX
ZWJWaWRlb0NvbnRhaW5lckxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMURBQjMxMTQyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
REFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzExNTI1MUQ3NERC
MDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1
cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFERDNC
NEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBE
RTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQkxREY3RTgxRjI1MUE5
RTA2MDBEQjhGNjEgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDFFNTI1MTY3QkE1NjQwMENFODIwQiAv
KiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTFGMzZFQTlDMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNr
Z3JvdW5kVGFza0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFz
a0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlI
YW5kbGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRjcyQkYwOTE4N0ZENDI3MDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVy
SU9TLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTE1ODksNyArMTU5Myw2IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9y
bVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUy
QjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NF
NTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBW
aWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJE
NUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsK
IAkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBN
ZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NzI3LDYgKzY3MzAs
NyBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1
cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVy
ZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5
MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJl
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZB
MDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGlj
dHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURB
QjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFE
QkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFEQzU1M0ZEMjExQkExMkEwMDRCNzgwRSAvKiBOYXZpZ2F0b3JTaGFyZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9yU2hhcmUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRjIxMUJBODQxMDA0Qjc4MEUgLyogU2hhcmVEYXRh
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFyZURhdGEuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtODcyMiw4ICs4NzI2LDggQEAKIAkJNTJCMEQ0QkYxQzU3RkQ2NjAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUyQ0IxMURCMjJGRERCMkUwMDlGMEE2NCAvKiBXSExTTERlZmF1bHREZWxldGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0hMU0xEZWZhdWx0RGVsZXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9i
akMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVy
TWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsK
LQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RDFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9M
YXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFB
NDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUyRDVBMUE2MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjYxODUsNiArMjYxODksNyBAQAogCQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1
RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8q
IFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZl
bG9jaXR5RGF0YS5oICovLAorCQkJCTFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xh
eWVyTWFuYWdlci5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZS5oICovLAogCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGls
aXRpZXMuY3BwICovLAogCQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRp
ZXMuaCAqLywKQEAgLTM0MzcwLDYgKzM0Mzc1LDggQEAKIAkJCQk1MkIwRDRDMjFDNTdGRjkxMDA3
N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTQyNTFENzI1
QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxREFC
MzExNTI1MUQ3NERCMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREU4M0RCMjE4M0M0NDA2MDAzMUVBQTMgLyogVmlkZW9QbGF5YmFja1F1YWxp
dHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NTdCMTNFMjE0QUU3OTkwMDc5NEIwRCAvKiBWaWRl
b1ByZXNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5RDgyN0ExQzdCOEVFMTAwNkZGMDY2IC8q
IFZpZGVvVGV4dHVyZUNvcGllckNWLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NTQ3LDYgKzM0NTU0
LDcgQEAKIAkJCQkxRjg3NTZCMjFFMjJDMzM1MDA0MkM0MEQgLyogV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMURFQTQ1NjFCMzlGNEQ5MDBGNzcx
NzggLyogV2ViU3lzdGVtQmFja2Ryb3BMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBG
QTMxNDk2OTM5MTAwRkI1QkQ4IC8qIFdlYlRpbGVkQmFja2luZ0xheWVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxREFCMzExMjI1MUQ2QkYzMDBGQzk0ODUgLyogV2ViVmlkZW9Db250YWluZXJMYXll
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y0MkIzMUQxODgxMTkxQjAwMjc4QUFDIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3REEw
RjIyNDM1RUIxOTAwRjA0OEQxIC8qIFdlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXku
aCBpbiBIZWFkZXJzICovLAogCQkJCUYxMjE3MUY2MTZBOENGMEIwMDAwNTNDQSAvKiBXZWJWVFRF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM1ODE1LDcgKzM1ODIzLDcgQEAKIAkJCQk3Q0U2
ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyc05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRkJDNEFGMzE4OTg4
MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNl
cyAqLywKLQkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUREM0I0QzYyNTFEQTBCODAwNjlCMjRBIC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMzM2RjY3MTdGQTBB
QzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0Q4QjVBNDIxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjZGOUE4MzgxOEEwNDZBQzAwQUVC
ODhBIC8qIFZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJmOTc1NGJmYmI5NjUyYjAwZDI2YWJmZDQ5MTZjOGE4ZDIyYTkyZDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVy
TWFuYWdlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZs
b2F0UmVjdDsKK2NsYXNzIEludFNpemU7CisKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRlb0xheWVyTWFuYWdlcigpIHsgfQorCisgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgPSAwOworCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogdmlkZW9G
dWxsc2NyZWVuTGF5ZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVj
dCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKSA9IDA7CisjZW5k
aWYKKworICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxh
eWVyKFBsYXRmb3JtTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNUZXh0VHJhY2tC
b3VuZHMoKSA9IDA7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oCmluZGV4IDIxMjg3MGE4ODY0MTZhYzMzYzg5M2Q5OWZhZWFlMjcyYTc1
MTQ1OGIuLjZiOTc3MmU5MzM3NGMzODlhYTJmYTNhMzM1OTg4ZTMzZjA2ZTE1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Zp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV2ViVmlkZW9Db250YWluZXJMYXllci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KQEAgLTM3LDMyICszOCw0NCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
OwotCi1jbGFzcyBWaWRlb0xheWVyTWFuYWdlck9iakMgZmluYWwgOiBwdWJsaWMgTG9nZ2VySGVs
cGVyIHsKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyBmaW5hbAorICAgIDogcHVibGljIFZp
ZGVvTGF5ZXJNYW5hZ2VyCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwdWJsaWMg
TG9nZ2VySGVscGVyCisjZW5kaWYKK3sKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb0xh
eWVyTWFuYWdlck9iakMpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworCiBwdWJsaWM6
Ci0gICAgVmlkZW9MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb0xheWVy
TWFuYWdlck9iakMoY29uc3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOworI2Vsc2UKKyAgICBXRUJD
T1JFX0VYUE9SVCBWaWRlb0xheWVyTWFuYWdlck9iakMoKTsKKyNlbmRpZgogCi0gICAgUGxhdGZv
cm1MYXllciAqdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9JbmxpbmVM
YXllci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0xheWVyTWFuYWdlck9iakMo
KTsKIAotICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICosIEludFNpemUgY29u
dGVudFNpemUpOwotICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkgY29uc3QgZmluYWw7CisK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciosIElu
dFNpemUgY29udGVudFNpemUpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRGVz
dHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKTsKLSAgICBGbG9hdFJlY3QgdmlkZW9G
dWxsc2NyZWVuRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9
Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOwotICAgIHZvaWQg
dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpOworICAgIFdF
QkNPUkVfRVhQT1JUIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3Qg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIs
IE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFJlY3Qgdmlk
ZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0
cikgZmluYWw7CiAjZW5kaWYKIAotICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQ
bGF0Zm9ybUxheWVyKik7Ci0gICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3Qg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkxheWVyKFBsYXRmb3JtTGF5ZXIqKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5
bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKKworI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAgICAgY29uc3QgY2hhciogbG9n
Q2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyI7
IH0KQEAgLTcwLDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1f
bG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgogCiAgICAg
UmV0YWluUHRyPFdlYlZpZGVvQ29udGFpbmVyTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KaW5kZXggZDUwZDcyMzY4YWNlNGI2NDE5YTc1
NjBhMTE0YmI3YTY5NGY3MzQ1My4uMGEzNTYyYjliODYxMTYwOGJmYWRhZjFhZmFjODFlMThjMjJk
MmU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5tbQpAQCAtNDMsMTEgKzQzLDI2IEBAIE9CSkNfQ0xBU1MgQVZQbGF5ZXJMYXllcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBWaWRlb0xheWVy
TWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImIGxvZ2dlciwg
Y29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKICAgICA6IG1fbG9nZ2VyKGxvZ2dlcikKICAgICAs
IG1fbG9nSWRlbnRpZmllcihsb2dJZGVudGlmaWVyKQogewogfQorI2Vsc2UKK1ZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6VmlkZW9MYXllck1hbmFnZXJPYmpDKCkKK3sKK30KKyNlbmRpZgorCitWaWRl
b0xheWVyTWFuYWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMoKQoreworfQorCitQbGF0
Zm9ybUxheWVyKiBWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvSW5saW5lTGF5ZXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7Cit9CiAKIHZvaWQgVmlk
ZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvTGF5
ZXIsIEludFNpemUgY29udGVudFNpemUpCiB7CkBAIC04NywxMCArMTAyLDkgQEAgdm9pZCBWaWRl
b0xheWVyTWFuYWdlck9iakM6OmRpZERlc3Ryb3lWaWRlb0xheWVyKCkKIAogI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKIAotdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyIGltYWdlKQorUGxh
dGZvcm1MYXllciogVmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3JlZW5MYXllcigp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKLSAgICAgICAgW21fdmlkZW9J
bmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOworICAgIHJl
dHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpOwogfQogCiB2b2lkIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0ciBjdXJyZW50SW1hZ2UpCkBAIC0xNDAsNiArMTU0LDExIEBAIHZvaWQg
VmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyICp2aWRlb0Z1bGxzY3JlCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAorRmxv
YXRSZWN0IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOworfQorCiB2b2lkIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IHZpZGVv
RnVsbHNjcmVlbkZyYW1lKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgdmlkZW9G
dWxsc2NyZWVuRnJhbWUueCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS55KCksICIsICIs
IHZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksICIsICIsIHZpZGVvRnVsbHNjcmVlbkZyYW1l
LmhlaWdodCgpKTsKQEAgLTE1Miw2ICsxNzEsMTIgQEAgdm9pZCBWaWRlb0xheWVyTWFuYWdlck9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmEK
ICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CiB9CiAKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJP
YmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFn
ZSkKK3sKKyAgICBpZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBbbV92aWRlb0lubGlu
ZUxheWVyIHNldENvbnRlbnRzOihfX2JyaWRnZSBpZClpbWFnZS5nZXQoKV07Cit9CisKICNlbmRp
ZgogCiBib29sIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAyNjViN2UyZDg1NDI4NGRlNzllNzZk
ZDlhZTgxYTFmM2MwOWUwYmY0Li40MWI1MzY2ZjhjNGM5NDU0YzMxNThhMWM1YTYzN2M2YzUwMzU2
ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CiAK
LSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBh
cmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBpbmxpbmVMYXllckhvc3Rp
bmdDb250ZXh0SWQsIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBmdWxsc2NyZWVu
TGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJik7CisgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2so
Ym9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0Nv
bnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdD
b250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJik7CiAgICAgdm9pZCBw
cmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAKICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29u
ZmlndXJhdGlvbiYmKT4mJik7CkBAIC0xMjQsOCArMTI0LDYgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0VmlzaWJsZShib29sKTsKICAgICB2b2lkIHNldFNob3VsZE1haW50YWluQXNwZWN0UmF0aW8o
Ym9vbCk7CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIHZvaWQgZW50
ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBleGl0
RnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuR3Jhdml0eShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZp
dHkpOwogI2VuZGlmCiAgICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChi
b29sKTsKQEAgLTEzOCw5ICsxMzYsNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7Ci0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7Ci0jZW5kaWYK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMGE5Yjk4MTYxMDdiZWJiYWNlYTEzYzUyNWJh
MThiN2RiZjY1ZTA3MC4uNTlhMGFjYWFhMWY0Y2M2MTMwNzU1MjZmMDkzNTUxOTQ4MmVmMWE5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkgTm90UmVmQ291bnRlZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxv
YWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQg
dmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRl
eHRJRD4gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxXZWJLaXQ6OkxheWVy
SG9zdGluZ0NvbnRleHRJRD4gZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMK
KyAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkg
LT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBpbmxpbmVMYXllckhv
c3RpbmdDb250ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1cmwsIE9wdGlvbmFsPFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpD
b250ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBB
c3luYwogICAgIENhbmNlbExvYWQoKQpAQCAtNjgsMTQgKzY4LDYgQEAgbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIFNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChXZWJDb3JlOjpJbnRTaXplIHNpemUsIE1h
Y2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCi0gICAgU2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRS
ZWN0IHJlY3QsIE1hY2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkKLSNlbmRpZgotI2VuZGlmCi0K
LSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgRW50ZXJGdWxsc2NyZWVu
KCkgLT4gKCkgQXN5bmMKLSAgICBFeGl0RnVsbHNjcmVlbigpIC0+ICgpIEFzeW5jCiAjZW5kaWYK
IAogICAgICMgUGFpbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCmluZGV4
IGQ5ODI0ZTgyM2E2MDlhNjczZDQwMTI1M2U4ODQ0OWFlODc4MDY5YTcuLjU5ZjhlNTA5ZjBiZDFk
NWNhNGE0YzhiMjQ5MjE1ZWY1MWExODBkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbQpAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRl
TW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHBy
ZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVu
dFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRl
eHRJRD4mJiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQsIE9wdGlvbmFsPExheWVySG9zdGlu
Z0NvbnRleHRJRD4mJiBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXli
YWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQg
cHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBm
bG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9k
ZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7CkBAIC00
NSwxMSArNDUsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5
YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYQogICAgIG1fdmlkZW9Db250ZW50
U2NhbGUgPSB2aWRlb0NvbnRlbnRTY2FsZTsKICAgICBpZiAoIW1faW5saW5lTGF5ZXJIb3N0aW5n
Q29udGV4dCkKICAgICAgICAgbV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0
aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwotI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICBpZiAoIW1fZnVsbHNjcmVlbkxheWVySG9z
dGluZ0NvbnRleHQpCi0gICAgICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQgPSBM
YXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7Ci0g
ICAgY29tcGxldGlvbkhhbmRsZXIobV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0
SUQoKSwgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwotI2Vu
ZGlmCisgICAgY29tcGxldGlvbkhhbmRsZXIobV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0LT5j
b250ZXh0SUQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQpAQCAtNzQsMzAgKzcwLDYgQEAgdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2kKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi0jaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjplbnRlckZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGF1dG8gdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBtX3BsYXllci0+Y3Jl
YXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKTsKLSAgICBbdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0
TmFtZTpAIldlYiBWaWRlbyBGdWxsc2NyZWVuIExheWVyIChyZW1vdGUpIl07Ci0gICAgW3ZpZGVv
RnVsbHNjcmVlbkxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRaZXJvXTsKLSAgICBtX2Z1bGxzY3Jl
ZW5MYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIu
Z2V0KCkpOwotCi0gICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVs
bHNjcmVlbkxheWVyLmdldCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19Ci0KLXZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIG1fcGxheWVyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihudWxscHRyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG51bGxwdHIp
OwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgY29uc3QgV1RGOjpNYWNo
U2VuZFJpZ2h0JiBtYWNoU2VuZFJpZ2h0KQotewotICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGlu
Z0NvbnRleHQtPnNldEZlbmNlUG9ydChtYWNoU2VuZFJpZ2h0LnNlbmRSaWdodCgpKTsKLSAgICBt
X3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUocmVjdCk7Ci19Ci0jZW5kaWYKLQogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGEzOWY1ZDYz
ZDEyZGZkNzY0MzA2ZmM4Mjc1NTMxNDFlZmVkNmVkY2IuLjg3YTkwOGUwMWUyNjI4NDRkYmYwYWRj
MWE4NDhiMzEwNDRhZGRkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTI0
LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaCIKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLSNpbmNs
dWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKIAotI2luY2x1ZGUgIkF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbW90ZUxl
Z2FjeUNETS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKQEAgLTM2LDkg
KzM1LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUu
aCIKICNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCi0jaW5jbHVkZSAiVmlkZW9UcmFja1By
aXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvR2VuZXJpY1R5cGVk
QXJyYXlWaWV3SW5saW5lcy5oPgpAQCAtNDgsNiArNDUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1MYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1UaW1lUmFuZ2VzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9MYXllck1h
bmFnZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTkxLDE4ICs5MCwyOSBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIH0gd2hpbGUgKDApCiAjZW5kaWYKIAorI2lmICFQ
TEFURk9STShDT0NPQSkKIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFu
YWdlcikKLSAgICA6IG1fcGxheWVyKHBsYXllcikKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
KyAgICA6IG1fbG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCisgICAgLCBtX2xv
Z0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgor
ICAgICwgbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9tZWRpYVJlc291cmNlTG9hZGVyKHBsYXll
ci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAg
ICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAgICAgLCBtX2lk
KHBsYXllcklkZW50aWZpZXIpCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgLCBtX2xv
Z2dlcigmcGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQotICAgICwgbV9sb2dJZGVudGlmaWVy
KHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCit7CisgICAgSU5GT19MT0coTE9H
SURFTlRJRklFUik7Cit9CiAjZW5kaWYKKworTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIHsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95
VmlkZW9MYXllcigpOworI2VuZGlmCisgICAgbV9tYW5hZ2VyLmRlbGV0ZVJlbW90ZU1lZGlhUGxh
eWVyKG1faWQpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmln
dXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBkb2N1bWVudFNlY3VyaXR5T3JpZ2luKQpAQCAt
MTEyLDI2ICsxMjIsMjEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENvbmZp
Z3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYKICAgICBtX3BsYXllci0+
bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiB9CiAKLU1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCi17Ci0gICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7
Ci0gICAgbV9tYW5hZ2VyLmRlbGV0ZVJlbW90ZU1lZGlhUGxheWVyKG1faWQpOwotfQotCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0
ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gs
IGJvb2wgcHJlcGFyZSkKIHsKICAgICBhdXRvIHNjYWxlID0gbV9wbGF5ZXItPnBsYXllckNvbnRl
bnRzU2NhbGUoKTsKIAotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9k
ZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJ
ZCwgYXV0byBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBtdXRhYmxlIHsKKyAgICBj
b25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHByZWxvYWQsIHByZXNlcnZl
c1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwg
dGhpc10oYXV0byBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpIG11dGFibGUgewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICghaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IG1fdmlkZW9JbmxpbmVMYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUodGhpcywgaW5saW5l
TGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCkpOwotI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKLSAgICAgICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkID0g
ZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZDsKKyAgICAgICAgbV92aWRlb0xheWVyID0g
Y3JlYXRlVmlkZW9MYXllclJlbW90ZSh0aGlzLCBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQu
dmFsdWUoKSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIEludFNpemUgZGVmYXVsdFNp
emUgPSBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKSkuc2l6
ZSgpOworICAgICAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fdmlkZW9M
YXllci5nZXQoKSwgZGVmYXVsdFNpemUpOwogI2VuZGlmCiAgICAgfSwgbV9pZCk7CiB9CkBAIC02
NDMsMzIgKzY0OCwyMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChNZWRp
YVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5
ZXIuZ2V0KCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIG1fdmlkZW9MYXllck1h
bmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKKyNlbHNlCisgICAgcmV1dHVybiBudWxscHRyOwor
I2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9y
bUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCF2aWRlb0Z1bGxzY3JlZW5MYXllcikgewotICAg
ICAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpFeGl0RnVsbHNjcmVlbigpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICAgICAgbV9yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0
aW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICB9
LCBtX2lkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChtX3ZpZGVvRnVs
bHNjcmVlbkxheWVyLmdldCgpID09IHZpZGVvRnVsbHNjcmVlbkxheWVyKTsKLSAgICBjb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpFbnRlckZ1bGxzY3JlZW4oKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IHRydWU7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSwgbV9pZCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxs
c2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKTsKKyNlbmRp
ZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlVmlkZW9GdWxsc2Ny
ZWVuSW5saW5lSW1hZ2UoKQpAQCAtNjc2LDkgKzY2OSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKQogICAgIGNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpVcGRhdGVWaWRl
b0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpLCBtX2lkKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgcmVjdCwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBzZW5kUmlnaHQpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2Vi
Q29yZTo6RmxvYXRSZWN0IHJlY3QpCiB7Ci0gICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKHJl
Y3QsIHNlbmRSaWdodCksIG1faWQpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgIndpZHRoID0gIiwgcmVjdC5zaXplKCkud2lkdGgoKSwgIiwgaGVp
Z2h0ID0gIiwgcmVjdC5zaXplKCkuaGVpZ2h0KCkpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXIt
PnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlZpZGVvR3Jhdml0eSBncmF2aXR5KQpAQCAtMTAyMSw2ICsxMDE3LDMw
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRTaG91bGRDb250aW51ZUFmdGVy
S2V5TmVlZGVkKGJvb2wgc2hvdWxkKQogfQogI2VuZGlmCiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdlci0+cmVxdWly
ZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1JlcHJlc2VudGF0aW9uKiByZXByZXNlbnRh
dGlvbikKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvKiByZXByZXNlbnRhdGlvbkxh
eWVyID0gcmVwcmVzZW50YXRpb24gPyByZXByZXNlbnRhdGlvbi0+cGxhdGZvcm1MYXllcigpIDog
bmlsOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9u
TGF5ZXIocmVwcmVzZW50YXRpb25MYXllcik7CisjZW5kaWYKK30KKwordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQoreworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKKyNl
bmRpZgorfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dHJhY2tzQ2hhbmdlZCgp
CiB7CiAgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OlRyYWNrc0NoYW5nZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRl
eCA1MDdmYjg2NDI1NDExZDE5NWE4NDdkYjU3Y2U0NDg3NTFhMzlmNDU1Li5lYTgyZGYwY2VhNTNh
MDNiZDgzZjRmNzQxMjYxMzcxMTc1MjQ3NTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgK
QEAgLTI3LDEzICsyNywxNiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVk
ZSAiQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJMYXllckhvc3RpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisjaW5jbHVkZSAiVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC00OCwxNSArNTEs
MTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEdlbmVyaWNDdWVEYXRhOwogY2xhc3Mg
SVNPV2ViVlRUQ3VlOwogY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOwotY2xh
c3MgVGV4dFRyYWNrUmVwcmVzZW50YXRpb247CitjbGFzcyBWaWRlb0xheWVyTWFuYWdlcjsKIH0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOwot
Y2xhc3MgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTsKIGNsYXNzIFVzZXJEYXRhOwotY2xhc3MgVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb247CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIApAQCAt
MTAxLDcgKzEwMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpcnN0VmlkZW9GcmFtZUF2YWlsYWJs
ZSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVu
Y2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsK
LSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogI2VuZGlmCiAKICAgICB2b2lk
IGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQ
cml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKQEAgLTE0OSwxNCArMTQ4LDE4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wp
OwogI2VuZGlmCiAKK3ByaXZhdGU6CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBj
b25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICptX2xvZ2dlcjsgfQog
ICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUiOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1f
bG9nSWRlbnRpZmllcik7IH0KICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Qg
ZmluYWw7CisKKyAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2
b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIAotcHJpdmF0ZToKICAgICB2b2lkIGxvYWQo
Y29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBm
aW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVw
YXJlKSBmaW5hbDsKIApAQCAtMzI0LDExICszMjcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
dFNob3VsZENvbnRpbnVlQWZ0ZXJLZXlOZWVkZWQoYm9vbCkgZmluYWw7CiAjZW5kaWYKIAotICAg
IGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsgfQotI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRy
YWNrUmVwcmVzZW50YXRpb24qKSBmaW5hbDsKICAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMo
KSBmaW5hbDsKLSNlbmRpZgorCiAgICAgdm9pZCB0cmFja3NDaGFuZ2VkKCkgZmluYWw7CiAKICAg
ICB2b2lkIGJlZ2luU2ltdWxhdGVkSERDUEVycm9yKCkgZmluYWw7CkBAIC0zNTksMTMgKzM2MSwx
MSBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVs
bHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+
IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBib29sIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbiB7IGZhbHNlIH07Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVv
SW5saW5lTGF5ZXI7Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvRnVsbHNjcmVl
bkxheWVyOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVy
PiBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwogI2VuZGlmCi0g
ICAgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBtX2Z1bGxzY3JlZW5MYXllckhvc3Rp
bmdDb250ZXh0SWQ7CisgICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvTGF5ZXI7CisK
ICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVu
dGlmaWVyOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKQEAg
LTM4OCwxMiArMzg4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9zZWVraW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDdXJyZW50UGxheWJh
Y2tUYXJnZXRXaXJlbGVzcyB7IGZhbHNlIH07Ci0KLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
LSAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xv
Z0lkZW50aWZpZXI7Ci0jZW5kaWYKLQogICAgIGJvb2wgbV9pbnZhbGlkIHsgZmFsc2UgfTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2Ev
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmluZGV4
IDRhODRjMjUxZGJiNzM3MGUzMWM5MDg5NDdiNjNlNGQ0OWRhY2RmNjguLjAwMmMwNTA4MTM1ZTA2
M2YxZjI1ZGJhZTY0MDNhMTZiODI1M2UyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGVDb2NvYS5tbQpAQCAtMjgsOTMgKzI4LDMzIEBACiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQogCi0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oPgorI2lt
cG9ydCA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgotI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLQotUGxhdGZvcm1MYXllckNvbnRhaW5lciBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCkKLXsKLSAg
ICBpZiAoIW1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAg
bV92aWRlb0Z1bGxzY3JlZW5MYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7
Ci0gICAgICAgIGF1dG8gc3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0
Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQobV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4
dElkLnZhbHVlKCkpOwotICAgICAgICBbc3VibGF5ZXIgc2V0TmFtZTpAIlZpZGVvRnVsbHNjcmVl
bkxheWVyU3VibGF5ZXIiXTsKLSAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRN
YWtlKDAsIDApXTsKLSAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6
c3VibGF5ZXIuZ2V0KCldOwotICAgIH0KLQotICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2Ny
ZWVuRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCi17Ci0gICAgYXV0byBjb250ZXh0ID0g
W21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgY29udGV4dF07Ci0gICAgaWYgKCFjb250ZXh0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNh
Y3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIE1hY2hTZW5kUmlnaHQgZmVuY2VT
ZW5kUmlnaHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbY29udGV4dCBjcmVhdGVGZW5jZVBvcnRd
KTsKLSAgICBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBmZW5jZVNlbmRSaWdo
dCk7Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotCi0gICAgc3luY1RleHRUcmFja0Jv
dW5kcygpOwotfQotCitNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFn
ZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgOiBtX2xvZ2dlcigmcGxheWVyLT5t
ZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQ
bGF5ZXJMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1JlcHJl
c2VudGF0aW9uKiByZXByZXNlbnRhdGlvbikKKyAgICAsIG1fcGxheWVyKHBsYXllcikKKyAgICAs
IG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9hZGVyKCkpCisg
ICAgLCBtX3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9MYXllck1hbmFnZXJPYmpD
Pihsb2dnZXIoKSwgbG9nSWRlbnRpZmllcigpKSkKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQor
ICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBt
X2lkKHBsYXllcklkZW50aWZpZXIpCiB7Ci0jaWYgIUVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKLSAgICBVTlVTRURfUEFSQU0ocmVwcmVzZW50YXRpb24pOwotI2Vsc2UKLSAgICBQbGF0
Zm9ybUxheWVyKiByZXByZXNlbnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb24gPyByZXByZXNl
bnRhdGlvbi0+cGxhdGZvcm1MYXllcigpIDogbmlsOwotCi0gICAgaWYgKHJlcHJlc2VudGF0aW9u
TGF5ZXIgPT0gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKSB7Ci0gICAgICAgIHN5bmNU
ZXh0VHJhY2tCb3VuZHMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFtDQVRyYW5z
YWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNd
OwotCi0gICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikKLSAgICAgICAgW21f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0KLSAg
ICBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgPSByZXByZXNlbnRhdGlvbkxheWVyOwot
Ci0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgJiYgbV90ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkxheWVyKSB7Ci0gICAgICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLSAgICAgICAgW21f
dmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkxheWVyLmdldCgpXTsKLSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotI2Vu
ZGlmCisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKLXsKICNpZiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHx8ICFt
X3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtD
QVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9u
czpZRVNdOwotCi0gICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciBzZXRGcmFtZTpt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpLmJvdW5kc107Ci0KLSAgICBbQ0FUcmFuc2FjdGlv
biBjb21taXRdOwotI2VuZGlmCitQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQoreworICAgIHJldHVybiBh
ZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409911</attachid>
            <date>2020-09-28 11:59:46 -0700</date>
            <delta_ts>2020-09-28 13:37:41 -0700</delta_ts>
            <desc>Fix build failures on GTK and WPE ports</desc>
            <filename>bug-216995-20200928115945.patch</filename>
            <type>text/plain</type>
            <size>49013</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uODdjMmM2OGYyODJjN2UxNzBjYmQ4ZTk4MzNjYTY1
MmRkMDNmN2E0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyTWFuYWdlcjo6flZpZGVvTGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0lubGluZUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKToKKwogMjAyMC0wOS0yOCAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzMyOSk6
IENyYXNoIGR1ZSB0byBudWxsLWRlcmVmZXJlbmNlIG9mIGZyYW1lIHBvaW50ZXIgaW4gRE9NU2Vs
ZWN0aW9uOjpyYW5nZUNvdW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3ZWFhMTM2YmVkMTczYjM5NzkwNmRjYjIx
NjY3MGRlZTEzZjA1YzEuLjlmNDc3OGM5N2Y3ZDhmNWJmM2U0YjY3NWEwZTVkMTE2NDk4NTA0M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDktMjggIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIFVzZSBWaWRl
b0xheWVyTWFuYWdlciB0byBtYW5hZ2UgbGF5ZXJzIG9mIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2OTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNj
cmVlbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OmV4aXRGdWxsc2NyZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnN5bmNUZXh0VHJh
Y2tCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOiBEZWxldGVkLgorCiAyMDIwLTA5LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgb3VyIGNh
bGxzIHRvIEFWQ2FwdHVyZURldmljZSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlIGRvIHByb2Nl
c3Npbmcgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVmOWQ1NThhNjIzY2U1NjBiMzFjYjJiZjdj
NGJiOWFkOGRlOTkyMy4uZDM1MDcxNGI1MGNmNDVjYWE4NjNmNjUxYjUzYWI5MmEwNjE5MmNlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjMwLDcgKzYzMCwxMSBAQAogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjggLyogSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBIVE1MVmlk
ZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQaWN0dXJl
SW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxREVGMDZDRDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVyZVdpbmRv
dy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFE
OUYwRkMxMjEyMjAyOUIwMDVEOEZENCAvKiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgwRSAvKiBT
aGFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkxREFCMzExMjI1MUQ2QkYzMDBGQzk0ODUgLyogV2ViVmlkZW9Db250YWluZXJMYXllci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjMxQTEy
Mzc5REM4MzAwODgzRkRFIC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzExNDI1MUQ3MjVDMDBG
Qzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xheWVy
TWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMThFMUM1
NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREJDMUI1NjIzNDdCM0QyMDBCOTAx
QUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyogUGljdHVy
ZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMUREM0I0QzYyNTFEQTBCODAwNjlCMjRBIC8qIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi87
IH07CiAJCTFERjdFODFGMjUxQTlFMDYwMERCOEY2MSAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0REMUU1
MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMxRTIxQkEx
NzAwNjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAwNjIxRTI1
IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGNzJCRjBCMTg3RkQ0NUMwMDA5QkNCMyAvKiBU
aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGNzJCRjA5MTg3RkQ0MjcwMDA5QkNCMyAvKiBUaWxlQ29u
dHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTU4OCw3ICsxNTkyLDYgQEAKIAkJNTJCMEQ0QkUxQzU3RkQx
RTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmll
dy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUy
QjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkYx
QzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0QzIxQzU3
RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5MTAwNzdD
RTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAv
KiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRDVB
MUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExQTUx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJFMkNBRkMx
OUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRp
YVByb2R1Y2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTY3MjcsNiArNjczMCw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAvKiBK
U0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0dXJlSW5Q
aWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNF
bnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBp
Y3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAwNEI3ODBF
IC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JT
aGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjExQkE4NDEw
MDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYXJlRGF0
YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzE5LDggKzg3MjMsOCBAQAog
CQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzExQzU3
RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8qIFdI
TFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB9OwotCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9M
YXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IH07CisJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyTWFu
YWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVBMThFMUM1NDU5
MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0ODg5MDBE
RTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUzNEEzIC8q
IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjE5Niw2ICsyNjIwMCw3IEBACiAJCQkJ
RTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkwRjVBNTdD
QTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIy
OUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCisJCQkJMURBQjMxMTMyNTFENzI1
QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQw
OTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0Q2RkU1QkIyNEJDRTdC
NjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEyNEJDRTdCNjAw
OUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLApAQCAtMjg0OTUsMTAgKzI4NTAwLDYgQEAKIAkJ
RTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3MDgxREMg
LyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCi0JCQkJRTRBNjY0QzYyNTIx
Qjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywKLQkJCQlF
NEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxl
Z2FjeVBhdGguaCAqLywKLQkJCQlFNEE2NjRDNDI1MjFCNzc3MDA3MDgxREMgLyogTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCAqLywKIAkJCQlFNDE4MDI1NjIzRDQ1NEI1
MDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCAqLywKIAkJCQlFNDE4MDI1
MzIzRDQ1NDlBMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggKi8sCiAJCQkJ
RTQwM0I3OUYyNTFCMTE4QjAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3Bw
ICovLApAQCAtMjg1MDcsNiArMjg1MDgsMTAgQEAKIAkJCQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQz
NDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8sCiAJCQkJRTQzMTJBQjUyNEIz
MjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgKi8sCiAJCQkJ
RTQzMTJBQjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5o
ICovLAorCQkJCUU0QTY2NEM3MjUyMUI3NzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1
bkl0ZXJhdG9yLmNwcCAqLywKKwkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oICovLAorCQkJCUU0QTY2NEM1MjUyMUI3NzgwMDcwODFE
QyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oICovLAorCQkJCUU0
QTY2NEM0MjUyMUI3NzcwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9k
ZXJuUGF0aC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0zMjQ0Nyw3ICszMjQ1Miw2IEBACiAJCQkJMDc5NjlEQjAxN0Qx
NDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlNlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5
NjlEQjIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc5NjlEQjYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDSWNlQ2FuZGlk
YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxNkRDQjRDMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzE2RENCNEUxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNlR2F0
aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEVDMTlFRTM0MUUwMEU1QTA0
NSAvKiBKU1JUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQ5Myw3ICszMjQ5Nyw2
IEBACiAJCQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAvKiBKU1NR
TFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODI0MzJBMEQw
Q0U4QTIwMDQ2MEM4RiAvKiBKU1NRTFRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlF
NEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2OUQxMTkwMkE0MjAwN0U5Njg0IC8qIEpTU1FMVHJh
bnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTExMTkwMkE1MjAw
N0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODY2MjlEMzA5REEyQjQ4MDA5NjMzQTcgLyogSlNTdGF0aWNSYW5nZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMjc4NSw2ICszMjc4OCw5IEBACiAJCQkJRTQwM0I3QTIyNTFCMTE5MzAwMTlF
ODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUU0MDNCN0EzMjUxQjExQzEwMDE5RTgwMCAvKiBMYXlvdXRJbnRl
Z3JhdGlvblBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENDMjUyMUQ0QUYw
MDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENFMjUyMUQ0QzkwMDcw
ODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkZBNEMwMTIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5b3V0TGlu
ZUJyZWFrQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBDNEMwN0Ug
LyogTGF5b3V0TWlsZXN0b25lLmggaW4gSGVhZGVycyAqLywKQEAgLTMyOTYzLDcgKzMyOTY5LDYg
QEAKIAkJCQlDOTZGNUVDODFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50ZXJydXB0
aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5NkY1RUM1MUI1ODcyMjYwMDkxRUE5
RCAvKiBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzkwRjY1NTYxQjIyNTNCRTAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlvdXRJbnRl
Z3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3RjdB
RUYyMTM5QkY2RjAwRkJBN0VDIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBN
ZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM4MSw2ICszNDM4Niw4
IEBACiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8q
IFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFDNTc0
OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFEQUIzMTE0MjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTUyNTFENzREQjAwRkM5NDg1IC8qIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODNDNDQwNjAw
MzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzU3
QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zNDU1Nyw2ICszNDU2NCw3IEBACiAJCQkJMUY4NzU2QjIxRTIyQzMzNTAw
NDJDNDBEIC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzFERUE0NTYxQjM5RjREOTAwRjc3MTc4IC8qIFdlYlN5c3RlbUJhY2tkcm9wTGF5ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkEzMTQ5NjkzOTEwMEZCNUJEOCAvKiBXZWJUaWxl
ZEJhY2tpbmdMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTIyNTFENkJGMzAwRkM5
NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGNDJC
MzFEMTg4MTE5MUIwMDI3OEFBQyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEN0RBMEYyMjQzNUVCMTkwMEYwNDhEMSAvKiBXZWJWaWV3
VmlzdWFsSWRlbnRpZmljYXRpb25PdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMTIxNzFG
NjE2QThDRjBCMDAwMDUzQ0EgLyogV2ViVlRURWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NTgyNSw3ICszNTgzMyw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVzZXJN
ZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcx
OTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTJENUExOEYxQzU0NTkyMzAw
REUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFE
RDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZh
dGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOEI1QTQyMTgwRDE0OUEwMDhCOEU2
NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3VyYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjk3NTRiZmJiOTY1MmIwMGQy
NmFiZmQ0OTE2YzhhOGQyMmE5MmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaApAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBJbnRTaXplOworCitj
bGFzcyBWaWRlb0xheWVyTWFuYWdlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VmlkZW9MYXll
ck1hbmFnZXIoKSB7IH0KKworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogdmlkZW9JbmxpbmVM
YXllcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9y
bUxheWVyKiwgSW50U2l6ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95VmlkZW9M
YXllcigpID0gMDsKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2
aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwg
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRy
KSA9IDA7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVj
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFn
ZShOYXRpdmVJbWFnZVB0cikgPSAwOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWly
ZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgPSAwOworfTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9MYXllck1hbmFnZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCAyMTI4NzBh
ODg2NDE2YWMzM2M4OTNkOTlmYWVhZTI3MmE3NTE0NThiLi42Yjk3NzJlOTMzNzRjMzg5YWEyZmEz
YTMzNTk4OGUzM2YwNmUxNTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xh
eWVyTWFuYWdlck9iakMuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIK
ICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNp
bmNsdWRlICJWaWRlb0xheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlZpZGVvQ29udGFpbmVy
TGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2Vy
SGVscGVyLmg+CkBAIC0zNywzMiArMzgsNDQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKLQotY2xhc3MgVmlkZW9MYXllck1hbmFnZXJP
YmpDIGZpbmFsIDogcHVibGljIExvZ2dlckhlbHBlciB7CitjbGFzcyBWaWRlb0xheWVyTWFuYWdl
ck9iakMgZmluYWwKKyAgICA6IHB1YmxpYyBWaWRlb0xheWVyTWFuYWdlcgorI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAorICAgICwgcHVibGljIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9MYXllck1hbmFnZXJPYmpDKTsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKwogcHVibGljOgotICAgIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhj
b25zdCBMb2dnZXImLCBjb25zdCB2b2lkKik7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisg
ICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dlciYsIGNv
bnN0IHZvaWQqKTsKKyNlbHNlCisgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJP
YmpDKCk7CisjZW5kaWYKIAotICAgIFBsYXRmb3JtTGF5ZXIgKnZpZGVvSW5saW5lTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7IH0KKyAgICBXRUJDT1JFX0VY
UE9SVCB+VmlkZW9MYXllck1hbmFnZXJPYmpDKCk7CiAKLSAgICB2b2lkIHNldFZpZGVvTGF5ZXIo
UGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXplKTsKLSAgICB2b2lkIGRpZERlc3Ry
b3lWaWRlb0xheWVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZvcm1MYXllciogdmlkZW9J
bmxpbmVMYXllcigpIGNvbnN0IGZpbmFsOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRW
aWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplIGNvbnRlbnRTaXplKSBmaW5hbDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgZmluYWw7CiAKICNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgUGxhdGZvcm1MYXllciAqdmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVy
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVy
ICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFn
ZVB0cik7Ci0gICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgeyByZXR1
cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVu
RnJhbWUoRmxvYXRSZWN0KTsKLSAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUlt
YWdlKE5hdGl2ZUltYWdlUHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2
aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgZmluYWw7CisgICAg
V0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgZmlu
YWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9h
dFJlY3QpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2Ny
ZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29s
IHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIoUGxhdGZvcm1MYXllciopOwotICAgIHZvaWQgc3lu
Y1RleHRUcmFja0JvdW5kcygpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKikgZmluYWw7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgZmluYWw7CiAK
IHByaXZhdGU6CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXIm
IGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29u
c3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRp
ZmllcjsgfQogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJWaWRlb0xheWVyTWFuYWdlck9iakMiOyB9CkBAIC03MCw2ICs4Myw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xv
Z0lkZW50aWZpZXI7CisjZW5kaWYKIAogICAgIFJldGFpblB0cjxXZWJWaWRlb0NvbnRhaW5lckxh
eWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
CmluZGV4IGQ1MGQ3MjM2OGFjZTRiNjQxOWE3NTYwYTExNGJiN2E2OTRmNzM0NTMuLjBhMzU2MmI5
Yjg2MTE2MDhiZmFkYWYxYWZhYzgxZTE4YzIyZDJlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAgLTQzLDExICs0MywyNiBAQCBPQkpD
X0NMQVNTIEFWUGxheWVyTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogVmlkZW9MYXllck1hbmFnZXJPYmpDOjpWaWRlb0xheWVyTWFuYWdl
ck9iakMoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCiAg
ICAgOiBtX2xvZ2dlcihsb2dnZXIpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIobG9nSWRlbnRpZmll
cikKIHsKIH0KKyNlbHNlCitWaWRlb0xheWVyTWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQygpCit7Cit9CisjZW5kaWYKKworVmlkZW9MYXllck1hbmFnZXJPYmpDOjp+VmlkZW9MYXll
ck1hbmFnZXJPYmpDKCkKK3sKK30KKworUGxhdGZvcm1MYXllciogVmlkZW9MYXllck1hbmFnZXJP
YmpDOjp2aWRlb0lubGluZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWRlb0lubGlu
ZUxheWVyLmdldCgpOworfQogCiB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9M
YXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJbnRTaXplIGNvbnRlbnRTaXplKQogewpA
QCAtODcsMTAgKzEwMiw5IEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpkaWREZXN0cm95
VmlkZW9MYXllcigpCiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAKLXZv
aWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFn
ZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK1BsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdAogewotICAgIGlmIChtX3ZpZGVvSW5s
aW5lTGF5ZXIpCi0gICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHM6KF9fYnJp
ZGdlIGlkKWltYWdlLmdldCgpXTsKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllci5n
ZXQoKTsKIH0KIAogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIgY3VycmVudEltYWdl
KQpAQCAtMTQwLDYgKzE1NCwxMSBAQCB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZQogICAgIFtDQVRy
YW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKK0Zsb2F0UmVjdCBWaWRlb0xheWVyTWFuYWdlck9iakM6
OnZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxz
Y3JlZW5GcmFtZTsKK30KKwogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSkKIHsKICAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsIHZpZGVvRnVsbHNjcmVlbkZyYW1lLngoKSwgIiwgIiwgdmlk
ZW9GdWxsc2NyZWVuRnJhbWUueSgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgp
LCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSk7CkBAIC0xNTIsNiArMTcxLDEy
IEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShG
bG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhCiAgICAgc3luY1RleHRUcmFja0JvdW5kcygpOwog
fQogCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCit7CisgICAgaWYgKG1fdmlkZW9JbmxpbmVM
YXllcikKKyAgICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2Ug
aWQpaW1hZ2UuZ2V0KCldOworfQorCiAjZW5kaWYKIAogYm9vbCBWaWRlb0xheWVyTWFuYWdlck9i
akM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgK
aW5kZXggMjY1YjdlMmQ4NTQyODRkZTc5ZTc2ZGQ5YWU4MWExZjNjMDllMGJmNC4uNDFiNTM2NmY4
YzRjOTQ1NGMzMTU4YTFjNWE2MzdjNmM1MDM1NjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0xMDAs
NyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1l
ZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2so
Ym9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0Nv
bnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdD
b250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxMYXllckhv
c3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOwor
ICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFy
ZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGlu
Z0NvbnRleHRJZCk+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAg
dm9pZCBsb2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTI0LDgg
KzEyNCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CiAgICAgdm9pZCBz
ZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wpOwogI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKLSAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICNlbmRpZgogICAgIHZvaWQgYWNjZWxl
cmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CkBAIC0xMzgsOSArMTM2LDYgQEAgcHVi
bGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVG
ZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYp
OwotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdU
Rjo6TWFjaFNlbmRSaWdodCYpOwotI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDBhOWI5ODE2MTA3YmViYmFjZWExM2M1MjViYTE4YjdkYmY2NWUwNzAuLjU5YTBhY2FhYTFmNGNj
NjEzMDc1NTI2ZjA5MzU1MTk0ODJlZjFhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNz
YWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9u
YWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCwgT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGZ1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisgICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wg
cHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVs
b2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmlu
ZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9z
dGluZ0NvbnRleHRJRD4gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYwogCiAgICAg
TG9hZChVUkwgdXJsLCBPcHRpb25hbDxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4g
c2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6Q29udGVudFR5cGUgY29udGVudFR5cGUsIFN0cmlu
ZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKICAgICBDYW5jZWxMb2FkKCkKQEAgLTY4
LDE0ICs2OCw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291
bnRlZCB7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRWaWRlb0lubGluZVNpemVGZW5j
ZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0j
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIFNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBNYWNoU2VuZFJpZ2h0IG1hY2hT
ZW5kUmlnaHQpCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQotICAgIEVudGVyRnVsbHNjcmVlbigpIC0+ICgpIEFzeW5jCi0gICAgRXhpdEZ1bGxz
Y3JlZW4oKSAtPiAoKSBBc3luYwogI2VuZGlmCiAKICAgICAjIFBhaW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb2NvYS5tbQppbmRleCBkOTgyNGU4MjNhNjA5YTY3M2Q0MDEyNTNlODg0
NDlhZTg3ODA2OWE3Li41OWY4ZTUwOWYwYmQxZDVjYTRhNGM4YjI0OTIxNWVmNTFhMTgwZDIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTM2LDcgKzM2LDcgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJl
cGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9y
UmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29u
dGV4dElkLCBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNjcmVlbkxheWVy
SG9zdGluZ0NvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gs
IGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGlu
ZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9w
bGF5ZXItPnNldFByaXZhdGVCcm93c2luZ01vZGUocHJpdmF0ZU1vZGUpOwogICAgIG1fcGxheWVy
LT5zZXRQcmVsb2FkKHByZWxvYWQpOwpAQCAtNDUsMTEgKzQ1LDcgQEAgdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29y
ZTo6TWVkaWEKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAg
ICAgaWYgKCFtX2lubGluZUxheWVySG9zdGluZ0NvbnRleHQpCiAgICAgICAgIG1faW5saW5lTGF5
ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFs
SG9zdGluZ1Byb2Nlc3MoKTsKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0g
ICAgaWYgKCFtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0KQotICAgICAgICBtX2Z1bGxz
Y3JlZW5MYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9y
RXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKG1faW5saW5l
TGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIG1fZnVsbHNjcmVlbkxheWVySG9zdGlu
Z0NvbnRleHQtPmNvbnRleHRJRCgpKTsKLSNlbmRpZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1f
aW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwogfQogCiB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkK
QEAgLTc0LDMwICs3MCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9J
bmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpCiAgICAgW0NBVHJhbnNh
Y3Rpb24gY29tbWl0XTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
LXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHZpZGVvRnVs
bHNjcmVlbkxheWVyID0gbV9wbGF5ZXItPmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCk7Ci0g
ICAgW3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldE5hbWU6QCJXZWIgVmlkZW8gRnVsbHNjcmVlbiBM
YXllciAocmVtb3RlKSJdOwotICAgIFt2aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRQb3NpdGlvbjpD
R1BvaW50WmVyb107Ci0gICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9v
dExheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpKTsKLQotICAgIG1fcGxheWVyLT5zZXRW
aWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4
aXRGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobnVsbHB0ciwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0Nv
bnRleHQtPnNldFJvb3RMYXllcihudWxscHRyKTsKLX0KLQotdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKLXsK
LSAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFjaFNl
bmRSaWdodC5zZW5kUmlnaHQoKSk7Ci0gICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKHJlY3QpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvZ3N0cmVh
bWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIuY3BwCmluZGV4IDlmMGJmYjgyNjAy
Y2ViMTVlNWFjN2NmZjQ1ZmYxODFjNzRlMTBjNjYuLjdjOTI2M2M4NzdhZDZlMDMwZTBiZmQ3Yzgx
YTQ3ZjQ5NGE1YmNmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRpYVBsYXllclBy
b3h5R1N0cmVhbWVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlk
ZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiYmIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpPiYm
KQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlk
ZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTQ4LDE4ICs0OCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLXZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBhMzlmNWQ2M2QxMmRmZDc2NDMwNmZjODI3NTUz
MTQxZWZlZDZlZGNiLi44N2E5MDhlMDFlMjYyODQ0ZGJmMGFkYzFhODQ4YjMxMDQ0YWRkZDA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmgiCiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgiCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE0uaCIKICNpbmNsdWRl
ICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCkBAIC0zNiw5ICszNSw3IEBACiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKLSNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9M
YXllclJlbW90ZS5oIgotI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4K
QEAgLTQ4LDYgKzQ1LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05MSwxOCArOTAsMjkgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiB9IHdoaWxlICgwKQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXll
ciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5l
SWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCi0gICAgOiBtX3BsYXll
cihwbGF5ZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgOiBtX2xvZ2dlcigmcGxh
eWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+
bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKKyAgICAsIG1fcGxheWVyKHBsYXll
cikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9h
ZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcmVtb3RlRW5naW5lSWRl
bnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5ZXJJZGVudGlmaWVyKQot
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgICwgbV9sb2dnZXIoJnBsYXllci0+bWVkaWFQ
bGF5ZXJMb2dnZXIoKSkKLSAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVy
TG9nSWRlbnRpZmllcigpKQoreworICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOworfQogI2Vu
ZGlmCisKK01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSgpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKKyNlbmRp
ZgorICAgIG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsKIH0KIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQ
bGF5ZXJDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKQEAgLTExMiwyNiArMTIyLDIxIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbiYmCiAgICAgbV9wbGF5ZXItPm1lZGlhRW5naW5lVXBkYXRlZCgp
OwogfQogCi1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoKQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotICAgIG1fbWFuYWdlci5kZWxl
dGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXllcjo6
UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmUpCiB7CiAg
ICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50c1NjYWxlKCk7CiAKLSAgICBj
b25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHByZWxvYWQsIHByZXNlcnZl
c1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwg
dGhpc10oYXV0byBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQsIGF1dG8gZnVsbHNjcmVlbkxh
eWVySG9zdGluZ0NvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFyZUZvclBs
YXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFyZSwgc2Nh
bGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gaW5saW5lTGF5
ZXJIb3N0aW5nQ29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3ZpZGVvSW5saW5lTGF5ZXIg
PSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJ
ZC52YWx1ZSgpKTsKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgICAg
IG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCA9IGZ1bGxzY3JlZW5MYXllckhvc3Rp
bmdDb250ZXh0SWQ7CisgICAgICAgIG1fdmlkZW9MYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJSZW1v
dGUodGhpcywgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCkpOworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgICAgICBJbnRTaXplIGRlZmF1bHRTaXplID0gc25hcHBlZEludFJlY3Qo
bV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsKKyAgICAgICAgbV92aWRl
b0xheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3ZpZGVvTGF5ZXIuZ2V0KCksIGRlZmF1bHRT
aXplKTsKICNlbmRpZgogICAgIH0sIG1faWQpOwogfQpAQCAtNjQzLDMyICs2NDgsMjAgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikKIAog
UGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT52aWRlb0lubGluZUxh
eWVyKCk7CisjZWxzZQorICAgIHJldXR1cm4gbnVsbHB0cjsKKyNlbmRpZgogfQogCiAjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIGlmICghdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgY29ubmVjdGlvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6RXhpdEZ1
bGxzY3JlZW4oKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgICAgIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IGZhbHNlOwotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgfSwgbV9pZCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBBU1NFUlQobV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSA9
PSB2aWRlb0Z1bGxzY3JlZW5MYXllcik7Ci0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKCks
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCF3
ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX3JlcXVpcmVzVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24gPSB0cnVlOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgIH0sIG1faWQpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9MYXllck1hbmFn
ZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgbnVsbHB0cik7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKQEAg
LTY3Niw5ICs2NjksMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZVZp
ZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1h
Z2UoKSwgbV9pZCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IFdURjo6TWFjaFNlbmRSaWdodCYgc2VuZFJpZ2h0KQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0
KQogewotICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpTZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBzZW5kUmlnaHQpLCBtX2lk
KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJ3
aWR0aCA9ICIsIHJlY3Quc2l6ZSgpLndpZHRoKCksICIsIGhlaWdodCA9ICIsIHJlY3Quc2l6ZSgp
LmhlaWdodCgpKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5G
cmFtZShyZWN0KTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRl
b0dyYXZpdHkgZ3Jhdml0eSkKQEAgLTEwMjEsNiArMTAxNywzMCBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0U2hvdWxkQ29udGludWVBZnRlcktleU5lZWRlZChib29sIHNob3Vs
ZCkKIH0KICNlbmRpZgogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWlyZXNU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgcmV0dXJuIG1fdmlkZW9MYXllck1hbmFnZXItPnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24oKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3Jl
OjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgYXV0byogcmVwcmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9u
ID8gcmVwcmVzZW50YXRpb24tPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKKyAgICBtX3ZpZGVvTGF5
ZXJNYW5hZ2VyLT5zZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKHJlcHJlc2VudGF0aW9u
TGF5ZXIpOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzeW5j
VGV4dFRyYWNrQm91bmRzKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3ZpZGVvTGF5
ZXJNYW5hZ2VyLT5zeW5jVGV4dFRyYWNrQm91bmRzKCk7CisjZW5kaWYKK30KKwogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnRyYWNrc0NoYW5nZWQoKQogewogICAgIGNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpUcmFja3NDaGFuZ2VkKCks
IG1faWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggNTA3ZmI4NjQyNTQxMWQxOTVh
ODQ3ZGI1N2NlNDQ4NzUxYTM5ZjQ1NS4uZWE4MmRmMGNlYTUzYTAzYmQ4M2Y0Zjc0MTI2MTM3MTE3
NTI0NzUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0yNywxMyArMjcsMTYgQEAK
IAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmgiCiAjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5oIgorI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIK
ICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJp
dmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVk
ZSA8d3RmL0xvZ2dlckhlbHBlci5oPgpAQCAtNDgsMTUgKzUxLDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHN0cnVjdCBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKIGNsYXNz
IFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTsKLWNsYXNzIFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uOworY2xhc3MgVmlkZW9MYXllck1hbmFnZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTsKLWNsYXNzIFRleHRUcmFja1ByaXZh
dGVSZW1vdGU7CiBjbGFzcyBVc2VyRGF0YTsKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3Rl
Owogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRy
YWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKQEAgLTEwMSw3ICsxMDEsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXVEY6
Ok1hY2hTZW5kUmlnaHQmKTsKICNlbmRpZgogCiAgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNr
KFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24mJik7CkBAIC0xNDksMTQgKzE0OCwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXJyZW50
UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgogCitwcml2YXRl
OgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAqbV9sb2dnZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dD
bGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlIjsgfQogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihtX2xvZ0lkZW50aWZpZXIpOyB9CiAg
ICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmUHRy
PGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVy
OwogI2VuZGlmCiAKLXByaXZhdGU6CiAgICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBwcmVw
YXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkgZmluYWw7CiAKQEAgLTMy
NCwxMSArMzI3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91bGRDb250aW51ZUFmdGVy
S2V5TmVlZGVkKGJvb2wpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29sIHJlcXVpcmVzVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3JlcXVpcmVzVGV4dFRy
YWNrUmVwcmVzZW50YXRpb247IH0KLSNpZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIHJlcXVp
cmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1JlcHJlc2VudGF0aW9uKikg
ZmluYWw7CiAgICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgZmluYWw7Ci0jZW5kaWYKKwog
ICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAgdm9pZCBiZWdpblNpbXVsYXRl
ZEhEQ1BFcnJvcigpIGZpbmFsOwpAQCAtMzU5LDEzICszNjEsMTEgQEAgcHJpdmF0ZToKIAogICAg
IFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIgfTsKICAgICBSZWZQdHI8
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2Fk
ZXI7Ci0gICAgYm9vbCBtX3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24geyBmYWxzZSB9
OwotICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIgbV92aWRlb0lubGluZUxheWVyOwotICAgIFBs
YXRmb3JtTGF5ZXJDb250YWluZXIgbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV90ZXh0VHJhY2tSZXByZXNl
bnRhdGlvbkxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlcj4gbV92aWRlb0xheWVyTWFuYWdlcjsKICNlbmRpZgotICAgIE9wdGlvbmFsPExheWVySG9z
dGluZ0NvbnRleHRJRD4gbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkOworICAgIFBs
YXRmb3JtTGF5ZXJDb250YWluZXIgbV92aWRlb0xheWVyOworCiAgICAgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CkBAIC0zODgsMTIgKzM4OCw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2Vla2luZyB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MgeyBm
YWxzZSB9OwotCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgUmVmUHRyPGNvbnN0IExv
Z2dlcj4gbV9sb2dnZXI7Ci0gICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotI2VuZGlm
Ci0KICAgICBib29sIG1faW52YWxpZCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQppbmRleCA0YTg0YzI1MWRiYjczNzBlMzFj
OTA4OTQ3YjYzZTRkNDlkYWNkZjY4Li4wMDJjMDUwODEzNWUwNjNmMWYyNWRiYWU2NDAzYTE2Yjgy
NTNlMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2Nv
Y29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2Eu
bW0KQEAgLTI4LDkzICsyOCwzMyBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFU
Rk9STShDT0NPQSkKIAotI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmlkZW9M
YXllck1hbmFnZXJPYmpDLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEku
aD4KLSNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCi0KLVBsYXRmb3JtTGF5ZXJDb250YWluZXIgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpjcmVhdGVWaWRlb0Z1bGxzY3JlZW5MYXllcigpCi17Ci0gICAgaWYgKCFtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0SWQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYg
KCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKSB7Ci0gICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5
ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwotICAgICAgICBhdXRvIHN1Ymxh
eWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdD
b250ZXh0KG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZC52YWx1ZSgpKTsKLSAgICAg
ICAgW3N1YmxheWVyIHNldE5hbWU6QCJWaWRlb0Z1bGxzY3JlZW5MYXllclN1YmxheWVyIl07Ci0g
ICAgICAgIFtzdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSgwLCAwKV07Ci0gICAgICAg
IFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGFkZFN1YmxheWVyOnN1YmxheWVyLmdldCgpXTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKLX0KLQotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZs
b2F0UmVjdCByZWN0KQotewotICAgIGF1dG8gY29udGV4dCA9IFttX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyIGNvbnRleHRdOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
W0NBVHJhbnNhY3Rpb24gYmVnaW5dOwotICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rp
b25zOllFU107Ci0KLSAgICBNYWNoU2VuZFJpZ2h0IGZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRS
aWdodDo6YWRvcHQoW2NvbnRleHQgY3JlYXRlRmVuY2VQb3J0XSk7Ci0gICAgc2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWVGZW5jZWQocmVjdCwgZmVuY2VTZW5kUmlnaHQpOwotCi0gICAgW0NBVHJhbnNh
Y3Rpb24gY29tbWl0XTsKLQotICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLX0KLQorTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIq
IHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlk
ZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRp
ZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyKQorI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorICAgIDogbV9sb2dnZXIoJnBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkK
KyAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigp
KQogI2VuZGlmCi0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50
YXRpb24pCisgICAgLCBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VMb2Fk
ZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQorICAgICwgbV92aWRlb0xheWVyTWFu
YWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50
aWZpZXIoKSkpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fcmVtb3RlRW5naW5l
SWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQorICAgICwgbV9pZChwbGF5ZXJJZGVudGlmaWVy
KQogewotI2lmICFFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgVU5VU0VEX1BB
UkFNKHJlcHJlc2VudGF0aW9uKTsKLSNlbHNlCi0gICAgUGxhdGZvcm1MYXllciogcmVwcmVzZW50
YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRpb24tPnBsYXRmb3JtTGF5
ZXIoKSA6IG5pbDsKLQotICAgIGlmIChyZXByZXNlbnRhdGlvbkxheWVyID09IG1fdGV4dFRyYWNr
UmVwcmVzZW50YXRpb25MYXllcikgewotICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAg
W0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIGlmIChtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0gICAgICAgIFttX3RleHRUcmFja1JlcHJlc2VudGF0
aW9uTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwotCi0gICAgbV90ZXh0VHJhY2tSZXByZXNl
bnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb25MYXllcjsKLQotICAgIGlmIChtX3ZpZGVvRnVs
bHNjcmVlbkxheWVyICYmIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikgewotICAgICAg
ICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Ci0gICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVy
IGFkZFN1YmxheWVyOm1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllci5nZXQoKV07Ci0gICAg
fQotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLSNlbmRpZgorICAgIElORk9fTE9HKExP
R0lERU5USUZJRVIpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c3luY1Rl
eHRUcmFja0JvdW5kcygpCi17CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQot
ICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5MYXllciB8fCAhbV90ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkxheWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07
Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIFttX3Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0Z1bGxzY3JlZW5MYXll
ci5nZXQoKS5ib3VuZHNdOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLSNlbmRpZgor
UGxhdGZvcm1MYXllckNvbnRhaW5lciBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZVZp
ZGVvRnVsbHNjcmVlbkxheWVyKCkKK3sKKyAgICByZXR1cm4gYWRvcHROUyhbW0NBTGF5ZXIgYWxs
b2NdIGluaXRdKTsKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409914</attachid>
            <date>2020-09-28 13:37:43 -0700</date>
            <delta_ts>2020-09-28 13:50:41 -0700</delta_ts>
            <desc>Fix build failures on the GTK port again</desc>
            <filename>bug-216995-20200928133742.patch</filename>
            <type>text/plain</type>
            <size>50752</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uODdjMmM2OGYyODJjN2UxNzBjYmQ4ZTk4MzNjYTY1
MmRkMDNmN2E0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyTWFuYWdlcjo6flZpZGVvTGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0lubGluZUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKToKKwogMjAyMC0wOS0yOCAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzMyOSk6
IENyYXNoIGR1ZSB0byBudWxsLWRlcmVmZXJlbmNlIG9mIGZyYW1lIHBvaW50ZXIgaW4gRE9NU2Vs
ZWN0aW9uOjpyYW5nZUNvdW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3ZWFhMTM2YmVkMTczYjM5NzkwNmRjYjIx
NjY3MGRlZTEzZjA1YzEuLjlmNDc3OGM5N2Y3ZDhmNWJmM2U0YjY3NWEwZTVkMTE2NDk4NTA0M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDktMjggIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIFVzZSBWaWRl
b0xheWVyTWFuYWdlciB0byBtYW5hZ2UgbGF5ZXJzIG9mIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2OTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNj
cmVlbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OmV4aXRGdWxsc2NyZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnN5bmNUZXh0VHJh
Y2tCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOiBEZWxldGVkLgorCiAyMDIwLTA5LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgb3VyIGNh
bGxzIHRvIEFWQ2FwdHVyZURldmljZSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlIGRvIHByb2Nl
c3Npbmcgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA3ZThkNTM1NTE4
YjE1MDBmMzNkZGRiOWQyYjdiMjAwNWMzNjE3YzRlLi4wZjA5YTUyYTU0MmZhMGMxMDdhZWQ5MDIx
MGUwZjRmZmJmZmI5ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyMTMsNiArMTIxMyw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9TdHJpbmdUcnVuY2F0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RhYlNpemUuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tp
bmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVmOWQ1NThhNjIzY2U1NjBiMzFjYjJi
ZjdjNGJiOWFkOGRlOTkyMy4uZDM1MDcxNGI1MGNmNDVjYWE4NjNmNjUxYjUzYWI5MmEwNjE5MmNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMwLDcgKzYzMCwxMSBAQAogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjggLyog
SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBIVE1M
VmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQaWN0
dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxREVGMDZDRDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVyZVdp
bmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTFEOUYwRkMxMjEyMjAyOUIwMDVEOEZENCAvKiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgwRSAv
KiBTaGFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkxREFCMzExMjI1MUQ2QkYzMDBGQzk0ODUgLyogV2ViVmlkZW9Db250YWluZXJMYXll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjMx
QTEyMzc5REM4MzAwODgzRkRFIC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzExNDI1MUQ3MjVD
MDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xh
eWVyTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMThF
MUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREJDMUI1NjIzNDdCM0QyMDBC
OTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyogUGlj
dHVyZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMUREM0I0QzYyNTFEQTBCODAwNjlCMjRBIC8qIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0g
Ki87IH07CiAJCTFERjdFODFGMjUxQTlFMDYwMERCOEY2MSAvKiBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RE
MUU1MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMxRTIx
QkExNzAwNjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAwNjIx
RTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGNzJCRjBCMTg3RkQ0NUMwMDA5QkNCMyAv
KiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGNzJCRjA5MTg3RkQ0MjcwMDA5QkNCMyAvKiBUaWxl
Q29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTU4OCw3ICsxNTkyLDYgQEAKIAkJNTJCMEQ0QkUxQzU3
RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3Jt
Vmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0
QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0QzIx
QzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5MTAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUyRDVBMThGMUM1NDU5MjMwMERFMzRB
MyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXll
ck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlk
ZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUy
RDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUEx
QTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJFMkNB
RkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAvKiBN
ZWRpYVByb2R1Y2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTY3MjcsNiArNjczMCw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkwMENBNkNERiAv
KiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXll
ck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJ
blBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAwNEI3
ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0
b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjExQkE4
NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYXJl
RGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzE5LDggKzg3MjMsOCBA
QAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0QzEx
QzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0IC8q
IFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxldGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CisJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9i
akMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVy
TWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVBMThFMUM1
NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0ODg5
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjE5Niw2ICsyNjIwMCw3IEBACiAJ
CQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkwRjVB
NTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMz
NjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCisJCQkJMURBQjMxMTMyNTFE
NzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1
REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0Q2RkU1QkIyNEJD
RTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEyNEJDRTdC
NjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLApAQCAtMjg0OTUsMTAgKzI4NTAwLDYgQEAK
IAkJRTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3MDgx
REMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCi0JCQkJRTRBNjY0QzYy
NTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywKLQkJ
CQlFNEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRv
ckxlZ2FjeVBhdGguaCAqLywKLQkJCQlFNEE2NjRDNDI1MjFCNzc3MDA3MDgxREMgLyogTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCAqLywKIAkJCQlFNDE4MDI1NjIzRDQ1
NEI1MDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCAqLywKIAkJCQlFNDE4
MDI1MzIzRDQ1NDlBMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggKi8sCiAJ
CQkJRTQwM0I3OUYyNTFCMTE4QjAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2Uu
Y3BwICovLApAQCAtMjg1MDcsNiArMjg1MDgsMTAgQEAKIAkJCQlFNEFCQUJEQjIzNjA4OEZEMDBG
QTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8sCiAJCQkJRTQzMTJBQjUy
NEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgKi8sCiAJ
CQkJRTQzMTJBQjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlv
bi5oICovLAorCQkJCUU0QTY2NEM3MjUyMUI3NzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlv
blJ1bkl0ZXJhdG9yLmNwcCAqLywKKwkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3MDgxREMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oICovLAorCQkJCUU0QTY2NEM1MjUyMUI3NzgwMDcw
ODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oICovLAorCQkJ
CUU0QTY2NEM0MjUyMUI3NzcwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9y
TW9kZXJuUGF0aC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMjQ0Nyw3ICszMjQ1Miw2IEBACiAJCQkJMDc5NjlEQjAx
N0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlNlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc5NjlEQjIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc5NjlEQjYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDSWNlQ2Fu
ZGlkYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNkRDQjRDMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RENCNEUxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRDSWNl
R2F0aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEVDMTlFRTM0MUUwMEU1
QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQ5Myw3ICszMjQ5
Nyw2IEBACiAJCQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50Q2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAvKiBK
U1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODI0MzJB
MEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTFRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2OUQxMTkwMkE0MjAwN0U5Njg0IC8qIEpTU1FM
VHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTExMTkwMkE1
MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODY2MjlEMzA5REEyQjQ4MDA5NjMzQTcgLyogSlNTdGF0aWNSYW5nZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjc4NSw2ICszMjc4OCw5IEBACiAJCQkJRTQwM0I3QTIyNTFCMTE5MzAw
MTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0MDNCN0EzMjUxQjExQzEwMDE5RTgwMCAvKiBMYXlvdXRJ
bnRlZ3JhdGlvblBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENDMjUyMUQ0
QUYwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5J
dGVyYXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENFMjUyMUQ0Qzkw
MDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkZBNEMwMTIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5b3V0
TGluZUJyZWFrQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBDNEMw
N0UgLyogTGF5b3V0TWlsZXN0b25lLmggaW4gSGVhZGVycyAqLywKQEAgLTMyOTYzLDcgKzMyOTY5
LDYgQEAKIAkJCQlDOTZGNUVDODFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50ZXJy
dXB0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5NkY1RUM1MUI1ODcyMjYwMDkx
RUE5RCAvKiBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzkwRjY1NTYxQjIyNTNCRTAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlvdXRJ
bnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3
RjdBRUYyMTM5QkY2RjAwRkJBN0VDIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAv
KiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM4MSw2ICszNDM4
Niw4IEBACiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFD
NTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFEQUIzMTE0MjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTUyNTFENzREQjAwRkM5NDg1IC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODNDNDQw
NjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
NzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zNDU1Nyw2ICszNDU2NCw3IEBACiAJCQkJMUY4NzU2QjIxRTIyQzMz
NTAwNDJDNDBEIC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzFERUE0NTYxQjM5RjREOTAwRjc3MTc4IC8qIFdlYlN5c3RlbUJhY2tkcm9wTGF5
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkEzMTQ5NjkzOTEwMEZCNUJEOCAvKiBXZWJU
aWxlZEJhY2tpbmdMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTIyNTFENkJGMzAw
RkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTNG
NDJCMzFEMTg4MTE5MUIwMDI3OEFBQyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZL
aXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEN0RBMEYyMjQzNUVCMTkwMEYwNDhEMSAvKiBXZWJW
aWV3VmlzdWFsSWRlbnRpZmljYXRpb25PdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMTIx
NzFGNjE2QThDRjBCMDAwMDUzQ0EgLyogV2ViVlRURWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNTgyNSw3ICszNTgzMyw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8qIFVz
ZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3M0ZC
MDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTJENUExOEYxQzU0NTky
MzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTFERDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOEI1QTQyMTgwRDE0OUEwMDhC
OEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3VyYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKaW5kZXggODFlOGMy
YmNmYTdmNzdjY2YzODYzZGU3MTkzN2UyYWIzMDcxMmJjNi4uNGM1ZTMyM2Y0YTU1NGVlOWYyZTE0
NjAzYzE4NjBhNjg2NjU1MTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcApAQCAtMjQsMTEg
KzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRUcmFj
a1JlcHJlc2VudGF0aW9uLmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5oIgotCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaAppbmRleCAzNDFiMjMyYWUzMDhkNDI0ZGY3
MWVjMzJkNjRjNGJhMDQ2NzQ0ODJjLi5kNzI4ZGNiYzQ1YjJlNjIyNWE2ZDJmN2EyMGViYzI5ODMy
Mjk3Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRleHRUcmFja1JlcHJl
c2VudGF0aW9uX2gKLSNkZWZpbmUgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25faAorI3ByYWdtYSBv
bmNlCiAKICNpZiBFTkFCTEUoVklERU8pCiAKQEAgLTYxLDUgKzYwLDMgQEAgcHVibGljOgogfQog
CiAjZW5kaWYKLQotI2VuZGlmIC8vIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJmOTc1NGJmYmI5NjUyYjAwZDI2YWJmZDQ5MTZjOGE4ZDIyYTkyZDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVy
TWFuYWdlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZs
b2F0UmVjdDsKK2NsYXNzIEludFNpemU7CisKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRlb0xheWVyTWFuYWdlcigpIHsgfQorCisgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgPSAwOworCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogdmlkZW9G
dWxsc2NyZWVuTGF5ZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVj
dCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKSA9IDA7CisjZW5k
aWYKKworICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxh
eWVyKFBsYXRmb3JtTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN5bmNUZXh0VHJhY2tC
b3VuZHMoKSA9IDA7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oCmluZGV4IDIxMjg3MGE4ODY0MTZhYzMzYzg5M2Q5OWZhZWFlMjcyYTc1
MTQ1OGIuLjZiOTc3MmU5MzM3NGMzODlhYTJmYTNhMzM1OTg4ZTMzZjA2ZTE1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Zp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV2ViVmlkZW9Db250YWluZXJMYXllci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KQEAgLTM3LDMyICszOCw0NCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9u
OwotCi1jbGFzcyBWaWRlb0xheWVyTWFuYWdlck9iakMgZmluYWwgOiBwdWJsaWMgTG9nZ2VySGVs
cGVyIHsKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyBmaW5hbAorICAgIDogcHVibGljIFZp
ZGVvTGF5ZXJNYW5hZ2VyCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwdWJsaWMg
TG9nZ2VySGVscGVyCisjZW5kaWYKK3sKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb0xh
eWVyTWFuYWdlck9iakMpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworCiBwdWJsaWM6
Ci0gICAgVmlkZW9MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb0xheWVy
TWFuYWdlck9iakMoY29uc3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopOworI2Vsc2UKKyAgICBXRUJD
T1JFX0VYUE9SVCBWaWRlb0xheWVyTWFuYWdlck9iakMoKTsKKyNlbmRpZgogCi0gICAgUGxhdGZv
cm1MYXllciAqdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9JbmxpbmVM
YXllci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0xheWVyTWFuYWdlck9iakMo
KTsKIAotICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICosIEludFNpemUgY29u
dGVudFNpemUpOwotICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkgY29uc3QgZmluYWw7CisK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciosIElu
dFNpemUgY29udGVudFNpemUpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRGVz
dHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKTsKLSAgICBGbG9hdFJlY3QgdmlkZW9G
dWxsc2NyZWVuRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9
Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpOwotICAgIHZvaWQg
dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpOworICAgIFdF
QkNPUkVfRVhQT1JUIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3Qg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIs
IE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFJlY3Qgdmlk
ZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0
cikgZmluYWw7CiAjZW5kaWYKIAotICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQ
bGF0Zm9ybUxheWVyKik7Ci0gICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3Qg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkxheWVyKFBsYXRmb3JtTGF5ZXIqKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5
bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKKworI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAgICAgY29uc3QgY2hhciogbG9n
Q2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyI7
IH0KQEAgLTcwLDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1f
bG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgogCiAgICAg
UmV0YWluUHRyPFdlYlZpZGVvQ29udGFpbmVyTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KaW5kZXggZDUwZDcyMzY4YWNlNGI2NDE5YTc1
NjBhMTE0YmI3YTY5NGY3MzQ1My4uMGEzNTYyYjliODYxMTYwOGJmYWRhZjFhZmFjODFlMThjMjJk
MmU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5tbQpAQCAtNDMsMTEgKzQzLDI2IEBAIE9CSkNfQ0xBU1MgQVZQbGF5ZXJMYXllcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBWaWRlb0xheWVy
TWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImIGxvZ2dlciwg
Y29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKICAgICA6IG1fbG9nZ2VyKGxvZ2dlcikKICAgICAs
IG1fbG9nSWRlbnRpZmllcihsb2dJZGVudGlmaWVyKQogewogfQorI2Vsc2UKK1ZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6VmlkZW9MYXllck1hbmFnZXJPYmpDKCkKK3sKK30KKyNlbmRpZgorCitWaWRl
b0xheWVyTWFuYWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMoKQoreworfQorCitQbGF0
Zm9ybUxheWVyKiBWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvSW5saW5lTGF5ZXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7Cit9CiAKIHZvaWQgVmlk
ZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvTGF5
ZXIsIEludFNpemUgY29udGVudFNpemUpCiB7CkBAIC04NywxMCArMTAyLDkgQEAgdm9pZCBWaWRl
b0xheWVyTWFuYWdlck9iakM6OmRpZERlc3Ryb3lWaWRlb0xheWVyKCkKIAogI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKIAotdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyIGltYWdlKQorUGxh
dGZvcm1MYXllciogVmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3JlZW5MYXllcigp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKLSAgICAgICAgW21fdmlkZW9J
bmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOworICAgIHJl
dHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpOwogfQogCiB2b2lkIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0ciBjdXJyZW50SW1hZ2UpCkBAIC0xNDAsNiArMTU0LDExIEBAIHZvaWQg
VmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyICp2aWRlb0Z1bGxzY3JlCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAorRmxv
YXRSZWN0IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOworfQorCiB2b2lkIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IHZpZGVv
RnVsbHNjcmVlbkZyYW1lKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgdmlkZW9G
dWxsc2NyZWVuRnJhbWUueCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS55KCksICIsICIs
IHZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksICIsICIsIHZpZGVvRnVsbHNjcmVlbkZyYW1l
LmhlaWdodCgpKTsKQEAgLTE1Miw2ICsxNzEsMTIgQEAgdm9pZCBWaWRlb0xheWVyTWFuYWdlck9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmEK
ICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CiB9CiAKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJP
YmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFn
ZSkKK3sKKyAgICBpZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAgICBbbV92aWRlb0lubGlu
ZUxheWVyIHNldENvbnRlbnRzOihfX2JyaWRnZSBpZClpbWFnZS5nZXQoKV07Cit9CisKICNlbmRp
ZgogCiBib29sIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAyNjViN2UyZDg1NDI4NGRlNzllNzZk
ZDlhZTgxYTFmM2MwOWUwYmY0Li40MWI1MzY2ZjhjNGM5NDU0YzMxNThhMWM1YTYzN2M2YzUwMzU2
ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CiAK
LSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBh
cmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBpbmxpbmVMYXllckhvc3Rp
bmdDb250ZXh0SWQsIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBmdWxsc2NyZWVu
TGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJik7CisgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2so
Ym9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0Nv
bnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdD
b250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJik7CiAgICAgdm9pZCBw
cmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAKICAgICB2b2lkIGxvYWQoVVJMJiYsIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlbW90ZU1lZGlhUGxheWVyQ29u
ZmlndXJhdGlvbiYmKT4mJik7CkBAIC0xMjQsOCArMTI0LDYgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0VmlzaWJsZShib29sKTsKICAgICB2b2lkIHNldFNob3VsZE1haW50YWluQXNwZWN0UmF0aW8o
Ym9vbCk7CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIHZvaWQgZW50
ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBleGl0
RnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuR3Jhdml0eShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZp
dHkpOwogI2VuZGlmCiAgICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChi
b29sKTsKQEAgLTEzOCw5ICsxMzYsNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7Ci0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7Ci0jZW5kaWYK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMGE5Yjk4MTYxMDdiZWJiYWNlYTEzYzUyNWJh
MThiN2RiZjY1ZTA3MC4uNTlhMGFjYWFhMWY0Y2M2MTMwNzU1MjZmMDkzNTUxOTQ4MmVmMWE5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkgTm90UmVmQ291bnRlZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxv
YWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQg
dmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRl
eHRJRD4gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxXZWJLaXQ6OkxheWVy
SG9zdGluZ0NvbnRleHRJRD4gZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMK
KyAgICBQcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkg
LT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBpbmxpbmVMYXllckhv
c3RpbmdDb250ZXh0SWQpIEFzeW5jCiAKICAgICBMb2FkKFVSTCB1cmwsIE9wdGlvbmFsPFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpD
b250ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBB
c3luYwogICAgIENhbmNlbExvYWQoKQpAQCAtNjgsMTQgKzY4LDYgQEAgbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIFNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChXZWJDb3JlOjpJbnRTaXplIHNpemUsIE1h
Y2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCi0gICAgU2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRS
ZWN0IHJlY3QsIE1hY2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkKLSNlbmRpZgotI2VuZGlmCi0K
LSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgRW50ZXJGdWxsc2NyZWVu
KCkgLT4gKCkgQXN5bmMKLSAgICBFeGl0RnVsbHNjcmVlbigpIC0+ICgpIEFzeW5jCiAjZW5kaWYK
IAogICAgICMgUGFpbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCmluZGV4
IGQ5ODI0ZTgyM2E2MDlhNjczZDQwMTI1M2U4ODQ0OWFlODc4MDY5YTcuLjU5ZjhlNTA5ZjBiZDFk
NWNhNGE0YzhiMjQ5MjE1ZWY1MWExODBkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbQpAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRl
TW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHBy
ZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVu
dFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRl
eHRJRD4mJiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQsIE9wdGlvbmFsPExheWVySG9zdGlu
Z0NvbnRleHRJRD4mJiBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXli
YWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQg
cHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBm
bG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BsYXllci0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9k
ZShwcml2YXRlTW9kZSk7CiAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQocHJlbG9hZCk7CkBAIC00
NSwxMSArNDUsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5
YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYQogICAgIG1fdmlkZW9Db250ZW50
U2NhbGUgPSB2aWRlb0NvbnRlbnRTY2FsZTsKICAgICBpZiAoIW1faW5saW5lTGF5ZXJIb3N0aW5n
Q29udGV4dCkKICAgICAgICAgbV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0
aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwotI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICBpZiAoIW1fZnVsbHNjcmVlbkxheWVySG9z
dGluZ0NvbnRleHQpCi0gICAgICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQgPSBM
YXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7Ci0g
ICAgY29tcGxldGlvbkhhbmRsZXIobV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0
SUQoKSwgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwotI2Vu
ZGlmCisgICAgY29tcGxldGlvbkhhbmRsZXIobV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0LT5j
b250ZXh0SUQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQpAQCAtNzQsMzAgKzcwLDYgQEAgdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2kKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi0jaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjplbnRlckZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGF1dG8gdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBtX3BsYXllci0+Y3Jl
YXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKTsKLSAgICBbdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0
TmFtZTpAIldlYiBWaWRlbyBGdWxsc2NyZWVuIExheWVyIChyZW1vdGUpIl07Ci0gICAgW3ZpZGVv
RnVsbHNjcmVlbkxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRaZXJvXTsKLSAgICBtX2Z1bGxzY3Jl
ZW5MYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIu
Z2V0KCkpOwotCi0gICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVs
bHNjcmVlbkxheWVyLmdldCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19Ci0KLXZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIG1fcGxheWVyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcihudWxscHRyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG51bGxwdHIp
OwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgY29uc3QgV1RGOjpNYWNo
U2VuZFJpZ2h0JiBtYWNoU2VuZFJpZ2h0KQotewotICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGlu
Z0NvbnRleHQtPnNldEZlbmNlUG9ydChtYWNoU2VuZFJpZ2h0LnNlbmRSaWdodCgpKTsKLSAgICBt
X3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUocmVjdCk7Ci19Ci0jZW5kaWYKLQogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2dzdHJlYW1lci9SZW1vdGVNZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdT
dHJlYW1lci5jcHAKaW5kZXggOWYwYmZiODI2MDJjZWIxNWU1YWM3Y2ZmNDVmZjE4MWM3NGUxMGM2
Ni4uN2M5MjYzYzg3N2FkNmUwMzBlMGJmZDdjODFhNDdmNDk0YTViY2YyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRpYVBsYXll
clByb3h5R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
Z3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIuY3BwCkBAIC0zMyw3ICsz
Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQ
cmVsb2FkLCBib29sLCBib29sLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJI
b3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNj
cmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQ
cmVsb2FkLCBib29sLCBib29sLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJI
b3N0aW5nQ29udGV4dElkKT4mJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtNDgs
MTggKzQ4LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclJlbmRl
cmluZ01vZGVDaGFuZ2VkKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi0jaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpl
bnRlckZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0jZW5kaWYKLQogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4
IGEzOWY1ZDYzZDEyZGZkNzY0MzA2ZmM4Mjc1NTMxNDFlZmVkNmVkY2IuLjg3YTkwOGUwMWUyNjI4
NDRkYmYwYWRjMWE4NDhiMzEwNDRhZGRkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKLSNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKIAotI2luY2x1ZGUgIkF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlJlbW90ZUxlZ2FjeUNETS5oIgogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIK
QEAgLTM2LDkgKzM1LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIlRleHRUcmFja1ByaXZh
dGVSZW1vdGUuaCIKICNpbmNsdWRlICJWaWRlb0xheWVyUmVtb3RlLmgiCi0jaW5jbHVkZSAiVmlk
ZW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oPgpAQCAtNDgsNiArNDUsOCBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1MYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1UaW1l
UmFuZ2VzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlk
ZW9MYXllck1hbmFnZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTkxLDE4
ICs5MCwyOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIH0gd2hpbGUgKDApCiAjZW5kaWYK
IAorI2lmICFQTEFURk9STShDT0NPQSkKIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlciYgbWFuYWdlcikKLSAgICA6IG1fcGxheWVyKHBsYXllcikKKyNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyAgICA6IG1fbG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkpCisg
ICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkK
KyNlbmRpZgorICAgICwgbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9tZWRpYVJlc291cmNlTG9h
ZGVyKHBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1fbWFuYWdlcihtYW5h
Z2VyKQogICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAg
ICAgLCBtX2lkKHBsYXllcklkZW50aWZpZXIpCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0g
ICAgLCBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQotICAgICwgbV9sb2dJ
ZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCit7CisgICAgSU5G
T19MT0coTE9HSURFTlRJRklFUik7Cit9CiAjZW5kaWYKKworTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKIHsKICAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5k
aWREZXN0cm95VmlkZW9MYXllcigpOworI2VuZGlmCisgICAgbV9tYW5hZ2VyLmRlbGV0ZVJlbW90
ZU1lZGlhUGxheWVyKG1faWQpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBkb2N1bWVudFNlY3VyaXR5T3Jp
Z2luKQpAQCAtMTEyLDI2ICsxMjIsMjEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnNldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYKICAgICBt
X3BsYXllci0+bWVkaWFFbmdpbmVVcGRhdGVkKCk7CiB9CiAKLU1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpCi17Ci0gICAgSU5GT19MT0coTE9HSURF
TlRJRklFUik7Ci0gICAgbV9tYW5hZ2VyLmRlbGV0ZVJlbW90ZU1lZGlhUGxheWVyKG1faWQpOwot
fQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKGJv
b2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2Vy
dmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkKIHsKICAgICBhdXRvIHNjYWxlID0gbV9wbGF5ZXItPnBs
YXllckNvbnRlbnRzU2NhbGUoKTsKIAotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhw
cml2YXRlTW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGlubGluZUxheWVySG9zdGlu
Z0NvbnRleHRJZCwgYXV0byBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBtdXRhYmxl
IHsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHByZWxvYWQs
IHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgdGhpc10oYXV0byBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpIG11dGFibGUg
ewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IGlmICghaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIG1fdmlkZW9JbmxpbmVMYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUodGhp
cywgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCkpOwotI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICAgICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29u
dGV4dElkID0gZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZDsKKyAgICAgICAgbV92aWRl
b0xheWVyID0gY3JlYXRlVmlkZW9MYXllclJlbW90ZSh0aGlzLCBpbmxpbmVMYXllckhvc3RpbmdD
b250ZXh0SWQudmFsdWUoKSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIEludFNpemUg
ZGVmYXVsdFNpemUgPSBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJl
Y3QoKSkuc2l6ZSgpOworICAgICAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVy
KG1fdmlkZW9MYXllci5nZXQoKSwgZGVmYXVsdFNpemUpOwogI2VuZGlmCiAgICAgfSwgbV9pZCk7
CiB9CkBAIC02NDMsMzIgKzY0OCwyMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVv
SW5saW5lTGF5ZXIuZ2V0KCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIG1fdmlk
ZW9MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKKyNlbHNlCisgICAgcmV1dHVybiBu
dWxscHRyOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCF2aWRlb0Z1bGxzY3JlZW5MYXll
cikgewotICAgICAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpFeGl0RnVsbHNjcmVlbigpLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgbV9yZXF1aXJlc1RleHRUcmFja1Jl
cHJlc2VudGF0aW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgICAgICB9LCBtX2lkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVCht
X3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpID09IHZpZGVvRnVsbHNjcmVlbkxheWVyKTsKLSAg
ICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpFbnRlckZ1bGxzY3JlZW4oKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IHRydWU7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSwgbV9pZCk7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
dmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRy
KTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKQpAQCAtNjc2LDkgKzY2OSwxMiBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKQog
ICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpV
cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpLCBtX2lkKTsKIH0KIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBzZW5k
UmlnaHQpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVu
RnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCiB7Ci0gICAgY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvRnVsbHNjcmVlbkZyYW1l
RmVuY2VkKHJlY3QsIHNlbmRSaWdodCksIG1faWQpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIndpZHRoID0gIiwgcmVjdC5zaXplKCkud2lkdGgo
KSwgIiwgaGVpZ2h0ID0gIiwgcmVjdC5zaXplKCkuaGVpZ2h0KCkpOworICAgIG1fdmlkZW9MYXll
ck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOworI2VuZGlmCiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlZpZGVvR3Jhdml0eSBncmF2aXR5KQpAQCAtMTAyMSw2
ICsxMDE3LDMwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRTaG91bGRDb250
aW51ZUFmdGVyS2V5TmVlZGVkKGJvb2wgc2hvdWxkKQogfQogI2VuZGlmCiAKK2Jvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29u
c3QKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdl
ci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1JlcHJlc2VudGF0aW9uKiBy
ZXByZXNlbnRhdGlvbikKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvKiByZXByZXNl
bnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb24gPyByZXByZXNlbnRhdGlvbi0+cGxhdGZvcm1M
YXllcigpIDogbmlsOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFRleHRUcmFja1JlcHJl
c2VudGF0aW9uTGF5ZXIocmVwcmVzZW50YXRpb25MYXllcik7CisjZW5kaWYKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQoreworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnN5bmNUZXh0VHJhY2tCb3Vu
ZHMoKTsKKyNlbmRpZgorfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dHJhY2tz
Q2hhbmdlZCgpCiB7CiAgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OlRyYWNrc0NoYW5nZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAppbmRleCA1MDdmYjg2NDI1NDExZDE5NWE4NDdkYjU3Y2U0NDg3NTFhMzlmNDU1Li5lYTgy
ZGYwY2VhNTNhMDNiZDgzZjRmNzQxMjYxMzcxMTc1MjQ3NTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmgKQEAgLTI3LDEzICsyNywxNiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
CisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJMYXllckhv
c3RpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisjaW5jbHVk
ZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC00
OCwxNSArNTEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEdlbmVyaWNDdWVEYXRh
OwogY2xhc3MgSVNPV2ViVlRUQ3VlOwogY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlOwotY2xhc3MgVGV4dFRyYWNrUmVwcmVzZW50YXRpb247CitjbGFzcyBWaWRlb0xheWVyTWFu
YWdlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlOwotY2xhc3MgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTsKIGNsYXNzIFVzZXJEYXRhOwot
Y2xhc3MgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
bjsKIApAQCAtMTAxLDcgKzEwMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpcnN0VmlkZW9GcmFt
ZUF2YWlsYWJsZSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0VmlkZW9Jbmxp
bmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5k
UmlnaHQmKTsKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogI2VuZGlmCiAK
ICAgICB2b2lkIGFkZFJlbW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKQEAgLTE0OSwxNCArMTQ4LDE4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFu
Z2VkKGJvb2wpOwogI2VuZGlmCiAKK3ByaXZhdGU6CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICptX2xv
Z2dlcjsgfQogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUiOyB9CiAgICAgY29uc3Qgdm9pZCogbG9n
SWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dm9pZCo+KG1fbG9nSWRlbnRpZmllcik7IH0KICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVs
KCkgY29uc3QgZmluYWw7CisKKyAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAg
ICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIAotcHJpdmF0ZToKICAgICB2
b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBT
dHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVN
b2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlKSBmaW5hbDsKIApAQCAtMzI0LDExICszMjcsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNldFNob3VsZENvbnRpbnVlQWZ0ZXJLZXlOZWVkZWQoYm9vbCkgZmluYWw7CiAjZW5k
aWYKIAotICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsgfQotI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29y
ZTo6VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSBmaW5hbDsKICAgICB2b2lkIHN5bmNUZXh0VHJh
Y2tCb3VuZHMoKSBmaW5hbDsKLSNlbmRpZgorCiAgICAgdm9pZCB0cmFja3NDaGFuZ2VkKCkgZmlu
YWw7CiAKICAgICB2b2lkIGJlZ2luU2ltdWxhdGVkSERDUEVycm9yKCkgZmluYWw7CkBAIC0zNTks
MTMgKzM2MSwxMSBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxh
eWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBib29sIG1fcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbiB7IGZhbHNlIH07Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5l
ciBtX3ZpZGVvSW5saW5lTGF5ZXI7Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxQbGF0
Zm9ybUxheWVyPiBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXI7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwog
I2VuZGlmCi0gICAgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0SWQ7CisgICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVv
TGF5ZXI7CisKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVF
bmdpbmVJZGVudGlmaWVyOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
bV9pZDsKQEAgLTM4OCwxMiArMzg4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9zZWVraW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDdXJy
ZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcyB7IGZhbHNlIH07Ci0KLSNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKLSAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2
b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci0jZW5kaWYKLQogICAgIGJvb2wgbV9pbnZhbGlkIHsgZmFs
c2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29h
Lm1tCmluZGV4IDRhODRjMjUxZGJiNzM3MGUzMWM5MDg5NDdiNjNlNGQ0OWRhY2RmNjguLjAwMmMw
NTA4MTM1ZTA2M2YxZjI1ZGJhZTY0MDNhMTZiODI1M2UyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQpAQCAtMjgsOTMgKzI4LDMzIEBACiAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQogCi0jaW1wb3J0IDxXZWJD
b3JlL0Zsb2F0UmVjdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9UZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oPgorI2ltcG9ydCA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4KICNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgotI2ltcG9ydCA8d3RmL01hY2hTZW5kUmln
aHQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLQotUGxhdGZvcm1MYXllckNvbnRh
aW5lciBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVy
KCkKLXsKLSAgICBpZiAoIW1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsK
LSAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9j
XSBpbml0XSk7Ci0gICAgICAgIGF1dG8gc3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0Ojpj
cmVhdGVQbGF0Zm9ybUxheWVyRm9ySG9zdGluZ0NvbnRleHQobV9mdWxsc2NyZWVuTGF5ZXJIb3N0
aW5nQ29udGV4dElkLnZhbHVlKCkpOwotICAgICAgICBbc3VibGF5ZXIgc2V0TmFtZTpAIlZpZGVv
RnVsbHNjcmVlbkxheWVyU3VibGF5ZXIiXTsKLSAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9u
OkNHUG9pbnRNYWtlKDAsIDApXTsKLSAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRk
U3VibGF5ZXI6c3VibGF5ZXIuZ2V0KCldOwotICAgIH0KLQotICAgIHJldHVybiBtX3ZpZGVvRnVs
bHNjcmVlbkxheWVyOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0Vmlk
ZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCi17Ci0gICAgYXV0byBj
b250ZXh0ID0gW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgY29udGV4dF07Ci0gICAgaWYgKCFjb250
ZXh0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAg
W0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIE1hY2hTZW5kUmln
aHQgZmVuY2VTZW5kUmlnaHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbY29udGV4dCBjcmVhdGVG
ZW5jZVBvcnRdKTsKLSAgICBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBmZW5j
ZVNlbmRSaWdodCk7Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotCi0gICAgc3luY1Rl
eHRUcmFja0JvdW5kcygpOwotfQotCitNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXImIG1hbmFnZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgOiBtX2xvZ2dlcigm
cGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXll
ci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLQotdm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRU
cmFja1JlcHJlc2VudGF0aW9uKiByZXByZXNlbnRhdGlvbikKKyAgICAsIG1fcGxheWVyKHBsYXll
cikKKyAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9h
ZGVyKCkpCisgICAgLCBtX3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9MYXllck1h
bmFnZXJPYmpDPihsb2dnZXIoKSwgbG9nSWRlbnRpZmllcigpKSkKKyAgICAsIG1fbWFuYWdlciht
YW5hZ2VyKQorICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIp
CisgICAgLCBtX2lkKHBsYXllcklkZW50aWZpZXIpCiB7Ci0jaWYgIUVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKLSAgICBVTlVTRURfUEFSQU0ocmVwcmVzZW50YXRpb24pOwotI2Vsc2UK
LSAgICBQbGF0Zm9ybUxheWVyKiByZXByZXNlbnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb24g
PyByZXByZXNlbnRhdGlvbi0+cGxhdGZvcm1MYXllcigpIDogbmlsOwotCi0gICAgaWYgKHJlcHJl
c2VudGF0aW9uTGF5ZXIgPT0gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKSB7Ci0gICAg
ICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0
aW9uczpZRVNdOwotCi0gICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikKLSAg
ICAgICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciByZW1vdmVGcm9tU3VwZXJsYXll
cl07Ci0KLSAgICBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgPSByZXByZXNlbnRhdGlv
bkxheWVyOwotCi0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgJiYgbV90ZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbkxheWVyKSB7Ci0gICAgICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLSAg
ICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6bV90ZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbkxheWVyLmdldCgpXTsKLSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwotI2VuZGlmCisgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKLXsKICNpZiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyIHx8ICFtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNh
YmxlQWN0aW9uczpZRVNdOwotCi0gICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciBz
ZXRGcmFtZTptX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpLmJvdW5kc107Ci0KLSAgICBbQ0FU
cmFuc2FjdGlvbiBjb21taXRdOwotI2VuZGlmCitQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQoreworICAg
IHJldHVybiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogfQorI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409917</attachid>
            <date>2020-09-28 13:50:42 -0700</date>
            <delta_ts>2020-09-28 14:01:46 -0700</delta_ts>
            <desc>Fix build failures on the GTK and WPE ports</desc>
            <filename>bug-216995-20200928135042.patch</filename>
            <type>text/plain</type>
            <size>50909</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uODdjMmM2OGYyODJjN2UxNzBjYmQ4ZTk4MzNjYTY1
MmRkMDNmN2E0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyTWFuYWdlcjo6flZpZGVvTGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0lubGluZUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKToKKwogMjAyMC0wOS0yOCAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzMyOSk6
IENyYXNoIGR1ZSB0byBudWxsLWRlcmVmZXJlbmNlIG9mIGZyYW1lIHBvaW50ZXIgaW4gRE9NU2Vs
ZWN0aW9uOjpyYW5nZUNvdW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3ZWFhMTM2YmVkMTczYjM5NzkwNmRjYjIx
NjY3MGRlZTEzZjA1YzEuLjlmNDc3OGM5N2Y3ZDhmNWJmM2U0YjY3NWEwZTVkMTE2NDk4NTA0M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDktMjggIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIFVzZSBWaWRl
b0xheWVyTWFuYWdlciB0byBtYW5hZ2UgbGF5ZXJzIG9mIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2OTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNj
cmVlbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OmV4aXRGdWxsc2NyZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnN5bmNUZXh0VHJh
Y2tCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOiBEZWxldGVkLgorCiAyMDIwLTA5LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgb3VyIGNh
bGxzIHRvIEFWQ2FwdHVyZURldmljZSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlIGRvIHByb2Nl
c3Npbmcgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA3ZThkNTM1NTE4
YjE1MDBmMzNkZGRiOWQyYjdiMjAwNWMzNjE3YzRlLi4wNzU4MTg0YmU4M2JkZDMxNDY3MDY1NzA2
ZGFkOTJjMGZkNDk1YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyMTMsOSArMTIxMywxMSBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UYWJTaXplLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNr
aW5nLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
TGF5ZXJNYW5hZ2VyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhDYWNoZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvV2luZFJ1bGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDc1ZjlkNTU4YTYyM2NlNTYwYjMxY2IyYmY3YzRiYjlhZDhkZTk5
MjMuLmQzNTA3MTRiNTBjZjQ1Y2FhODYzZjY1MWI1M2FiOTJhMDYxOTJjZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMCw3
ICs2MzAsMTEgQEAKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdp
bmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURF
RjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDlGMEZDMTIxMjIw
MjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMURBQjMx
MTIyNTFENkJGMzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEIzMUExMjM3OURDODMwMDg4
M0ZERSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMURBQjMxMTQyNTFENzI1QzAwRkM5NDg1IC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzEx
NTI1MUQ3NERCMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTFERDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFD
NTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQkxREY3
RTgxRjI1MUE5RTA2MDBEQjhGNjEgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDFFNTI1MTY3QkE1NjQw
MENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGMzZFQTlDMUUyMUJBMTcwMDYyMUUyNSAv
KiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNr
Z3JvdW5kVGFza0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xs
ZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRjcyQkYwOTE4N0ZENDI3MDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1v
cnlIYW5kbGVySU9TLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTE1ODgsNyArMTU5Miw2IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdG
RDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3
Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1
MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXll
ck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5t
bSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1
QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEz
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERF
MzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFF
RUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NzI3
LDYgKzY3MzAsNyBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1
cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJC
NjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZEMjExQkExMkEwMDRCNzgwRSAvKiBOYXZpZ2F0
b3JTaGFyZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9yU2hhcmUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRjIxMUJBODQxMDA0Qjc4MEUgLyog
U2hhcmVEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFyZURhdGEuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODcxOSw4ICs4NzIzLDggQEAKIAkJNTJCMEQ0QkYx
QzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1
MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyQ0IxMURCMjJGRERCMkUwMDlGMEE2NCAvKiBXSExTTERlZmF1bHRE
ZWxldGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xEZWZhdWx0RGVsZXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBW
aWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKLQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdl
ck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1
QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMg
LyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE2MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjYxOTYsNiArMjYyMDAsNyBAQAogCQkJCUU0QUZDRkE0MERB
RjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAw
MjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3
QURCIC8qIFZlbG9jaXR5RGF0YS5oICovLAorCQkJCTFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAv
KiBWaWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAv
KiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLAogCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAv
KiBWUDlVdGlsaXRpZXMuY3BwICovLAogCQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBW
UDlVdGlsaXRpZXMuaCAqLywKQEAgLTI4NDk1LDEwICsyODUwMCw2IEBACiAJCUU0RkI0QjFFMjM5
NTM1NkYwMDNDMzM2QSAvKiBpbnRlZ3JhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCi0JCQkJRTRBNjY0QzcyNTIxQjc3OTAwNzA4MURDIC8qIExheW91dElu
dGVncmF0aW9uUnVuSXRlcmF0b3IuY3BwICovLAotCQkJCUU0QTY2NEM2MjUyMUI3NzgwMDcwODFE
QyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggKi8sCi0JCQkJRTRBNjY0QzUyNTIx
Qjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgg
Ki8sCi0JCQkJRTRBNjY0QzQyNTIxQjc3NzAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JNb2Rlcm5QYXRoLmggKi8sCiAJCQkJRTQxODAyNTYyM0Q0NTRCNTAwRkZCMDcxIC8q
IExheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAgKi8sCiAJCQkJRTQxODAyNTMyM0Q0NTQ5QTAw
RkZCMDcxIC8qIExheW91dEludGVncmF0aW9uQm94VHJlZS5oICovLAogCQkJCUU0MDNCNzlGMjUx
QjExOEIwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCAqLywKQEAgLTI4
NTA3LDYgKzI4NTA4LDEwIEBACiAJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIExheW91
dEludGVncmF0aW9uTGluZUxheW91dC5oICovLAogCQkJCUU0MzEyQUI1MjRCMzI2NTYwMDY3ODM0
OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3BwICovLAogCQkJCUU0MzEyQUI3MjRC
MzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCAqLywKKwkJCQlF
NEE2NjRDNzI1MjFCNzc5MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5j
cHAgKi8sCisJCQkJRTRBNjY0QzYyNTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9u
UnVuSXRlcmF0b3IuaCAqLywKKwkJCQlFNEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaCAqLywKKwkJCQlFNEE2NjRDNDI1MjFC
Nzc3MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gaW50ZWdyYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMzI0NDcsNyArMzI0NTIsNiBAQAogCQkJCTA3OTY5REIwMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ0RUTUZTZW5kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTY5REIyMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ0RUTUZUb25lQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3OTY5REI2MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRTRBNjY0Q0UyNTIxRDRDOTAwNzA4MURDIC8qIExheW91dEludGVncmF0
aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZEQ0I0QzFF
NzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkRDQjRFMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3OTRFQzE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJ
Y2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzI0OTMsNyArMzI0OTcsNiBAQAogCQkJCUI1
OURENkE1MTE5MDJBNjIwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudENhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNTlERDZBOTExOTAyQTcxMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRF
cnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzgyNDMyQTBEMENFOEEyMDA0NjBD
OEYgLyogSlNTUUxUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTRBNjY0Q0MyNTIx
RDRBRjAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUI1OURENjlEMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkExMTE5MDJBNTIwMDdFOTY4NCAvKiBK
U1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5
RDMwOURBMkI0ODAwOTYzM0E3IC8qIEpTU3RhdGljUmFuZ2UuaCBpbiBIZWFkZXJzICovLApAQCAt
MzI3ODUsNiArMzI3ODgsOSBAQAogCQkJCUU0MDNCN0EyMjUxQjExOTMwMDE5RTgwMCAvKiBMYXlv
dXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFCQUJERDIzNjA4
OEZFMDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDAzQjdBMzI1MUIxMUMxMDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25QYWdp
bmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTRBNjY0
Q0YyNTIxRDRFMjAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQ
YXRoLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTExMzEwQ0Y0MjBCQTRBM0QwMDY1QThEMCAvKiBMYXlvdXRJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZGQTRDMDEyM0YyRkVEOTAwN0U0RUJDIC8qIExheW91dExpbmVCcmVha0JveC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxRDcyRjYxNUZFNjk1MzAwQzRDMDdFIC8qIExheW91dE1p
bGVzdG9uZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjk2Myw3ICszMjk2OSw2IEBACiAJCQkJQzk2
RjVFQzgxQjU4NzIyNjAwOTFFQTlEIC8qIE1lZGlhU2Vzc2lvbkludGVycnVwdGlvblByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTZGNUVDNTFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFT
ZXNzaW9uSW50ZXJydXB0aW9uUHJvdmlkZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5MEY2
NTU2MUIyMjUzQkUwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKLQkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5J
dGVyYXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxN0Y3QUVGMjEzOUJGNkYw
MEZCQTdFQyAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDOUQ4NTFGMDFCMzlEQzc4MDA4NTA2MkUgLyogTWVkaWFTZXNzaW9u
TWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzODEsNiArMzQzODYsOCBAQAogCQkJCTUy
QjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTgxQzU3NDhBMzAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxREFCMzExNDI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTgzREIyMTgzQzQ0MDYwMDMxRUFBMyAvKiBW
aWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc1N0IxM0UyMTRBRTc5
OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlEODI3QTFD
N0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBpbiBIZWFkZXJzICovLApA
QCAtMzQ1NTcsNiArMzQ1NjQsNyBAQAogCQkJCTFGODc1NkIyMUUyMkMzMzUwMDQyQzQwRCAvKiBX
ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxREVB
NDU2MUIzOUY0RDkwMEY3NzE3OCAvKiBXZWJTeXN0ZW1CYWNrZHJvcExheWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU4MEZBMzE0OTY5MzkxMDBGQjVCRDggLyogV2ViVGlsZWRCYWNraW5nTGF5
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEQUIzMTEyMjUxRDZCRjMwMEZDOTQ4NSAvKiBXZWJW
aWRlb0NvbnRhaW5lckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjQyQjMxRDE4ODExOTFC
MDAyNzhBQUMgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRDdEQTBGMjI0MzVFQjE5MDBGMDQ4RDEgLyogV2ViVmlld1Zpc3VhbElkZW50
aWZpY2F0aW9uT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjEyMTcxRjYxNkE4Q0YwQjAw
MDA1M0NBIC8qIFdlYlZUVEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzU4MjUsNyArMzU4
MzMsNyBAQAogCQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRs
ZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdE
RTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTNGQkM0QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBW
aWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxREQzQjRDNjI1MURB
MEI4MDA2OUIyNEEgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0QzMzZGNjcxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDhCNUE0MjE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNkY5
QTgzODE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCmluZGV4IDgxZThjMmJjZmE3Zjc3Y2NmMzg2
M2RlNzE5MzdlMmFiMzA3MTJiYzYuLjRjNWUzMjNmNGE1NTRlZTlmMmUxNDYwM2MxODYwYTY4NjY1
NTEzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRU
cmFja1JlcHJlc2VudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uaCIKLQogI2luY2x1ZGUgIkludFJlY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uLmgKaW5kZXggMzQxYjIzMmFlMzA4ZDQyNGRmNzFlYzMyZDY0YzRiYTA0
Njc0NDgyYy4uZDcyOGRjYmM0NWIyZTYyMjVhNmQyZjdhMjBlYmMyOTgzMjI5N2NiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbi5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCi0j
ZGVmaW5lIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5B
QkxFKFZJREVPKQogCkBAIC02MSw1ICs2MCwzIEBAIHB1YmxpYzoKIH0KIAogI2VuZGlmCi0KLSNl
bmRpZiAvLyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjk3
NTRiZmJiOTY1MmIwMGQyNmFiZmQ0OTE2YzhhOGQyMmE5MmQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJOYXRp
dmVJbWFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFJlY3Q7CitjbGFz
cyBJbnRTaXplOworCitjbGFzcyBWaWRlb0xheWVyTWFuYWdlciB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+VmlkZW9MYXllck1hbmFnZXIoKSB7IH0KKworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXll
ciogdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlk
ZW9MYXllcihQbGF0Zm9ybUxheWVyKiwgSW50U2l6ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWREZXN0cm95VmlkZW9MYXllcigpID0gMDsKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJ
T05fTU9ERSkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVy
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIs
IE5hdGl2ZUltYWdlUHRyKSA9IDA7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2Ny
ZWVuRnJhbWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKEZsb2F0UmVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxz
Y3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgPSAwOworI2VuZGlmCisKKyAgICB2aXJ0
dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQbGF0Zm9ybUxh
eWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgPSAwOwor
fTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMu
aAppbmRleCAyMTI4NzBhODg2NDE2YWMzM2M4OTNkOTlmYWVhZTI3MmE3NTE0NThiLi42Yjk3NzJl
OTMzNzRjMzg5YWEyZmEzYTMzNTk4OGUzM2YwNmUxNTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
YlZpZGVvQ29udGFpbmVyTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNs
dWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC0zNywzMiArMzgsNDQgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKLQotY2xhc3MgVmlk
ZW9MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGljIExvZ2dlckhlbHBlciB7CitjbGFzcyBW
aWRlb0xheWVyTWFuYWdlck9iakMgZmluYWwKKyAgICA6IHB1YmxpYyBWaWRlb0xheWVyTWFuYWdl
cgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHVibGljIExvZ2dlckhlbHBlcgor
I2VuZGlmCit7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9MYXllck1hbmFnZXJPYmpD
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKwogcHVibGljOgotICAgIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25zdCB2b2lkKik7CisjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECisgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJPYmpDKGNv
bnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKKyNlbHNlCisgICAgV0VCQ09SRV9FWFBPUlQgVmlk
ZW9MYXllck1hbmFnZXJPYmpDKCk7CisjZW5kaWYKIAotICAgIFBsYXRmb3JtTGF5ZXIgKnZpZGVv
SW5saW5lTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7IH0K
KyAgICBXRUJDT1JFX0VYUE9SVCB+VmlkZW9MYXllck1hbmFnZXJPYmpDKCk7CiAKLSAgICB2b2lk
IHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXplKTsKLSAg
ICB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZv
cm1MYXllciogdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0IGZpbmFsOworCisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplIGNvbnRlbnRT
aXplKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVy
KCkgZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgUGxh
dGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyLCBOYXRpdmVJbWFnZVB0cik7Ci0gICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1l
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQotICAgIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKLSAgICB2b2lkIHVwZGF0ZVZpZGVvRnVs
bHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQ
bGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IGZpbmFsOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllcios
IFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0
cikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBk
YXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOwogI2Vu
ZGlmCiAKLSAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdDsK
LSAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIoUGxhdGZvcm1MYXllciop
OwotICAgIHZvaWQgc3luY1RleHRUcmFja0JvdW5kcygpOworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQbGF0Zm9y
bUxheWVyKikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5jVGV4dFRyYWNrQm91
bmRzKCkgZmluYWw7CiAKIHByaXZhdGU6CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdl
dCgpOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fbG9nSWRlbnRpZmllcjsgfQogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJWaWRlb0xheWVyTWFuYWdlck9iakMiOyB9CkBAIC03MCw2ICs4
Myw3IEBAIHByaXZhdGU6CiAKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBj
b25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisjZW5kaWYKIAogICAgIFJldGFpblB0cjxXZWJW
aWRlb0NvbnRhaW5lckxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAjaWYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLm1tCmluZGV4IGQ1MGQ3MjM2OGFjZTRiNjQxOWE3NTYwYTExNGJiN2E2OTRm
NzM0NTMuLjBhMzU2MmI5Yjg2MTE2MDhiZmFkYWYxYWZhYzgxZTE4YzIyZDJlOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Zp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAgLTQzLDEx
ICs0MywyNiBAQCBPQkpDX0NMQVNTIEFWUGxheWVyTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogVmlkZW9MYXllck1hbmFnZXJPYmpDOjpW
aWRlb0xheWVyTWFuYWdlck9iakMoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIpCiAgICAgOiBtX2xvZ2dlcihsb2dnZXIpCiAgICAgLCBtX2xvZ0lkZW50aWZp
ZXIobG9nSWRlbnRpZmllcikKIHsKIH0KKyNlbHNlCitWaWRlb0xheWVyTWFuYWdlck9iakM6OlZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQygpCit7Cit9CisjZW5kaWYKKworVmlkZW9MYXllck1hbmFnZXJP
YmpDOjp+VmlkZW9MYXllck1hbmFnZXJPYmpDKCkKK3sKK30KKworUGxhdGZvcm1MYXllciogVmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0lubGluZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOworfQogCiB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJbnRTaXplIGNv
bnRlbnRTaXplKQogewpAQCAtODcsMTAgKzEwMiw5IEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJP
YmpDOjpkaWREZXN0cm95VmlkZW9MYXllcigpCiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiAKLXZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxz
Y3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK1BsYXRmb3JtTGF5ZXIqIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdAogewotICAg
IGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCi0gICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0
Q29udGVudHM6KF9fYnJpZGdlIGlkKWltYWdlLmdldCgpXTsKKyAgICByZXR1cm4gbV92aWRlb0Z1
bGxzY3JlZW5MYXllci5nZXQoKTsKIH0KIAogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVy
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQ
dHIgY3VycmVudEltYWdlKQpAQCAtMTQwLDYgKzE1NCwxMSBAQCB2b2lkIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxs
c2NyZQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKK0Zsb2F0UmVjdCBWaWRlb0xh
eWVyTWFuYWdlck9iakM6OnZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKK30KKwogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFt
ZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHZpZGVvRnVsbHNjcmVlbkZyYW1l
LngoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUueSgpLCAiLCAiLCB2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZS53aWR0aCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSk7CkBA
IC0xNTIsNiArMTcxLDEyIEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhCiAgICAgc3luY1RleHRU
cmFja0JvdW5kcygpOwogfQogCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCit7CisgICAgaWYg
KG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250
ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOworfQorCiAjZW5kaWYKIAogYm9vbCBWaWRl
b0xheWVyTWFuYWdlck9iakM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKaW5kZXggMjY1YjdlMmQ4NTQyODRkZTc5ZTc2ZGQ5YWU4MWExZjNjMDll
MGJmNC4uNDFiNTM2NmY4YzRjOTQ1NGMzMTU4YTFjNWE2MzdjNmM1MDM1NjgwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRDb25maWd1
cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwogCi0gICAgdm9pZCBwcmVw
YXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5n
LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBP
cHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNjcmVlbkxheWVySG9zdGluZ0Nv
bnRleHRJZCk+JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRl
cmluZygpOwogCiAgICAgdm9pZCBsb2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+
JiYpOwpAQCAtMTI0LDggKzEyNCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpc2libGUoYm9v
bCk7CiAgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wpOwogI2lmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4oQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdy
YXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICNlbmRpZgog
ICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CkBAIC0xMzgs
OSArMTM2LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRW
aWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6
TWFjaFNlbmRSaWdodCYpOwotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAg
ICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwotI2VuZGlmCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDBhOWI5ODE2MTA3YmViYmFjZWExM2M1MjViYTE4YjdkYmY2NWUwNzAu
LjU5YTBhY2FhYTFmNGNjNjEzMDc1NTI2ZjA5MzU1MTk0ODJlZjFhOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50
ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGlubGluZUxh
eWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0
SUQ+IGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisgICAgUHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJl
cGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxX
ZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElk
KSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRpb25hbDxXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6Q29udGVudFR5cGUgY29u
dGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKICAgICBDYW5j
ZWxMb2FkKCkKQEAgLTY4LDE0ICs2OCw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVy
UHJveHkgTm90UmVmQ291bnRlZCB7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRWaWRl
b0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1h
Y2hTZW5kUmlnaHQpCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIFNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBNYWNo
U2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIEVudGVyRnVsbHNjcmVlbigpIC0+ICgpIEFzeW5j
Ci0gICAgRXhpdEZ1bGxzY3JlZW4oKSAtPiAoKSBBc3luYwogI2VuZGlmCiAKICAgICAjIFBhaW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQppbmRleCBkOTgyNGU4MjNhNjA5
YTY3M2Q0MDEyNTNlODg0NDlhZTg3ODA2OWE3Li41OWY4ZTUwOWYwYmQxZDVjYTRhNGM4YjI0OTIx
NWVmNTFhMTgwZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
Y29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAg
LTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5l
TGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYg
ZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250
ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29u
dGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgbV9wbGF5ZXItPnNldFByaXZhdGVCcm93c2luZ01vZGUocHJpdmF0ZU1vZGUp
OwogICAgIG1fcGxheWVyLT5zZXRQcmVsb2FkKHByZWxvYWQpOwpAQCAtNDUsMTEgKzQ1LDcgQEAg
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2
YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWEKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9D
b250ZW50U2NhbGU7CiAgICAgaWYgKCFtX2lubGluZUxheWVySG9zdGluZ0NvbnRleHQpCiAgICAg
ICAgIG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNy
ZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpCi0gICAgaWYgKCFtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0KQot
ICAgICAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29u
dGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwotICAgIGNvbXBsZXRpb25I
YW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIG1fZnVsbHNj
cmVlbkxheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKLSNlbmRpZgorICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwog
fQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0Zy
YW1lQXZhaWxhYmxlKCkKQEAgLTc0LDMwICs3MCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNp
CiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2Ny
ZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBhdXRvIHZpZGVvRnVsbHNjcmVlbkxheWVyID0gbV9wbGF5ZXItPmNyZWF0ZVZpZGVvRnVsbHNj
cmVlbkxheWVyKCk7Ci0gICAgW3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldE5hbWU6QCJXZWIgVmlk
ZW8gRnVsbHNjcmVlbiBMYXllciAocmVtb3RlKSJdOwotICAgIFt2aWRlb0Z1bGxzY3JlZW5MYXll
ciBzZXRQb3NpdGlvbjpDR1BvaW50WmVyb107Ci0gICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5n
Q29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpKTsKLQotICAg
IG1fcGxheWVyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllci5n
ZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5
ZXIobnVsbHB0ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIG1fZnVsbHNjcmVl
bkxheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihudWxscHRyKTsKLX0KLQotdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFj
aFNlbmRSaWdodCkKLXsKLSAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0LT5zZXRG
ZW5jZVBvcnQobWFjaFNlbmRSaWdodC5zZW5kUmlnaHQoKSk7Ci0gICAgbV9wbGF5ZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIuY3BwCmlu
ZGV4IDlmMGJmYjgyNjAyY2ViMTVlNWFjN2NmZjQ1ZmYxODFjNzRlMTBjNjYuLjdjOTI2M2M4Nzdh
ZDZlMDMwZTBiZmQ3YzgxYTQ3ZjQ5NGE1YmNmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1v
dGVNZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9y
UGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwg
Ym9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJ
ZCwgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGZ1bGxzY3JlZW5MYXllckhvc3Rp
bmdDb250ZXh0SWQpPiYmKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9y
UGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwg
Ym9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJ
ZCk+JiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTQ4LDE4ICs0OCw2IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdl
ZCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVu
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRG
dWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBhMzlmNWQ2M2QxMmRm
ZDc2NDMwNmZjODI3NTUzMTQxZWZlZDZlZGNiLi44N2E5MDhlMDFlMjYyODQ0ZGJmMGFkYzFhODQ4
YjMxMDQ0YWRkZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0yNCwxMSAr
MjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgiCiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0jaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lD
RE0uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCkBAIC0zNiw5ICszNSw3
IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAj
aW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgotI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5
Vmlld0lubGluZXMuaD4KQEAgLTQ4LDYgKzQ1LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdlcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdo
dC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05MSwxOCArOTAsMjkgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgwKQogI2VuZGlmCiAKKyNpZiAhUExBVEZP
Uk0oQ09DT0EpCiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIp
Ci0gICAgOiBtX3BsYXllcihwbGF5ZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
OiBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVu
dGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKKyAgICAs
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNy
ZWF0ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
cmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5
ZXJJZGVudGlmaWVyKQotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgICwgbV9sb2dnZXIo
JnBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKLSAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5
ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKQoreworICAgIElORk9fTE9HKExPR0lERU5U
SUZJRVIpOworfQogI2VuZGlmCisKK01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSgpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVv
TGF5ZXIoKTsKKyNlbmRpZgorICAgIG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRpYVBsYXllciht
X2lkKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENvbmZpZ3VyYXRp
b24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKQEAgLTExMiwy
NiArMTIyLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0
aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmCiAgICAgbV9wbGF5ZXItPm1lZGlh
RW5naW5lVXBkYXRlZCgpOwogfQogCi1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUoKQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotICAg
IG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsKLX0KLQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmUpCiB7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50c1Nj
YWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHBy
ZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQsIGF1
dG8gZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVj
dGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRj
aCwgcHJlcGFyZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNd
KGF1dG8gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWlubGluZUxh
eWVySG9zdGluZ0NvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3Zp
ZGVvSW5saW5lTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGlubGluZUxheWVy
SG9zdGluZ0NvbnRleHRJZC52YWx1ZSgpKTsKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCi0gICAgICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCA9IGZ1bGxz
Y3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQ7CisgICAgICAgIG1fdmlkZW9MYXllciA9IGNyZWF0
ZVZpZGVvTGF5ZXJSZW1vdGUodGhpcywgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVl
KCkpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBJbnRTaXplIGRlZmF1bHRTaXplID0g
c25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsK
KyAgICAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3ZpZGVvTGF5ZXIu
Z2V0KCksIGRlZmF1bHRTaXplKTsKICNlbmRpZgogICAgIH0sIG1faWQpOwogfQpAQCAtNjQzLDMy
ICs2NDgsMjAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoTWVkaWFTdHJl
YW1Qcml2YXRlJikKIAogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
bGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdl
dCgpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2Vy
LT52aWRlb0lubGluZUxheWVyKCk7CisjZWxzZQorICAgIHJldXR1cm4gbnVsbHB0cjsKKyNlbmRp
ZgogfQogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIGlmICghdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAg
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgp
IG11dGFibGUgewotICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgICAgIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9
IGZhbHNlOwotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgfSwgbV9p
ZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBBU1NFUlQobV92aWRlb0Z1bGxzY3Jl
ZW5MYXllci5nZXQoKSA9PSB2aWRlb0Z1bGxzY3JlZW5MYXllcik7Ci0gICAgY29ubmVjdGlvbigp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6RW50
ZXJGdWxsc2NyZWVuKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
LSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBt
X3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gPSB0cnVlOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgIH0sIG1faWQpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1f
dmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVl
bkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbnVsbHB0cik7CisjZW5kaWYKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKCkKQEAgLTY3Niw5ICs2NjksMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKICAgICBjb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VXBkYXRlVmlkZW9GdWxs
c2NyZWVuSW5saW5lSW1hZ2UoKSwgbV9pZCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgc2VuZFJpZ2h0KQordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6
OkZsb2F0UmVjdCByZWN0KQogewotICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpTZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBz
ZW5kUmlnaHQpLCBtX2lkKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJ3aWR0aCA9ICIsIHJlY3Quc2l6ZSgpLndpZHRoKCksICIsIGhlaWdodCA9
ICIsIHJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpWaWRlb0dyYXZpdHkgZ3Jhdml0eSkKQEAgLTEwMjEsNiArMTAxNywzMCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0U2hvdWxkQ29udGludWVBZnRlcktleU5l
ZWRlZChib29sIHNob3VsZCkKIH0KICNlbmRpZgogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0Cit7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIG1fdmlkZW9MYXllck1hbmFnZXItPnJlcXVpcmVzVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24p
Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byogcmVwcmVzZW50YXRpb25MYXllciA9
IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRpb24tPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsK
KyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVy
KHJlcHJlc2VudGF0aW9uTGF5ZXIpOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zeW5jVGV4dFRyYWNrQm91bmRzKCk7CisjZW5kaWYK
K30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnRyYWNrc0NoYW5nZWQoKQogewog
ICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpU
cmFja3NDaGFuZ2VkKCksIG1faWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggNTA3
ZmI4NjQyNTQxMWQxOTVhODQ3ZGI1N2NlNDQ4NzUxYTM5ZjQ1NS4uZWE4MmRmMGNlYTUzYTAzYmQ4
M2Y0Zjc0MTI2MTM3MTE3NTI0NzUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0y
NywxMyArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
U3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIgorI2luY2x1ZGUgIlRleHRUcmFja1By
aXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgpAQCAtNDgsMTUgKzUxLDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIElTT1dl
YlZUVEN1ZTsKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTsKLWNsYXNzIFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uOworY2xhc3MgVmlkZW9MYXllck1hbmFnZXI7CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTsKLWNsYXNz
IFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CiBjbGFzcyBVc2VyRGF0YTsKLWNsYXNzIFZpZGVvVHJh
Y2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb247CiAKQEAgLTEwMSw3
ICsxMDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7Ci0gICAg
dm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICNlbmRpZgogCiAgICAgdm9pZCBhZGRS
ZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CkBAIC0xNDksMTQgKzE0OCwxOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sKTsKICNl
bmRpZgogCitwcml2YXRlOgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3Qg
TG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAqbV9sb2dnZXI7IH0KICAgICBj
b25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlIjsgfQogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihtX2xvZ0lk
ZW50aWZpZXIpOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFs
OworCisgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCog
bV9sb2dJZGVudGlmaWVyOwogI2VuZGlmCiAKLXByaXZhdGU6CiAgICAgdm9pZCBsb2FkKGNvbnN0
IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7
CiAgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkg
ZmluYWw7CiAKQEAgLTMyNCwxMSArMzI3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91
bGRDb250aW51ZUFmdGVyS2V5TmVlZGVkKGJvb2wpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29s
IHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb247IH0KLSNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbDsK
ICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKikgZmluYWw7CiAgICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgZmlu
YWw7Ci0jZW5kaWYKKwogICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogCiAgICAgdm9p
ZCBiZWdpblNpbXVsYXRlZEhEQ1BFcnJvcigpIGZpbmFsOwpAQCAtMzU5LDEzICszNjEsMTEgQEAg
cHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIg
fTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21l
ZGlhUmVzb3VyY2VMb2FkZXI7Ci0gICAgYm9vbCBtX3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24geyBmYWxzZSB9OwotICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIgbV92aWRlb0lubGlu
ZUxheWVyOwotICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIgbV92aWRlb0Z1bGxzY3JlZW5MYXll
cjsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpWaWRlb0xheWVyTWFuYWdlcj4gbV92aWRlb0xheWVyTWFuYWdlcjsKICNlbmRpZgotICAgIE9w
dGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29u
dGV4dElkOworICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIgbV92aWRlb0xheWVyOworCiAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmll
cjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CkBAIC0zODgs
MTIgKzM4OCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fc2Vla2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ3VycmVudFBsYXliYWNrVGFy
Z2V0V2lyZWxlc3MgeyBmYWxzZSB9OwotCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAg
UmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7Ci0gICAgY29uc3Qgdm9pZCogbV9sb2dJZGVu
dGlmaWVyOwotI2VuZGlmCi0KICAgICBib29sIG1faW52YWxpZCB7IGZhbHNlIH07CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQppbmRleCA0YTg0
YzI1MWRiYjczNzBlMzFjOTA4OTQ3YjYzZTRkNDlkYWNkZjY4Li4wMDJjMDUwODEzNWUwNjNmMWYy
NWRiYWU2NDAzYTE2YjgyNTNlMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW0KQEAgLTI4LDkzICsyOCwzMyBAQAogCiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKIAotI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KKyNpbXBvcnQg
PFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L1F1YXJ0ekNvcmVTUEkuaD4KLSNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNpZiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCi0KLVBsYXRmb3JtTGF5ZXJDb250YWluZXIgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGVWaWRlb0Z1bGxzY3JlZW5MYXllcigpCi17Ci0gICAgaWYg
KCFtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKSB7Ci0gICAgICAgIG1fdmlk
ZW9GdWxsc2NyZWVuTGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwotICAg
ICAgICBhdXRvIHN1YmxheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1M
YXllckZvckhvc3RpbmdDb250ZXh0KG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZC52
YWx1ZSgpKTsKLSAgICAgICAgW3N1YmxheWVyIHNldE5hbWU6QCJWaWRlb0Z1bGxzY3JlZW5MYXll
clN1YmxheWVyIl07Ci0gICAgICAgIFtzdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSgw
LCAwKV07Ci0gICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGFkZFN1YmxheWVyOnN1Ymxh
eWVyLmdldCgpXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsK
LX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQotewotICAgIGF1dG8gY29udGV4dCA9IFttX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyIGNvbnRleHRdOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwotICAgIFtDQVRyYW5zYWN0aW9u
IHNldERpc2FibGVBY3Rpb25zOllFU107Ci0KLSAgICBNYWNoU2VuZFJpZ2h0IGZlbmNlU2VuZFJp
Z2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW2NvbnRleHQgY3JlYXRlRmVuY2VQb3J0XSk7Ci0g
ICAgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQocmVjdCwgZmVuY2VTZW5kUmlnaHQpOwot
Ci0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLQotICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMo
KTsKLX0KLQorTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyKQor
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIDogbV9sb2dnZXIoJnBsYXllci0+bWVkaWFQ
bGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVy
TG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbiogcmVwcmVzZW50YXRpb24pCisgICAgLCBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21l
ZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQorICAgICwg
bV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9n
Z2VyKCksIGxvZ0lkZW50aWZpZXIoKSkpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAs
IG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQorICAgICwgbV9pZChw
bGF5ZXJJZGVudGlmaWVyKQogewotI2lmICFFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
Ci0gICAgVU5VU0VEX1BBUkFNKHJlcHJlc2VudGF0aW9uKTsKLSNlbHNlCi0gICAgUGxhdGZvcm1M
YXllciogcmVwcmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRp
b24tPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKLQotICAgIGlmIChyZXByZXNlbnRhdGlvbkxheWVy
ID09IG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikgewotICAgICAgICBzeW5jVGV4dFRy
YWNrQm91bmRzKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlv
biBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQot
ICAgIGlmIChtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0gICAgICAgIFttX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwotCi0gICAgbV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb25MYXllcjsKLQotICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyICYmIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25M
YXllcikgewotICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Ci0gICAgICAgIFttX3ZpZGVv
RnVsbHNjcmVlbkxheWVyIGFkZFN1YmxheWVyOm1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXll
ci5nZXQoKV07Ci0gICAgfQotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLSNlbmRpZgor
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c3luY1RleHRUcmFja0JvdW5kcygpCi17CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQotICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5MYXllciB8fCAhbV90ZXh0
VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbQ0FUcmFu
c2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVT
XTsKLQotICAgIFttX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgc2V0RnJhbWU6bV92aWRl
b0Z1bGxzY3JlZW5MYXllci5nZXQoKS5ib3VuZHNdOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29t
bWl0XTsKLSNlbmRpZgorUGxhdGZvcm1MYXllckNvbnRhaW5lciBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCkKK3sKKyAgICByZXR1cm4gYWRvcHRO
UyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAo=
</data>
<flag name="commit-queue"
          id="425744"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409918</attachid>
            <date>2020-09-28 13:58:53 -0700</date>
            <delta_ts>2020-09-28 15:54:05 -0700</delta_ts>
            <desc>Fix build failures on the GTK and WPE ports</desc>
            <filename>bug-216995-20200928135853.patch</filename>
            <type>text/plain</type>
            <size>50908</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uODdjMmM2OGYyODJjN2UxNzBjYmQ4ZTk4MzNjYTY1
MmRkMDNmN2E0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyTWFuYWdlcjo6flZpZGVvTGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVy
TWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0lubGluZUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKToKKwogMjAyMC0wOS0yOCAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzMyOSk6
IENyYXNoIGR1ZSB0byBudWxsLWRlcmVmZXJlbmNlIG9mIGZyYW1lIHBvaW50ZXIgaW4gRE9NU2Vs
ZWN0aW9uOjpyYW5nZUNvdW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3ZWFhMTM2YmVkMTczYjM5NzkwNmRjYjIx
NjY3MGRlZTEzZjA1YzEuLjlmNDc3OGM5N2Y3ZDhmNWJmM2U0YjY3NWEwZTVkMTE2NDk4NTA0M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDktMjggIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIFVzZSBWaWRl
b0xheWVyTWFuYWdlciB0byBtYW5hZ2UgbGF5ZXJzIG9mIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2OTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNj
cmVlbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OmV4aXRGdWxsc2NyZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnN5bmNUZXh0VHJh
Y2tCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOiBEZWxldGVkLgorCiAyMDIwLTA5LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgb3VyIGNh
bGxzIHRvIEFWQ2FwdHVyZURldmljZSByZXF1ZXN0QWNjZXNzRm9yTWVkaWFUeXBlIGRvIHByb2Nl
c3Npbmcgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA3ZThkNTM1NTE4
YjE1MDBmMzNkZGRiOWQyYjdiMjAwNWMzNjE3YzRlLi4wNzU4MTg0YmU4M2JkZDMxNDY3MDY1NzA2
ZGFkOTJjMGZkNDk1YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyMTMsOSArMTIxMywxMSBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UYWJTaXplLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNr
aW5nLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
TGF5ZXJNYW5hZ2VyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhDYWNoZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvV2luZFJ1bGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDc1ZjlkNTU4YTYyM2NlNTYwYjMxY2IyYmY3YzRiYjlhZDhkZTk5
MjMuLmQzNTA3MTRiNTBjZjQ1Y2FhODYzZjY1MWI1M2FiOTJhMDYxOTJjZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMCw3
ICs2MzAsMTEgQEAKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdp
bmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURF
RjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDlGMEZDMTIxMjIw
MjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMURBQjMx
MTIyNTFENkJGMzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEIzMUExMjM3OURDODMwMDg4
M0ZERSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMURBQjMxMTQyNTFENzI1QzAwRkM5NDg1IC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzEx
NTI1MUQ3NERCMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0
QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTFERDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFD
NTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQkxREY3
RTgxRjI1MUE5RTA2MDBEQjhGNjEgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERDFFNTI1MTY3QkE1NjQw
MENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGMzZFQTlDMUUyMUJBMTcwMDYyMUUyNSAv
KiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNr
Z3JvdW5kVGFza0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xs
ZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRjcyQkYwOTE4N0ZENDI3MDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1v
cnlIYW5kbGVySU9TLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTE1ODgsNyArMTU5Miw2IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAv
KiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdG
RDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3
Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1
MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9MYXll
ck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5t
bSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1
QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEz
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERF
MzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFF
RUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NzI3
LDYgKzY3MzAsNyBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1
cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Vu
dGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJC
NjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZEMjExQkExMkEwMDRCNzgwRSAvKiBOYXZpZ2F0
b3JTaGFyZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9yU2hhcmUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRjIxMUJBODQxMDA0Qjc4MEUgLyog
U2hhcmVEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFyZURhdGEuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODcxOSw4ICs4NzIzLDggQEAKIAkJNTJCMEQ0QkYx
QzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1
MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyQ0IxMURCMjJGRERCMkUwMDlGMEE2NCAvKiBXSExTTERlZmF1bHRE
ZWxldGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xEZWZhdWx0RGVsZXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBW
aWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKLQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdl
ck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk1MkQ1
QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMg
LyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE2MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjYxOTYsNiArMjYyMDAsNyBAQAogCQkJCUU0QUZDRkE0MERB
RjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAw
MjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3
QURCIC8qIFZlbG9jaXR5RGF0YS5oICovLAorCQkJCTFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAv
KiBWaWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAv
KiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLAogCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAv
KiBWUDlVdGlsaXRpZXMuY3BwICovLAogCQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBW
UDlVdGlsaXRpZXMuaCAqLywKQEAgLTI4NDk1LDEwICsyODUwMCw2IEBACiAJCUU0RkI0QjFFMjM5
NTM1NkYwMDNDMzM2QSAvKiBpbnRlZ3JhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCi0JCQkJRTRBNjY0QzcyNTIxQjc3OTAwNzA4MURDIC8qIExheW91dElu
dGVncmF0aW9uUnVuSXRlcmF0b3IuY3BwICovLAotCQkJCUU0QTY2NEM2MjUyMUI3NzgwMDcwODFE
QyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggKi8sCi0JCQkJRTRBNjY0QzUyNTIx
Qjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgg
Ki8sCi0JCQkJRTRBNjY0QzQyNTIxQjc3NzAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JNb2Rlcm5QYXRoLmggKi8sCiAJCQkJRTQxODAyNTYyM0Q0NTRCNTAwRkZCMDcxIC8q
IExheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAgKi8sCiAJCQkJRTQxODAyNTMyM0Q0NTQ5QTAw
RkZCMDcxIC8qIExheW91dEludGVncmF0aW9uQm94VHJlZS5oICovLAogCQkJCUU0MDNCNzlGMjUx
QjExOEIwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCAqLywKQEAgLTI4
NTA3LDYgKzI4NTA4LDEwIEBACiAJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIExheW91
dEludGVncmF0aW9uTGluZUxheW91dC5oICovLAogCQkJCUU0MzEyQUI1MjRCMzI2NTYwMDY3ODM0
OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3BwICovLAogCQkJCUU0MzEyQUI3MjRC
MzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCAqLywKKwkJCQlF
NEE2NjRDNzI1MjFCNzc5MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5j
cHAgKi8sCisJCQkJRTRBNjY0QzYyNTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9u
UnVuSXRlcmF0b3IuaCAqLywKKwkJCQlFNEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaCAqLywKKwkJCQlFNEE2NjRDNDI1MjFC
Nzc3MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gaW50ZWdyYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMzI0NDcsNyArMzI0NTIsNiBAQAogCQkJCTA3OTY5REIwMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ0RUTUZTZW5kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTY5REIyMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ0RUTUZUb25lQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3OTY5REI2MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRTRBNjY0Q0UyNTIxRDRDOTAwNzA4MURDIC8qIExheW91dEludGVncmF0
aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZEQ0I0QzFF
NzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkRDQjRFMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUdhdGhlcmluZ1N0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3OTRFQzE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJ
Y2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzI0OTMsNyArMzI0OTcsNiBAQAogCQkJCUI1
OURENkE1MTE5MDJBNjIwMDdFOTY4NCAvKiBKU1NRTFN0YXRlbWVudENhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNTlERDZBOTExOTAyQTcxMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRF
cnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzgyNDMyQTBEMENFOEEyMDA0NjBD
OEYgLyogSlNTUUxUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTRBNjY0Q0MyNTIx
RDRBRjAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUI1OURENjlEMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkExMTE5MDJBNTIwMDdFOTY4NCAvKiBK
U1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5
RDMwOURBMkI0ODAwOTYzM0E3IC8qIEpTU3RhdGljUmFuZ2UuaCBpbiBIZWFkZXJzICovLApAQCAt
MzI3ODUsNiArMzI3ODgsOSBAQAogCQkJCUU0MDNCN0EyMjUxQjExOTMwMDE5RTgwMCAvKiBMYXlv
dXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFCQUJERDIzNjA4
OEZFMDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDAzQjdBMzI1MUIxMUMxMDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25QYWdp
bmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTRBNjY0
Q0YyNTIxRDRFMjAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQ
YXRoLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTExMzEwQ0Y0MjBCQTRBM0QwMDY1QThEMCAvKiBMYXlvdXRJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZGQTRDMDEyM0YyRkVEOTAwN0U0RUJDIC8qIExheW91dExpbmVCcmVha0JveC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxRDcyRjYxNUZFNjk1MzAwQzRDMDdFIC8qIExheW91dE1p
bGVzdG9uZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjk2Myw3ICszMjk2OSw2IEBACiAJCQkJQzk2
RjVFQzgxQjU4NzIyNjAwOTFFQTlEIC8qIE1lZGlhU2Vzc2lvbkludGVycnVwdGlvblByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTZGNUVDNTFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFT
ZXNzaW9uSW50ZXJydXB0aW9uUHJvdmlkZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5MEY2
NTU2MUIyMjUzQkUwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKLQkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5J
dGVyYXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxN0Y3QUVGMjEzOUJGNkYw
MEZCQTdFQyAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDOUQ4NTFGMDFCMzlEQzc4MDA4NTA2MkUgLyogTWVkaWFTZXNzaW9u
TWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzODEsNiArMzQzODYsOCBAQAogCQkJCTUy
QjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJCTUyRDVBMUE3MUM1NzQ4OUQwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTgxQzU3NDhBMzAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxREFCMzExNDI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTgzREIyMTgzQzQ0MDYwMDMxRUFBMyAvKiBW
aWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc1N0IxM0UyMTRBRTc5
OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlEODI3QTFD
N0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCBpbiBIZWFkZXJzICovLApA
QCAtMzQ1NTcsNiArMzQ1NjQsNyBAQAogCQkJCTFGODc1NkIyMUUyMkMzMzUwMDQyQzQwRCAvKiBX
ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxREVB
NDU2MUIzOUY0RDkwMEY3NzE3OCAvKiBXZWJTeXN0ZW1CYWNrZHJvcExheWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU4MEZBMzE0OTY5MzkxMDBGQjVCRDggLyogV2ViVGlsZWRCYWNraW5nTGF5
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEQUIzMTEyMjUxRDZCRjMwMEZDOTQ4NSAvKiBXZWJW
aWRlb0NvbnRhaW5lckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjQyQjMxRDE4ODExOTFC
MDAyNzhBQUMgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRDdEQTBGMjI0MzVFQjE5MDBGMDQ4RDEgLyogV2ViVmlld1Zpc3VhbElkZW50
aWZpY2F0aW9uT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjEyMTcxRjYxNkE4Q0YwQjAw
MDA1M0NBIC8qIFdlYlZUVEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzU4MjUsNyArMzU4
MzMsNyBAQAogCQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDkyOCAvKiBVc2VyTWVzc2FnZUhhbmRs
ZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNzNGQjA3MTkxRUY0MTcwMDdE
RTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTNGQkM0QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUyRDVBMThGMUM1NDU5MjMwMERFMzRBMyAvKiBW
aWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxREQzQjRDNjI1MURB
MEI4MDA2OUIyNEEgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0QzMzZGNjcxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDhCNUE0MjE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNkY5
QTgzODE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCmluZGV4IDgxZThjMmJjZmE3Zjc3Y2NmMzg2
M2RlNzE5MzdlMmFiMzA3MTJiYzYuLjRjNWUzMjNmNGE1NTRlZTlmMmUxNDYwM2MxODYwYTY4NjY1
NTEzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRU
cmFja1JlcHJlc2VudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uaCIKLQogI2luY2x1ZGUgIkludFJlY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uLmgKaW5kZXggMzQxYjIzMmFlMzA4ZDQyNGRmNzFlYzMyZDY0YzRiYTA0
Njc0NDgyYy4uZDcyOGRjYmM0NWIyZTYyMjVhNmQyZjdhMjBlYmMyOTgzMjI5N2NiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbi5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCi0j
ZGVmaW5lIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5B
QkxFKFZJREVPKQogCkBAIC02MSw1ICs2MCwzIEBAIHB1YmxpYzoKIH0KIAogI2VuZGlmCi0KLSNl
bmRpZiAvLyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjk3
NTRiZmJiOTY1MmIwMGQyNmFiZmQ0OTE2YzhhOGQyMmE5MmQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJOYXRp
dmVJbWFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFJlY3Q7CitjbGFz
cyBJbnRTaXplOworCitjbGFzcyBWaWRlb0xheWVyTWFuYWdlciB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+VmlkZW9MYXllck1hbmFnZXIoKSB7IH0KKworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXll
ciogdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlk
ZW9MYXllcihQbGF0Zm9ybUxheWVyKiwgSW50U2l6ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWREZXN0cm95VmlkZW9MYXllcigpID0gMDsKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJ
T05fTU9ERSkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVy
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIs
IE5hdGl2ZUltYWdlUHRyKSA9IDA7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlkZW9GdWxsc2Ny
ZWVuRnJhbWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKEZsb2F0UmVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxz
Y3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgPSAwOworI2VuZGlmCisKKyAgICB2aXJ0
dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQbGF0Zm9ybUxh
eWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgPSAwOwor
fTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMu
aAppbmRleCAyMTI4NzBhODg2NDE2YWMzM2M4OTNkOTlmYWVhZTI3MmE3NTE0NThiLi42Yjk3NzJl
OTMzNzRjMzg5YWEyZmEzYTMzNTk4OGUzM2YwNmUxNTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
YlZpZGVvQ29udGFpbmVyTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNs
dWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC0zNywzMiArMzgsNDQgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKLQotY2xhc3MgVmlk
ZW9MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGljIExvZ2dlckhlbHBlciB7CitjbGFzcyBW
aWRlb0xheWVyTWFuYWdlck9iakMgZmluYWwKKyAgICA6IHB1YmxpYyBWaWRlb0xheWVyTWFuYWdl
cgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHVibGljIExvZ2dlckhlbHBlcgor
I2VuZGlmCit7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9MYXllck1hbmFnZXJPYmpD
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKwogcHVibGljOgotICAgIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25zdCB2b2lkKik7CisjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECisgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJPYmpDKGNv
bnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKKyNlbHNlCisgICAgV0VCQ09SRV9FWFBPUlQgVmlk
ZW9MYXllck1hbmFnZXJPYmpDKCk7CisjZW5kaWYKIAotICAgIFBsYXRmb3JtTGF5ZXIgKnZpZGVv
SW5saW5lTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7IH0K
KyAgICBXRUJDT1JFX0VYUE9SVCB+VmlkZW9MYXllck1hbmFnZXJPYmpDKCk7CiAKLSAgICB2b2lk
IHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXplKTsKLSAg
ICB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZv
cm1MYXllciogdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0IGZpbmFsOworCisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplIGNvbnRlbnRT
aXplKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVy
KCkgZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgUGxh
dGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyLCBOYXRpdmVJbWFnZVB0cik7Ci0gICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1l
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQotICAgIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKLSAgICB2b2lkIHVwZGF0ZVZpZGVvRnVs
bHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQ
bGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IGZpbmFsOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllcios
IFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0
cikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBk
YXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOwogI2Vu
ZGlmCiAKLSAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdDsK
LSAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIoUGxhdGZvcm1MYXllciop
OwotICAgIHZvaWQgc3luY1RleHRUcmFja0JvdW5kcygpOworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQbGF0Zm9y
bUxheWVyKikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5jVGV4dFRyYWNrQm91
bmRzKCkgZmluYWw7CiAKIHByaXZhdGU6CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdl
dCgpOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fbG9nSWRlbnRpZmllcjsgfQogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJWaWRlb0xheWVyTWFuYWdlck9iakMiOyB9CkBAIC03MCw2ICs4
Myw3IEBAIHByaXZhdGU6CiAKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBj
b25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisjZW5kaWYKIAogICAgIFJldGFpblB0cjxXZWJW
aWRlb0NvbnRhaW5lckxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAjaWYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLm1tCmluZGV4IGQ1MGQ3MjM2OGFjZTRiNjQxOWE3NTYwYTExNGJiN2E2OTRm
NzM0NTMuLjBhMzU2MmI5Yjg2MTE2MDhiZmFkYWYxYWZhYzgxZTE4YzIyZDJlOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Zp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAgLTQzLDEx
ICs0MywyNiBAQCBPQkpDX0NMQVNTIEFWUGxheWVyTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogVmlkZW9MYXllck1hbmFnZXJPYmpDOjpW
aWRlb0xheWVyTWFuYWdlck9iakMoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIpCiAgICAgOiBtX2xvZ2dlcihsb2dnZXIpCiAgICAgLCBtX2xvZ0lkZW50aWZp
ZXIobG9nSWRlbnRpZmllcikKIHsKIH0KKyNlbHNlCitWaWRlb0xheWVyTWFuYWdlck9iakM6OlZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQygpCit7Cit9CisjZW5kaWYKKworVmlkZW9MYXllck1hbmFnZXJP
YmpDOjp+VmlkZW9MYXllck1hbmFnZXJPYmpDKCkKK3sKK30KKworUGxhdGZvcm1MYXllciogVmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0lubGluZUxheWVyKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOworfQogCiB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJbnRTaXplIGNv
bnRlbnRTaXplKQogewpAQCAtODcsMTAgKzEwMiw5IEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJP
YmpDOjpkaWREZXN0cm95VmlkZW9MYXllcigpCiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiAKLXZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxz
Y3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK1BsYXRmb3JtTGF5ZXIqIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdAogewotICAg
IGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCi0gICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0
Q29udGVudHM6KF9fYnJpZGdlIGlkKWltYWdlLmdldCgpXTsKKyAgICByZXR1cm4gbV92aWRlb0Z1
bGxzY3JlZW5MYXllci5nZXQoKTsKIH0KIAogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVy
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQ
dHIgY3VycmVudEltYWdlKQpAQCAtMTQwLDYgKzE1NCwxMSBAQCB2b2lkIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxs
c2NyZQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKK0Zsb2F0UmVjdCBWaWRlb0xh
eWVyTWFuYWdlck9iakM6OnZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKK30KKwogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFt
ZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHZpZGVvRnVsbHNjcmVlbkZyYW1l
LngoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUueSgpLCAiLCAiLCB2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZS53aWR0aCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSk7CkBA
IC0xNTIsNiArMTcxLDEyIEBAIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhCiAgICAgc3luY1RleHRU
cmFja0JvdW5kcygpOwogfQogCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlk
ZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCit7CisgICAgaWYg
KG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250
ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOworfQorCiAjZW5kaWYKIAogYm9vbCBWaWRl
b0xheWVyTWFuYWdlck9iakM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKaW5kZXggMjY1YjdlMmQ4NTQyODRkZTc5ZTc2ZGQ5YWU4MWExZjNjMDll
MGJmNC4uNDFiNTM2NmY4YzRjOTQ1NGMzMTU4YTFjNWE2MzdjNmM1MDM1NjgwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRDb25maWd1
cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwogCi0gICAgdm9pZCBwcmVw
YXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5n
LCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBP
cHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNjcmVlbkxheWVySG9zdGluZ0Nv
bnRleHRJZCk+JiYpOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOwogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRl
cmluZygpOwogCiAgICAgdm9pZCBsb2FkKFVSTCYmLCBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mJik+
JiYpOwpAQCAtMTI0LDggKzEyNCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpc2libGUoYm9v
bCk7CiAgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wpOwogI2lmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4oQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdy
YXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICNlbmRpZgog
ICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CkBAIC0xMzgs
OSArMTM2LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRW
aWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6
TWFjaFNlbmRSaWdodCYpOwotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAg
ICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwotI2VuZGlmCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDBhOWI5ODE2MTA3YmViYmFjZWExM2M1MjViYTE4YjdkYmY2NWUwNzAu
LjU5YTBhY2FhYTFmNGNjNjEzMDc1NTI2ZjA5MzU1MTk0ODJlZjFhOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50
ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNl
cnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNj
YWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGlubGluZUxh
eWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0
SUQ+IGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisgICAgUHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJl
cGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUpIC0+IChPcHRpb25hbDxX
ZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElk
KSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRpb25hbDxXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6Q29udGVudFR5cGUgY29u
dGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKICAgICBDYW5j
ZWxMb2FkKCkKQEAgLTY4LDE0ICs2OCw2IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVy
UHJveHkgTm90UmVmQ291bnRlZCB7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRWaWRl
b0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1h
Y2hTZW5kUmlnaHQpCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIFNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0LCBNYWNo
U2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIEVudGVyRnVsbHNjcmVlbigpIC0+ICgpIEFzeW5j
Ci0gICAgRXhpdEZ1bGxzY3JlZW4oKSAtPiAoKSBBc3luYwogI2VuZGlmCiAKICAgICAjIFBhaW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQppbmRleCBkOTgyNGU4MjNhNjA5
YTY3M2Q0MDEyNTNlODg0NDlhZTg3ODA2OWE3Li41OWY4ZTUwOWYwYmQxZDVjYTRhNGM4YjI0OTIx
NWVmNTFhMTgwZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
Y29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAg
LTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5l
TGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYg
ZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250
ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29u
dGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgbV9wbGF5ZXItPnNldFByaXZhdGVCcm93c2luZ01vZGUocHJpdmF0ZU1vZGUp
OwogICAgIG1fcGxheWVyLT5zZXRQcmVsb2FkKHByZWxvYWQpOwpAQCAtNDUsMTEgKzQ1LDcgQEAg
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2
YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWEKICAgICBtX3ZpZGVvQ29udGVudFNjYWxlID0gdmlkZW9D
b250ZW50U2NhbGU7CiAgICAgaWYgKCFtX2lubGluZUxheWVySG9zdGluZ0NvbnRleHQpCiAgICAg
ICAgIG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNy
ZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpCi0gICAgaWYgKCFtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0KQot
ICAgICAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29u
dGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2VzcygpOwotICAgIGNvbXBsZXRpb25I
YW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIG1fZnVsbHNj
cmVlbkxheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKLSNlbmRpZgorICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOwog
fQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0Zy
YW1lQXZhaWxhYmxlKCkKQEAgLTc0LDMwICs3MCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNp
CiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2Ny
ZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBhdXRvIHZpZGVvRnVsbHNjcmVlbkxheWVyID0gbV9wbGF5ZXItPmNyZWF0ZVZpZGVvRnVsbHNj
cmVlbkxheWVyKCk7Ci0gICAgW3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldE5hbWU6QCJXZWIgVmlk
ZW8gRnVsbHNjcmVlbiBMYXllciAocmVtb3RlKSJdOwotICAgIFt2aWRlb0Z1bGxzY3JlZW5MYXll
ciBzZXRQb3NpdGlvbjpDR1BvaW50WmVyb107Ci0gICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5n
Q29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpKTsKLQotICAg
IG1fcGxheWVyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllci5n
ZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5
ZXIobnVsbHB0ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIG1fZnVsbHNjcmVl
bkxheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihudWxscHRyKTsKLX0KLQotdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgbWFj
aFNlbmRSaWdodCkKLXsKLSAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0LT5zZXRG
ZW5jZVBvcnQobWFjaFNlbmRSaWdodC5zZW5kUmlnaHQoKSk7Ci0gICAgbV9wbGF5ZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIuY3BwCmlu
ZGV4IDlmMGJmYjgyNjAyY2ViMTVlNWFjN2NmZjQ1ZmYxODFjNzRlMTBjNjYuLjdjOTI2M2M4Nzdh
ZDZlMDMwZTBiZmQ3YzgxYTQ3ZjQ5NGE1YmNmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1v
dGVNZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9y
UGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwg
Ym9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJ
ZCwgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGZ1bGxzY3JlZW5MYXllckhvc3Rp
bmdDb250ZXh0SWQpPiYmKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9y
UGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwg
Ym9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJ
ZCk+JiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTQ4LDE4ICs0OCw2IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdl
ZCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVu
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRG
dWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBhMzlmNWQ2M2QxMmRm
ZDc2NDMwNmZjODI3NTUzMTQxZWZlZDZlZGNiLi5iMWZlZTFiYWY4N2VmM2QxN2E5YzEyZjFmMjMz
MjQ3YjgzZDFjODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0yNCwxMSAr
MjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgiCiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0jaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0
ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lD
RE0uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCkBAIC0zNiw5ICszNSw3
IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAj
aW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgotI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5
Vmlld0lubGluZXMuaD4KQEAgLTQ4LDYgKzQ1LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGltZVJhbmdlcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdo
dC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC05MSwxOCArOTAsMjkgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgwKQogI2VuZGlmCiAKKyNpZiAhUExBVEZP
Uk0oQ09DT0EpCiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIp
Ci0gICAgOiBtX3BsYXllcihwbGF5ZXIpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
OiBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVu
dGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKKyAgICAs
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNy
ZWF0ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1f
cmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5
ZXJJZGVudGlmaWVyKQotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgICwgbV9sb2dnZXIo
JnBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKLSAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5
ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKQoreworICAgIElORk9fTE9HKExPR0lERU5U
SUZJRVIpOworfQogI2VuZGlmCisKK01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6fk1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSgpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVv
TGF5ZXIoKTsKKyNlbmRpZgorICAgIG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRpYVBsYXllciht
X2lkKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldENvbmZpZ3VyYXRp
b24oUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKQEAgLTExMiwy
NiArMTIyLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0
aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYmCiAgICAgbV9wbGF5ZXItPm1lZGlh
RW5naW5lVXBkYXRlZCgpOwogfQogCi1NZWRpYVBsYXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUoKQotewotICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwotICAg
IG1fbWFuYWdlci5kZWxldGVSZW1vdGVNZWRpYVBsYXllcihtX2lkKTsKLX0KLQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29s
IHByZXBhcmUpCiB7CiAgICAgYXV0byBzY2FsZSA9IG1fcGxheWVyLT5wbGF5ZXJDb250ZW50c1Nj
YWxlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxheWJhY2socHJpdmF0ZU1vZGUsIHBy
ZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2FsZSksIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQsIGF1
dG8gZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgY29ubmVj
dGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6UHJlcGFyZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRj
aCwgcHJlcGFyZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNd
KGF1dG8gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoIWlubGluZUxh
eWVySG9zdGluZ0NvbnRleHRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX3Zp
ZGVvSW5saW5lTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGlubGluZUxheWVy
SG9zdGluZ0NvbnRleHRJZC52YWx1ZSgpKTsKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCi0gICAgICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCA9IGZ1bGxz
Y3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQ7CisgICAgICAgIG1fdmlkZW9MYXllciA9IGNyZWF0
ZVZpZGVvTGF5ZXJSZW1vdGUodGhpcywgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVl
KCkpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBJbnRTaXplIGRlZmF1bHRTaXplID0g
c25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsK
KyAgICAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3ZpZGVvTGF5ZXIu
Z2V0KCksIGRlZmF1bHRTaXplKTsKICNlbmRpZgogICAgIH0sIG1faWQpOwogfQpAQCAtNjQzLDMy
ICs2NDgsMjAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoTWVkaWFTdHJl
YW1Qcml2YXRlJikKIAogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
bGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdl
dCgpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2Vy
LT52aWRlb0lubGluZUxheWVyKCk7CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlm
CiB9CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVy
KiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgaWYgKCF2aWRlb0Z1bGxzY3JlZW5MYXllcikgewotICAgICAgICBj
b25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpFeGl0RnVsbHNjcmVlbigpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICAgICAgbV9yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uID0g
ZmFsc2U7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICB9LCBtX2lk
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChtX3ZpZGVvRnVsbHNjcmVl
bkxheWVyLmdldCgpID09IHZpZGVvRnVsbHNjcmVlbkxheWVyKTsKLSAgICBjb25uZWN0aW9uKCku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpFbnRl
ckZ1bGxzY3JlZW4oKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewot
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1f
cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IHRydWU7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfSwgbV9pZCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV92
aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVu
TGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBudWxscHRyKTsKKyNlbmRpZgogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5s
aW5lSW1hZ2UoKQpAQCAtNjc2LDkgKzY2OSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKQogICAgIGNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpVcGRhdGVWaWRlb0Z1bGxz
Y3JlZW5JbmxpbmVJbWFnZSgpLCBtX2lkKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgcmVjdCwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBzZW5kUmlnaHQpCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29yZTo6
RmxvYXRSZWN0IHJlY3QpCiB7Ci0gICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OlNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKHJlY3QsIHNl
bmRSaWdodCksIG1faWQpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgIndpZHRoID0gIiwgcmVjdC5zaXplKCkud2lkdGgoKSwgIiwgaGVpZ2h0ID0g
IiwgcmVjdC5zaXplKCkuaGVpZ2h0KCkpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6OlZpZGVvR3Jhdml0eSBncmF2aXR5KQpAQCAtMTAyMSw2ICsxMDE3LDMwIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRTaG91bGRDb250aW51ZUFmdGVyS2V5TmVl
ZGVkKGJvb2wgc2hvdWxkKQogfQogI2VuZGlmCiAKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdlci0+cmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
K30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1JlcHJlc2VudGF0aW9uKiByZXByZXNlbnRhdGlvbikK
K3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvKiByZXByZXNlbnRhdGlvbkxheWVyID0g
cmVwcmVzZW50YXRpb24gPyByZXByZXNlbnRhdGlvbi0+cGxhdGZvcm1MYXllcigpIDogbmlsOwor
ICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIo
cmVwcmVzZW50YXRpb25MYXllcik7CisjZW5kaWYKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKKyNlbmRpZgor
fQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dHJhY2tzQ2hhbmdlZCgpCiB7CiAg
ICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlRy
YWNrc0NoYW5nZWQoKSwgbV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA1MDdm
Yjg2NDI1NDExZDE5NWE4NDdkYjU3Y2U0NDg3NTFhMzlmNDU1Li5lYTgyZGYwY2VhNTNhMDNiZDgz
ZjRmNzQxMjYxMzcxMTc1MjQ3NTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI3
LDEzICsyNywxNiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQXVk
aW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJMYXllckhvc3RpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJT
dGF0ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRh
dGEuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC00OCwxNSArNTEsMTIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEdlbmVyaWNDdWVEYXRhOwogY2xhc3MgSVNPV2Vi
VlRUQ3VlOwogY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOwotY2xhc3MgVGV4
dFRyYWNrUmVwcmVzZW50YXRpb247CitjbGFzcyBWaWRlb0xheWVyTWFuYWdlcjsKIH0KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOwotY2xhc3Mg
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTsKIGNsYXNzIFVzZXJEYXRhOwotY2xhc3MgVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b247CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIApAQCAtMTAxLDcg
KzEwMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKLSAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwogI2VuZGlmCiAKICAgICB2b2lkIGFkZFJl
bW90ZUF1ZGlvVHJhY2soVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKQEAgLTE0OSwxNCArMTQ4LDE4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGJvb2wpOwogI2Vu
ZGlmCiAKK3ByaXZhdGU6CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBM
b2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICptX2xvZ2dlcjsgfQogICAgIGNv
bnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUiOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fbG9nSWRl
bnRpZmllcik7IH0KICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7
CisKKyAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBt
X2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIAotcHJpdmF0ZToKICAgICB2b2lkIGxvYWQoY29uc3Qg
VVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsK
ICAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKSBm
aW5hbDsKIApAQCAtMzI0LDExICszMjcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNob3Vs
ZENvbnRpbnVlQWZ0ZXJLZXlOZWVkZWQoYm9vbCkgZmluYWw7CiAjZW5kaWYKIAotICAgIGJvb2wg
cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsgfQotI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOwog
ICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVw
cmVzZW50YXRpb24qKSBmaW5hbDsKICAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5h
bDsKLSNlbmRpZgorCiAgICAgdm9pZCB0cmFja3NDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lk
IGJlZ2luU2ltdWxhdGVkSERDUEVycm9yKCkgZmluYWw7CkBAIC0zNTksMTMgKzM2MSwxMSBAQCBw
cml2YXRlOgogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9
OwogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVk
aWFSZXNvdXJjZUxvYWRlcjsKLSAgICBib29sIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbiB7IGZhbHNlIH07Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvSW5saW5l
TGF5ZXI7Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvRnVsbHNjcmVlbkxheWVy
OwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlZpZGVvTGF5ZXJNYW5hZ2VyPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwogI2VuZGlmCi0gICAgT3B0
aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250
ZXh0SWQ7CisgICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvTGF5ZXI7CisKICAgICBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVy
OwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKQEAgLTM4OCwx
MiArMzg4LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9zZWVraW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDdXJyZW50UGxheWJhY2tUYXJn
ZXRXaXJlbGVzcyB7IGZhbHNlIH07Ci0KLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBS
ZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50
aWZpZXI7Ci0jZW5kaWYKLQogICAgIGJvb2wgbV9pbnZhbGlkIHsgZmFsc2UgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmluZGV4IDRhODRj
MjUxZGJiNzM3MGUzMWM5MDg5NDdiNjNlNGQ0OWRhY2RmNjguLjAwMmMwNTA4MTM1ZTA2M2YxZjI1
ZGJhZTY0MDNhMTZiODI1M2UyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVDb2NvYS5tbQpAQCAtMjgsOTMgKzI4LDMzIEBACiAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQogCi0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5o
PgotI2ltcG9ydCA8V2ViQ29yZS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oPgorI2ltcG9ydCA8
V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
UXVhcnR6Q29yZVNQSS5oPgotI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLQotUGxhdGZvcm1MYXllckNvbnRhaW5lciBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCkKLXsKLSAgICBpZiAo
IW1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0KLSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgbV92aWRl
b0Z1bGxzY3JlZW5MYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7Ci0gICAg
ICAgIGF1dG8gc3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxh
eWVyRm9ySG9zdGluZ0NvbnRleHQobV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZh
bHVlKCkpOwotICAgICAgICBbc3VibGF5ZXIgc2V0TmFtZTpAIlZpZGVvRnVsbHNjcmVlbkxheWVy
U3VibGF5ZXIiXTsKLSAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKDAs
IDApXTsKLSAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6c3VibGF5
ZXIuZ2V0KCldOwotICAgIH0KLQotICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyOwot
fQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJh
bWUoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCi17Ci0gICAgYXV0byBjb250ZXh0ID0gW21fdmlk
ZW9GdWxsc2NyZWVuTGF5ZXIgY29udGV4dF07Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24g
c2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIE1hY2hTZW5kUmlnaHQgZmVuY2VTZW5kUmln
aHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsKLSAg
ICBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBmZW5jZVNlbmRSaWdodCk7Ci0K
LSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotCi0gICAgc3luY1RleHRUcmFja0JvdW5kcygp
OwotfQotCitNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCisj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgOiBtX2xvZ2dlcigmcGxheWVyLT5tZWRpYVBs
YXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJM
b2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1JlcHJlc2VudGF0
aW9uKiByZXByZXNlbnRhdGlvbikKKyAgICAsIG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1fbWVk
aWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9hZGVyKCkpCisgICAgLCBt
X3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9MYXllck1hbmFnZXJPYmpDPihsb2dn
ZXIoKSwgbG9nSWRlbnRpZmllcigpKSkKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwg
bV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX2lkKHBs
YXllcklkZW50aWZpZXIpCiB7Ci0jaWYgIUVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
LSAgICBVTlVTRURfUEFSQU0ocmVwcmVzZW50YXRpb24pOwotI2Vsc2UKLSAgICBQbGF0Zm9ybUxh
eWVyKiByZXByZXNlbnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb24gPyByZXByZXNlbnRhdGlv
bi0+cGxhdGZvcm1MYXllcigpIDogbmlsOwotCi0gICAgaWYgKHJlcHJlc2VudGF0aW9uTGF5ZXIg
PT0gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKSB7Ci0gICAgICAgIHN5bmNUZXh0VHJh
Y2tCb3VuZHMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFtDQVRyYW5zYWN0aW9u
IGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwotCi0g
ICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikKLSAgICAgICAgW21fdGV4dFRy
YWNrUmVwcmVzZW50YXRpb25MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0KLSAgICBtX3Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgPSByZXByZXNlbnRhdGlvbkxheWVyOwotCi0gICAg
aWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgJiYgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxh
eWVyKSB7Ci0gICAgICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLSAgICAgICAgW21fdmlkZW9G
dWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVy
LmdldCgpXTsKLSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotI2VuZGlmCisg
ICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKLXsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHx8ICFtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtDQVRyYW5z
YWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNd
OwotCi0gICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciBzZXRGcmFtZTptX3ZpZGVv
RnVsbHNjcmVlbkxheWVyLmdldCgpLmJvdW5kc107Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwotI2VuZGlmCitQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQoreworICAgIHJldHVybiBhZG9wdE5T
KFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409925</attachid>
            <date>2020-09-28 15:54:07 -0700</date>
            <delta_ts>2020-09-28 16:47:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216995-20200928155406.patch</filename>
            <type>text/plain</type>
            <size>52532</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uNzMyNjM2MTIzOTA2ZmUwNWVkOWQyMTQzZmYxZGE1
NWQ4YTBiY2I1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICBFeHBvcnQgVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24gYW5kIFZpZGVvTGF5ZXJNYW5hZ2VyLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgVmlkZW9MYXllck1hbmFnZXIuaC4KKyAgICAg
ICAgRXhwb3J0IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLCBXZWJWaWRlb0NvbnRhaW5lckxheWVy
IGFuZCBWaWRlb0xheWVyTWFuYWdlci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oOgorICAgICAgICBNaW5vciBjbGVhbi11cC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICBBZGQgdGhpcyBpbnRlcmZhY2Ugc28gdGhhdCB3ZSBjYW4gdXNlIFZpZGVvTGF5ZXJNYW5h
Z2VyIGluIHRoZSBDKysgY29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9JbmxpbmVMYXllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvRnVs
bHNjcmVlbkxheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQzo6dmlkZW9GdWxsc2NyZWVuRnJhbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSk6Cisg
ICAgICAgIEZpeCB0aGUgaXNzdWUgd2hlbiBSRUxFQVNFX0xPR19ESVNBQkxFRCBpcyBkZWZpbmVk
IGFuZCBhZGQgV0VCQ09SRV9FWFBPUlQKKyAgICAgICAgdG8gc29tZSBmdW5jdGlvbnMuCisKIDIw
MjAtMDktMjggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyNjczMjkpOiBDcmFzaCBkdWUgdG8gbnVsbC1kZXJlZmVyZW5jZSBvZiBmcmFtZSBw
b2ludGVyIGluIERPTVNlbGVjdGlvbjo6cmFuZ2VDb3VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4N2VhYTEzNmJl
ZDE3M2IzOTc5MDZkY2IyMTY2NzBkZWUxM2YwNWMxLi5kNWE4MmRhMGQ5NGE3YTdiNTMwOGQwY2E0
MWUwOTk2Mzc1MjcwYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA5LTI4ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQ
cm9jZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgcmVtb3RlIGhvc3RpbmcgbGF5ZXIgaW4g
dGhlIEdQVSBwcm9jZXNzIGZvciB2aWRlbyBmdWxsc2NyZWVuIGFuZAorICAgICAgICBwaWN0dXJl
LWluLXBpY3R1cmUuIFdlIGRvbid0IG5lZWQgdG8ga2VlcCBhIGxheWVyIGluIHRoZSBHUFUgcHJv
Y2VzcyBmb3IgdmlkZW8gZnVsbHNjcmVlbgorICAgICAgICBhbmQgcGljdHVyZS1pbi1waWN0dXJl
IGJlY2F1c2Ugbm8gcmVuZGVyaW5nIHdpbGwgYmUgZG9uZSBmb3IgdGhhdCBsYXllci4gV2UgZG9u
J3QgbmVlZAorICAgICAgICBFbnRlckZ1bGxzY3JlZW4sIEV4aXRGdWxsc2NyZWVuIGFuZCBTZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZCBJUEMgbWVzc2FnZXMgYWZ0ZXIgcmVtb3ZpbmcKKyAg
ICAgICAgdGhlIGxheWVyIGJlY2F1c2UgdGhlIFJlbW90ZU1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZSBpbiB0aGUgd2ViIHByb2Nlc3MgY2FuIGRlYWwgd2l0aAorICAgICAgICB0aGUgdmlkZW8gcHJl
c2VudGF0aW9uIG1vZGUgY2hhbmdlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
Y29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjplbnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpleGl0RnVsbHNjcmVlbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlIHVudXNl
ZCBJUEMgbWVzc2FnZXMgYWZ0ZXIgcmVtb3ZpbmcgdGhlIHJlbW90ZSBob3N0aW5nIGxheWVyIGZv
ciB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRpYVBsYXllclByb3h5
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6ZW50ZXJGdWxsc2NyZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICBEaXR0
by4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2spOgorICAgICAgICBS
ZW1vdmUgdGhlIGNvZGUgcmVsYXRlZCB0byB0aGUgcmVtb3RlIGhvc3RpbmcgbGF5ZXIgZm9yIHZp
ZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZS4KKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cik6CisgICAgICAgIFVzZSBWaWRlb0xheWVyTWFuYWdlciB0byBtYW5hZ2UgdGhlIGxheWVyLgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNj
cmVlbkZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFRleHRUcmFja1JlcHJl
c2VudGF0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6c3luY1RleHRUcmFja0JvdW5kcyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgTmVlZCB0byBtb3ZlIHRoZSBMb2dnZXIgdXAgaW4gdGhlIGRhdGEg
bWVtYmVycyBzbyB0aGF0IG90aGVyIG1lbWJlcnMgY2FuIHVzZSBpdAorICAgICAgICBpbiB0aGUg
Y29uc3RydWN0b3IsIGUuZy4sIFZpZGVvTGF5ZXJNYW5hZ2VyLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpj
cmVhdGVWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKTogRGVsZXRlZC4KKyAgICAgICAgU2ltcGxpZnkgdGhl
IGltcGxlbWVudGF0aW9uIGJ5IG1hbmFnaW5nIGxheWVycyB3aXRoIFZpZGVvTGF5ZXJNYW5hZ2Vy
LgorCiAyMDIwLTA5LTI4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNYWtlIHN1cmUgb3VyIGNhbGxzIHRvIEFWQ2FwdHVyZURldmljZSByZXF1ZXN0QWNjZXNz
Rm9yTWVkaWFUeXBlIGRvIHByb2Nlc3Npbmcgb24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA3ZThkNTM1NTE4YjE1MDBmMzNkZGRiOWQyYjdiMjAwNWMzNjE3YzRlLi4wNzU4
MTg0YmU4M2JkZDMxNDY3MDY1NzA2ZGFkOTJjMGZkNDk1YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTEyMTMsOSArMTIxMywxMSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9UYWJTaXplLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1By
aXZhdGVCYXNlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2VyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9WaWRlb1RyYWNrUHJpdmF0ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhDYWNoZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV2luZFJ1bGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1ZjlkNTU4YTYyM2NlNTYw
YjMxY2IyYmY3YzRiYjlhZDhkZTk5MjMuLmQzNTA3MTRiNTBjZjQ1Y2FhODYzZjY1MWI1M2FiOTJh
MDYxOTJjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTYzMCw3ICs2MzAsMTEgQEAKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkz
QjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQg
LyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjgg
LyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBp
Y3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0
Qjc4MEUgLyogU2hhcmVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMURBQjMxMTIyNTFENkJGMzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFp
bmVyTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEOEIzMUExMjM3OURDODMwMDg4M0ZERSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMURBQjMxMTQy
NTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyog
VmlkZW9MYXllck1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkxREFCMzExNTI1MUQ3NERCMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFn
ZXJPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3
QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFG
IC8qIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTFERDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tICovOyB9OwogCQkxREY3RTgxRjI1MUE5RTA2MDBEQjhGNjEgLyogVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERDFFNTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGMzZF
QTlDMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzZFQTlBMUUyMUJB
MTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjcyQkYwQjE4N0ZENDVDMDAw
OUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjcyQkYwOTE4N0ZENDI3MDAwOUJDQjMg
LyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODgsNyArMTU5Miw2IEBACiAJCTUyQjBE
NEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQ
bGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUy
QjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMxMUM1
N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MkQ1QTE4RjFDNTQ1OTIz
MDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5RkYwMjA3MDAxRUVC
NEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC02NzI3LDYgKzY3MzAsNyBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBD
QTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVy
UGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVy
ZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZp
ZGVvTGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQ
aWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVy
ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZEMjExQkEx
MkEwMDRCNzgwRSAvKiBOYXZpZ2F0b3JTaGFyZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TmF2aWdhdG9yU2hhcmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNG
RjIxMUJBODQxMDA0Qjc4MEUgLyogU2hhcmVEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTaGFyZURhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODcxOSw4ICs4
NzIzLDggQEAKIAkJNTJCMEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUy
QjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0IxMURCMjJGRERCMkUwMDlG
MEE2NCAvKiBXSExTTERlZmF1bHREZWxldGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xEZWZhdWx0
RGVsZXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUyRDVBMThEMUM1NDU5MDMw
MERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKLQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEz
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB9OworCQk1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1
QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9G
dWxsc2NyZWVuTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTUx
QzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE2MUM1NzQ4ODkw
MERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYxOTYsNiArMjYyMDAs
NyBAQAogCQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJ
CQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJ
MEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovLAorCQkJCTFEQUIz
MTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCUJFRjI5
RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLAogCQkJCUNENkZF
NUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAogCQkJCUNENkZFNUJB
MjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKQEAgLTI4NDk1LDEwICsyODUw
MCw2IEBACiAJCUU0RkI0QjFFMjM5NTM1NkYwMDNDMzM2QSAvKiBpbnRlZ3JhdGlvbiAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJRTRBNjY0QzcyNTIxQjc3
OTAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuY3BwICovLAotCQkJCUU0
QTY2NEM2MjUyMUI3NzgwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgg
Ki8sCi0JCQkJRTRBNjY0QzUyNTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JMZWdhY3lQYXRoLmggKi8sCi0JCQkJRTRBNjY0QzQyNTIxQjc3NzAwNzA4MURDIC8q
IExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmggKi8sCiAJCQkJRTQxODAy
NTYyM0Q0NTRCNTAwRkZCMDcxIC8qIExheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAgKi8sCiAJ
CQkJRTQxODAyNTMyM0Q0NTQ5QTAwRkZCMDcxIC8qIExheW91dEludGVncmF0aW9uQm94VHJlZS5o
ICovLAogCQkJCUU0MDNCNzlGMjUxQjExOEIwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlvbkNv
dmVyYWdlLmNwcCAqLywKQEAgLTI4NTA3LDYgKzI4NTA4LDEwIEBACiAJCQkJRTRBQkFCREIyMzYw
ODhGRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oICovLAogCQkJCUU0
MzEyQUI1MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3Bw
ICovLAogCQkJCUU0MzEyQUI3MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRlZ3JhdGlvblBh
Z2luYXRpb24uaCAqLywKKwkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3MDgxREMgLyogTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCisJCQkJRTRBNjY0QzYyNTIxQjc3ODAwNzA4MURD
IC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywKKwkJCQlFNEE2NjRDNTI1MjFC
Nzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaCAq
LywKKwkJCQlFNEE2NjRDNDI1MjFCNzc3MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5J
dGVyYXRvck1vZGVyblBhdGguaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW50ZWdyYXRpb247CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzI0NDcsNyArMzI0NTIsNiBAQAogCQkJCTA3
OTY5REIwMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0RUTUZTZW5kZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3OTY5REIyMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0RUTUZUb25lQ2hhbmdlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTY5REI2MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JU
Q0ljZUNhbmRpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTRBNjY0Q0UyNTIxRDRDOTAwNzA4
MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMTZEQ0I0QzFFNzkxMEE2MDAxQjVGODcgLyogSlNSVENJY2VDb25uZWN0aW9u
U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkRDQjRFMUU3OTEwQTYwMDFCNUY4NyAvKiBK
U1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3OTRFQzE5RUUz
NDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzI0OTMs
NyArMzI0OTcsNiBAQAogCQkJCUI1OURENkE1MTE5MDJBNjIwMDdFOTY4NCAvKiBKU1NRTFN0YXRl
bWVudENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTlERDZBOTExOTAyQTcxMDA3RTk2
ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzgyNDMyQTBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJRTRBNjY0Q0MyNTIxRDRBRjAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENjlEMTE5MDJBNDIwMDdFOTY4NCAv
KiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkEx
MTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTg2NjI5RDMwOURBMkI0ODAwOTYzM0E3IC8qIEpTU3RhdGljUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3ODUsNiArMzI3ODgsOSBAQAogCQkJCUU0MDNCN0EyMjUx
QjExOTMwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDAzQjdBMzI1MUIxMUMxMDAxOUU4MDAgLyog
TGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEE2NjRD
QzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTRBNjY0Q0YyNTIxRDRFMjAwNzA4MURDIC8qIExheW91dEludGVncmF0
aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEE2NjRDRTI1
MjFENEM5MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y0MjBCQTRBM0QwMDY1QThEMCAvKiBMYXlvdXRJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZGQTRDMDEyM0YyRkVEOTAwN0U0RUJDIC8q
IExheW91dExpbmVCcmVha0JveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxRDcyRjYxNUZFNjk1
MzAwQzRDMDdFIC8qIExheW91dE1pbGVzdG9uZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjk2Myw3
ICszMjk2OSw2IEBACiAJCQkJQzk2RjVFQzgxQjU4NzIyNjAwOTFFQTlEIC8qIE1lZGlhU2Vzc2lv
bkludGVycnVwdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTZGNUVDNTFCNTg3
MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uUHJvdmlkZXJNYWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM5MEY2NTU2MUIyMjUzQkUwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25N
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxN0Y3QUVGMjEzOUJGNkYwMEZCQTdFQyAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2Eu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOUQ4NTFGMDFCMzlEQzc4MDA4
NTA2MkUgLyogTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzODEs
NiArMzQzODYsOCBAQAogCQkJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRDVBMUE3MUM1NzQ4OUQw
MERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJE
NUExQTgxQzU3NDhBMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkxREFCMzExNDI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9M
YXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4
NSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTgzREIy
MTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDlEODI3QTFDN0I4RUUxMDA2RkYwNjYgLyogVmlkZW9UZXh0dXJlQ29waWVy
Q1YuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1NTcsNiArMzQ1NjQsNyBAQAogCQkJCTFGODc1NkIy
MUUyMkMzMzUwMDQyQzQwRCAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxREVBNDU2MUIzOUY0RDkwMEY3NzE3OCAvKiBXZWJTeXN0ZW1CYWNr
ZHJvcExheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEZBMzE0OTY5MzkxMDBGQjVCRDgg
LyogV2ViVGlsZWRCYWNraW5nTGF5ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEQUIzMTEyMjUx
RDZCRjMwMEZDOTQ4NSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzRjQyQjMxRDE4ODExOTFCMDAyNzhBQUMgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlckFWS2l0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDdEQTBGMjI0MzVFQjE5MDBGMDQ4RDEg
LyogV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjEyMTcxRjYxNkE4Q0YwQjAwMDA1M0NBIC8qIFdlYlZUVEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzU4MjUsNyArMzU4MzMsNyBAQAogCQkJCTdDRTY4MzQ0MTkyMTQzQTgwMEY0RDky
OCAvKiBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDNzNGQjA3MTkxRUY0MTcwMDdERTA2MSAvKiBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGQkM0QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUyRDVBMThG
MUM1NDU5MjMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAq
LywKKwkJCQkxREQzQjRDNjI1MURBMEI4MDA2OUIyNEEgLyogVmlkZW9MYXllck1hbmFnZXJPYmpD
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzMzZGNjcxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDhCNUE0MjE4MEQx
NDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4g
U291cmNlcyAqLywKIAkJCQkyNkY5QTgzODE4QTA0NkFDMDBBRUI4OEEgLyogVmlld3BvcnRDb25m
aWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCmluZGV4
IDgxZThjMmJjZmE3Zjc3Y2NmMzg2M2RlNzE5MzdlMmFiMzA3MTJiYzYuLjRjNWUzMjNmNGE1NTRl
ZTlmMmUxNDYwM2MxODYwYTY4NjY1NTEzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKQEAg
LTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVk
ZSAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKLQogI2luY2x1ZGUgIkludFJlY3QuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKaW5kZXggMzQxYjIzMmFlMzA4
ZDQyNGRmNzFlYzMyZDY0YzRiYTA0Njc0NDgyYy4uZDcyOGRjYmM0NWIyZTYyMjVhNmQyZjdhMjBl
YmMyOTgzMjI5N2NiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCkBAIC0yMyw4ICsyMyw3IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbl9oCi0jZGVmaW5lIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKKyNw
cmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPKQogCkBAIC02MSw1ICs2MCwzIEBAIHB1Ymxp
YzoKIH0KIAogI2VuZGlmCi0KLSNlbmRpZiAvLyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFu
YWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFn
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYjA3Zjg2ZjM5MzE3OGY0Y2Y3ZmU4M2E4MTQ3ODA4NGViZjIyODMx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9MYXllck1hbmFnZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIu
aCIKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBJbnRTaXplOworCitjbGFzcyBWaWRlb0xheWVyTWFuYWdl
ciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VmlkZW9MYXllck1hbmFnZXIoKSA9IGRlZmF1bHQ7
CisKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHZpZGVvSW5saW5lTGF5ZXIoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciosIEludFNp
emUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSA9IDA7CisK
KyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdmlydHVhbCBQbGF0Zm9y
bUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgPSAwOworICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQ
dHIpID0gMDsKKyNlbmRpZgorCisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uTGF5ZXIoUGxhdGZvcm1MYXllciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c3luY1RleHRUcmFja0JvdW5kcygpID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmgKaW5kZXggMjEyODcwYTg4NjQxNmFjMzNjODkz
ZDk5ZmFlYWUyNzJhNzUxNDU4Yi4uY2RjNGZlMDE3Y2ZhMzk4NTcwYTkzMTVmZTE2ZDcwMjYzZjM2
OWI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpD
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTmF0
aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSAiVmlkZW9M
YXllck1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJWaWRlb0NvbnRhaW5lckxheWVyLmgiCiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgpAQCAt
MzcsMzIgKzM4LDQ0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGV4dFRyYWNr
UmVwcmVzZW50YXRpb247Ci0KLWNsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyBmaW5hbCA6IHB1
YmxpYyBMb2dnZXJIZWxwZXIgeworY2xhc3MgVmlkZW9MYXllck1hbmFnZXJPYmpDIGZpbmFsCisg
ICAgOiBwdWJsaWMgVmlkZW9MYXllck1hbmFnZXIKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
KyAgICAsIHB1YmxpYyBMb2dnZXJIZWxwZXIKKyNlbmRpZgorewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CisKIHB1YmxpYzoKLSAgICBWaWRlb0xheWVyTWFuYWdlck9iakMoY29uc3QgTG9nZ2VyJiwg
Y29uc3Qgdm9pZCopOworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFdFQkNPUkVfRVhQ
T1JUIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25zdCB2b2lkKik7Cisj
ZWxzZQorICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQygpID0gZGVmYXVs
dDsKKyNlbmRpZgogCi0gICAgUGxhdGZvcm1MYXllciAqdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsgfQorICAgIH5WaWRlb0xheWVyTWFu
YWdlck9iakMoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1M
YXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXplKTsKLSAgICB2b2lkIGRpZERlc3Ryb3lWaWRlb0xh
eWVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZvcm1MYXllciogdmlkZW9JbmxpbmVMYXll
cigpIGNvbnN0IGZpbmFsOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0xheWVy
KFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplIGNvbnRlbnRTaXplKSBmaW5hbDsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgZmluYWw7CiAKICNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpOyB9
Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICosIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cik7Ci0g
ICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV92aWRl
b0Z1bGxzY3JlZW5GcmFtZTsgfQotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0KTsKLSAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2
ZUltYWdlUHRyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxz
Y3JlZW5MYXllcigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgZmluYWw7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZp
bmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5l
SW1hZ2UoTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29sIHJlcXVpcmVz
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uTGF5ZXIoUGxhdGZvcm1MYXllciopOwotICAgIHZvaWQgc3luY1RleHRUcmFj
a0JvdW5kcygpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKikgZmluYWw7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgZmluYWw7CiAKIHByaXZhdGU6
CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29uc3Qgdm9pZCog
bG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQog
ICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWaWRl
b0xheWVyTWFuYWdlck9iakMiOyB9CkBAIC03MCw2ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICBS
ZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZp
ZXI7CisjZW5kaWYKIAogICAgIFJldGFpblB0cjxXZWJWaWRlb0NvbnRhaW5lckxheWVyPiBtX3Zp
ZGVvSW5saW5lTGF5ZXI7CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCmluZGV4IGQ1
MGQ3MjM2OGFjZTRiNjQxOWE3NTYwYTExNGJiN2E2OTRmNzM0NTMuLmJjNjRhZmZkNGZjMzRlYmMz
ODJkMWIxODk1NjY5MWIwNTM1ODY1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAgLTQzLDExICs0MywxOCBAQCBPQkpDX0NMQVNTIEFW
UGxheWVyTGF5ZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogVmlkZW9MYXllck1hbmFnZXJPYmpDOjpWaWRlb0xheWVyTWFuYWdlck9iakMoY29u
c3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCiAgICAgOiBtX2xv
Z2dlcihsb2dnZXIpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIobG9nSWRlbnRpZmllcikKIHsKIH0K
KyNlbmRpZgorCitQbGF0Zm9ybUxheWVyKiBWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvSW5s
aW5lTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7
Cit9CiAKIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3Jt
TGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29udGVudFNpemUpCiB7CkBAIC04NywxMCArOTQs
OSBAQCB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKQog
CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCi12b2lkIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQ
dHIgaW1hZ2UpCitQbGF0Zm9ybUxheWVyKiBWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvRnVs
bHNjcmVlbkxheWVyKCkgY29uc3QKIHsKLSAgICBpZiAobV92aWRlb0lubGluZUxheWVyKQotICAg
ICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzOihfX2JyaWRnZSBpZClpbWFnZS5n
ZXQoKV07CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7CiB9CiAKIHZv
aWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9y
bUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyIGN1cnJlbnRJbWFnZSkKQEAgLTE0MCw2ICsx
NDYsMTEgQEAgdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmUKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwogfQogCitGbG9hdFJlY3QgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxzY3Jl
ZW5GcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWU7Cit9
CisKIHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShG
bG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS54KCksICIsICIsIHZpZGVvRnVsbHNjcmVlbkZy
YW1lLnkoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUud2lkdGgoKSwgIiwgIiwgdmlkZW9G
dWxsc2NyZWVuRnJhbWUuaGVpZ2h0KCkpOwpAQCAtMTUyLDYgKzE2MywxMiBAQCB2b2lkIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IHZpZGVv
RnVsbHNjcmVlbkZyYQogICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKIH0KIAordm9pZCBWaWRl
b0xheWVyTWFuYWdlck9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2
ZUltYWdlUHRyIGltYWdlKQoreworICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCisgICAgICAg
IFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHM6KF9fYnJpZGdlIGlkKWltYWdlLmdldCgp
XTsKK30KKwogI2VuZGlmCiAKIGJvb2wgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpyZXF1aXJlc1Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDI2NWI3ZTJk
ODU0Mjg0ZGU3OWU3NmRkOWFlODFhMWYzYzA5ZTBiZjQuLjQxYjUzNjZmOGM0Yzk0NTRjMzE1OGEx
YzVhNjM3YzZjNTAzNTY4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZ2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24mKTsKIAotICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1v
ZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0
Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElE
PiYmIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpPiYmKTsKKyAgICB2b2lkIHByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcs
IGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpPiYm
KTsKICAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKTsKIAogICAgIHZvaWQgbG9hZChVUkwm
JiwgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYmLCBjb25zdCBXZWJDb3JlOjpD
b250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiYpPiYmKTsKQEAgLTEyNCw4ICsxMjQsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkTWFpbnRh
aW5Bc3BlY3RSYXRpbyhib29sKTsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
Ci0gICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
LSAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6OlZpZGVvR3Jhdml0eSk7CiAjZW5kaWYKICAgICB2b2lkIGFjY2VsZXJhdGVkUmVuZGVyaW5n
U3RhdGVDaGFuZ2VkKGJvb2wpOwpAQCAtMTM4LDkgKzEzNiw2IEBAIHB1YmxpYzoKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHZvaWQgc2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKLSNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmln
aHQmKTsKLSNlbmRpZgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwYTliOTgxNjEwN2Jl
YmJhY2VhMTNjNTI1YmExOGI3ZGJmNjVlMDcwLi41OWEwYWNhYWExZjRjYzYxMzA3NTUyNmYwOTM1
NTE5NDgyZWYxYTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQs
NyArMjQsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBQcmVwYXJlRm9yUGxheWJhY2so
Ym9vbCBwcml2YXRlTW9kZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
OlByZWxvYWQgcHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVu
ZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSkgLT4gKE9wdGlvbmFsPFdlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQsIE9wdGlvbmFs
PFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29u
dGV4dElkKSBBc3luYworICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBi
b29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVv
Q29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+
IGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCkgQXN5bmMKIAogICAgIExvYWQoVVJMIHVybCwg
T3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRlbnNp
b24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBlLCBTdHJpbmcga2V5U3lzdGVtKSAt
PiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNv
bmZpZ3VyYXRpb24pIEFzeW5jCiAgICAgQ2FuY2VsTG9hZCgpCkBAIC02OCwxNCArNjgsNiBAQCBt
ZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgU2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKFdlYkNvcmU6Oklu
dFNpemUgc2l6ZSwgTWFjaFNlbmRSaWdodCBtYWNoU2VuZFJpZ2h0KQotI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICBTZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChX
ZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCwgTWFjaFNlbmRSaWdodCBtYWNoU2VuZFJpZ2h0KQotI2Vu
ZGlmCi0jZW5kaWYKLQotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICBF
bnRlckZ1bGxzY3JlZW4oKSAtPiAoKSBBc3luYwotICAgIEV4aXRGdWxsc2NyZWVuKCkgLT4gKCkg
QXN5bmMKICNlbmRpZgogCiAgICAgIyBQYWludApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW0KaW5kZXggZDk4MjRlODIzYTYwOWE2NzNkNDAxMjUzZTg4NDQ5YWU4NzgwNjlhNy4u
NTlmOGU1MDlmMGJkMWQ1Y2E0YTRjOGIyNDkyMTVlZjUxYTE4MGQyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxv
YXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9u
YWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0
SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpw
cmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVG
b3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4mJiBpbmxpbmVMYXllckhvc3RpbmdD
b250ZXh0SWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcGxheWVyLT5zZXRQcml2
YXRlQnJvd3NpbmdNb2RlKHByaXZhdGVNb2RlKTsKICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChw
cmVsb2FkKTsKQEAgLTQ1LDExICs0NSw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhCiAgICAg
bV92aWRlb0NvbnRlbnRTY2FsZSA9IHZpZGVvQ29udGVudFNjYWxlOwogICAgIGlmICghbV9pbmxp
bmVMYXllckhvc3RpbmdDb250ZXh0KQogICAgICAgICBtX2lubGluZUxheWVySG9zdGluZ0NvbnRl
eHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNz
KCk7Ci0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIGlmICghbV9mdWxs
c2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dCkKLSAgICAgICAgbV9mdWxsc2NyZWVuTGF5ZXJIb3N0
aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGlu
Z1Byb2Nlc3MoKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihtX2lubGluZUxheWVySG9zdGluZ0Nv
bnRleHQtPmNvbnRleHRJRCgpLCBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0LT5jb250
ZXh0SUQoKSk7Ci0jZW5kaWYKKyAgICBjb21wbGV0aW9uSGFuZGxlcihtX2lubGluZUxheWVySG9z
dGluZ0NvbnRleHQtPmNvbnRleHRJRCgpKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCkBAIC03NCwzMCArNzAs
NiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFZpZGVvSW5saW5lU2l6ZUZlbmNl
ZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07
CiB9CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi12b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgYXV0byB2aWRlb0Z1bGxzY3JlZW5MYXllciA9
IG1fcGxheWVyLT5jcmVhdGVWaWRlb0Z1bGxzY3JlZW5MYXllcigpOwotICAgIFt2aWRlb0Z1bGxz
Y3JlZW5MYXllciBzZXROYW1lOkAiV2ViIFZpZGVvIEZ1bGxzY3JlZW4gTGF5ZXIgKHJlbW90ZSki
XTsKLSAgICBbdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludFplcm9dOwot
ICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcih2aWRlb0Z1
bGxzY3JlZW5MYXllci5nZXQoKSk7Ci0KLSAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLX0KLQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpleGl0RnVsbHNjcmVlbihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgbV9w
bGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG51bGxwdHIsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKLSAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290
TGF5ZXIobnVsbHB0cik7Ci19Ci0KLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0Vmlk
ZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0LCBj
b25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIG1hY2hTZW5kUmlnaHQpCi17Ci0gICAgbV9mdWxsc2Ny
ZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KG1hY2hTZW5kUmlnaHQuc2VuZFJp
Z2h0KCkpOwotICAgIG1fcGxheWVyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKLX0K
LSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRp
YVBsYXllclByb3h5R1N0cmVhbWVyLmNwcAppbmRleCA5ZjBiZmI4MjYwMmNlYjE1ZTVhYzdjZmY0
NWZmMTgxYzc0ZTEwYzY2Li43YzkyNjNjODc3YWQ2ZTAzMGUwYmZkN2M4MWE0N2Y0OTRhNWJjZjI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wsIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wsIGJvb2wsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4m
JiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQsIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRl
eHRJRD4mJiBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkKT4mJikKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wsIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wsIGJvb2wsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4m
JiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpPiYmKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CkBAIC00OCwxOCArNDgsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmVudGVyRnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjpleGl0RnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKaW5kZXggYTM5ZjVkNjNkMTJkZmQ3NjQzMDZmYzgyNzU1MzE0MWVmZWQ2ZWRjYi4u
YjFmZWUxYmFmODdlZjNkMTdhOWMxMmYxZjIzMzI0N2I4M2QxYzgyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcApAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgogCiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQotI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgog
Ci0jaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5
Q0RNRmFjdG9yeS5oIgpAQCAtMzYsOSArMzUsNyBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSAi
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlZpZGVvTGF5ZXJSZW1vdGUuaCIK
LSNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmg+CkBAIC00OCw2ICs0NSw4
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgpAQCAtOTEsMTggKzkwLDI5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogfSB3aGls
ZSAoMCkKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKENPQ09BKQogTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyKQotICAgIDogbV9wbGF5ZXIocGxheWVyKQorI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIDogbV9sb2dnZXIoJnBsYXllci0+bWVkaWFQbGF5
ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9n
SWRlbnRpZmllcigpKQorI2VuZGlmCisgICAgLCBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX21l
ZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5l
SWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKLSNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKLSAgICAsIG1fbG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkp
Ci0gICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIo
KSkKK3sKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKK30KICNlbmRpZgorCitNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAgIElO
Rk9fTE9HKExPR0lERU5USUZJRVIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9M
YXllck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisjZW5kaWYKKyAgICBtX21hbmFn
ZXIuZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIobV9pZCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pCkBAIC0xMTIsMjYgKzEyMiwyMSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mJgogICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKIH0KIAotTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKLXsKLSAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBtX21hbmFnZXIuZGVsZXRlUmVtb3RlTWVkaWFQ
bGF5ZXIobV9pZCk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJl
Rm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKQogewogICAgIGF1dG8gc2NhbGUg
PSBtX3BsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFy
ZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFy
ZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBhdXRvIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250
ZXh0SWQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRl
TW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgaWYgKCFpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9M
YXllclJlbW90ZSh0aGlzLCBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQudmFsdWUoKSk7Ci0j
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgICAgICBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0SWQgPSBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkOwor
ICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGlubGlu
ZUxheWVySG9zdGluZ0NvbnRleHRJZC52YWx1ZSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICAgICAgSW50U2l6ZSBkZWZhdWx0U2l6ZSA9IHNuYXBwZWRJbnRSZWN0KG1fcGxheWVyLT5wbGF5
ZXJDb250ZW50Qm94UmVjdCgpKS5zaXplKCk7CisgICAgICAgIG1fdmlkZW9MYXllck1hbmFnZXIt
PnNldFZpZGVvTGF5ZXIobV92aWRlb0xheWVyLmdldCgpLCBkZWZhdWx0U2l6ZSk7CiAjZW5kaWYK
ICAgICB9LCBtX2lkKTsKIH0KQEAgLTY0MywzMiArNjQ4LDIwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIq
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdlci0+dmlkZW9JbmxpbmVMYXllcigpOworI2Vsc2UK
KyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghdmlkZW9G
dWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oKSwgW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIG1fcmVxdWly
ZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IGZhbHNlOwotICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSAgICAgICAgfSwgbV9pZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBBU1NFUlQobV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSA9PSB2aWRlb0Z1bGxzY3Jl
ZW5MYXllcik7Ci0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKCksIFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBtX3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24gPSB0cnVlOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0sIG1faWQpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgbnVsbHB0cik7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKQEAgLTY3Niw5ICs2NjksMTIg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKCkKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6VXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKSwgbV9pZCk7CiB9
CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFdURjo6TWFjaFNl
bmRSaWdodCYgc2VuZFJpZ2h0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQogewotICAgIGNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBzZW5kUmlnaHQpLCBtX2lkKTsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJ3aWR0aCA9ICIsIHJlY3Qu
c2l6ZSgpLndpZHRoKCksICIsIGhlaWdodCA9ICIsIHJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKKyAg
ICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKKyNl
bmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2Ny
ZWVuR3Jhdml0eShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkgZ3Jhdml0
eSkKQEAgLTEwMjEsNiArMTAxNywzMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
c2V0U2hvdWxkQ29udGludWVBZnRlcktleU5lZWRlZChib29sIHNob3VsZCkKIH0KICNlbmRpZgog
Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIG1fdmlk
ZW9MYXllck1hbmFnZXItPnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
YXV0byogcmVwcmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRp
b24tPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKHJlcHJlc2VudGF0aW9uTGF5ZXIpOworI2VuZGlm
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzeW5jVGV4dFRyYWNrQm91bmRz
KCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zeW5j
VGV4dFRyYWNrQm91bmRzKCk7CisjZW5kaWYKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnRyYWNrc0NoYW5nZWQoKQogewogICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpUcmFja3NDaGFuZ2VkKCksIG1faWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggNTA3ZmI4NjQyNTQxMWQxOTVhODQ3ZGI1N2NlNDQ4NzUx
YTM5ZjQ1NS4uZWE4MmRmMGNlYTUzYTAzYmQ4M2Y0Zjc0MTI2MTM3MTE3NTI0NzUwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5j
bHVkZSAiTGF5ZXJIb3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5oIgorI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhl
bHBlci5oPgpAQCAtNDgsMTUgKzUxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBH
ZW5lcmljQ3VlRGF0YTsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZTsKLWNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOworY2xhc3Mg
VmlkZW9MYXllck1hbmFnZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBBdWRp
b1RyYWNrUHJpdmF0ZVJlbW90ZTsKLWNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CiBjbGFz
cyBVc2VyRGF0YTsKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRU
cmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb247CiAKQEAgLTEwMSw3ICsxMDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBm
aXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lk
IHNldFZpZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3Qg
V1RGOjpNYWNoU2VuZFJpZ2h0Jik7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZl
bmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQm
KTsKICNlbmRpZgogCiAgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CkBAIC0x
NDksMTQgKzE0OCwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJ
c1dpcmVsZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgogCitwcml2YXRlOgorCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAqbV9sb2dnZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIjsgfQogICAgIGNv
bnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJl
dF9jYXN0PGNvbnN0IHZvaWQqPihtX2xvZ0lkZW50aWZpZXIpOyB9CiAgICAgV1RGTG9nQ2hhbm5l
bCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4g
bV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwogI2VuZGlmCiAKLXBy
aXZhdGU6CiAgICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRU
eXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2so
Ym9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkgZmluYWw7CiAKQEAgLTMyNCwxMSArMzI3LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91bGRDb250aW51ZUFmdGVyS2V5TmVlZGVkKGJvb2wp
IGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRp
b247IH0KLSNpZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKFdlYkNvcmU6OlRleHRUcmFja1JlcHJlc2VudGF0aW9uKikgZmluYWw7CiAgICAgdm9p
ZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgZmluYWw7Ci0jZW5kaWYKKwogICAgIHZvaWQgdHJhY2tz
Q2hhbmdlZCgpIGZpbmFsOwogCiAgICAgdm9pZCBiZWdpblNpbXVsYXRlZEhEQ1BFcnJvcigpIGZp
bmFsOwpAQCAtMzU5LDEzICszNjEsMTEgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIgfTsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7Ci0gICAgYm9vbCBt
X3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24geyBmYWxzZSB9OwotICAgIFBsYXRmb3Jt
TGF5ZXJDb250YWluZXIgbV92aWRlb0lubGluZUxheWVyOwotICAgIFBsYXRmb3JtTGF5ZXJDb250
YWluZXIgbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBS
ZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlcj4gbV92aWRlb0xh
eWVyTWFuYWdlcjsKICNlbmRpZgotICAgIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4g
bV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkOworICAgIFBsYXRmb3JtTGF5ZXJDb250
YWluZXIgbV92aWRlb0xheWVyOworCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21h
bmFnZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIG1faWQ7CkBAIC0zODgsMTIgKzM4OCw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2Vla2luZyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MgeyBmYWxzZSB9OwotCi0jaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7
Ci0gICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotI2VuZGlmCi0KICAgICBib29sIG1f
aW52YWxpZCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVDb2NvYS5tbQppbmRleCA0YTg0YzI1MWRiYjczNzBlMzFjOTA4OTQ3YjYzZTRkNDlk
YWNkZjY4Li4wMDJjMDUwODEzNWUwNjNmMWYyNWRiYWU2NDAzYTE2YjgyNTNlMjA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KQEAgLTI4LDkzICsy
OCwzMyBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKIAot
I2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpD
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KLSNpbXBvcnQgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0KLVBsYXRm
b3JtTGF5ZXJDb250YWluZXIgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGVWaWRlb0Z1
bGxzY3JlZW5MYXllcigpCi17Ci0gICAgaWYgKCFtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250
ZXh0SWQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNj
cmVlbkxheWVyKSB7Ci0gICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBhZG9wdE5TKFtb
Q0FMYXllciBhbGxvY10gaW5pdF0pOwotICAgICAgICBhdXRvIHN1YmxheWVyID0gTGF5ZXJIb3N0
aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KG1fZnVsbHNj
cmVlbkxheWVySG9zdGluZ0NvbnRleHRJZC52YWx1ZSgpKTsKLSAgICAgICAgW3N1YmxheWVyIHNl
dE5hbWU6QCJWaWRlb0Z1bGxzY3JlZW5MYXllclN1YmxheWVyIl07Ci0gICAgICAgIFtzdWJsYXll
ciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSgwLCAwKV07Ci0gICAgICAgIFttX3ZpZGVvRnVsbHNj
cmVlbkxheWVyIGFkZFN1YmxheWVyOnN1YmxheWVyLmdldCgpXTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQot
ewotICAgIGF1dG8gY29udGV4dCA9IFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGNvbnRleHRdOwot
ICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW0NBVHJhbnNhY3Rpb24g
YmVnaW5dOwotICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107Ci0KLSAg
ICBNYWNoU2VuZFJpZ2h0IGZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW2Nv
bnRleHQgY3JlYXRlRmVuY2VQb3J0XSk7Ci0gICAgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5j
ZWQocmVjdCwgZmVuY2VTZW5kUmlnaHQpOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsK
LQotICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLX0KLQorTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyKQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
IDogbV9sb2dnZXIoJnBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRl
bnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCi0KLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihX
ZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCisgICAgLCBt
X3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVh
dGVSZXNvdXJjZUxvYWRlcigpKQorICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5pcXVl
PFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSkpCisgICAg
LCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdp
bmVJZGVudGlmaWVyKQorICAgICwgbV9pZChwbGF5ZXJJZGVudGlmaWVyKQogewotI2lmICFFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgVU5VU0VEX1BBUkFNKHJlcHJlc2VudGF0
aW9uKTsKLSNlbHNlCi0gICAgUGxhdGZvcm1MYXllciogcmVwcmVzZW50YXRpb25MYXllciA9IHJl
cHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRpb24tPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKLQot
ICAgIGlmIChyZXByZXNlbnRhdGlvbkxheWVyID09IG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25M
YXllcikgewotICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24g
c2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIGlmIChtX3RleHRUcmFja1JlcHJlc2VudGF0
aW9uTGF5ZXIpCi0gICAgICAgIFttX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgcmVtb3Zl
RnJvbVN1cGVybGF5ZXJdOwotCi0gICAgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyID0g
cmVwcmVzZW50YXRpb25MYXllcjsKLQotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyICYm
IG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikgewotICAgICAgICBzeW5jVGV4dFRyYWNr
Qm91bmRzKCk7Ci0gICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGFkZFN1YmxheWVyOm1f
dGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllci5nZXQoKV07Ci0gICAgfQotCi0gICAgW0NBVHJh
bnNhY3Rpb24gY29tbWl0XTsKLSNlbmRpZgorICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwog
fQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c3luY1RleHRUcmFja0JvdW5kcygp
Ci17CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIGlmICghbV92aWRl
b0Z1bGxzY3JlZW5MYXllciB8fCAhbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNh
Y3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIFttX3RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKS5ib3VuZHNd
OwotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLSNlbmRpZgorUGxhdGZvcm1MYXllckNv
bnRhaW5lciBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxh
eWVyKCkKK3sKKyAgICByZXR1cm4gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKIH0K
KyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAo=
</data>
<flag name="review"
          id="425754"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409945</attachid>
            <date>2020-09-28 18:54:44 -0700</date>
            <delta_ts>2020-09-28 19:10:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-216995-20200928185443.patch</filename>
            <type>text/plain</type>
            <size>52729</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uMDkyYTk5MDAzOTdiMmYxNGRlYTRjZTczNDdlMzQ3
NDcwNTUwZmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgRXhwb3J0IFRleHRUcmFja1JlcHJlc2VudGF0aW9u
IGFuZCBWaWRlb0xheWVyTWFuYWdlci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIFZpZGVvTGF5ZXJNYW5hZ2VyLmguCisgICAgICAg
IEV4cG9ydCBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiwgV2ViVmlkZW9Db250YWluZXJMYXllciBh
bmQgVmlkZW9MYXllck1hbmFnZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uaDoKKyAgICAgICAgTWlub3IgY2xlYW4tdXAuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgQWRkIHRoaXMgaW50ZXJmYWNlIHNvIHRoYXQgd2UgY2FuIHVzZSBWaWRlb0xheWVyTWFuYWdl
ciBpbiB0aGUgQysrIGNvZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvSW5saW5lTGF5ZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxz
Y3JlZW5MYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9i
akM6OnZpZGVvRnVsbHNjcmVlbkZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAg
ICAgICBGaXggdGhlIGlzc3VlIHdoZW4gUkVMRUFTRV9MT0dfRElTQUJMRUQgaXMgZGVmaW5lZCBh
bmQgYWRkIFdFQkNPUkVfRVhQT1JUCisgICAgICAgIHRvIHNvbWUgZnVuY3Rpb25zLgorCiAyMDIw
LTA5LTI4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjY3MzI5KTogQ3Jhc2ggZHVlIHRvIG51bGwtZGVyZWZlcmVuY2Ugb2YgZnJhbWUgcG9p
bnRlciBpbiBET01TZWxlY3Rpb246OnJhbmdlQ291bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODdlYWExMzZiZWQx
NzNiMzk3OTA2ZGNiMjE2NjcwZGVlMTNmMDVjMS4uZjhmYzllZTZiZDFmZGFmYmQ2Y2U0ZjQxMjNm
ODVlODBhM2IxODJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAyMC0wOS0yOCAgUGVu
ZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJv
Y2Vzc10gVXNlIFZpZGVvTGF5ZXJNYW5hZ2VyIHRvIG1hbmFnZSBsYXllcnMgb2YgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTY5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSByZW1vdGUgaG9zdGluZyBsYXllciBpbiB0aGUg
R1BVIHByb2Nlc3MgZm9yIHZpZGVvIGZ1bGxzY3JlZW4gYW5kCisgICAgICAgIHBpY3R1cmUtaW4t
cGljdHVyZS4gV2UgZG9uJ3QgbmVlZCB0byBrZWVwIGEgbGF5ZXIgaW4gdGhlIEdQVSBwcm9jZXNz
IGZvciB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUgYmVj
YXVzZSBubyByZW5kZXJpbmcgd2lsbCBiZSBkb25lIGZvciB0aGF0IGxheWVyLiBXZSBkb24ndCBu
ZWVkCisgICAgICAgIEVudGVyRnVsbHNjcmVlbiwgRXhpdEZ1bGxzY3JlZW4gYW5kIFNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lRmVuY2VkIElQQyBtZXNzYWdlcyBhZnRlciByZW1vdmluZworICAgICAg
ICB0aGUgbGF5ZXIgYmVjYXVzZSB0aGUgUmVtb3RlTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGlu
IHRoZSB3ZWIgcHJvY2VzcyBjYW4gZGVhbCB3aXRoCisgICAgICAgIHRoZSB2aWRlbyBwcmVzZW50
YXRpb24gbW9kZSBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgdW51c2VkIElQ
QyBtZXNzYWdlcyBhZnRlciByZW1vdmluZyB0aGUgcmVtb3RlIGhvc3RpbmcgbGF5ZXIgZm9yIHZp
ZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAgYW5kIHBpY3R1cmUtaW4tcGljdHVyZS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjplbnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpleGl0RnVsbHNjcmVlbik6IERlbGV0ZWQuCisgICAgICAgIERpdHRvLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIFJlbW92
ZSB0aGUgY29kZSByZWxhdGVkIHRvIHRoZSByZW1vdGUgaG9zdGluZyBsYXllciBmb3IgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToK
KyAgICAgICAgVXNlIFZpZGVvTGF5ZXJNYW5hZ2VyIHRvIG1hbmFnZSB0aGUgbGF5ZXIuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVu
RnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50
YXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzeW5jVGV4dFRyYWNrQm91bmRzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOgorICAgICAgICBOZWVkIHRvIG1vdmUgdGhlIExvZ2dlciB1cCBpbiB0aGUgZGF0YSBtZW1i
ZXJzIHNvIHRoYXQgb3RoZXIgbWVtYmVycyBjYW4gdXNlIGl0CisgICAgICAgIGluIHRoZSBjb25z
dHJ1Y3RvciwgZS5nLiwgVmlkZW9MYXllck1hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0
ZVZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnN5bmNUZXh0VHJhY2tCb3VuZHMpOiBEZWxldGVkLgorICAgICAgICBTaW1wbGlmeSB0aGUgaW1w
bGVtZW50YXRpb24gYnkgbWFuYWdpbmcgbGF5ZXJzIHdpdGggVmlkZW9MYXllck1hbmFnZXIuCisK
IDIwMjAtMDktMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2Ugc3VyZSBvdXIgY2FsbHMgdG8gQVZDYXB0dXJlRGV2aWNlIHJlcXVlc3RBY2Nlc3NGb3JN
ZWRpYVR5cGUgZG8gcHJvY2Vzc2luZyBvbiB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IDdlOGQ1MzU1MThiMTUwMGYzM2RkZGI5ZDJiN2IyMDA1YzM2MTdjNGUuLjA3NTgxODRi
ZTgzYmRkMzE0NjcwNjU3MDZkYWQ5MmMwZmQ0OTViYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
MTIxMyw5ICsxMjEzLDExIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1RhYlNpemUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aENhY2hlLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9XaW5kUnVsZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVmOWQ1NThhNjIzY2U1NjBiMzFj
YjJiZjdjNGJiOWFkOGRlOTkyMy4uZDM1MDcxNGI1MGNmNDVjYWE4NjNmNjUxYjUzYWI5MmEwNjE5
MmNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjMwLDcgKzYzMCwxMSBAQAogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjgg
LyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQ
aWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREVGMDZDRDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFEOUYwRkMxMjEyMjAyOUIwMDVEOEZENCAvKiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgw
RSAvKiBTaGFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkxREFCMzExMjI1MUQ2QkYzMDBGQzk0ODUgLyogV2ViVmlkZW9Db250YWluZXJM
YXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4
QjMxQTEyMzc5REM4MzAwODgzRkRFIC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzExNDI1MUQ3
MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRl
b0xheWVyTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlck9i
akMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVB
MThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREJDMUI1NjIzNDdCM0Qy
MDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyog
UGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUREM0I0QzYyNTFEQTBCODAwNjlCMjRBIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gKi87IH07CiAJCTFERjdFODFGMjUxQTlFMDYwMERCOEY2MSAvKiBUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0REMUU1MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMx
RTIxQkExNzAwNjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAw
NjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGNzJCRjBCMTg3RkQ0NUMwMDA5QkNC
MyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGNzJCRjA5MTg3RkQ0MjcwMDA5QkNCMyAvKiBU
aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTU4OCw3ICsxNTkyLDYgQEAKIAkJNTJCMEQ0QkUx
QzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRm
b3JtVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJC
MEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0
QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUyRDVBMThGMUM1NDU5MjMwMERF
MzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9M
YXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJE
NUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJF
MkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAv
KiBNZWRpYVByb2R1Y2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTY3MjcsNiArNjczMCw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkwMENBNkNE
RiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0
dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9M
YXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAw
NEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZp
Z2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjEx
QkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNo
YXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzE5LDggKzg3MjMs
OCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0
QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0
IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxl
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTJENUExOEQxQzU0NTkwMzAwREUz
NEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CisJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xh
eWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVBMThF
MUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjE5Niw2ICsyNjIwMCw3IEBA
CiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkw
RjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFB
MEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCisJCQkJMURBQjMxMTMy
NTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUEx
NzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0Q2RkU1QkIy
NEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEyNEJD
RTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLApAQCAtMjg0OTUsMTAgKzI4NTAwLDYg
QEAKIAkJRTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3
MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCi0JCQkJRTRBNjY0
QzYyNTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywK
LQkJCQlFNEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvckxlZ2FjeVBhdGguaCAqLywKLQkJCQlFNEE2NjRDNDI1MjFCNzc3MDA3MDgxREMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCAqLywKIAkJCQlFNDE4MDI1NjIz
RDQ1NEI1MDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCAqLywKIAkJCQlF
NDE4MDI1MzIzRDQ1NDlBMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggKi8s
CiAJCQkJRTQwM0I3OUYyNTFCMTE4QjAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJh
Z2UuY3BwICovLApAQCAtMjg1MDcsNiArMjg1MDgsMTAgQEAKIAkJCQlFNEFCQUJEQjIzNjA4OEZE
MDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8sCiAJCQkJRTQzMTJB
QjUyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgKi8s
CiAJCQkJRTQzMTJBQjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5h
dGlvbi5oICovLAorCQkJCUU0QTY2NEM3MjUyMUI3NzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yLmNwcCAqLywKKwkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oICovLAorCQkJCUU0QTY2NEM1MjUyMUI3Nzgw
MDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oICovLAor
CQkJCUU0QTY2NEM0MjUyMUI3NzcwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJh
dG9yTW9kZXJuUGF0aC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMjQ0Nyw3ICszMjQ1Miw2IEBACiAJCQkJMDc5NjlE
QjAxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlNlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc5NjlEQjIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5NjlEQjYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDSWNl
Q2FuZGlkYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMg
LyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkRDQjRDMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RENCNEUxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRD
SWNlR2F0aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEVDMTlFRTM0MUUw
MEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQ5Myw3ICsz
MjQ5Nyw2IEBACiAJCQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAv
KiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODI0
MzJBMEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTFRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2OUQxMTkwMkE0MjAwN0U5Njg0IC8qIEpT
U1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTExMTkw
MkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODY2MjlEMzA5REEyQjQ4MDA5NjMzQTcgLyogSlNTdGF0aWNSYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMjc4NSw2ICszMjc4OCw5IEBACiAJCQkJRTQwM0I3QTIyNTFCMTE5
MzAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MDNCN0EzMjUxQjExQzEwMDE5RTgwMCAvKiBMYXlv
dXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENDMjUy
MUQ0QUYwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25S
dW5JdGVyYXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENFMjUyMUQ0
QzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkZBNEMwMTIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5
b3V0TGluZUJyZWFrQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBD
NEMwN0UgLyogTGF5b3V0TWlsZXN0b25lLmggaW4gSGVhZGVycyAqLywKQEAgLTMyOTYzLDcgKzMy
OTY5LDYgQEAKIAkJCQlDOTZGNUVDODFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50
ZXJydXB0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5NkY1RUM1MUI1ODcyMjYw
MDkxRUE5RCAvKiBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzkwRjY1NTYxQjIyNTNCRTAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE3RjdBRUYyMTM5QkY2RjAwRkJBN0VDIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYy
RSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM4MSw2ICsz
NDM4Niw4IEBACiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFB
ODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTFEQUIzMTE0MjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xheWVy
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTUyNTFENzREQjAwRkM5NDg1IC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODND
NDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDU1Nyw2ICszNDU2NCw3IEBACiAJCQkJMUY4NzU2QjIxRTIy
QzMzNTAwNDJDNDBEIC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFERUE0NTYxQjM5RjREOTAwRjc3MTc4IC8qIFdlYlN5c3RlbUJhY2tkcm9w
TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkEzMTQ5NjkzOTEwMEZCNUJEOCAvKiBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTIyNTFENkJG
MzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTNGNDJCMzFEMTg4MTE5MUIwMDI3OEFBQyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEN0RBMEYyMjQzNUVCMTkwMEYwNDhEMSAvKiBX
ZWJWaWV3VmlzdWFsSWRlbnRpZmljYXRpb25PdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
MTIxNzFGNjE2QThDRjBCMDAwMDUzQ0EgLyogV2ViVlRURWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTgyNSw3ICszNTgzMyw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8q
IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3
M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTJENUExOEYxQzU0
NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTFERDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOEI1QTQyMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3Vy
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKaW5kZXggODFl
OGMyYmNmYTdmNzdjY2YzODYzZGU3MTkzN2UyYWIzMDcxMmJjNi4uNGM1ZTMyM2Y0YTU1NGVlOWYy
ZTE0NjAzYzE4NjBhNjg2NjU1MTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcApAQCAtMjQs
MTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRU
cmFja1JlcHJlc2VudGF0aW9uLmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgotCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaAppbmRleCAzNDFiMjMyYWUzMDhkNDI0
ZGY3MWVjMzJkNjRjNGJhMDQ2NzQ0ODJjLi5kNzI4ZGNiYzQ1YjJlNjIyNWE2ZDJmN2EyMGViYzI5
ODMyMjk3Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uX2gKLSNkZWZpbmUgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25faAorI3ByYWdt
YSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU8pCiAKQEAgLTYxLDUgKzYwLDMgQEAgcHVibGljOgog
fQogCiAjZW5kaWYKLQotI2VuZGlmIC8vIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFiMDdmODZmMzkzMTc4ZjRjZjdmZTgzYTgxNDc4MDg0ZWJmMjI4MzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xh
eWVyTWFuYWdlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgor
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEZsb2F0UmVjdDsKK2NsYXNzIEludFNpemU7CisKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRlb0xheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKiwgSW50U2l6ZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95VmlkZW9MYXllcigpID0gMDsKKworI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSA9IDA7CisgICAgdmlydHVh
bCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikg
PSAwOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5j
VGV4dFRyYWNrQm91bmRzKCkgPSAwOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCAyMTI4NzBhODg2NDE2YWMzM2M4OTNkOTlm
YWVhZTI3MmE3NTE0NThiLi5jZGM0ZmUwMTdjZmEzOTg1NzBhOTMxNWZlMTZkNzAyNjNmMzY5YjVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVy
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCIKICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC0zNywz
MiArMzgsNDQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbjsKLQotY2xhc3MgVmlkZW9MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGlj
IExvZ2dlckhlbHBlciB7CitjbGFzcyBWaWRlb0xheWVyTWFuYWdlck9iakMgZmluYWwKKyAgICA6
IHB1YmxpYyBWaWRlb0xheWVyTWFuYWdlcgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
ICwgcHVibGljIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVmlkZW9MYXllck1hbmFnZXJPYmpDKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
KwogcHVibGljOgotICAgIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25z
dCB2b2lkKik7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgV0VCQ09SRV9FWFBPUlQg
VmlkZW9MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKKyNlbHNl
CisgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJPYmpDKCkgPSBkZWZhdWx0Owor
I2VuZGlmCiAKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0lubGluZUxheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOyB9CisgICAgflZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQygpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVy
ICosIEludFNpemUgY29udGVudFNpemUpOwotICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkg
Y29uc3QgZmluYWw7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxh
dGZvcm1MYXllciosIEludFNpemUgY29udGVudFNpemUpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5M
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KLSAg
ICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKTsKLSAgICBG
bG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVs
bHNjcmVlbkZyYW1lOyB9Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QpOwotICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVl
bkxheWVyKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9S
VCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFn
ZShOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAjZW5kaWYKIAotICAgIGJvb2wgcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKik7Ci0gICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91
bmRzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkxheWVyKFBsYXRmb3JtTGF5ZXIqKSBmaW5hbDsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKKwor
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJ
ZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAgICAg
Y29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQyI7IH0KQEAgLTcwLDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
KyNlbmRpZgogCiAgICAgUmV0YWluUHRyPFdlYlZpZGVvQ29udGFpbmVyTGF5ZXI+IG1fdmlkZW9J
bmxpbmVMYXllcjsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KaW5kZXggZDUwZDcy
MzY4YWNlNGI2NDE5YTc1NjBhMTE0YmI3YTY5NGY3MzQ1My4uYmM2NGFmZmQ0ZmMzNGViYzM4MmQx
YjE4OTU2NjkxYjA1MzU4NjUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtNDMsMTEgKzQzLDE4IEBAIE9CSkNfQ0xBU1MgQVZQbGF5
ZXJMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiBWaWRlb0xheWVyTWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBM
b2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKICAgICA6IG1fbG9nZ2Vy
KGxvZ2dlcikKICAgICAsIG1fbG9nSWRlbnRpZmllcihsb2dJZGVudGlmaWVyKQogewogfQorI2Vu
ZGlmCisKK1BsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9JbmxpbmVM
YXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKK30K
IAogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9MYXllciwgSW50U2l6ZSBjb250ZW50U2l6ZSkKIHsKQEAgLTg3LDEwICs5NCw5IEBA
IHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpkaWREZXN0cm95VmlkZW9MYXllcigpCiAKICNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAKLXZvaWQgVmlkZW9MYXllck1hbmFn
ZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBp
bWFnZSkKK1BsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIoKSBjb25zdAogewotICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCi0gICAgICAg
IFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHM6KF9fYnJpZGdlIGlkKWltYWdlLmdldCgp
XTsKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKTsKIH0KIAogdm9pZCBW
aWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5
ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIgY3VycmVudEltYWdlKQpAQCAtMTQwLDYgKzE0Niwx
MSBAQCB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07
CiB9CiAKK0Zsb2F0UmVjdCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKK30KKwog
dm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0
UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIHZpZGVvRnVsbHNjcmVlbkZyYW1lLngoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUu
eSgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCAiLCAiLCB2aWRlb0Z1bGxz
Y3JlZW5GcmFtZS5oZWlnaHQoKSk7CkBAIC0xNTIsNiArMTYzLDEyIEBAIHZvaWQgVmlkZW9MYXll
ck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgdmlkZW9GdWxs
c2NyZWVuRnJhCiAgICAgc3luY1RleHRUcmFja0JvdW5kcygpOwogfQogCit2b2lkIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIgaW1hZ2UpCit7CisgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAgW21f
dmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOwor
fQorCiAjZW5kaWYKIAogYm9vbCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnJlcXVpcmVzVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMjY1YjdlMmQ4NTQy
ODRkZTc5ZTc2ZGQ5YWU4MWExZjNjMDllMGJmNC4uNDFiNTM2NmY4YzRjOTQ1NGMzMTU4YTFjNWE2
MzdjNmM1MDM1NjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5l
TGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYg
ZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOworICAgIHZvaWQgcHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxv
YXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOwog
ICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBsb2FkKFVSTCYmLCBP
cHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRl
bnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTI0LDggKzEyNCw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFz
cGVjdFJhdGlvKGJvb2wpOwogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAg
ICB2b2lkIGVudGVyRnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
VmlkZW9HcmF2aXR5KTsKICNlbmRpZgogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0
ZUNoYW5nZWQoYm9vbCk7CkBAIC0xMzgsOSArMTM2LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwotI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVu
Y2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYp
OwotI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDBhOWI5ODE2MTA3YmViYmFj
ZWExM2M1MjViYTE4YjdkYmY2NWUwNzAuLjU5YTBhY2FhYTFmNGNjNjEzMDc1NTI2ZjA5MzU1MTk0
ODJlZjFhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsy
NCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29s
IHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJl
bG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJp
bmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhv
c3RpbmdDb250ZXh0SUQ+IGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8V2Vi
S2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0
SWQpIEFzeW5jCisgICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250
ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRp
b25hbDxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwg
V2ViQ29yZTo6Q29udGVudFR5cGUgY29udGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChz
dHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmln
dXJhdGlvbikgQXN5bmMKICAgICBDYW5jZWxMb2FkKCkKQEAgLTY4LDE0ICs2OCw2IEBAIG1lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6
ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jaWYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQotICAgIFNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKFdlYkNv
cmU6OkZsb2F0UmVjdCByZWN0LCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jZW5kaWYK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIEVudGVy
RnVsbHNjcmVlbigpIC0+ICgpIEFzeW5jCi0gICAgRXhpdEZ1bGxzY3JlZW4oKSAtPiAoKSBBc3lu
YwogI2VuZGlmCiAKICAgICAjIFBhaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2Nv
YS5tbQppbmRleCBkOTgyNGU4MjNhNjA5YTY3M2Q0MDEyNTNlODg0NDlhZTg3ODA2OWE3Li41OWY4
ZTUwOWYwYmQxZDVjYTRhNGM4YjI0OTIxNWVmNTFhMTgwZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0KQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJv
b2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2
aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhv
c3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJl
bmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wbGF5ZXItPnNldFByaXZhdGVC
cm93c2luZ01vZGUocHJpdmF0ZU1vZGUpOwogICAgIG1fcGxheWVyLT5zZXRQcmVsb2FkKHByZWxv
YWQpOwpAQCAtNDUsMTEgKzQ1LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWEKICAgICBtX3Zp
ZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAgaWYgKCFtX2lubGluZUxh
eWVySG9zdGluZ0NvbnRleHQpCiAgICAgICAgIG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dCA9
IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsK
LSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgaWYgKCFtX2Z1bGxzY3Jl
ZW5MYXllckhvc3RpbmdDb250ZXh0KQotICAgICAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdD
b250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJv
Y2VzcygpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4
dC0+Y29udGV4dElEKCksIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJ
RCgpKTsKLSNlbmRpZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5n
Q29udGV4dC0+Y29udGV4dElEKCkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKQEAgLTc0LDMwICs3MCw2IEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNpCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0K
IAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHZpZGVvRnVsbHNjcmVlbkxheWVyID0gbV9w
bGF5ZXItPmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCk7Ci0gICAgW3ZpZGVvRnVsbHNjcmVl
bkxheWVyIHNldE5hbWU6QCJXZWIgVmlkZW8gRnVsbHNjcmVlbiBMYXllciAocmVtb3RlKSJdOwot
ICAgIFt2aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRQb3NpdGlvbjpDR1BvaW50WmVyb107Ci0gICAg
bV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvRnVsbHNj
cmVlbkxheWVyLmdldCgpKTsKLQotICAgIG1fcGxheWVyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cih2aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBtX3BsYXll
ci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobnVsbHB0ciwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXll
cihudWxscHRyKTsKLX0KLQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0
IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKLXsKLSAgICBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFjaFNlbmRSaWdodC5zZW5kUmlnaHQo
KSk7Ci0gICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOwotfQotI2Vu
ZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHlHU3RyZWFtZXIuY3BwCmluZGV4IDlmMGJmYjgyNjAyY2ViMTVlNWFjN2NmZjQ1ZmYx
ODFjNzRlMTBjNjYuLjdjOTI2M2M4NzdhZDZlMDMwZTBiZmQ3YzgxYTQ3ZjQ5NGE1YmNmMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcApA
QCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElE
PiYmIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpPiYmKQordm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KQEAgLTQ4LDE4ICs0OCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotI2Vu
ZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAppbmRleCBhMzlmNWQ2M2QxMmRmZDc2NDMwNmZjODI3NTUzMTQxZWZlZDZlZGNiLi4xNTUz
YjQ4ZDMxZDMyNzZjODgzZDBiODYxMzM3ZDMwYzI2YmQzYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKLSNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE0uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1G
YWN0b3J5LmgiCkBAIC0zNiw5ICszNSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJUZXh0
VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgotI2lu
Y2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KQEAgLTQ4LDYgKzQ1LDggQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC05MSwxOCArOTAsMjkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgw
KQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXImIG1hbmFnZXIpCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBt
X21lZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQorI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIDogbV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXll
ckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCisjZW5kaWYKKyAgICAsIG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1fbWVk
aWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5l
SWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKLSNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKLSAgICAsIG1fbG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkp
Ci0gICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIo
KSkKK3sKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKK30KICNlbmRpZgorCitNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAgIElO
Rk9fTE9HKExPR0lERU5USUZJRVIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9M
YXllck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisjZW5kaWYKKyAgICBtX21hbmFn
ZXIuZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIobV9pZCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pCkBAIC0xMTIsMjcgKzEyMiwxOSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mJgogICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKIH0KIAotTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKLXsKLSAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBtX21hbmFnZXIuZGVsZXRlUmVtb3RlTWVkaWFQ
bGF5ZXIobV9pZCk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJl
Rm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKQogewogICAgIGF1dG8gc2NhbGUg
PSBtX3BsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFy
ZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFy
ZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBhdXRvIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250
ZXh0SWQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRl
TW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgaWYgKCFpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9M
YXllclJlbW90ZSh0aGlzLCBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQudmFsdWUoKSk7Ci0j
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgICAgICBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0SWQgPSBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkOwot
I2VuZGlmCisgICAgICAgIG1fdmlkZW9MYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUodGhp
cywgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCkpOworICAgICAgICBtX3ZpZGVv
TGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fdmlkZW9MYXllci5nZXQoKSwgc25hcHBlZElu
dFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKSk7CiAgICAgfSwg
bV9pZCk7CiB9CiAKQEAgLTY0MywzMiArNjQ1LDIwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1
cm4gbV92aWRlb0xheWVyTWFuYWdlci0+dmlkZW9JbmxpbmVMYXllcigpOworI2Vsc2UKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIpIHsKLSAgICAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oKSwgW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIG1fcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbiA9IGZhbHNlOwotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICAgICAgfSwgbV9pZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBB
U1NFUlQobV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSA9PSB2aWRlb0Z1bGxzY3JlZW5MYXll
cik7Ci0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBtX3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gPSB0
cnVlOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0sIG1faWQpOworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
bnVsbHB0cik7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKQEAgLTY3Niw5ICs2NjYsMTIgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUlt
YWdlKCkKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6VXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKSwgbV9pZCk7CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNl
ZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdo
dCYgc2VuZFJpZ2h0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVs
bHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQogewotICAgIGNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRWaWRlb0Z1bGxzY3Jl
ZW5GcmFtZUZlbmNlZChyZWN0LCBzZW5kUmlnaHQpLCBtX2lkKTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJ3aWR0aCA9ICIsIHJlY3Quc2l6ZSgp
LndpZHRoKCksICIsIGhlaWdodCA9ICIsIHJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKKyAgICBtX3Zp
ZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKKyNlbmRpZgog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuR3Jh
dml0eShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkgZ3Jhdml0eSkKQEAg
LTEwMjEsNiArMTAxNCwzMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0U2hv
dWxkQ29udGludWVBZnRlcktleU5lZWRlZChib29sIHNob3VsZCkKIH0KICNlbmRpZgogCitib29s
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIG1fdmlkZW9MYXll
ck1hbmFnZXItPnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyNlbHNlCisgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbiogcmVwcmVzZW50YXRpb24pCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byog
cmVwcmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRpb24tPnBs
YXRmb3JtTGF5ZXIoKSA6IG5pbDsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkxheWVyKHJlcHJlc2VudGF0aW9uTGF5ZXIpOworI2VuZGlmCit9CisK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKK3sK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zeW5jVGV4dFRy
YWNrQm91bmRzKCk7CisjZW5kaWYKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnRyYWNrc0NoYW5nZWQoKQogewogICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpUcmFja3NDaGFuZ2VkKCksIG1faWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKaW5kZXggNTA3ZmI4NjQyNTQxMWQxOTVhODQ3ZGI1N2NlNDQ4NzUxYTM5ZjQ1
NS4uMWQ4ZGI3ODJiN2I4NDI0NjEwZDVkYzE3YWEzNzZjOWM3N2ViNzg5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAi
TGF5ZXJIb3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIgor
I2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5o
PgpAQCAtNDgsMTUgKzUxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBHZW5lcmlj
Q3VlRGF0YTsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTsKLWNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOworY2xhc3MgVmlkZW9M
YXllck1hbmFnZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZTsKLWNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CiBjbGFzcyBVc2Vy
RGF0YTsKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb247CiAKQEAgLTEwMSw3ICsxMDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJzdFZp
ZGVvRnJhbWVBdmFpbGFibGUoKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNldFZp
ZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpN
YWNoU2VuZFJpZ2h0Jik7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICNl
bmRpZgogCiAgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CkBAIC0xNDksMTQg
KzE0OCwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVs
ZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgogCitwcml2YXRlOgorCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAqbV9sb2dnZXI7IH0KKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fbG9nZ2VyOyB9CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSI7IH0KICAgICBjb25z
dCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB2b2lkKj4obV9sb2dJZGVudGlmaWVyKTsgfQogICAgIFdURkxvZ0NoYW5uZWwm
IGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKICNlbmRpZgogCi1wcml2YXRl
OgogICAgIHZvaWQgbG9hZChjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYs
IGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wg
cHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkLCBib29sIHByZXNlcnZl
c1BpdGNoLCBib29sIHByZXBhcmUpIGZpbmFsOwogCkBAIC0zMjQsMTEgKzMyNywxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0U2hvdWxkQ29udGludWVBZnRlcktleU5lZWRlZChib29sKSBmaW5h
bDsKICNlbmRpZgogCi0gICAgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uOyB9
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOwogICAgIHZvaWQgc3lu
Y1RleHRUcmFja0JvdW5kcygpIGZpbmFsOwotI2VuZGlmCisKICAgICB2b2lkIHRyYWNrc0NoYW5n
ZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgYmVnaW5TaW11bGF0ZWRIRENQRXJyb3IoKSBmaW5hbDsK
QEAgLTM1OCwxNCArMzYwLDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CiAKICAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07Ci0gICAgUmVmUHRy
PFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9h
ZGVyOwotICAgIGJvb2wgbV9yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIHsgZmFsc2Ug
fTsKLSAgICBQbGF0Zm9ybUxheWVyQ29udGFpbmVyIG1fdmlkZW9JbmxpbmVMYXllcjsKLSAgICBQ
bGF0Zm9ybUxheWVyQ29udGFpbmVyIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXI7CisgICAgUmVmPFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVy
OwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXI7CisgICAgVW5pcXVlUmVmPFdlYkNvcmU6OlZpZGVv
TGF5ZXJNYW5hZ2VyPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwogI2VuZGlmCi0gICAgT3B0aW9uYWw8
TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQ7
CisgICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvTGF5ZXI7CisKICAgICBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAg
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKQEAgLTM4OCwxMiArMzg4
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9z
ZWVraW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJl
bGVzcyB7IGZhbHNlIH07Ci0KLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBSZWZQdHI8
Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7
Ci0jZW5kaWYKLQogICAgIGJvb2wgbV9pbnZhbGlkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmluZGV4IDRhODRjMjUxZGJi
NzM3MGUzMWM5MDg5NDdiNjNlNGQ0OWRhY2RmNjguLmQ1Nzc2NjI4ODk5MzBlNTI2NzczNTkxZTYz
ODMwYjA2MWFjYWYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVDb2NvYS5tbQpAQCAtMjgsOTMgKzI4LDMzIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIFBMQVRGT1JNKENPQ09BKQogCi0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2lt
cG9ydCA8V2ViQ29yZS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgotI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKLQotUGxhdGZvcm1MYXllckNvbnRhaW5lciBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCkKLXsKLSAgICBpZiAoIW1fZnVs
bHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5MYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGF1
dG8gc3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9y
SG9zdGluZ0NvbnRleHQobV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCkp
OwotICAgICAgICBbc3VibGF5ZXIgc2V0TmFtZTpAIlZpZGVvRnVsbHNjcmVlbkxheWVyU3VibGF5
ZXIiXTsKLSAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKDAsIDApXTsK
LSAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6c3VibGF5ZXIuZ2V0
KCldOwotICAgIH0KLQotICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyOwotfQotCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2Vi
Q29yZTo6RmxvYXRSZWN0IHJlY3QpCi17Ci0gICAgYXV0byBjb250ZXh0ID0gW21fdmlkZW9GdWxs
c2NyZWVuTGF5ZXIgY29udGV4dF07Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlz
YWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIE1hY2hTZW5kUmlnaHQgZmVuY2VTZW5kUmlnaHQgPSBN
YWNoU2VuZFJpZ2h0OjphZG9wdChbY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsKLSAgICBzZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBmZW5jZVNlbmRSaWdodCk7Ci0KLSAgICBb
Q0FUcmFuc2FjdGlvbiBjb21taXRdOwotCi0gICAgc3luY1RleHRUcmFja0JvdW5kcygpOwotfQot
CitNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRp
YVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
ZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECisgICAgOiBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVyTG9n
Z2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIoKSkKICNlbmRpZgotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJl
cHJlc2VudGF0aW9uKQorICAgICwgbV9wbGF5ZXIocGxheWVyKQorICAgICwgbV9tZWRpYVJlc291
cmNlTG9hZGVyKCpwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9hZGVyKCkpCisgICAgLCBtX3ZpZGVv
TGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8VmlkZW9MYXllck1hbmFnZXJPYmpDPihsb2dnZXIo
KSwgbG9nSWRlbnRpZmllcigpKSkKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9y
ZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX2lkKHBsYXll
cklkZW50aWZpZXIpCiB7Ci0jaWYgIUVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAg
ICBVTlVTRURfUEFSQU0ocmVwcmVzZW50YXRpb24pOwotI2Vsc2UKLSAgICBQbGF0Zm9ybUxheWVy
KiByZXByZXNlbnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb24gPyByZXByZXNlbnRhdGlvbi0+
cGxhdGZvcm1MYXllcigpIDogbmlsOwotCi0gICAgaWYgKHJlcHJlc2VudGF0aW9uTGF5ZXIgPT0g
bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKSB7Ci0gICAgICAgIHN5bmNUZXh0VHJhY2tC
b3VuZHMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwotCi0gICAg
aWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikKLSAgICAgICAgW21fdGV4dFRyYWNr
UmVwcmVzZW50YXRpb25MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0KLSAgICBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgPSByZXByZXNlbnRhdGlvbkxheWVyOwotCi0gICAgaWYg
KG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgJiYgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVy
KSB7Ci0gICAgICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLSAgICAgICAgW21fdmlkZW9GdWxs
c2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyLmdl
dCgpXTsKLSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotI2VuZGlmCisgICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKLXsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHx8ICFtX3RleHRUcmFj
a1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtDQVRyYW5zYWN0
aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwot
Ci0gICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciBzZXRGcmFtZTptX3ZpZGVvRnVs
bHNjcmVlbkxheWVyLmdldCgpLmJvdW5kc107Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRd
OwotI2VuZGlmCitQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQoreworICAgIHJldHVybiBhZG9wdE5TKFtb
Q0FMYXllciBhbGxvY10gaW5pdF0pOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCg==
</data>
<flag name="commit-queue"
          id="425770"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409947</attachid>
            <date>2020-09-28 19:08:00 -0700</date>
            <delta_ts>2020-09-28 19:18:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-216995-20200928190759.patch</filename>
            <type>text/plain</type>
            <size>52729</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uMDkyYTk5MDAzOTdiMmYxNGRlYTRjZTczNDdlMzQ3
NDcwNTUwZmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgRXhwb3J0IFRleHRUcmFja1JlcHJlc2VudGF0aW9u
IGFuZCBWaWRlb0xheWVyTWFuYWdlci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIFZpZGVvTGF5ZXJNYW5hZ2VyLmguCisgICAgICAg
IEV4cG9ydCBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiwgV2ViVmlkZW9Db250YWluZXJMYXllciBh
bmQgVmlkZW9MYXllck1hbmFnZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uaDoKKyAgICAgICAgTWlub3IgY2xlYW4tdXAuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgQWRkIHRoaXMgaW50ZXJmYWNlIHNvIHRoYXQgd2UgY2FuIHVzZSBWaWRlb0xheWVyTWFuYWdl
ciBpbiB0aGUgQysrIGNvZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvSW5saW5lTGF5ZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxz
Y3JlZW5MYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9i
akM6OnZpZGVvRnVsbHNjcmVlbkZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAg
ICAgICBGaXggdGhlIGlzc3VlIHdoZW4gUkVMRUFTRV9MT0dfRElTQUJMRUQgaXMgZGVmaW5lZCBh
bmQgYWRkIFdFQkNPUkVfRVhQT1JUCisgICAgICAgIHRvIHNvbWUgZnVuY3Rpb25zLgorCiAyMDIw
LTA5LTI4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjY3MzI5KTogQ3Jhc2ggZHVlIHRvIG51bGwtZGVyZWZlcmVuY2Ugb2YgZnJhbWUgcG9p
bnRlciBpbiBET01TZWxlY3Rpb246OnJhbmdlQ291bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODdlYWExMzZiZWQx
NzNiMzk3OTA2ZGNiMjE2NjcwZGVlMTNmMDVjMS4uZjhmYzllZTZiZDFmZGFmYmQ2Y2U0ZjQxMjNm
ODVlODBhM2IxODJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAyMC0wOS0yOCAgUGVu
ZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJv
Y2Vzc10gVXNlIFZpZGVvTGF5ZXJNYW5hZ2VyIHRvIG1hbmFnZSBsYXllcnMgb2YgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTY5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSByZW1vdGUgaG9zdGluZyBsYXllciBpbiB0aGUg
R1BVIHByb2Nlc3MgZm9yIHZpZGVvIGZ1bGxzY3JlZW4gYW5kCisgICAgICAgIHBpY3R1cmUtaW4t
cGljdHVyZS4gV2UgZG9uJ3QgbmVlZCB0byBrZWVwIGEgbGF5ZXIgaW4gdGhlIEdQVSBwcm9jZXNz
IGZvciB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUgYmVj
YXVzZSBubyByZW5kZXJpbmcgd2lsbCBiZSBkb25lIGZvciB0aGF0IGxheWVyLiBXZSBkb24ndCBu
ZWVkCisgICAgICAgIEVudGVyRnVsbHNjcmVlbiwgRXhpdEZ1bGxzY3JlZW4gYW5kIFNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lRmVuY2VkIElQQyBtZXNzYWdlcyBhZnRlciByZW1vdmluZworICAgICAg
ICB0aGUgbGF5ZXIgYmVjYXVzZSB0aGUgUmVtb3RlTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGlu
IHRoZSB3ZWIgcHJvY2VzcyBjYW4gZGVhbCB3aXRoCisgICAgICAgIHRoZSB2aWRlbyBwcmVzZW50
YXRpb24gbW9kZSBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgdW51c2VkIElQ
QyBtZXNzYWdlcyBhZnRlciByZW1vdmluZyB0aGUgcmVtb3RlIGhvc3RpbmcgbGF5ZXIgZm9yIHZp
ZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAgYW5kIHBpY3R1cmUtaW4tcGljdHVyZS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjplbnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpleGl0RnVsbHNjcmVlbik6IERlbGV0ZWQuCisgICAgICAgIERpdHRvLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIFJlbW92
ZSB0aGUgY29kZSByZWxhdGVkIHRvIHRoZSByZW1vdGUgaG9zdGluZyBsYXllciBmb3IgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToK
KyAgICAgICAgVXNlIFZpZGVvTGF5ZXJNYW5hZ2VyIHRvIG1hbmFnZSB0aGUgbGF5ZXIuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVu
RnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50
YXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzeW5jVGV4dFRyYWNrQm91bmRzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOgorICAgICAgICBOZWVkIHRvIG1vdmUgdGhlIExvZ2dlciB1cCBpbiB0aGUgZGF0YSBtZW1i
ZXJzIHNvIHRoYXQgb3RoZXIgbWVtYmVycyBjYW4gdXNlIGl0CisgICAgICAgIGluIHRoZSBjb25z
dHJ1Y3RvciwgZS5nLiwgVmlkZW9MYXllck1hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0
ZVZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnN5bmNUZXh0VHJhY2tCb3VuZHMpOiBEZWxldGVkLgorICAgICAgICBTaW1wbGlmeSB0aGUgaW1w
bGVtZW50YXRpb24gYnkgbWFuYWdpbmcgbGF5ZXJzIHdpdGggVmlkZW9MYXllck1hbmFnZXIuCisK
IDIwMjAtMDktMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2Ugc3VyZSBvdXIgY2FsbHMgdG8gQVZDYXB0dXJlRGV2aWNlIHJlcXVlc3RBY2Nlc3NGb3JN
ZWRpYVR5cGUgZG8gcHJvY2Vzc2luZyBvbiB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IDdlOGQ1MzU1MThiMTUwMGYzM2RkZGI5ZDJiN2IyMDA1YzM2MTdjNGUuLjA3NTgxODRi
ZTgzYmRkMzE0NjcwNjU3MDZkYWQ5MmMwZmQ0OTViYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
MTIxMyw5ICsxMjEzLDExIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1RhYlNpemUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aENhY2hlLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9XaW5kUnVsZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVmOWQ1NThhNjIzY2U1NjBiMzFj
YjJiZjdjNGJiOWFkOGRlOTkyMy4uZDM1MDcxNGI1MGNmNDVjYWE4NjNmNjUxYjUzYWI5MmEwNjE5
MmNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjMwLDcgKzYzMCwxMSBAQAogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjgg
LyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQ
aWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREVGMDZDRDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFEOUYwRkMxMjEyMjAyOUIwMDVEOEZENCAvKiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgw
RSAvKiBTaGFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkxREFCMzExMjI1MUQ2QkYzMDBGQzk0ODUgLyogV2ViVmlkZW9Db250YWluZXJM
YXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4
QjMxQTEyMzc5REM4MzAwODgzRkRFIC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzExNDI1MUQ3
MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRl
b0xheWVyTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlck9i
akMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVB
MThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREJDMUI1NjIzNDdCM0Qy
MDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyog
UGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUREM0I0QzYyNTFEQTBCODAwNjlCMjRBIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gKi87IH07CiAJCTFERjdFODFGMjUxQTlFMDYwMERCOEY2MSAvKiBUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0REMUU1MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMx
RTIxQkExNzAwNjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAw
NjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGNzJCRjBCMTg3RkQ0NUMwMDA5QkNC
MyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGNzJCRjA5MTg3RkQ0MjcwMDA5QkNCMyAvKiBU
aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTU4OCw3ICsxNTkyLDYgQEAKIAkJNTJCMEQ0QkUx
QzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRm
b3JtVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJC
MEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0
QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUyRDVBMThGMUM1NDU5MjMwMERF
MzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9M
YXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJE
NUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJF
MkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAv
KiBNZWRpYVByb2R1Y2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTY3MjcsNiArNjczMCw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkwMENBNkNE
RiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0
dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9M
YXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAw
NEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZp
Z2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjEx
QkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNo
YXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzE5LDggKzg3MjMs
OCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0
QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0
IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxl
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTJENUExOEQxQzU0NTkwMzAwREUz
NEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CisJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xh
eWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVBMThF
MUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjE5Niw2ICsyNjIwMCw3IEBA
CiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkw
RjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFB
MEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCisJCQkJMURBQjMxMTMy
NTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUEx
NzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0Q2RkU1QkIy
NEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEyNEJD
RTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLApAQCAtMjg0OTUsMTAgKzI4NTAwLDYg
QEAKIAkJRTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3
MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCi0JCQkJRTRBNjY0
QzYyNTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywK
LQkJCQlFNEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvckxlZ2FjeVBhdGguaCAqLywKLQkJCQlFNEE2NjRDNDI1MjFCNzc3MDA3MDgxREMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCAqLywKIAkJCQlFNDE4MDI1NjIz
RDQ1NEI1MDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCAqLywKIAkJCQlF
NDE4MDI1MzIzRDQ1NDlBMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggKi8s
CiAJCQkJRTQwM0I3OUYyNTFCMTE4QjAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJh
Z2UuY3BwICovLApAQCAtMjg1MDcsNiArMjg1MDgsMTAgQEAKIAkJCQlFNEFCQUJEQjIzNjA4OEZE
MDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8sCiAJCQkJRTQzMTJB
QjUyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgKi8s
CiAJCQkJRTQzMTJBQjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5h
dGlvbi5oICovLAorCQkJCUU0QTY2NEM3MjUyMUI3NzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yLmNwcCAqLywKKwkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oICovLAorCQkJCUU0QTY2NEM1MjUyMUI3Nzgw
MDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oICovLAor
CQkJCUU0QTY2NEM0MjUyMUI3NzcwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJh
dG9yTW9kZXJuUGF0aC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMjQ0Nyw3ICszMjQ1Miw2IEBACiAJCQkJMDc5NjlE
QjAxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlNlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc5NjlEQjIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5NjlEQjYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDSWNl
Q2FuZGlkYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMg
LyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkRDQjRDMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RENCNEUxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRD
SWNlR2F0aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEVDMTlFRTM0MUUw
MEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQ5Myw3ICsz
MjQ5Nyw2IEBACiAJCQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAv
KiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODI0
MzJBMEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTFRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2OUQxMTkwMkE0MjAwN0U5Njg0IC8qIEpT
U1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTExMTkw
MkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODY2MjlEMzA5REEyQjQ4MDA5NjMzQTcgLyogSlNTdGF0aWNSYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMjc4NSw2ICszMjc4OCw5IEBACiAJCQkJRTQwM0I3QTIyNTFCMTE5
MzAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MDNCN0EzMjUxQjExQzEwMDE5RTgwMCAvKiBMYXlv
dXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENDMjUy
MUQ0QUYwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25S
dW5JdGVyYXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENFMjUyMUQ0
QzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkZBNEMwMTIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5
b3V0TGluZUJyZWFrQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBD
NEMwN0UgLyogTGF5b3V0TWlsZXN0b25lLmggaW4gSGVhZGVycyAqLywKQEAgLTMyOTYzLDcgKzMy
OTY5LDYgQEAKIAkJCQlDOTZGNUVDODFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50
ZXJydXB0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5NkY1RUM1MUI1ODcyMjYw
MDkxRUE5RCAvKiBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzkwRjY1NTYxQjIyNTNCRTAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE3RjdBRUYyMTM5QkY2RjAwRkJBN0VDIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYy
RSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM4MSw2ICsz
NDM4Niw4IEBACiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFB
ODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTFEQUIzMTE0MjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xheWVy
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTUyNTFENzREQjAwRkM5NDg1IC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODND
NDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDU1Nyw2ICszNDU2NCw3IEBACiAJCQkJMUY4NzU2QjIxRTIy
QzMzNTAwNDJDNDBEIC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFERUE0NTYxQjM5RjREOTAwRjc3MTc4IC8qIFdlYlN5c3RlbUJhY2tkcm9w
TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkEzMTQ5NjkzOTEwMEZCNUJEOCAvKiBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTIyNTFENkJG
MzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTNGNDJCMzFEMTg4MTE5MUIwMDI3OEFBQyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEN0RBMEYyMjQzNUVCMTkwMEYwNDhEMSAvKiBX
ZWJWaWV3VmlzdWFsSWRlbnRpZmljYXRpb25PdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
MTIxNzFGNjE2QThDRjBCMDAwMDUzQ0EgLyogV2ViVlRURWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTgyNSw3ICszNTgzMyw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8q
IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3
M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTJENUExOEYxQzU0
NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTFERDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOEI1QTQyMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3Vy
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKaW5kZXggODFl
OGMyYmNmYTdmNzdjY2YzODYzZGU3MTkzN2UyYWIzMDcxMmJjNi4uNGM1ZTMyM2Y0YTU1NGVlOWYy
ZTE0NjAzYzE4NjBhNjg2NjU1MTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcApAQCAtMjQs
MTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRU
cmFja1JlcHJlc2VudGF0aW9uLmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgotCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaAppbmRleCAzNDFiMjMyYWUzMDhkNDI0
ZGY3MWVjMzJkNjRjNGJhMDQ2NzQ0ODJjLi5kNzI4ZGNiYzQ1YjJlNjIyNWE2ZDJmN2EyMGViYzI5
ODMyMjk3Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uX2gKLSNkZWZpbmUgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25faAorI3ByYWdt
YSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU8pCiAKQEAgLTYxLDUgKzYwLDMgQEAgcHVibGljOgog
fQogCiAjZW5kaWYKLQotI2VuZGlmIC8vIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFiMDdmODZmMzkzMTc4ZjRjZjdmZTgzYTgxNDc4MDg0ZWJmMjI4MzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xh
eWVyTWFuYWdlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgor
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEZsb2F0UmVjdDsKK2NsYXNzIEludFNpemU7CisKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRlb0xheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKiwgSW50U2l6ZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95VmlkZW9MYXllcigpID0gMDsKKworI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSA9IDA7CisgICAgdmlydHVh
bCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikg
PSAwOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5j
VGV4dFRyYWNrQm91bmRzKCkgPSAwOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCAyMTI4NzBhODg2NDE2YWMzM2M4OTNkOTlm
YWVhZTI3MmE3NTE0NThiLi5jZGM0ZmUwMTdjZmEzOTg1NzBhOTMxNWZlMTZkNzAyNjNmMzY5YjVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVy
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCIKICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC0zNywz
MiArMzgsNDQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbjsKLQotY2xhc3MgVmlkZW9MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGlj
IExvZ2dlckhlbHBlciB7CitjbGFzcyBWaWRlb0xheWVyTWFuYWdlck9iakMgZmluYWwKKyAgICA6
IHB1YmxpYyBWaWRlb0xheWVyTWFuYWdlcgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
ICwgcHVibGljIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVmlkZW9MYXllck1hbmFnZXJPYmpDKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
KwogcHVibGljOgotICAgIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25z
dCB2b2lkKik7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgV0VCQ09SRV9FWFBPUlQg
VmlkZW9MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKKyNlbHNl
CisgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJPYmpDKCkgPSBkZWZhdWx0Owor
I2VuZGlmCiAKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0lubGluZUxheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOyB9CisgICAgflZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQygpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVy
ICosIEludFNpemUgY29udGVudFNpemUpOwotICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkg
Y29uc3QgZmluYWw7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxh
dGZvcm1MYXllciosIEludFNpemUgY29udGVudFNpemUpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5M
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KLSAg
ICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKTsKLSAgICBG
bG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVs
bHNjcmVlbkZyYW1lOyB9Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QpOwotICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVl
bkxheWVyKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9S
VCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFn
ZShOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAjZW5kaWYKIAotICAgIGJvb2wgcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKik7Ci0gICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91
bmRzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkxheWVyKFBsYXRmb3JtTGF5ZXIqKSBmaW5hbDsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKKwor
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJ
ZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAgICAg
Y29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQyI7IH0KQEAgLTcwLDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
KyNlbmRpZgogCiAgICAgUmV0YWluUHRyPFdlYlZpZGVvQ29udGFpbmVyTGF5ZXI+IG1fdmlkZW9J
bmxpbmVMYXllcjsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KaW5kZXggZDUwZDcy
MzY4YWNlNGI2NDE5YTc1NjBhMTE0YmI3YTY5NGY3MzQ1My4uYmM2NGFmZmQ0ZmMzNGViYzM4MmQx
YjE4OTU2NjkxYjA1MzU4NjUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtNDMsMTEgKzQzLDE4IEBAIE9CSkNfQ0xBU1MgQVZQbGF5
ZXJMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiBWaWRlb0xheWVyTWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBM
b2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKICAgICA6IG1fbG9nZ2Vy
KGxvZ2dlcikKICAgICAsIG1fbG9nSWRlbnRpZmllcihsb2dJZGVudGlmaWVyKQogewogfQorI2Vu
ZGlmCisKK1BsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9JbmxpbmVM
YXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKK30K
IAogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9MYXllciwgSW50U2l6ZSBjb250ZW50U2l6ZSkKIHsKQEAgLTg3LDEwICs5NCw5IEBA
IHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpkaWREZXN0cm95VmlkZW9MYXllcigpCiAKICNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAKLXZvaWQgVmlkZW9MYXllck1hbmFn
ZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBp
bWFnZSkKK1BsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIoKSBjb25zdAogewotICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCi0gICAgICAg
IFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHM6KF9fYnJpZGdlIGlkKWltYWdlLmdldCgp
XTsKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKTsKIH0KIAogdm9pZCBW
aWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5
ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIgY3VycmVudEltYWdlKQpAQCAtMTQwLDYgKzE0Niwx
MSBAQCB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07
CiB9CiAKK0Zsb2F0UmVjdCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKK30KKwog
dm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0
UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIHZpZGVvRnVsbHNjcmVlbkZyYW1lLngoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUu
eSgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCAiLCAiLCB2aWRlb0Z1bGxz
Y3JlZW5GcmFtZS5oZWlnaHQoKSk7CkBAIC0xNTIsNiArMTYzLDEyIEBAIHZvaWQgVmlkZW9MYXll
ck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgdmlkZW9GdWxs
c2NyZWVuRnJhCiAgICAgc3luY1RleHRUcmFja0JvdW5kcygpOwogfQogCit2b2lkIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIgaW1hZ2UpCit7CisgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAgW21f
dmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOwor
fQorCiAjZW5kaWYKIAogYm9vbCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnJlcXVpcmVzVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMjY1YjdlMmQ4NTQy
ODRkZTc5ZTc2ZGQ5YWU4MWExZjNjMDllMGJmNC4uNDFiNTM2NmY4YzRjOTQ1NGMzMTU4YTFjNWE2
MzdjNmM1MDM1NjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5l
TGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYg
ZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOworICAgIHZvaWQgcHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxv
YXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOwog
ICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBsb2FkKFVSTCYmLCBP
cHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRl
bnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTI0LDggKzEyNCw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFz
cGVjdFJhdGlvKGJvb2wpOwogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAg
ICB2b2lkIGVudGVyRnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
VmlkZW9HcmF2aXR5KTsKICNlbmRpZgogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0
ZUNoYW5nZWQoYm9vbCk7CkBAIC0xMzgsOSArMTM2LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwotI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVu
Y2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYp
OwotI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDBhOWI5ODE2MTA3YmViYmFj
ZWExM2M1MjViYTE4YjdkYmY2NWUwNzAuLjU5YTBhY2FhYTFmNGNjNjEzMDc1NTI2ZjA5MzU1MTk0
ODJlZjFhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsy
NCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29s
IHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJl
bG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJp
bmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhv
c3RpbmdDb250ZXh0SUQ+IGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8V2Vi
S2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0
SWQpIEFzeW5jCisgICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250
ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRp
b25hbDxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwg
V2ViQ29yZTo6Q29udGVudFR5cGUgY29udGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChz
dHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmln
dXJhdGlvbikgQXN5bmMKICAgICBDYW5jZWxMb2FkKCkKQEAgLTY4LDE0ICs2OCw2IEBAIG1lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6
ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jaWYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQotICAgIFNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKFdlYkNv
cmU6OkZsb2F0UmVjdCByZWN0LCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jZW5kaWYK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIEVudGVy
RnVsbHNjcmVlbigpIC0+ICgpIEFzeW5jCi0gICAgRXhpdEZ1bGxzY3JlZW4oKSAtPiAoKSBBc3lu
YwogI2VuZGlmCiAKICAgICAjIFBhaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2Nv
YS5tbQppbmRleCBkOTgyNGU4MjNhNjA5YTY3M2Q0MDEyNTNlODg0NDlhZTg3ODA2OWE3Li41OWY4
ZTUwOWYwYmQxZDVjYTRhNGM4YjI0OTIxNWVmNTFhMTgwZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0KQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJv
b2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2
aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhv
c3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJl
bmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wbGF5ZXItPnNldFByaXZhdGVC
cm93c2luZ01vZGUocHJpdmF0ZU1vZGUpOwogICAgIG1fcGxheWVyLT5zZXRQcmVsb2FkKHByZWxv
YWQpOwpAQCAtNDUsMTEgKzQ1LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWEKICAgICBtX3Zp
ZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAgaWYgKCFtX2lubGluZUxh
eWVySG9zdGluZ0NvbnRleHQpCiAgICAgICAgIG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dCA9
IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsK
LSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgaWYgKCFtX2Z1bGxzY3Jl
ZW5MYXllckhvc3RpbmdDb250ZXh0KQotICAgICAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdD
b250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJv
Y2VzcygpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4
dC0+Y29udGV4dElEKCksIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJ
RCgpKTsKLSNlbmRpZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5n
Q29udGV4dC0+Y29udGV4dElEKCkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKQEAgLTc0LDMwICs3MCw2IEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNpCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0K
IAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHZpZGVvRnVsbHNjcmVlbkxheWVyID0gbV9w
bGF5ZXItPmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCk7Ci0gICAgW3ZpZGVvRnVsbHNjcmVl
bkxheWVyIHNldE5hbWU6QCJXZWIgVmlkZW8gRnVsbHNjcmVlbiBMYXllciAocmVtb3RlKSJdOwot
ICAgIFt2aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRQb3NpdGlvbjpDR1BvaW50WmVyb107Ci0gICAg
bV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvRnVsbHNj
cmVlbkxheWVyLmdldCgpKTsKLQotICAgIG1fcGxheWVyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cih2aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBtX3BsYXll
ci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobnVsbHB0ciwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXll
cihudWxscHRyKTsKLX0KLQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0
IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKLXsKLSAgICBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFjaFNlbmRSaWdodC5zZW5kUmlnaHQo
KSk7Ci0gICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOwotfQotI2Vu
ZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHlHU3RyZWFtZXIuY3BwCmluZGV4IDlmMGJmYjgyNjAyY2ViMTVlNWFjN2NmZjQ1ZmYx
ODFjNzRlMTBjNjYuLjdjOTI2M2M4NzdhZDZlMDMwZTBiZmQ3YzgxYTQ3ZjQ5NGE1YmNmMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcApA
QCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElE
PiYmIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpPiYmKQordm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KQEAgLTQ4LDE4ICs0OCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotI2Vu
ZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAppbmRleCBhMzlmNWQ2M2QxMmRmZDc2NDMwNmZjODI3NTUzMTQxZWZlZDZlZGNiLi4xNTUz
YjQ4ZDMxZDMyNzZjODgzZDBiODYxMzM3ZDMwYzI2YmQzYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKLSNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE0uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1G
YWN0b3J5LmgiCkBAIC0zNiw5ICszNSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJUZXh0
VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgotI2lu
Y2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KQEAgLTQ4LDYgKzQ1LDggQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC05MSwxOCArOTAsMjkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgw
KQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXImIG1hbmFnZXIpCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBt
X21lZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQorI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIDogbV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXll
ckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCisjZW5kaWYKKyAgICAsIG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1fbWVk
aWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5l
SWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKLSNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKLSAgICAsIG1fbG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkp
Ci0gICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIo
KSkKK3sKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKK30KICNlbmRpZgorCitNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAgIElO
Rk9fTE9HKExPR0lERU5USUZJRVIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9M
YXllck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisjZW5kaWYKKyAgICBtX21hbmFn
ZXIuZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIobV9pZCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pCkBAIC0xMTIsMjcgKzEyMiwxOSBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mJgogICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKIH0KIAotTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKLXsKLSAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBtX21hbmFnZXIuZGVsZXRlUmVtb3RlTWVkaWFQ
bGF5ZXIobV9pZCk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJl
Rm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKQogewogICAgIGF1dG8gc2NhbGUg
PSBtX3BsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFy
ZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFy
ZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBhdXRvIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250
ZXh0SWQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRl
TW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgaWYgKCFpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9M
YXllclJlbW90ZSh0aGlzLCBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQudmFsdWUoKSk7Ci0j
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgICAgICBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0SWQgPSBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkOwot
I2VuZGlmCisgICAgICAgIG1fdmlkZW9MYXllciA9IGNyZWF0ZVZpZGVvTGF5ZXJSZW1vdGUodGhp
cywgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCkpOworICAgICAgICBtX3ZpZGVv
TGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fdmlkZW9MYXllci5nZXQoKSwgc25hcHBlZElu
dFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKSk7CiAgICAgfSwg
bV9pZCk7CiB9CiAKQEAgLTY0MywzMiArNjQ1LDIwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1
cm4gbV92aWRlb0xheWVyTWFuYWdlci0+dmlkZW9JbmxpbmVMYXllcigpOworI2Vsc2UKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIpIHsKLSAgICAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oKSwgW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIG1fcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbiA9IGZhbHNlOwotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICAgICAgfSwgbV9pZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBB
U1NFUlQobV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSA9PSB2aWRlb0Z1bGxzY3JlZW5MYXll
cik7Ci0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBtX3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gPSB0
cnVlOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0sIG1faWQpOworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
bnVsbHB0cik7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKQEAgLTY3Niw5ICs2NjYsMTIgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUlt
YWdlKCkKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6VXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKSwgbV9pZCk7CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNl
ZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdo
dCYgc2VuZFJpZ2h0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVs
bHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQogewotICAgIGNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpTZXRWaWRlb0Z1bGxzY3Jl
ZW5GcmFtZUZlbmNlZChyZWN0LCBzZW5kUmlnaHQpLCBtX2lkKTsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJ3aWR0aCA9ICIsIHJlY3Quc2l6ZSgp
LndpZHRoKCksICIsIGhlaWdodCA9ICIsIHJlY3Quc2l6ZSgpLmhlaWdodCgpKTsKKyAgICBtX3Zp
ZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKKyNlbmRpZgog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuR3Jh
dml0eShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkgZ3Jhdml0eSkKQEAg
LTEwMjEsNiArMTAxNCwzMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0U2hv
dWxkQ29udGludWVBZnRlcktleU5lZWRlZChib29sIHNob3VsZCkKIH0KICNlbmRpZgogCitib29s
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIG1fdmlkZW9MYXll
ck1hbmFnZXItPnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKKyNlbHNlCisgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbiogcmVwcmVzZW50YXRpb24pCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byog
cmVwcmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRpb24tPnBs
YXRmb3JtTGF5ZXIoKSA6IG5pbDsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkxheWVyKHJlcHJlc2VudGF0aW9uTGF5ZXIpOworI2VuZGlmCit9CisK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKK3sK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zeW5jVGV4dFRy
YWNrQm91bmRzKCk7CisjZW5kaWYKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnRyYWNrc0NoYW5nZWQoKQogewogICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpUcmFja3NDaGFuZ2VkKCksIG1faWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKaW5kZXggNTA3ZmI4NjQyNTQxMWQxOTVhODQ3ZGI1N2NlNDQ4NzUxYTM5ZjQ1
NS4uYTkwZTBkYWE1NDliNjcyN2MzZGNhZTJmN2M4ZDgzODlkMTY5YjczYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCkBAIC0yNywxMyArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAi
TGF5ZXJIb3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIgor
I2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5o
PgpAQCAtNDgsMTUgKzUxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBHZW5lcmlj
Q3VlRGF0YTsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKIGNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybURh
dGFDdWVWYWx1ZTsKLWNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOworY2xhc3MgVmlkZW9M
YXllck1hbmFnZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZTsKLWNsYXNzIFRleHRUcmFja1ByaXZhdGVSZW1vdGU7CiBjbGFzcyBVc2Vy
RGF0YTsKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOwogc3RydWN0IFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogc3RydWN0IFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb247CiAKQEAgLTEwMSw3ICsxMDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJzdFZp
ZGVvRnJhbWVBdmFpbGFibGUoKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNldFZp
ZGVvSW5saW5lU2l6ZUZlbmNlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV1RGOjpN
YWNoU2VuZFJpZ2h0Jik7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICNl
bmRpZgogCiAgICAgdm9pZCBhZGRSZW1vdGVBdWRpb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJik7CkBAIC0xNDksMTQg
KzE0OCwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVs
ZXNzQ2hhbmdlZChib29sKTsKICNlbmRpZgogCitwcml2YXRlOgorCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAqbV9sb2dnZXI7IH0KKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fbG9nZ2VyOyB9CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSI7IH0KICAgICBjb25z
dCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB2b2lkKj4obV9sb2dJZGVudGlmaWVyKTsgfQogICAgIFdURkxvZ0NoYW5uZWwm
IGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKworICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKICNlbmRpZgogCi1wcml2YXRl
OgogICAgIHZvaWQgbG9hZChjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYs
IGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wg
cHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkLCBib29sIHByZXNlcnZl
c1BpdGNoLCBib29sIHByZXBhcmUpIGZpbmFsOwogCkBAIC0zMjQsMTEgKzMyNywxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0U2hvdWxkQ29udGludWVBZnRlcktleU5lZWRlZChib29sKSBmaW5h
bDsKICNlbmRpZgogCi0gICAgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uOyB9
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOwogICAgIHZvaWQgc3lu
Y1RleHRUcmFja0JvdW5kcygpIGZpbmFsOwotI2VuZGlmCisKICAgICB2b2lkIHRyYWNrc0NoYW5n
ZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgYmVnaW5TaW11bGF0ZWRIRENQRXJyb3IoKSBmaW5hbDsK
QEAgLTM1OCwxNCArMzYwLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBwZXJmb3JtVGFza0F0TWVk
aWFUaW1lKEZ1bmN0aW9uPHZvaWQoKT4mJiwgY29uc3QgTWVkaWFUaW1lJikgZmluYWw7CiAKICAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07Ci0gICAgUmVmUHRy
PFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9h
ZGVyOwotICAgIGJvb2wgbV9yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIHsgZmFsc2Ug
fTsKLSAgICBQbGF0Zm9ybUxheWVyQ29udGFpbmVyIG1fdmlkZW9JbmxpbmVMYXllcjsKLSAgICBQ
bGF0Zm9ybUxheWVyQ29udGFpbmVyIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXI7Ci0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcjsKLSNlbmRpZgotICAgIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJ
RD4gbV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkOworICAgIFJlZjxXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKKyAgICBV
bmlxdWVSZWY8V2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXI+IG1fdmlkZW9MYXllck1hbmFnZXI7
CisgICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvTGF5ZXI7CisKICAgICBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXImIG1fbWFuYWdlcjsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAg
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKQEAgLTM4OCwxMiArMzg2
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9z
ZWVraW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJl
bGVzcyB7IGZhbHNlIH07Ci0KLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBSZWZQdHI8
Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7
Ci0jZW5kaWYKLQogICAgIGJvb2wgbV9pbnZhbGlkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmluZGV4IDRhODRjMjUxZGJi
NzM3MGUzMWM5MDg5NDdiNjNlNGQ0OWRhY2RmNjguLmQ1Nzc2NjI4ODk5MzBlNTI2NzczNTkxZTYz
ODMwYjA2MWFjYWYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVDb2NvYS5tbQpAQCAtMjgsOTMgKzI4LDMzIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIFBMQVRGT1JNKENPQ09BKQogCi0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2lt
cG9ydCA8V2ViQ29yZS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oPgotI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKLQotUGxhdGZvcm1MYXllckNvbnRhaW5lciBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCkKLXsKLSAgICBpZiAoIW1fZnVs
bHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5MYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGF1
dG8gc3VibGF5ZXIgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVQbGF0Zm9ybUxheWVyRm9y
SG9zdGluZ0NvbnRleHQobV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkLnZhbHVlKCkp
OwotICAgICAgICBbc3VibGF5ZXIgc2V0TmFtZTpAIlZpZGVvRnVsbHNjcmVlbkxheWVyU3VibGF5
ZXIiXTsKLSAgICAgICAgW3N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKDAsIDApXTsK
LSAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6c3VibGF5ZXIuZ2V0
KCldOwotICAgIH0KLQotICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyOwotfQotCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2Vi
Q29yZTo6RmxvYXRSZWN0IHJlY3QpCi17Ci0gICAgYXV0byBjb250ZXh0ID0gW21fdmlkZW9GdWxs
c2NyZWVuTGF5ZXIgY29udGV4dF07Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlz
YWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIE1hY2hTZW5kUmlnaHQgZmVuY2VTZW5kUmlnaHQgPSBN
YWNoU2VuZFJpZ2h0OjphZG9wdChbY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsKLSAgICBzZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZUZlbmNlZChyZWN0LCBmZW5jZVNlbmRSaWdodCk7Ci0KLSAgICBb
Q0FUcmFuc2FjdGlvbiBjb21taXRdOwotCi0gICAgc3luY1RleHRUcmFja0JvdW5kcygpOwotfQot
CitNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRp
YVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
ZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5
ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCisjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECisgICAgOiBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVyTG9n
Z2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIoKSkKICNlbmRpZgotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJl
cHJlc2VudGF0aW9uKQorICAgICwgbV9wbGF5ZXIocGxheWVyKQorICAgICwgbV9tZWRpYVJlc291
cmNlTG9hZGVyKCpwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9hZGVyKCkpCisgICAgLCBtX3ZpZGVv
TGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8VmlkZW9MYXllck1hbmFnZXJPYmpDPihsb2dnZXIo
KSwgbG9nSWRlbnRpZmllcigpKSkKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9y
ZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX2lkKHBsYXll
cklkZW50aWZpZXIpCiB7Ci0jaWYgIUVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAg
ICBVTlVTRURfUEFSQU0ocmVwcmVzZW50YXRpb24pOwotI2Vsc2UKLSAgICBQbGF0Zm9ybUxheWVy
KiByZXByZXNlbnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRpb24gPyByZXByZXNlbnRhdGlvbi0+
cGxhdGZvcm1MYXllcigpIDogbmlsOwotCi0gICAgaWYgKHJlcHJlc2VudGF0aW9uTGF5ZXIgPT0g
bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKSB7Ci0gICAgICAgIHN5bmNUZXh0VHJhY2tC
b3VuZHMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwotCi0gICAg
aWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikKLSAgICAgICAgW21fdGV4dFRyYWNr
UmVwcmVzZW50YXRpb25MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0KLSAgICBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgPSByZXByZXNlbnRhdGlvbkxheWVyOwotCi0gICAgaWYg
KG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgJiYgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVy
KSB7Ci0gICAgICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKLSAgICAgICAgW21fdmlkZW9GdWxs
c2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyLmdl
dCgpXTsKLSAgICB9Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotI2VuZGlmCisgICAg
SU5GT19MT0coTE9HSURFTlRJRklFUik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKLXsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHx8ICFtX3RleHRUcmFj
a1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtDQVRyYW5zYWN0
aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwot
Ci0gICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciBzZXRGcmFtZTptX3ZpZGVvRnVs
bHNjcmVlbkxheWVyLmdldCgpLmJvdW5kc107Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRd
OwotI2VuZGlmCitQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQoreworICAgIHJldHVybiBhZG9wdE5TKFtb
Q0FMYXllciBhbGxvY10gaW5pdF0pOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCg==
</data>
<flag name="commit-queue"
          id="425773"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409950</attachid>
            <date>2020-09-28 19:17:53 -0700</date>
            <delta_ts>2020-09-28 21:52:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-216995-20200928191752.patch</filename>
            <type>text/plain</type>
            <size>52748</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM4OGZmNjNjZTI4ZGEy
Y2UwY2Y2ZjllMDk4MTU2NTc2NGJkNTE2Mi4uMDkyYTk5MDAzOTdiMmYxNGRlYTRjZTczNDdlMzQ3
NDcwNTUwZmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA5LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgRXhwb3J0IFRleHRUcmFja1JlcHJlc2VudGF0aW9u
IGFuZCBWaWRlb0xheWVyTWFuYWdlci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIFZpZGVvTGF5ZXJNYW5hZ2VyLmguCisgICAgICAg
IEV4cG9ydCBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiwgV2ViVmlkZW9Db250YWluZXJMYXllciBh
bmQgVmlkZW9MYXllck1hbmFnZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uaDoKKyAgICAgICAgTWlub3IgY2xlYW4tdXAuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgQWRkIHRoaXMgaW50ZXJmYWNlIHNvIHRoYXQgd2UgY2FuIHVzZSBWaWRlb0xheWVyTWFuYWdl
ciBpbiB0aGUgQysrIGNvZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvSW5saW5lTGF5ZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp2aWRlb0Z1bGxz
Y3JlZW5MYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9i
akM6OnZpZGVvRnVsbHNjcmVlbkZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAg
ICAgICBGaXggdGhlIGlzc3VlIHdoZW4gUkVMRUFTRV9MT0dfRElTQUJMRUQgaXMgZGVmaW5lZCBh
bmQgYWRkIFdFQkNPUkVfRVhQT1JUCisgICAgICAgIHRvIHNvbWUgZnVuY3Rpb25zLgorCiAyMDIw
LTA5LTI4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjY3MzI5KTogQ3Jhc2ggZHVlIHRvIG51bGwtZGVyZWZlcmVuY2Ugb2YgZnJhbWUgcG9p
bnRlciBpbiBET01TZWxlY3Rpb246OnJhbmdlQ291bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODdlYWExMzZiZWQx
NzNiMzk3OTA2ZGNiMjE2NjcwZGVlMTNmMDVjMS4uZjhmYzllZTZiZDFmZGFmYmQ2Y2U0ZjQxMjNm
ODVlODBhM2IxODJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAyMC0wOS0yOCAgUGVu
ZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgUHJv
Y2Vzc10gVXNlIFZpZGVvTGF5ZXJNYW5hZ2VyIHRvIG1hbmFnZSBsYXllcnMgb2YgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTY5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSByZW1vdGUgaG9zdGluZyBsYXllciBpbiB0aGUg
R1BVIHByb2Nlc3MgZm9yIHZpZGVvIGZ1bGxzY3JlZW4gYW5kCisgICAgICAgIHBpY3R1cmUtaW4t
cGljdHVyZS4gV2UgZG9uJ3QgbmVlZCB0byBrZWVwIGEgbGF5ZXIgaW4gdGhlIEdQVSBwcm9jZXNz
IGZvciB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUgYmVj
YXVzZSBubyByZW5kZXJpbmcgd2lsbCBiZSBkb25lIGZvciB0aGF0IGxheWVyLiBXZSBkb24ndCBu
ZWVkCisgICAgICAgIEVudGVyRnVsbHNjcmVlbiwgRXhpdEZ1bGxzY3JlZW4gYW5kIFNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lRmVuY2VkIElQQyBtZXNzYWdlcyBhZnRlciByZW1vdmluZworICAgICAg
ICB0aGUgbGF5ZXIgYmVjYXVzZSB0aGUgUmVtb3RlTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGlu
IHRoZSB3ZWIgcHJvY2VzcyBjYW4gZGVhbCB3aXRoCisgICAgICAgIHRoZSB2aWRlbyBwcmVzZW50
YXRpb24gbW9kZSBjaGFuZ2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgdW51c2VkIElQ
QyBtZXNzYWdlcyBhZnRlciByZW1vdmluZyB0aGUgcmVtb3RlIGhvc3RpbmcgbGF5ZXIgZm9yIHZp
ZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAgYW5kIHBpY3R1cmUtaW4tcGljdHVyZS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjplbnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpleGl0RnVsbHNjcmVlbik6IERlbGV0ZWQuCisgICAgICAgIERpdHRvLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVGb3JQbGF5YmFjayk6CisgICAgICAgIFJlbW92
ZSB0aGUgY29kZSByZWxhdGVkIHRvIHRoZSByZW1vdGUgaG9zdGluZyBsYXllciBmb3IgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToK
KyAgICAgICAgVXNlIFZpZGVvTGF5ZXJNYW5hZ2VyIHRvIG1hbmFnZSB0aGUgbGF5ZXIuCisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVu
RnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIGNvbnN0KTogRGl0dG8uCisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50
YXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpzeW5jVGV4dFRyYWNrQm91bmRzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOgorICAgICAgICBOZWVkIHRvIG1vdmUgdGhlIExvZ2dlciB1cCBpbiB0aGUgZGF0YSBtZW1i
ZXJzIHNvIHRoYXQgb3RoZXIgbWVtYmVycyBjYW4gdXNlIGl0CisgICAgICAgIGluIHRoZSBjb25z
dHJ1Y3RvciwgZS5nLiwgVmlkZW9MYXllck1hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0
ZVZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnN5bmNUZXh0VHJhY2tCb3VuZHMpOiBEZWxldGVkLgorICAgICAgICBTaW1wbGlmeSB0aGUgaW1w
bGVtZW50YXRpb24gYnkgbWFuYWdpbmcgbGF5ZXJzIHdpdGggVmlkZW9MYXllck1hbmFnZXIuCisK
IDIwMjAtMDktMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2Ugc3VyZSBvdXIgY2FsbHMgdG8gQVZDYXB0dXJlRGV2aWNlIHJlcXVlc3RBY2Nlc3NGb3JN
ZWRpYVR5cGUgZG8gcHJvY2Vzc2luZyBvbiB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IDdlOGQ1MzU1MThiMTUwMGYzM2RkZGI5ZDJiN2IyMDA1YzM2MTdjNGUuLjA3NTgxODRi
ZTgzYmRkMzE0NjcwNjU3MDZkYWQ5MmMwZmQ0OTViYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
MTIxMyw5ICsxMjEzLDExIEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9TdHJpbmdUcnVuY2F0b3IuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1RhYlNpemUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9XaWR0aENhY2hlLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9XaW5kUnVsZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVmOWQ1NThhNjIzY2U1NjBiMzFj
YjJiZjdjNGJiOWFkOGRlOTkyMy4uZDM1MDcxNGI1MGNmNDVjYWE4NjNmNjUxYjUzYWI5MmEwNjE5
MmNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjMwLDcgKzYzMCwxMSBAQAogCQkxRDJGOEUwNTIzNDQ3NTFEMDA5OTNCNjgg
LyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNDMjMzQzNEMjAwMEVFMjI4RCAvKiBI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA2MjM0NDc1MjMwMDk5M0I2OCAvKiBQ
aWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREVGMDZDRDIzM0MzRDJBMDBFRTIyOEQgLyogUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFEOUYwRkMxMjEyMjAyOUIwMDVEOEZENCAvKiBTaGFyZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQzU1NDAwMjExQkE4QzgwMDRCNzgw
RSAvKiBTaGFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkxREFCMzExMjI1MUQ2QkYzMDBGQzk0ODUgLyogV2ViVmlkZW9Db250YWluZXJM
YXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4
QjMxQTEyMzc5REM4MzAwODgzRkRFIC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxREFCMzExNDI1MUQ3
MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRl
b0xheWVyTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTFEQUIzMTE1MjUxRDc0REIwMEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlck9i
akMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVB
MThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREJDMUI1NjIzNDdCM0Qy
MDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyog
UGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUREM0I0QzYyNTFEQTBCODAwNjlCMjRBIC8qIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMu
bW0gKi87IH07CiAJCTFERjdFODFGMjUxQTlFMDYwMERCOEY2MSAvKiBUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0REMUU1MjUxNjdCQTU2NDAwQ0U4MjBCIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUYzNkVBOUMx
RTIxQkExNzAwNjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzNkVBOUExRTIxQkExNzAw
NjIxRTI1IC8qIFdlYkJhY2tncm91bmRUYXNrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGNzJCRjBCMTg3RkQ0NUMwMDA5QkNC
MyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGNzJCRjA5MTg3RkQ0MjcwMDA5QkNCMyAvKiBU
aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTU4OCw3ICsxNTkyLDYgQEAKIAkJNTJCMEQ0QkUx
QzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRm
b3JtVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJC
MEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJCMEQ0
QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCMEQ0QzExQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUyRDVBMThGMUM1NDU5MjMwMERF
MzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9M
YXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJE
NUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJF
MkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAv
KiBNZWRpYVByb2R1Y2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTY3MjcsNiArNjczMCw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkwMENBNkNE
RiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0
dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9M
YXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkQyMTFCQTEyQTAw
NEI3ODBFIC8qIE5hdmlnYXRvclNoYXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZp
Z2F0b3JTaGFyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZGMjEx
QkE4NDEwMDRCNzgwRSAvKiBTaGFyZURhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNo
YXJlRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzE5LDggKzg3MjMs
OCBAQAogCQk1MkIwRDRCRjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCMEQ0
QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjExREIyMkZEREIyRTAwOUYwQTY0
IC8qIFdITFNMRGVmYXVsdERlbGV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXSExTTERlZmF1bHREZWxl
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTJENUExOEQxQzU0NTkwMzAwREUz
NEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk1MkQ1QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CisJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdl
ck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xh
eWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVBMThF
MUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNTFDNTc0
ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTYxQzU3NDg4OTAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjE5Niw2ICsyNjIwMCw3IEBA
CiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkw
RjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFB
MEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCisJCQkJMURBQjMxMTMy
NTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlFRUEx
NzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJQ0Q2RkU1QkIy
NEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEyNEJD
RTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLApAQCAtMjg0OTUsMTAgKzI4NTAwLDYg
QEAKIAkJRTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFNEE2NjRDNzI1MjFCNzc5MDA3
MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCi0JCQkJRTRBNjY0
QzYyNTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCAqLywK
LQkJCQlFNEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvckxlZ2FjeVBhdGguaCAqLywKLQkJCQlFNEE2NjRDNDI1MjFCNzc3MDA3MDgxREMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCAqLywKIAkJCQlFNDE4MDI1NjIz
RDQ1NEI1MDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCAqLywKIAkJCQlF
NDE4MDI1MzIzRDQ1NDlBMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggKi8s
CiAJCQkJRTQwM0I3OUYyNTFCMTE4QjAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJh
Z2UuY3BwICovLApAQCAtMjg1MDcsNiArMjg1MDgsMTAgQEAKIAkJCQlFNEFCQUJEQjIzNjA4OEZE
MDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8sCiAJCQkJRTQzMTJB
QjUyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAgKi8s
CiAJCQkJRTQzMTJBQjcyNEIzMjY1NjAwNjc4MzQ5IC8qIExheW91dEludGVncmF0aW9uUGFnaW5h
dGlvbi5oICovLAorCQkJCUU0QTY2NEM3MjUyMUI3NzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yLmNwcCAqLywKKwkJCQlFNEE2NjRDNjI1MjFCNzc4MDA3MDgxREMgLyog
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oICovLAorCQkJCUU0QTY2NEM1MjUyMUI3Nzgw
MDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oICovLAor
CQkJCUU0QTY2NEM0MjUyMUI3NzcwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJh
dG9yTW9kZXJuUGF0aC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMjQ0Nyw3ICszMjQ1Miw2IEBACiAJCQkJMDc5NjlE
QjAxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlNlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc5NjlEQjIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5NjlEQjYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDSWNl
Q2FuZGlkYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMg
LyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkRDQjRDMUU3OTEwQTYwMDFCNUY4NyAvKiBKU1JUQ0ljZUNvbm5lY3Rpb25TdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RENCNEUxRTc5MTBBNjAwMUI1Rjg3IC8qIEpTUlRD
SWNlR2F0aGVyaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEVDMTlFRTM0MUUw
MEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQ5Myw3ICsz
MjQ5Nyw2IEBACiAJCQkJQjU5REQ2QTUxMTkwMkE2MjAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE5MTE5MDJBNzEwMDdFOTY4NCAv
KiBKU1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODI0
MzJBMEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTFRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2OUQxMTkwMkE0MjAwN0U5Njg0IC8qIEpT
U1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2QTExMTkw
MkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODY2MjlEMzA5REEyQjQ4MDA5NjMzQTcgLyogSlNTdGF0aWNSYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMjc4NSw2ICszMjc4OCw5IEBACiAJCQkJRTQwM0I3QTIyNTFCMTE5
MzAwMTlFODAwIC8qIExheW91dEludGVncmF0aW9uQ292ZXJhZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MDNCN0EzMjUxQjExQzEwMDE5RTgwMCAvKiBMYXlv
dXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENDMjUy
MUQ0QUYwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFNEE2NjRDRjI1MjFENEUyMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25S
dW5JdGVyYXRvckxlZ2FjeVBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QTY2NENFMjUyMUQ0
QzkwMDcwODFEQyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkZBNEMwMTIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5
b3V0TGluZUJyZWFrQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBD
NEMwN0UgLyogTGF5b3V0TWlsZXN0b25lLmggaW4gSGVhZGVycyAqLywKQEAgLTMyOTYzLDcgKzMy
OTY5LDYgQEAKIAkJCQlDOTZGNUVDODFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50
ZXJydXB0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5NkY1RUM1MUI1ODcyMjYw
MDkxRUE5RCAvKiBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzkwRjY1NTYxQjIyNTNCRTAwMjE2M0ExIC8qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0QTY2NENGMjUyMUQ0RTIwMDcwODFEQyAvKiBMYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE3RjdBRUYyMTM5QkY2RjAwRkJBN0VDIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYy
RSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM4MSw2ICsz
NDM4Niw4IEBACiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUz
NEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFB
ODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTFEQUIzMTE0MjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xheWVy
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTUyNTFENzREQjAwRkM5NDg1IC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODND
NDQwNjAwMzFFQUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEOUQ4MjdBMUM3QjhFRTEwMDZGRjA2NiAvKiBWaWRlb1RleHR1cmVDb3BpZXJDVi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDU1Nyw2ICszNDU2NCw3IEBACiAJCQkJMUY4NzU2QjIxRTIy
QzMzNTAwNDJDNDBEIC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFERUE0NTYxQjM5RjREOTAwRjc3MTc4IC8qIFdlYlN5c3RlbUJhY2tkcm9w
TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkEzMTQ5NjkzOTEwMEZCNUJEOCAvKiBX
ZWJUaWxlZEJhY2tpbmdMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBQjMxMTIyNTFENkJG
MzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTNGNDJCMzFEMTg4MTE5MUIwMDI3OEFBQyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEN0RBMEYyMjQzNUVCMTkwMEYwNDhEMSAvKiBX
ZWJWaWV3VmlzdWFsSWRlbnRpZmljYXRpb25PdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
MTIxNzFGNjE2QThDRjBCMDAwMDUzQ0EgLyogV2ViVlRURWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTgyNSw3ICszNTgzMyw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8q
IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3
M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTJENUExOEYxQzU0
NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTFERDNCNEM2MjUxREEwQjgwMDY5QjI0QSAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOEI1QTQyMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3Vy
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKaW5kZXggODFl
OGMyYmNmYTdmNzdjY2YzODYzZGU3MTkzN2UyYWIzMDcxMmJjNi4uNGM1ZTMyM2Y0YTU1NGVlOWYy
ZTE0NjAzYzE4NjBhNjg2NjU1MTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcApAQCAtMjQs
MTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRU
cmFja1JlcHJlc2VudGF0aW9uLmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgotCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaAppbmRleCAzNDFiMjMyYWUzMDhkNDI0
ZGY3MWVjMzJkNjRjNGJhMDQ2NzQ0ODJjLi5kNzI4ZGNiYzQ1YjJlNjIyNWE2ZDJmN2EyMGViYzI5
ODMyMjk3Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uX2gKLSNkZWZpbmUgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25faAorI3ByYWdt
YSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU8pCiAKQEAgLTYxLDUgKzYwLDMgQEAgcHVibGljOgog
fQogCiAjZW5kaWYKLQotI2VuZGlmIC8vIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFiMDdmODZmMzkzMTc4ZjRjZjdmZTgzYTgxNDc4MDg0ZWJmMjI4MzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xh
eWVyTWFuYWdlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgor
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEZsb2F0UmVjdDsKK2NsYXNzIEludFNpemU7CisKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRlb0xheWVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogdmlkZW9JbmxpbmVMYXllcigpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKiwgSW50U2l6ZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95VmlkZW9MYXllcigpID0gMDsKKworI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSA9IDA7CisgICAgdmlydHVh
bCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikg
PSAwOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzeW5j
VGV4dFRyYWNrQm91bmRzKCkgPSAwOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCAyMTI4NzBhODg2NDE2YWMzM2M4OTNkOTlm
YWVhZTI3MmE3NTE0NThiLi5jZGM0ZmUwMTdjZmEzOTg1NzBhOTMxNWZlMTZkNzAyNjNmMzY5YjVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJOYXRpdmVJ
bWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVy
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCIKICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CkBAIC0zNywz
MiArMzgsNDQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbjsKLQotY2xhc3MgVmlkZW9MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGlj
IExvZ2dlckhlbHBlciB7CitjbGFzcyBWaWRlb0xheWVyTWFuYWdlck9iakMgZmluYWwKKyAgICA6
IHB1YmxpYyBWaWRlb0xheWVyTWFuYWdlcgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
ICwgcHVibGljIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVmlkZW9MYXllck1hbmFnZXJPYmpDKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
KwogcHVibGljOgotICAgIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25z
dCB2b2lkKik7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgV0VCQ09SRV9FWFBPUlQg
VmlkZW9MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKKyNlbHNl
CisgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJPYmpDKCkgPSBkZWZhdWx0Owor
I2VuZGlmCiAKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0lubGluZUxheWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOyB9CisgICAgflZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQygpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVy
ICosIEludFNpemUgY29udGVudFNpemUpOwotICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkg
Y29uc3QgZmluYWw7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxh
dGZvcm1MYXllciosIEludFNpemUgY29udGVudFNpemUpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5M
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KLSAg
ICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKiwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKTsKLSAgICBG
bG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRnVs
bHNjcmVlbkZyYW1lOyB9Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QpOwotICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVl
bkxheWVyKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9S
VCBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFn
ZShOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAjZW5kaWYKIAotICAgIGJvb2wgcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25MYXllcihQbGF0Zm9ybUxheWVyKik7Ci0gICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91
bmRzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkxheWVyKFBsYXRmb3JtTGF5ZXIqKSBmaW5hbDsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKIAogcHJpdmF0ZToKKwor
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJ
ZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAgICAg
Y29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQyI7IH0KQEAgLTcwLDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
KyNlbmRpZgogCiAgICAgUmV0YWluUHRyPFdlYlZpZGVvQ29udGFpbmVyTGF5ZXI+IG1fdmlkZW9J
bmxpbmVMYXllcjsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb0xheWVyTWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KaW5kZXggZDUwZDcy
MzY4YWNlNGI2NDE5YTc1NjBhMTE0YmI3YTY5NGY3MzQ1My4uYmM2NGFmZmQ0ZmMzNGViYzM4MmQx
YjE4OTU2NjkxYjA1MzU4NjUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5tbQpAQCAtNDMsMTEgKzQzLDE4IEBAIE9CSkNfQ0xBU1MgQVZQbGF5
ZXJMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiBWaWRlb0xheWVyTWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBM
b2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKICAgICA6IG1fbG9nZ2Vy
KGxvZ2dlcikKICAgICAsIG1fbG9nSWRlbnRpZmllcihsb2dJZGVudGlmaWVyKQogewogfQorI2Vu
ZGlmCisKK1BsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9JbmxpbmVM
YXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlkZW9JbmxpbmVMYXllci5nZXQoKTsKK30K
IAogdm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9MYXllciwgSW50U2l6ZSBjb250ZW50U2l6ZSkKIHsKQEAgLTg3LDEwICs5NCw5IEBA
IHZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpkaWREZXN0cm95VmlkZW9MYXllcigpCiAKICNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAKLXZvaWQgVmlkZW9MYXllck1hbmFn
ZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBp
bWFnZSkKK1BsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6dmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIoKSBjb25zdAogewotICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCi0gICAgICAg
IFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHM6KF9fYnJpZGdlIGlkKWltYWdlLmdldCgp
XTsKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKTsKIH0KIAogdm9pZCBW
aWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5
ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIgY3VycmVudEltYWdlKQpAQCAtMTQwLDYgKzE0Niwx
MSBAQCB2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07
CiB9CiAKK0Zsb2F0UmVjdCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnZpZGVvRnVsbHNjcmVlbkZy
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsKK30KKwog
dm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0
UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIHZpZGVvRnVsbHNjcmVlbkZyYW1lLngoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUu
eSgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCAiLCAiLCB2aWRlb0Z1bGxz
Y3JlZW5GcmFtZS5oZWlnaHQoKSk7CkBAIC0xNTIsNiArMTYzLDEyIEBAIHZvaWQgVmlkZW9MYXll
ck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgdmlkZW9GdWxs
c2NyZWVuRnJhCiAgICAgc3luY1RleHRUcmFja0JvdW5kcygpOwogfQogCit2b2lkIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIgaW1hZ2UpCit7CisgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAgW21f
dmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOwor
fQorCiAjZW5kaWYKIAogYm9vbCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnJlcXVpcmVzVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMjY1YjdlMmQ4NTQy
ODRkZTc5ZTc2ZGQ5YWU4MWExZjNjMDllMGJmNC4uNDFiNTM2NmY4YzRjOTQ1NGMzMTU4YTFjNWE2
MzdjNmM1MDM1NjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYpOwogCi0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwg
Ym9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYgaW5saW5l
TGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+JiYg
ZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOworICAgIHZvaWQgcHJlcGFyZUZv
clBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlBy
ZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxv
YXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5
ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpOwog
ICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCiAgICAgdm9pZCBsb2FkKFVSTCYmLCBP
cHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRl
bnRUeXBlJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24mJik+JiYpOwpAQCAtMTI0LDggKzEyNCw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFZpc2libGUoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFz
cGVjdFJhdGlvKGJvb2wpOwogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLSAg
ICB2b2lkIGVudGVyRnVsbHNjcmVlbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgZXhpdEZ1bGxzY3JlZW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
VmlkZW9HcmF2aXR5KTsKICNlbmRpZgogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0
ZUNoYW5nZWQoYm9vbCk7CkBAIC0xMzgsOSArMTM2LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwotI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVu
Y2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYp
OwotI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDBhOWI5ODE2MTA3YmViYmFj
ZWExM2M1MjViYTE4YjdkYmY2NWUwNzAuLjU5YTBhY2FhYTFmNGNjNjEzMDc1NTI2ZjA5MzU1MTk0
ODJlZjFhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsy
NCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29s
IHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJl
bG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJp
bmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhv
c3RpbmdDb250ZXh0SUQ+IGlubGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8V2Vi
S2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQ+IGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0
SWQpIEFzeW5jCisgICAgUHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250
ZW50U2NhbGUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYwogCiAgICAgTG9hZChVUkwgdXJsLCBPcHRp
b25hbDxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbiwg
V2ViQ29yZTo6Q29udGVudFR5cGUgY29udGVudFR5cGUsIFN0cmluZyBrZXlTeXN0ZW0pIC0+IChz
dHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmln
dXJhdGlvbikgQXN5bmMKICAgICBDYW5jZWxMb2FkKCkKQEAgLTY4LDE0ICs2OCw2IEBAIG1lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBTZXRWaWRlb0lubGluZVNpemVGZW5jZWQoV2ViQ29yZTo6SW50U2l6
ZSBzaXplLCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jaWYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQotICAgIFNldFZpZGVvRnVsbHNjcmVlbkZyYW1lRmVuY2VkKFdlYkNv
cmU6OkZsb2F0UmVjdCByZWN0LCBNYWNoU2VuZFJpZ2h0IG1hY2hTZW5kUmlnaHQpCi0jZW5kaWYK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIEVudGVy
RnVsbHNjcmVlbigpIC0+ICgpIEFzeW5jCi0gICAgRXhpdEZ1bGxzY3JlZW4oKSAtPiAoKSBBc3lu
YwogI2VuZGlmCiAKICAgICAjIFBhaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2Nv
YS5tbQppbmRleCBkOTgyNGU4MjNhNjA5YTY3M2Q0MDEyNTNlODg0NDlhZTg3ODA2OWE3Li41OWY4
ZTUwOWYwYmQxZDVjYTRhNGM4YjI0OTIxNWVmNTFhMTgwZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0KQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJv
b2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nLCBmbG9hdCB2
aWRlb0NvbnRlbnRTY2FsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhv
c3RpbmdDb250ZXh0SUQ+JiYgaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBPcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+JiYgZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHRJZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJl
bmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wbGF5ZXItPnNldFByaXZhdGVC
cm93c2luZ01vZGUocHJpdmF0ZU1vZGUpOwogICAgIG1fcGxheWVyLT5zZXRQcmVsb2FkKHByZWxv
YWQpOwpAQCAtNDUsMTEgKzQ1LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwcmVw
YXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWEKICAgICBtX3Zp
ZGVvQ29udGVudFNjYWxlID0gdmlkZW9Db250ZW50U2NhbGU7CiAgICAgaWYgKCFtX2lubGluZUxh
eWVySG9zdGluZ0NvbnRleHQpCiAgICAgICAgIG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dCA9
IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsK
LSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgaWYgKCFtX2Z1bGxzY3Jl
ZW5MYXllckhvc3RpbmdDb250ZXh0KQotICAgICAgICBtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdD
b250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJv
Y2VzcygpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4
dC0+Y29udGV4dElEKCksIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJ
RCgpKTsKLSNlbmRpZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKG1faW5saW5lTGF5ZXJIb3N0aW5n
Q29udGV4dC0+Y29udGV4dElEKCkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKQEAgLTc0LDMwICs3MCw2IEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNpCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0K
IAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHZpZGVvRnVsbHNjcmVlbkxheWVyID0gbV9w
bGF5ZXItPmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCk7Ci0gICAgW3ZpZGVvRnVsbHNjcmVl
bkxheWVyIHNldE5hbWU6QCJXZWIgVmlkZW8gRnVsbHNjcmVlbiBMYXllciAocmVtb3RlKSJdOwot
ICAgIFt2aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRQb3NpdGlvbjpDR1BvaW50WmVyb107Ci0gICAg
bV9mdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvRnVsbHNj
cmVlbkxheWVyLmdldCgpKTsKLQotICAgIG1fcGxheWVyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cih2aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotfQotCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBtX3BsYXll
ci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobnVsbHB0ciwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotICAgIG1fZnVsbHNjcmVlbkxheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXll
cihudWxscHRyKTsKLX0KLQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZUZlbmNlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGNvbnN0
IFdURjo6TWFjaFNlbmRSaWdodCYgbWFjaFNlbmRSaWdodCkKLXsKLSAgICBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQobWFjaFNlbmRSaWdodC5zZW5kUmlnaHQo
KSk7Ci0gICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOwotfQotI2Vu
ZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHlHU3RyZWFtZXIuY3BwCmluZGV4IDlmMGJmYjgyNjAyY2ViMTVlNWFjN2NmZjQ1ZmYx
ODFjNzRlMTBjNjYuLjdjOTI2M2M4NzdhZDZlMDMwZTBiZmQ3YzgxYTQ3ZjQ5NGE1YmNmMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcApA
QCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCwgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElE
PiYmIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpPiYmKQordm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCwgYm9vbCwgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiYmIGlu
bGluZUxheWVySG9zdGluZ0NvbnRleHRJZCk+JiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KQEAgLTQ4LDE4ICs0OCw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQ
bGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKLXZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OmV4aXRGdWxsc2NyZWVuKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotI2Vu
ZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAppbmRleCBhMzlmNWQ2M2QxMmRmZDc2NDMwNmZjODI3NTUzMTQxZWZlZDZlZGNiLi5iY2Jk
YzcwODJkODY2ZmE2MzIxZTZiYjI4YTM3NzZlM2MwMTg3MzNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAKLSNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE0uaCIKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1G
YWN0b3J5LmgiCkBAIC0zNiw5ICszNSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJUZXh0
VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiVmlkZW9MYXllclJlbW90ZS5oIgotI2lu
Y2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KQEAgLTQ4LDYgKzQ1LDggQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtVGltZVJhbmdlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CkBAIC05MSwxOCArOTAsMjkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB9IHdoaWxlICgw
KQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXImIG1hbmFnZXIpCi0gICAgOiBtX3BsYXllcihwbGF5ZXIpCi0gICAgLCBt
X21lZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQorI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIDogbV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXll
ckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKCkpCisjZW5kaWYKKyAgICAsIG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1fbWVk
aWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5l
SWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKLSNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKLSAgICAsIG1fbG9nZ2VyKCZwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2VyKCkp
Ci0gICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIo
KSkKK3sKKyAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKK30KICNlbmRpZgorCitNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6On5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKQogewogICAgIElO
Rk9fTE9HKExPR0lERU5USUZJRVIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fdmlkZW9M
YXllck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisjZW5kaWYKKyAgICBtX21hbmFn
ZXIuZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIobV9pZCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpzZXRDb25maWd1cmF0aW9uKFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGRvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pCkBAIC0xMTIsMjYgKzEyMiwyMCBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6c2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mJgogICAgIG1fcGxheWVyLT5tZWRpYUVuZ2luZVVwZGF0ZWQoKTsKIH0KIAotTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCkKLXsKLSAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBtX21hbmFnZXIuZGVsZXRlUmVtb3RlTWVkaWFQ
bGF5ZXIobV9pZCk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJl
Rm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKQogewogICAgIGF1dG8gc2NhbGUg
PSBtX3BsYXllci0+cGxheWVyQ29udGVudHNTY2FsZSgpOwogCi0gICAgY29ubmVjdGlvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UHJlcGFy
ZUZvclBsYXliYWNrKHByaXZhdGVNb2RlLCBwcmVsb2FkLCBwcmVzZXJ2ZXNQaXRjaCwgcHJlcGFy
ZSwgc2NhbGUpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8gaW5s
aW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkLCBhdXRvIGZ1bGxzY3JlZW5MYXllckhvc3RpbmdDb250
ZXh0SWQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRl
TW9kZSwgcHJlbG9hZCwgcHJlc2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlKSwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvIGlubGluZUxheWVySG9zdGluZ0NvbnRl
eHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgaWYgKCFpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbV92aWRlb0lubGluZUxheWVyID0gY3JlYXRlVmlkZW9M
YXllclJlbW90ZSh0aGlzLCBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQudmFsdWUoKSk7Ci0j
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgICAgICBtX2Z1bGxzY3JlZW5M
YXllckhvc3RpbmdDb250ZXh0SWQgPSBmdWxsc2NyZWVuTGF5ZXJIb3N0aW5nQ29udGV4dElkOwor
ICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBjcmVhdGVWaWRlb0xheWVyUmVtb3RlKHRoaXMsIGlubGlu
ZUxheWVySG9zdGluZ0NvbnRleHRJZC52YWx1ZSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3ZpZGVvTGF5ZXIuZ2V0
KCksIHNuYXBwZWRJbnRSZWN0KG1fcGxheWVyLT5wbGF5ZXJDb250ZW50Qm94UmVjdCgpKS5zaXpl
KCkpOwogI2VuZGlmCiAgICAgfSwgbV9pZCk7CiB9CkBAIC02NDMsMzIgKzY0NywyMCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKQogCiBQ
bGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBj
b25zdAogewotICAgIHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgcmV0dXJuIG1fdmlkZW9MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5
ZXIoKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKIH0KIAogI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVl
bkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICBpZiAoIXZpZGVvRnVsbHNjcmVlbkxheWVyKSB7Ci0gICAgICAgIGNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkV4aXRGdWxs
c2NyZWVuKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
ICAgICBtX3JlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gPSBmYWxzZTsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIH0sIG1faWQpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCkgPT0g
dmlkZW9GdWxsc2NyZWVuTGF5ZXIpOwotICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkVudGVyRnVsbHNjcmVlbigpLCBb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vh
a1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbV9yZXF1aXJlc1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uID0gdHJ1ZTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICB9LCBtX2lkKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2Vy
LT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIG51bGxwdHIpOworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpCkBAIC02
NzYsOSArNjY4LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVWaWRl
b0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpCiAgICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdl
KCksIG1faWQpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWVGZW5jZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0LCBjb25z
dCBXVEY6Ok1hY2hTZW5kUmlnaHQmIHNlbmRSaWdodCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkK
IHsKLSAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6U2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQocmVjdCwgc2VuZFJpZ2h0KSwgbV9pZCk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAid2lk
dGggPSAiLCByZWN0LnNpemUoKS53aWR0aCgpLCAiLCBoZWlnaHQgPSAiLCByZWN0LnNpemUoKS5o
ZWlnaHQoKSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuRnJh
bWUocmVjdCk7CisjZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9H
cmF2aXR5IGdyYXZpdHkpCkBAIC0xMDIxLDYgKzEwMTYsMzAgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnNldFNob3VsZENvbnRpbnVlQWZ0ZXJLZXlOZWVkZWQoYm9vbCBzaG91bGQp
CiB9CiAjZW5kaWYKIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlcXVpcmVzVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdAoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0
aW9uKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0aW9uKQoreworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGF1dG8qIHJlcHJlc2VudGF0aW9uTGF5ZXIgPSByZXByZXNlbnRhdGlvbiA/
IHJlcHJlc2VudGF0aW9uLT5wbGF0Zm9ybUxheWVyKCkgOiBuaWw7CisgICAgbV92aWRlb0xheWVy
TWFuYWdlci0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcihyZXByZXNlbnRhdGlvbkxh
eWVyKTsKKyNlbmRpZgorfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c3luY1Rl
eHRUcmFja0JvdW5kcygpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV92aWRlb0xheWVy
TWFuYWdlci0+c3luY1RleHRUcmFja0JvdW5kcygpOworI2VuZGlmCit9CisKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp0cmFja3NDaGFuZ2VkKCkKIHsKICAgICBjb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VHJhY2tzQ2hhbmdlZCgpLCBt
X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDUwN2ZiODY0MjU0MTFkMTk1YTg0
N2RiNTdjZTQ0ODc1MWEzOWY0NTUuLjFkOGRiNzgyYjdiODQyNDYxMGQ1ZGMxN2FhMzc2YzljNzdl
Yjc4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjcsMTMgKzI3LDE2IEBACiAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZVJl
bW90ZS5oIgogI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAj
aW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlZpZGVv
VHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZh
dGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2dnZXJIZWxwZXIuaD4KQEAgLTQ4LDE1ICs1MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdHJ1Y3QgR2VuZXJpY0N1ZURhdGE7CiBjbGFzcyBJU09XZWJWVFRDdWU7CiBjbGFzcyBT
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU7Ci1jbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbjsKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGU7Ci1jbGFzcyBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlOwogY2xhc3MgVXNlckRhdGE7Ci1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTsK
IHN0cnVjdCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbjsKIHN0cnVjdCBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uOwogCkBAIC0xMDEsNyArMTAxLDYgQEAgcHVibGlj
OgogICAgIHZvaWQgZmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgdm9pZCBzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYsIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYpOwotICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWVGZW5jZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV1RGOjpN
YWNoU2VuZFJpZ2h0Jik7CiAjZW5kaWYKIAogICAgIHZvaWQgYWRkUmVtb3RlQXVkaW9UcmFjayhU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uJiYpOwpAQCAtMTQ5LDE0ICsxNDgsMTggQEAgcHVibGljOgogICAgIHZvaWQgY3VycmVudFBs
YXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoYm9vbCk7CiAjZW5kaWYKIAorcHJpdmF0ZToK
KwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gKm1fbG9nZ2VyOyB9CisgICAgY29uc3QgTG9nZ2VyJiBsb2dn
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQogICAgIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUiOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fbG9nSWRlbnRpZmllcik7IH0K
ICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisKKyAgICBSZWY8
Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7
CiAjZW5kaWYKIAotcHJpdmF0ZToKICAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2Vi
Q29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHByZXBh
cmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJl
bG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKIApAQCAtMzI0
LDExICszMjcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNob3VsZENvbnRpbnVlQWZ0ZXJL
ZXlOZWVkZWQoYm9vbCkgZmluYWw7CiAjZW5kaWYKIAotICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVxdWlyZXNUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbjsgfQotI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGJvb2wgcmVxdWly
ZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSBm
aW5hbDsKICAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKLSNlbmRpZgorCiAg
ICAgdm9pZCB0cmFja3NDaGFuZ2VkKCkgZmluYWw7CiAKICAgICB2b2lkIGJlZ2luU2ltdWxhdGVk
SERDUEVycm9yKCkgZmluYWw7CkBAIC0zNTgsMTQgKzM2MCwxMiBAQCBwcml2YXRlOgogICAgIGJv
b2wgcGVyZm9ybVRhc2tBdE1lZGlhVGltZShGdW5jdGlvbjx2b2lkKCk+JiYsIGNvbnN0IE1lZGlh
VGltZSYpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVs
bHB0ciB9OwotICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+
IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKLSAgICBib29sIG1fcmVxdWlyZXNUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbiB7IGZhbHNlIH07Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVv
SW5saW5lTGF5ZXI7Ci0gICAgUGxhdGZvcm1MYXllckNvbnRhaW5lciBtX3ZpZGVvRnVsbHNjcmVl
bkxheWVyOworICAgIFJlZjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1f
bWVkaWFSZXNvdXJjZUxvYWRlcjsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXRhaW5QdHI8
UGxhdGZvcm1MYXllcj4gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyOworICAgIFVuaXF1
ZVJlZjxXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlcj4gbV92aWRlb0xheWVyTWFuYWdlcjsKICNl
bmRpZgotICAgIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gbV9mdWxsc2NyZWVuTGF5
ZXJIb3N0aW5nQ29udGV4dElkOworICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIgbV92aWRlb0xh
eWVyOworCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CiAgICAgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5n
aW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1f
aWQ7CkBAIC0zODgsMTIgKzM4OCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211dGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fc2Vla2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ3VycmVu
dFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MgeyBmYWxzZSB9OwotCi0jaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECi0gICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7Ci0gICAgY29uc3Qgdm9p
ZCogbV9sb2dJZGVudGlmaWVyOwotI2VuZGlmCi0KICAgICBib29sIG1faW52YWxpZCB7IGZhbHNl
IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5t
bQppbmRleCA0YTg0YzI1MWRiYjczNzBlMzFjOTA4OTQ3YjYzZTRkNDlkYWNkZjY4Li5kNTc3NjYy
ODg5OTMwZTUyNjc3MzU5MWU2MzgzMGIwNjFhY2FmMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KQEAgLTI4LDkzICsyOCwzMyBAQAogCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKIAotI2ltcG9ydCA8V2ViQ29y
ZS9GbG9hdFJlY3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24u
aD4KKyNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KLSNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0KLVBsYXRmb3JtTGF5ZXJDb250YWlu
ZXIgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjcmVhdGVWaWRlb0Z1bGxzY3JlZW5MYXllcigp
Ci17Ci0gICAgaWYgKCFtX2Z1bGxzY3JlZW5MYXllckhvc3RpbmdDb250ZXh0SWQpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKSB7Ci0g
ICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10g
aW5pdF0pOwotICAgICAgICBhdXRvIHN1YmxheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3Jl
YXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KG1fZnVsbHNjcmVlbkxheWVySG9zdGlu
Z0NvbnRleHRJZC52YWx1ZSgpKTsKLSAgICAgICAgW3N1YmxheWVyIHNldE5hbWU6QCJWaWRlb0Z1
bGxzY3JlZW5MYXllclN1YmxheWVyIl07Ci0gICAgICAgIFtzdWJsYXllciBzZXRQb3NpdGlvbjpD
R1BvaW50TWFrZSgwLCAwKV07Ci0gICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGFkZFN1
YmxheWVyOnN1YmxheWVyLmdldCgpXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV92aWRlb0Z1bGxz
Y3JlZW5MYXllcjsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQotewotICAgIGF1dG8gY29u
dGV4dCA9IFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGNvbnRleHRdOwotICAgIGlmICghY29udGV4
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwotICAgIFtD
QVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107Ci0KLSAgICBNYWNoU2VuZFJpZ2h0
IGZlbmNlU2VuZFJpZ2h0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoW2NvbnRleHQgY3JlYXRlRmVu
Y2VQb3J0XSk7Ci0gICAgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWVGZW5jZWQocmVjdCwgZmVuY2VT
ZW5kUmlnaHQpOwotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLQotICAgIHN5bmNUZXh0
VHJhY2tCb3VuZHMoKTsKLX0KLQorTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
JiBtYW5hZ2VyKQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIDogbV9sb2dnZXIocGxh
eWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+
bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLQotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFj
a1JlcHJlc2VudGF0aW9uKiByZXByZXNlbnRhdGlvbikKKyAgICAsIG1fcGxheWVyKHBsYXllcikK
KyAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcigqcGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRl
cigpKQorICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5pcXVlUmVmPFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSkpCisgICAgLCBtX21hbmFnZXIo
bWFuYWdlcikKKyAgICAsIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVy
KQorICAgICwgbV9pZChwbGF5ZXJJZGVudGlmaWVyKQogewotI2lmICFFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCi0gICAgVU5VU0VEX1BBUkFNKHJlcHJlc2VudGF0aW9uKTsKLSNlbHNl
Ci0gICAgUGxhdGZvcm1MYXllciogcmVwcmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9u
ID8gcmVwcmVzZW50YXRpb24tPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKLQotICAgIGlmIChyZXBy
ZXNlbnRhdGlvbkxheWVyID09IG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikgewotICAg
ICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFj
dGlvbnM6WUVTXTsKLQotICAgIGlmIChtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpCi0g
ICAgICAgIFttX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5
ZXJdOwotCi0gICAgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyID0gcmVwcmVzZW50YXRp
b25MYXllcjsKLQotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyICYmIG1fdGV4dFRyYWNr
UmVwcmVzZW50YXRpb25MYXllcikgewotICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7Ci0g
ICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGFkZFN1YmxheWVyOm1fdGV4dFRyYWNrUmVw
cmVzZW50YXRpb25MYXllci5nZXQoKV07Ci0gICAgfQotCi0gICAgW0NBVHJhbnNhY3Rpb24gY29t
bWl0XTsKLSNlbmRpZgorICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogfQogCi12b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c3luY1RleHRUcmFja0JvdW5kcygpCi17CiAjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5M
YXllciB8fCAhbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlz
YWJsZUFjdGlvbnM6WUVTXTsKLQotICAgIFttX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIg
c2V0RnJhbWU6bV92aWRlb0Z1bGxzY3JlZW5MYXllci5nZXQoKS5ib3VuZHNdOwotCi0gICAgW0NB
VHJhbnNhY3Rpb24gY29tbWl0XTsKLSNlbmRpZgorUGxhdGZvcm1MYXllckNvbnRhaW5lciBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmNyZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCkKK3sKKyAg
ICByZXR1cm4gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKIH0KKyNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410007</attachid>
            <date>2020-09-29 09:03:19 -0700</date>
            <delta_ts>2020-09-29 09:08:55 -0700</delta_ts>
            <desc>A follow-up patch to fix a build failure</desc>
            <filename>bug-216995-20200929090318.patch</filename>
            <type>text/plain</type>
            <size>2298</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdjMzdhZTM3YmRhYjU4
Y2FlYmY3MjNkOWM3NzNhYWExOTk5OWQ0ZS4uZWY0NjY5OTRkMDAwZjljZjhjNTQxNmUwMDQ2MmUz
MTZjMWI5MDk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5LTI5ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEEgZm9sbG93LXVwIHBhdGNoIHRvIGZpeCBhIGJ1aWxkIGZhaWx1cmUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb0xheWVyTWFuYWdlck9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlck9iakM6On5WaWRlb0xheWVyTWFuYWdlck9iakMpOgorCiAyMDIwLTA5LTI4ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhIGluIEdQVSBQcm9jZXNz
XSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJP
YmpDLmgKaW5kZXggY2RjNGZlMDE3Y2ZhMzk4NTcwYTkzMTVmZTE2ZDcwMjYzZjM2OWI1Zi4uMTVi
OTg1OGExOTE3NGU4NjlmZDRlN2YyYzlmODM2ZTIyODExZDQ1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQygpID0gZGVmYXVs
dDsKICNlbmRpZgogCi0gICAgflZpZGVvTGF5ZXJNYW5hZ2VyT2JqQygpID0gZGVmYXVsdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB+VmlkZW9MYXllck1hbmFnZXJPYmpDKCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBQbGF0Zm9ybUxheWVyKiB2aWRlb0lubGluZUxheWVyKCkgY29uc3QgZmluYWw7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRl
eCBiYzY0YWZmZDRmYzM0ZWJjMzgyZDFiMTg5NTY2OTFiMDUzNTg2NTEyLi5mNjc5NTNkNjMxM2I3
ZDliNjJhYzZkMWE2ZTY1NmI4MDg4NDc3MDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCkBAIC01MSw2ICs1MSwxMCBAQCBWaWRlb0xheWVy
TWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImIGxvZ2dlciwg
Y29uc3Qgdm9pZCogbAogfQogI2VuZGlmCiAKK1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6flZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQygpCit7Cit9CisKIFBsYXRmb3JtTGF5ZXIqIFZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQzo6dmlkZW9JbmxpbmVMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlkZW9J
bmxpbmVMYXllci5nZXQoKTsK
</data>
<flag name="review"
          id="425832"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410027</attachid>
            <date>2020-09-29 11:35:11 -0700</date>
            <delta_ts>2020-09-29 16:25:04 -0700</delta_ts>
            <desc>A follow-up patch to remove WEBCORE_EXPORT of the VideoLayerManagerObjC constructor</desc>
            <filename>bug-216995-20200929113510.patch</filename>
            <type>text/plain</type>
            <size>1610</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRlNzQ2MDBjMGM4MzVi
ZGY0ODU5NDM2YTczZWE5Y2YxNWZmNWIyOC4uMjI2YmQyYTVkZmY4MzNmZDA0NjY1MjI0NmQwOWU5
Njk4YjQ3NjdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5LTI5ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBQcm9j
ZXNzXSBVc2UgVmlkZW9MYXllck1hbmFnZXIgdG8gbWFuYWdlIGxheWVycyBvZiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEEgZm9sbG93LXVwIHBhdGNoIHRvIHJlbW92ZSBXRUJDT1JFX0VYUE9SVCBvZiB0aGUg
VmlkZW9MYXllck1hbmFnZXJPYmpDIGNvbnN0cnVjdG9yLgorICAgICAgICBUaGUgY29uc3RydWN0
b3IgaXMgaW5saW5lLCBzbyBpdCBkb2VzIG5vdCByZXF1aXJlIFdFQkNPUkVfRVhQT1JULgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLmg6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OlZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisKIDIwMjAtMDktMjkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3R1YnMgZm9yIEF1ZGlvV29ya2xldApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9MYXllck1hbmFnZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCAxNWI5ODU4
YTE5MTc0ZTg2OWZkNGU3ZjJjOWY4MzZlMjI4MTFkNDU5Li45OWQ4NWIzZjJkYzhlNzhhNTZkMmI5
MTE3ZGNmYjNjZjgwYmY3NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xh
eWVyTWFuYWdlck9iakMuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9MYXllck1hbmFnZXJPYmpDKGNv
bnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICNlbHNlCi0gICAgV0VCQ09SRV9FWFBPUlQgVmlk
ZW9MYXllck1hbmFnZXJPYmpDKCkgPSBkZWZhdWx0OworICAgIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
QygpID0gZGVmYXVsdDsKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgflZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>