<?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>226738</bug_id>
          
          <creation_ts>2021-06-07 13:33:14 -0700</creation_ts>
          <short_desc>[iOS] Sync Accessibility preferences</short_desc>
          <delta_ts>2021-06-14 02:29:06 -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>WebKit Misc.</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="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767536</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-07 13:33:14 -0700</bug_when>
    <thetext>Sync Accessibility preferences in the WebContent process with the preferences in the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767537</commentid>
    <comment_count>1</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-07 13:33:32 -0700</bug_when>
    <thetext>&lt;rdar://77922839&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767538</commentid>
    <comment_count>2</comment_count>
      <attachid>430776</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-07 13:54:46 -0700</bug_when>
    <thetext>Created attachment 430776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767540</commentid>
    <comment_count>3</comment_count>
      <attachid>430776</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-06-07 14:00:30 -0700</bug_when>
    <thetext>Comment on attachment 430776
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:408
&gt; +    auto appId = WebCore::applicationBundleIdentifier().createCFString();

does text size adjustments already work? that gets stored in com.apple.UIKit

&gt; Source/WebKit/WebProcess/WebProcess.h:568
&gt; +    void accessibilityPreferencesDidChange(bool reduceMotionEnabled, bool increaseButtonLegibility, bool enhanceTextLegibility, bool darkenSystemColors, bool invertColorsEnabled);

should we make this a struct where each item is named and then the struct gets passed around instead of separate params?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767851</commentid>
    <comment_count>4</comment_count>
      <attachid>430873</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-08 12:21:57 -0700</bug_when>
    <thetext>Created attachment 430873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767855</commentid>
    <comment_count>5</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-08 12:28:49 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Comment on attachment 430776 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430776&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:408
&gt; &gt; +    auto appId = WebCore::applicationBundleIdentifier().createCFString();
&gt; 
&gt; does text size adjustments already work? that gets stored in com.apple.UIKit
&gt; 

Ah, should that be removed from the patch, then?

&gt; &gt; Source/WebKit/WebProcess/WebProcess.h:568
&gt; &gt; +    void accessibilityPreferencesDidChange(bool reduceMotionEnabled, bool increaseButtonLegibility, bool enhanceTextLegibility, bool darkenSystemColors, bool invertColorsEnabled);
&gt; 
&gt; should we make this a struct where each item is named and then the struct
&gt; gets passed around instead of separate params?

Done!

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767903</commentid>
    <comment_count>6</comment_count>
      <attachid>430873</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-06-08 14:09:54 -0700</bug_when>
    <thetext>Comment on attachment 430873
Patch

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

This looks like a good change. Should we use this as the basis to handle Caption preferences, too?

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:586
&gt; +    auto* pool = reinterpret_cast&lt;WebProcessPool*&gt;(observer);

Can observer ever be null? Perhaps we should ASSERT it? Perhaps we should test for null before calling through it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768536</commentid>
    <comment_count>7</comment_count>
      <attachid>431074</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-10 06:47:08 -0700</bug_when>
    <thetext>Created attachment 431074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768538</commentid>
    <comment_count>8</comment_count>
      <attachid>431075</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-10 07:18:59 -0700</bug_when>
    <thetext>Created attachment 431075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768541</commentid>
    <comment_count>9</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-10 07:25:06 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #6)
&gt; Comment on attachment 430873 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430873&amp;action=review
&gt; 
&gt; This looks like a good change. Should we use this as the basis to handle
&gt; Caption preferences, too?
&gt; 

That&apos;s a good point! It the patch uploaded for landing, I have worked towards that goal.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:586
&gt; &gt; +    auto* pool = reinterpret_cast&lt;WebProcessPool*&gt;(observer);
&gt; 
&gt; Can observer ever be null? Perhaps we should ASSERT it? Perhaps we should
&gt; test for null before calling through it?

I don&apos;t think observer can be null, since we subscribe to the notification with &apos;this&apos;.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768545</commentid>
    <comment_count>10</comment_count>
      <attachid>431077</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-10 07:35:07 -0700</bug_when>
    <thetext>Created attachment 431077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768548</commentid>
    <comment_count>11</comment_count>
      <attachid>431079</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-10 07:53:21 -0700</bug_when>
    <thetext>Created attachment 431079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768831</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-10 17:49:48 -0700</bug_when>
    <thetext>Committed r278745 (238706@main): &lt;https://commits.webkit.org/238706@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431079.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768934</commentid>
    <comment_count>13</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-11 08:04:08 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768935</commentid>
    <comment_count>14</comment_count>
      <attachid>431195</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2021-06-11 08:04:10 -0700</bug_when>
    <thetext>Created attachment 431195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769340</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-14 02:29:04 -0700</bug_when>
    <thetext>Committed r278824 (238777@main): &lt;https://commits.webkit.org/238777@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431195.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430776</attachid>
            <date>2021-06-07 13:54:46 -0700</date>
            <delta_ts>2021-06-08 12:21:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226738-20210607135445.patch</filename>
            <type>text/plain</type>
            <size>16445</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzg1NzApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2liaWxpdHkgcHJl
ZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjczOAorICAgICAgICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBQZXItQXBwIEFjY2Vzc2liaWxpdHkg
cHJlZmVyZW5jZXMgb24gaU9TLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAy
MDIxLTA2LTA3ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbV1RGXVtHU3RyZWFtZXJdIEZpeCBjbGFuZyBUU0Egd2FybmluZ3MgaW4gV1RGOjpEYXRh
TXV0ZXgKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCShyZXZpc2lvbiAyNzg1NzApCisrKyBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwMSwzICsxMDAx
LDcgQEAKICAgICB8fCAoUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkpCiAjZGVmaW5lIEhBVkVfQ09SRV9URVhUX1NCSVhf
SU1BR0VfU0laRV9GVU5DVElPTlMgMQogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMAorI2RlZmluZSBIQVZFX1BF
Ul9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUyAxCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNzg1NzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA2LTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2liaWxpdHkgcHJlZmVyZW5j
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjcz
OAorICAgICAgICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBQZXItQXBwIEFjY2Vzc2liaWxpdHkgcHJl
ZmVyZW5jZXMgb24gaU9TLiBUaGUgUGVyLUFwcCBBY2Nlc3NpYmlsaXR5IHByZWZlcmVuY2VzIGlu
IHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgc2hvdWxkIHJlZmxlY3QgdGhlIHZhbHVl
cyBpbiB0aGUgVUkgcHJvY2Vzcy4gVGhpcyBpcyBhZGRyZXNzZWQgYnkgc3luY2luZyB0aGUgdmFs
dWVzIGJldHdlZW4gdGhlIHR3byBwcm9jZXNzZXMgb24KKyAgICAgICAgc3RhcnR1cCBvZiB0aGUg
V2ViQ29udGVudCBwcm9jZXNzLCBhbmQgd2hlbiB0aGUgdmFsdWVzIGNoYW5nZS4KKworICAgICAg
ICAqIFBsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oOgorICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjphY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmlj
YXRpb25PYnNlcnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdp
c3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKwogMjAyMS0wNi0wNyAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBXZWJDb3Jl
OjpTbmFwc2hvdE9wdGlvbnMgaW50byBhbiBlbnVtIGNsYXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmgJKHJldmlzaW9uIDI3ODU3MCkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQy
LDI0IEBAIGV4dGVybiBDRlN0cmluZ1JlZiBfQVhTQ29weVBhdGhGb3JBY2Nlc3MKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU1JlZHVjZU1vdGlvblBy
ZWZlcmVuY2U7CisKIGV4dGVybiBDRlN0cmluZ1JlZiBrQVhTUmVkdWNlTW90aW9uQ2hhbmdlZE5v
dGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTSW5jcmVhc2VCdXR0b25MZWdpYmls
aXR5Tm90aWZpY2F0aW9uOworZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNFbmhhbmNlVGV4dExlZ2li
aWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9uOworZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNEYXJrZW5T
eXN0ZW1Db2xvcnNFbmFibGVkTm90aWZpY2F0aW9uOworZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNJ
bnZlcnRDb2xvcnNFbmFibGVkTm90aWZpY2F0aW9uOworCitleHRlcm4gQVhWYWx1ZVN0YXRlIF9B
WFNSZWR1Y2VNb3Rpb25FbmFibGVkQXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZh
bHVlU3RhdGUgX0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChDRlN0cmluZ1JlZiBhcHBJ
RCk7CitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVk
QXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYRGFya2VuU3lz
dGVtQ29sb3JzQXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FY
U0ludmVydENvbG9yc0VuYWJsZWRBcHAoQ0ZTdHJpbmdSZWYgYXBwSUQpOworCitleHRlcm4gdm9p
ZCBfQVhTU2V0UmVkdWNlTW90aW9uRW5hYmxlZEFwcChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZT
dHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQgX0FYU1NldEluY3JlYXNlQnV0dG9uTGVnaWJp
bGl0eUFwcChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJu
IHZvaWQgX0FYU1NldEVuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAoQVhWYWx1ZVN0YXRl
IGVuYWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiB2b2lkIF9BWFNTZXREYXJrZW5T
eXN0ZW1Db2xvcnNBcHAoQVhWYWx1ZVN0YXRlIGVuYWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsK
K2V4dGVybiB2b2lkIF9BWFNJbnZlcnRDb2xvcnNTZXRFbmFibGVkQXBwKEFYVmFsdWVTdGF0ZSBl
bmFibGVkLCBDRlN0cmluZ1JlZiBhcHBJRCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNzg1NzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDYgKzE3OSwxMyBAQCB2b2lk
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBlbmNvZGVyIDw8IGN1cnJlbnRVc2VySW50ZXJmYWNlSWRpb21Jc1BhZDsKICAg
ICBlbmNvZGVyIDw8IHN1cHBvcnRzUGljdHVyZUluUGljdHVyZTsKKyNpZiBIQVZFKFBFUl9BUFBf
QUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBlbmNvZGVyIDw8IHJlZHVjZU1vdGlvbkVu
YWJsZWQ7CisgICAgZW5jb2RlciA8PCBpbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHk7CisgICAgZW5j
b2RlciA8PCBlbmhhbmNlVGV4dExlZ2liaWxpdHk7CisgICAgZW5jb2RlciA8PCBkYXJrZW5TeXN0
ZW1Db2xvcnM7CisgICAgZW5jb2RlciA8PCBpbnZlcnRDb2xvcnNFbmFibGVkOworI2VuZGlmCiAg
ICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAgICAgZW5jb2RlciA8PCBm
b2N1c1JpbmdDb2xvcjsKICAgICBlbmNvZGVyIDw8IGxvY2FsaXplZERldmljZU1vZGVsOwpAQCAt
NDk5LDYgKzUwNiwxOSBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnN1cHBvcnRzUGljdHVyZUluUGlj
dHVyZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIEhBVkUoUEVSX0FQUF9BQ0NFU1NJ
QklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5y
ZWR1Y2VNb3Rpb25FbmFibGVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5pbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHkpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmVuaGFu
Y2VUZXh0TGVnaWJpbGl0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGFya2VuU3lzdGVtQ29sb3JzKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pbnZlcnRDb2xvcnNF
bmFibGVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKICAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA+IGNz
c1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAgICBkZWNvZGVyID4+IGNzc1ZhbHVlVG9TeXN0ZW1D
b2xvck1hcDsKICAgICBpZiAoIWNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJ
KHJldmlzaW9uIDI3ODU3MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjIwLDYgKzIyMCwxMyBAQCBzdHJ1
Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBib29sIGN1cnJlbnRVc2VySW50ZXJmYWNlSWRpb21Jc1BhZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworI2lmIEhBVkUoUEVS
X0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGJvb2wgcmVkdWNlTW90aW9uRW5h
YmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBpbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHkgeyBmYWxz
ZSB9OworICAgIGJvb2wgZW5oYW5jZVRleHRMZWdpYmlsaXR5IHsgZmFsc2UgfTsKKyAgICBib29s
IGRhcmtlblN5c3RlbUNvbG9ycyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnZlcnRDb2xvcnNFbmFi
bGVkIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpDU1NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXAgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIFdlYkNv
cmU6OkNvbG9yIGZvY3VzUmluZ0NvbG9yOwogICAgIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2Rl
bDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNp
b24gMjc4NTcwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAko
d29ya2luZyBjb3B5KQpAQCAtNTc1LDYgKzU3NSw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFJF
TU9URV9JTlNQRUNUT1IpCiAgICAgc3RhdGljIHZvaWQgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxl
ZENhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkICpvYnNlcnZlciwgQ0ZTdHJp
bmdSZWYgbmFtZSwgY29uc3Qgdm9pZCAqLCBDRkRpY3Rpb25hcnlSZWYgdXNlckluZm8pOwogI2Vu
ZGlmCisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgc3Rh
dGljIHZvaWQgYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrKENGTm90aWZp
Y2F0aW9uQ2VudGVyUmVmLCB2b2lkICpvYnNlcnZlciwgQ0ZTdHJpbmdSZWYgbmFtZSwgY29uc3Qg
dm9pZCAqLCBDRkRpY3Rpb25hcnlSZWYgdXNlckluZm8pOworI2VuZGlmCiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjc4NTcwKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDA0LDYgKzQwNCwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBwYXJhbWV0ZXJzLmN1cnJl
bnRVc2VySW50ZXJmYWNlSWRpb21Jc1BhZCA9IGN1cnJlbnRVc2VySW50ZXJmYWNlSWRpb21Jc1Bh
ZE9yTWFjKCk7CiAgICAgcGFyYW1ldGVycy5zdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUgPSBzdXBw
b3J0c1BpY3R1cmVJblBpY3R1cmUoKTsKKyNpZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9Q
UkVGRVJFTkNFUykKKyAgICBhdXRvIGFwcElkID0gV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLnJlZHVjZU1vdGlv
bkVuYWJsZWQgPSBfQVhTUmVkdWNlTW90aW9uRW5hYmxlZEFwcChhcHBJZC5nZXQoKSk7CisgICAg
cGFyYW1ldGVycy5pbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHkgPSBfQVhTSW5jcmVhc2VCdXR0b25M
ZWdpYmlsaXR5QXBwKGFwcElkLmdldCgpKTsKKyAgICBwYXJhbWV0ZXJzLmVuaGFuY2VUZXh0TGVn
aWJpbGl0eSA9IF9BWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKGFwcElkLmdldCgp
KTsKKyAgICBwYXJhbWV0ZXJzLmRhcmtlblN5c3RlbUNvbG9ycyA9IF9BWERhcmtlblN5c3RlbUNv
bG9yc0FwcChhcHBJZC5nZXQoKSk7CisgICAgcGFyYW1ldGVycy5pbnZlcnRDb2xvcnNFbmFibGVk
ID0gX0FYU0ludmVydENvbG9yc0VuYWJsZWRBcHAoYXBwSWQuZ2V0KCkpOworI2VuZGlmCiAgICAg
cGFyYW1ldGVycy5jc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAgPSBSZW5kZXJUaGVtZUlPUzo6Y3Nz
VmFsdWVUb1N5c3RlbUNvbG9yTWFwKCk7CiAgICAgcGFyYW1ldGVycy5mb2N1c1JpbmdDb2xvciA9
IFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Gb2N1c1JpbmdDb2xvcigpOwogICAgIHBhcmFtZXRlcnMu
bG9jYWxpemVkRGV2aWNlTW9kZWwgPSBsb2NhbGl6ZWREZXZpY2VNb2RlbCgpOwpAQCAtNTU3LDYg
KzU2NSwyMiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpiYWNrbGlnaHRMZXZlbERpZENoCiAgICAg
YXV0byogcG9vbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUHJvY2Vzc1Bvb2wqPihvYnNlcnZlcik7
CiAgICAgcG9vbC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpCYWNr
bGlnaHRMZXZlbERpZENoYW5nZShCS1NEaXNwbGF5QnJpZ2h0bmVzc0dldEN1cnJlbnQoKSkpOwog
fQorCisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCit2b2lkIFdl
YlByb2Nlc3NQb29sOjphY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2soQ0ZO
b3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQgKm9ic2VydmVyLCBDRlN0cmluZ1JlZiBuYW1lLCBj
b25zdCB2b2lkICosIENGRGljdGlvbmFyeVJlZiB1c2VySW5mbykKK3sKKyAgICBhdXRvIGFwcElk
ID0gV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuY3JlYXRlQ0ZTdHJpbmco
KTsKKyAgICBib29sIHJlZHVjZU1vdGlvbkVuYWJsZWQgPSBfQVhTUmVkdWNlTW90aW9uRW5hYmxl
ZEFwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgYm9vbCBpbmNyZWFzZUJ1
dHRvbkxlZ2liaWxpdHkgPSBfQVhTSW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5QXBwKGFwcElkLmdl
dCgpKSA9PSBBWFZhbHVlU3RhdGVPbjsKKyAgICBib29sIGVuaGFuY2VUZXh0TGVnaWJpbGl0eSA9
IF9BWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKGFwcElkLmdldCgpKSA9PSBBWFZh
bHVlU3RhdGVPbjsKKyAgICBib29sIGRhcmtlblN5c3RlbUNvbG9ycyA9IF9BWERhcmtlblN5c3Rl
bUNvbG9yc0FwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgYm9vbCBpbnZl
cnRDb2xvcnNFbmFibGVkID0gX0FYU0ludmVydENvbG9yc0VuYWJsZWRBcHAoYXBwSWQuZ2V0KCkp
ID09IEFYVmFsdWVTdGF0ZU9uOworCisgICAgYXV0byogcG9vbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViUHJvY2Vzc1Bvb2wqPihvYnNlcnZlcik7CisgICAgcG9vbC0+c2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2Uo
cmVkdWNlTW90aW9uRW5hYmxlZCwgaW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5LCBlbmhhbmNlVGV4
dExlZ2liaWxpdHksIGRhcmtlblN5c3RlbUNvbG9ycywgaW52ZXJ0Q29sb3JzRW5hYmxlZCkpOwor
fQorI2VuZGlmCisKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNjU5LDYgKzY4Mywx
MyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEhB
VkUoUEVSX0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIENGTm90aWZpY2F0aW9u
Q2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50
ZXIoKSwgdGhpcywgYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhT
UmVkdWNlTW90aW9uQ2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25T
dXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRP
YnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlz
LCBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2ssIGtBWFNJbmNyZWFzZUJ1
dHRvbkxlZ2liaWxpdHlOb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVu
c2lvbkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2
ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgYWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTRW5oYW5jZVRleHRMZWdp
YmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5z
aW9uQmVoYXZpb3JDb2FsZXNjZSk7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZl
cihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBhY2Nl
c3NpYmlsaXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2ssIGtBWFNEYXJrZW5TeXN0ZW1Db2xv
cnNFbmFibGVkTm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25C
ZWhhdmlvckNvYWxlc2NlKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENG
Tm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGFjY2Vzc2li
aWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU0ludmVydENvbG9yc0VuYWJsZWRO
b3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29h
bGVzY2UpOworI2VuZGlmCiAgICAgbV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyID0gW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6KF9f
YnJpZGdlIGlkKWtBWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZpY2F0aW9u
IG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Js
b2NrOl4oTlNOb3RpZmljYXRpb24gKikgewogICAgICAgICBpZiAoIV9BWFNBcHBsaWNhdGlvbkFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC03MTMsNiArNzQ0
LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3RpZmljYXQKICNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYg
SEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgQ0ZOb3RpZmljYXRp
b25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlm
eUNlbnRlcigpLCB0aGlzLCBrQVhTUmVkdWNlTW90aW9uQ2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVs
bHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNh
dGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBrQVhTSW5jcmVhc2VCdXR0
b25MZWdpYmlsaXR5Tm90aWZpY2F0aW9uLCBudWxscHRyKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNl
bnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2Vu
dGVyKCksIHRoaXMsIGtBWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9u
LCBudWxscHRyKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90
aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGtBWFNEYXJrZW5T
eXN0ZW1Db2xvcnNFbmFibGVkTm90aWZpY2F0aW9uLCBudWxscHRyKTsKKyAgICBDRk5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90
aWZ5Q2VudGVyKCksIHRoaXMsIGtBWFNJbnZlcnRDb2xvcnNFbmFibGVkTm90aWZpY2F0aW9uLCBu
dWxscHRyKTsKKyNlbmRpZgogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyLmdldCgpXTsK
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
Om1fYXBwbGljYXRpb25MYXVuY2hPYnNlcnZlci5nZXQoKV07CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjc4NTcwKQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTY0LDYg
KzU2NCw5IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCiAgICAgdm9pZCBiYWNrbGlnaHRMZXZlbERpZENoYW5nZShmbG9hdCBi
YWNrbGlnaHRMZXZlbCk7CisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5D
RVMpCisgICAgdm9pZCBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2UoYm9vbCByZWR1
Y2VNb3Rpb25FbmFibGVkLCBib29sIGluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eSwgYm9vbCBlbmhh
bmNlVGV4dExlZ2liaWxpdHksIGJvb2wgZGFya2VuU3lzdGVtQ29sb3JzLCBib29sIGludmVydENv
bG9yc0VuYWJsZWQpOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjc4NTcwKQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEy
NCw2ICsxMjQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAg
QmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpCisjaWYgSEFWRShQ
RVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzRGlkQ2hhbmdlKGJvb2wgcmVkdWNlTW90aW9uRW5hYmxlZCwgYm9vbCBpbmNyZWFzZUJ1
dHRvbkxlZ2liaWxpdHksIGJvb2wgZW5oYW5jZVRleHRMZWdpYmlsaXR5LCBib29sIGRhcmtlblN5
c3RlbUNvbG9ycywgYm9vbCBpbnZlcnRDb2xvcnNFbmFibGVkKQorI2VuZGlmCiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlz
aW9uIDI3ODU3MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5U3Vw
cG9ydFNQSS5oIgogI2ltcG9ydCAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgiCiAj
aW1wb3J0ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ0luaXRp
YWxpemF0aW9uLmgiCkBAIC00NDcsNiArNDQ4LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHIKICAgICAKICAgICBpZiAoIXBhcmFtZXRlcnMubWF4aW11bUlPU3Vy
ZmFjZVNpemUuaXNFbXB0eSgpKQogICAgICAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE1heGlt
dW1TaXplKHBhcmFtZXRlcnMubWF4aW11bUlPU3VyZmFjZVNpemUpOworCisjaWYgSEFWRShQRVJf
QVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgYWNjZXNzaWJpbGl0eVByZWZlcmVu
Y2VzRGlkQ2hhbmdlKHBhcmFtZXRlcnMucmVkdWNlTW90aW9uRW5hYmxlZCwgcGFyYW1ldGVycy5p
bmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHksIHBhcmFtZXRlcnMuZW5oYW5jZVRleHRMZWdpYmlsaXR5
LCBwYXJhbWV0ZXJzLmRhcmtlblN5c3RlbUNvbG9ycywgcGFyYW1ldGVycy5pbnZlcnRDb2xvcnNF
bmFibGVkKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0V2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQpAQCAtMTAzMyw2ICsxMDM4LDE5IEBAIHZvaWQgV2ViUHJvY2Vzczo6YmFja2xpZ2h0
TGV2ZWxEaWRDaGFuZ2UKICAgICAgICAgICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtZXRo
b2RUb1BhdGNoLCByZWludGVycHJldF9jYXN0PElNUD4oY3VycmVudEJhY2tsaWdodExldmVsKSk7
CiAgICAgICAgIH0pOwogfQorCisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVS
RU5DRVMpCit2b2lkIFdlYlByb2Nlc3M6OmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0RpZENoYW5n
ZShib29sIHJlZHVjZU1vdGlvbkVuYWJsZWQsIGJvb2wgaW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5
LCBib29sIGVuaGFuY2VUZXh0TGVnaWJpbGl0eSwgYm9vbCBkYXJrZW5TeXN0ZW1Db2xvcnMsIGJv
b2wgaW52ZXJ0Q29sb3JzRW5hYmxlZCkKK3sKKyAgICBhdXRvIGFwcElEID0gV2ViQ29yZTo6YXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKyAgICBfQVhTU2V0
UmVkdWNlTW90aW9uRW5hYmxlZEFwcChyZWR1Y2VNb3Rpb25FbmFibGVkID8gQVhWYWx1ZVN0YXRl
T24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElELmdldCgpKTsKKyAgICBfQVhTU2V0SW5jcmVhc2VC
dXR0b25MZWdpYmlsaXR5QXBwKGluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eSA/IEFYVmFsdWVTdGF0
ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRC5nZXQoKSk7CisgICAgX0FYU1NldEVuaGFuY2VU
ZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAoZW5oYW5jZVRleHRMZWdpYmlsaXR5ID8gQVhWYWx1ZVN0
YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElELmdldCgpKTsKKyAgICBfQVhTU2V0RGFya2Vu
U3lzdGVtQ29sb3JzQXBwKGRhcmtlblN5c3RlbUNvbG9ycyA/IEFYVmFsdWVTdGF0ZU9uIDogQVhW
YWx1ZVN0YXRlT2ZmLCBhcHBJRC5nZXQoKSk7CisgICAgX0FYU0ludmVydENvbG9yc1NldEVuYWJs
ZWRBcHAoaW52ZXJ0Q29sb3JzRW5hYmxlZCA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRl
T2ZmLCBhcHBJRC5nZXQoKSk7Cit9CisjZW5kaWYKKwogI2VuZGlmCiAKICNpZiBQTEFURk9STShN
QUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430873</attachid>
            <date>2021-06-08 12:21:57 -0700</date>
            <delta_ts>2021-06-08 16:39:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226738-20210608122156.patch</filename>
            <type>text/plain</type>
            <size>26111</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2liaWxpdHkgcHJl
ZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjczOAorICAgICAgICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBQZXItQXBwIEFjY2Vzc2liaWxpdHkg
cHJlZmVyZW5jZXMgb24gaU9TLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAy
MDIxLTA2LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRmls
ZVN5c3RlbTo6cmVhZEZyb21GaWxlKCkgc2hvdWxkIHJldHVybiBkYXRhIGFzIGB2b2lkKmAKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUhhdmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwMSwzICsxMDAxLDcgQEAKICAg
ICB8fCAoUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDE0MDAwMCkpCiAjZGVmaW5lIEhBVkVfQ09SRV9URVhUX1NCSVhfSU1BR0VfU0la
RV9GVU5DVElPTlMgMQogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMAorI2RlZmluZSBIQVZFX1BFUl9BUFBfQUND
RVNTSUJJTElUWV9QUkVGRVJFTkNFUyAxCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
Nzg1NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDIxLTA2LTA4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2liaWxpdHkgcHJlZmVyZW5jZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjczOAorICAgICAg
ICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBQZXItQXBwIEFjY2Vzc2liaWxpdHkgcHJlZmVyZW5jZXMg
b24gaU9TLiBUaGUgUGVyLUFwcCBBY2Nlc3NpYmlsaXR5IHByZWZlcmVuY2VzIGluIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MKKyAgICAgICAgc2hvdWxkIHJlZmxlY3QgdGhlIHZhbHVlcyBpbiB0aGUg
VUkgcHJvY2Vzcy4gVGhpcyBpcyBhZGRyZXNzZWQgYnkgc3luY2luZyB0aGUgdmFsdWVzIGJldHdl
ZW4gdGhlIHR3byBwcm9jZXNzZXMgb24KKyAgICAgICAgc3RhcnR1cCBvZiB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzLCBhbmQgd2hlbiB0aGUgdmFsdWVzIGNoYW5nZS4KKworICAgICAgICAqIFBsYXRm
b3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjphY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNl
cnZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlm
aWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWNjZXNz
aWJpbGl0eVByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEZpbmQtaW4tcGFn
ZSBzaG91bGQgbWF0Y2ggdGV4dCBpbnNpZGUgaW1hZ2Ugb3ZlcmxheXMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQWNjZXNzaWJpbGl0eVN1
cHBvcnRTUEkuaAkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvQ29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NyArNDIsMzEgQEAgZXh0ZXJuIENGU3RyaW5nUmVmIF9BWFNDb3B5UGF0aEZvckFjY2VzcwogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGV4dGVybiBDRlN0cmluZ1JlZiBrQVhTUmVkdWNlTW90
aW9uUHJlZmVyZW5jZTsKKwogZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNSZWR1Y2VNb3Rpb25DaGFu
Z2VkTm90aWZpY2F0aW9uOworZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNJbmNyZWFzZUJ1dHRvbkxl
Z2liaWxpdHlOb3RpZmljYXRpb247CitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0VuaGFuY2VUZXh0
TGVnaWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb247CitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0Rh
cmtlblN5c3RlbUNvbG9yc0VuYWJsZWROb3RpZmljYXRpb247CitleHRlcm4gQ0ZTdHJpbmdSZWYg
a0FYU0ludmVydENvbG9yc0VuYWJsZWROb3RpZmljYXRpb247CisKK3R5cGVkZWYgZW51bSB7Cisg
ICAgQVhWYWx1ZVN0YXRlSW52YWxpZCA9IC0yLAorICAgIEFYVmFsdWVTdGF0ZUVtcHR5ID0gLTEs
CisgICAgQVhWYWx1ZVN0YXRlT2ZmLAorICAgIEFYVmFsdWVTdGF0ZU9uCit9IEFYVmFsdWVTdGF0
ZTsKKworZXh0ZXJuIEFYVmFsdWVTdGF0ZSBfQVhTUmVkdWNlTW90aW9uRW5hYmxlZEFwcChDRlN0
cmluZ1JlZiBhcHBJRCk7CitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNJbmNyZWFzZUJ1dHRvbkxl
Z2liaWxpdHlBcHAoQ0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIEFYVmFsdWVTdGF0ZSBfQVhT
RW5oYW5jZVRleHRMZWdpYmlsaXR5RW5hYmxlZEFwcChDRlN0cmluZ1JlZiBhcHBJRCk7CitleHRl
cm4gQVhWYWx1ZVN0YXRlIF9BWERhcmtlblN5c3RlbUNvbG9yc0FwcChDRlN0cmluZ1JlZiBhcHBJ
RCk7CitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNJbnZlcnRDb2xvcnNFbmFibGVkQXBwKENGU3Ry
aW5nUmVmIGFwcElEKTsKKworZXh0ZXJuIHZvaWQgX0FYU1NldFJlZHVjZU1vdGlvbkVuYWJsZWRB
cHAoQVhWYWx1ZVN0YXRlIGVuYWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiB2b2lk
IF9BWFNTZXRJbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHlBcHAoQVhWYWx1ZVN0YXRlIGVuYWJsZWQs
IENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiB2b2lkIF9BWFNTZXRFbmhhbmNlVGV4dExlZ2li
aWxpdHlFbmFibGVkQXBwKEFYVmFsdWVTdGF0ZSBlbmFibGVkLCBDRlN0cmluZ1JlZiBhcHBJRCk7
CitleHRlcm4gdm9pZCBfQVhTU2V0RGFya2VuU3lzdGVtQ29sb3JzQXBwKEFYVmFsdWVTdGF0ZSBl
bmFibGVkLCBDRlN0cmluZ1JlZiBhcHBJRCk7CitleHRlcm4gdm9pZCBfQVhTSW52ZXJ0Q29sb3Jz
U2V0RW5hYmxlZEFwcChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZTdHJpbmdSZWYgYXBwSUQpOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoRlVMTF9LRVlCT0FS
RF9BQ0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE3OSw2ICsxNzksOSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbmNvZGVyIDw8IGN1cnJlbnRV
c2VySW50ZXJmYWNlSWRpb21Jc1BhZDsKICAgICBlbmNvZGVyIDw8IHN1cHBvcnRzUGljdHVyZUlu
UGljdHVyZTsKKyNpZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAg
ICBlbmNvZGVyIDw8IHBlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKKyNlbmRpZgogICAg
IGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIGVuY29kZXIgPDwgZm9j
dXNSaW5nQ29sb3I7CiAgICAgZW5jb2RlciA8PCBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKQEAgLTQ5
OSw2ICs1MDIsMTQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zdXBwb3J0c1BpY3R1cmVJblBpY3R1
cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJ
TElUWV9QUkVGRVJFTkNFUykKKyAgICBzdGQ6Om9wdGlvbmFsPFBlckFwcEFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlcz4gcGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzOworICAgIGRlY29kZXIg
Pj4gcGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzOworICAgIGlmICghcGVyQXBwQWNjZXNz
aWJpbGl0eVByZWZlcmVuY2VzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVy
cy5wZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMgPSBXVEZNb3ZlKCpwZXJBcHBBY2Nlc3Np
YmlsaXR5UHJlZmVyZW5jZXMpOworI2VuZGlmCisKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA+IGNzc1ZhbHVlVG9TeXN0
ZW1Db2xvck1hcDsKICAgICBkZWNvZGVyID4+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICAg
ICBpZiAoIWNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI3
ODUyNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1BsdWdpbkRhdGEuaD4KICNlbmRpZgogCisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlf
UFJFRkVSRU5DRVMpCisjaW5jbHVkZSAiUGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgi
CisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBEYXRhOwogfQpAQCAtMjIwLDYgKzIy
NCw5IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIGJvb2wgY3VycmVudFVzZXJJbnRlcmZhY2VJZGlvbUlzUGFkIHsg
ZmFsc2UgfTsKICAgICBib29sIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07Cisj
aWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgUGVyQXBwQWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzIHBlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKKyNl
bmRpZgogICAgIFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXAgY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogICAgIFdlYkNvcmU6OkNvbG9yIGZvY3VzUmlu
Z0NvbG9yOwogICAgIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VNb2RlbDsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1BlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUGVyQXBwQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9QZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCisKK25hbWVzcGFjZSBJUEMgewor
Cit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpQZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViS2l0OjpQZXJBcHBBY2Nlc3Np
YmlsaXR5UHJlZmVyZW5jZXMmIHByZWZlcmVuY2VzKQoreworICAgIGVuY29kZXIgPDwgcHJlZmVy
ZW5jZXMucmVkdWNlTW90aW9uRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmlu
Y3JlYXNlQnV0dG9uTGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmVuaGFu
Y2VUZXh0TGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmRhcmtlblN5c3Rl
bUNvbG9yczsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmludmVydENvbG9yc0VuYWJsZWQ7
Cit9CisKK3N0ZDo6b3B0aW9uYWw8V2ViS2l0OjpQZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXM+IEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpQZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBXZWJLaXQ6OlBlckFwcEFjY2Vzc2li
aWxpdHlQcmVmZXJlbmNlcyBwcmVmZXJlbmNlczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBy
ZWZlcmVuY2VzLnJlZHVjZU1vdGlvbkVuYWJsZWQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJlZmVyZW5jZXMuaW5jcmVhc2VCdXR0b25M
ZWdpYmlsaXR5KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHByZWZlcmVuY2VzLmVuaGFuY2VUZXh0TGVnaWJpbGl0eSkpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmVmZXJlbmNlcy5k
YXJrZW5TeXN0ZW1Db2xvcnMpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3JzRW5hYmxlZCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIHByZWZlcmVuY2VzOworfQorCit9
IC8vIG5hbWVzcGFjZSBJUEMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1BlckFw
cEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1BlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1BlckFwcEFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdHJ1Y3QgUGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIHsKKyAgICBi
b29sIHJlZHVjZU1vdGlvbkVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaW5jcmVhc2VCdXR0
b25MZWdpYmlsaXR5IHsgZmFsc2UgfTsKKyAgICBib29sIGVuaGFuY2VUZXh0TGVnaWJpbGl0eSB7
IGZhbHNlIH07CisgICAgYm9vbCBkYXJrZW5TeXN0ZW1Db2xvcnMgeyBmYWxzZSB9OworICAgIGJv
b2wgaW52ZXJ0Q29sb3JzRW5hYmxlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworbmFtZXNwYWNlIElQQyB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYktpdDo6UGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzPiB7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJLaXQ6OlBlckFwcEFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6UGVyQXBwQWNjZXNz
aWJpbGl0eVByZWZlcmVuY2VzPiBkZWNvZGUoRGVjb2RlciYpOworfTsKK30KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjc4NTI1KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpA
QCAtNTc1LDYgKzU3NSw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1Ip
CiAgICAgc3RhdGljIHZvaWQgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxlZENhbGxiYWNrKENGTm90
aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkICpvYnNlcnZlciwgQ0ZTdHJpbmdSZWYgbmFtZSwgY29u
c3Qgdm9pZCAqLCBDRkRpY3Rpb25hcnlSZWYgdXNlckluZm8pOwogI2VuZGlmCisjaWYgSEFWRShQ
RVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgc3RhdGljIHZvaWQgYWNjZXNz
aWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVm
LCB2b2lkICpvYnNlcnZlciwgQ0ZTdHJpbmdSZWYgbmFtZSwgY29uc3Qgdm9pZCAqLCBDRkRpY3Rp
b25hcnlSZWYgdXNlckluZm8pOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTUsNiAr
OTUsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2VuZGlmCiAKKyNp
ZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyNpbmNsdWRlICJQZXJB
cHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCIKKyNlbmRpZgorCiAjaW1wb3J0IDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9NZWRpYVRvb2xib3hTb2Z0
TGluay5oPgogCkBAIC0yNjcsNiArMjcxLDIxIEBAIHN0YXRpYyBib29sIHJlcXVpcmVzQ29udGFp
bmVyTWFuYWdlckFjY2UKICNlbmRpZgogfQogCisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJ
VFlfUFJFRkVSRU5DRVMpCitzdGF0aWMgUGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzIHBl
ckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpCit7CisgICAgYXV0byBhcHBJZCA9IFdlYkNv
cmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLmNyZWF0ZUNGU3RyaW5nKCk7CisKKyAg
ICBib29sIHJlZHVjZU1vdGlvbkVuYWJsZWQgPSBfQVhTUmVkdWNlTW90aW9uRW5hYmxlZEFwcChh
cHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgYm9vbCBpbmNyZWFzZUJ1dHRvbkxl
Z2liaWxpdHkgPSBfQVhTSW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5QXBwKGFwcElkLmdldCgpKSA9
PSBBWFZhbHVlU3RhdGVPbjsKKyAgICBib29sIGVuaGFuY2VUZXh0TGVnaWJpbGl0eSA9IF9BWFNF
bmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKGFwcElkLmdldCgpKSA9PSBBWFZhbHVlU3Rh
dGVPbjsKKyAgICBib29sIGRhcmtlblN5c3RlbUNvbG9ycyA9IF9BWERhcmtlblN5c3RlbUNvbG9y
c0FwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgYm9vbCBpbnZlcnRDb2xv
cnNFbmFibGVkID0gX0FYU0ludmVydENvbG9yc0VuYWJsZWRBcHAoYXBwSWQuZ2V0KCkpID09IEFY
VmFsdWVTdGF0ZU9uOworCisgICAgcmV0dXJuIFBlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNl
cyB7IHJlZHVjZU1vdGlvbkVuYWJsZWQsIGluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eSwgZW5oYW5j
ZVRleHRMZWdpYmlsaXR5LCBkYXJrZW5TeXN0ZW1Db2xvcnMsIGludmVydENvbG9yc0VuYWJsZWQg
fTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5
cGVzID0gcHJvY2Vzcy5tZWRpYU1JTUVUeXBlcygpOwpAQCAtNDA0LDYgKzQyMyw5IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHBhcmFtZXRlcnMuY3VycmVudFVzZXJJbnRlcmZhY2VJZGlvbUlzUGFkID0gY3Vy
cmVudFVzZXJJbnRlcmZhY2VJZGlvbUlzUGFkT3JNYWMoKTsKICAgICBwYXJhbWV0ZXJzLnN1cHBv
cnRzUGljdHVyZUluUGljdHVyZSA9IHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpOworI2lmIEhB
VkUoUEVSX0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIHBhcmFtZXRlcnMucGVy
QXBwQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzID0gcGVyQXBwQWNjZXNzaWJpbGl0eVByZWZlcmVu
Y2VzKCk7CisjZW5kaWYKICAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9
IFJlbmRlclRoZW1lSU9TOjpjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKICAgICBwYXJhbWV0
ZXJzLmZvY3VzUmluZ0NvbG9yID0gUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUZvY3VzUmluZ0NvbG9y
KCk7CiAgICAgcGFyYW1ldGVycy5sb2NhbGl6ZWREZXZpY2VNb2RlbCA9IGxvY2FsaXplZERldmlj
ZU1vZGVsKCk7CkBAIC01NTcsNiArNTc5LDE1IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmJhY2ts
aWdodExldmVsRGlkQ2gKICAgICBhdXRvKiBwb29sID0gcmVpbnRlcnByZXRfY2FzdDxXZWJQcm9j
ZXNzUG9vbCo+KG9ic2VydmVyKTsKICAgICBwb29sLT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkJhY2tsaWdodExldmVsRGlkQ2hhbmdlKEJLU0Rpc3BsYXlCcmlnaHRu
ZXNzR2V0Q3VycmVudCgpKSk7CiB9CisKKyNpZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9Q
UkVGRVJFTkNFUykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNl
c0NoYW5nZWRDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIs
IENGU3RyaW5nUmVmIG5hbWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZv
KQoreworICAgIGF1dG8qIHBvb2wgPSByZWludGVycHJldF9jYXN0PFdlYlByb2Nlc3NQb29sKj4o
b2JzZXJ2ZXIpOworICAgIHBvb2wtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6QWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzRGlkQ2hhbmdlKHBlckFwcEFjY2Vzc2liaWxp
dHlQcmVmZXJlbmNlcygpKSk7Cit9CisjZW5kaWYKKwogI2VuZGlmCiAKICNpZiBQTEFURk9STShN
QUMpCkBAIC02NTksNiArNjkwLDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90
aWZpY2F0aW8KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMp
CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRl
ckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXND
aGFuZ2VkQ2FsbGJhY2ssIGtBWFNSZWR1Y2VNb3Rpb25DaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxs
cHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKKyAgICBDRk5v
dGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2lu
Tm90aWZ5Q2VudGVyKCksIHRoaXMsIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxs
YmFjaywga0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eU5vdGlmaWNhdGlvbiwgbnVsbHB0ciwg
Q0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CisgICAgQ0ZOb3RpZmlj
YXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlm
eUNlbnRlcigpLCB0aGlzLCBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2ss
IGtBWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxscHRyLCBD
Rk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKKyAgICBDRk5vdGlmaWNh
dGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5
Q2VudGVyKCksIHRoaXMsIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywg
a0FYU0RhcmtlblN5c3RlbUNvbG9yc0VuYWJsZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90
aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9u
Q2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50
ZXIoKSwgdGhpcywgYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhT
SW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25T
dXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CisjZW5kaWYKICAgICBtX2FjY2Vzc2liaWxpdHlF
bmFibGVkT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0
eUVuYWJsZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBj
dXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIGlm
ICghX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTcxMyw2ICs3NTEsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rl
ck5vdGlmaWNhdAogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyNpZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNF
UykKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9u
Q2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGtBWFNSZWR1Y2VNb3Rpb25DaGFu
Z2VkTm90aWZpY2F0aW9uLCBudWxscHRyKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlbW92
ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRo
aXMsIGtBWFNJbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHlOb3RpZmljYXRpb24sIG51bGxwdHIpOwor
ICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50
ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywga0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0
eUNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVy
UmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIo
KSwgdGhpcywga0FYU0RhcmtlblN5c3RlbUNvbG9yc0VuYWJsZWROb3RpZmljYXRpb24sIG51bGxw
dHIpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRp
b25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywga0FYU0ludmVydENvbG9yc0Vu
YWJsZWROb3RpZmljYXRpb24sIG51bGxwdHIpOworI2VuZGlmCiAgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjY2Vzc2liaWxpdHlFbmFi
bGVkT2JzZXJ2ZXIuZ2V0KCldOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hcHBsaWNhdGlvbkxhdW5jaE9ic2VydmVyLmdldCgpXTsK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogCWFy
Y2hpdmVWZXJzaW9uID0gMTsKIAljbGFzc2VzID0gewogCX07Ci0Jb2JqZWN0VmVyc2lvbiA9IDUy
OworCW9iamVjdFZlcnNpb24gPSA1NDsKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dy
ZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwpAQCAtMTk4Niw2ICsxOTg2LDcgQEAKIAkJRTM4QTFGQzAy
M0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOEExRkJGMjNBNTUxQkYwMEQyMzc0RiAv
KiBVc2VySW50ZXJmYWNlSWRpb20ubW0gKi87IH07CiAJCUUzOTYyOEREMjM5NjBDQzYwMDY1OEVD
RCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0Qg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovOyB9OwogCQlFMzk2MjhE
RTIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhE
QzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5j
cHAgKi87IH07CisJCUUzQkNFODcyMjY2RkNFRDMwMDExRDhEQiAvKiBQZXJBcHBBY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzFGNzNBREMyNjZFQ0NCQTAwQTQxQkFGIC8qIFBlckFwcEFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlcy5jcHAgKi87IH07CiAJCUUzQ0FBQTQ0MjQxMzI3OTkwMENFRDJFMiAvKiBBY2Nl
c3NpYmlsaXR5U3VwcG9ydFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBw
b3J0U1BJLmggKi87IH07CiAJCUU0MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3JrQ2Fj
aGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07CiAJ
CUU0MkUwNjEwMUFBNzUyM0IwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFBNzQ0
MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKQEAgLTU1ODcsNiAr
NTU4OCw4IEBACiAJCUMxQzFCMzBFMjU0MEY0NTYwMEQ5MTAwQiAvKiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMUUx
MjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUERGQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzFFRDcyMzcyNEE1NjkwRTAwM0Y2Q0QzIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzFGNzNBREIyNjZFQzhGNzAwQTQxQkFG
IC8qIFBlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJB
cHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzFGNzNBREMyNjZFQ0NCQTAwQTQxQkFGIC8qIFBlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE3Mzg4MDEyREY4RjRGMDBF
RTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkVkaXRvckNsaWVudE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU0MjU2QUYxOEJFQzE4QjAwREU0
MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV0tEYXRlVGltZUlucHV0Q29udHJvbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRGF0
ZVRpbWVJbnB1dENvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyNzMs
NiArODI3Niw4IEBACiAJCQkJMkQxMDg3NjIxRDJDNjQxQjAwQjg1RjgyIC8qIExvYWRQYXJhbWV0
ZXJzQ29jb2EubW0gKi8sCiAJCQkJMkQ0NDBCODMyNUVGMjM1RTAwQTk4RDg3IC8qIFBERktpdFNv
ZnRMaW5rLmggKi8sCiAJCQkJMkQ0NDBCODIyNUVGMjM1RTAwQTk4RDg3IC8qIFBERktpdFNvZnRM
aW5rLm1tICovLAorCQkJCUMxRjczQURDMjY2RUNDQkEwMEE0MUJBRiAvKiBQZXJBcHBBY2Nlc3Np
YmlsaXR5UHJlZmVyZW5jZXMuY3BwICovLAorCQkJCUMxRjczQURCMjY2RUM4RjcwMEE0MUJBRiAv
KiBQZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCAqLywKIAkJCQk3QUI0RUEzRjIyNzc3
QzQ2MDA4NUJCQUEgLyogU2FuZGJveEV4dGVuc2lvbkNvY29hLm1tICovLAogCQkJCTdBQjRFQTQx
MjI3NzdGQzcwMDg1QkJBQSAvKiBTYW5kYm94SW5pdGlhbGlhdGlvblBhcmFtZXRlcnNDb2NvYS5t
bSAqLywKIAkJCQlFMTlCREE4ODE5MzY4NkE0MDBCOTdGNTcgLyogU2FuZGJveFV0aWxpdGllcy5o
ICovLApAQCAtMTQxODUsNiArMTQxOTAsNyBAQAogCQkJCTJEOTEzNDQ3MjEyQ0Y5RjAwMDEyOEFG
RCAvKiBOUFJ1bnRpbWVPYmplY3RNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDgy
MTJDRjlGMDAwMTI4QUZEIC8qIE5QUnVudGltZVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDkyQTc5NDIxMkI2QUQ0MDBGNDkzRkQgLyogTlBWYXJpYW50RGF0YS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlFM0JDRTg3MjI2NkZDRUQzMDAxMUQ4REIgLyogUGVyQXBwQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTI4MUNCRUI2N0Ew
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTI5QTJBMUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MTM0NDkyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjc4NTI1KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAt
NzAsNiArNzAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheUxpYldQRS5o
PgogI2VuZGlmCiAKKyNpZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykK
KyNpbmNsdWRlICJQZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCIKKyNlbmRpZgorCiBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsKIH0KQEAgLTU2NCw2ICs1NjgsOSBAQCBwcml2
YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQogICAgIHZvaWQgYmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwp
OworI2lmIEhBVkUoUEVSX0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIHZvaWQg
YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0IFBlckFwcEFjY2Vzc2liaWxp
dHlQcmVmZXJlbmNlcyYpOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTEyNCw2ICsxMjQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5v
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAg
ICAgQmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpCisjaWYgSEFW
RShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgQWNjZXNzaWJpbGl0eVBy
ZWZlcmVuY2VzRGlkQ2hhbmdlKHN0cnVjdCBXZWJLaXQ6OlBlckFwcEFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyBwZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMpCisjZW5kaWYKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2
aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlT
dXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCIK
ICNpbXBvcnQgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5p
dGlhbGl6YXRpb24uaCIKQEAgLTQ0Nyw2ICs0NDgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcgogICAgIAogICAgIGlmICghcGFyYW1ldGVycy5tYXhpbXVtSU9T
dXJmYWNlU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6c2V0TWF4
aW11bVNpemUocGFyYW1ldGVycy5tYXhpbXVtSU9TdXJmYWNlU2l6ZSk7CisKKyNpZiBIQVZFKFBF
Ul9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBhY2Nlc3NpYmlsaXR5UHJlZmVy
ZW5jZXNEaWRDaGFuZ2UocGFyYW1ldGVycy5wZXJBcHBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMp
OworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CkBAIC0xMDMzLDYgKzEwMzgsMTkgQEAgdm9pZCBXZWJQcm9jZXNzOjpiYWNrbGlnaHRMZXZlbERp
ZENoYW5nZQogICAgICAgICAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvUGF0
Y2gsIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihjdXJyZW50QmFja2xpZ2h0TGV2ZWwpKTsKICAgICAg
ICAgfSk7CiB9CisKKyNpZiBIQVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykK
K3ZvaWQgV2ViUHJvY2Vzczo6YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0
IFBlckFwcEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyYgcHJlZmVyZW5jZXMpCit7CisgICAgYXV0
byBhcHBJRCA9IENGU1RSKCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiKTsKKyAgICBfQVhT
U2V0UmVkdWNlTW90aW9uRW5hYmxlZEFwcChwcmVmZXJlbmNlcy5yZWR1Y2VNb3Rpb25FbmFibGVk
ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBfQVhTU2V0
SW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5QXBwKHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eSA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisgICAg
X0FYU1NldEVuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAocHJlZmVyZW5jZXMuZW5oYW5j
ZVRleHRMZWdpYmlsaXR5ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElE
KTsKKyAgICBfQVhTU2V0RGFya2VuU3lzdGVtQ29sb3JzQXBwKHByZWZlcmVuY2VzLmRhcmtlblN5
c3RlbUNvbG9ycyA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7Cisg
ICAgX0FYU0ludmVydENvbG9yc1NldEVuYWJsZWRBcHAocHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3Jz
RW5hYmxlZCA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7Cit9Cisj
ZW5kaWYKKwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKQo=
</data>
<flag name="review"
          id="452473"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="452520"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431074</attachid>
            <date>2021-06-10 06:47:08 -0700</date>
            <delta_ts>2021-06-10 07:22:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226738-20210610064707.patch</filename>
            <type>text/plain</type>
            <size>24098</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzg1NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA2LTA4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2li
aWxpdHkgcHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjczOAorICAgICAgICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgSW1wbGVtZW50IFBlci1BcHAgQWNj
ZXNzaWJpbGl0eSBwcmVmZXJlbmNlcyBvbiBpT1MuIFRoZSBQZXItQXBwIEFjY2Vzc2liaWxpdHkg
cHJlZmVyZW5jZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBzaG91bGQgcmVm
bGVjdCB0aGUgdmFsdWVzIGluIHRoZSBVSSBwcm9jZXNzLiBUaGlzIGlzIGFkZHJlc3NlZCBieSBz
eW5jaW5nIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGUgdHdvIHByb2Nlc3NlcyBvbgorICAgICAgICBz
dGFydHVwIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MsIGFuZCB3aGVuIHRoZSB2YWx1ZXMgY2hh
bmdlLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlc0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpy
ZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjphY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2UpOgorCiAy
MDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBv
dmVybGF5cwpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQWNjZXNzaWJp
bGl0eVN1cHBvcnRTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBT
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0MiwzMSBAQCBleHRlcm4gQ0ZTdHJpbmdSZWYgX0FY
U0NvcHlQYXRoRm9yQWNjZXNzCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogZXh0ZXJuIENG
U3RyaW5nUmVmIGtBWFNSZWR1Y2VNb3Rpb25QcmVmZXJlbmNlOworCiBleHRlcm4gQ0ZTdHJpbmdS
ZWYga0FYU1JlZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb247CitleHRlcm4gQ0ZTdHJpbmdS
ZWYga0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eU5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0
cmluZ1JlZiBrQVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbjsKK2V4
dGVybiBDRlN0cmluZ1JlZiBrQVhTRGFya2VuU3lzdGVtQ29sb3JzRW5hYmxlZE5vdGlmaWNhdGlv
bjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlv
bjsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBBWFZhbHVlU3RhdGVJbnZhbGlkID0gLTIsCisgICAg
QVhWYWx1ZVN0YXRlRW1wdHkgPSAtMSwKKyAgICBBWFZhbHVlU3RhdGVPZmYsCisgICAgQVhWYWx1
ZVN0YXRlT24KK30gQVhWYWx1ZVN0YXRlOworCitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNSZWR1
Y2VNb3Rpb25FbmFibGVkQXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3Rh
dGUgX0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChDRlN0cmluZ1JlZiBhcHBJRCk7Citl
eHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKENG
U3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYRGFya2VuU3lzdGVtQ29s
b3JzQXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYU0ludmVy
dENvbG9yc0VuYWJsZWRBcHAoQ0ZTdHJpbmdSZWYgYXBwSUQpOworCitleHRlcm4gdm9pZCBfQVhT
U2V0UmVkdWNlTW90aW9uRW5hYmxlZEFwcChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZTdHJpbmdS
ZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQgX0FYU1NldEluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFw
cChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQg
X0FYU1NldEVuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAoQVhWYWx1ZVN0YXRlIGVuYWJs
ZWQsIENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiB2b2lkIF9BWFNTZXREYXJrZW5TeXN0ZW1D
b2xvcnNBcHAoQVhWYWx1ZVN0YXRlIGVuYWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVy
biB2b2lkIF9BWFNJbnZlcnRDb2xvcnNTZXRFbmFibGVkQXBwKEFYVmFsdWVTdGF0ZSBlbmFibGVk
LCBDRlN0cmluZ1JlZiBhcHBJRCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lv
biAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBl
bmNvZGVyIDw8IG1heGltdW1JT1N1cmZhY2VTaXplOwogI2VuZGlmCisKKyAgICBlbmNvZGVyIDw8
IGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKIH0KIAogYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTQ5LDYgKzU1MSwxMiBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogCisgICAgc3RkOjpvcHRpb25hbDxBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+IGFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlczsKKyAgICBkZWNvZGVyID4+IGFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlczsKKyAgICBpZiAoIWFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzID0gV1RGTW92
ZSgqYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzKTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMu
aCIKICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTI0Myw2ICsyNDQsOCBAQCBzdHJ1
Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgSEFWRShJT1NVUkZBQ0UpCiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSBtYXhpbXVtSU9TdXJmYWNlU2l6ZTsKICNlbmRpZgorICAgIAor
ICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0FjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNwcAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCisK
K25hbWVzcGFjZSBJUEMgeworCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViS2l0OjpBY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViS2l0OjpB
Y2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMmIHByZWZlcmVuY2VzKQoreworI2lmIEhBVkUoUEVSX0FQ
UF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGVuY29kZXIgPDwgcHJlZmVyZW5jZXMu
cmVkdWNlTW90aW9uRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmluY3JlYXNl
QnV0dG9uTGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmVuaGFuY2VUZXh0
TGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmRhcmtlblN5c3RlbUNvbG9y
czsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmludmVydENvbG9yc0VuYWJsZWQ7CisjZW5k
aWYKK30KKworc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcz4g
QXJndW1lbnRDb2RlcjxXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcz46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFdlYktpdDo6QWNjZXNzaWJpbGl0eVByZWZlcmVuY2Vz
IHByZWZlcmVuY2VzOworI2lmIEhBVkUoUEVSX0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VT
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJlZmVyZW5jZXMucmVkdWNlTW90aW9uRW5hYmxl
ZCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwcmVmZXJlbmNlcy5pbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHkpKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJlZmVyZW5jZXMuZW5oYW5j
ZVRleHRMZWdpYmlsaXR5KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHByZWZlcmVuY2VzLmRhcmtlblN5c3RlbUNvbG9ycykpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmVmZXJlbmNl
cy5pbnZlcnRDb2xvcnNFbmFibGVkKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNl
bmRpZgorICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BY2Nlc3NpYmlsaXR5
UHJlZmVyZW5jZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9BY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVy
cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IEFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcyB7CisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAg
Ym9vbCByZWR1Y2VNb3Rpb25FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGluY3JlYXNlQnV0
dG9uTGVnaWJpbGl0eSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmhhbmNlVGV4dExlZ2liaWxpdHkg
eyBmYWxzZSB9OworICAgIGJvb2wgZGFya2VuU3lzdGVtQ29sb3JzIHsgZmFsc2UgfTsKKyAgICBi
b29sIGludmVydENvbG9yc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIElQQyB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYktpdDo6QWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzPiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6QWNjZXNzaWJpbGl0eVBy
ZWZlcmVuY2VzPiBkZWNvZGUoRGVjb2RlciYpOworfTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNTc3LDYg
KzU3NywxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHN0YXRpYyB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFj
ayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5h
bWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyB2b2lkIGNvbG9yUHJlZmVyZW5jZXNEaWRDaGFu
Z2VDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3Ry
aW5nUmVmIG5hbWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29s
LmgiCiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiQWNj
ZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VVdGlsc0NGLmgi
CiAjaW1wb3J0ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgpAQCAtMjY3LDYgKzI2OCwyMSBA
QCBzdGF0aWMgYm9vbCByZXF1aXJlc0NvbnRhaW5lck1hbmFnZXJBY2NlCiAjZW5kaWYKIH0KIAor
c3RhdGljIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMo
KQoreworICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBwcmVmZXJlbmNlczsKKyNpZiBIQVZF
KFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBhdXRvIGFwcElkID0gV2Vi
Q29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKwor
ICAgIHByZWZlcmVuY2VzLnJlZHVjZU1vdGlvbkVuYWJsZWQgPSBfQVhTUmVkdWNlTW90aW9uRW5h
YmxlZEFwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMu
aW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5ID0gX0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFw
cChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuZW5oYW5j
ZVRleHRMZWdpYmlsaXR5ID0gX0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAoYXBw
SWQuZ2V0KCkpID09IEFYVmFsdWVTdGF0ZU9uOworICAgIHByZWZlcmVuY2VzLmRhcmtlblN5c3Rl
bUNvbG9ycyA9IF9BWERhcmtlblN5c3RlbUNvbG9yc0FwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1
ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3JzRW5hYmxlZCA9IF9BWFNJbnZl
cnRDb2xvcnNFbmFibGVkQXBwKGFwcElkLmdldCgpKSA9PSBBWFZhbHVlU3RhdGVPbjsKKyNlbmRp
ZgorICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgcGFyYW1l
dGVycy5tZWRpYU1JTUVUeXBlcyA9IHByb2Nlc3MubWVkaWFNSU1FVHlwZXMoKTsKQEAgLTQ1Myw2
ICs0NjksOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAg
Ly8gSG93ZXZlciwgcXVlcnlpbmcgdGhpcyBpcyBhIGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24sIHNv
IGxpbWl0IHRoaXMgdG8gb25seSB0aGUgbmVjZXNzYXJ5IGNhc2UuCiAgICAgaWYgKG1fZGVmYXVs
dFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5h
YmxlZCgpKQogICAgICAgICBwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplID0gV2ViQ29y
ZTo6SU9TdXJmYWNlOjptYXhpbXVtU2l6ZSgpOworCisgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXMgPSBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoKTsKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC01NTcsNiArNTc1LDEzIEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmJhY2tsaWdodExldmVsRGlkQ2gKICAgICBhdXRvKiBwb29s
ID0gcmVpbnRlcnByZXRfY2FzdDxXZWJQcm9jZXNzUG9vbCo+KG9ic2VydmVyKTsKICAgICBwb29s
LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkJhY2tsaWdodExldmVs
RGlkQ2hhbmdlKEJLU0Rpc3BsYXlCcmlnaHRuZXNzR2V0Q3VycmVudCgpKSk7CiB9CisKK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjayhD
Rk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUs
IGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKQoreworICAgIGF1dG8qIHBv
b2wgPSByZWludGVycHJldF9jYXN0PFdlYlByb2Nlc3NQb29sKj4ob2JzZXJ2ZXIpOworICAgIHBv
b2wtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzRGlkQ2hhbmdlKGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpKSk7Cit9CisK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNjg3LDYgKzcxMiwxNCBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAgICAgbV9wb3dlclNvdXJjZU5vdGlm
aWVyID0gV1RGOjptYWtlVW5pcXVlPFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI+KFt0aGlz
XSAoYm9vbCBoYXNBQykgewogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OlBvd2VyU291cmNlRGlkQ2hhbmdlKGhhc0FDKSk7CiAgICAgfSk7CisKKyNpZiBI
QVZFKFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBDRk5vdGlmaWNhdGlv
bkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2Vu
dGVyKCksIHRoaXMsIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FY
U1JlZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9u
U3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRk
T2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhp
cywgYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTSW5jcmVhc2VC
dXR0b25MZWdpYmlsaXR5Tm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3Bl
bnNpb25CZWhhdmlvckNvYWxlc2NlKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2Vy
dmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGFj
Y2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU0VuaGFuY2VUZXh0TGVn
aWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVu
c2lvbkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2
ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgYWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTRGFya2VuU3lzdGVtQ29s
b3JzRW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9u
QmVoYXZpb3JDb2FsZXNjZSk7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihD
Rk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBhY2Nlc3Np
YmlsaXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2ssIGtBWFNJbnZlcnRDb2xvcnNFbmFibGVk
Tm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNv
YWxlc2NlKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90
aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKQEAgLTcyMCw2ICs3NTMsMTQgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwog
CiAgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKKworI2lmIEhBVkUoUEVSX0FQ
UF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVt
b3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwg
dGhpcywga0FYU1JlZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIpOworICAg
IENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJH
ZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywga0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0
eU5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVP
YnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlz
LCBrQVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7
CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNl
bnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBrQVhTRGFya2VuU3lzdGVtQ29sb3Jz
RW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJS
ZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigp
LCB0aGlzLCBrQVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7Cisj
ZW5kaWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNVUkxLbm93bkhTVFNIb3N0KGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTg2LDYgKzE5ODYsOCBAQAogCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlcklu
dGVyZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM4QTFGQkYyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSAq
LzsgfTsKIAkJRTM5NjI4REQyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyLmggKi87IH07CiAJCUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJRTNCQ0U4NzUyNjcx
NUNCRTAwMTFEOERCIC8qIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCQ0U4NzMyNjcxNUNCRDAwMTFEOERC
IC8qIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oICovOyB9OworCQlFM0JDRTg3NjI2NzE1Q0JF
MDAxMUQ4REIgLyogQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkNFODc0MjY3MTVDQkUwMDExRDhEQiAv
KiBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuY3BwICovOyB9OwogCQlFM0NBQUE0NDI0MTMyNzk5
MDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBB
Y2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovOyB9OwogCQlFNDEzRjU5RDFBQzFBREM0MDAzNDUz
NjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVF
bnRyeS5oICovOyB9OwogCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkgLyogTmV0d29ya0NhY2hl
SU9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi87
IH07CkBAIC01ODk1LDYgKzU4OTcsOCBAQAogCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0JDRTg3MzI2NzE1Q0JEMDAxMUQ4
REIgLyogQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFM0JDRTg3NDI2NzE1Q0JFMDAxMUQ4REIgLyogQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQ0FB
QTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGQjAyQzI1NTA2MTdDMDAzQzJGOTYgLyogV2Vi
U3lzdGVtU291bmREZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTeXN0ZW1Tb3Vu
ZERlbGVnYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFRkIwMkQyNTUw
NjE3QzAwM0MyRjk2IC8qIFdlYlN5c3RlbVNvdW5kRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU3lzdGVtU291bmREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODI1NCw2ICs4MjU4LDggQEAKIAkJMzdDNEMwOTAxODE0QjM3QjAwMzY4OEI5IC8qIGNvY29hICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFM0JDRTg3NDI2
NzE1Q0JFMDAxMUQ4REIgLyogQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNwcCAqLywKKwkJCQlF
M0JDRTg3MzI2NzE1Q0JEMDAxMUQ4REIgLyogQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmggKi8s
CiAJCQkJMUExRUYxOTcxQTFENUI0MjAwMjMyMDBBIC8qIEFQSURhdGFDb2NvYS5tbSAqLywKIAkJ
CQkzNzhFMUEzQjE4MUVENkZGMDAzMTAwN0EgLyogQVBJT2JqZWN0Lm1tICovLAogCQkJCUExNzVD
NDQ5MjFBQTMxNzAwMDAwMzdEMCAvKiBBcmd1bWVudENvZGVyc0NvY29hLmggKi8sCkBAIC0xMTc2
NSw2ICsxMTc3MSw3IEBACiAJCQkJQTExNURDNzIxOTFEODJEQTAwREE4MDcyIC8qIF9XS1dlYlZp
ZXdQcmludEZvcm1hdHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5REQzQzAxRDA3RDE2ODAw
QUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMTgyRDVCNTFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTNCQ0U4NzUyNjcxNUNCRTAwMTFEOERCIC8qIEFjY2Vzc2liaWxp
dHlQcmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNDQUFBNDQyNDEzMjc5OTAwQ0VE
MkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q3
OTJEODE3NjdDQ0EzMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTYzNDg0MjUxMUZCMjZFNzEwMDk0NkUzQyAvKiBBUElBcHBsaWNhdGlvbk1hbmlmZXN0
LmggaW4gSGVhZGVycyAqLywKQEAgLTE0MTA5LDYgKzE0MTE2LDcgQEAKIAkJCQk0OUZCRUZGRDIz
OUIwMTFEMDBCRDAzMkYgLyogX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkubW0g
aW4gU291cmNlcyAqLywKIAkJCQk0OUZCRUZGRjIzOUIwMTJGMDBCRDAzMkYgLyogX1dLUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkubW0gaW4gU291cmNlcyAqLywKIAkJCQk5OUU3MTg5
QTIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUUzQkNFODc2MjY3MTVDQkUwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJlZmVy
ZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODQyMTJCNkFCMTAwRjQ5M0ZEIC8q
IEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MkVCQkRBMjUzOEY2
QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ5MkE3N0IyMTJCNkE3MTAwRjQ5M0ZEIC8qIEFyZ3VtZW50Q29kZXJzLmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZp
c2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vz
cy5oIgogI2luY2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuaCIKQEAgLTU2Niw2ICs1NjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
YmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpOwogI2VuZGlmCiAK
KyAgICB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBBY2Nlc3Np
YmlsaXR5UHJlZmVyZW5jZXMmKTsKKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFD
Q0FUQUxZU1QpCiAgICAgdm9pZCBjb2xvclByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjAyLDQgKzIwMiw2IEBAIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm8KICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBDb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKElQQzo6U2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZSByZWdpc3RyYXRpb25EYXRhKQogI2VuZGlmCisKKyAgICBBY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2Uoc3RydWN0IFdlYktpdDo6QWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcykKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjc4
NTI1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJ
LmgiCiAjaW1wb3J0ICJHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQg
IkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5pdGlhbGl6YXRp
b24uaCIKQEAgLTQ0Nyw2ICs0NDgsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByCiAgICAgCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXpl
LmlzRW1wdHkoKSkKICAgICAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpzZXRNYXhpbXVtU2l6ZShw
YXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplKTsKKworICAgIGFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlc0RpZENoYW5nZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyk7CiB9
CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkBAIC0xMDMzLDYg
KzEwMzYsMTkgQEAgdm9pZCBXZWJQcm9jZXNzOjpiYWNrbGlnaHRMZXZlbERpZENoYW5nZQogICAg
ICAgICAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvUGF0Y2gsIHJlaW50ZXJw
cmV0X2Nhc3Q8SU1QPihjdXJyZW50QmFja2xpZ2h0TGV2ZWwpKTsKICAgICAgICAgfSk7CiB9CisK
K3ZvaWQgV2ViUHJvY2Vzczo6YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0
IEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyYgcHJlZmVyZW5jZXMpCit7CisjaWYgSEFWRShQRVJf
QVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgYXV0byBhcHBJRCA9IENGU1RSKCJj
b20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiKTsKKyAgICBfQVhTU2V0UmVkdWNlTW90aW9uRW5h
YmxlZEFwcChwcmVmZXJlbmNlcy5yZWR1Y2VNb3Rpb25FbmFibGVkID8gQVhWYWx1ZVN0YXRlT24g
OiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBfQVhTU2V0SW5jcmVhc2VCdXR0b25MZWdp
YmlsaXR5QXBwKHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eSA/IEFYVmFsdWVT
dGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisgICAgX0FYU1NldEVuaGFuY2VUZXh0
TGVnaWJpbGl0eUVuYWJsZWRBcHAocHJlZmVyZW5jZXMuZW5oYW5jZVRleHRMZWdpYmlsaXR5ID8g
QVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBfQVhTU2V0RGFy
a2VuU3lzdGVtQ29sb3JzQXBwKHByZWZlcmVuY2VzLmRhcmtlblN5c3RlbUNvbG9ycyA/IEFYVmFs
dWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisgICAgX0FYU0ludmVydENvbG9y
c1NldEVuYWJsZWRBcHAocHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3JzRW5hYmxlZCA/IEFYVmFsdWVT
dGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisjZW5kaWYKK30KKwogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQo=
</data>
<flag name="commit-queue"
          id="452724"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431075</attachid>
            <date>2021-06-10 07:18:59 -0700</date>
            <delta_ts>2021-06-10 07:36:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226738-20210610071858.patch</filename>
            <type>text/plain</type>
            <size>22169</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzg1NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA2LTA4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2li
aWxpdHkgcHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjczOAorICAgICAgICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgSW1wbGVtZW50IFBlci1BcHAgQWNj
ZXNzaWJpbGl0eSBwcmVmZXJlbmNlcyBvbiBpT1MuIFRoZSBQZXItQXBwIEFjY2Vzc2liaWxpdHkg
cHJlZmVyZW5jZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBzaG91bGQgcmVm
bGVjdCB0aGUgdmFsdWVzIGluIHRoZSBVSSBwcm9jZXNzLiBUaGlzIGlzIGFkZHJlc3NlZCBieSBz
eW5jaW5nIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGUgdHdvIHByb2Nlc3NlcyBvbgorICAgICAgICBz
dGFydHVwIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MsIGFuZCB3aGVuIHRoZSB2YWx1ZXMgY2hh
bmdlLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlc0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpy
ZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjphY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2UpOgorCiAy
MDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBv
dmVybGF5cwpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsNiArMTY0LDcgQEAgUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBAbm8tdW5pZgogUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiAKIC8vIFRPRE86IFRoZSBmaWxlcyBoZXJlIG1h
cmtlZCBAbm8tdW5pZnkgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNz
MiBpcyByZW1vdmVkLgorU2hhcmVkL0FjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5jcHAKIFNoYXJl
ZC9BY3Rpdml0eUFzc2VydGlvbi5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvQXN5bmNSZXF1ZXN0LmNw
cAogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIEBuby11bmlmeQpJbmRleDogU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3Vw
cG9ydFNQSS5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3
ICs0MiwzMSBAQCBleHRlcm4gQ0ZTdHJpbmdSZWYgX0FYU0NvcHlQYXRoRm9yQWNjZXNzCiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNSZWR1Y2VNb3Rp
b25QcmVmZXJlbmNlOworCiBleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU1JlZHVjZU1vdGlvbkNoYW5n
ZWROb3RpZmljYXRpb247CitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0luY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eU5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTRW5oYW5jZVRleHRM
ZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTRGFy
a2VuU3lzdGVtQ29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBr
QVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbjsKKwordHlwZWRlZiBlbnVtIHsKKyAg
ICBBWFZhbHVlU3RhdGVJbnZhbGlkID0gLTIsCisgICAgQVhWYWx1ZVN0YXRlRW1wdHkgPSAtMSwK
KyAgICBBWFZhbHVlU3RhdGVPZmYsCisgICAgQVhWYWx1ZVN0YXRlT24KK30gQVhWYWx1ZVN0YXRl
OworCitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNSZWR1Y2VNb3Rpb25FbmFibGVkQXBwKENGU3Ry
aW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYU0luY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eUFwcChDRlN0cmluZ1JlZiBhcHBJRCk7CitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNF
bmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVy
biBBWFZhbHVlU3RhdGUgX0FYRGFya2VuU3lzdGVtQ29sb3JzQXBwKENGU3RyaW5nUmVmIGFwcElE
KTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYU0ludmVydENvbG9yc0VuYWJsZWRBcHAoQ0ZTdHJp
bmdSZWYgYXBwSUQpOworCitleHRlcm4gdm9pZCBfQVhTU2V0UmVkdWNlTW90aW9uRW5hYmxlZEFw
cChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQg
X0FYU1NldEluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChBWFZhbHVlU3RhdGUgZW5hYmxlZCwg
Q0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQgX0FYU1NldEVuaGFuY2VUZXh0TGVnaWJp
bGl0eUVuYWJsZWRBcHAoQVhWYWx1ZVN0YXRlIGVuYWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsK
K2V4dGVybiB2b2lkIF9BWFNTZXREYXJrZW5TeXN0ZW1Db2xvcnNBcHAoQVhWYWx1ZVN0YXRlIGVu
YWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiB2b2lkIF9BWFNJbnZlcnRDb2xvcnNT
ZXRFbmFibGVkQXBwKEFYVmFsdWVTdGF0ZSBlbmFibGVkLCBDRlN0cmluZ1JlZiBhcHBJRCk7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShGVUxMX0tFWUJPQVJE
X0FDQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9B
Y2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzLmgiCisKK25hbWVzcGFjZSBJUEMgeworCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViS2l0OjpBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV2ViS2l0OjpBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMmIHByZWZlcmVuY2Vz
KQoreworI2lmIEhBVkUoUEVSX0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGVu
Y29kZXIgPDwgcHJlZmVyZW5jZXMucmVkdWNlTW90aW9uRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8
IHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHBy
ZWZlcmVuY2VzLmVuaGFuY2VUZXh0TGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVu
Y2VzLmRhcmtlblN5c3RlbUNvbG9yczsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmludmVy
dENvbG9yc0VuYWJsZWQ7CisjZW5kaWYKK30KKworc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlcz4gQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFdlYktpdDo6QWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzIHByZWZlcmVuY2VzOworI2lmIEhBVkUoUEVSX0FQUF9BQ0NF
U1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJlZmVyZW5j
ZXMucmVkdWNlTW90aW9uRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmVmZXJlbmNlcy5pbmNyZWFzZUJ1dHRvbkxlZ2liaWxp
dHkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJlZmVyZW5jZXMuZW5oYW5jZVRleHRMZWdpYmlsaXR5KSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByZWZlcmVuY2VzLmRhcmtlblN5
c3RlbUNvbG9ycykpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwcmVmZXJlbmNlcy5pbnZlcnRDb2xvcnNFbmFibGVkKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BY2Nl
c3NpYmlsaXR5UHJlZmVyZW5jZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9BY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmd1bWVudENv
ZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IEFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyB7CisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisg
ICAgYm9vbCByZWR1Y2VNb3Rpb25FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGluY3JlYXNl
QnV0dG9uTGVnaWJpbGl0eSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmhhbmNlVGV4dExlZ2liaWxp
dHkgeyBmYWxzZSB9OworICAgIGJvb2wgZGFya2VuU3lzdGVtQ29sb3JzIHsgZmFsc2UgfTsKKyAg
ICBib29sIGludmVydENvbG9yc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIElQQyB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYktpdDo6QWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6QWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzPiBkZWNvZGUoRGVjb2RlciYpOworfTsKK30KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICBlbmNvZGVyIDw8IG1heGltdW1JT1N1cmZhY2VTaXplOwogI2VuZGlmCisKKyAgICBlbmNv
ZGVyIDw8IGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKIH0KIAogYm9vbCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTQ5LDYgKzU1MSwxMiBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgogCisgICAgc3RkOjpvcHRpb25hbDxBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+
IGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKKyAgICBkZWNvZGVyID4+IGFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlczsKKyAgICBpZiAoIWFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcykKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzID0g
V1RGTW92ZSgqYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzKTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UHJlZmVy
ZW5jZXMuaCIKICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTI0Myw2ICsyNDQsOCBA
QCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgSEFWRShJT1NVUkZB
Q0UpCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtYXhpbXVtSU9TdXJmYWNlU2l6ZTsKICNlbmRpZgor
ICAgIAorICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNTc3LDYgKzU3
NywxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHN0YXRpYyB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjayhD
Rk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUs
IGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyB2b2lkIGNvbG9yUHJlZmVyZW5jZXNEaWRDaGFuZ2VD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5n
UmVmIG5hbWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
CiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiQWNjZXNz
aWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VVdGlsc0NGLmgiCiAj
aW1wb3J0ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgpAQCAtMjY3LDYgKzI2OCwyMSBAQCBz
dGF0aWMgYm9vbCByZXF1aXJlc0NvbnRhaW5lck1hbmFnZXJBY2NlCiAjZW5kaWYKIH0KIAorc3Rh
dGljIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoKQor
eworICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBwcmVmZXJlbmNlczsKKyNpZiBIQVZFKFBF
Ul9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBhdXRvIGFwcElkID0gV2ViQ29y
ZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKworICAg
IHByZWZlcmVuY2VzLnJlZHVjZU1vdGlvbkVuYWJsZWQgPSBfQVhTUmVkdWNlTW90aW9uRW5hYmxl
ZEFwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuaW5j
cmVhc2VCdXR0b25MZWdpYmlsaXR5ID0gX0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChh
cHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuZW5oYW5jZVRl
eHRMZWdpYmlsaXR5ID0gX0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAoYXBwSWQu
Z2V0KCkpID09IEFYVmFsdWVTdGF0ZU9uOworICAgIHByZWZlcmVuY2VzLmRhcmtlblN5c3RlbUNv
bG9ycyA9IF9BWERhcmtlblN5c3RlbUNvbG9yc0FwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0
YXRlT247CisgICAgcHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3JzRW5hYmxlZCA9IF9BWFNJbnZlcnRD
b2xvcnNFbmFibGVkQXBwKGFwcElkLmdldCgpKSA9PSBBWFZhbHVlU3RhdGVPbjsKKyNlbmRpZgor
ICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgcGFyYW1ldGVy
cy5tZWRpYU1JTUVUeXBlcyA9IHByb2Nlc3MubWVkaWFNSU1FVHlwZXMoKTsKQEAgLTQ1Myw2ICs0
NjksOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgLy8g
SG93ZXZlciwgcXVlcnlpbmcgdGhpcyBpcyBhIGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24sIHNvIGxp
bWl0IHRoaXMgdG8gb25seSB0aGUgbmVjZXNzYXJ5IGNhc2UuCiAgICAgaWYgKG1fZGVmYXVsdFBh
Z2VHcm91cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxl
ZCgpKQogICAgICAgICBwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplID0gV2ViQ29yZTo6
SU9TdXJmYWNlOjptYXhpbXVtU2l6ZSgpOworCisgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5
UHJlZmVyZW5jZXMgPSBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoKTsKIH0KIAogdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC01NTcsNiArNTc1LDEzIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmJhY2tsaWdodExldmVsRGlkQ2gKICAgICBhdXRvKiBwb29sID0g
cmVpbnRlcnByZXRfY2FzdDxXZWJQcm9jZXNzUG9vbCo+KG9ic2VydmVyKTsKICAgICBwb29sLT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkJhY2tsaWdodExldmVsRGlk
Q2hhbmdlKEJLU0Rpc3BsYXlCcmlnaHRuZXNzR2V0Q3VycmVudCgpKSk7CiB9CisKK3ZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjayhDRk5v
dGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUsIGNv
bnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKQoreworICAgIGF1dG8qIHBvb2wg
PSByZWludGVycHJldF9jYXN0PFdlYlByb2Nlc3NQb29sKj4ob2JzZXJ2ZXIpOworICAgIHBvb2wt
PnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWNjZXNzaWJpbGl0eVBy
ZWZlcmVuY2VzRGlkQ2hhbmdlKGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpKSk7Cit9CisKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNjg3LDYgKzcxMiwxNCBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVy
ID0gV1RGOjptYWtlVW5pcXVlPFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI+KFt0aGlzXSAo
Ym9vbCBoYXNBQykgewogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OlBvd2VyU291cmNlRGlkQ2hhbmdlKGhhc0FDKSk7CiAgICAgfSk7CisKKyNpZiBIQVZF
KFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBDRk5vdGlmaWNhdGlvbkNl
bnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVy
KCksIHRoaXMsIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU1Jl
ZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3Vz
cGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2Jz
ZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywg
YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTSW5jcmVhc2VCdXR0
b25MZWdpYmlsaXR5Tm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNp
b25CZWhhdmlvckNvYWxlc2NlKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVy
KENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU0VuaGFuY2VUZXh0TGVnaWJp
bGl0eUNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lv
bkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgYWNjZXNz
aWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTRGFya2VuU3lzdGVtQ29sb3Jz
RW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVo
YXZpb3JDb2FsZXNjZSk7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5v
dGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBhY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2ssIGtBWFNJbnZlcnRDb2xvcnNFbmFibGVkTm90
aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxl
c2NlKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZp
Y2F0aW9uT2JzZXJ2ZXJzKCkKQEAgLTcyMCw2ICs3NTMsMTQgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogCiAg
ICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKKworI2lmIEhBVkUoUEVSX0FQUF9B
Q0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
T2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhp
cywga0FYU1JlZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIpOworICAgIENG
Tm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRE
YXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywga0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eU5v
dGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNl
cnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBr
QVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7Cisg
ICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRl
ckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBrQVhTRGFya2VuU3lzdGVtQ29sb3JzRW5h
YmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1v
dmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0
aGlzLCBrQVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisjZW5k
aWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNVUkxLbm93bkhTVFNIb3N0KGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01
ODk1LDYgKzU4OTUsOCBAQAogCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0JDRTg3NzI2NzI1MjEyMDAxMUQ4REIgLyogQWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQkNFODc4
MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3VwcG9y
dFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGQjAyQzI1NTA2MTdDMDAz
QzJGOTYgLyogV2ViU3lzdGVtU291bmREZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTeXN0ZW1Tb3VuZERlbGVnYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNFRkIwMkQyNTUwNjE3QzAwM0MyRjk2IC8qIFdlYlN5c3RlbVNvdW5kRGVsZWdhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU3lzdGVtU291bmREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjY3OCw2ICs2NjgwLDggQEAKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0
YSAqLywKKwkJCQlFM0JDRTg3NzI2NzI1MjEyMDAxMUQ4REIgLyogQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzLmNwcCAqLywKKwkJCQlFM0JDRTg3ODI2NzI1MjEyMDAxMUQ4REIgLyogQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzLmggKi8sCiAJCQkJQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFj
dGl2aXR5QXNzZXJ0aW9uLmNwcCAqLywKIAkJCQlBN0Q3OTJENDE3NjdDQjA5MDA4ODFDQkUgLyog
QWN0aXZpdHlBc3NlcnRpb24uaCAqLywKIAkJCQlCQzMyOUQ5QTE2QUNDRTk5MDAzMTZERTIgLyog
QVBJV2ViQXJjaGl2ZS5oICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiQXV4aWxp
YXJ5UHJvY2Vzcy5oIgogI2luY2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKQEAgLTU2Niw2ICs1NjcsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpOwog
I2VuZGlmCiAKKyAgICB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZShjb25z
dCBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMmKTsKKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgdm9pZCBjb2xvclByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjAyLDQgKzIwMiw2
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm8KICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBDb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSByZWdpc3RyYXRpb25EYXRhKQogI2VuZGlmCisKKyAgICBB
Y2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2Uoc3RydWN0IFdlYktpdDo6QWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcykKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2
aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlT
dXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCIK
ICNpbXBvcnQgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5p
dGlhbGl6YXRpb24uaCIKQEAgLTQ0Nyw2ICs0NDgsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1heGltdW1JT1N1
cmZhY2VTaXplLmlzRW1wdHkoKSkKICAgICAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpzZXRNYXhp
bXVtU2l6ZShwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplKTsKKworICAgIGFjY2Vzc2li
aWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkBA
IC0xMDMzLDYgKzEwMzYsMTkgQEAgdm9pZCBXZWJQcm9jZXNzOjpiYWNrbGlnaHRMZXZlbERpZENo
YW5nZQogICAgICAgICAgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvUGF0Y2gs
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihjdXJyZW50QmFja2xpZ2h0TGV2ZWwpKTsKICAgICAgICAg
fSk7CiB9CisKK3ZvaWQgV2ViUHJvY2Vzczo6YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzRGlkQ2hh
bmdlKGNvbnN0IEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyYgcHJlZmVyZW5jZXMpCit7CisjaWYg
SEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgYXV0byBhcHBJRCA9
IENGU1RSKCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiKTsKKyAgICBfQVhTU2V0UmVkdWNl
TW90aW9uRW5hYmxlZEFwcChwcmVmZXJlbmNlcy5yZWR1Y2VNb3Rpb25FbmFibGVkID8gQVhWYWx1
ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBfQVhTU2V0SW5jcmVhc2VC
dXR0b25MZWdpYmlsaXR5QXBwKHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eSA/
IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisgICAgX0FYU1NldEVu
aGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAocHJlZmVyZW5jZXMuZW5oYW5jZVRleHRMZWdp
YmlsaXR5ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBf
QVhTU2V0RGFya2VuU3lzdGVtQ29sb3JzQXBwKHByZWZlcmVuY2VzLmRhcmtlblN5c3RlbUNvbG9y
cyA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisgICAgX0FYU0lu
dmVydENvbG9yc1NldEVuYWJsZWRBcHAocHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3JzRW5hYmxlZCA/
IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisjZW5kaWYKK30KKwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQo=
</data>
<flag name="commit-queue"
          id="452729"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431077</attachid>
            <date>2021-06-10 07:35:07 -0700</date>
            <delta_ts>2021-06-10 07:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226738-20210610073506.patch</filename>
            <type>text/plain</type>
            <size>22103</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzg1NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA2LTA4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2li
aWxpdHkgcHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjczOAorICAgICAgICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgSW1wbGVtZW50IFBlci1BcHAgQWNj
ZXNzaWJpbGl0eSBwcmVmZXJlbmNlcyBvbiBpT1MuIFRoZSBQZXItQXBwIEFjY2Vzc2liaWxpdHkg
cHJlZmVyZW5jZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBzaG91bGQgcmVm
bGVjdCB0aGUgdmFsdWVzIGluIHRoZSBVSSBwcm9jZXNzLiBUaGlzIGlzIGFkZHJlc3NlZCBieSBz
eW5jaW5nIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGUgdHdvIHByb2Nlc3NlcyBvbgorICAgICAgICBz
dGFydHVwIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MsIGFuZCB3aGVuIHRoZSB2YWx1ZXMgY2hh
bmdlLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlc0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpy
ZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjphY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2UpOgorCiAy
MDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBv
dmVybGF5cwpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsNiArMTY0LDcgQEAgUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBAbm8tdW5pZgogUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiAKIC8vIFRPRE86IFRoZSBmaWxlcyBoZXJlIG1h
cmtlZCBAbm8tdW5pZnkgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNz
MiBpcyByZW1vdmVkLgorU2hhcmVkL0FjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5jcHAKIFNoYXJl
ZC9BY3Rpdml0eUFzc2VydGlvbi5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvQXN5bmNSZXF1ZXN0LmNw
cAogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIEBuby11bmlmeQpJbmRleDogU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3Vw
cG9ydFNQSS5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3
ICs0MiwzMSBAQCBleHRlcm4gQ0ZTdHJpbmdSZWYgX0FYU0NvcHlQYXRoRm9yQWNjZXNzCiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNSZWR1Y2VNb3Rp
b25QcmVmZXJlbmNlOworCiBleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU1JlZHVjZU1vdGlvbkNoYW5n
ZWROb3RpZmljYXRpb247CitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0luY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eU5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTRW5oYW5jZVRleHRM
ZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTRGFy
a2VuU3lzdGVtQ29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBr
QVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbjsKKwordHlwZWRlZiBlbnVtIHsKKyAg
ICBBWFZhbHVlU3RhdGVJbnZhbGlkID0gLTIsCisgICAgQVhWYWx1ZVN0YXRlRW1wdHkgPSAtMSwK
KyAgICBBWFZhbHVlU3RhdGVPZmYsCisgICAgQVhWYWx1ZVN0YXRlT24KK30gQVhWYWx1ZVN0YXRl
OworCitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNSZWR1Y2VNb3Rpb25FbmFibGVkQXBwKENGU3Ry
aW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYU0luY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eUFwcChDRlN0cmluZ1JlZiBhcHBJRCk7CitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNF
bmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVy
biBBWFZhbHVlU3RhdGUgX0FYRGFya2VuU3lzdGVtQ29sb3JzQXBwKENGU3RyaW5nUmVmIGFwcElE
KTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYU0ludmVydENvbG9yc0VuYWJsZWRBcHAoQ0ZTdHJp
bmdSZWYgYXBwSUQpOworCitleHRlcm4gdm9pZCBfQVhTU2V0UmVkdWNlTW90aW9uRW5hYmxlZEFw
cChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQg
X0FYU1NldEluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChBWFZhbHVlU3RhdGUgZW5hYmxlZCwg
Q0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQgX0FYU1NldEVuaGFuY2VUZXh0TGVnaWJp
bGl0eUVuYWJsZWRBcHAoQVhWYWx1ZVN0YXRlIGVuYWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsK
K2V4dGVybiB2b2lkIF9BWFNTZXREYXJrZW5TeXN0ZW1Db2xvcnNBcHAoQVhWYWx1ZVN0YXRlIGVu
YWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiB2b2lkIF9BWFNJbnZlcnRDb2xvcnNT
ZXRFbmFibGVkQXBwKEFYVmFsdWVTdGF0ZSBlbmFibGVkLCBDRlN0cmluZ1JlZiBhcHBJRCk7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShGVUxMX0tFWUJPQVJE
X0FDQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9B
Y2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzLmgiCisKK25hbWVzcGFjZSBJUEMgeworCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViS2l0OjpBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV2ViS2l0OjpBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMmIHByZWZlcmVuY2Vz
KQoreworI2lmIEhBVkUoUEVSX0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGVu
Y29kZXIgPDwgcHJlZmVyZW5jZXMucmVkdWNlTW90aW9uRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8
IHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHBy
ZWZlcmVuY2VzLmVuaGFuY2VUZXh0TGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVu
Y2VzLmRhcmtlblN5c3RlbUNvbG9yczsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmludmVy
dENvbG9yc0VuYWJsZWQ7CisjZW5kaWYKK30KKworc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlcz4gQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFdlYktpdDo6QWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzIHByZWZlcmVuY2VzOworI2lmIEhBVkUoUEVSX0FQUF9BQ0NF
U1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJlZmVyZW5j
ZXMucmVkdWNlTW90aW9uRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmVmZXJlbmNlcy5pbmNyZWFzZUJ1dHRvbkxlZ2liaWxp
dHkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJlZmVyZW5jZXMuZW5oYW5jZVRleHRMZWdpYmlsaXR5KSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByZWZlcmVuY2VzLmRhcmtlblN5
c3RlbUNvbG9ycykpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwcmVmZXJlbmNlcy5pbnZlcnRDb2xvcnNFbmFibGVkKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BY2Nl
c3NpYmlsaXR5UHJlZmVyZW5jZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9BY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmd1bWVudENv
ZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IEFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyB7CisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisg
ICAgYm9vbCByZWR1Y2VNb3Rpb25FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGluY3JlYXNl
QnV0dG9uTGVnaWJpbGl0eSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmhhbmNlVGV4dExlZ2liaWxp
dHkgeyBmYWxzZSB9OworICAgIGJvb2wgZGFya2VuU3lzdGVtQ29sb3JzIHsgZmFsc2UgfTsKKyAg
ICBib29sIGludmVydENvbG9yc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIElQQyB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYktpdDo6QWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6QWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzPiBkZWNvZGUoRGVjb2RlciYpOworfTsKK30KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICBlbmNvZGVyIDw8IG1heGltdW1JT1N1cmZhY2VTaXplOwogI2VuZGlmCisKKyAgICBlbmNv
ZGVyIDw8IGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKIH0KIAogYm9vbCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTQ5LDYgKzU1MSwxMiBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgogCisgICAgc3RkOjpvcHRpb25hbDxBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+
IGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKKyAgICBkZWNvZGVyID4+IGFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlczsKKyAgICBpZiAoIWFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcykKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzID0g
V1RGTW92ZSgqYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzKTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UHJlZmVy
ZW5jZXMuaCIKICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTI0Myw2ICsyNDQsOCBA
QCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgSEFWRShJT1NVUkZB
Q0UpCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtYXhpbXVtSU9TdXJmYWNlU2l6ZTsKICNlbmRpZgor
ICAgIAorICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNTc3LDYgKzU3
NywxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHN0YXRpYyB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjayhD
Rk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUs
IGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyB2b2lkIGNvbG9yUHJlZmVyZW5jZXNEaWRDaGFuZ2VD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5n
UmVmIG5hbWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
CiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiQWNjZXNz
aWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VVdGlsc0NGLmgiCiAj
aW1wb3J0ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgpAQCAtMjY3LDYgKzI2OCwyMSBAQCBz
dGF0aWMgYm9vbCByZXF1aXJlc0NvbnRhaW5lck1hbmFnZXJBY2NlCiAjZW5kaWYKIH0KIAorc3Rh
dGljIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoKQor
eworICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBwcmVmZXJlbmNlczsKKyNpZiBIQVZFKFBF
Ul9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBhdXRvIGFwcElkID0gV2ViQ29y
ZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKworICAg
IHByZWZlcmVuY2VzLnJlZHVjZU1vdGlvbkVuYWJsZWQgPSBfQVhTUmVkdWNlTW90aW9uRW5hYmxl
ZEFwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuaW5j
cmVhc2VCdXR0b25MZWdpYmlsaXR5ID0gX0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChh
cHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuZW5oYW5jZVRl
eHRMZWdpYmlsaXR5ID0gX0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAoYXBwSWQu
Z2V0KCkpID09IEFYVmFsdWVTdGF0ZU9uOworICAgIHByZWZlcmVuY2VzLmRhcmtlblN5c3RlbUNv
bG9ycyA9IF9BWERhcmtlblN5c3RlbUNvbG9yc0FwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0
YXRlT247CisgICAgcHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3JzRW5hYmxlZCA9IF9BWFNJbnZlcnRD
b2xvcnNFbmFibGVkQXBwKGFwcElkLmdldCgpKSA9PSBBWFZhbHVlU3RhdGVPbjsKKyNlbmRpZgor
ICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgcGFyYW1ldGVy
cy5tZWRpYU1JTUVUeXBlcyA9IHByb2Nlc3MubWVkaWFNSU1FVHlwZXMoKTsKQEAgLTQ1Myw2ICs0
NjksOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgLy8g
SG93ZXZlciwgcXVlcnlpbmcgdGhpcyBpcyBhIGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24sIHNvIGxp
bWl0IHRoaXMgdG8gb25seSB0aGUgbmVjZXNzYXJ5IGNhc2UuCiAgICAgaWYgKG1fZGVmYXVsdFBh
Z2VHcm91cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxl
ZCgpKQogICAgICAgICBwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplID0gV2ViQ29yZTo6
SU9TdXJmYWNlOjptYXhpbXVtU2l6ZSgpOworCisgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5
UHJlZmVyZW5jZXMgPSBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoKTsKIH0KIAogdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC01NTcsNiArNTc1LDEzIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmJhY2tsaWdodExldmVsRGlkQ2gKICAgICBhdXRvKiBwb29sID0g
cmVpbnRlcnByZXRfY2FzdDxXZWJQcm9jZXNzUG9vbCo+KG9ic2VydmVyKTsKICAgICBwb29sLT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkJhY2tsaWdodExldmVsRGlk
Q2hhbmdlKEJLU0Rpc3BsYXlCcmlnaHRuZXNzR2V0Q3VycmVudCgpKSk7CiB9CisKK3ZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjayhDRk5v
dGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUsIGNv
bnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKQoreworICAgIGF1dG8qIHBvb2wg
PSByZWludGVycHJldF9jYXN0PFdlYlByb2Nlc3NQb29sKj4ob2JzZXJ2ZXIpOworICAgIHBvb2wt
PnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWNjZXNzaWJpbGl0eVBy
ZWZlcmVuY2VzRGlkQ2hhbmdlKGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpKSk7Cit9CisKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNjg3LDYgKzcxMiwxNCBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVy
ID0gV1RGOjptYWtlVW5pcXVlPFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI+KFt0aGlzXSAo
Ym9vbCBoYXNBQykgewogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OlBvd2VyU291cmNlRGlkQ2hhbmdlKGhhc0FDKSk7CiAgICAgfSk7CisKKyNpZiBIQVZF
KFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBDRk5vdGlmaWNhdGlvbkNl
bnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVy
KCksIHRoaXMsIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU1Jl
ZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3Vz
cGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2Jz
ZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywg
YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTSW5jcmVhc2VCdXR0
b25MZWdpYmlsaXR5Tm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNp
b25CZWhhdmlvckNvYWxlc2NlKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVy
KENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU0VuaGFuY2VUZXh0TGVnaWJp
bGl0eUNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lv
bkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgYWNjZXNz
aWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTRGFya2VuU3lzdGVtQ29sb3Jz
RW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVo
YXZpb3JDb2FsZXNjZSk7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5v
dGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBhY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2ssIGtBWFNJbnZlcnRDb2xvcnNFbmFibGVkTm90
aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxl
c2NlKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZp
Y2F0aW9uT2JzZXJ2ZXJzKCkKQEAgLTcyMCw2ICs3NTMsMTQgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogCiAg
ICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKKworI2lmIEhBVkUoUEVSX0FQUF9B
Q0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
T2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhp
cywga0FYU1JlZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIpOworICAgIENG
Tm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRE
YXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywga0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eU5v
dGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNl
cnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBr
QVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7Cisg
ICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRl
ckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBrQVhTRGFya2VuU3lzdGVtQ29sb3JzRW5h
YmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1v
dmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0
aGlzLCBrQVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisjZW5k
aWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNVUkxLbm93bkhTVFNIb3N0KGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01
ODk1LDYgKzU4OTUsOCBAQAogCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0JDRTg3NzI2NzI1MjEyMDAxMUQ4REIgLyogQWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQkNFODc4
MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3VwcG9y
dFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGQjAyQzI1NTA2MTdDMDAz
QzJGOTYgLyogV2ViU3lzdGVtU291bmREZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTeXN0ZW1Tb3VuZERlbGVnYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNFRkIwMkQyNTUwNjE3QzAwM0MyRjk2IC8qIFdlYlN5c3RlbVNvdW5kRGVsZWdhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU3lzdGVtU291bmREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjY3OCw2ICs2NjgwLDggQEAKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0
YSAqLywKKwkJCQlFM0JDRTg3NzI2NzI1MjEyMDAxMUQ4REIgLyogQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzLmNwcCAqLywKKwkJCQlFM0JDRTg3ODI2NzI1MjEyMDAxMUQ4REIgLyogQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzLmggKi8sCiAJCQkJQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFj
dGl2aXR5QXNzZXJ0aW9uLmNwcCAqLywKIAkJCQlBN0Q3OTJENDE3NjdDQjA5MDA4ODFDQkUgLyog
QWN0aXZpdHlBc3NlcnRpb24uaCAqLywKIAkJCQlCQzMyOUQ5QTE2QUNDRTk5MDAzMTZERTIgLyog
QVBJV2ViQXJjaGl2ZS5oICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiQXV4aWxp
YXJ5UHJvY2Vzcy5oIgogI2luY2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKQEAgLTU2Niw2ICs1NjcsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpOwog
I2VuZGlmCiAKKyAgICB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZShjb25z
dCBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMmKTsKKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgdm9pZCBjb2xvclByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjAyLDQgKzIwMiw2
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm8KICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBDb25zdW1lQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSByZWdpc3RyYXRpb25EYXRhKQogI2VuZGlmCisKKyAgICBB
Y2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2Uoc3RydWN0IFdlYktpdDo6QWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcykKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2
aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlT
dXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCIK
ICNpbXBvcnQgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5p
dGlhbGl6YXRpb24uaCIKQEAgLTQ0Nyw2ICs0NDgsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1heGltdW1JT1N1
cmZhY2VTaXplLmlzRW1wdHkoKSkKICAgICAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpzZXRNYXhp
bXVtU2l6ZShwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplKTsKKworICAgIGFjY2Vzc2li
aWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkBA
IC0xMDM1LDYgKzEwMzgsMTggQEAgdm9pZCBXZWJQcm9jZXNzOjpiYWNrbGlnaHRMZXZlbERpZENo
YW5nZQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6YWNjZXNzaWJpbGl0eVByZWZlcmVu
Y2VzRGlkQ2hhbmdlKGNvbnN0IEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyYgcHJlZmVyZW5jZXMp
Cit7CisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgYXV0
byBhcHBJRCA9IENGU1RSKCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiKTsKKyAgICBfQVhT
U2V0UmVkdWNlTW90aW9uRW5hYmxlZEFwcChwcmVmZXJlbmNlcy5yZWR1Y2VNb3Rpb25FbmFibGVk
ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBfQVhTU2V0
SW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5QXBwKHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eSA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisgICAg
X0FYU1NldEVuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAocHJlZmVyZW5jZXMuZW5oYW5j
ZVRleHRMZWdpYmlsaXR5ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElE
KTsKKyAgICBfQVhTU2V0RGFya2VuU3lzdGVtQ29sb3JzQXBwKHByZWZlcmVuY2VzLmRhcmtlblN5
c3RlbUNvbG9ycyA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7Cisg
ICAgX0FYU0ludmVydENvbG9yc1NldEVuYWJsZWRBcHAocHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3Jz
RW5hYmxlZCA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisjZW5k
aWYKK30KKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiB2b2lk
IFdlYlByb2Nlc3M6OmNvbG9yUHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogewo=
</data>
<flag name="commit-queue"
          id="452732"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431079</attachid>
            <date>2021-06-10 07:53:21 -0700</date>
            <delta_ts>2021-06-10 17:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226738-20210610075320.patch</filename>
            <type>text/plain</type>
            <size>22103</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzg1NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA2LTA4ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTeW5jIEFjY2Vzc2li
aWxpdHkgcHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjczOAorICAgICAgICA8cmRhcjovLzc3OTIyODM5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgSW1wbGVtZW50IFBlci1BcHAgQWNj
ZXNzaWJpbGl0eSBwcmVmZXJlbmNlcyBvbiBpT1MuIFRoZSBQZXItQXBwIEFjY2Vzc2liaWxpdHkg
cHJlZmVyZW5jZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBzaG91bGQgcmVm
bGVjdCB0aGUgdmFsdWVzIGluIHRoZSBVSSBwcm9jZXNzLiBUaGlzIGlzIGFkZHJlc3NlZCBieSBz
eW5jaW5nIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGUgdHdvIHByb2Nlc3NlcyBvbgorICAgICAgICBz
dGFydHVwIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MsIGFuZCB3aGVuIHRoZSB2YWx1ZXMgY2hh
bmdlLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlc0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpy
ZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjphY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXNEaWRDaGFuZ2UpOgorCiAy
MDIxLTA2LTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gRmluZC1pbi1wYWdlIHNob3VsZCBtYXRjaCB0ZXh0IGluc2lkZSBpbWFnZSBv
dmVybGF5cwpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsNiArMTY0LDcgQEAgUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBAbm8tdW5pZgogUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiAKIC8vIFRPRE86IFRoZSBmaWxlcyBoZXJlIG1h
cmtlZCBAbm8tdW5pZnkgc2hvdWxkIGJlIHVuaWZpZWQgb25jZSBHVEsncyBQbHVnaW5Qcm9jZXNz
MiBpcyByZW1vdmVkLgorU2hhcmVkL0FjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5jcHAKIFNoYXJl
ZC9BY3Rpdml0eUFzc2VydGlvbi5jcHAgQG5vLXVuaWZ5CiBTaGFyZWQvQXN5bmNSZXF1ZXN0LmNw
cAogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIEBuby11bmlmeQpJbmRleDogU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3Vw
cG9ydFNQSS5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3
ICs0MiwzMSBAQCBleHRlcm4gQ0ZTdHJpbmdSZWYgX0FYU0NvcHlQYXRoRm9yQWNjZXNzCiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogZXh0ZXJuIENGU3RyaW5nUmVmIGtBWFNSZWR1Y2VNb3Rp
b25QcmVmZXJlbmNlOworCiBleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU1JlZHVjZU1vdGlvbkNoYW5n
ZWROb3RpZmljYXRpb247CitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0luY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eU5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTRW5oYW5jZVRleHRM
ZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTRGFy
a2VuU3lzdGVtQ29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbjsKK2V4dGVybiBDRlN0cmluZ1JlZiBr
QVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbjsKKwordHlwZWRlZiBlbnVtIHsKKyAg
ICBBWFZhbHVlU3RhdGVJbnZhbGlkID0gLTIsCisgICAgQVhWYWx1ZVN0YXRlRW1wdHkgPSAtMSwK
KyAgICBBWFZhbHVlU3RhdGVPZmYsCisgICAgQVhWYWx1ZVN0YXRlT24KK30gQVhWYWx1ZVN0YXRl
OworCitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNSZWR1Y2VNb3Rpb25FbmFibGVkQXBwKENGU3Ry
aW5nUmVmIGFwcElEKTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYU0luY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eUFwcChDRlN0cmluZ1JlZiBhcHBJRCk7CitleHRlcm4gQVhWYWx1ZVN0YXRlIF9BWFNF
bmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVy
biBBWFZhbHVlU3RhdGUgX0FYRGFya2VuU3lzdGVtQ29sb3JzQXBwKENGU3RyaW5nUmVmIGFwcElE
KTsKK2V4dGVybiBBWFZhbHVlU3RhdGUgX0FYU0ludmVydENvbG9yc0VuYWJsZWRBcHAoQ0ZTdHJp
bmdSZWYgYXBwSUQpOworCitleHRlcm4gdm9pZCBfQVhTU2V0UmVkdWNlTW90aW9uRW5hYmxlZEFw
cChBWFZhbHVlU3RhdGUgZW5hYmxlZCwgQ0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQg
X0FYU1NldEluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChBWFZhbHVlU3RhdGUgZW5hYmxlZCwg
Q0ZTdHJpbmdSZWYgYXBwSUQpOworZXh0ZXJuIHZvaWQgX0FYU1NldEVuaGFuY2VUZXh0TGVnaWJp
bGl0eUVuYWJsZWRBcHAoQVhWYWx1ZVN0YXRlIGVuYWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsK
K2V4dGVybiB2b2lkIF9BWFNTZXREYXJrZW5TeXN0ZW1Db2xvcnNBcHAoQVhWYWx1ZVN0YXRlIGVu
YWJsZWQsIENGU3RyaW5nUmVmIGFwcElEKTsKK2V4dGVybiB2b2lkIF9BWFNJbnZlcnRDb2xvcnNT
ZXRFbmFibGVkQXBwKEFYVmFsdWVTdGF0ZSBlbmFibGVkLCBDRlN0cmluZ1JlZiBhcHBJRCk7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShGVUxMX0tFWUJPQVJE
X0FDQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9B
Y2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzLmgiCisKK25hbWVzcGFjZSBJUEMgeworCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViS2l0OjpBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV2ViS2l0OjpBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMmIHByZWZlcmVuY2Vz
KQoreworI2lmIEhBVkUoUEVSX0FQUF9BQ0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGVu
Y29kZXIgPDwgcHJlZmVyZW5jZXMucmVkdWNlTW90aW9uRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8
IHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHBy
ZWZlcmVuY2VzLmVuaGFuY2VUZXh0TGVnaWJpbGl0eTsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVu
Y2VzLmRhcmtlblN5c3RlbUNvbG9yczsKKyAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzLmludmVy
dENvbG9yc0VuYWJsZWQ7CisjZW5kaWYKK30KKworc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlcz4gQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFdlYktpdDo6QWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzIHByZWZlcmVuY2VzOworI2lmIEhBVkUoUEVSX0FQUF9BQ0NF
U1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJlZmVyZW5j
ZXMucmVkdWNlTW90aW9uRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmVmZXJlbmNlcy5pbmNyZWFzZUJ1dHRvbkxlZ2liaWxp
dHkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJlZmVyZW5jZXMuZW5oYW5jZVRleHRMZWdpYmlsaXR5KSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByZWZlcmVuY2VzLmRhcmtlblN5
c3RlbUNvbG9ycykpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwcmVmZXJlbmNlcy5pbnZlcnRDb2xvcnNFbmFibGVkKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSVBDCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BY2Nl
c3NpYmlsaXR5UHJlZmVyZW5jZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9BY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmd1bWVudENv
ZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IEFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyB7CisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisg
ICAgYm9vbCByZWR1Y2VNb3Rpb25FbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGluY3JlYXNl
QnV0dG9uTGVnaWJpbGl0eSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmhhbmNlVGV4dExlZ2liaWxp
dHkgeyBmYWxzZSB9OworICAgIGJvb2wgZGFya2VuU3lzdGVtQ29sb3JzIHsgZmFsc2UgfTsKKyAg
ICBib29sIGludmVydENvbG9yc0VuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIElQQyB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYktpdDo6QWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyYpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6QWNjZXNzaWJpbGl0
eVByZWZlcmVuY2VzPiBkZWNvZGUoRGVjb2RlciYpOworfTsKK30KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICBlbmNvZGVyIDw8IG1heGltdW1JT1N1cmZhY2VTaXplOwogI2VuZGlmCisKKyAgICBlbmNv
ZGVyIDw8IGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKIH0KIAogYm9vbCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTQ5LDYgKzU1MSwxMiBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICNlbmRpZgogCisgICAgc3RkOjpvcHRpb25hbDxBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXM+
IGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlczsKKyAgICBkZWNvZGVyID4+IGFjY2Vzc2liaWxpdHlQ
cmVmZXJlbmNlczsKKyAgICBpZiAoIWFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcykKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzID0g
V1RGTW92ZSgqYWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzKTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UHJlZmVy
ZW5jZXMuaCIKICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKQEAgLTI0Myw2ICsyNDQsOCBA
QCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgSEFWRShJT1NVUkZB
Q0UpCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtYXhpbXVtSU9TdXJmYWNlU2l6ZTsKICNlbmRpZgor
ICAgIAorICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNTc3LDYgKzU3
NywxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHN0YXRpYyB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjayhD
Rk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUs
IGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyB2b2lkIGNvbG9yUHJlZmVyZW5jZXNEaWRDaGFuZ2VD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5n
UmVmIG5hbWUsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKTsKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
CiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiQWNjZXNz
aWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VVdGlsc0NGLmgiCiAj
aW1wb3J0ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgpAQCAtMjY3LDYgKzI2OCwyMSBAQCBz
dGF0aWMgYm9vbCByZXF1aXJlc0NvbnRhaW5lck1hbmFnZXJBY2NlCiAjZW5kaWYKIH0KIAorc3Rh
dGljIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoKQor
eworICAgIEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyBwcmVmZXJlbmNlczsKKyNpZiBIQVZFKFBF
Ul9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBhdXRvIGFwcElkID0gV2ViQ29y
ZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuY3JlYXRlQ0ZTdHJpbmcoKTsKKworICAg
IHByZWZlcmVuY2VzLnJlZHVjZU1vdGlvbkVuYWJsZWQgPSBfQVhTUmVkdWNlTW90aW9uRW5hYmxl
ZEFwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuaW5j
cmVhc2VCdXR0b25MZWdpYmlsaXR5ID0gX0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eUFwcChh
cHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0YXRlT247CisgICAgcHJlZmVyZW5jZXMuZW5oYW5jZVRl
eHRMZWdpYmlsaXR5ID0gX0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAoYXBwSWQu
Z2V0KCkpID09IEFYVmFsdWVTdGF0ZU9uOworICAgIHByZWZlcmVuY2VzLmRhcmtlblN5c3RlbUNv
bG9ycyA9IF9BWERhcmtlblN5c3RlbUNvbG9yc0FwcChhcHBJZC5nZXQoKSkgPT0gQVhWYWx1ZVN0
YXRlT247CisgICAgcHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3JzRW5hYmxlZCA9IF9BWFNJbnZlcnRD
b2xvcnNFbmFibGVkQXBwKGFwcElkLmdldCgpKSA9PSBBWFZhbHVlU3RhdGVPbjsKKyNlbmRpZgor
ICAgIHJldHVybiBwcmVmZXJlbmNlczsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgcGFyYW1ldGVy
cy5tZWRpYU1JTUVUeXBlcyA9IHByb2Nlc3MubWVkaWFNSU1FVHlwZXMoKTsKQEAgLTQ1Myw2ICs0
NjksOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgLy8g
SG93ZXZlciwgcXVlcnlpbmcgdGhpcyBpcyBhIGxhdW5jaCB0aW1lIHJlZ3Jlc3Npb24sIHNvIGxp
bWl0IHRoaXMgdG8gb25seSB0aGUgbmVjZXNzYXJ5IGNhc2UuCiAgICAgaWYgKG1fZGVmYXVsdFBh
Z2VHcm91cC0+cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nRW5hYmxl
ZCgpKQogICAgICAgICBwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplID0gV2ViQ29yZTo6
SU9TdXJmYWNlOjptYXhpbXVtU2l6ZSgpOworCisgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5
UHJlZmVyZW5jZXMgPSBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMoKTsKIH0KIAogdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC01NTcsNiArNTc1LDEzIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmJhY2tsaWdodExldmVsRGlkQ2gKICAgICBhdXRvKiBwb29sID0g
cmVpbnRlcnByZXRfY2FzdDxXZWJQcm9jZXNzUG9vbCo+KG9ic2VydmVyKTsKICAgICBwb29sLT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkJhY2tsaWdodExldmVsRGlk
Q2hhbmdlKEJLU0Rpc3BsYXlCcmlnaHRuZXNzR2V0Q3VycmVudCgpKSk7CiB9CisKK3ZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjayhDRk5v
dGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCAqb2JzZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUsIGNv
bnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVmIHVzZXJJbmZvKQoreworICAgIGF1dG8qIHBvb2wg
PSByZWludGVycHJldF9jYXN0PFdlYlByb2Nlc3NQb29sKj4ob2JzZXJ2ZXIpOworICAgIHBvb2wt
PnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6QWNjZXNzaWJpbGl0eVBy
ZWZlcmVuY2VzRGlkQ2hhbmdlKGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcygpKSk7Cit9CisKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNjg3LDYgKzcxMiwxNCBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVy
ID0gV1RGOjptYWtlVW5pcXVlPFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI+KFt0aGlzXSAo
Ym9vbCBoYXNBQykgewogICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OlBvd2VyU291cmNlRGlkQ2hhbmdlKGhhc0FDKSk7CiAgICAgfSk7CisKKyNpZiBIQVZF
KFBFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKKyAgICBDRk5vdGlmaWNhdGlvbkNl
bnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVy
KCksIHRoaXMsIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU1Jl
ZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3Vz
cGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2Jz
ZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywg
YWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTSW5jcmVhc2VCdXR0
b25MZWdpYmlsaXR5Tm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNp
b25CZWhhdmlvckNvYWxlc2NlKTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVy
KENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGFjY2Vz
c2liaWxpdHlQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFjaywga0FYU0VuaGFuY2VUZXh0TGVnaWJp
bGl0eUNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lv
bkJlaGF2aW9yQ29hbGVzY2UpOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgYWNjZXNz
aWJpbGl0eVByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrLCBrQVhTRGFya2VuU3lzdGVtQ29sb3Jz
RW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVo
YXZpb3JDb2FsZXNjZSk7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5v
dGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBhY2Nlc3NpYmls
aXR5UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2ssIGtBWFNJbnZlcnRDb2xvcnNFbmFibGVkTm90
aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxl
c2NlKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZp
Y2F0aW9uT2JzZXJ2ZXJzKCkKQEAgLTcyMCw2ICs3NTMsMTQgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6dW5yZWdpc3Rlck5vdGlmaWNhdAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogCiAg
ICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKKworI2lmIEhBVkUoUEVSX0FQUF9B
Q0NFU1NJQklMSVRZX1BSRUZFUkVOQ0VTKQorICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3Zl
T2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhp
cywga0FYU1JlZHVjZU1vdGlvbkNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIpOworICAgIENG
Tm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRE
YXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywga0FYU0luY3JlYXNlQnV0dG9uTGVnaWJpbGl0eU5v
dGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNl
cnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBr
QVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7Cisg
ICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRl
ckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBrQVhTRGFya2VuU3lzdGVtQ29sb3JzRW5h
YmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1v
dmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0
aGlzLCBrQVhTSW52ZXJ0Q29sb3JzRW5hYmxlZE5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisjZW5k
aWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNVUkxLbm93bkhTVFNIb3N0KGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01
ODk1LDYgKzU4OTUsOCBAQAogCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0JDRTg3NzI2NzI1MjEyMDAxMUQ4REIgLyogQWNj
ZXNzaWJpbGl0eVByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQkNFODc4
MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3VwcG9y
dFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGQjAyQzI1NTA2MTdDMDAz
QzJGOTYgLyogV2ViU3lzdGVtU291bmREZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTeXN0ZW1Tb3VuZERlbGVnYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNFRkIwMkQyNTUwNjE3QzAwM0MyRjk2IC8qIFdlYlN5c3RlbVNvdW5kRGVsZWdhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU3lzdGVtU291bmREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjY3OCw2ICs2NjgwLDggQEAKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCTFBQkY0Mzc4MUEzNjgwMzUwMDNGQjBFNiAvKiBXZWJzaXRlRGF0
YSAqLywKKwkJCQlFM0JDRTg3NzI2NzI1MjEyMDAxMUQ4REIgLyogQWNjZXNzaWJpbGl0eVByZWZl
cmVuY2VzLmNwcCAqLywKKwkJCQlFM0JDRTg3ODI2NzI1MjEyMDAxMUQ4REIgLyogQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzLmggKi8sCiAJCQkJQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFj
dGl2aXR5QXNzZXJ0aW9uLmNwcCAqLywKIAkJCQlBN0Q3OTJENDE3NjdDQjA5MDA4ODFDQkUgLyog
QWN0aXZpdHlBc3NlcnRpb24uaCAqLywKIAkJCQlCQzMyOUQ5QTE2QUNDRTk5MDAzMTZERTIgLyog
QVBJV2ViQXJjaGl2ZS5oICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiQXV4aWxp
YXJ5UHJvY2Vzcy5oIgogI2luY2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKQEAgLTU2Niw2ICs1NjcsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpOwog
I2VuZGlmCiAKKyAgICB2b2lkIGFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZShjb25z
dCBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMmKTsKKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgdm9pZCBjb2xvclByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNzg1MjUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjAxLDUgKzIwMSw2
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm8KIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIENvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoSVBDOjpT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHJlZ2lzdHJhdGlvbkRhdGEpCisgICAgQWNjZXNzaWJp
bGl0eVByZWZlcmVuY2VzRGlkQ2hhbmdlKHN0cnVjdCBXZWJLaXQ6OkFjY2Vzc2liaWxpdHlQcmVm
ZXJlbmNlcyBhY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2
aXNpb24gMjc4NTI1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlT
dXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCIK
ICNpbXBvcnQgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5p
dGlhbGl6YXRpb24uaCIKQEAgLTQ0Nyw2ICs0NDgsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1heGltdW1JT1N1
cmZhY2VTaXplLmlzRW1wdHkoKSkKICAgICAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpzZXRNYXhp
bXVtU2l6ZShwYXJhbWV0ZXJzLm1heGltdW1JT1N1cmZhY2VTaXplKTsKKworICAgIGFjY2Vzc2li
aWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlQcmVmZXJl
bmNlcyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkBA
IC0xMDM1LDYgKzEwMzgsMTggQEAgdm9pZCBXZWJQcm9jZXNzOjpiYWNrbGlnaHRMZXZlbERpZENo
YW5nZQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6YWNjZXNzaWJpbGl0eVByZWZlcmVu
Y2VzRGlkQ2hhbmdlKGNvbnN0IEFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcyYgcHJlZmVyZW5jZXMp
Cit7CisjaWYgSEFWRShQRVJfQVBQX0FDQ0VTU0lCSUxJVFlfUFJFRkVSRU5DRVMpCisgICAgYXV0
byBhcHBJRCA9IENGU1RSKCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQiKTsKKyAgICBfQVhT
U2V0UmVkdWNlTW90aW9uRW5hYmxlZEFwcChwcmVmZXJlbmNlcy5yZWR1Y2VNb3Rpb25FbmFibGVk
ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBfQVhTU2V0
SW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5QXBwKHByZWZlcmVuY2VzLmluY3JlYXNlQnV0dG9uTGVn
aWJpbGl0eSA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisgICAg
X0FYU1NldEVuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWRBcHAocHJlZmVyZW5jZXMuZW5oYW5j
ZVRleHRMZWdpYmlsaXR5ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElE
KTsKKyAgICBfQVhTU2V0RGFya2VuU3lzdGVtQ29sb3JzQXBwKHByZWZlcmVuY2VzLmRhcmtlblN5
c3RlbUNvbG9ycyA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7Cisg
ICAgX0FYU0ludmVydENvbG9yc1NldEVuYWJsZWRBcHAocHJlZmVyZW5jZXMuaW52ZXJ0Q29sb3Jz
RW5hYmxlZCA/IEFYVmFsdWVTdGF0ZU9uIDogQVhWYWx1ZVN0YXRlT2ZmLCBhcHBJRCk7CisjZW5k
aWYKK30KKwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiB2b2lk
IFdlYlByb2Nlc3M6OmNvbG9yUHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431195</attachid>
            <date>2021-06-11 08:04:10 -0700</date>
            <delta_ts>2021-06-14 02:29:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226738-20210611080409.patch</filename>
            <type>text/plain</type>
            <size>4234</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzg3NjApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTExICBQZXIgQXJuZSAgPHB2b2xsYW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFN5bmMgQWNjZXNzaWJpbGl0eSBwcmVmZXJlbmNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzM4
CisgICAgICAgIDxyZGFyOi8vNzc5MjI4Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIFBlci1BcHAgQWNjZXNzaWJpbGl0eSBwcmVmZXJl
bmNlcyBvbiBpT1MuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjEtMDYt
MDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBzb21l
IGNhbGxzIHRvIFN0cmluZ1ZpZXc6OnRvU3RyaW5nKCkgLyBTdHJpbmdWaWV3Ojp0b1N0cmluZ1dp
dGhvdXRDb3B5aW5nKCkKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCShyZXZpc2lvbiAyNzg3NjAp
CisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAy
MiwzICsxMDIyLDcgQEAKICAgICB8fCAoUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmIF9fSVBIT05F
X09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAwMCkpCiAjZGVmaW5lIEhBVkVfQ09SRV9U
RVhUX1NCSVhfSU1BR0VfU0laRV9GVU5DVElPTlMgMQogI2VuZGlmCisKKyNpZiBQTEFURk9STShJ
T1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMAorI2RlZmlu
ZSBIQVZFX1BFUl9BUFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUyAxCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzg3NjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA2LTExICBQZXIgQXJuZSAgPHB2b2xs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFN5bmMgQWNjZXNzaWJpbGl0eSBwcmVmZXJl
bmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2
NzM4CisgICAgICAgIDxyZGFyOi8vNzc5MjI4Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSBhdHRlbXB0IHRvIG1vZGlmeSBBY2Nlc3NpYmls
aXR5IHByZWZlcmVuY2VzIGlmIHRoZXkgaGF2ZSBjaGFuZ2VkLgorCisgICAgICAgICogU2hhcmVk
L0FjY2Vzc2liaWxpdHlQcmVmZXJlbmNlcy5jcHA6IFJlcGxhY2VkLgorICAgICAgICAqIFNoYXJl
ZC9BY2Nlc3NpYmlsaXR5UHJlZmVyZW5jZXMuaDogUmVwbGFjZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmFjY2Vzc2liaWxpdHlQcmVmZXJlbmNlc0RpZENoYW5nZSk6CisKIDIwMjEtMDYtMTEgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10g
Q3Jhc2ggd2hlbiBkcmFnZ2luZyBhbiBhY2NvdW50IG5vZGUgYWJvdmUgV2ViVmlldwpJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CShyZXZpc2lvbiAyNzg3NjApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQzLDExICsxMDQzLDIxIEBAIHZv
aWQgV2ViUHJvY2Vzczo6YWNjZXNzaWJpbGl0eVByZWZlcmVuY2UKIHsKICNpZiBIQVZFKFBFUl9B
UFBfQUNDRVNTSUJJTElUWV9QUkVGRVJFTkNFUykKICAgICBhdXRvIGFwcElEID0gQ0ZTVFIoImNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCIpOwotICAgIF9BWFNTZXRSZWR1Y2VNb3Rpb25FbmFi
bGVkQXBwKHByZWZlcmVuY2VzLnJlZHVjZU1vdGlvbkVuYWJsZWQgPyBBWFZhbHVlU3RhdGVPbiA6
IEFYVmFsdWVTdGF0ZU9mZiwgYXBwSUQpOwotICAgIF9BWFNTZXRJbmNyZWFzZUJ1dHRvbkxlZ2li
aWxpdHlBcHAocHJlZmVyZW5jZXMuaW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5ID8gQVhWYWx1ZVN0
YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKLSAgICBfQVhTU2V0RW5oYW5jZVRleHRM
ZWdpYmlsaXR5RW5hYmxlZEFwcChwcmVmZXJlbmNlcy5lbmhhbmNlVGV4dExlZ2liaWxpdHkgPyBB
WFZhbHVlU3RhdGVPbiA6IEFYVmFsdWVTdGF0ZU9mZiwgYXBwSUQpOwotICAgIF9BWFNTZXREYXJr
ZW5TeXN0ZW1Db2xvcnNBcHAocHJlZmVyZW5jZXMuZGFya2VuU3lzdGVtQ29sb3JzID8gQVhWYWx1
ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKLSAgICBfQVhTSW52ZXJ0Q29sb3Jz
U2V0RW5hYmxlZEFwcChwcmVmZXJlbmNlcy5pbnZlcnRDb2xvcnNFbmFibGVkID8gQVhWYWx1ZVN0
YXRlT24gOiBBWFZhbHVlU3RhdGVPZmYsIGFwcElEKTsKKyAgICBhdXRvIHJlZHVjZU1vdGlvbkVu
YWJsZWQgPSBwcmVmZXJlbmNlcy5yZWR1Y2VNb3Rpb25FbmFibGVkID8gQVhWYWx1ZVN0YXRlT24g
OiBBWFZhbHVlU3RhdGVPZmY7CisgICAgaWYgKF9BWFNSZWR1Y2VNb3Rpb25FbmFibGVkQXBwKGFw
cElEKSAhPSByZWR1Y2VNb3Rpb25FbmFibGVkKQorICAgICAgICBfQVhTU2V0UmVkdWNlTW90aW9u
RW5hYmxlZEFwcChyZWR1Y2VNb3Rpb25FbmFibGVkLCBhcHBJRCk7CisgICAgYXV0byBpbmNyZWFz
ZUJ1dHRvbkxlZ2liaWxpdHkgPSBwcmVmZXJlbmNlcy5pbmNyZWFzZUJ1dHRvbkxlZ2liaWxpdHkg
PyBBWFZhbHVlU3RhdGVPbiA6IEFYVmFsdWVTdGF0ZU9mZjsKKyAgICBpZiAoX0FYU0luY3JlYXNl
QnV0dG9uTGVnaWJpbGl0eUFwcChhcHBJRCkgIT0gaW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5KQor
ICAgICAgICBfQVhTU2V0SW5jcmVhc2VCdXR0b25MZWdpYmlsaXR5QXBwKGluY3JlYXNlQnV0dG9u
TGVnaWJpbGl0eSwgYXBwSUQpOworICAgIGF1dG8gZW5oYW5jZVRleHRMZWdpYmlsaXR5ID0gcHJl
ZmVyZW5jZXMuZW5oYW5jZVRleHRMZWdpYmlsaXR5ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVl
U3RhdGVPZmY7CisgICAgaWYgKF9BWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkQXBwKGFw
cElEKSAhPSBlbmhhbmNlVGV4dExlZ2liaWxpdHkpCisgICAgICAgIF9BWFNTZXRFbmhhbmNlVGV4
dExlZ2liaWxpdHlFbmFibGVkQXBwKGVuaGFuY2VUZXh0TGVnaWJpbGl0eSwgYXBwSUQpOworICAg
IGF1dG8gZGFya2VuU3lzdGVtQ29sb3JzID0gcHJlZmVyZW5jZXMuZGFya2VuU3lzdGVtQ29sb3Jz
ID8gQVhWYWx1ZVN0YXRlT24gOiBBWFZhbHVlU3RhdGVPZmY7CisgICAgaWYgKF9BWERhcmtlblN5
c3RlbUNvbG9yc0FwcChhcHBJRCkgIT0gZGFya2VuU3lzdGVtQ29sb3JzKQorICAgICAgICBfQVhT
U2V0RGFya2VuU3lzdGVtQ29sb3JzQXBwKGRhcmtlblN5c3RlbUNvbG9ycywgYXBwSUQpOworICAg
IGF1dG8gaW52ZXJ0Q29sb3JzRW5hYmxlZCA9IHByZWZlcmVuY2VzLmludmVydENvbG9yc0VuYWJs
ZWQgPyBBWFZhbHVlU3RhdGVPbiA6IEFYVmFsdWVTdGF0ZU9mZjsKKyAgICBpZiAoX0FYU0ludmVy
dENvbG9yc0VuYWJsZWRBcHAoYXBwSUQpICE9IGludmVydENvbG9yc0VuYWJsZWQpCisgICAgICAg
IF9BWFNJbnZlcnRDb2xvcnNTZXRFbmFibGVkQXBwKGludmVydENvbG9yc0VuYWJsZWQsIGFwcElE
KTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>