<?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>234440</bug_id>
          
          <creation_ts>2021-12-17 13:08:42 -0800</creation_ts>
          <short_desc>Add support for a UI delegate method to decide how to handle detected modal containers</short_desc>
          <delta_ts>2021-12-21 12:09:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>
          <dependson>234322</dependson>
    
    <dependson>234323</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825170</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-17 13:08:42 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825174</commentid>
    <comment_count>1</comment_count>
      <attachid>447472</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-17 13:43:06 -0800</bug_when>
    <thetext>Created attachment 447472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825818</commentid>
    <comment_count>2</comment_count>
      <attachid>447667</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-20 17:14:40 -0800</bug_when>
    <thetext>Created attachment 447667
Depends on #234322</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825856</commentid>
    <comment_count>3</comment_count>
      <attachid>447678</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-20 20:20:30 -0800</bug_when>
    <thetext>Created attachment 447678
Fix Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825919</commentid>
    <comment_count>4</comment_count>
      <attachid>447678</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-21 01:26:23 -0800</bug_when>
    <thetext>Comment on attachment 447678
Fix Windows build

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

&gt; Source/WebCore/loader/DocumentLoader.h:151
&gt; -enum class ModalContainerObservationPolicy : uint8_t {
&gt; +enum class ModalContainerObservationPolicy : bool {
&gt;      Disabled,
&gt;      Prompt,
&gt; -    Allow,
&gt; -    Disallow,
&gt;  };

I really prefer that such simple enums are done as one liners instead of vertically. Possibly others don’t agree.

&gt; Source/WebCore/page/ModalContainerObserver.cpp:314
&gt; +                ClassifiedControls(ClassifiedControls&amp;&amp; other)
&gt; +                    : positive(WTFMove(other.positive))
&gt; +                    , neutral(WTFMove(other.neutral))
&gt; +                    , negative(WTFMove(other.negative))
&gt; +                {
&gt; +                }

This can just be:

    ClassifiedControls(ClassifiedControls&amp;&amp;) = default;

But also, if you just omit all constructors you should get these without writing anything.

&gt; Source/WebCore/page/ModalContainerObserver.cpp:326
&gt; +                    case ModalContainerDecision::Show:
&gt; +                        break;
&gt; +                    case ModalContainerDecision::HideAndIgnore:
&gt; +                        break;

Idiomatic to just share a break.

&gt; Source/WebCore/page/ModalContainerObserver.cpp:341
&gt; +                OptionSet&lt;ModalContainerControlType&gt; controlTypes() const

In the context of a class named ClassifiedControls, seems this can just be called types().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826006</commentid>
    <comment_count>5</comment_count>
      <attachid>447678</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-21 08:20:15 -0800</bug_when>
    <thetext>Comment on attachment 447678
Fix Windows build

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

Thanks for the review!

&gt;&gt; Source/WebCore/loader/DocumentLoader.h:151
&gt;&gt;  };
&gt; 
&gt; I really prefer that such simple enums are done as one liners instead of vertically. Possibly others don’t agree.

Makes sense! Changed to `enum class ModalContainerObservationPolicy : bool { Disabled, Prompt };`.

&gt;&gt; Source/WebCore/page/ModalContainerObserver.cpp:314
&gt;&gt; +                }
&gt; 
&gt; This can just be:
&gt; 
&gt;     ClassifiedControls(ClassifiedControls&amp;&amp;) = default;
&gt; 
&gt; But also, if you just omit all constructors you should get these without writing anything.

Good catch — removed these constructors.

&gt;&gt; Source/WebCore/page/ModalContainerObserver.cpp:326
&gt;&gt; +                        break;
&gt; 
&gt; Idiomatic to just share a break.

Fixed!

&gt;&gt; Source/WebCore/page/ModalContainerObserver.cpp:341
&gt;&gt; +                OptionSet&lt;ModalContainerControlType&gt; controlTypes() const
&gt; 
&gt; In the context of a class named ClassifiedControls, seems this can just be called types().

That&apos;s true — renamed to just `types()`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826009</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-21 08:24:32 -0800</bug_when>
    <thetext>rdar://77073735</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826013</commentid>
    <comment_count>7</comment_count>
      <attachid>447719</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-21 08:46:37 -0800</bug_when>
    <thetext>Created attachment 447719
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826017</commentid>
    <comment_count>8</comment_count>
      <attachid>447721</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-21 09:09:02 -0800</bug_when>
    <thetext>Created attachment 447721
Fix Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826036</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-21 10:18:54 -0800</bug_when>
    <thetext>Committed r287321 (245471@main): &lt;https://commits.webkit.org/245471@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447721.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447472</attachid>
            <date>2021-12-17 13:43:06 -0800</date>
            <delta_ts>2021-12-20 17:14:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234440-20211217134305.patch</filename>
            <type>text/plain</type>
            <size>60545</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc0MDAzNGM2YmViMTQ4
NWVkM2Q2MjI2ZGE0OGU4Mjk4ODM0YjM2My4uNjNiZGNkOWIxNTQ2MTZlMmNlNDExYmMwMGU0ODE3
Yjg5YTc0MGJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEyLTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBhIFVJIGRlbGVnYXRlIG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3Rl
ZCBtb2RhbCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ0NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCB0byBNb2RhbENvbnRh
aW5lclR5cGVzLmgsIGFuZCBhZGQgYSBuZXcgZW51bSBmbGFnIHRvIHJlcHJlc2VudCByZXR1cm4g
dmFsdWVzIGluCisgICAgICAgIHRoZSBuZXcgVUkgZGVsZWdhdGUgZGVjaXNpb24gaGFuZGxlci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorCisg
ICAgICAgIEFkZGl0aW9uYWxseSByZW1vdmUgdGhlIHVudXNlZCBBbGxvdyBhbmQgRGlzYWxsb3cg
dmFsdWVzIG9mIE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3ksIG5vdyB0aGF0IHdlIHdp
bGwKKyAgICAgICAgYWx3YXlzIChlZmZlY3RpdmVseSkgInByb21wdCIgd2hlbiBkZXRlY3Rpbmcg
YSBtb2RhbCBjb250YWluZXIgYnkgY2FsbGluZyBpbnRvIHRoZSBjbGllbnQgbGF5ZXIgd2l0aCB0
aGUgbmV3CisgICAgICAgIGRlbGVnYXRlIG1ldGhvZC4KKworICAgICAgICAqIGxvYWRlci9FbXB0
eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKworICAgICAgICBBZGQgdGhlIG5l
dyBhc3luYyBjaHJvbWUgY2xpZW50IGhvb2ssIGBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5l
cigpYC4KKworICAgICAgICAqIHBhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpjb2xsZWN0Q2xpY2thYmxlRWxl
bWVudHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBwYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJDb250cm9sVHlw
ZS5oLgorCisgICAgICAgIEFsc28sIHR3ZWFrIHRoZSBgTW9kYWxDb250YWluZXJDb250cm9sVHlw
ZWAgdmFsdWVzIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBhcyBvcHRpb24gZmxhZ3Mgd2hlbiBp
bmZvcm1pbmcgdGhlCisgICAgICAgIFdlYktpdCBjbGllbnQgYWJvdXQgd2hpY2ggY29udHJvbCB0
eXBlcyBhcmUgcHJlc2VudCBpbiB0aGUgbW9kYWwgY29udGFpbmVyLgorCiAyMDIxLTEyLTE3ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENo
cm9tZUNsaWVudDo6Y2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKCkgaW4gTW9kYWxDb250
YWluZXJPYnNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwZWI1NjQzN2JjYTg5MzY4NmE5OWE4NGY4NmEyOWFi
ZTVmZTIzMzk4Li5iZTllOWY2MzZkY2E2MDdlMjM1OTBkMWVmMTQ1ZDM5NjJiMDExZjQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIxLTEyLTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIFVJIGRlbGVnYXRl
IG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3RlZCBtb2RhbCBjb250YWluZXJz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgYSBuZXcgVUkgZGVsZWdhdGUgbWV0aG9kLCBgLV93ZWJWaWV3OmRlY2lkZVBvbGlj
eUZvck1vZGFsQ29udGFpbmVyOmRlY2lzaW9uSGFuZGxlcjpgLCB0aGF0IGlzCisgICAgICAgIGlu
dm9rZWQgd2hlbiBhIG1vZGFsIGNvbnRhaW5lciBoYXMgYmVlbiBkZXRlY3RlZCBhbmQgc3VwcHJl
c3NlZCBkdWUgdG8gYSBXZWJLaXQgY2xpZW50IHNwZWNpZnlpbmcgdGhlCisgICAgICAgIGBfV0tX
ZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeVByb21wdGAgb3B0aW9uIGluIHdl
YnBhZ2UgcHJlZmVyZW5jZXMuIFRoaXMgbmV3IGRlbGVnYXRlIG1ldGhvZCBpcworICAgICAgICBp
bnZva2VkIHdpdGggYSBuZXcgYF9XS01vZGFsQ29udGFpbmVySW5mb2Agb2JqZWN0LCB3aGljaCAo
Zm9yIG5vdykganVzdCBlbmNhcHN1bGF0ZXMgYW4gb3B0aW9uIHNldCBvZgorICAgICAgICBNb2Rh
bENvbnRhaW5lckNvbnRyb2xUeXBlcyB0aGF0IGluZGljYXRlcyB3aGljaCB0eXBlcyBvZiBtb2Rh
bCBjb250YWluZXJzIGFyZSBhdmFpbGFibGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW06CisgICAgICAg
IChXZWJLaXQ6Om1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3kpOgorICAgICAgICAoV2Vi
S2l0Ojpjb3JlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKworICAgICAg
ICBSZW1vdmUgc3VwcG9ydCBmb3IgdHdvIHVudXNlZCBwb2xpY3kgZmxhZ3MsIGBfV0tXZWJzaXRl
TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeUFsbG93YCBhbmQKKyAgICAgICAgYF9XS1dl
YnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5RGlzYWxsb3dgLiBUaGVzZSBhcmUg
bm93IG9idmlhdGVkIGJ5IHRoZSBuZXcgZGVjaXNpb24gaGFuZGxlciByZXR1cm4KKyAgICAgICAg
dmFsdWVzIGBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZEFsbG93YCBhbmQgYF9XS01v
ZGFsQ29udGFpbmVyRGVjaXNpb25IaWRlQW5kRGlzYWxsb3dgLCByZXNwZWN0aXZlbHkuCisgICAg
ICAgIFdoaWxlIHRoaXMgbGVhdmVzIHVzIHdpdGggb25seSB0d28gcG9saWN5IG1vZGVzIChzdWNo
IHRoYXQgdGhlIHBvbGljeSBjYW4gbm93IGJlIHR1cm5lZCBpbnRvIGEgc2luZ2xlIEJPT0wKKyAg
ICAgICAgc3dpdGNoKSwgSSdtIGtlZXBpbmcgdGhlIG5hbWVkIGVudW0gZmxhZ3MgZm9yIG5vdywg
c2luY2U6CisKKyAgICAgICAgMS4gVGhlIGV4aXN0aW5nIG5hbWVzIGRvIGEgYmV0dGVyIGpvYiBv
ZiBkZXNjcmliaW5nIHRoZWlyIHJlc3BlY3RpdmUgYmVoYXZpb3JzIHRoYW4gYSBzaW5nbGUgQk9P
TCBmbGFnIGxpa2UKKyAgICAgICAgYG1vZGFsQ29udGFpbmVyT2JzZXJ2ZXJTaG91bGRQcm9tcHRg
LCBvciBgbW9kYWxDb250YWluZXJPYnNlcnZlckVuYWJsZWRgLCBhbmQuLi4KKworICAgICAgICAy
LiBXZSdsbCBwcm9iYWJseSBuZWVkIHRvIGV4dGVuZCB0aGlzIHBvbGljeSBzZXQgdG8gYWRkIGEg
bmV3IHZhbHVlIGluIHRoZSBuZWFyIGZ1dHVyZSwgYW55d2F5cy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXRmb3JtWFJDb29yZGluYXRvci5tbS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5tbTogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxhdGZvcm1YUkNvb3JkaW5hdG9y
Lm1tLgorCisgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLgorCisgICAgICAgICgtW19X
S01vZGFsQ29udGFpbmVySW5mbyBpbml0V2l0aFR5cGVzOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxhdGZvcm1YUkNvb3JkaW5hdG9yLm1tLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVy
Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QbGF0Zm9ybVhSQ29vcmRpbmF0b3IubW06
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6
c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlTW9kYWxDb250YWluZXJEZWNpc2lv
bik6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JNb2RhbENvbnRhaW5lcik6CisKKyAgICAgICAgQWRkIHBsdW1iaW5nIGZvciB0aGUgbmV3IGNo
cm9tZSBjbGllbnQgaG9vayB0aHJvdWdoIFdlYkNocm9tZUNsaWVudCwgV2ViUGFnZSwgV2ViUGFn
ZVByb3h5LCBhbmQgZmluYWxseSB0aGUgVUkKKyAgICAgICAgY2xpZW50LgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5l
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKwogMjAyMS0xMi0xNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllciBhbmQgdXNlIGl0
IHRvIGltcGxlbWVudCBjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCmluZGV4IGYwODAyNzAxM2I5OWJlMjk0ZGEzOGY0NjdmNTUzODhjNDhl
NjcwNjcuLjU2NTYwMmMxNzUwNTZiMzQ1OWIwNDNlNjkwMzllYTQ5ODNmZDAxNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0xNyAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgZGV0ZWN0ZWQg
bW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0NDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2VlIFdlYktpdCBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZGVj
aWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorCiAyMDIxLTEyLTE3ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBjbGllbnQgbGF5ZXIgcGx1
bWJpbmcgZm9yIGNsYXNzaWZ5aW5nIG1vZGFsIGNvbnRhaW5lciBjb250cm9scwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCmluZGV4IGI1NjhmOTNlYWFkZTdjMDIyNTA3ZWFmMmVlYjhmYWU1ODM5
ZGUwMzEuLjFiZjNlNTdiNzJlMDU0MDYyYmRhYzMxMzU5Yzg4MDM5M2NkMjkwZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMi0xNyAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgZGV0ZWN0ZWQg
bW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0NDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2VlIFdlYktpdCBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKwogMjAyMS0xMi0xNyAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgY2xp
ZW50IGxheWVyIHBsdW1iaW5nIGZvciBjbGFzc2lmeWluZyBtb2RhbCBjb250YWluZXIgY29udHJv
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGQ3YWE5ZDBkYmE3ZTYxNDNmNmRhNzY3NDVlZjA0MGZh
YzcwNjJjYWYuLjNhZDJmYWNlZTQ2ZmJlYWNhZDYwN2UyMDJmNTAzOTY1ZWMwNGFjZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtMTEwNSw3ICsxMTA1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5o
CiAgICAgcGFnZS9NZWRpYVByb2R1Y2VyLmgKICAgICBwYWdlL01lbW9yeVJlbGVhc2UuaAotICAg
IHBhZ2UvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oCisgICAgcGFnZS9Nb2RhbENvbnRhaW5l
clR5cGVzLmgKICAgICBwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uaAogICAgIHBhZ2UvUERGSW1h
Z2VDYWNoaW5nUG9saWN5LmgKICAgICBwYWdlL1BhZ2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdlNDVkOWU5ZDZmOTM5ZmRi
YTczYjJmMGM2NGIzMTQzNWUwNGZhNzguLjY5Y2M2NGFhMmQ3ZTA4M2FkZTU5NzFlN2RiYjg2MGM4
YmMyZTcyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTU0OTQsNyArNTQ5NCw3IEBACiAJCUY0OEQyQTZDMjE1NjIzQjQwMEM2
NzUyQiAvKiBGb250U2hhZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDhEMkE2QTIxNTYyM0I0MDBDNjc1MkIgLyogRm9udFNoYWRvdy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0OEQyQTdFMjE1
NzE4MjYwMEM2NzUyQiAvKiBGb250QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBNzEyMTU2REMwQTAwQzY3NTJCIC8qIEZvbnRB
dHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQUEzMjE1OTc0MEQwMEM2
NzUyQiAvKiBDb2xvckNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJRjQ5MzI4ODMyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjQ5
MzI4ODMyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTMyODgyMjc2OTA0MUIwMDNF
MjBGOCAvKiBNb2RhbENvbnRhaW5lclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ5Nzg2ODgxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3Rl
Ym9hcmRJdGVtSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ5Nzg2ODcxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0QjAwMTg5
MjZFN0YyMUYwMDZFQUFCRSAvKiBIVE1MQXRvbVN0cmluZ0NhY2hlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEIwMDE4NzI2RTdGMjFGMDA2RUFBQkUg
LyogSFRNTEF0b21TdHJpbmdDYWNoZS5oICovOyB9OwogCQlGNEIyQTkwOTI2NTAzMEJBMDA5RTcy
ODYgLyogRGF0YURldGVjdG9ySGlnaGxpZ2h0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNEIyQTkwNjI2NTAyQkEwMDA5RTcyODYgLyogRGF0YURldGVj
dG9ySGlnaGxpZ2h0LmggKi87IH07CkBAIC0xNzY5NCw3ICsxNzY5NCw3IEBACiAJCUY0OEQyQTdB
MjE1NzA1MUUwMEM2NzUyQiAvKiBGb250U2hhZG93Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBGb250U2hhZG93Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
OEQyQUEzMjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bG9yQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBQTQyMTU5NzQw
RDAwQzY3NTJCIC8qIENvbG9yQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2xvckNv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDkzMjg4MjI3NjkwNDFCMDAz
RTIwRjggLyogTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2Rh
bENvbnRhaW5lckNvbnRyb2xUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0
OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lclR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1vZGFsQ29udGFpbmVyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ5Nzg2ODcxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYXN0ZWJvYXJkSXRlbUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQ5RTk4RTQyMURFRTZDMTAwOUFFNTVFIC8qIEVkaXRBY3Rpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRWRpdEFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0QjAwMTg3MjZFN0YyMUYwMDZFQUFCRSAvKiBIVE1MQXRvbVN0cmluZ0NhY2hlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhUTUxBdG9tU3RyaW5nQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIzOTI0LDkgKzIzOTI0LDkgQEAKIAkJCQk1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYg
LyogTWVkaWFQcm9kdWNlci5oICovLAogCQkJCTQxM0UwMDc3MURCMEU0REUwMDIzNDFEMiAvKiBN
ZW1vcnlSZWxlYXNlLmNwcCAqLywKIAkJCQk0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIgLyogTWVt
b3J5UmVsZWFzZS5oICovLAotCQkJCUY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENv
bnRhaW5lckNvbnRyb2xUeXBlLmggKi8sCiAJCQkJQTEwRjdDNzEyNzMxMDA3MzAwOEZBOUFGIC8q
IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwICovLAogCQkJCUExMEY3QzcwMjczMTAwNzMwMDhG
QTlBRiAvKiBNb2RhbENvbnRhaW5lck9ic2VydmVyLmggKi8sCisJCQkJRjQ5MzI4ODIyNzY5MDQx
QjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCAqLywKIAkJCQk5M0VCMzU1RTA5RTM3
RkQ2MDBGNDM3OTkgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5jcHAgKi8sCiAJCQkJ
OTM1QzQ3NjIwOUFDNENFNjAwQTZBQUI0IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMu
aCAqLywKIAkJCQk2QjUwN0EyMzIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9yK0lzTG9nZ2Vk
SW4uaWRsICovLApAQCAtMzYwNTQsNiArMzYwNTQsNyBAQAogCQkJCTU3MTU2MTBDMjM0QzFDQTEw
MDhGQzdBQiAvKiBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNDkzMjg4MzI3NjkwNDFCMDAzRTIwRjggLyogTW9kYWxDb250YWluZXJDb250
cm9sVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwRjdDNzMyNzMxMDBEMDAwOEZBOUFGIC8q
IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0OTMyODgzMjc2
OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lclR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyREM4RDM5ODI1RjJGRTk3MDBDRkNCQUIgLyogTW9kZWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxM0U3OUVBMjczQzg2QjgwMDk3RjkwNSAvKiBNb2RlbERvY3VtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzJCNDExNzI3MzJGNDFFMDBBMkQxOTEgLyogTW9kZWxQbGF5ZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA1MTIyN2I5
NmQ3ZDE3Y2EwN2VlM2I3Y2ZmNDE2MmYzY2JlMWE5NzVmLi5hYjNiYzZjZTI5NGRiMjgzYTAxZmMz
OTA0M2U5NzQxOTIxY2UyYjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aApAQCAtMTQ0LDExICsxNDQsOSBAQCBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50
OF90IHsKICNlbmRpZgogfTsKIAotZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
UG9saWN5IDogdWludDhfdCB7CitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Q
b2xpY3kgOiBib29sIHsKICAgICBEaXNhYmxlZCwKICAgICBQcm9tcHQsCi0gICAgQWxsb3csCi0g
ICAgRGlzYWxsb3csCiB9OwogCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklF
UihEb2N1bWVudExvYWRlcik7CkBAIC03OTcsOSArNzk1LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5PiB7CiAg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250
YWluZXJPYnNlcnZhdGlvblBvbGljeSwKICAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJP
YnNlcnZhdGlvblBvbGljeTo6RGlzYWJsZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFp
bmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdCwKLSAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250
YWluZXJPYnNlcnZhdGlvblBvbGljeTo6QWxsb3csCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OkRpc2FsbG93CisgICAgICAgIFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdAogICAgID47CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDU1MjU2MmU1NGJiYTU3M2JlYWIwYjIw
ZmE2NDA1ZTkzM2MxYjY4NjIuLjc1OGNiZTgwNjU0ZTg4ODk3YWNkOWVkNDExOTkwYzg2ODZjYWYz
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC02Myw3ICs2Myw3
IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJlY29y
ZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgotI2luY2x1
ZGUgIk1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCIKKyNpbmNsdWRlICJNb2RhbENvbnRhaW5l
clR5cGVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCkBAIC01OTYsNiArNTk2LDEx
IEBAIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OmNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9s
cyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0CiAgICAgY29tcGxldGlvbih7IH0pOwogfQogCit2
b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRp
b25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
TW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9u
KE1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3cpOworfQorCiB2b2lkIEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25z
dCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBhYTE0YzRhMWI5YTZk
MzNhYWYwZGIzZDlkYTIyNjVhOWM2MzRhMzg5Li5jZDVmMjhmMTQ2MWU4YTJlNmFkYmMwZDAwZTU4
ZGVlNTZkNGQwNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMjEs
NiArMjIxLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50
IHsKIAogICAgIHZvaWQgcmVxdWVzdENvb2tpZUNvbnNlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChDb29raWVDb25zZW50RGVjaXNpb25SZXN1bHQpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsYXNz
aWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3RvcjxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiYmKT4mJikgZmluYWw7
CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxD
b250YWluZXJDb250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWlu
ZXJEZWNpc2lvbik+JiYpIGZpbmFsOwogfTsKIAogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGVt
cHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IGFhMTc0YWQ0YWYwNmYxMjZmMDIyZWU4OWZiMWM0YjUxZTMyZmUxYWUuLmYzYTc5NmE4
ODgzMDRlNzRjMzYyZjk0ODU0OTZiYTg0YjNjODUwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtMTQ1LDYgKzE0NSw3IEBAIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIGVudW0g
Y2xhc3MgQ29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
Um91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgTW9kYWxDb250YWluZXJD
b250cm9sVHlwZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyRGVjaXNpb24g
OiB1aW50OF90OwogCiBjbGFzcyBDaHJvbWVDbGllbnQgewogcHVibGljOgpAQCAtNjI3LDYgKzYy
OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21TdHJpbmcmIHNlYXJjaFN0cmlu
Z0Zvck1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxsQXRvbSgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIGNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8
U3RyaW5nPiYmIHRleHRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxNb2RhbENvbnRh
aW5lckNvbnRyb2xUeXBlPiYmKT4mJikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBv
bGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
PiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJikgPSAw
OworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJDb250cm9s
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkNWQ1MWRhMmU4OTIwZGEwM2JlYWNjOGMw
MjdmYWIzNzUxYzg4NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVu
dW0gY2xhc3MgTW9kYWxDb250YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3QgewotICAgIE5ldXRy
YWwsCi0gICAgUG9zaXRpdmUsCi0gICAgTmVnYXRpdmUsCi0gICAgT3RoZXIsCi19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHsKLSAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlLAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
OjpOZXV0cmFsLAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQ
b3NpdGl2ZSwKLSAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVn
YXRpdmUsCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok90aGVy
Ci0gICAgPjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAKaW5kZXggZThiOGU4YWRjZGU5MzczZWI0YzZl
YzZiMzViMzcyMjNkZjI2OTYwMC4uYmNjNzcxNDBkOWNlZGVkNDY0ZDAwZDcxODhjNGYyZTlkZWY3
MjRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIu
Y3BwCkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgotI2lu
Y2x1ZGUgIk1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCIKKyNpbmNsdWRlICJNb2RhbENvbnRh
aW5lclR5cGVzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJTaW11bGF0ZWRDbGlja09wdGlvbnMuaCIKQEAgLTMzMyw5ICszMzMsNTggQEAg
dm9pZCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjpjb2xsZWN0Q2xpY2thYmxlRWxlbWVudHNUaW1l
ckZpcmVkKCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIFZlY3RvcjxSZWY8SFRNTEVsZW1lbnQ+PiBwb3NpdGl2ZUNvbnRyb2xzOwotICAgICAg
ICAgICAgVmVjdG9yPFJlZjxIVE1MRWxlbWVudD4+IG5ldXRyYWxDb250cm9sczsKLSAgICAgICAg
ICAgIFZlY3RvcjxSZWY8SFRNTEVsZW1lbnQ+PiBuZWdhdGl2ZUNvbnRyb2xzOworICAgICAgICAg
ICAgc3RydWN0IENsYXNzaWZpZWRDb250cm9scyB7CisgICAgICAgICAgICAgICAgVmVjdG9yPFdl
YWtQdHI8SFRNTEVsZW1lbnQ+PiBwb3NpdGl2ZTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8V2Vh
a1B0cjxIVE1MRWxlbWVudD4+IG5ldXRyYWw7CisgICAgICAgICAgICAgICAgVmVjdG9yPFdlYWtQ
dHI8SFRNTEVsZW1lbnQ+PiBuZWdhdGl2ZTsKKworICAgICAgICAgICAgICAgIENsYXNzaWZpZWRD
b250cm9scygpID0gZGVmYXVsdDsKKyAgICAgICAgICAgICAgICBDbGFzc2lmaWVkQ29udHJvbHMo
Q2xhc3NpZmllZENvbnRyb2xzJiYgb3RoZXIpCisgICAgICAgICAgICAgICAgICAgIDogcG9zaXRp
dmUoV1RGTW92ZShvdGhlci5wb3NpdGl2ZSkpCisgICAgICAgICAgICAgICAgICAgICwgbmV1dHJh
bChXVEZNb3ZlKG90aGVyLm5ldXRyYWwpKQorICAgICAgICAgICAgICAgICAgICAsIG5lZ2F0aXZl
KFdURk1vdmUob3RoZXIubmVnYXRpdmUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBIVE1MRWxlbWVudCogY29udHJvbFRvQ2xpY2soTW9k
YWxDb250YWluZXJEZWNpc2lvbiBkZWNpc2lvbikgY29uc3QKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hOb25OdWxsID0gWyZdKGNvbnN0IFdlYWtQdHI8
SFRNTEVsZW1lbnQ+JiBlbGVtZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ISFlbGVtZW50OworICAgICAgICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgICAg
IHN3aXRjaCAoZGVjaXNpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRh
aW5lckRlY2lzaW9uOjpTaG93OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZElnbm9y
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBj
YXNlIE1vZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmRBbGxvdzoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChhdXRvIGluZGV4ID0gcG9zaXRpdmUuZmluZE1hdGNoaW5nKG1hdGNoTm9u
TnVsbCk7IGluZGV4ICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBwb3NpdGl2ZVtpbmRleF0uZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
YXV0byBpbmRleCA9IG5ldXRyYWwuZmluZE1hdGNoaW5nKG1hdGNoTm9uTnVsbCk7IGluZGV4ICE9
IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXV0cmFsW2lu
ZGV4XS5nZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBjYXNlIE1vZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmREaXNhbGxvdzoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIGluZGV4ID0gbmVnYXRpdmUuZmluZE1hdGNo
aW5nKG1hdGNoTm9uTnVsbCk7IGluZGV4ICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBuZWdhdGl2ZVtpbmRleF0uZ2V0KCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBP
cHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4gdHlwZXMoKSBjb25zdAorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGU+IGF2YWlsYWJsZVR5cGVzOworICAgICAgICAgICAgICAgICAgICBpZiAoIXBv
c2l0aXZlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZVR5cGVz
LmFkZChNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQb3NpdGl2ZSk7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghbmVnYXRpdmUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
YXZhaWxhYmxlVHlwZXMuYWRkKE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5lZ2F0aXZlKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXV0cmFsLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGF2YWlsYWJsZVR5cGVzLmFkZChNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
OjpOZXV0cmFsKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF2YWlsYWJsZVR5cGVzOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIENsYXNzaWZp
ZWRDb250cm9scyBjbGFzc2lmaWVkQ29udHJvbHM7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
bmRleCA9IDA7IGluZGV4IDwgdHlwZXMuc2l6ZSgpOyArK2luZGV4KSB7CiAgICAgICAgICAgICAg
ICAgYXV0byBjb250cm9sID0gY29udHJvbHNbaW5kZXhdOwogICAgICAgICAgICAgICAgIGlmICgh
Y29udHJvbCkKQEAgLTM0Myw0NyArMzkyLDQzIEBAIHZvaWQgTW9kYWxDb250YWluZXJPYnNlcnZl
cjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCgpCiAKICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHR5cGVzW2luZGV4XSkgewogICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250
YWluZXJDb250cm9sVHlwZTo6UG9zaXRpdmU6Ci0gICAgICAgICAgICAgICAgICAgIHBvc2l0aXZl
Q29udHJvbHMuYXBwZW5kKCpjb250cm9sKTsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmll
ZENvbnRyb2xzLnBvc2l0aXZlLmFwcGVuZChjb250cm9sKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpO
ZWdhdGl2ZToKLSAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVDb250cm9scy5hcHBlbmQoKmNv
bnRyb2wpOworICAgICAgICAgICAgICAgICAgICBjbGFzc2lmaWVkQ29udHJvbHMubmVnYXRpdmUu
YXBwZW5kKGNvbnRyb2wpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWw6Ci0gICAgICAgICAg
ICAgICAgICAgIG5ldXRyYWxDb250cm9scy5hcHBlbmQoKmNvbnRyb2wpOworICAgICAgICAgICAg
ICAgICAgICBjbGFzc2lmaWVkQ29udHJvbHMubmV1dHJhbC5hcHBlbmQoY29udHJvbCk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWlu
ZXJDb250cm9sVHlwZTo6T3RoZXI6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBjb250cm9sVG9DbGljazsKLSAgICAgICAgICAgIHN3aXRjaCAoZG9jdW1lbnRMb2FkZXIt
Pm1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3koKSkgewotICAgICAgICAgICAgY2FzZSBN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhYmxlZDoKLSAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6QWxsb3c6IHsKLSAgICAg
ICAgICAgICAgICBpZiAoIXBvc2l0aXZlQ29udHJvbHMuaXNFbXB0eSgpKQotICAgICAgICAgICAg
ICAgICAgICBjb250cm9sVG9DbGljayA9IHBvc2l0aXZlQ29udHJvbHNbMF0ucHRyKCk7Ci0gICAg
ICAgICAgICAgICAgZWxzZSBpZiAoIW5ldXRyYWxDb250cm9scy5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrID0gbmV1dHJhbENvbnRyb2xzWzBdLnB0cigpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSBN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzogewotICAgICAgICAgICAg
ICAgIGlmICghbmVnYXRpdmVDb250cm9scy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAg
IGNvbnRyb2xUb0NsaWNrID0gbmVnYXRpdmVDb250cm9sc1swXS5wdHIoKTsKLSAgICAgICAgICAg
ICAgICBlbHNlIGlmICghbmV1dHJhbENvbnRyb2xzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICAgICAgY29udHJvbFRvQ2xpY2sgPSBuZXV0cmFsQ29udHJvbHNbMF0ucHRyKCk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlIE1vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdDoKLSAgICAgICAgICAgICAgICAvLyBOb3Qg
c3VwcG9ydGVkIHlldC4KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQog
ICAgICAgICAgICAgb2JzZXJ2ZXItPm1faGFzQXR0ZW1wdGVkVG9GdWxmaWxsUG9saWN5ID0gdHJ1
ZTsKIAotICAgICAgICAgICAgaWYgKGNvbnRyb2xUb0NsaWNrKQotICAgICAgICAgICAgICAgIGNv
bnRyb2xUb0NsaWNrLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIFNlbmRNb3VzZVVw
RG93bkV2ZW50cywgRG9Ob3RTaG93UHJlc3NlZExvb2spOworICAgICAgICAgICAgYXV0byogcGFn
ZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgICAgICAgICBpZiAoIXBhZ2UpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIGF2YWlsYWJsZVR5cGVzID0gY2xhc3Np
ZmllZENvbnRyb2xzLnR5cGVzKCk7CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5kZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihhdmFpbGFibGVUeXBlcywgW3dlYWtEb2N1
bWVudCwgb2JzZXJ2ZXIsIGNsYXNzaWZpZWRDb250cm9scyA9IFdURk1vdmUoY2xhc3NpZmllZENv
bnRyb2xzKV0oYXV0byBkZWNpc2lvbikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgUmVmUHRy
IGRvY3VtZW50ID0gd2Vha0RvY3VtZW50LmdldCgpOworICAgICAgICAgICAgICAgIGlmICghZG9j
dW1lbnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlm
IChvYnNlcnZlciAhPSBkb2N1bWVudC0+bW9kYWxDb250YWluZXJPYnNlcnZlcklmRXhpc3RzKCkp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlmIChkZWNp
c2lvbiA9PSBNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvIGNvbnRhaW5lciA9IHN0ZDo6ZXhjaGFuZ2Uob2JzZXJ2ZXItPm1fY29udGFp
bmVyLCB7IH0pKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLT5pbnZhbGlkYXRl
U3R5bGUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbnRyb2xUb0NsaWNrID0gY2xhc3NpZmllZENv
bnRyb2xzLmNvbnRyb2xUb0NsaWNrKGRlY2lzaW9uKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dHJvbFRvQ2xpY2stPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sobnVsbHB0ciwgU2VuZE1vdXNlVXBE
b3duRXZlbnRzLCBEb05vdFNob3dQcmVzc2VkTG9vayk7CisgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFs
Q29udGFpbmVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJUeXBl
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxZTU0ZmQ3NjE3MDI2NjU1ZDEwNTQzZGJkMTliNTM5OGVjMzg3ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyVHlw
ZXMuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xh
c3MgTW9kYWxDb250YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3QgeworICAgIE5ldXRyYWwgPSAx
IDw8IDAsCisgICAgUG9zaXRpdmUgPSAxIDw8IDEsCisgICAgTmVnYXRpdmUgPSAxIDw8IDIsCisg
ICAgT3RoZXIgPSAxIDw8IDMsCit9OworCitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyRGVjaXNp
b24gOiB1aW50OF90IHsKKyAgICBTaG93LAorICAgIEhpZGVBbmRJZ25vcmUsCisgICAgSGlkZUFu
ZEFsbG93LAorICAgIEhpZGVBbmREaXNhbGxvdywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUsCisg
ICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwsCisgICAg
ICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6OlBvc2l0aXZlLAorICAgICAg
ICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZWdhdGl2ZSwKKyAgICAgICAg
V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6T3RoZXIKKyAgICA+OworfTsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lz
aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
TW9kYWxDb250YWluZXJEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJE
ZWNpc2lvbjo6U2hvdywKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6
SGlkZUFuZElnbm9yZSwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6
SGlkZUFuZEFsbG93LAorICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpI
aWRlQW5kRGlzYWxsb3cKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA2YmU4YjEwNmQ5ZGEwZjUwOGZh
MGE4MmQ1MDc2ZDY3ZjVkZGZiZjQ2Li5jYTA4YmU3ODk2ZTU2MWYyZjZlMTkyYzhhOWQ4YWFkM2Ux
MTk4NDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTc5
OSw2ICs3OTksOCBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNv
cmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlw
ZSc6IFsnPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPiddLAorICAgICAgICAnV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbic6IFsnPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBl
cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUv
RG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1vdmVEYXRhJzogWyc8V2Vi
Q29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5z
YWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4n
XSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2NWQ5MTgxYmEwYzllMTFkYzhiNmNmNGEwNzEy
Y2MyNTIzYzJmZWE1Li4xMWYwYzI0MDVhYzk0NzRiZThmOGU4MDVmZWViYzhmMWJiNjk2MDAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yODcsNiArMjg3LDcgQEAgVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0
dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0xpbmtJY29uUGFyYW1ldGVycy5tbQorVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8ubW0KIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Jlc291cmNlTG9hZEluZm8ubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmgKaW5kZXggN2I2NDQwY2ZiMzdkYWUzNWI2MzljY2VkNGYxMjE0ODczMDZiMTQ2
OS4uOTY4NTA1NDkyOWNmZGMzNWU5OGExNWYwNTRmNzgzOWUxZGY0YWUwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUNvbnNlbnREZWNp
c2lvblJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTE0Niw2ICsxNDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94
eSosIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXF1ZXN0aW5nRG9tYWluLCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgY3VycmVudERvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFu
ZGxlcih0cnVlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q29va2llQ29uc2VudChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6Q29va2ll
Q29uc2VudERlY2lzaW9uUmVzdWx0OjpOb3RTdXBwb3J0ZWQpOyB9CisgICAgdmlydHVhbCB2b2lk
IGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENv
bnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNb2Rh
bENvbnRhaW5lckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oV2ViQ29yZTo6
TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7IH0KIAogICAgIC8vIFByaW50aW5nLgogICAg
IHZpcnR1YWwgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5JikgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggNDA3MDE0
ZDkzNTQwYWMxNThkZGUxOTVjZDAyODAyOTUyY2Q3MWFlZi4uMTU2ZjFkMDgxYzBkZTlmOTVkNGQ0
OWI4MDM2MjIyM2E0MTMyZTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC00Miw2ICs0Miw3IEBACiBA
Y2xhc3MgX1dLSW5zcGVjdG9yOwogQGNsYXNzIF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb247CiBA
Y2xhc3MgX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm87CitAY2xhc3MgX1dLTW9kYWxDb250YWlu
ZXJJbmZvOwogCiAjaWYgVEFSR0VUX09TX0lPUwogCkBAIC0xMDMsNiArMTA0LDEzIEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MpIHsKICAg
ICBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVVbmJvdW5kZWQgPSAx
IDw8IDQsCiB9OwogCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tNb2RhbENvbnRhaW5l
ckRlY2lzaW9uKSB7CisgICAgX1dLTW9kYWxDb250YWluZXJEZWNpc2lvblNob3csCisgICAgX1dL
TW9kYWxDb250YWluZXJEZWNpc2lvbkhpZGVBbmRJZ25vcmUsCisgICAgX1dLTW9kYWxDb250YWlu
ZXJEZWNpc2lvbkhpZGVBbmRBbGxvdywKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlk
ZUFuZERpc2FsbG93LAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworCiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlUHJpdmF0ZSA8V0tVSURlbGVn
YXRlPgogCiAjaWZkZWYgRk9VTkRBVElPTl9IQVNfRElSRUNUSU9OQUxfR0VPTUVUUlkKQEAgLTE4
MSw2ICsxODksOCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RDb29raWVDb25zZW50V2l0aE1vcmVJbmZvSGFuZGxl
cjoodm9pZCAoXikodm9pZCkpbW9yZUluZm9IYW5kbGVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXI6KF9XS01vZGFsQ29udGFpbmVySW5m
byAqKWNvbnRhaW5lckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShfV0tNb2RhbENvbnRh
aW5lckRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIAogLSAo
Qk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0Fj
dGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KaW5kZXggMDIyZGM1MDg5YWIx
YWNhYTAyODJiMDJiY2ViYWY4OWU3ZmY3OGNjZC4uNzM2NmQ0ZTM1ZmQwN2VhYjc0NTY1YWJhZTY4
NDZiNWNhMmU2YzQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQpAQCAtMTExLDEwICsxMTEsNiBAQCBz
dGF0aWMgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3kgbW9kYWxDb250
YWluZXJPYnNlcnZhdGlvblBvbGljeQogICAgICAgICByZXR1cm4gX1dLV2Vic2l0ZU1vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhYmxlZDsKICAgICBjYXNlIFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdDoKICAgICAgICAgcmV0dXJuIF9XS1dl
YnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5UHJvbXB0OwotICAgIGNhc2UgV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6QWxsb3c6Ci0gICAgICAgIHJl
dHVybiBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeUFsbG93OwotICAg
IGNhc2UgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWxsb3c6
Ci0gICAgICAgIHJldHVybiBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eURpc2FsbG93OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
X1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhYmxlZDsKQEAgLTEy
NywxMCArMTIzLDYgQEAgc3RhdGljIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Q
b2xpY3kgY29yZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2wKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OkRpc2FibGVkOwogICAgIGNh
c2UgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lQcm9tcHQ6CiAgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpQcm9t
cHQ7Ci0gICAgY2FzZSBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeUFs
bG93OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBv
bGljeTo6QWxsb3c7Ci0gICAgY2FzZSBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlv
blBvbGljeURpc2FsbG93OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJP
YnNlcnZhdGlvblBvbGljeTo6RGlzYWxsb3c7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5
OjpEaXNhYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBmMjFhYTZlYjY0
MzdhYzVkMjQzNTNjOGVkNWM5OTc2MWMzNmU2NGYxLi5mMjJmYzU4NDcwNjg0YzhhNWMyOTk0Zjc5
MTE5ZTIzMzBkOTVjYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02NSw4
ICs2NSw2IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlTW91c2VF
dmVudFBvbGljeSkgewogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5KSB7CiAgICAgX1dLV2Vic2l0ZU1vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhYmxlZCwKICAgICBfV0tXZWJzaXRlTW9kYWxDb250
YWluZXJPYnNlcnZhdGlvblBvbGljeVByb21wdCwKLSAgICBfV0tXZWJzaXRlTW9kYWxDb250YWlu
ZXJPYnNlcnZhdGlvblBvbGljeUFsbG93LAotICAgIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9i
c2VydmF0aW9uUG9saWN5RGlzYWxsb3csCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBjbGFzcyBfV0tDdXN0b21IZWFkZXJGaWVsZHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxD
b250YWluZXJJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9k
YWxDb250YWluZXJJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJlNTM2NWRlOTE1NmQ4ZGY0ZTk5MTE3ODc3
OTQwMTA1NzIzYjY4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8uaApAQCAtMCwwICsxLDQwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tGb3VuZGF0aW9uLmg+CisKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlcykgeworICAgIF9XS01vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGVOZXV0cmFsID0gMSA8PCAwLAorICAgIF9XS01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVQ
b3NpdGl2ZSA9IDEgPDwgMSwKKyAgICBfV0tNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlTmVnYXRp
dmUgPSAxIDw8IDIsCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CisKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKQorQGludGVyZmFjZSBfV0tNb2RhbENvbnRhaW5lckluZm8gOiBOU09iamVj
dAorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01vZGFsQ29udGFpbmVyQ29u
dHJvbFR5cGVzIGF2YWlsYWJsZVR5cGVzOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42Mjg0YzFlYjYyMWM4YjdhMTU5NjFlNGU5MWE0ODRiNzVkYzk3MTcyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29u
dGFpbmVySW5mby5tbQpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oIgorCisjaW1w
b3J0IDxXZWJDb3JlL01vZGFsQ29udGFpbmVyVHlwZXMuaD4KKworQGltcGxlbWVudGF0aW9uIF9X
S01vZGFsQ29udGFpbmVySW5mbworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlczooT3B0
aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+KXR5cGVzCit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBp
ZiAodHlwZXMuY29udGFpbnMoV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6UG9z
aXRpdmUpKQorICAgICAgICBfYXZhaWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxDb250YWluZXJDb250
cm9sVHlwZVBvc2l0aXZlOworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyQ29udHJvbFR5cGU6Ok5lZ2F0aXZlKSkKKyAgICAgICAgX2F2YWlsYWJsZVR5cGVz
IHw9IF9XS01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVOZWdhdGl2ZTsKKworICAgIGlmICh0eXBl
cy5jb250YWlucyhXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZXV0cmFsKSkK
KyAgICAgICAgX2F2YWlsYWJsZVR5cGVzIHw9IF9XS01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVO
ZXV0cmFsOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5h
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVy
SW5mb0ludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYxMmM5Yjk5N2M3ZDIwN2EwMGVhNzZjYTBmZTA0
ODA1YjUxMjU0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCAiX1dLTW9kYWxDb250YWluZXJJ
bmZvLmgiCisjaW1wb3J0IDx3dGYvT3B0aW9uU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3Q7Cit9CisKK0Bp
bnRlcmZhY2UgX1dLTW9kYWxDb250YWluZXJJbmZvIChXZWJLaXRJbnRlcm5hbCkKKworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoVHlwZXM6KE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlPil0eXBlczsKKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllci5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGFsQ29udGFpbmVyQ29udHJvbENsYXNzaWZpZXIu
bW0KaW5kZXggNzFjYmU0ODdjYzA2Mjk1NjFhNDg3YWMzMjE3ZTU4NTQyNjE0OGZjMy4uNTE0MDEx
NWFkNTMxYjEyZDRkYzdhMmM2Y2Y4YjU0NzEyYzQ5MDUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xD
bGFzc2lmaWVyLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgPENvcmVNTC9Db3JlTUwu
aD4KICNpbXBvcnQgPE5hdHVyYWxMYW5ndWFnZS9OYXR1cmFsTGFuZ3VhZ2UuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9N
b2RhbENvbnRhaW5lclR5cGVzLmg+CiAKIHN0YXRpYyBOU1N0cmluZyAqY29uc3QgY2xhc3NpZmll
cklucHV0RmVhdHVyZUtleSA9IEAidGV4dCI7CiBzdGF0aWMgTlNTdHJpbmcgKmNvbnN0IGNsYXNz
aWZpZXJPdXRwdXRGZWF0dXJlS2V5ID0gQCJsYWJlbCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF0Zm9ybVhSQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF0Zm9ybVhSQ29vcmRpbmF0b3IubW0KaW5kZXggMzZiYjE2
MGJiZWE0OWY5ZWQ4MGQxNTUwMTYwZjgzNTUyZDEzY2E4My4uYjNlYjk5ZTVlZTkwYTJlOWM2MDNm
ZGE1Yjg4ZTg1ZjUxMjE1YTU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvUGxhdGZvcm1YUkNvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1BsYXRmb3JtWFJDb29yZGluYXRvci5tbQpAQCAtMjUsNiArMjUsNyBAQAogCiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlBsYXRmb3JtWFJDb29yZGluYXRvci5oIgorI2lt
cG9ydCAiUGxhdGZvcm1YUlN5c3RlbS5oIgogCiAjaWYgRU5BQkxFKFdFQlhSKSAmJiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmgKaW5kZXggODdjZjI0ZjE4ZWJiMGFhYjk1NzU2ODEwMjMyMTA5ZmJhMDc1YjEwZC4uNjE2
Y2M2Zjc3NTc3MmMzOGY5N2U4YWY4ZDM5ZjMxNGIxMmZjM2U2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTA3LDYgKzEwNyw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmLCBXZWJDb3Jl
OjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikg
ZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QoV2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCBhbGxvd2VkKT4mJikgZmluYWw7CiAgICAgICAgIHZvaWQgcmVxdWVz
dENvb2tpZUNvbnNlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpDb29raWVDb25z
ZW50RGVjaXNpb25SZXN1bHQpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9s
VHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNp
c2lvbik+JiYpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB2b2lkIHNob3dQ
YWdlKFdlYlBhZ2VQcm94eSopIGZpbmFsOwpAQCAtMjc0LDYgKzI3NSw3IEBAIHByaXZhdGU6CiAj
ZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25G
b3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmll
d1JlcXVlc3RDb29raWVDb25zZW50V2l0aE1vcmVJbmZvSGFuZGxlckRlY2lzaW9uSGFuZGxlciA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyRGVj
aXNpb25IYW5kbGVyIDogMTsKICAgICB9IG1fZGVsZWdhdGVNZXRob2RzOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggZWFhMTBiNTQ0ZWYz
NGMwZGM4NjQ3ZDZjZTkxMTU2OTIyNmE5YjY0ZS4uMDI1NDE3NDZlNWE4OTI2ODc0ZGM1MzA1NGZk
YjY5NmZlODVlNTdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW1wb3J0ICJfV0tIaXRUZXN0UmVzdWx0SW50ZXJu
YWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIgogI2lt
cG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9XS01vZGFsQ29udGFpbmVy
SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJu
YWwuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVEZXZpY2UuaD4KICNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVk1lZGlhRm9ybWF0Lmg+CkBAIC0xOTksNiArMjAwLDcgQEAgdm9pZCBV
SURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNlbmRp
ZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkZvclNlY3VyaXR5T3JpZ2luRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Np
b25Gb3JTZWN1cml0eU9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1JlcXVlc3RDb29raWVDb25zZW50V2l0aE1vcmVJbmZvSGFuZGxlckRlY2lz
aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnJlcXVlc3RDb29raWVDb25zZW50V2l0aE1vcmVJbmZvSGFuZGxlcjpkZWNpc2lvbkhhbmRs
ZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck1vZGFs
Q29udGFpbmVyRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXI6ZGVjaXNpb25I
YW5kbGVyOildOwogfQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC02NjUsNiArNjY3
LDQ0IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlcXVlc3RDb29raWVDb25zZW50KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6CiAgICAgfSkuZ2V0KCldOwogfQogCitzdGF0
aWMgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbiBjb3JlTW9kYWxDb250YWluZXJEZWNp
c2lvbihfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uIGRlY2lzaW9uKQoreworICAgIHN3aXRjaCAo
ZGVjaXNpb24pIHsKKyAgICBjYXNlIF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb25TaG93OgorICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdzsKKyAgICBj
YXNlIF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb25IaWRlQW5kSWdub3JlOgorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZElnbm9yZTsKKyAgICBj
YXNlIF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb25IaWRlQW5kQWxsb3c6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpIaWRlQW5kQWxsb3c7CisgICAgY2Fz
ZSBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZERpc2FsbG93OgorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZERpc2FsbG93OworICAg
IH0KKyAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdzsKK30K
Kwordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWlu
ZXIoT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IGNvbnRyb2xU
eXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lz
aW9uKT4mJiBjb21wbGV0aW9uKQoreworICAgIGlmICghbV91aURlbGVnYXRlKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbihXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KTsK
KworICAgIGlmICghbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRl
UG9saWN5Rm9yTW9kYWxDb250YWluZXJEZWNpc2lvbkhhbmRsZXIpCisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3cpOworCisgICAg
YXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAo
IWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbihXZWJDb3JlOjpNb2RhbENvbnRh
aW5lckRlY2lzaW9uOjpTaG93KTsKKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5k
bGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3
OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICBh
dXRvIGluZm8gPSBhZG9wdE5TKFtbX1dLTW9kYWxDb250YWluZXJJbmZvIGFsbG9jXSBpbml0V2l0
aFR5cGVzOmNvbnRyb2xUeXBlc10pOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIGRlY2lk
ZVBvbGljeUZvck1vZGFsQ29udGFpbmVyOmluZm8uZ2V0KCkgZGVjaXNpb25IYW5kbGVyOm1ha2VC
bG9ja1B0cihbY29tcGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIGNoZWNrZXIgPSBXVEZN
b3ZlKGNoZWNrZXIpXSAoX1dLTW9kYWxDb250YWluZXJEZWNpc2lvbiBkZWNpc2lvbikgbXV0YWJs
ZSB7CisgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQo
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxl
dGlvbkhhbmRsZXIoKTsKKyAgICAgICAgY29tcGxldGlvbihjb3JlTW9kYWxDb250YWluZXJEZWNp
c2lvbihkZWNpc2lvbikpOworICAgIH0pLmdldCgpXTsKK30KKwogI2lmIFBMQVRGT1JNKE1BQykK
IGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNhblJ1bk1vZGFsKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDQ4N2YwZjUzMmNkMzBhYzY3
NDA2Mzc2OWU1ZDJiMDFjNDE3ZWViOTYuLmRmZjc2Nzg4MTM2MmE4NjUzZWM4OGRiN2QzYzc5YmU4
NWIyMzgzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTY5LDcgKzE2OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3Ry
ZWFtUmVxdWVzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTW9kYWxDb250YWluZXJDb250cm9sVHlw
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
ZXJtaXNzaW9uU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRXZlbnQuaD4KQEAg
LTExMDUzLDYgKzExMDUzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Q29va2llQ29u
c2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKENvb2tpZUNvbnNlbnREZWNpCiAgICAgbV91aUNs
aWVudC0+cmVxdWVzdENvb2tpZUNvbnNlbnQoV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8
TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4gdHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
TW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxldGlvbikKK3sKKyAgICBtX3VpQ2xpZW50
LT5kZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcih0eXBlcywgV1RGTW92ZShjb21wbGV0aW9u
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgV0VCUEFHRVBST1hZX1JF
TEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQwMWYw
NGI2Mzc3NTJhZTkxMmQ0ODQwM2E3YzQ5NDJiYWJiOTI2M2IuLmVhZmRmYTJiYTMzOTQ0ZWVhY2U3
YjAwYWU5ZmJiOWM1M2QwOTk2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0yNzUsNiArMjc1LDcgQEAgZW51bSBjbGFzcyBIYXNJbnNlY3VyZUNvbnRlbnQgOiBi
b29sOwogZW51bSBjbGFzcyBIaWdobGlnaHRSZXF1ZXN0T3JpZ2luYXRlZEluQXBwIDogYm9vbDsK
IGVudW0gY2xhc3MgSGlnaGxpZ2h0VmlzaWJpbGl0eSA6IGJvb2w7CiBlbnVtIGNsYXNzIE1vZGFs
Q29udGFpbmVyQ29udHJvbFR5cGUgOiB1aW50OF90OworZW51bSBjbGFzcyBNb2RhbENvbnRhaW5l
ckRlY2lzaW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIE5vdGlmaWNhdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CkBAIC0yMDQwLDYgKzIwNDEsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHJlcXVlc3RDb29raWVDb25zZW50KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0KT4mJik7CiAgICAgdm9p
ZCBjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiB0ZXh0cywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250
cm9sVHlwZT4mJik+JiYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIo
T3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKTsKIAogcHJp
dmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJl
ZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1YmQ4YzdhZjgxY2VlYWMwMGUyMDBj
YTMyMTdhZWM4MGYzMDIwM2FiLi5iNzg4NTNiNjAzNjBhZDY1YjkxMjI2ZWQwNDJhYjNmNTRlNGQz
YTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC02MTksNCArNjE5LDUgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAog
ICAgIFJlcXVlc3RDb29raWVDb25zZW50KCkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpDb29r
aWVDb25zZW50RGVjaXNpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogICAgIENsYXNzaWZ5TW9kYWxD
b250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiB0ZXh0cykgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcykgQXN5bmMKKyAgICBEZWNpZGVQb2xp
Y3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250
cm9sVHlwZT4gdHlwZXMpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TW9kYWxDb250YWluZXJE
ZWNpc2lvbiBkZWNpc2lvbikgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU0MzkwOTIzNTk5MTYzMThiMjVlZWY3MTg5NDA5
ZTcyZGZkMDJmZjguLmI0MmZmYTQzZGI1NmJjZDg5MTZkMmI1MjZhY2I4YzE5MTA1MDc5NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjA0Niw2ICsyMDQ2LDggQEAKIAkJRjREOTg1QzgyNjkwRkMxMjAwQkJDQ0JFIC8qIF9XS1RhcEhh
bmRsaW5nUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEQ5ODVDNzI2OTBGQkVGMDBCQkNDQkUgLyogX1dLVGFwSGFuZGxpbmdSZXN1bHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNEQ5ODVD
QjI2OTEwOTY2MDBCQkNDQkUgLyogVGFwSGFuZGxpbmdSZXN1bHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTJCNDRBMjY4RkRFMUEwMDMyN0FCQyAv
KiBUYXBIYW5kbGluZ1Jlc3VsdC5oICovOyB9OwogCQlGNERCNTRFNjIzMTlFNzMzMDA5RTMxNTUg
LyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1
IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKKwkJRjRE
QkMwQkUyNzZBQTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREQkMwQkMyNzZBQTZBNzAw
MDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUY0REJDMEMxMjc2QUE2Q0EwMDAxRDE2OSAvKiBf
V0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjREQkMwQzAyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFs
Q29udGFpbmVySW5mb0ludGVybmFsLmggKi87IH07CiAJCUY0RUI0QUZEMjY5Q0Q3RjMwMEQyOTdB
RSAvKiBPU1N0YXRlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNEVCNEFGQzI2OUNEMjM2MDBEMjk3QUUgLyogT1NTdGF0ZVNQSS5oICovOyB9Owog
CQlGNEVDOTRFMzIzNTZDQzU3MDAwQkI2MTQgLyogQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlEMDRFMjgyMUY3
QzczRDAwNzY3NDFEIC8qIEFwcGxpY2F0aW9uU2VydmljZXNTUEkuaCAqLzsgfTsKIAkJRjRGRTBB
M0IyNDYzMkI2MDAwMjYzMUUxIC8qIENvY29hQ29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RkUwQTNBMjQ2MzJCMTAwMDI2MzFFMSAvKiBDb2Nv
YUNvbG9yLmggKi87IH07CkBAIC02NDU4LDYgKzY0NjAsOSBAQAogCQlGNEQ5ODVDNzI2OTBGQkVG
MDBCQkNDQkUgLyogX1dLVGFwSGFuZGxpbmdSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGFw
SGFuZGxpbmdSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjREQjU0RTQy
MzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tIaWdobGlnaHRMb25nUHJlc3NH
ZXN0dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVy
ZVJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjREQjU0RTUyMzE5
RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0hpZ2hsaWdodExvbmdQ
cmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNz
R2VzdHVyZVJlY29nbml6ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0REJD
MEJDMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLTW9kYWxDb250YWluZXJJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0REJDMEJEMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2Rh
bENvbnRhaW5lckluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tNb2RhbENvbnRhaW5lckluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0REJDMEMwMjc2QUE2Q0EwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUyQjQ0QTI2OEZERTFBMDAzMjdBQkMgLyogVGFw
SGFuZGxpbmdSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGFwSGFuZGxpbmdSZXN1bHQuaDsgcGF0
aCA9IGlvcy9UYXBIYW5kbGluZ1Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNEVCNEFGQzI2OUNEMjM2MDBEMjk3QUUgLyogT1NTdGF0ZVNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBPU1N0YXRlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RjU5QUQzMjA2
NUE1QzkwMDZDQUE0NiAvKiBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1NlbGVjdE1lbnVMaXN0Vmlld0Nv
bnRyb2xsZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODY5OSw2ICs4NzA0LDkgQEAK
IAkJCQk1MUMwQzk3OTFEREQ3ODU0MDAzMkNBRDMgLyogX1dLTGlua0ljb25QYXJhbWV0ZXJzLmgg
Ki8sCiAJCQkJNTFDMEM5N0ExRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVy
cy5tbSAqLywKIAkJCQk1MUMwQzk3QjFEREQ3ODU0MDAzMkNBRDMgLyogX1dLTGlua0ljb25QYXJh
bWV0ZXJzSW50ZXJuYWwuaCAqLywKKwkJCQlGNERCQzBCQzI3NkFBNkE3MDAwMUQxNjkgLyogX1dL
TW9kYWxDb250YWluZXJJbmZvLmggKi8sCisJCQkJRjREQkMwQkQyNzZBQTZBNzAwMDFEMTY5IC8q
IF9XS01vZGFsQ29udGFpbmVySW5mby5tbSAqLywKKwkJCQlGNERCQzBDMDI3NkFBNkNBMDAwMUQx
NjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQk5MzIzNjExRDFC
MDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggKi8sCiAJCQkJMUE0
M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICov
LAogCQkJCTFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24ubW0gKi8sCkBAIC0xMjY0Myw2ICsxMjY1MSw4IEBACiAJCQkJMzFCMzYyOTcyMTQxRUJE
OTAwN0JGQTUzIC8qIF9XS0ludGVybmFsRGVidWdGZWF0dXJlSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJENzkwQTlEMUFENzA1MEQwMEFCOTBCMyAvKiBfV0tMYXlvdXRNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTBGNTkxMTFEREUyOTcwMDA0MTJGRjUgLyogX1dLTGlua0ljb25Q
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNERCQzBCRTI3NkFBNkE3MDAwMUQxNjkg
LyogX1dLTW9kYWxDb250YWluZXJJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNERCQzBDMTI3
NkFBNkNBMDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExMThBOUYzMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2Vy
RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUMwRjBBNzIwMDA2NTREMDA1MzY1MzYgLyog
X1dLTlNXaW5kb3dFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMjM2MTFFMUIwMTVEQTgw
MEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA1YWM0MDk4NDRkNzI2YWU1YWE5Yzk2ODU0ODYzNmQ3NzAx
ZTY4MDhhLi5mM2VlMTkzNTA4MzhlMGU4NGRhOTIzYzM4ZGQ3NzMxOTM1MmU4NDkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcApAQCAtMTU3NCw2ICsxNTc0LDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiBzdHJp
bmdzLCBDCiAgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpDbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoc3RyaW5ncyksIFdURk1vdmUoY29t
cGxldGlvbikpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9k
YWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmIGNvbXBsZXRp
b24pCit7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcih0eXBlcyksIFdURk1vdmUoY29tcGxl
dGlvbikpOworfQorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbmNsdWRlIDxXZWJL
aXRBZGRpdGlvbnMvV2ViQ2hyb21lQ2xpZW50QWRkaXRpb25zLmNwcD4KICNlbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggOWZhODFjODdlMTkzOWQyYTE5NzRjNjA0ODc0NTcxMjZhODFlNTk0Yi4u
ZGE1YWNkMTM5NWNjOTI0MDhmZmRjYzJhMDJiODMxMTI4NjhmOTY3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtNDY4LDYgKzQ2OCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNsYXNzaWZ5TW9k
YWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiYmKT4mJikgZmlu
YWw7CiAKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJikgZmluYWw7CisKICAgICBjb25z
dCBBdG9tU3RyaW5nJiBzZWFyY2hTdHJpbmdGb3JNb2RhbENvbnRhaW5lck9ic2VydmVyKCkgY29u
c3QgZmluYWw7CiAKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9u
dGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMjZjZWRiYWM0Zjlm
MWFiMWZlNWVjODJiM2E4MjMxZDIzNWRjMTMzNy4uODIyMzc4ZjQwNjNmMGJhZjMwNDhjZDMwMGNh
NjQyMjI4M2RlODBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI2MSw2ICsyNjEsOCBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0
cmluZz4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250
YWluZXJDb250cm9sVHlwZT4mJik+JiYpIGZpbmFsOwogCisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9s
VHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNp
c2lvbik+JiYpIGZpbmFsOworCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQog
ICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBiMzA2NDMxOGQwYzBiYjdhNGM0NTIxMTYxNjFl
ZmQ3Y2YwN2JiZmU3Li4zNjM0ZjdhNjAyMTQ2MTllY2ZlYWYwYWVkOWViZmNlNzIxMGYxYTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03OCw3ICs3OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0lj
b24uaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50
UmVjdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL01vZGFsQ29udGFpbmVyVHlwZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TmF2aWdhdGlvbkFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CkBAIC0xMTc4LDMgKzExNzgsOCBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6Y2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+
JiYsIENvbXBsZXRpbwogewogICAgIGNvbXBsZXRpb24oeyB9KTsKIH0KKwordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxNb2RhbENv
bnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNb2RhbENvbnRhaW5l
ckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKQoreworICAgIGNvbXBsZXRpb24oTW9kYWxDb250YWlu
ZXJEZWNpc2lvbjo6U2hvdyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBiYzdmYWVhN2Zj
NTQ0ZmIyNWJjNDljZGQ1ZjYyYTEyYWMwNzBmYWRhLi4wOTRmNjUyMTAwNTc3NWRkNDZjNzNkN2U2
YjM5NjcwNzAxMWQ4YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ljb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsV2luZG93
c0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01vZGFsQ29udGFpbmVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05hdmlnYXRpb25B
Y3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlLmg+CkBAIC04ODcsMyArODg3LDggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0
aW8KIHsKICAgICBjb21wbGV0aW9uKHsgfSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250
cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lvbik+
JiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKE1vZGFsQ29udGFpbmVyRGVjaXNpb246
OlNob3cpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447667</attachid>
            <date>2021-12-20 17:14:40 -0800</date>
            <delta_ts>2021-12-20 20:24:47 -0800</delta_ts>
            <desc>Depends on #234322</desc>
            <filename>bug-234440-20211220171440.patch</filename>
            <type>text/plain</type>
            <size>61617</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Mjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFjOWM0YjNkNjhkMjg2
NDgxZmY0NGNkMGQ4MDY2MmYzZTc3ZjdjZi4uNzdjMzA4MGE4YmIwZjVhYjE1ZTkzNzA3ZjBhOTEz
M2FkNGExNGQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBhIFVJIGRlbGVnYXRlIG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3Rl
ZCBtb2RhbCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ0NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCB0byBNb2RhbENvbnRh
aW5lclR5cGVzLmgsIGFuZCBhZGQgYSBuZXcgZW51bSBmbGFnIHRvIHJlcHJlc2VudCByZXR1cm4g
dmFsdWVzIGluCisgICAgICAgIHRoZSBuZXcgVUkgZGVsZWdhdGUgZGVjaXNpb24gaGFuZGxlci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorCisg
ICAgICAgIEFkZGl0aW9uYWxseSByZW1vdmUgdGhlIHVudXNlZCBBbGxvdyBhbmQgRGlzYWxsb3cg
dmFsdWVzIG9mIE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3ksIG5vdyB0aGF0IHdlIHdp
bGwKKyAgICAgICAgYWx3YXlzIChlZmZlY3RpdmVseSkgInByb21wdCIgd2hlbiBkZXRlY3Rpbmcg
YSBtb2RhbCBjb250YWluZXIgYnkgY2FsbGluZyBpbnRvIHRoZSBjbGllbnQgbGF5ZXIgd2l0aCB0
aGUgbmV3CisgICAgICAgIGRlbGVnYXRlIG1ldGhvZC4KKworICAgICAgICAqIGxvYWRlci9FbXB0
eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKworICAgICAgICBBZGQgdGhlIG5l
dyBhc3luYyBjaHJvbWUgY2xpZW50IGhvb2ssIGBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5l
cigpYC4KKworICAgICAgICAqIHBhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpjb2xsZWN0Q2xpY2thYmxlRWxl
bWVudHNUaW1lckZpcmVkKToKKworICAgICAgICBDYWxsIGludG8gdGhlIGNocm9tZSBjbGllbnQg
dG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgdGhlIG9ic2VydmVkIG1vZGFsIGNvbnRhaW5lci4KKwor
ICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6cmV2ZWFsTW9kYWxDb250
YWluZXI6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byByZXNldCB0aGUgY3VycmVu
dCBgbV9jb250YWluZXJgIGFuZCBpbnZhbGlkYXRlIGl0cyBzdHlsZSAoc3VjaCB0aGF0IGl0IHdp
bGwgYmUgZGlzcGxheWVkCisgICAgICAgIGFmdGVyIHRoZSBuZXh0IHN0eWxlIHVwZGF0ZSkuCisK
KyAgICAgICAgKiBwYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oLgorCisgICAgICAgIEFs
c28sIHR3ZWFrIHRoZSBgTW9kYWxDb250YWluZXJDb250cm9sVHlwZWAgdmFsdWVzIHNvIHRoYXQg
dGhleSBjYW4gYmUgdXNlZCBhcyBvcHRpb24gZmxhZ3Mgd2hlbiBpbmZvcm1pbmcgdGhlCisgICAg
ICAgIFdlYktpdCBjbGllbnQgYWJvdXQgd2hpY2ggY29udHJvbCB0eXBlcyBhcmUgcHJlc2VudCBp
biB0aGUgbW9kYWwgY29udGFpbmVyLgorCiAyMDIxLTEyLTIwICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERlY291cGxlIExpbmVCb3ggYW5kIElu
bGluZURpc3BsYXk6TGluZSBjb25zdHJ1Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDdlOGJjYTZjYTEzOGUw
NzY1MzA0MTg3Y2NkMWZlNDg2YmQ4NGRiNC4uOWRlOWE2OTcxYzQ4ZGI3ODlkMWE0YTM0NWYwZTAx
NTI0ZWRkY2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMS0xMi0yMCAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgZGV0ZWN0ZWQg
bW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0NDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgbmV3IFVJIGRlbGVnYXRlIG1ldGhvZCwgYC1fd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjpkZWNpc2lvbkhhbmRsZXI6YCwgdGhh
dCBpcworICAgICAgICBpbnZva2VkIHdoZW4gYSBtb2RhbCBjb250YWluZXIgaGFzIGJlZW4gZGV0
ZWN0ZWQgYW5kIHN1cHByZXNzZWQgZHVlIHRvIGEgV2ViS2l0IGNsaWVudCBzcGVjaWZ5aW5nIHRo
ZQorICAgICAgICBgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lQcm9t
cHRgIG9wdGlvbiBpbiB3ZWJwYWdlIHByZWZlcmVuY2VzLiBUaGlzIG5ldyBkZWxlZ2F0ZSBtZXRo
b2QgaXMKKyAgICAgICAgaW52b2tlZCB3aXRoIGEgbmV3IGBfV0tNb2RhbENvbnRhaW5lckluZm9g
IG9iamVjdCwgd2hpY2ggKGZvciBub3cpIGp1c3QgZW5jYXBzdWxhdGVzIGFuIG9wdGlvbiBzZXQg
b2YKKyAgICAgICAgTW9kYWxDb250YWluZXJDb250cm9sVHlwZXMgdGhhdCBpbmRpY2F0ZXMgd2hp
Y2ggdHlwZXMgb2YgbW9kYWwgY29udGFpbmVycyBhcmUgYXZhaWxhYmxlLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFs
Q29udGFpbmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVu
Y2VzLm1tOgorICAgICAgICAoV2ViS2l0Ojptb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5
KToKKyAgICAgICAgKFdlYktpdDo6Y29yZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3kp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2
YXRlLmg6CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIHR3byB1bnVzZWQgcG9saWN5IGZs
YWdzLCBgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lBbGxvd2AgYW5k
CisgICAgICAgIGBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2Fs
bG93YC4gVGhlc2UgYXJlIG5vdyBvYnZpYXRlZCBieSB0aGUgbmV3IGRlY2lzaW9uIGhhbmRsZXIg
cmV0dXJuCisgICAgICAgIHZhbHVlcyBgX1dLTW9kYWxDb250YWluZXJEZWNpc2lvbkhpZGVBbmRB
bGxvd2AgYW5kIGBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZERpc2FsbG93YCwgcmVz
cGVjdGl2ZWx5LgorICAgICAgICBXaGlsZSB0aGlzIGxlYXZlcyB1cyB3aXRoIG9ubHkgdHdvIHBv
bGljeSBtb2RlcyAoc3VjaCB0aGF0IHRoZSBwb2xpY3kgY2FuIG5vdyBiZSB0dXJuZWQgaW50byBh
IHNpbmdsZSBCT09MCisgICAgICAgIHN3aXRjaCksIEknbSBrZWVwaW5nIHRoZSBuYW1lZCBlbnVt
IGZsYWdzIGZvciBub3csIHNpbmNlOgorCisgICAgICAgIDEuIFRoZSBleGlzdGluZyBuYW1lcyBk
byBhIGJldHRlciBqb2Igb2YgZGVzY3JpYmluZyB0aGVpciByZXNwZWN0aXZlIGJlaGF2aW9ycyB0
aGFuIGEgc2luZ2xlIEJPT0wgZmxhZyBsaWtlCisgICAgICAgIGBtb2RhbENvbnRhaW5lck9ic2Vy
dmVyU2hvdWxkUHJvbXB0YCwgb3IgYG1vZGFsQ29udGFpbmVyT2JzZXJ2ZXJFbmFibGVkYCwgYW5k
Li4uCisKKyAgICAgICAgMi4gV2UnbGwgcHJvYmFibHkgbmVlZCB0byBleHRlbmQgdGhpcyBwb2xp
Y3kgc2V0IHRvIGFkZCBhIG5ldyB2YWx1ZSBpbiB0aGUgbmVhciBmdXR1cmUsIGFueXdheXMuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF0Zm9ybVhSQ29vcmRp
bmF0b3IubW0uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5l
ckluZm8ubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXRm
b3JtWFJDb29yZGluYXRvci5tbS4KKworICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcy4K
KworICAgICAgICAoLVtfV0tNb2RhbENvbnRhaW5lckluZm8gaW5pdFdpdGhUeXBlczpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFs
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXRmb3JtWFJD
b29yZGluYXRvci5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTW9kYWxDb250YWluZXJD
b250cm9sQ2xhc3NpZmllci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxhdGZvcm1Y
UkNvb3JkaW5hdG9yLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJL
aXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6Y29yZU1vZGFs
Q29udGFpbmVyRGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorCisgICAgICAgIEFkZCBwbHVtYmlu
ZyBmb3IgdGhlIG5ldyBjaHJvbWUgY2xpZW50IGhvb2sgdGhyb3VnaCBXZWJDaHJvbWVDbGllbnQs
IFdlYlBhZ2UsIFdlYlBhZ2VQcm94eSwgYW5kIGZpbmFsbHkgdGhlIFVJCisgICAgICAgIGNsaWVu
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTW9kYWxDb250YWluZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMjEtMTItMjAgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25v
cmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgV0MgdmFyaWFudCBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6cGxhdGZvcm1MYXllcigpIHNob3VsZCBiZSByZW1vdmVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKaW5kZXggOWJkYTI3N2FhM2JkMWNkODg3MjM2ZTM1NGU3NDg2ZGI5NDg0MjRm
OC4uYTRmNzg1MjQ4YmU0MjFjNjYxNjQ3NjAxZTIxM2MyOWI2YzZhMzA5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEyLTIwICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBh
IFVJIGRlbGVnYXRlIG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3RlZCBtb2Rh
bCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQ0NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JNb2RhbENvbnRhaW5lcik6CisKIDIwMjEtMTItMTkgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGNsaWVudCBsYXllciBwbHVtYmlu
ZyBmb3IgY2xhc3NpZnlpbmcgbW9kYWwgY29udGFpbmVyIGNvbnRyb2xzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKaW5kZXggNmNmOTlmZGE0MWJmMDQxNDU0NGYwZDliZDc2MTNjMDFhMTc4MDA2
YS4uNTljYjc3MDc5ZmYzYmQzYWEyNTg2ZWZhOGNmNDk5MjQ0N2Y0YWJmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEyLTIwICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBh
IFVJIGRlbGVnYXRlIG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3RlZCBtb2Rh
bCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQ0NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorCiAyMDIxLTEyLTIwICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIE1T
VkMgcmVwb3J0cyAiQ09NUHJvcGVydHlCYWcuaCgyMzMpOiBlcnJvciBDMjM4NTogYW1iaWd1b3Vz
IGFjY2VzcyBvZiAnSVVua25vd24nIiB3aXRoIC9zdGQ6YysrMjAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGJjMDg0ZTlmNmJjOTcxYjQyMGM1NWRiNDk3MWI4YjcwZWNlN2M1YzcuLjg0YzM4NzQ5Mjk4
N2RhOWU4MjUxNGY0ZGE5YWExYjI3YjlkYmQ3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEw
OSw3ICsxMTA5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBhZ2UvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oCiAgICAgcGFnZS9NZWRpYVByb2R1
Y2VyLmgKICAgICBwYWdlL01lbW9yeVJlbGVhc2UuaAotICAgIHBhZ2UvTW9kYWxDb250YWluZXJD
b250cm9sVHlwZS5oCisgICAgcGFnZS9Nb2RhbENvbnRhaW5lclR5cGVzLmgKICAgICBwYWdlL05h
dmlnYXRvcklzTG9nZ2VkSW4uaAogICAgIHBhZ2UvUERGSW1hZ2VDYWNoaW5nUG9saWN5LmgKICAg
ICBwYWdlL1BhZ2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGZjNGU4ZGUwNTE1YTNlN2RlMDgzZmQ1NzY3ZDA4OWZhN2MyNzk0
OTQuLjc3MTEwMWZiZTUwM2MyNTBmN2QzNjE3YjVkYTYwMjBmY2EwYzgxOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1MDcs
NyArNTUwNyw3IEBACiAJCUY0OEQyQTZDMjE1NjIzQjQwMEM2NzUyQiAvKiBGb250U2hhZG93Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE2QTIx
NTYyM0I0MDBDNjc1MkIgLyogRm9udFNoYWRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0OEQyQTdFMjE1NzE4MjYwMEM2NzUyQiAvKiBGb250
QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ4RDJBNzEyMTU2REMwQTAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBQTUyMTU5NzQw
RDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0OEQyQUEzMjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQ5MzI4
ODMyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTMyODgyMjc2OTA0MUIw
MDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjQ5MzI4ODMyNzY5MDQxQjAwM0UyMEY4
IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5l
clR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRjQ5Nzg2ODgxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5Nzg2ODcxRkY0NUZB
NTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0QjAwMTg5MjZFN0YyMUYwMDZFQUFCRSAvKiBI
VE1MQXRvbVN0cmluZ0NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEIwMDE4NzI2RTdGMjFGMDA2RUFBQkUgLyogSFRNTEF0b21TdHJpbmdDYWNo
ZS5oICovOyB9OwogCQlGNEIyQTkwOTI2NTAzMEJBMDA5RTcyODYgLyogRGF0YURldGVjdG9ySGln
aGxpZ2h0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEIyQTkwNjI2NTAyQkEwMDA5RTcyODYgLyogRGF0YURldGVjdG9ySGlnaGxpZ2h0LmggKi87IH07
CkBAIC0xNzczNSw3ICsxNzczNSw3IEBACiAJCUY0OEQyQTdBMjE1NzA1MUUwMEM2NzUyQiAvKiBG
b250U2hhZG93Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGb250U2hhZG93Q29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OEQyQUEzMjE1OTc0MEQwMEM2NzUy
QiAvKiBDb2xvckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbG9yQ29jb2EuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBQTQyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2xvckNvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlGNDkzMjg4MjI3NjkwNDFCMDAzRTIwRjggLyogTW9kYWxDb250YWlu
ZXJDb250cm9sVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0OTMyODgyMjc2OTA0MUIwMDNFMjBG
OCAvKiBNb2RhbENvbnRhaW5lclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGFsQ29udGFpbmVy
VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5Nzg2ODcxRkY0NUZBNTAw
RTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJk
SXRlbUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5RTk4RTQyMURFRTZD
MTAwOUFFNTVFIC8qIEVkaXRBY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdEFjdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QjAwMTg3MjZFN0YyMUYwMDZF
QUFCRSAvKiBIVE1MQXRvbVN0cmluZ0NhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxBdG9tU3Ry
aW5nQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzOTg2LDkgKzIzOTg2
LDkgQEAKIAkJCQk1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICov
LAogCQkJCTQxM0UwMDc3MURCMEU0REUwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmNwcCAqLywK
IAkJCQk0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5oICovLAotCQkJ
CUY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgg
Ki8sCiAJCQkJQTEwRjdDNzEyNzMxMDA3MzAwOEZBOUFGIC8qIE1vZGFsQ29udGFpbmVyT2JzZXJ2
ZXIuY3BwICovLAogCQkJCUExMEY3QzcwMjczMTAwNzMwMDhGQTlBRiAvKiBNb2RhbENvbnRhaW5l
ck9ic2VydmVyLmggKi8sCisJCQkJRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29u
dGFpbmVyVHlwZXMuaCAqLywKIAkJCQk5M0VCMzU1RTA5RTM3RkQ2MDBGNDM3OTkgLyogTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cy5jcHAgKi8sCiAJCQkJOTM1QzQ3NjIwOUFDNENFNjAwQTZB
QUI0IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCAqLywKIAkJCQk2QjUwN0EyMzIz
NEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9yK0lzTG9nZ2VkSW4uaWRsICovLApAQCAtMzYxMzcs
OCArMzYxMzcsOCBAQAogCQkJCUNERjJCMDE3MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGMkIwMTkxODIwNTQwNzAwRjJC
NDI0IC8qIE1vY2tUcmFja3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MTU2MTBDMjM0QzFDQTEw
MDhGQzdBQiAvKiBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlGNDkzMjg4MzI3NjkwNDFCMDAzRTIwRjggLyogTW9kYWxDb250YWluZXJDb250
cm9sVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwRjdDNzMyNzMxMDBEMDAwOEZBOUFGIC8q
IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0OTMyODgzMjc2
OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lclR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyREM4RDM5ODI1RjJGRTk3MDBDRkNCQUIgLyogTW9kZWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxM0U3OUVBMjczQzg2QjgwMDk3RjkwNSAvKiBNb2RlbERvY3VtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzJCNDExNzI3MzJGNDFFMDBBMkQxOTEgLyogTW9kZWxQbGF5ZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCAwZTAxMmI2
OGMyNGIzMzRmOTFjNTcxMDVmNGQyNTIzZDYyYjQ2NzBhLi5jNmU4YTY3MmU3MzU2MmZkMzU5YWE3
NGM5MjE1MmY1OGEwNGZmZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aApAQCAtMTQ1LDExICsxNDUsOSBAQCBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50
OF90IHsKICNlbmRpZgogfTsKIAotZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
UG9saWN5IDogdWludDhfdCB7CitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Q
b2xpY3kgOiBib29sIHsKICAgICBEaXNhYmxlZCwKICAgICBQcm9tcHQsCi0gICAgQWxsb3csCi0g
ICAgRGlzYWxsb3csCiB9OwogCiBlbnVtIGNsYXNzIENvbG9yU2NoZW1lUHJlZmVyZW5jZSA6IHVp
bnQ4X3QgewpAQCAtODA4LDkgKzgwNiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeT4gewogICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2
YXRpb25Qb2xpY3ksCiAgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Q
b2xpY3k6OkRpc2FibGVkLAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0
aW9uUG9saWN5OjpQcm9tcHQsCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2
YXRpb25Qb2xpY3k6OkFsbG93LAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2Vy
dmF0aW9uUG9saWN5OjpEaXNhbGxvdworICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9i
c2VydmF0aW9uUG9saWN5OjpQcm9tcHQKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcAppbmRleCA1NTI1NjJlNTRiYmE1NzNiZWFiMGIyMGZhNjQwNWU5MzNj
MWI2ODYyLi43NThjYmU4MDY1NGU4ODg5N2FjZDllZDQxMTk5MGM4Njg2Y2FmM2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNjMsNyArNjMsNyBAQAogI2luY2x1
ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUu
aCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJNb2RhbENv
bnRhaW5lckNvbnRyb2xUeXBlLmgiCisjaW5jbHVkZSAiTW9kYWxDb250YWluZXJUeXBlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgpAQCAtNTk2LDYgKzU5NiwxMSBAQCB2b2lkIEVt
cHR5Q2hyb21lQ2xpZW50OjpjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0
cmluZz4mJiwgQ29tcGxldAogICAgIGNvbXBsZXRpb24oeyB9KTsKIH0KIAordm9pZCBFbXB0eUNo
cm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFs
Q29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFp
bmVyRGVjaXNpb24pPiYmIGNvbXBsZXRpb24pCit7CisgICAgY29tcGxldGlvbihNb2RhbENvbnRh
aW5lckRlY2lzaW9uOjpTaG93KTsKK30KKwogdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYWExNGM0YTFiOWE2ZDMzYWFmMGRiM2Q5
ZGEyMjY1YTljNjM0YTM4OS4uY2Q1ZjI4ZjE0NjFlOGEyZTZhZGJjMGQwMGU1OGRlZTU2ZDRkMDcz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjIxLDYgKzIyMSw3IEBA
IGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAKICAgICB2
b2lkIHJlcXVlc3RDb29raWVDb25zZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQ29va2llQ29u
c2VudERlY2lzaW9uUmVzdWx0KT4mJikgZmluYWw7CiAgICAgdm9pZCBjbGFzc2lmeU1vZGFsQ29u
dGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4mJik+JiYpIGZpbmFsOworICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29u
dHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNpb24p
PiYmKSBmaW5hbDsKIH07CiAKIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBlbXB0eURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA5MDM5
OTZhYjIzNjM1NzU2YTNiOGMxM2NhMDJhYzUxNjUzNzMzY2UwLi4zNTJlMDNmMGM0MTZiNjM4MDBl
NzE0MjllOGMyOGFlM2NkYzI2MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAg
LTE0NCw2ICsxNDQsNyBAQCBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKIGVudW0gY2xhc3MgQ29v
a2llQ29uc2VudERlY2lzaW9uUmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3MgTW9kYWxDb250
YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyRGVj
aXNpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90
OwogCiBjbGFzcyBDaHJvbWVDbGllbnQgewpAQCAtNjI3LDYgKzYyOCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21TdHJpbmcmIHNlYXJjaFN0cmluZ0Zvck1vZGFsQ29udGFpbmVy
T2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxsQXRvbSgpOyB9CiAgICAgdmlydHVhbCB2b2lk
IGNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmIHRleHRzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiYm
KT4mJikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFp
bmVyKE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJikgPSAwOworCiBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNkNWQ1MWRhMmU4OTIwZGEwM2JlYWNjOGMwMjdmYWIzNzUxYzg4NmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gY2xhc3MgTW9kYWxDb250
YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3QgewotICAgIE5ldXRyYWwsCi0gICAgUG9zaXRpdmUs
Ci0gICAgTmVnYXRpdmUsCi0gICAgT3RoZXIsCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLAotICAg
ICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZXV0cmFsLAotICAgICAg
ICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQb3NpdGl2ZSwKLSAgICAgICAg
V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmUsCi0gICAgICAgIFdl
YkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok90aGVyCi0gICAgPjsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENv
bnRhaW5lck9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJP
YnNlcnZlci5jcHAKaW5kZXggZDIwYmIxMzQwNTNmZWQ1ZmFlYTJhZWU0MGY2ZDUxYmYzYWFjY2Nh
MC4uMzAwYmY5MTk0ZTFkNWZlZDFiNzQyMjM1NmFkZTJlNzE3ZTExMzFkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCkBAIC00Miw3ICs0Miw3
IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIk1vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGUuaCIKKyNpbmNsdWRlICJNb2RhbENvbnRhaW5lclR5cGVzLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRleHQuaCIKQEAgLTMwMCw5ICszMDAsNTggQEAgdm9pZCBNb2RhbENvbnRh
aW5lck9ic2VydmVyOjpjb2xsZWN0Q2xpY2thYmxlRWxlbWVudHNUaW1lckZpcmVkKCkKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFZlY3RvcjxS
ZWY8SFRNTEVsZW1lbnQ+PiBwb3NpdGl2ZUNvbnRyb2xzOwotICAgICAgICAgICAgVmVjdG9yPFJl
ZjxIVE1MRWxlbWVudD4+IG5ldXRyYWxDb250cm9sczsKLSAgICAgICAgICAgIFZlY3RvcjxSZWY8
SFRNTEVsZW1lbnQ+PiBuZWdhdGl2ZUNvbnRyb2xzOworICAgICAgICAgICAgc3RydWN0IENsYXNz
aWZpZWRDb250cm9scyB7CisgICAgICAgICAgICAgICAgVmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1l
bnQ+PiBwb3NpdGl2ZTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8V2Vha1B0cjxIVE1MRWxlbWVu
dD4+IG5ldXRyYWw7CisgICAgICAgICAgICAgICAgVmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQ+
PiBuZWdhdGl2ZTsKKworICAgICAgICAgICAgICAgIENsYXNzaWZpZWRDb250cm9scygpID0gZGVm
YXVsdDsKKyAgICAgICAgICAgICAgICBDbGFzc2lmaWVkQ29udHJvbHMoQ2xhc3NpZmllZENvbnRy
b2xzJiYgb3RoZXIpCisgICAgICAgICAgICAgICAgICAgIDogcG9zaXRpdmUoV1RGTW92ZShvdGhl
ci5wb3NpdGl2ZSkpCisgICAgICAgICAgICAgICAgICAgICwgbmV1dHJhbChXVEZNb3ZlKG90aGVy
Lm5ldXRyYWwpKQorICAgICAgICAgICAgICAgICAgICAsIG5lZ2F0aXZlKFdURk1vdmUob3RoZXIu
bmVnYXRpdmUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBIVE1MRWxlbWVudCogY29udHJvbFRvQ2xpY2soTW9kYWxDb250YWluZXJEZWNp
c2lvbiBkZWNpc2lvbikgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgIGF1dG8gbWF0Y2hOb25OdWxsID0gWyZdKGNvbnN0IFdlYWtQdHI8SFRNTEVsZW1lbnQ+JiBl
bGVtZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gISFlbGVtZW50OworICAg
ICAgICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGVjaXNp
b24pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpT
aG93OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZElnbm9yZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIE1vZGFsQ29udGFp
bmVyRGVjaXNpb246OkhpZGVBbmRBbGxvdzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChh
dXRvIGluZGV4ID0gcG9zaXRpdmUuZmluZE1hdGNoaW5nKG1hdGNoTm9uTnVsbCk7IGluZGV4ICE9
IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3NpdGl2ZVtp
bmRleF0uZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBpbmRleCA9IG5l
dXRyYWwuZmluZE1hdGNoaW5nKG1hdGNoTm9uTnVsbCk7IGluZGV4ICE9IG5vdEZvdW5kKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXV0cmFsW2luZGV4XS5nZXQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIE1v
ZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmREaXNhbGxvdzoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChhdXRvIGluZGV4ID0gbmVnYXRpdmUuZmluZE1hdGNoaW5nKG1hdGNoTm9uTnVs
bCk7IGluZGV4ICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBuZWdhdGl2ZVtpbmRleF0uZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBPcHRpb25TZXQ8TW9kYWxD
b250YWluZXJDb250cm9sVHlwZT4gY29udHJvbFR5cGVzKCkgY29uc3QKKyAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlPiBhdmFpbGFibGVUeXBlc0lnbm9yaW5nT3RoZXI7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghcG9zaXRpdmUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxl
VHlwZXNJZ25vcmluZ090aGVyLmFkZChNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQb3NpdGl2
ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090aGVyLmFkZChNb2RhbENv
bnRhaW5lckNvbnRyb2xUeXBlOjpOZWdhdGl2ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
bmV1dHJhbC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGVUeXBl
c0lnbm9yaW5nT3RoZXIuYWRkKE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090aGVyOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIENsYXNzaWZp
ZWRDb250cm9scyBjbGFzc2lmaWVkQ29udHJvbHM7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBp
bmRleCA9IDA7IGluZGV4IDwgdHlwZXMuc2l6ZSgpOyArK2luZGV4KSB7CiAgICAgICAgICAgICAg
ICAgYXV0byBjb250cm9sID0gY29udHJvbHNbaW5kZXhdOwogICAgICAgICAgICAgICAgIGlmICgh
Y29udHJvbCkKQEAgLTMxMCw1MSArMzU5LDU3IEBAIHZvaWQgTW9kYWxDb250YWluZXJPYnNlcnZl
cjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCgpCiAKICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHR5cGVzW2luZGV4XSkgewogICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250
YWluZXJDb250cm9sVHlwZTo6UG9zaXRpdmU6Ci0gICAgICAgICAgICAgICAgICAgIHBvc2l0aXZl
Q29udHJvbHMuYXBwZW5kKCpjb250cm9sKTsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmll
ZENvbnRyb2xzLnBvc2l0aXZlLmFwcGVuZChjb250cm9sKTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpO
ZWdhdGl2ZToKLSAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVDb250cm9scy5hcHBlbmQoKmNv
bnRyb2wpOworICAgICAgICAgICAgICAgICAgICBjbGFzc2lmaWVkQ29udHJvbHMubmVnYXRpdmUu
YXBwZW5kKGNvbnRyb2wpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICBjYXNlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWw6Ci0gICAgICAgICAg
ICAgICAgICAgIG5ldXRyYWxDb250cm9scy5hcHBlbmQoKmNvbnRyb2wpOworICAgICAgICAgICAg
ICAgICAgICBjbGFzc2lmaWVkQ29udHJvbHMubmV1dHJhbC5hcHBlbmQoY29udHJvbCk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWlu
ZXJDb250cm9sVHlwZTo6T3RoZXI6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBjb250cm9sVG9DbGljazsKLSAgICAgICAgICAgIHN3aXRjaCAoZG9jdW1lbnRMb2FkZXIt
Pm1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3koKSkgewotICAgICAgICAgICAgY2FzZSBN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhYmxlZDoKLSAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6QWxsb3c6IHsKLSAgICAg
ICAgICAgICAgICBpZiAoIXBvc2l0aXZlQ29udHJvbHMuaXNFbXB0eSgpKQotICAgICAgICAgICAg
ICAgICAgICBjb250cm9sVG9DbGljayA9IHBvc2l0aXZlQ29udHJvbHNbMF0ucHRyKCk7Ci0gICAg
ICAgICAgICAgICAgZWxzZSBpZiAoIW5ldXRyYWxDb250cm9scy5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrID0gbmV1dHJhbENvbnRyb2xzWzBdLnB0cigpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSBN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzogewotICAgICAgICAgICAg
ICAgIGlmICghbmVnYXRpdmVDb250cm9scy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAg
IGNvbnRyb2xUb0NsaWNrID0gbmVnYXRpdmVDb250cm9sc1swXS5wdHIoKTsKLSAgICAgICAgICAg
ICAgICBlbHNlIGlmICghbmV1dHJhbENvbnRyb2xzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICAgICAgY29udHJvbFRvQ2xpY2sgPSBuZXV0cmFsQ29udHJvbHNbMF0ucHRyKCk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlIE1vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdDoKLSAgICAgICAgICAgICAgICAvLyBOb3Qg
c3VwcG9ydGVkIHlldC4KLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIG9ic2Vy
dmVyLT5tX2hhc0F0dGVtcHRlZFRvRnVsZmlsbFBvbGljeSA9IHRydWU7CisKKyAgICAgICAgICAg
IGF1dG8qIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgICAgICAgICAgaWYgKCFwYWdlKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjbGlja2FibGVDb250
cm9sVHlwZXMgPSBjbGFzc2lmaWVkQ29udHJvbHMuY29udHJvbFR5cGVzKCk7CisgICAgICAgICAg
ICBpZiAoY2xpY2thYmxlQ29udHJvbFR5cGVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAg
IG9ic2VydmVyLT5yZXZlYWxNb2RhbENvbnRhaW5lcigpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb2JzZXJ2ZXItPm1faGFzQXR0ZW1wdGVk
VG9GdWxmaWxsUG9saWN5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVu
dCgpLmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKGNsaWNrYWJsZUNvbnRyb2xUeXBlcywg
W3dlYWtEb2N1bWVudCwgb2JzZXJ2ZXIsIGNsYXNzaWZpZWRDb250cm9scyA9IFdURk1vdmUoY2xh
c3NpZmllZENvbnRyb2xzKV0oYXV0byBkZWNpc2lvbikgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgUmVmUHRyIGRvY3VtZW50ID0gd2Vha0RvY3VtZW50LmdldCgpOworICAgICAgICAgICAgICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgICAgIGlmIChvYnNlcnZlciAhPSBkb2N1bWVudC0+bW9kYWxDb250YWluZXJPYnNlcnZlcklm
RXhpc3RzKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgaWYg
KGNvbnRyb2xUb0NsaWNrKQotICAgICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrLT5kaXNwYXRj
aFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIFNlbmRNb3VzZVVwRG93bkV2ZW50cywgRG9Ob3RTaG93
UHJlc3NlZExvb2spOworICAgICAgICAgICAgICAgIGlmIChkZWNpc2lvbiA9PSBNb2RhbENvbnRh
aW5lckRlY2lzaW9uOjpTaG93KSB7CisgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLT5yZXZl
YWxNb2RhbENvbnRhaW5lcigpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKFJlZlB0ciBjb250cm9sVG9DbGljayA9
IGNsYXNzaWZpZWRDb250cm9scy5jb250cm9sVG9DbGljayhkZWNpc2lvbikpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRyb2xUb0NsaWNrLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIs
IFNlbmRNb3VzZVVwRG93bkV2ZW50cywgRG9Ob3RTaG93UHJlc3NlZExvb2spOworICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCit2b2lkIE1vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXI6OnJldmVhbE1vZGFsQ29udGFpbmVyKCkKK3sKKyAgICBpZiAoYXV0byBjb250YWluZXIg
PSBzdGQ6OmV4Y2hhbmdlKG1fY29udGFpbmVyLCB7IH0pKQorICAgICAgICBjb250YWluZXItPmlu
dmFsaWRhdGVTdHlsZSgpOworfQorCiBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1l
bnQ+PiwgVmVjdG9yPFN0cmluZz4+IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlj
a2FibGVFbGVtZW50cygpCiB7CiAgICAgUmVmIGNvbnRhaW5lciA9ICptX2NvbnRhaW5lcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmgKaW5kZXggZGRkN2I4
Zjc1MTdkMDg3YmIwODRmNWYxYzZhZTBiZWVjN2I1YmE5Zi4uYTczNTZmZWYyZmM1ZDExYmQ4MDQw
YmYyOWFhOThjYTZjNTI0MWU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2Rh
bENvbnRhaW5lck9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRh
aW5lck9ic2VydmVyLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2
b2lkIHNjaGVkdWxlQ2xpY2thYmxlRWxlbWVudENvbGxlY3Rpb24oKTsKICAgICB2b2lkIGNvbGxl
Y3RDbGlja2FibGVFbGVtZW50c1RpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJldmVhbE1vZGFsQ29u
dGFpbmVyKCk7CiAKICAgICBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQ+Piwg
VmVjdG9yPFN0cmluZz4+IGNvbGxlY3RDbGlja2FibGVFbGVtZW50cygpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTW9kYWxDb250YWluZXJUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZTU0ZmQ3NjE3MDI2
NjU1ZDEwNTQzZGJkMTliNTM5OGVjMzg3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaApAQCAtMCwwICsxLDcwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJDb250cm9sVHlwZSA6
IHVpbnQ4X3QgeworICAgIE5ldXRyYWwgPSAxIDw8IDAsCisgICAgUG9zaXRpdmUgPSAxIDw8IDEs
CisgICAgTmVnYXRpdmUgPSAxIDw8IDIsCisgICAgT3RoZXIgPSAxIDw8IDMsCit9OworCitlbnVt
IGNsYXNzIE1vZGFsQ29udGFpbmVyRGVjaXNpb24gOiB1aW50OF90IHsKKyAgICBTaG93LAorICAg
IEhpZGVBbmRJZ25vcmUsCisgICAgSGlkZUFuZEFsbG93LAorICAgIEhpZGVBbmREaXNhbGxvdywK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyQ29udHJvbFR5cGUsCisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGU6Ok5ldXRyYWwsCisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29u
dHJvbFR5cGU6OlBvc2l0aXZlLAorICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlOjpOZWdhdGl2ZSwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9s
VHlwZTo6T3RoZXIKKyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbiwKKyAgICAg
ICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdywKKyAgICAgICAgV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZElnbm9yZSwKKyAgICAgICAgV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFsbG93LAorICAgICAgICBXZWJDb3Jl
OjpNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpIaWRlQW5kRGlzYWxsb3cKKyAgICA+OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQppbmRleCBjZTVmZWEyYjJlYTE2N2U3M2EyMzEwOTIyYTA2MThmMmNkMTc5MTU0Li42Y2I3NTc2
OWQ0ZmQ0YzBhM2YwYWIwYmNlMmYxYjc4NGMwMWU0NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTgwMiw2ICs4MDIsOCBAQCBkZWYgaGVhZGVyc19mb3Jf
dHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzog
Wyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8
V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAorICAgICAgICAnV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZSc6IFsnPFdlYkNvcmUvTW9kYWxDb250YWluZXJU
eXBlcy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbic6IFsn
PFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91
c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6Ok1vdmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3Jl
L05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2
NWQ5MTgxYmEwYzllMTFkYzhiNmNmNGEwNzEyY2MyNTIzYzJmZWE1Li4xMWYwYzI0MDVhYzk0NzRi
ZThmOGU4MDVmZWViYzhmMWJiNjk2MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yODcs
NiArMjg3LDcgQEAgVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0K
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0xpbmtJY29uUGFyYW1ldGVycy5tbQorVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRh
aW5lckluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250
cm9sbGVyLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8ubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggN2I2NDQwY2ZiMzdk
YWUzNWI2MzljY2VkNGYxMjE0ODczMDZiMTQ2OS4uOTY4NTA1NDkyOWNmZGMzNWU5OGExNWYwNTRm
NzgzOWUxZGY0YWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0Nvb2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVzLmg+
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBQTEFURk9STShDT0NP
QSkKQEAgLTE0Niw2ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgU2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiByZXF1ZXN0aW5nRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNv
b2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0OjpOb3RTdXBw
b3J0ZWQpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVy
KE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJiBjb21wbGV0
aW9uKSB7IGNvbXBsZXRpb24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7
IH0KIAogICAgIC8vIFByaW50aW5nLgogICAgIHZpcnR1YWwgZmxvYXQgaGVhZGVySGVpZ2h0KFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JikgeyByZXR1cm4gMDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgKaW5kZXggMGJmMjBkOTc0M2M0OTlkYTMyMjJhN2Q0NTRkNGFmZmM0MjBi
YjExYS4uOWM0MzIxM2I2NDk4ZTZlYTkzZDJkNDdkMzg5NzhkODEwMGQzZGMyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oCkBAIC00Miw2ICs0Miw3IEBACiBAY2xhc3MgX1dLSW5zcGVjdG9yOwogQGNsYXNzIF9X
S0luc3BlY3RvckNvbmZpZ3VyYXRpb247CiBAY2xhc3MgX1dLSW5zcGVjdG9yRGVidWdnYWJsZUlu
Zm87CitAY2xhc3MgX1dLTW9kYWxDb250YWluZXJJbmZvOwogCiAjaWYgVEFSR0VUX09TX0lPUwog
CkBAIC0xMDMsNiArMTA0LDEzIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tY
UlNlc3Npb25GZWF0dXJlRmxhZ3MpIHsKICAgICBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZl
cmVuY2VTcGFjZVR5cGVVbmJvdW5kZWQgPSAxIDw8IDQsCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKK3R5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb24pIHsKKyAgICBfV0tNb2RhbENvbnRhaW5l
ckRlY2lzaW9uU2hvdywKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZElnbm9y
ZSwKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZEFsbG93LAorICAgIF9XS01v
ZGFsQ29udGFpbmVyRGVjaXNpb25IaWRlQW5kRGlzYWxsb3csCit9IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBwcm90b2NvbCBXS1VJRGVs
ZWdhdGVQcml2YXRlIDxXS1VJRGVsZWdhdGU+CiAKICNpZmRlZiBGT1VOREFUSU9OX0hBU19ESVJF
Q1RJT05BTF9HRU9NRVRSWQpAQCAtMTgxLDYgKzE4OSw4IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7
CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdENvb2tpZUNv
bnNlbnRXaXRoTW9yZUluZm9IYW5kbGVyOih2b2lkICheKSh2b2lkKSltb3JlSW5mb0hhbmRsZXIg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5l
cjooX1dLTW9kYWxDb250YWluZXJJbmZvICopY29udGFpbmVySW5mbyBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAjaWYg
VEFSR0VUX09TX0lQSE9ORQogCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNl
cy5tbQppbmRleCA3YTYxYThiNDQ3Zjk1ZDI5MjU3YmQ0NTZjOTViMDkyNWYwNjMyMGZlLi4zNDg0
MTYxNWQ2YjkyZGQ5MDE0NTM3ZDdlOTJiNWFhY2M2MzYwNThlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1t
CkBAIC0xMTEsMTAgKzExMSw2IEBAIHN0YXRpYyBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNl
cnZhdGlvblBvbGljeSBtb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5CiAgICAgICAgIHJl
dHVybiBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2FibGVkOwog
ICAgIGNhc2UgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6UHJvbXB0
OgogICAgICAgICByZXR1cm4gX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xp
Y3lQcm9tcHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9s
aWN5OjpBbGxvdzoKLSAgICAgICAgcmV0dXJuIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2Vy
dmF0aW9uUG9saWN5QWxsb3c7Ci0gICAgY2FzZSBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2Vy
dmF0aW9uUG9saWN5OjpEaXNhbGxvdzoKLSAgICAgICAgcmV0dXJuIF9XS1dlYnNpdGVNb2RhbENv
bnRhaW5lck9ic2VydmF0aW9uUG9saWN5RGlzYWxsb3c7CiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIHJldHVybiBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlv
blBvbGljeURpc2FibGVkOwpAQCAtMTI3LDEwICsxMjMsNiBAQCBzdGF0aWMgV2ViQ29yZTo6TW9k
YWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSBjb3JlTW9kYWxDb250YWluZXJPYnNlcnZhdGlv
blBvbAogICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBv
bGljeTo6RGlzYWJsZWQ7CiAgICAgY2FzZSBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZh
dGlvblBvbGljeVByb21wdDoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
T2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdDsKLSAgICBjYXNlIF9XS1dlYnNpdGVNb2RhbENvbnRh
aW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3c6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpNb2Rh
bENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpBbGxvdzsKLSAgICBjYXNlIF9XS1dlYnNpdGVN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5RGlzYWxsb3c6Ci0gICAgICAgIHJldHVybiBX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzsKICAgICB9
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OkRpc2FibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJp
dmF0ZS5oCmluZGV4IGU4YmI0ZWRlMjVkNTE2MjA2N2Y4MGFiZDZkY2VjNGFlMjdiZDBhYzQuLmZl
ZDAzODZkMTgxMjJmMzUzMTI4MDMzY2Y5NjU1Mzg4YmE3MTYwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVy
ZW5jZXNQcml2YXRlLmgKQEAgLTY1LDggKzY1LDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUlu
dGVnZXIsIF9XS1dlYnNpdGVNb3VzZUV2ZW50UG9saWN5KSB7CiB0eXBlZGVmIE5TX09QVElPTlMo
TlNVSW50ZWdlciwgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3kpIHsK
ICAgICBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2FibGVkLAog
ICAgIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5UHJvbXB0LAotICAg
IF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3csCi0gICAgX1dL
V2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhbGxvdywKIH0gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gQWxs
b3cgb3ZlcnJpZGluZyB0aGUgc3lzdGVtIGNvbG9yLXNjaGVtZSB3aXRoIGEgcGVyLXdlYnNpdGUg
cHJlZmVyZW5jZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tNb2RhbENvbnRhaW5lckluZm8uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmU1MzY1ZGU5MTU2ZDhk
ZjRlOTkxMTc4Nzc5NDAxMDU3MjNiNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5oCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNp
bXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKwordHlwZWRlZiBOU19PUFRJT05TKE5TVUlu
dGVnZXIsIF9XS01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVzKSB7CisgICAgX1dLTW9kYWxDb250
YWluZXJDb250cm9sVHlwZU5ldXRyYWwgPSAxIDw8IDAsCisgICAgX1dLTW9kYWxDb250YWluZXJD
b250cm9sVHlwZVBvc2l0aXZlID0gMSA8PCAxLAorICAgIF9XS01vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGVOZWdhdGl2ZSA9IDEgPDwgMiwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitAaW50ZXJmYWNlIF9XS01vZGFsQ29udGFpbmVySW5m
byA6IE5TT2JqZWN0CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTW9kYWxD
b250YWluZXJDb250cm9sVHlwZXMgYXZhaWxhYmxlVHlwZXM7CisKK0BlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJ
bmZvLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYyODRjMWViNjIxYzhiN2ExNTk2MWU0ZTkxYTQ4NGI3NWRjOTcx
NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLTW9kYWxDb250YWluZXJJbmZvLm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIl9XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFs
LmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgorCitAaW1wbGVt
ZW50YXRpb24gX1dLTW9kYWxDb250YWluZXJJbmZvCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFR5cGVzOihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4pdHlw
ZXMKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIGlmICh0eXBlcy5jb250YWlucyhXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlOjpQb3NpdGl2ZSkpCisgICAgICAgIF9hdmFpbGFibGVUeXBlcyB8PSBfV0tNb2RhbENv
bnRhaW5lckNvbnRyb2xUeXBlUG9zaXRpdmU7CisKKyAgICBpZiAodHlwZXMuY29udGFpbnMoV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmUpKQorICAgICAgICBfYXZh
aWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZU5lZ2F0aXZlOworCisg
ICAgaWYgKHR5cGVzLmNvbnRhaW5zKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6
Ok5ldXRyYWwpKQorICAgICAgICBfYXZhaWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxDb250YWluZXJD
b250cm9sVHlwZU5ldXRyYWw7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVy
SW5mb0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9k
YWxDb250YWluZXJJbmZvSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjEyYzliOTk3YzdkMjA3YTAw
ZWE3NmNhMGZlMDQ4MDViNTEyNTRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmgKQEAgLTAs
MCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJfV0tNb2Rh
bENvbnRhaW5lckluZm8uaCIKKyNpbXBvcnQgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDogdWludDhf
dDsKK30KKworQGludGVyZmFjZSBfV0tNb2RhbENvbnRhaW5lckluZm8gKFdlYktpdEludGVybmFs
KQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlczooT3B0aW9uU2V0PFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+KXR5cGVzOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kYWxDb250YWluZXJDb250cm9s
Q2xhc3NpZmllci5tbQppbmRleCAyMjljMzdiNjQ4NTUyNjhjYzI1MjgzYjIwNmNkODkyN2VkMDRi
YzIxLi5jYWJiZTA1MzI5Zjc3MWFiMDQ4OWZlNTlmOThmMDhkOGY1N2YxZDRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFz
c2lmaWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGFsQ29udGFp
bmVyQ29udHJvbENsYXNzaWZpZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllci5oIgogCi0jaW1w
b3J0IDxXZWJDb3JlL01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0NvcmVNTFNvZnRM
aW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvTmF0dXJhbExhbmd1YWdlU29mdExpbmsuaD4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGQ2MDc0ZGMz
MzZjOWJmOTRkMWY4YTNjNzYyOGVhZTVmOGY1Y2ZjM2QuLjlhMDMzZGI1ZTcxODRmMjMwNTRmOGMy
ZGFjZDRiZTA2MzBhNzliYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGhhbmRs
ZUF1dG9wbGF5RXZlbnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0
aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogICAgICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxs
b3dlZCk+JiYpIGZpbmFsOwogICAgICAgICB2b2lkIHJlcXVlc3RDb29raWVDb25zZW50KENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0KT4m
JikgZmluYWw7CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0
aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKSBmaW5hbDsKIAog
I2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgdm9pZCBzaG93UGFnZShXZWJQYWdlUHJveHkqKSBm
aW5hbDsKQEAgLTI3NCw2ICsyNzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIGJvb2wg
d2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNp
c2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Q29va2llQ29uc2Vu
dFdpdGhNb3JlSW5mb0hhbmRsZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdl
YlZpZXdEZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lckRlY2lzaW9uSGFuZGxlciA6IDE7CiAg
ICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGUzNzNmZDE2ZWI1MzkyMzEwYzE5MDE4ZmQ1ZTY1MWQy
ZmUwM2NjZTYuLmRkZmM2N2Q2OTU3MzE5MzFlY2E0ZWIzOTkyNmZiNWI2ZTg3NGE1YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNTcsNiArNTcs
NyBAQAogI2ltcG9ydCAiX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tJ
bnNwZWN0b3JDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3Rvcklu
dGVybmFsLmgiCisjaW1wb3J0ICJfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oIgogI2lt
cG9ydCAiX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgiCiAjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZDYXB0dXJlRGV2aWNlLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRp
YUZvcm1hdC5oPgpAQCAtMTk5LDYgKzIwMCw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdh
dGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdp
bkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46
ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0
Q29va2llQ29uc2VudFdpdGhNb3JlSW5mb0hhbmRsZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Q29va2llQ29u
c2VudFdpdGhNb3JlSW5mb0hhbmRsZXI6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lckRlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRl
Y2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyOmRlY2lzaW9uSGFuZGxlcjopXTsKIH0KIAogI2lm
IEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtNjY1LDYgKzY2Nyw0NCBAQCB2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpyZXF1ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OgogICAgIH0pLmdldCgpXTsKIH0KIAorc3RhdGljIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyRGVjaXNpb24gY29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24oX1dLTW9kYWxDb250YWlu
ZXJEZWNpc2lvbiBkZWNpc2lvbikKK3sKKyAgICBzd2l0Y2ggKGRlY2lzaW9uKSB7CisgICAgY2Fz
ZSBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uU2hvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3c7CisgICAgY2FzZSBfV0tNb2RhbENvbnRhaW5l
ckRlY2lzaW9uSGlkZUFuZElnbm9yZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyRGVjaXNpb246OkhpZGVBbmRJZ25vcmU7CisgICAgY2FzZSBfV0tNb2RhbENvbnRhaW5l
ckRlY2lzaW9uSGlkZUFuZEFsbG93OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250
YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFsbG93OworICAgIGNhc2UgX1dLTW9kYWxDb250YWluZXJE
ZWNpc2lvbkhpZGVBbmREaXNhbGxvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyRGVjaXNpb246OkhpZGVBbmREaXNhbGxvdzsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3c7Cit9CisKK3ZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3Jl
OjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiBjb250cm9sVHlwZXMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxldGlvbikK
K3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24oV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7CisKKyAgICBpZiAoIW1fdWlEZWxl
Z2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck1vZGFsQ29udGFp
bmVyRGVjaXNpb25IYW5kbGVyKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbihXZWJDb3JlOjpN
b2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3Vp
RGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7
CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JNb2Rh
bENvbnRhaW5lcjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgYXV0byBpbmZvID0gYWRvcHROUyhb
W19XS01vZGFsQ29udGFpbmVySW5mbyBhbGxvY10gaW5pdFdpdGhUeXBlczpjb250cm9sVHlwZXNd
KTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3Vp
RGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRh
aW5lcjppbmZvLmdldCgpIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24g
PSBXVEZNb3ZlKGNvbXBsZXRpb24pLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKF9XS01v
ZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgICAgICBpZiAoY2hl
Y2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAg
ICAgIGNvbXBsZXRpb24oY29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24oZGVjaXNpb24pKTsKKyAg
ICB9KS5nZXQoKV07Cit9CisKICNpZiBQTEFURk9STShNQUMpCiBib29sIFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpjYW5SdW5Nb2RhbCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCA1ZmY2MGU3YTRiNzljYmU4YjhjOWE0M2I5YTQwNzI5MWZjZjJl
ZDM0Li42ZmEwNzhkNGNlOTVhNmYxMGMxYjRiZWI3Yzg5NzVmYjJhZmU5ZDVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJl
Z2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01vZGFsQ29udGFpbmVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZvcm1hbmNl
TG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGVybWlzc2lvblN0YXRlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50Lmg+CkBAIC0xMTA1Nyw2ICsxMTA1NywxMSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdENvb2tpZUNvbnNlbnQoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChDb29raWVDb25zZW50RGVjaQogICAgIG1fdWlDbGllbnQtPnJlcXVlc3RDb29raWVD
b25zZW50KFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGU+IHR5cGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNp
b24pPiYmIGNvbXBsZXRpb24pCit7CisgICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTW9k
YWxDb250YWluZXIodHlwZXMsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI3VuZGVmIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3OTk5NzBkZWQ2YTQyMjZiNmEzZjhkM2Ez
ZDM3OTg1Y2Y0YTAyYTMxLi5jNTIwZjNiMDVkOWJhZjBhNzNhYmVlOWM5YmI3ZmRlMzM3ZWVjMzZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjc1LDYgKzI3NSw3
IEBAIGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50IDogYm9vbDsKIGVudW0gY2xhc3MgSGln
aGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIEhpZ2hsaWdo
dFZpc2liaWxpdHkgOiBib29sOwogZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
IDogdWludDhfdDsKK2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJEZWNpc2lvbiA6IHVpbnQ4X3Q7
CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBOb3Rp
ZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xp
Y3kgOiB1aW50OF90OwpAQCAtMjAzOCw2ICsyMDM5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBy
ZXF1ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tp
ZUNvbnNlbnREZWNpc2lvblJlc3VsdCk+JiYpOwogICAgIHZvaWQgY2xhc3NpZnlNb2RhbENvbnRh
aW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYgdGV4dHMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYmKTsKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJik7CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVBy
b3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJh
dGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggMmYyNjEzOTU1YjBhZGJmNzI2ZmE5Nzg4ZDFiNzQwZjYzODY0YzRiYS4u
OTQyYzkzZGQyZjkyNjkyNWRjODQzZmRhNzk2ODQ0ZDQ4NzEyOTAwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjE2LDQgKzYx
Niw1IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBSZXF1ZXN0Q29va2llQ29u
c2VudCgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVz
dWx0IHJlc3VsdCkgQXN5bmMKICAgICBDbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVj
dG9yPFN0cmluZz4gdGV4dHMpIC0+IChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250
cm9sVHlwZT4gdHlwZXMpIEFzeW5jCisgICAgRGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIo
T3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzKSAtPiAo
ZW51bTp1aW50OF90IFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNpb24pIEFz
eW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA5OGQ5NDNlZjdkMTZkNWYxYjNmODI3MDIwM2JlNGFhMjFhMTQ0ZDU4Li43ZWRkYmIw
ZjkzZjg3Y2MwNzg4NTQ5ZmEwZGMzMTNhODA4NjE0N2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTksNiArMjAxOSw4IEBACiAJ
CUY0RDk4NUM4MjY5MEZDMTIwMEJCQ0NCRSAvKiBfV0tUYXBIYW5kbGluZ1Jlc3VsdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREOTg1QzcyNjkwRkJF
RjAwQkJDQ0JFIC8qIF9XS1RhcEhhbmRsaW5nUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjREOTg1Q0IyNjkxMDk2NjAwQkJDQ0JFIC8q
IFRhcEhhbmRsaW5nUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEUyQjQ0QTI2OEZERTFBMDAzMjdBQkMgLyogVGFwSGFuZGxpbmdSZXN1bHQu
aCAqLzsgfTsKIAkJRjREQjU0RTYyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1By
ZXNzR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQ
cmVzc0dlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CisJCUY0REJDMEJFMjc2QUE2QTcwMDAxRDE2
OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0REJDMEJDMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENv
bnRhaW5lckluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlGNERCQzBDMTI3NkFBNkNBMDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZv
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0REJDMEMwMjc2QUE2Q0EwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5h
bC5oICovOyB9OwogCQlGNEVCNEFGRDI2OUNEN0YzMDBEMjk3QUUgLyogT1NTdGF0ZVNQSS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQjRBRkMyNjlD
RDIzNjAwRDI5N0FFIC8qIE9TU3RhdGVTUEkuaCAqLzsgfTsKIAkJRjRFQzk0RTMyMzU2Q0M1NzAw
MEJCNjE0IC8qIEFwcGxpY2F0aW9uU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RDA0RTI4MjFGN0M3M0QwMDc2NzQxRCAvKiBBcHBs
aWNhdGlvblNlcnZpY2VzU1BJLmggKi87IH07CiAJCUY0RkUwQTNCMjQ2MzJCNjAwMDI2MzFFMSAv
KiBDb2NvYUNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEZFMEEzQTI0NjMyQjEwMDAyNjMxRTEgLyogQ29jb2FDb2xvci5oICovOyB9OwpAQCAt
NjQ0NSw2ICs2NDQ3LDkgQEAKIAkJRjREOTg1QzcyNjkwRkJFRjAwQkJDQ0JFIC8qIF9XS1RhcEhh
bmRsaW5nUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RhcEhhbmRsaW5nUmVzdWx0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBX
S0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaDsg
cGF0aCA9IGlvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0REI1NEU1MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hp
Z2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
ci5tbTsgcGF0aCA9IGlvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNERCQzBCQzI3NkFBNkE3MDAwMUQxNjkg
LyogX1dLTW9kYWxDb250YWluZXJJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS01vZGFsQ29udGFpbmVySW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNERCQzBCRDI3NkFBNkE3MDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLTW9kYWxDb250YWluZXJJ
bmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNERCQzBDMDI3NkFBNkNBMDAw
MUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
X1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjRFMkI0NEEyNjhGREUxQTAwMzI3QUJDIC8qIFRhcEhhbmRsaW5nUmVzdWx0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFRhcEhhbmRsaW5nUmVzdWx0Lmg7IHBhdGggPSBpb3MvVGFwSGFuZGxpbmdS
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQjRBRkMyNjlDRDIzNjAw
RDI5N0FFIC8qIE9TU3RhdGVTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NTdGF0ZVNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY1OUFEMzIwNjVBNUM5MDA2Q0FBNDYgLyogV0tT
ZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0g
aW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTg2ODcsNiArODY5Miw5IEBACiAJCQkJNTFDMEM5NzkxRERENzg1
NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovLAogCQkJCTUxQzBDOTdBMURE
RDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMubW0gKi8sCiAJCQkJNTFDMEM5
N0IxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVyc0ludGVybmFsLmggKi8s
CisJCQkJRjREQkMwQkMyNzZBQTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5o
ICovLAorCQkJCUY0REJDMEJEMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lcklu
Zm8ubW0gKi8sCisJCQkJRjREQkMwQzAyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFp
bmVySW5mb0ludGVybmFsLmggKi8sCiAJCQkJOTMyMzYxMUQxQjAxNURBODAwRkE5MjMyIC8qIF9X
S092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oICovLAogCQkJCTFBNDNFODI4MTg4RjNDREMwMDlFNEQz
MCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkxQTQzRTgyNzE4OEYz
Q0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovLApAQCAtMTI2
NDQsNiArMTI2NTIsOCBAQAogCQkJCTMxQjM2Mjk3MjE0MUVCRDkwMDdCRkE1MyAvKiBfV0tJbnRl
cm5hbERlYnVnRmVhdHVyZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc5MEE5RDFB
RDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEw
RjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjREQkMwQkUyNzZBQTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVy
SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjREQkMwQzEyNzZBQTZDQTAwMDFEMTY5IC8qIF9X
S01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTE4QTlG
MzE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVDMEYwQTcyMDAwNjU0RDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0cmFzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzIzNjExRTFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3Zlcmxh
eVNjcm9sbGJhclN0eWxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggYTI2ZmFkMGRiMDBmNTdhMmFjN2E3MGEzNDRiYWIyOGMyOGI4NDkxZC4uYzdjZjU4NzVjOTQz
Yjc5MTkyYWViZDI4NjIzYjJiMWJjNzQ3ZGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTE1NzMsNiArMTU3MywxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xhc3NpZnlNb2RhbENv
bnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYgc3RyaW5ncywgQwogICAgIG1fcGFnZS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xhc3NpZnlNb2RhbENv
bnRhaW5lckNvbnRyb2xzKFdURk1vdmUoc3RyaW5ncykpLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsK
IH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVy
KE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKQoreworICAg
IG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRl
UG9saWN5Rm9yTW9kYWxDb250YWluZXIodHlwZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKK30K
KwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25z
L1dlYkNocm9tZUNsaWVudEFkZGl0aW9ucy5jcHA+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDlmYTgxYzg3ZTE5MzlkMmExOTc0YzYwNDg3NDU3MTI2YTgxZTU5NGIuLmRhNWFjZDEzOTVj
YzkyNDA4ZmZkY2MyYTAyYjgzMTEyODY4Zjk2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQ2
OCw2ICs0NjgsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjbGFzc2lmeU1vZGFsQ29udGFpbmVy
Q29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8
V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4mJik+JiYpIGZpbmFsOwogCisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9k
YWxDb250YWluZXJDb250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
TW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYpIGZpbmFsOworCiAgICAgY29uc3QgQXRvbVN0cmlu
ZyYgc2VhcmNoU3RyaW5nRm9yTW9kYWxDb250YWluZXJPYnNlcnZlcigpIGNvbnN0IGZpbmFsOwog
CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJh
ciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDI2Y2VkYmFjNGY5ZjFhYjFmZTVlYzgy
YjNhODIzMWQyMzVkYzEzMzcuLjgyMjM3OGY0MDYzZjBiYWYzMDQ4Y2QzMDBjYTY0MjIyODNkZTgw
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNjEsNiArMjYxLDggQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgY2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGU+JiYpPiYmKSBmaW5hbDsKIAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250
YWluZXIoT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKSBm
aW5hbDsKKwogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIG1f
bW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KaW5kZXggYjMwNjQzMThkMGMwYmI3YTRjNDUyMTE2MTYxZWZkN2NmMDdiYmZl
Ny4uMzYzNGY3YTYwMjE0NjE5ZWNmZWFmMGFlZDllYmZjZTcyMTBmMWExYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQpAQCAtNzgsNyArNzgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Nb2RhbENvbnRhaW5lclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05hdmlnYXRpb25B
Y3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFnZS5oPgpAQCAtMTE3OCwzICsxMTc4LDggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0
aW8KIHsKICAgICBjb21wbGV0aW9uKHsgfSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250
cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lvbik+
JiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKE1vZGFsQ29udGFpbmVyRGVjaXNpb246
OlNob3cpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYmM3ZmFlYTdmYzU0NGZiMjViYzQ5
Y2RkNWY2MmExMmFjMDcwZmFkYS4uMDk0ZjY1MjEwMDU3NzVkZDQ2YzczZDdlNmIzOTY3MDcwMTFk
OGFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9JY29uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbFdpbmRvd3NDb250ZXh0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENv
bnRhaW5lclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uQWN0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgpAQCAtODg3LDMgKzg4Nyw4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGFzc2lmeU1v
ZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiwgQ29tcGxldGlvCiB7CiAgICAg
Y29tcGxldGlvbih7IH0pOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmIGNvbXBsZXRp
b24pCit7CisgICAgY29tcGxldGlvbihNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KTsKK30K
</data>
<flag name="commit-queue"
          id="473367"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447678</attachid>
            <date>2021-12-20 20:20:30 -0800</date>
            <delta_ts>2021-12-21 08:46:34 -0800</delta_ts>
            <desc>Fix Windows build</desc>
            <filename>bug-234440-20211220202030.patch</filename>
            <type>text/plain</type>
            <size>64179</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA4YjE0NWNjMjZkYjk5
NjQ3N2M3MzI0YTA4NTUyM2YxMzFlMWJiNS4uMzBlNGIxYmZlZDU5NTU3NTgyMWM5NDc4ZjRmZTVk
NjU3NDE5NmM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBhIFVJIGRlbGVnYXRlIG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3Rl
ZCBtb2RhbCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ0NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCB0byBNb2RhbENvbnRh
aW5lclR5cGVzLmgsIGFuZCBhZGQgYSBuZXcgZW51bSBmbGFnIHRvIHJlcHJlc2VudCByZXR1cm4g
dmFsdWVzIGluCisgICAgICAgIHRoZSBuZXcgVUkgZGVsZWdhdGUgZGVjaXNpb24gaGFuZGxlci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5oOgorCisg
ICAgICAgIEFkZGl0aW9uYWxseSByZW1vdmUgdGhlIHVudXNlZCBBbGxvdyBhbmQgRGlzYWxsb3cg
dmFsdWVzIG9mIE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3ksIG5vdyB0aGF0IHdlIHdp
bGwKKyAgICAgICAgYWx3YXlzIChlZmZlY3RpdmVseSkgInByb21wdCIgd2hlbiBkZXRlY3Rpbmcg
YSBtb2RhbCBjb250YWluZXIgYnkgY2FsbGluZyBpbnRvIHRoZSBjbGllbnQgbGF5ZXIgd2l0aCB0
aGUgbmV3CisgICAgICAgIGRlbGVnYXRlIG1ldGhvZC4KKworICAgICAgICAqIGxvYWRlci9FbXB0
eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmRlY2lk
ZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKworICAgICAgICBBZGQgdGhlIG5l
dyBhc3luYyBjaHJvbWUgY2xpZW50IGhvb2ssIGBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5l
cigpYC4KKworICAgICAgICAqIHBhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpjb2xsZWN0Q2xpY2thYmxlRWxl
bWVudHNUaW1lckZpcmVkKToKKworICAgICAgICBDYWxsIGludG8gdGhlIGNocm9tZSBjbGllbnQg
dG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgdGhlIG9ic2VydmVkIG1vZGFsIGNvbnRhaW5lci4KKwor
ICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6cmV2ZWFsTW9kYWxDb250
YWluZXI6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0byByZXNldCB0aGUgY3VycmVu
dCBgbV9jb250YWluZXJgIGFuZCBpbnZhbGlkYXRlIGl0cyBzdHlsZSAoc3VjaCB0aGF0IGl0IHdp
bGwgYmUgZGlzcGxheWVkCisgICAgICAgIGFmdGVyIHRoZSBuZXh0IHN0eWxlIHVwZGF0ZSkuCisK
KyAgICAgICAgKiBwYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oLgorCisgICAgICAgIEFs
c28sIHR3ZWFrIHRoZSBgTW9kYWxDb250YWluZXJDb250cm9sVHlwZWAgdmFsdWVzIHNvIHRoYXQg
dGhleSBjYW4gYmUgdXNlZCBhcyBvcHRpb24gZmxhZ3Mgd2hlbiBpbmZvcm1pbmcgdGhlCisgICAg
ICAgIFdlYktpdCBjbGllbnQgYWJvdXQgd2hpY2ggY29udHJvbCB0eXBlcyBhcmUgcHJlc2VudCBp
biB0aGUgbW9kYWwgY29udGFpbmVyLgorCiAyMDIxLTEyLTIwICBBbGV4ZXkgU2h2YXlrYSAgPGFz
aHZheWthQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBjb252ZXJ0VmFyaWFkaWNBcmd1
bWVudHMoKSBzaG91bGQgcmV0dXJuIGEgRml4ZWRWZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzljMDc5YmYw
MjFjOTlmOTU5NTI2ZDRjMDBkN2Y2MWVmYjE4MDkyNy4uN2U2NWIxZDgyZjM3MWRmODRjNGJkMzY2
ODFlZjJhYmE2Mzc0MDRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMS0xMi0yMCAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgZGV0
ZWN0ZWQgbW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0NDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgbmV3IFVJIGRlbGVnYXRlIG1ldGhvZCwg
YC1fd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjpkZWNpc2lvbkhhbmRsZXI6
YCwgdGhhdCBpcworICAgICAgICBpbnZva2VkIHdoZW4gYSBtb2RhbCBjb250YWluZXIgaGFzIGJl
ZW4gZGV0ZWN0ZWQgYW5kIHN1cHByZXNzZWQgZHVlIHRvIGEgV2ViS2l0IGNsaWVudCBzcGVjaWZ5
aW5nIHRoZQorICAgICAgICBgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xp
Y3lQcm9tcHRgIG9wdGlvbiBpbiB3ZWJwYWdlIHByZWZlcmVuY2VzLiBUaGlzIG5ldyBkZWxlZ2F0
ZSBtZXRob2QgaXMKKyAgICAgICAgaW52b2tlZCB3aXRoIGEgbmV3IGBfV0tNb2RhbENvbnRhaW5l
ckluZm9gIG9iamVjdCwgd2hpY2ggKGZvciBub3cpIGp1c3QgZW5jYXBzdWxhdGVzIGFuIG9wdGlv
biBzZXQgb2YKKyAgICAgICAgTW9kYWxDb250YWluZXJDb250cm9sVHlwZXMgdGhhdCBpbmRpY2F0
ZXMgd2hpY2ggdHlwZXMgb2YgbW9kYWwgY29udGFpbmVycyBhcmUgYXZhaWxhYmxlLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90
eXBlKToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck1vZGFsQ29udGFpbmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVBy
ZWZlcmVuY2VzLm1tOgorICAgICAgICAoV2ViS2l0Ojptb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6Y29yZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Q
b2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5j
ZXNQcml2YXRlLmg6CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIHR3byB1bnVzZWQgcG9s
aWN5IGZsYWdzLCBgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lBbGxv
d2AgYW5kCisgICAgICAgIGBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eURpc2FsbG93YC4gVGhlc2UgYXJlIG5vdyBvYnZpYXRlZCBieSB0aGUgbmV3IGRlY2lzaW9uIGhh
bmRsZXIgcmV0dXJuCisgICAgICAgIHZhbHVlcyBgX1dLTW9kYWxDb250YWluZXJEZWNpc2lvbkhp
ZGVBbmRBbGxvd2AgYW5kIGBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZERpc2FsbG93
YCwgcmVzcGVjdGl2ZWx5LgorICAgICAgICBXaGlsZSB0aGlzIGxlYXZlcyB1cyB3aXRoIG9ubHkg
dHdvIHBvbGljeSBtb2RlcyAoc3VjaCB0aGF0IHRoZSBwb2xpY3kgY2FuIG5vdyBiZSB0dXJuZWQg
aW50byBhIHNpbmdsZSBCT09MCisgICAgICAgIHN3aXRjaCksIEknbSBrZWVwaW5nIHRoZSBuYW1l
ZCBlbnVtIGZsYWdzIGZvciBub3csIHNpbmNlOgorCisgICAgICAgIDEuIFRoZSBleGlzdGluZyBu
YW1lcyBkbyBhIGJldHRlciBqb2Igb2YgZGVzY3JpYmluZyB0aGVpciByZXNwZWN0aXZlIGJlaGF2
aW9ycyB0aGFuIGEgc2luZ2xlIEJPT0wgZmxhZyBsaWtlCisgICAgICAgIGBtb2RhbENvbnRhaW5l
ck9ic2VydmVyU2hvdWxkUHJvbXB0YCwgb3IgYG1vZGFsQ29udGFpbmVyT2JzZXJ2ZXJFbmFibGVk
YCwgYW5kLi4uCisKKyAgICAgICAgMi4gV2UnbGwgcHJvYmFibHkgbmVlZCB0byBleHRlbmQgdGhp
cyBwb2xpY3kgc2V0IHRvIGFkZCBhIG5ldyB2YWx1ZSBpbiB0aGUgbmVhciBmdXR1cmUsIGFueXdh
eXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5m
by5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF0Zm9ybVhS
Q29vcmRpbmF0b3IubW0uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENv
bnRhaW5lckluZm8ubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1BsYXRmb3JtWFJDb29yZGluYXRvci5tbS4KKworICAgICAgICBOb24tdW5pZmllZCBidWlsZCBm
aXhlcy4KKworICAgICAgICAoLVtfV0tNb2RhbENvbnRhaW5lckluZm8gaW5pdFdpdGhUeXBlczpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mb0lu
dGVybmFsLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXRm
b3JtWFJDb29yZGluYXRvci5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTW9kYWxDb250
YWluZXJDb250cm9sQ2xhc3NpZmllci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxh
dGZvcm1YUkNvb3JkaW5hdG9yLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAg
IChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6Y29y
ZU1vZGFsQ29udGFpbmVyRGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpV
SUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorCisgICAgICAgIEFkZCBw
bHVtYmluZyBmb3IgdGhlIG5ldyBjaHJvbWUgY2xpZW50IGhvb2sgdGhyb3VnaCBXZWJDaHJvbWVD
bGllbnQsIFdlYlBhZ2UsIFdlYlBhZ2VQcm94eSwgYW5kIGZpbmFsbHkgdGhlIFVJCisgICAgICAg
IGNsaWVudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMjEtMTItMjAgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIE1vZGFsQ29udGFpbmVyQ29udHJv
bENsYXNzaWZpZXIgYW5kIHVzZSBpdCB0byBpbXBsZW1lbnQgY2xhc3NpZnlNb2RhbENvbnRhaW5l
ckNvbnRyb2xzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5YmRhMjc3YWEzYmQx
Y2Q4ODcyMzZlMzU0ZTc0ODZkYjk0ODQyNGY4Li5hNGY3ODUyNDhiZTQyMWM2NjE2NDc2MDFlMjEz
YzI5YjZjNmEzMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMTItMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgVUkgZGVsZWdhdGUgbWV0aG9kIHRvIGRlY2lkZSBo
b3cgdG8gaGFuZGxlIGRldGVjdGVkIG1vZGFsIGNvbnRhaW5lcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKwogMjAy
MS0xMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgY2xpZW50IGxheWVyIHBsdW1iaW5nIGZvciBjbGFzc2lmeWluZyBtb2RhbCBjb250YWlu
ZXIgY29udHJvbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA2Y2Y5OWZkYTQxYmYw
NDE0NTQ0ZjBkOWJkNzYxM2MwMWExNzgwMDZhLi5mYTllMTBiYTlmY2JiZDQ4ZmFjMDc0YzZhYmRk
ZDA2ZDA5OTkxY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMTItMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgVUkgZGVsZWdhdGUgbWV0aG9kIHRvIGRlY2lkZSBo
b3cgdG8gaGFuZGxlIGRldGVjdGVkIG1vZGFsIGNvbnRhaW5lcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRh
aW5lcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIw
MjEtMTItMjAgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAg
ICAgICAgW1dpbl0gTVNWQyByZXBvcnRzICJDT01Qcm9wZXJ0eUJhZy5oKDIzMyk6IGVycm9yIEMy
Mzg1OiBhbWJpZ3VvdXMgYWNjZXNzIG9mICdJVW5rbm93biciIHdpdGggL3N0ZDpjKysyMApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggYmMwODRlOWY2YmM5NzFiNDIwYzU1ZGI0OTcxYjhiNzBlY2U3YzVj
Ny4uODRjMzg3NDkyOTg3ZGE5ZTgyNTE0ZjRkYTlhYTFiMjdiOWRiZDcyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC0xMTA5LDcgKzExMDksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgKICAgICBw
YWdlL01lZGlhUHJvZHVjZXIuaAogICAgIHBhZ2UvTWVtb3J5UmVsZWFzZS5oCi0gICAgcGFnZS9N
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgKKyAgICBwYWdlL01vZGFsQ29udGFpbmVyVHlwZXMu
aAogICAgIHBhZ2UvTmF2aWdhdG9ySXNMb2dnZWRJbi5oCiAgICAgcGFnZS9QREZJbWFnZUNhY2hp
bmdQb2xpY3kuaAogICAgIHBhZ2UvUGFnZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmM0ZThkZTA1MTVhM2U3ZGUwODNmZDU3
NjdkMDg5ZmE3YzI3OTQ5NC4uZDAzNzZkOTBkZmY4M2Y5Y2Q2YWM1NmJjNzFjMTk1YTJmMGVjZjRi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNTUwNyw3ICs1NTA3LDcgQEAKIAkJRjQ4RDJBNkMyMTU2MjNCNDAwQzY3NTJCIC8q
IEZvbnRTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0OEQyQTZBMjE1NjIzQjQwMEM2NzUyQiAvKiBGb250U2hhZG93LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBN0UyMTU3MTgyNjAw
QzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0dHJpYnV0
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlG
NDhEMkFBNTIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBQTMyMTU5NzQwRDAwQzY3NTJCIC8q
IENvbG9yQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlGNDkzMjg4MzI3NjkwNDFCMDAzRTIwRjggLyogTW9kYWxDb250YWluZXJDb250cm9s
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5
MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNDkzMjg4MzI3
NjkwNDFCMDAzRTIwRjggLyogTW9kYWxDb250YWluZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8q
IE1vZGFsQ29udGFpbmVyVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlGNDk3ODY4ODFGRjQ1RkE1MDBFMDYwQUIgLyogUGFzdGVib2FyZEl0
ZW1JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIgLyogUGFzdGVib2FyZEl0ZW1JbmZvLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRCMDAxODkyNkU3RjIx
RjAwNkVBQUJFIC8qIEhUTUxBdG9tU3RyaW5nQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjAwMTg3MjZFN0YyMUYwMDZFQUFCRSAvKiBIVE1M
QXRvbVN0cmluZ0NhY2hlLmggKi87IH07CiAJCUY0QjJBOTA5MjY1MDMwQkEwMDlFNzI4NiAvKiBE
YXRhRGV0ZWN0b3JIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0QjJBOTA2MjY1MDJCQTAwMDlFNzI4NiAvKiBEYXRhRGV0ZWN0b3JIaWdo
bGlnaHQuaCAqLzsgfTsKQEAgLTE3NzM1LDcgKzE3NzM1LDcgQEAKIAkJRjQ4RDJBN0EyMTU3MDUx
RTAwQzY3NTJCIC8qIEZvbnRTaGFkb3dDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZv
bnRTaGFkb3dDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBQTMy
MTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sb3JDb2Nv
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDhEMkFBNDIxNTk3NDBEMDBDNjc1
MkIgLyogQ29sb3JDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbG9yQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAv
KiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ5MzI4ODIy
NzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TW9kYWxDb250YWluZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDk3
ODY4NzFGRjQ1RkE1MDBFMDYwQUIgLyogUGFzdGVib2FyZEl0ZW1JbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBhc3RlYm9hcmRJdGVtSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDlFOThFNDIxREVFNkMxMDA5QUU1NUUgLyogRWRpdEFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFZGl0QWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRCMDAx
ODcyNkU3RjIxRjAwNkVBQUJFIC8qIEhUTUxBdG9tU3RyaW5nQ2FjaGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSFRNTEF0b21TdHJpbmdDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTkyNTcsMTIgKzE5MjU3LDEyIEBACiAJCTExQTFFNkZCMjZGQkI2Q0UwMDQzNUQzNiAvKiBkaXNw
bGF5ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk2RjYw
RTVBOTI3NzEwRjM5MDA1QzE1QjkgLyogSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmggKi8sCi0J
CQkJNkY2MEU1QTcyNzcxMEYyRjAwNUMxNUI5IC8qIElubGluZURpc3BsYXlMaW5lQnVpbGRlci5j
cHAgKi8sCiAJCQkJNkZDM0Y5NDUyNTE2NzU2NjAwQTQ5QkVBIC8qIElubGluZURpc3BsYXlCb3gu
aCAqLywKIAkJCQkxMTUxM0QwMDI2RDk4MUREMDA0RDNGQUEgLyogSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyLmNwcCAqLywKIAkJCQkxMTUxM0QwMjI2RDk4MUU3MDA0RDNGQUEgLyogSW5saW5l
RGlzcGxheUNvbnRlbnRCdWlsZGVyLmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVB
IC8qIElubGluZURpc3BsYXlMaW5lLmggKi8sCisJCQkJNkY2MEU1QTcyNzcxMEYyRjAwNUMxNUI5
IC8qIElubGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAgKi8sCisJCQkJNkY2MEU1QTkyNzcxMEYz
OTAwNUMxNUI5IC8qIElubGluZURpc3BsYXlMaW5lQnVpbGRlci5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBkaXNwbGF5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzOTg2LDkgKzIz
OTg2LDkgQEAKIAkJCQk1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5o
ICovLAogCQkJCTQxM0UwMDc3MURCMEU0REUwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmNwcCAq
LywKIAkJCQk0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5oICovLAot
CQkJCUY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
LmggKi8sCiAJCQkJQTEwRjdDNzEyNzMxMDA3MzAwOEZBOUFGIC8qIE1vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXIuY3BwICovLAogCQkJCUExMEY3QzcwMjczMTAwNzMwMDhGQTlBRiAvKiBNb2RhbENvbnRh
aW5lck9ic2VydmVyLmggKi8sCisJCQkJRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFs
Q29udGFpbmVyVHlwZXMuaCAqLywKIAkJCQk5M0VCMzU1RTA5RTM3RkQ2MDBGNDM3OTkgLyogTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5jcHAgKi8sCiAJCQkJOTM1QzQ3NjIwOUFDNENFNjAw
QTZBQUI0IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCAqLywKIAkJCQk2QjUwN0Ey
MzIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9yK0lzTG9nZ2VkSW4uaWRsICovLApAQCAtMzQ4
MzQsNiArMzQ4MzQsNyBAQAogCQkJCTZGQzNGOTQ3MjUxNjc1NjcwMEE0OUJFQSAvKiBJbmxpbmVE
aXNwbGF5Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTUxM0QwMzI2RDk4MUU4MDA0RDNGQUEg
LyogSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2Rjkx
NDIxMTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lRGlzcGxheUxpbmUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTZGNjBFNUFBMjc3MTBGMzkwMDVDMTVCOSAvKiBJbmxpbmVEaXNwbGF5TGluZUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDdDNEQ1N0QyNjUwOEJD
QjAwQzdBQjFGIC8qIElubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkZFNjM2RTgyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCBp
biBIZWFkZXJzICovLApAQCAtMzYxMzcsOCArMzYxMzgsOCBAQAogCQkJCUNERjJCMDE3MTgyMDU0
MDcwMEYyQjQyNCAvKiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU3MTU2MTBDMjM0QzFDQTEwMDhGQzdBQiAvKiBNb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDkzMjg4MzI3NjkwNDFCMDAzRTIw
RjggLyogTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEw
RjdDNzMyNzMxMDBEMDAwOEZBOUFGIC8qIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUY0OTMyODgzMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lclR5
cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREM4RDM5ODI1RjJGRTk3MDBDRkNCQUIgLyogTW9k
ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxM0U3OUVBMjczQzg2QjgwMDk3RjkwNSAvKiBNb2Rl
bERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJCNDExNzI3MzJGNDFFMDBBMkQxOTEg
LyogTW9kZWxQbGF5ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzc2NjYsNyArMzc2NjcsNiBAQAog
CQkJCUJFRjI5RUVDMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0QzMzZGNjQxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDMzNkY2ODE3RkEwQUM2MDBERERDRDAgLyog
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKLQkJCQk2RjYwRTVBQTI3
NzEwRjM5MDA1QzE1QjkgLyogSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDFGOUIxNDI3MDIzNUY3MDA2MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQzMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRl
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcw
RTgxRDExQkYyNzY1NjAwMUZEQTQ4IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCAw
ZTAxMmI2OGMyNGIzMzRmOTFjNTcxMDVmNGQyNTIzZDYyYjQ2NzBhLi5jNmU4YTY3MmU3MzU2MmZk
MzU5YWE3NGM5MjE1MmY1OGEwNGZmZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuaApAQCAtMTQ1LDExICsxNDUsOSBAQCBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kg
OiB1aW50OF90IHsKICNlbmRpZgogfTsKIAotZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lck9ic2Vy
dmF0aW9uUG9saWN5IDogdWludDhfdCB7CitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyT2JzZXJ2
YXRpb25Qb2xpY3kgOiBib29sIHsKICAgICBEaXNhYmxlZCwKICAgICBQcm9tcHQsCi0gICAgQWxs
b3csCi0gICAgRGlzYWxsb3csCiB9OwogCiBlbnVtIGNsYXNzIENvbG9yU2NoZW1lUHJlZmVyZW5j
ZSA6IHVpbnQ4X3QgewpAQCAtODA4LDkgKzgwNiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeT4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
T2JzZXJ2YXRpb25Qb2xpY3ksCiAgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2
YXRpb25Qb2xpY3k6OkRpc2FibGVkLAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9i
c2VydmF0aW9uUG9saWN5OjpQcm9tcHQsCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
T2JzZXJ2YXRpb25Qb2xpY3k6OkFsbG93LAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdworICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRh
aW5lck9ic2VydmF0aW9uUG9saWN5OjpQcm9tcHQKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA1NTI1NjJlNTRiYmE1NzNiZWFiMGIyMGZhNjQw
NWU5MzNjMWI2ODYyLi43NThjYmU4MDY1NGU4ODg5N2FjZDllZDQxMTk5MGM4Njg2Y2FmM2JhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNjMsNyArNjMsNyBAQAog
I2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgiCisjaW5jbHVkZSAiTW9kYWxDb250YWluZXJUeXBl
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgpAQCAtNTk2LDYgKzU5NiwxMSBAQCB2
b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVj
dG9yPFN0cmluZz4mJiwgQ29tcGxldAogICAgIGNvbXBsZXRpb24oeyB9KTsKIH0KIAordm9pZCBF
bXB0eUNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0
PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFs
Q29udGFpbmVyRGVjaXNpb24pPiYmIGNvbXBsZXRpb24pCit7CisgICAgY29tcGxldGlvbihNb2Rh
bENvbnRhaW5lckRlY2lzaW9uOjpTaG93KTsKK30KKwogdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3Ry
aW5nJiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYWExNGM0YTFiOWE2ZDMzYWFm
MGRiM2Q5ZGEyMjY1YTljNjM0YTM4OS4uY2Q1ZjI4ZjE0NjFlOGEyZTZhZGJjMGQwMGU1OGRlZTU2
ZDRkMDczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjIxLDYgKzIy
MSw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAK
ICAgICB2b2lkIHJlcXVlc3RDb29raWVDb25zZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQ29v
a2llQ29uc2VudERlY2lzaW9uUmVzdWx0KT4mJikgZmluYWw7CiAgICAgdm9pZCBjbGFzc2lmeU1v
ZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4mJik+JiYpIGZpbmFsOworICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVj
aXNpb24pPiYmKSBmaW5hbDsKIH07CiAKIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBlbXB0eURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCA5MDM5OTZhYjIzNjM1NzU2YTNiOGMxM2NhMDJhYzUxNjUzNzMzY2UwLi4zNTJlMDNmMGM0MTZi
NjM4MDBlNzE0MjllOGMyOGFlM2NkYzI2MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKIGVudW0gY2xh
c3MgQ29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3MgTW9k
YWxDb250YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIE1vZGFsQ29udGFp
bmVyRGVjaXNpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1
aW50OF90OwogCiBjbGFzcyBDaHJvbWVDbGllbnQgewpAQCAtNjI3LDYgKzYyOCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21TdHJpbmcmIHNlYXJjaFN0cmluZ0Zvck1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxsQXRvbSgpOyB9CiAgICAgdmlydHVh
bCB2b2lkIGNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmIHRl
eHRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxNb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlPiYmKT4mJikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFs
Q29udGFpbmVyKE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJikgPSAwOworCiBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNkNWQ1MWRhMmU4OTIwZGEwM2JlYWNjOGMwMjdmYWIzNzUxYzg4
NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx3
dGYvRW51bVRyYWl0cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gY2xhc3MgTW9k
YWxDb250YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3QgewotICAgIE5ldXRyYWwsCi0gICAgUG9z
aXRpdmUsCi0gICAgTmVnYXRpdmUsCi0gICAgT3RoZXIsCi19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHsKLSAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
LAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZXV0cmFsLAot
ICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQb3NpdGl2ZSwKLSAg
ICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmUsCi0gICAg
ICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok90aGVyCi0gICAgPjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9N
b2RhbENvbnRhaW5lck9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250
YWluZXJPYnNlcnZlci5jcHAKaW5kZXggZDIwYmIxMzQwNTNmZWQ1ZmFlYTJhZWU0MGY2ZDUxYmYz
YWFjY2NhMC4uMzAwYmY5MTk0ZTFkNWZlZDFiNzQyMjM1NmFkZTJlNzE3ZTExMzFkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCkBAIC00Miw3
ICs0Miw3IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIk1vZGFs
Q29udGFpbmVyQ29udHJvbFR5cGUuaCIKKyNpbmNsdWRlICJNb2RhbENvbnRhaW5lclR5cGVzLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKQEAgLTMwMCw5ICszMDAsNTggQEAgdm9pZCBNb2Rh
bENvbnRhaW5lck9ic2VydmVyOjpjb2xsZWN0Q2xpY2thYmxlRWxlbWVudHNUaW1lckZpcmVkKCkK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFZl
Y3RvcjxSZWY8SFRNTEVsZW1lbnQ+PiBwb3NpdGl2ZUNvbnRyb2xzOwotICAgICAgICAgICAgVmVj
dG9yPFJlZjxIVE1MRWxlbWVudD4+IG5ldXRyYWxDb250cm9sczsKLSAgICAgICAgICAgIFZlY3Rv
cjxSZWY8SFRNTEVsZW1lbnQ+PiBuZWdhdGl2ZUNvbnRyb2xzOworICAgICAgICAgICAgc3RydWN0
IENsYXNzaWZpZWRDb250cm9scyB7CisgICAgICAgICAgICAgICAgVmVjdG9yPFdlYWtQdHI8SFRN
TEVsZW1lbnQ+PiBwb3NpdGl2ZTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8V2Vha1B0cjxIVE1M
RWxlbWVudD4+IG5ldXRyYWw7CisgICAgICAgICAgICAgICAgVmVjdG9yPFdlYWtQdHI8SFRNTEVs
ZW1lbnQ+PiBuZWdhdGl2ZTsKKworICAgICAgICAgICAgICAgIENsYXNzaWZpZWRDb250cm9scygp
ID0gZGVmYXVsdDsKKyAgICAgICAgICAgICAgICBDbGFzc2lmaWVkQ29udHJvbHMoQ2xhc3NpZmll
ZENvbnRyb2xzJiYgb3RoZXIpCisgICAgICAgICAgICAgICAgICAgIDogcG9zaXRpdmUoV1RGTW92
ZShvdGhlci5wb3NpdGl2ZSkpCisgICAgICAgICAgICAgICAgICAgICwgbmV1dHJhbChXVEZNb3Zl
KG90aGVyLm5ldXRyYWwpKQorICAgICAgICAgICAgICAgICAgICAsIG5lZ2F0aXZlKFdURk1vdmUo
b3RoZXIubmVnYXRpdmUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBIVE1MRWxlbWVudCogY29udHJvbFRvQ2xpY2soTW9kYWxDb250YWlu
ZXJEZWNpc2lvbiBkZWNpc2lvbikgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgIGF1dG8gbWF0Y2hOb25OdWxsID0gWyZdKGNvbnN0IFdlYWtQdHI8SFRNTEVsZW1l
bnQ+JiBlbGVtZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gISFlbGVtZW50
OworICAgICAgICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo
ZGVjaXNpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckRlY2lz
aW9uOjpTaG93OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZElnbm9yZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIE1vZGFs
Q29udGFpbmVyRGVjaXNpb246OkhpZGVBbmRBbGxvdzoKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChhdXRvIGluZGV4ID0gcG9zaXRpdmUuZmluZE1hdGNoaW5nKG1hdGNoTm9uTnVsbCk7IGlu
ZGV4ICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3Np
dGl2ZVtpbmRleF0uZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBpbmRl
eCA9IG5ldXRyYWwuZmluZE1hdGNoaW5nKG1hdGNoTm9uTnVsbCk7IGluZGV4ICE9IG5vdEZvdW5k
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXV0cmFsW2luZGV4XS5nZXQo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBj
YXNlIE1vZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmREaXNhbGxvdzoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGluZGV4ID0gbmVnYXRpdmUuZmluZE1hdGNoaW5nKG1hdGNo
Tm9uTnVsbCk7IGluZGV4ICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBuZWdhdGl2ZVtpbmRleF0uZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBPcHRpb25TZXQ8
TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4gY29udHJvbFR5cGVzKCkgY29uc3QKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNv
bnRyb2xUeXBlPiBhdmFpbGFibGVUeXBlc0lnbm9yaW5nT3RoZXI7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghcG9zaXRpdmUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgYXZh
aWxhYmxlVHlwZXNJZ25vcmluZ090aGVyLmFkZChNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQ
b3NpdGl2ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090aGVyLmFkZChN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZWdhdGl2ZSk7CisgICAgICAgICAgICAgICAgICAg
IGlmICghbmV1dHJhbC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFi
bGVUeXBlc0lnbm9yaW5nT3RoZXIuYWRkKE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRy
YWwpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090
aGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIENs
YXNzaWZpZWRDb250cm9scyBjbGFzc2lmaWVkQ29udHJvbHM7CiAgICAgICAgICAgICBmb3IgKHNp
emVfdCBpbmRleCA9IDA7IGluZGV4IDwgdHlwZXMuc2l6ZSgpOyArK2luZGV4KSB7CiAgICAgICAg
ICAgICAgICAgYXV0byBjb250cm9sID0gY29udHJvbHNbaW5kZXhdOwogICAgICAgICAgICAgICAg
IGlmICghY29udHJvbCkKQEAgLTMxMCw1MSArMzU5LDU3IEBAIHZvaWQgTW9kYWxDb250YWluZXJP
YnNlcnZlcjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCgpCiAKICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHR5cGVzW2luZGV4XSkgewogICAgICAgICAgICAgICAgIGNhc2UgTW9k
YWxDb250YWluZXJDb250cm9sVHlwZTo6UG9zaXRpdmU6Ci0gICAgICAgICAgICAgICAgICAgIHBv
c2l0aXZlQ29udHJvbHMuYXBwZW5kKCpjb250cm9sKTsKKyAgICAgICAgICAgICAgICAgICAgY2xh
c3NpZmllZENvbnRyb2xzLnBvc2l0aXZlLmFwcGVuZChjb250cm9sKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlOjpOZWdhdGl2ZToKLSAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVDb250cm9scy5hcHBl
bmQoKmNvbnRyb2wpOworICAgICAgICAgICAgICAgICAgICBjbGFzc2lmaWVkQ29udHJvbHMubmVn
YXRpdmUuYXBwZW5kKGNvbnRyb2wpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICBjYXNlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWw6Ci0gICAg
ICAgICAgICAgICAgICAgIG5ldXRyYWxDb250cm9scy5hcHBlbmQoKmNvbnRyb2wpOworICAgICAg
ICAgICAgICAgICAgICBjbGFzc2lmaWVkQ29udHJvbHMubmV1dHJhbC5hcHBlbmQoY29udHJvbCk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxD
b250YWluZXJDb250cm9sVHlwZTo6T3RoZXI6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgUmVmUHRyPEhU
TUxFbGVtZW50PiBjb250cm9sVG9DbGljazsKLSAgICAgICAgICAgIHN3aXRjaCAoZG9jdW1lbnRM
b2FkZXItPm1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3koKSkgewotICAgICAgICAgICAg
Y2FzZSBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhYmxlZDoKLSAgICAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6QWxsb3c6IHsK
LSAgICAgICAgICAgICAgICBpZiAoIXBvc2l0aXZlQ29udHJvbHMuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgICAgICAgICBjb250cm9sVG9DbGljayA9IHBvc2l0aXZlQ29udHJvbHNbMF0ucHRyKCk7
Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoIW5ldXRyYWxDb250cm9scy5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrID0gbmV1dHJhbENvbnRyb2xzWzBdLnB0
cigpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Y2FzZSBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzogewotICAgICAg
ICAgICAgICAgIGlmICghbmVnYXRpdmVDb250cm9scy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnRyb2xUb0NsaWNrID0gbmVnYXRpdmVDb250cm9sc1swXS5wdHIoKTsKLSAgICAg
ICAgICAgICAgICBlbHNlIGlmICghbmV1dHJhbENvbnRyb2xzLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICAgICAgY29udHJvbFRvQ2xpY2sgPSBuZXV0cmFsQ29udHJvbHNbMF0ucHRyKCk7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlIE1v
ZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdDoKLSAgICAgICAgICAgICAgICAv
LyBOb3Qgc3VwcG9ydGVkIHlldC4KLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IG9ic2VydmVyLT5tX2hhc0F0dGVtcHRlZFRvRnVsZmlsbFBvbGljeSA9IHRydWU7CisKKyAgICAg
ICAgICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgICAgICAgICAgaWYgKCFw
YWdlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjbGlja2Fi
bGVDb250cm9sVHlwZXMgPSBjbGFzc2lmaWVkQ29udHJvbHMuY29udHJvbFR5cGVzKCk7CisgICAg
ICAgICAgICBpZiAoY2xpY2thYmxlQ29udHJvbFR5cGVzLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgICAgIG9ic2VydmVyLT5yZXZlYWxNb2RhbENvbnRhaW5lcigpOworICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb2JzZXJ2ZXItPm1faGFzQXR0
ZW1wdGVkVG9GdWxmaWxsUG9saWN5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKGNsaWNrYWJsZUNvbnRyb2xU
eXBlcywgW3dlYWtEb2N1bWVudCwgb2JzZXJ2ZXIsIGNsYXNzaWZpZWRDb250cm9scyA9IFdURk1v
dmUoY2xhc3NpZmllZENvbnRyb2xzKV0oYXV0byBkZWNpc2lvbikgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgUmVmUHRyIGRvY3VtZW50ID0gd2Vha0RvY3VtZW50LmdldCgpOworICAgICAgICAg
ICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgICAgIGlmIChvYnNlcnZlciAhPSBkb2N1bWVudC0+bW9kYWxDb250YWluZXJPYnNl
cnZlcklmRXhpc3RzKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAg
ICAgaWYgKGNvbnRyb2xUb0NsaWNrKQotICAgICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrLT5k
aXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIFNlbmRNb3VzZVVwRG93bkV2ZW50cywgRG9O
b3RTaG93UHJlc3NlZExvb2spOworICAgICAgICAgICAgICAgIGlmIChkZWNpc2lvbiA9PSBNb2Rh
bENvbnRhaW5lckRlY2lzaW9uOjpTaG93KSB7CisgICAgICAgICAgICAgICAgICAgIG9ic2VydmVy
LT5yZXZlYWxNb2RhbENvbnRhaW5lcigpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKFJlZlB0ciBjb250cm9sVG9D
bGljayA9IGNsYXNzaWZpZWRDb250cm9scy5jb250cm9sVG9DbGljayhkZWNpc2lvbikpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51
bGxwdHIsIFNlbmRNb3VzZVVwRG93bkV2ZW50cywgRG9Ob3RTaG93UHJlc3NlZExvb2spOworICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCit2b2lkIE1vZGFsQ29udGFp
bmVyT2JzZXJ2ZXI6OnJldmVhbE1vZGFsQ29udGFpbmVyKCkKK3sKKyAgICBpZiAoYXV0byBjb250
YWluZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29udGFpbmVyLCB7IH0pKQorICAgICAgICBjb250YWlu
ZXItPmludmFsaWRhdGVTdHlsZSgpOworfQorCiBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRN
TEVsZW1lbnQ+PiwgVmVjdG9yPFN0cmluZz4+IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxl
Y3RDbGlja2FibGVFbGVtZW50cygpCiB7CiAgICAgUmVmIGNvbnRhaW5lciA9ICptX2NvbnRhaW5l
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmgKaW5kZXgg
ZGRkN2I4Zjc1MTdkMDg3YmIwODRmNWYxYzZhZTBiZWVjN2I1YmE5Zi4uYTczNTZmZWYyZmM1ZDEx
YmQ4MDQwYmYyOWFhOThjYTZjNTI0MWU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2Rh
bENvbnRhaW5lck9ic2VydmVyLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB2b2lkIHNjaGVkdWxlQ2xpY2thYmxlRWxlbWVudENvbGxlY3Rpb24oKTsKICAgICB2b2lk
IGNvbGxlY3RDbGlja2FibGVFbGVtZW50c1RpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJldmVhbE1v
ZGFsQ29udGFpbmVyKCk7CiAKICAgICBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1l
bnQ+PiwgVmVjdG9yPFN0cmluZz4+IGNvbGxlY3RDbGlja2FibGVFbGVtZW50cygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZTU0ZmQ3
NjE3MDI2NjU1ZDEwNTQzZGJkMTliNTM5OGVjMzg3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaApAQCAtMCwwICsxLDcwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJDb250cm9s
VHlwZSA6IHVpbnQ4X3QgeworICAgIE5ldXRyYWwgPSAxIDw8IDAsCisgICAgUG9zaXRpdmUgPSAx
IDw8IDEsCisgICAgTmVnYXRpdmUgPSAxIDw8IDIsCisgICAgT3RoZXIgPSAxIDw8IDMsCit9Owor
CitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyRGVjaXNpb24gOiB1aW50OF90IHsKKyAgICBTaG93
LAorICAgIEhpZGVBbmRJZ25vcmUsCisgICAgSGlkZUFuZEFsbG93LAorICAgIEhpZGVBbmREaXNh
bGxvdywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisK
K3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250
cm9sVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUsCisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwsCisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGU6OlBvc2l0aXZlLAorICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlOjpOZWdhdGl2ZSwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJD
b250cm9sVHlwZTo6T3RoZXIKKyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbiwK
KyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdywKKyAgICAgICAg
V2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZElnbm9yZSwKKyAgICAgICAg
V2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFsbG93LAorICAgICAgICBX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpIaWRlQW5kRGlzYWxsb3cKKyAgICA+Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCBjZTVmZWEyYjJlYTE2N2U3M2EyMzEwOTIyYTA2MThmMmNkMTc5MTU0Li42
Y2I3NTc2OWQ0ZmQ0YzBhM2YwYWIwYmNlMmYxYjc4NGMwMWU0NmY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTgwMiw2ICs4MDIsOCBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0
YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5
JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAorICAgICAgICAn
V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZSc6IFsnPFdlYkNvcmUvTW9kYWxDb250
YWluZXJUeXBlcy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lv
bic6IFsnPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6Ok1vdmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxX
ZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApp
bmRleCA2NWQ5MTgxYmEwYzllMTFkYzhiNmNmNGEwNzEyY2MyNTIzYzJmZWE1Li4xMWYwYzI0MDVh
Yzk0NzRiZThmOGU4MDVmZWViYzhmMWJiNjk2MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBA
IC0yODcsNiArMjg3LDcgQEAgVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNp
b24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93Lm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0xpbmtJY29uUGFyYW1ldGVycy5tbQorVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2Rh
bENvbnRhaW5lckluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZp
ZXdDb250cm9sbGVyLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8u
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggN2I2NDQw
Y2ZiMzdkYWUzNWI2MzljY2VkNGYxMjE0ODczMDZiMTQ2OS4uOTY4NTA1NDkyOWNmZGMzNWU5OGEx
NWYwNTRmNzgzOWUxZGY0YWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5
cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKQEAgLTE0Niw2ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxs
b3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9
CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiByZXF1ZXN0aW5nRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYgY3VycmVudERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkNvb2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0OjpO
b3RTdXBwb3J0ZWQpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29u
dGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJiBj
b21wbGV0aW9uKSB7IGNvbXBsZXRpb24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6
U2hvdyk7IH0KIAogICAgIC8vIFByaW50aW5nLgogICAgIHZpcnR1YWwgZmxvYXQgaGVhZGVySGVp
Z2h0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JikgeyByZXR1
cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggMGJmMjBkOTc0M2M0OTlkYTMyMjJhN2Q0NTRkNGFm
ZmM0MjBiYjExYS4uOWM0MzIxM2I2NDk4ZTZlYTkzZDJkNDdkMzg5NzhkODEwMGQzZGMyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oCkBAIC00Miw2ICs0Miw3IEBACiBAY2xhc3MgX1dLSW5zcGVjdG9yOwogQGNs
YXNzIF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb247CiBAY2xhc3MgX1dLSW5zcGVjdG9yRGVidWdn
YWJsZUluZm87CitAY2xhc3MgX1dLTW9kYWxDb250YWluZXJJbmZvOwogCiAjaWYgVEFSR0VUX09T
X0lPUwogCkBAIC0xMDMsNiArMTA0LDEzIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2Vy
LCBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MpIHsKICAgICBfV0tYUlNlc3Npb25GZWF0dXJlRmxh
Z3NSZWZlcmVuY2VTcGFjZVR5cGVVbmJvdW5kZWQgPSAxIDw8IDQsCiB9IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKK3R5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb24pIHsKKyAgICBfV0tNb2RhbENv
bnRhaW5lckRlY2lzaW9uU2hvdywKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFu
ZElnbm9yZSwKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZEFsbG93LAorICAg
IF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb25IaWRlQW5kRGlzYWxsb3csCit9IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBwcm90b2NvbCBX
S1VJRGVsZWdhdGVQcml2YXRlIDxXS1VJRGVsZWdhdGU+CiAKICNpZmRlZiBGT1VOREFUSU9OX0hB
U19ESVJFQ1RJT05BTF9HRU9NRVRSWQpAQCAtMTgxLDYgKzE4OSw4IEBAIHN0cnVjdCBVSUVkZ2VJ
bnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdENv
b2tpZUNvbnNlbnRXaXRoTW9yZUluZm9IYW5kbGVyOih2b2lkICheKSh2b2lkKSltb3JlSW5mb0hh
bmRsZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JNb2RhbENv
bnRhaW5lcjooX1dLTW9kYWxDb250YWluZXJJbmZvICopY29udGFpbmVySW5mbyBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb24pKWRlY2lzaW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJl
bmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVm
ZXJlbmNlcy5tbQppbmRleCA3YTYxYThiNDQ3Zjk1ZDI5MjU3YmQ0NTZjOTViMDkyNWYwNjMyMGZl
Li4zNDg0MTYxNWQ2YjkyZGQ5MDE0NTM3ZDdlOTJiNWFhY2M2MzYwNThlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVu
Y2VzLm1tCkBAIC0xMTEsMTAgKzExMSw2IEBAIHN0YXRpYyBfV0tXZWJzaXRlTW9kYWxDb250YWlu
ZXJPYnNlcnZhdGlvblBvbGljeSBtb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5CiAgICAg
ICAgIHJldHVybiBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2Fi
bGVkOwogICAgIGNhc2UgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6
UHJvbXB0OgogICAgICAgICByZXR1cm4gX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRp
b25Qb2xpY3lQcm9tcHQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0
aW9uUG9saWN5OjpBbGxvdzoKLSAgICAgICAgcmV0dXJuIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5l
ck9ic2VydmF0aW9uUG9saWN5QWxsb3c7Ci0gICAgY2FzZSBXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzoKLSAgICAgICAgcmV0dXJuIF9XS1dlYnNpdGVN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5RGlzYWxsb3c7CiAgICAgfQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNl
cnZhdGlvblBvbGljeURpc2FibGVkOwpAQCAtMTI3LDEwICsxMjMsNiBAQCBzdGF0aWMgV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSBjb3JlTW9kYWxDb250YWluZXJPYnNl
cnZhdGlvblBvbAogICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZh
dGlvblBvbGljeTo6RGlzYWJsZWQ7CiAgICAgY2FzZSBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJP
YnNlcnZhdGlvblBvbGljeVByb21wdDoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdDsKLSAgICBjYXNlIF9XS1dlYnNpdGVNb2Rh
bENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3c6Ci0gICAgICAgIHJldHVybiBXZWJDb3Jl
OjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpBbGxvdzsKLSAgICBjYXNlIF9XS1dl
YnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5RGlzYWxsb3c6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzsK
ICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OkRpc2FibGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVu
Y2VzUHJpdmF0ZS5oCmluZGV4IGU4YmI0ZWRlMjVkNTE2MjA2N2Y4MGFiZDZkY2VjNGFlMjdiZDBh
YzQuLmZlZDAzODZkMTgxMjJmMzUzMTI4MDMzY2Y5NjU1Mzg4YmE3MTYwN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTY1LDggKzY1LDYgQEAgdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS1dlYnNpdGVNb3VzZUV2ZW50UG9saWN5KSB7CiB0eXBlZGVmIE5TX09Q
VElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xp
Y3kpIHsKICAgICBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2Fi
bGVkLAogICAgIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5UHJvbXB0
LAotICAgIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3csCi0g
ICAgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhbGxvdywKIH0g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
Ly8gQWxsb3cgb3ZlcnJpZGluZyB0aGUgc3lzdGVtIGNvbG9yLXNjaGVtZSB3aXRoIGEgcGVyLXdl
YnNpdGUgcHJlZmVyZW5jZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmU1MzY1ZGU5
MTU2ZDhkZjRlOTkxMTc4Nzc5NDAxMDU3MjNiNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5oCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKwordHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVzKSB7CisgICAgX1dLTW9k
YWxDb250YWluZXJDb250cm9sVHlwZU5ldXRyYWwgPSAxIDw8IDAsCisgICAgX1dLTW9kYWxDb250
YWluZXJDb250cm9sVHlwZVBvc2l0aXZlID0gMSA8PCAxLAorICAgIF9XS01vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGVOZWdhdGl2ZSA9IDEgPDwgMiwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitAaW50ZXJmYWNlIF9XS01vZGFsQ29udGFp
bmVySW5mbyA6IE5TT2JqZWN0CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
TW9kYWxDb250YWluZXJDb250cm9sVHlwZXMgYXZhaWxhYmxlVHlwZXM7CisKK0BlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5l
ckluZm8ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250
YWluZXJJbmZvLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyODRjMWViNjIxYzhiN2ExNTk2MWU0ZTkxYTQ4NGI3
NWRjOTcxNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvLm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIl9XS01vZGFsQ29udGFpbmVySW5mb0lu
dGVybmFsLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgorCitA
aW1wbGVtZW50YXRpb24gX1dLTW9kYWxDb250YWluZXJJbmZvCisKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFR5cGVzOihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlw
ZT4pdHlwZXMKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0
dXJuIG5pbDsKKworICAgIGlmICh0eXBlcy5jb250YWlucyhXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlOjpQb3NpdGl2ZSkpCisgICAgICAgIF9hdmFpbGFibGVUeXBlcyB8PSBfV0tN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlUG9zaXRpdmU7CisKKyAgICBpZiAodHlwZXMuY29udGFp
bnMoV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmUpKQorICAgICAg
ICBfYXZhaWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZU5lZ2F0aXZl
OworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGU6Ok5ldXRyYWwpKQorICAgICAgICBfYXZhaWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxDb250
YWluZXJDb250cm9sVHlwZU5ldXRyYWw7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29u
dGFpbmVySW5mb0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjEyYzliOTk3Yzdk
MjA3YTAwZWE3NmNhMGZlMDQ4MDViNTEyNTRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmgK
QEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJf
V0tNb2RhbENvbnRhaW5lckluZm8uaCIKKyNpbXBvcnQgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDog
dWludDhfdDsKK30KKworQGludGVyZmFjZSBfV0tNb2RhbENvbnRhaW5lckluZm8gKFdlYktpdElu
dGVybmFsKQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlczooT3B0aW9uU2V0PFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+KXR5cGVzOworCitAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFz
c2lmaWVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kYWxDb250YWluZXJD
b250cm9sQ2xhc3NpZmllci5tbQppbmRleCAyMjljMzdiNjQ4NTUyNjhjYzI1MjgzYjIwNmNkODky
N2VkMDRiYzIxLi5jYWJiZTA1MzI5Zjc3MWFiMDQ4OWZlNTlmOThmMDhkOGY1N2YxZDRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRy
b2xDbGFzc2lmaWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGFs
Q29udGFpbmVyQ29udHJvbENsYXNzaWZpZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllci5oIgog
Ci0jaW1wb3J0IDxXZWJDb3JlL01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0NvcmVN
TFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvTmF0dXJhbExhbmd1YWdlU29mdExpbmsu
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGQ2
MDc0ZGMzMzZjOWJmOTRkMWY4YTNjNzYyOGVhZTVmOGY1Y2ZjM2QuLjlhMDMzZGI1ZTcxODRmMjMw
NTRmOGMyZGFjZDRiZTA2MzBhNzliYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lk
IGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVu
dCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogICAgICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBh
Z2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wgYWxsb3dlZCk+JiYpIGZpbmFsOwogICAgICAgICB2b2lkIHJlcXVlc3RDb29raWVDb25zZW50
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVz
dWx0KT4mJikgZmluYWw7CisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWlu
ZXIoT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKSBmaW5h
bDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgdm9pZCBzaG93UGFnZShXZWJQYWdlUHJv
eHkqKSBmaW5hbDsKQEAgLTI3NCw2ICsyNzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAg
IGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmln
aW5EZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Q29va2ll
Q29uc2VudFdpdGhNb3JlSW5mb0hhbmRsZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBi
b29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lckRlY2lzaW9uSGFuZGxlciA6
IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGUzNzNmZDE2ZWI1MzkyMzEwYzE5MDE4ZmQ1
ZTY1MWQyZmUwM2NjZTYuLmRkZmM2N2Q2OTU3MzE5MzFlY2E0ZWIzOTkyNmZiNWI2ZTg3NGE1YTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNTcs
NiArNTcsNyBAQAogI2ltcG9ydCAiX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1wb3J0
ICJfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0luc3Bl
Y3RvckludGVybmFsLmgiCisjaW1wb3J0ICJfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5o
IgogI2ltcG9ydCAiX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgiCiAjaW1wb3J0
IDxBVkZvdW5kYXRpb24vQVZDYXB0dXJlRGV2aWNlLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24v
QVZNZWRpYUZvcm1hdC5oPgpAQCAtMTk5LDYgKzIwMCw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0
RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0
eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlP
cmlnaW46ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdS
ZXF1ZXN0Q29va2llQ29uc2VudFdpdGhNb3JlSW5mb0hhbmRsZXJEZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Q29v
a2llQ29uc2VudFdpdGhNb3JlSW5mb0hhbmRsZXI6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lckRlY2lz
aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyOmRlY2lzaW9uSGFuZGxlcjopXTsKIH0K
IAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtNjY1LDYgKzY2Nyw0NCBAQCB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OgogICAgIH0pLmdldCgpXTsKIH0KIAorc3RhdGljIFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyRGVjaXNpb24gY29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24oX1dLTW9kYWxD
b250YWluZXJEZWNpc2lvbiBkZWNpc2lvbikKK3sKKyAgICBzd2l0Y2ggKGRlY2lzaW9uKSB7Cisg
ICAgY2FzZSBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uU2hvdzoKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3c7CisgICAgY2FzZSBfV0tNb2RhbENv
bnRhaW5lckRlY2lzaW9uSGlkZUFuZElnbm9yZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmRJZ25vcmU7CisgICAgY2FzZSBfV0tNb2RhbENv
bnRhaW5lckRlY2lzaW9uSGlkZUFuZEFsbG93OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9k
YWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFsbG93OworICAgIGNhc2UgX1dLTW9kYWxDb250
YWluZXJEZWNpc2lvbkhpZGVBbmREaXNhbGxvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmREaXNhbGxvdzsKKyAgICB9CisgICAgcmV0dXJu
IFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3c7Cit9CisKK3ZvaWQgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiBjb250cm9sVHlwZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxl
dGlvbikKK3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7CisKKyAgICBpZiAoIW1f
dWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck1vZGFs
Q29udGFpbmVyRGVjaXNpb25IYW5kbGVyKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbihXZWJD
b3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KTsKKworICAgIGF1dG8gZGVsZWdhdGUg
PSBtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6
U2hvdyk7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
OjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lG
b3JNb2RhbENvbnRhaW5lcjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgYXV0byBpbmZvID0gYWRv
cHROUyhbW19XS01vZGFsQ29udGFpbmVySW5mbyBhbGxvY10gaW5pdFdpdGhUeXBlczpjb250cm9s
VHlwZXNdKTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBkZWNpZGVQb2xpY3lGb3JNb2Rh
bENvbnRhaW5lcjppbmZvLmdldCgpIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBs
ZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0g
KF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgICAgICBp
ZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7
CisgICAgICAgIGNvbXBsZXRpb24oY29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24oZGVjaXNpb24p
KTsKKyAgICB9KS5nZXQoKV07Cit9CisKICNpZiBQTEFURk9STShNQUMpCiBib29sIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpjYW5SdW5Nb2RhbCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1ZmY2MGU3YTRiNzljYmU4YjhjOWE0M2I5YTQwNzI5
MWZjZjJlZDM0Li42ZmEwNzhkNGNlOTVhNmYxMGMxYjRiZWI3Yzg5NzVmYjJhZmU5ZDVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE2OSw3ICsxNjksNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01vZGFsQ29udGFpbmVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZv
cm1hbmNlTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGVybWlzc2lvblN0YXRl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50Lmg+CkBAIC0xMTA1Nyw2ICsxMTA1
NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdENvb2tpZUNvbnNlbnQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChDb29raWVDb25zZW50RGVjaQogICAgIG1fdWlDbGllbnQtPnJlcXVlc3RD
b29raWVDb25zZW50KFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGU+IHR5cGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVy
RGVjaXNpb24pPiYmIGNvbXBsZXRpb24pCit7CisgICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5
Rm9yTW9kYWxDb250YWluZXIodHlwZXMsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3OTk5NzBkZWQ2YTQyMjZiNmEz
ZjhkM2EzZDM3OTg1Y2Y0YTAyYTMxLi5jNTIwZjNiMDVkOWJhZjBhNzNhYmVlOWM5YmI3ZmRlMzM3
ZWVjMzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjc1LDYg
KzI3NSw3IEBAIGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50IDogYm9vbDsKIGVudW0gY2xh
c3MgSGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIEhp
Z2hsaWdodFZpc2liaWxpdHkgOiBib29sOwogZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlIDogdWludDhfdDsKK2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJEZWNpc2lvbiA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFz
cyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJp
bmdQb2xpY3kgOiB1aW50OF90OwpAQCAtMjAzOCw2ICsyMDM5LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCByZXF1ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkNvb2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdCk+JiYpOwogICAgIHZvaWQgY2xhc3NpZnlNb2Rh
bENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYgdGV4dHMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYm
KTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJD
b3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJik7CiAKIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggMmYyNjEzOTU1YjBhZGJmNzI2ZmE5Nzg4ZDFiNzQwZjYzODY0
YzRiYS4uOTQyYzkzZGQyZjkyNjkyNWRjODQzZmRhNzk2ODQ0ZDQ4NzEyOTAwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjE2
LDQgKzYxNiw1IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBSZXF1ZXN0Q29v
a2llQ29uc2VudCgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lz
aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICBDbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJv
bHMoVmVjdG9yPFN0cmluZz4gdGV4dHMpIC0+IChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWlu
ZXJDb250cm9sVHlwZT4gdHlwZXMpIEFzeW5jCisgICAgRGVjaWRlUG9saWN5Rm9yTW9kYWxDb250
YWluZXIoT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVz
KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNp
b24pIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5OGQ5NDNlZjdkMTZkNWYxYjNmODI3MDIwM2JlNGFhMjFhMTQ0ZDU4Li43
ZWRkYmIwZjkzZjg3Y2MwNzg4NTQ5ZmEwZGMzMTNhODA4NjE0N2YxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTksNiArMjAxOSw4
IEBACiAJCUY0RDk4NUM4MjY5MEZDMTIwMEJCQ0NCRSAvKiBfV0tUYXBIYW5kbGluZ1Jlc3VsdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREOTg1Qzcy
NjkwRkJFRjAwQkJDQ0JFIC8qIF9XS1RhcEhhbmRsaW5nUmVzdWx0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjREOTg1Q0IyNjkxMDk2NjAwQkJD
Q0JFIC8qIFRhcEhhbmRsaW5nUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNEUyQjQ0QTI2OEZERTFBMDAzMjdBQkMgLyogVGFwSGFuZGxpbmdS
ZXN1bHQuaCAqLzsgfTsKIAkJRjREQjU0RTYyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdo
dExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CisJCUY0REJDMEJFMjc2QUE2QTcw
MDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REJDMEJDMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tN
b2RhbENvbnRhaW5lckluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlGNERCQzBDMTI3NkFBNkNBMDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWlu
ZXJJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0REJDMEMwMjc2QUE2Q0EwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm9J
bnRlcm5hbC5oICovOyB9OwogCQlGNEVCNEFGRDI2OUNEN0YzMDBEMjk3QUUgLyogT1NTdGF0ZVNQ
SS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQjRB
RkMyNjlDRDIzNjAwRDI5N0FFIC8qIE9TU3RhdGVTUEkuaCAqLzsgfTsKIAkJRjRFQzk0RTMyMzU2
Q0M1NzAwMEJCNjE0IC8qIEFwcGxpY2F0aW9uU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RDA0RTI4MjFGN0M3M0QwMDc2NzQxRCAv
KiBBcHBsaWNhdGlvblNlcnZpY2VzU1BJLmggKi87IH07CiAJCUY0RkUwQTNCMjQ2MzJCNjAwMDI2
MzFFMSAvKiBDb2NvYUNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEZFMEEzQTI0NjMyQjEwMDAyNjMxRTEgLyogQ29jb2FDb2xvci5oICovOyB9
OwpAQCAtNjQ0NSw2ICs2NDQ3LDkgQEAKIAkJRjREOTg1QzcyNjkwRkJFRjAwQkJDQ0JFIC8qIF9X
S1RhcEhhbmRsaW5nUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RhcEhhbmRsaW5nUmVzdWx0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0REI1NEU0MjMxOUU3MzMwMDlFMzE1
NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6
ZXIuaDsgcGF0aCA9IGlvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0REI1NEU1MjMxOUU3MzMwMDlFMzE1NSAv
KiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVj
b2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25p
emVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNERCQzBCQzI3NkFBNkE3MDAw
MUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS01vZGFsQ29udGFpbmVySW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNERCQzBCRDI3NkFBNkE3MDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZv
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLTW9kYWxDb250
YWluZXJJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNERCQzBDMDI3NkFB
NkNBMDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRFMkI0NEEyNjhGREUxQTAwMzI3QUJDIC8qIFRhcEhhbmRsaW5nUmVzdWx0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFRhcEhhbmRsaW5nUmVzdWx0Lmg7IHBhdGggPSBpb3MvVGFwSGFu
ZGxpbmdSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQjRBRkMyNjlD
RDIzNjAwRDI5N0FFIC8qIE9TU3RhdGVTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NTdGF0ZVNQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY1OUFEMzIwNjVBNUM5MDA2Q0FBNDYg
LyogV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tOyBw
YXRoID0gaW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2ODcsNiArODY5Miw5IEBACiAJCQkJNTFDMEM5Nzkx
RERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovLAogCQkJCTUxQzBD
OTdBMURERDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMubW0gKi8sCiAJCQkJ
NTFDMEM5N0IxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVyc0ludGVybmFs
LmggKi8sCisJCQkJRjREQkMwQkMyNzZBQTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVy
SW5mby5oICovLAorCQkJCUY0REJDMEJEMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRh
aW5lckluZm8ubW0gKi8sCisJCQkJRjREQkMwQzAyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFs
Q29udGFpbmVySW5mb0ludGVybmFsLmggKi8sCiAJCQkJOTMyMzYxMUQxQjAxNURBODAwRkE5MjMy
IC8qIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oICovLAogCQkJCTFBNDNFODI4MTg4RjNDREMw
MDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkxQTQzRTgy
NzE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovLApA
QCAtMTI2NDQsNiArMTI2NTIsOCBAQAogCQkJCTMxQjM2Mjk3MjE0MUVCRDkwMDdCRkE1MyAvKiBf
V0tJbnRlcm5hbERlYnVnRmVhdHVyZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc5
MEE5RDFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjREQkMwQkUyNzZBQTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29u
dGFpbmVySW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjREQkMwQzEyNzZBQTZDQTAwMDFEMTY5
IC8qIF9XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MTE4QTlGMzE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVDMEYwQTcyMDAwNjU0RDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzIzNjExRTFCMDE1REE4MDBGQTkyMzIgLyogX1dL
T3ZlcmxheVNjcm9sbGJhclN0eWxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggYTI2ZmFkMGRiMDBmNTdhMmFjN2E3MGEzNDRiYWIyOGMyOGI4NDkxZC4uYzdjZjU4
NzVjOTQzYjc5MTkyYWViZDI4NjIzYjJiMWJjNzQ3ZGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTE1NzMsNiArMTU3MywxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xhc3NpZnlN
b2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYgc3RyaW5ncywgQwogICAgIG1f
cGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xhc3NpZnlN
b2RhbENvbnRhaW5lckNvbnRyb2xzKFdURk1vdmUoc3RyaW5ncykpLCBXVEZNb3ZlKGNvbXBsZXRp
b24pKTsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29u
dGFpbmVyKE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKQor
eworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIodHlwZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb24p
KTsKK30KKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRk
aXRpb25zL1dlYkNocm9tZUNsaWVudEFkZGl0aW9ucy5jcHA+CiAjZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDlmYTgxYzg3ZTE5MzlkMmExOTc0YzYwNDg3NDU3MTI2YTgxZTU5NGIuLmRhNWFj
ZDEzOTVjYzkyNDA4ZmZkY2MyYTAyYjgzMTEyODY4Zjk2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTQ2OCw2ICs0NjgsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjbGFzc2lmeU1vZGFsQ29u
dGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4mJik+JiYpIGZpbmFsOwog
CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29y
ZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYpIGZpbmFsOworCiAgICAgY29uc3QgQXRv
bVN0cmluZyYgc2VhcmNoU3RyaW5nRm9yTW9kYWxDb250YWluZXJPYnNlcnZlcigpIGNvbnN0IGZp
bmFsOwogCiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNj
cm9sbGJhciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDI2Y2VkYmFjNGY5ZjFhYjFm
ZTVlYzgyYjNhODIzMWQyMzVkYzEzMzcuLjgyMjM3OGY0MDYzZjBiYWYzMDQ4Y2QzMDBjYTY0MjIy
ODNkZTgwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNjEsNiArMjYxLDggQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgY2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGU+JiYpPiYmKSBmaW5hbDsKIAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9k
YWxDb250YWluZXIoT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24p
PiYmKSBmaW5hbDsKKwogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBi
b29sIG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0KaW5kZXggYjMwNjQzMThkMGMwYmI3YTRjNDUyMTE2MTYxZWZkN2Nm
MDdiYmZlNy4uMzYzNGY3YTYwMjE0NjE5ZWNmZWFmMGFlZDllYmZjZTcyMTBmMWExYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQpAQCAtNzgsNyArNzgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3Qu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05hdmln
YXRpb25BY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZS5oPgpAQCAtMTE3OCwzICsxMTc4LDggQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBD
b21wbGV0aW8KIHsKICAgICBjb21wbGV0aW9uKHsgfSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWlu
ZXJDb250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNp
c2lvbik+JiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKE1vZGFsQ29udGFpbmVyRGVj
aXNpb246OlNob3cpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYmM3ZmFlYTdmYzU0NGZi
MjViYzQ5Y2RkNWY2MmExMmFjMDcwZmFkYS4uMDk0ZjY1MjEwMDU3NzVkZDQ2YzczZDdlNmIzOTY3
MDcwMTFkOGFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9JY29uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbFdpbmRvd3NDb250
ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
b2RhbENvbnRhaW5lclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uQWN0aW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZS5oPgpAQCAtODg3LDMgKzg4Nyw4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGFz
c2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiwgQ29tcGxldGlvCiB7
CiAgICAgY29tcGxldGlvbih7IH0pOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5
cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmIGNv
bXBsZXRpb24pCit7CisgICAgY29tcGxldGlvbihNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDEzYjEzMjFiOTA3NTczYTdmYjg1ODQxNmI1ZWY3
OGU0NjM3ODA1OC4uNTkzM2ZjYzVjZmM1YmE5ZjBjYjZmZjAxZDEwYWRkOTFlMzU2YzhkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTE4Nyw2ICsxODcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNs
YXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiYm
KT4mJikgZmluYWw7CiAKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9w
dGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJikgZmluYWw7CisK
IHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447719</attachid>
            <date>2021-12-21 08:46:37 -0800</date>
            <delta_ts>2021-12-21 09:55:01 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-234440-20211221084637.patch</filename>
            <type>text/plain</type>
            <size>64569</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI0YjcyZmI0ZjliNzc3
MDgwMTU5YzdiN2NmZjY0MWZkODQ5MzlkNS4uY2Q1ZDUwNWM2YzBmODBjMTAyMGQwOGNhMTU1MTZh
OWQ4ZTQ2NjRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTEyLTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBhIFVJIGRlbGVnYXRlIG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3Rl
ZCBtb2RhbCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ0NDAKKyAgICAgICAgcmRhcjovLzc3MDczNzM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTW92ZSBNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlLmggdG8gTW9kYWxDb250YWluZXJUeXBlcy5oLCBhbmQgYWRkIGEgbmV3IGVudW0gZmxh
ZyB0byByZXByZXNlbnQgcmV0dXJuIHZhbHVlcyBpbgorICAgICAgICB0aGUgbmV3IFVJIGRlbGVn
YXRlIGRlY2lzaW9uIGhhbmRsZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaDoKKworICAgICAgICBBZGRpdGlvbmFsbHkgcmVtb3ZlIHRoZSB1bnVz
ZWQgQWxsb3cgYW5kIERpc2FsbG93IHZhbHVlcyBvZiBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
UG9saWN5LCBub3cgdGhhdCB3ZSB3aWxsCisgICAgICAgIGFsd2F5cyAoZWZmZWN0aXZlbHkpICJw
cm9tcHQiIHdoZW4gZGV0ZWN0aW5nIGEgbW9kYWwgY29udGFpbmVyIGJ5IGNhbGxpbmcgaW50byB0
aGUgY2xpZW50IGxheWVyIHdpdGggdGhlIG5ldworICAgICAgICBkZWxlZ2F0ZSBtZXRob2QuCisK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5Q2hyb21lQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcik6CisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisKKyAgICAgICAgQWRkIHRoZSBuZXcgYXN5bmMgY2hyb21lIGNsaWVudCBob29rLCBgZGVjaWRl
UG9saWN5Rm9yTW9kYWxDb250YWluZXIoKWAuCisKKyAgICAgICAgKiBwYWdlL01vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZl
cjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCk6CisKKyAgICAgICAgQ2FsbCBp
bnRvIHRoZSBjaHJvbWUgY2xpZW50IHRvIGRlY2lkZSBob3cgdG8gaGFuZGxlIHRoZSBvYnNlcnZl
ZCBtb2RhbCBjb250YWluZXIuCisKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXI6OnJldmVhbE1vZGFsQ29udGFpbmVyOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRo
b2QgdG8gcmVzZXQgdGhlIGN1cnJlbnQgYG1fY29udGFpbmVyYCBhbmQgaW52YWxpZGF0ZSBpdHMg
c3R5bGUgKHN1Y2ggdGhhdCBpdCB3aWxsIGJlIGRpc3BsYXllZAorICAgICAgICBhZnRlciB0aGUg
bmV4dCBzdHlsZSB1cGRhdGUpLgorCisgICAgICAgICogcGFnZS9Nb2RhbENvbnRhaW5lclR5cGVz
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGUuaC4KKworICAgICAgICBBbHNvLCB0d2VhayB0aGUgYE1vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGVgIHZhbHVlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgYXMgb3B0aW9uIGZsYWdzIHdo
ZW4gaW5mb3JtaW5nIHRoZQorICAgICAgICBXZWJLaXQgY2xpZW50IGFib3V0IHdoaWNoIGNvbnRy
b2wgdHlwZXMgYXJlIHByZXNlbnQgaW4gdGhlIG1vZGFsIGNvbnRhaW5lci4KKwogMjAyMS0xMi0y
MSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHByZW11bHRpcGxpZWQgYWxwaGEgaW50ZXJwb2xhdGVkIGdyYWRpZW50cyBhbmQgZGVmYXVs
dGVkIG9mZiBvcHRpb24gdG8gdXNlIHRoZW0gZm9yIENTUyBHcmFkaWVudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YWJkMWJkMWRmZTVhYzcyM2NjZjllZDg1OGU4NjAzNDhjZTM3YTQ5Ni4uMjM3YmFhMjk4NTU3NGY0
NDBjZGE5NTUzN2IyZTRmYWExNzBiZDIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAy
MS0xMi0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBo
YW5kbGUgZGV0ZWN0ZWQgbW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDQwCisgICAgICAgIHJkYXI6Ly83NzA3MzczNQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBhIG5ldyBVSSBkZWxlZ2F0ZSBtZXRob2QsIGAtX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9y
TW9kYWxDb250YWluZXI6ZGVjaXNpb25IYW5kbGVyOmAsIHRoYXQgaXMKKyAgICAgICAgaW52b2tl
ZCB3aGVuIGEgbW9kYWwgY29udGFpbmVyIGhhcyBiZWVuIGRldGVjdGVkIGFuZCBzdXBwcmVzc2Vk
IGR1ZSB0byBhIFdlYktpdCBjbGllbnQgc3BlY2lmeWluZyB0aGUKKyAgICAgICAgYF9XS1dlYnNp
dGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5UHJvbXB0YCBvcHRpb24gaW4gd2VicGFn
ZSBwcmVmZXJlbmNlcy4gVGhpcyBuZXcgZGVsZWdhdGUgbWV0aG9kIGlzCisgICAgICAgIGludm9r
ZWQgd2l0aCBhIG5ldyBgX1dLTW9kYWxDb250YWluZXJJbmZvYCBvYmplY3QsIHdoaWNoIChmb3Ig
bm93KSBqdXN0IGVuY2Fwc3VsYXRlcyBhbiBvcHRpb24gc2V0IG9mCisgICAgICAgIE1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGVzIHRoYXQgaW5kaWNhdGVzIHdoaWNoIHR5cGVzIG9mIG1vZGFsIGNv
bnRhaW5lcnMgYXJlIGF2YWlsYWJsZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAg
IChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcik6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKFdl
YktpdDo6bW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6
OmNvcmVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCisgICAgICAgIFJl
bW92ZSBzdXBwb3J0IGZvciB0d28gdW51c2VkIHBvbGljeSBmbGFncywgYF9XS1dlYnNpdGVNb2Rh
bENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3dgIGFuZAorICAgICAgICBgX1dLV2Vic2l0
ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhbGxvd2AuIFRoZXNlIGFyZSBub3cg
b2J2aWF0ZWQgYnkgdGhlIG5ldyBkZWNpc2lvbiBoYW5kbGVyIHJldHVybgorICAgICAgICB2YWx1
ZXMgYF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb25IaWRlQW5kQWxsb3dgIGFuZCBgX1dLTW9kYWxD
b250YWluZXJEZWNpc2lvbkhpZGVBbmREaXNhbGxvd2AsIHJlc3BlY3RpdmVseS4KKyAgICAgICAg
V2hpbGUgdGhpcyBsZWF2ZXMgdXMgd2l0aCBvbmx5IHR3byBwb2xpY3kgbW9kZXMgKHN1Y2ggdGhh
dCB0aGUgcG9saWN5IGNhbiBub3cgYmUgdHVybmVkIGludG8gYSBzaW5nbGUgQk9PTAorICAgICAg
ICBzd2l0Y2gpLCBJJ20ga2VlcGluZyB0aGUgbmFtZWQgZW51bSBmbGFncyBmb3Igbm93LCBzaW5j
ZToKKworICAgICAgICAxLiBUaGUgZXhpc3RpbmcgbmFtZXMgZG8gYSBiZXR0ZXIgam9iIG9mIGRl
c2NyaWJpbmcgdGhlaXIgcmVzcGVjdGl2ZSBiZWhhdmlvcnMgdGhhbiBhIHNpbmdsZSBCT09MIGZs
YWcgbGlrZQorICAgICAgICBgbW9kYWxDb250YWluZXJPYnNlcnZlclNob3VsZFByb21wdGAsIG9y
IGBtb2RhbENvbnRhaW5lck9ic2VydmVyRW5hYmxlZGAsIGFuZC4uLgorCisgICAgICAgIDIuIFdl
J2xsIHByb2JhYmx5IG5lZWQgdG8gZXh0ZW5kIHRoaXMgcG9saWN5IHNldCB0byBhZGQgYSBuZXcg
dmFsdWUgaW4gdGhlIG5lYXIgZnV0dXJlLCBhbnl3YXlzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5tbToKKyAgICAgICAgKC1bX1dLTW9kYWxD
b250YWluZXJJbmZvIGluaXRXaXRoVHlwZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVyLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToK
KyAgICAgICAgKFdlYktpdDo6Y29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24pOgorICAgICAgICAo
V2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWlu
ZXIpOgorCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgdGhlIG5ldyBjaHJvbWUgY2xpZW50IGhv
b2sgdGhyb3VnaCBXZWJDaHJvbWVDbGllbnQsIFdlYlBhZ2UsIFdlYlBhZ2VQcm94eSwgYW5kIGZp
bmFsbHkgdGhlIFVJCisgICAgICAgIGNsaWVudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck1vZGFsQ29udGFpbmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMjEtMTIt
MjEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBJUEMg
c3RyZWFtcyBzaG91bGQgbm90IGFjY2VwdCAwLWxlbmd0aCBzdHJlYW0gYnVmZmVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDliZGEyNzdhYTNiZDFjZDg4NzIzNmUzNTRlNzQ4NmRi
OTQ4NDI0ZjguLjljNzVmM2ZkYzU0NjU3ODdlYTk2M2VhNmU2MWUxYTY2N2IxNzBkNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMi0yMSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgZGV0ZWN0
ZWQgbW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM0NDQwCisgICAgICAgIHJkYXI6Ly83NzA3MzczNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKwog
MjAyMS0xMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgY2xpZW50IGxheWVyIHBsdW1iaW5nIGZvciBjbGFzc2lmeWluZyBtb2RhbCBjb250
YWluZXIgY29udHJvbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBiMDBhMjdjNDg3
NTFjZTA1YmNjYWExNzgwNzhiNDQ4NzMxZDIxZTExLi40NWFiMGY5Mjg0MzE4NjQ5MDA1ODA3Y2Ix
MGE0MGE5YzU2MzRlNGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjEtMTItMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgVUkgZGVsZWdhdGUgbWV0aG9kIHRvIGRlY2lk
ZSBob3cgdG8gaGFuZGxlIGRldGVjdGVkIG1vZGFsIGNvbnRhaW5lcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ0MAorICAgICAgICByZGFyOi8v
NzcwNzM3MzUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBT
ZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorCiAyMDIxLTEyLTIxICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcHJlbXVsdGlw
bGllZCBhbHBoYSBpbnRlcnBvbGF0ZWQgZ3JhZGllbnRzIGFuZCBkZWZhdWx0ZWQgb2ZmIG9wdGlv
biB0byB1c2UgdGhlbSBmb3IgQ1NTIEdyYWRpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYjFm
ODVkZmExMmViYTdjNzYwZDVlYjkxYTdlNTVmM2I2YzUwOGFmNS4uYWJlZWJmZWY5MWRhOTBiOTVm
YTQ5MjBkMWY2MjZjNmFjYjU1YWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTA5LDcgKzEx
MDksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9N
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgKICAgICBwYWdlL01lZGlhUHJvZHVjZXIuaAog
ICAgIHBhZ2UvTWVtb3J5UmVsZWFzZS5oCi0gICAgcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlLmgKKyAgICBwYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaAogICAgIHBhZ2UvTmF2aWdhdG9y
SXNMb2dnZWRJbi5oCiAgICAgcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xpY3kuaAogICAgIHBhZ2Uv
UGFnZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMjI2NGU1NmVmYTNhZGNmMDdkOWZhNTQ0ODBjOWM3ODcwNjNjZGJmOC4uMDRl
ODQxZmJlMGU1N2Q3NjQ5ODVkYzY5OTdmNmY2ODU1MDc0NTZmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTUwOSw3ICs1NTA5
LDcgQEAKIAkJRjQ4RDJBNkMyMTU2MjNCNDAwQzY3NTJCIC8qIEZvbnRTaGFkb3cuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTZBMjE1NjIzQjQw
MEM2NzUyQiAvKiBGb250U2hhZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBN0UyMTU3MTgyNjAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1
dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhE
MkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkFBNTIxNTk3NDBEMDBDNjc1
MkIgLyogQ29sb3JDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ4RDJBQTMyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNDkzMjg4MzI3Njkw
NDFCMDAzRTIwRjggLyogTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4
IC8qIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNDkzMjg4MzI3NjkwNDFCMDAzRTIwRjggLyogTW9k
YWxDb250YWluZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDk3
ODY4ODFGRjQ1RkE1MDBFMDYwQUIgLyogUGFzdGVib2FyZEl0ZW1JbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk3ODY4NzFGRjQ1RkE1MDBFMDYw
QUIgLyogUGFzdGVib2FyZEl0ZW1JbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRCMDAxODkyNkU3RjIxRjAwNkVBQUJFIC8qIEhUTUxBdG9t
U3RyaW5nQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0QjAwMTg3MjZFN0YyMUYwMDZFQUFCRSAvKiBIVE1MQXRvbVN0cmluZ0NhY2hlLmggKi87
IH07CiAJCUY0QjJBOTA5MjY1MDMwQkEwMDlFNzI4NiAvKiBEYXRhRGV0ZWN0b3JIaWdobGlnaHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjJBOTA2
MjY1MDJCQTAwMDlFNzI4NiAvKiBEYXRhRGV0ZWN0b3JIaWdobGlnaHQuaCAqLzsgfTsKQEAgLTE3
NzQwLDcgKzE3NzQwLDcgQEAKIAkJRjQ4RDJBN0EyMTU3MDUxRTAwQzY3NTJCIC8qIEZvbnRTaGFk
b3dDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRTaGFkb3dDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBQTMyMTU5NzQwRDAwQzY3NTJCIC8qIENv
bG9yQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sb3JDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDhEMkFBNDIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbG9yQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1v
ZGFsQ29udGFpbmVyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kYWxDb250YWluZXJUeXBlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIg
LyogUGFzdGVib2FyZEl0ZW1JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRJdGVtSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDlFOThFNDIxREVFNkMxMDA5QUU1
NUUgLyogRWRpdEFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0QWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRCMDAxODcyNkU3RjIxRjAwNkVBQUJFIC8q
IEhUTUxBdG9tU3RyaW5nQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEF0b21TdHJpbmdDYWNo
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyNjIsMTIgKzE5MjYyLDEyIEBA
CiAJCTExQTFFNkZCMjZGQkI2Q0UwMDQzNUQzNiAvKiBkaXNwbGF5ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk2RjYwRTVBOTI3NzEwRjM5MDA1QzE1Qjkg
LyogSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmggKi8sCi0JCQkJNkY2MEU1QTcyNzcxMEYyRjAw
NUMxNUI5IC8qIElubGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAgKi8sCiAJCQkJNkZDM0Y5NDUy
NTE2NzU2NjAwQTQ5QkVBIC8qIElubGluZURpc3BsYXlCb3guaCAqLywKIAkJCQkxMTUxM0QwMDI2
RDk4MUREMDA0RDNGQUEgLyogSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCAqLywKIAkJ
CQkxMTUxM0QwMjI2RDk4MUU3MDA0RDNGQUEgLyogSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVy
LmggKi8sCiAJCQkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZURpc3BsYXlMaW5l
LmggKi8sCisJCQkJNkY2MEU1QTcyNzcxMEYyRjAwNUMxNUI5IC8qIElubGluZURpc3BsYXlMaW5l
QnVpbGRlci5jcHAgKi8sCisJCQkJNkY2MEU1QTkyNzcxMEYzOTAwNUMxNUI5IC8qIElubGluZURp
c3BsYXlMaW5lQnVpbGRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBkaXNwbGF5OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzOTkxLDkgKzIzOTkxLDkgQEAKIAkJCQk1MkUyQ0FG
QjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovLAogCQkJCTQxM0UwMDc3MURC
MEU0REUwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmNwcCAqLywKIAkJCQk0MTNFMDA3ODFEQjBF
NERFMDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5oICovLAotCQkJCUY0OTMyODgyMjc2OTA0MUIw
MDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmggKi8sCiAJCQkJQTEwRjdDNzEy
NzMxMDA3MzAwOEZBOUFGIC8qIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwICovLAogCQkJCUEx
MEY3QzcwMjczMTAwNzMwMDhGQTlBRiAvKiBNb2RhbENvbnRhaW5lck9ic2VydmVyLmggKi8sCisJ
CQkJRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCAqLywK
IAkJCQk5M0VCMzU1RTA5RTM3RkQ2MDBGNDM3OTkgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cy5jcHAgKi8sCiAJCQkJOTM1QzQ3NjIwOUFDNENFNjAwQTZBQUI0IC8qIE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMuaCAqLywKIAkJCQk2QjUwN0EyMzIzNEJGMzQxMDBCRTdDNjIgLyog
TmF2aWdhdG9yK0lzTG9nZ2VkSW4uaWRsICovLApAQCAtMzMzNDksNyArMzMzNDksNiBAQAogCQkJ
CTgzNzg4NzgyMjREOEE2MDkwMDBENEE1QiAvKiBBdWRpb0J1ZmZlclNvdXJjZU9wdGlvbnMuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDdDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMxOUNERjIyNzZGRkM2RDAwNTNGNzM0IC8qIEdy
YWRpZW50UmVuZGVyZXJDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0EyNTc5OUY4ODAw
NjU2M0JCIC8qIEF1ZGlvQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYw
MDUxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTc4NUQ5NjIyNEI3RjczNTAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDUxMCw3ICszNDUwOSw5IEBACiAJCQkJMzExNTE4RkMxRTc4
QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1M0M1RjUwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjIyNzk2NDBEMDBCRjIyMDA3MUI3ODIgLyogR3JhZGllbnRBdHRyaWJ1
dGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzE5Q0RGNDI3NzEwNjM5MDA1M0Y3MzQgLyogR3Jh
ZGllbnRDb2xvclN0b3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFB
NzgzNCAvKiBHcmFkaWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzE5Q0RGMjI3NkZG
QzZEMDA1M0Y3MzQgLyogR3JhZGllbnRSZW5kZXJlckNHLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0Nv
bnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDg0Myw2ICszNDg0NCw3IEBACiAJCQkJNkZD
M0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZURpc3BsYXlCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCTExNTEzRDAzMjZEOTgxRTgwMDREM0ZBQSAvKiBJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGOTE0MjExMjUxNTIxMzgwMDRFNEZFQSAvKiBJ
bmxpbmVEaXNwbGF5TGluZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkY2MEU1QUEyNzcxMEYzOTAw
NUMxNUI5IC8qIElubGluZURpc3BsYXlMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkY3Q0EzQ0EyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0N0M0RDU3RDI2NTA4QkNCMDBDN0FCMUYgLyogSW5saW5lRm9ybWF0
dGluZ0dlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkU2MzZFODI2NDc5NjI5MDBGMDk1
MUUgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDkwNiw3
ICszNDkwOCw2IEBACiAJCQkJQTVCODFDQUQxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk0QzYwM0EyNTNBMjc3MzAwQkRG
MDYwIC8qIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQzE5Q0RGNDI3NzEwNjM5MDA1M0Y3MzQgLyogR3JhZGllbnRD
b2xvclN0b3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzUzMTEyOTREOUQwMEYyNkVFRSAv
KiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBF
NzcwRjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNjE0Nyw4ICszNjE0OCw4IEBACiAJCQkJQ0RGMkIwMTcxODIw
NTQwNzAwRjJCNDI0IC8qIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDREYyQjAxOTE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTcxNTYxMEMyMzRDMUNBMTAwOEZDN0FCIC8qIE1vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCUY0OTMyODgzMjc2OTA0MUIwMDNF
MjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MTBGN0M3MzI3MzEwMEQwMDA4RkE5QUYgLyogTW9kYWxDb250YWluZXJPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjQ5MzI4ODMyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVy
VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzhEMzk4MjVGMkZFOTcwMENGQ0JBQiAvKiBN
b2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzRTc5RUEyNzNDODZCODAwOTdGOTA1IC8qIE1v
ZGVsRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkI0MTE3MjczMkY0MUUwMEEyRDE5
MSAvKiBNb2RlbFBsYXllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzY3Niw3ICszNzY3Nyw2IEBA
CiAJCQkJQkVGMjlFRUMxNzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDMzNkY2NDE3RkEwQTREMDBERERDRDAgLyogVmlkZW9UcmFja1By
aXZhdGVBVkYuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMzM2RjY4MTdGQTBBQzYwMERERENEMCAv
KiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAotCQkJCTZGNjBFNUFB
Mjc3MTBGMzkwMDVDMTVCOSAvKiBJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEMUY5QjE0MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZp
ZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
NzBFODFEMTFCRjI3NjU2MDAxRkRBNDggLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4
IDBlMDEyYjY4YzI0YjMzNGY5MWM1NzEwNWY0ZDI1MjNkNjJiNDY3MGEuLmI0Njk4MWQ3NTBiMjVj
MWZkMzA3ZjE2ZmRhNzRiN2VlMzA2YTRjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5oCkBAIC0xNDUsMTIgKzE0NSw3IEBAIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGlj
eSA6IHVpbnQ4X3QgewogI2VuZGlmCiB9OwogCi1lbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyT2Jz
ZXJ2YXRpb25Qb2xpY3kgOiB1aW50OF90IHsKLSAgICBEaXNhYmxlZCwKLSAgICBQcm9tcHQsCi0g
ICAgQWxsb3csCi0gICAgRGlzYWxsb3csCi19OworZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lck9i
c2VydmF0aW9uUG9saWN5IDogYm9vbCB7IERpc2FibGVkLCBQcm9tcHQgfTsKIAogZW51bSBjbGFz
cyBDb2xvclNjaGVtZVByZWZlcmVuY2UgOiB1aW50OF90IHsKICAgICBOb1ByZWZlcmVuY2UsCkBA
IC04MDgsOSArODAzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5PiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eSwKICAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlz
YWJsZWQsCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6
OlByb21wdCwKLSAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eTo6QWxsb3csCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xp
Y3k6OkRpc2FsbG93CisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Q
b2xpY3k6OlByb21wdAogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCmluZGV4IDU1MjU2MmU1NGJiYTU3M2JlYWIwYjIwZmE2NDA1ZTkzM2MxYjY4NjIuLjc1
OGNiZTgwNjU0ZTg4ODk3YWNkOWVkNDExOTkwYzg2ODZjYWYzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC02Myw3ICs2Myw3IEBACiAjaW5jbHVkZSAiTGliV2Vi
UlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgotI2luY2x1ZGUgIk1vZGFsQ29udGFpbmVyQ29u
dHJvbFR5cGUuaCIKKyNpbmNsdWRlICJNb2RhbENvbnRhaW5lclR5cGVzLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
Z2VDb25maWd1cmF0aW9uLmgiCkBAIC01OTYsNiArNTk2LDExIEBAIHZvaWQgRW1wdHlDaHJvbWVD
bGllbnQ6OmNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBD
b21wbGV0CiAgICAgY29tcGxldGlvbih7IH0pOwogfQogCit2b2lkIEVtcHR5Q2hyb21lQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJD
b250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lv
bik+JiYgY29tcGxldGlvbikKK3sKKyAgICBjb21wbGV0aW9uKE1vZGFsQ29udGFpbmVyRGVjaXNp
b246OlNob3cpOworfQorCiB2b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAppbmRleCBhYTE0YzRhMWI5YTZkMzNhYWYwZGIzZDlkYTIyNjVhOWM2
MzRhMzg5Li5jZDVmMjhmMTQ2MWU4YTJlNmFkYmMwZDAwZTU4ZGVlNTZkNGQwNzM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMjEsNiArMjIxLDcgQEAgY2xhc3MgRW1w
dHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAgIHZvaWQgcmVxdWVz
dENvb2tpZUNvbnNlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb29raWVDb25zZW50RGVjaXNp
b25SZXN1bHQpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250
cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxNb2Rh
bENvbnRhaW5lckNvbnRyb2xUeXBlPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYpIGZpbmFs
OwogfTsKIAogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDkwMzk5NmFiMjM2MzU3
NTZhM2I4YzEzY2EwMmFjNTE2NTM3MzNjZTAuLjM1MmUwM2YwYzQxNmI2MzgwMGU3MTQyOWU4YzI4
YWUzY2RjMjYwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTQ0LDYgKzE0
NCw3IEBAIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIAogZW51bSBjbGFzcyBDb29raWVDb25zZW50
RGVjaXNpb25SZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlIDogdWludDhfdDsKK2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJEZWNpc2lvbiA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiAKIGNsYXNz
IENocm9tZUNsaWVudCB7CkBAIC02MjcsNiArNjI4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbVN0cmluZyYgc2VhcmNoU3RyaW5nRm9yTW9kYWxDb250YWluZXJPYnNlcnZlcigp
IGNvbnN0IHsgcmV0dXJuIG51bGxBdG9tKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xhc3NpZnlN
b2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYgdGV4dHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYmKSA9IDA7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9u
U2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1v
ZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IH5DaHJvbWVDbGllbnQoKSA9IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggY2Q1ZDUxZGEyZTg5MjBkYTAzYmVhY2M4YzAyN2ZhYjM3NTFjODg2ZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01v
ZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlIDogdWludDhfdCB7Ci0gICAgTmV1dHJhbCwKLSAgICBQb3NpdGl2ZSwKLSAgICBOZWdh
dGl2ZSwKLSAgICBPdGhlciwKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNw
YWNlIFdURiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TW9kYWxD
b250YWluZXJDb250cm9sVHlwZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0g
ICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUsCi0gICAgICAgIFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwsCi0gICAgICAgIFdlYkNvcmU6
Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6OlBvc2l0aXZlLAotICAgICAgICBXZWJDb3JlOjpN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZWdhdGl2ZSwKLSAgICAgICAgV2ViQ29yZTo6TW9k
YWxDb250YWluZXJDb250cm9sVHlwZTo6T3RoZXIKLSAgICA+OwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmNw
cAppbmRleCBkMjBiYjEzNDA1M2ZlZDVmYWVhMmFlZTQwZjZkNTFiZjNhYWNjY2EwLi44NjdiM2Jk
NWMxMjZhYWUwYmEyMzA5M2VmMTYyZmMxZTBjZWZjNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNs
dWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiTW9kYWxDb250YWluZXJDb250cm9s
VHlwZS5oIgorI2luY2x1ZGUgIk1vZGFsQ29udGFpbmVyVHlwZXMuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGV4dC5oIgpAQCAtMzAwLDkgKzMwMCw0OSBAQCB2b2lkIE1vZGFsQ29udGFpbmVyT2JzZXJ2
ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50c1RpbWVyRmlyZWQoKQogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgVmVjdG9yPFJlZjxIVE1MRWxl
bWVudD4+IHBvc2l0aXZlQ29udHJvbHM7Ci0gICAgICAgICAgICBWZWN0b3I8UmVmPEhUTUxFbGVt
ZW50Pj4gbmV1dHJhbENvbnRyb2xzOwotICAgICAgICAgICAgVmVjdG9yPFJlZjxIVE1MRWxlbWVu
dD4+IG5lZ2F0aXZlQ29udHJvbHM7CisgICAgICAgICAgICBzdHJ1Y3QgQ2xhc3NpZmllZENvbnRy
b2xzIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8V2Vha1B0cjxIVE1MRWxlbWVudD4+IHBvc2l0
aXZlOworICAgICAgICAgICAgICAgIFZlY3RvcjxXZWFrUHRyPEhUTUxFbGVtZW50Pj4gbmV1dHJh
bDsKKyAgICAgICAgICAgICAgICBWZWN0b3I8V2Vha1B0cjxIVE1MRWxlbWVudD4+IG5lZ2F0aXZl
OworCisgICAgICAgICAgICAgICAgSFRNTEVsZW1lbnQqIGNvbnRyb2xUb0NsaWNrKE1vZGFsQ29u
dGFpbmVyRGVjaXNpb24gZGVjaXNpb24pIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICBhdXRvIG1hdGNoTm9uTnVsbCA9IFsmXShjb25zdCBXZWFrUHRyPEhUTUxF
bGVtZW50PiYgZWxlbWVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEhZWxl
bWVudDsKKyAgICAgICAgICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgICAgICAgICBzd2l0
Y2ggKGRlY2lzaW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJE
ZWNpc2lvbjo6U2hvdzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckRl
Y2lzaW9uOjpIaWRlQW5kSWdub3JlOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFs
bG93OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gaW5kZXggPSBwb3NpdGl2ZS5m
aW5kTWF0Y2hpbmcobWF0Y2hOb25OdWxsKTsgaW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l0aXZlW2luZGV4XS5nZXQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChhdXRvIGluZGV4ID0gbmV1dHJhbC5maW5kTWF0Y2hpbmcobWF0
Y2hOb25OdWxsKTsgaW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldXRyYWxbaW5kZXhdLmdldCgpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6
SGlkZUFuZERpc2FsbG93OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gaW5kZXgg
PSBuZWdhdGl2ZS5maW5kTWF0Y2hpbmcobWF0Y2hOb25OdWxsKTsgaW5kZXggIT0gbm90Rm91bmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0aXZlW2luZGV4XS5nZXQo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0
eXBlcygpIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBPcHRp
b25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4gYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090
aGVyOworICAgICAgICAgICAgICAgICAgICBpZiAoIXBvc2l0aXZlLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZVR5cGVzSWdub3JpbmdPdGhlci5hZGQoTW9kYWxD
b250YWluZXJDb250cm9sVHlwZTo6UG9zaXRpdmUpOworICAgICAgICAgICAgICAgICAgICBpZiAo
IW5lZ2F0aXZlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZVR5
cGVzSWdub3JpbmdPdGhlci5hZGQoTW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmUp
OworICAgICAgICAgICAgICAgICAgICBpZiAoIW5ldXRyYWwuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090aGVyLmFkZChNb2RhbENvbnRh
aW5lckNvbnRyb2xUeXBlOjpOZXV0cmFsKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF2
YWlsYWJsZVR5cGVzSWdub3JpbmdPdGhlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9OworCisgICAgICAgICAgICBDbGFzc2lmaWVkQ29udHJvbHMgY2xhc3NpZmllZENvbnRyb2xz
OwogICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IHR5cGVzLnNpemUo
KTsgKytpbmRleCkgewogICAgICAgICAgICAgICAgIGF1dG8gY29udHJvbCA9IGNvbnRyb2xzW2lu
ZGV4XTsKICAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2wpCkBAIC0zMTAsNTEgKzM1MCw1NyBA
QCB2b2lkIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50c1Rp
bWVyRmlyZWQoKQogCiAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlc1tpbmRleF0pIHsKICAg
ICAgICAgICAgICAgICBjYXNlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6OlBvc2l0aXZlOgot
ICAgICAgICAgICAgICAgICAgICBwb3NpdGl2ZUNvbnRyb2xzLmFwcGVuZCgqY29udHJvbCk7Cisg
ICAgICAgICAgICAgICAgICAgIGNsYXNzaWZpZWRDb250cm9scy5wb3NpdGl2ZS5hcHBlbmQoY29u
dHJvbCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2Ug
TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmU6Ci0gICAgICAgICAgICAgICAgICAg
IG5lZ2F0aXZlQ29udHJvbHMuYXBwZW5kKCpjb250cm9sKTsKKyAgICAgICAgICAgICAgICAgICAg
Y2xhc3NpZmllZENvbnRyb2xzLm5lZ2F0aXZlLmFwcGVuZChjb250cm9sKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlOjpOZXV0cmFsOgotICAgICAgICAgICAgICAgICAgICBuZXV0cmFsQ29udHJvbHMuYXBw
ZW5kKCpjb250cm9sKTsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmllZENvbnRyb2xzLm5l
dXRyYWwuYXBwZW5kKGNvbnRyb2wpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICBjYXNlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok90aGVyOgogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udHJvbFRvQ2xpY2s7Ci0gICAgICAg
ICAgICBzd2l0Y2ggKGRvY3VtZW50TG9hZGVyLT5tb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9s
aWN5KCkpIHsKLSAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eTo6RGlzYWJsZWQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIE1vZGFsQ29udGFpbmVyT2JzZXJ2
YXRpb25Qb2xpY3k6OkFsbG93OiB7Ci0gICAgICAgICAgICAgICAgaWYgKCFwb3NpdGl2ZUNvbnRy
b2xzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udHJvbFRvQ2xpY2sgPSBwb3Np
dGl2ZUNvbnRyb2xzWzBdLnB0cigpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFuZXV0cmFs
Q29udHJvbHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sVG9DbGljayA9
IG5ldXRyYWxDb250cm9sc1swXS5wdHIoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eTo6RGlzYWxsb3c6IHsKLSAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlQ29udHJvbHMuaXNF
bXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sVG9DbGljayA9IG5lZ2F0aXZlQ29u
dHJvbHNbMF0ucHRyKCk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoIW5ldXRyYWxDb250cm9s
cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrID0gbmV1dHJh
bENvbnRyb2xzWzBdLnB0cigpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpQcm9t
cHQ6Ci0gICAgICAgICAgICAgICAgLy8gTm90IHN1cHBvcnRlZCB5ZXQuCi0gICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBvYnNlcnZlci0+bV9oYXNBdHRlbXB0ZWRUb0Z1bGZpbGxQ
b2xpY3kgPSB0cnVlOworCisgICAgICAgICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2Uo
KTsKKyAgICAgICAgICAgIGlmICghcGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIGF1dG8gY2xpY2thYmxlQ29udHJvbFR5cGVzID0gY2xhc3NpZmllZENvbnRyb2xz
LnR5cGVzKCk7CisgICAgICAgICAgICBpZiAoY2xpY2thYmxlQ29udHJvbFR5cGVzLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgICAgIG9ic2VydmVyLT5yZXZlYWxNb2RhbENvbnRhaW5lcigpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb2Jz
ZXJ2ZXItPm1faGFzQXR0ZW1wdGVkVG9GdWxmaWxsUG9saWN5ID0gdHJ1ZTsKKyAgICAgICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKGNs
aWNrYWJsZUNvbnRyb2xUeXBlcywgW3dlYWtEb2N1bWVudCA9IFdURk1vdmUod2Vha0RvY3VtZW50
KSwgb2JzZXJ2ZXIsIGNsYXNzaWZpZWRDb250cm9scyA9IFdURk1vdmUoY2xhc3NpZmllZENvbnRy
b2xzKV0oYXV0byBkZWNpc2lvbikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgUmVmUHRyIGRv
Y3VtZW50ID0gd2Vha0RvY3VtZW50LmdldCgpOworICAgICAgICAgICAgICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlmIChv
YnNlcnZlciAhPSBkb2N1bWVudC0+bW9kYWxDb250YWluZXJPYnNlcnZlcklmRXhpc3RzKCkpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlmIChkZWNpc2lv
biA9PSBNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KSB7CisgICAgICAgICAgICAgICAgICAg
IG9ic2VydmVyLT5yZXZlYWxNb2RhbENvbnRhaW5lcigpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoY29udHJvbFRvQ2xp
Y2spCi0gICAgICAgICAgICAgICAgY29udHJvbFRvQ2xpY2stPmRpc3BhdGNoU2ltdWxhdGVkQ2xp
Y2sobnVsbHB0ciwgU2VuZE1vdXNlVXBEb3duRXZlbnRzLCBEb05vdFNob3dQcmVzc2VkTG9vayk7
CisgICAgICAgICAgICAgICAgaWYgKFJlZlB0ciBjb250cm9sVG9DbGljayA9IGNsYXNzaWZpZWRD
b250cm9scy5jb250cm9sVG9DbGljayhkZWNpc2lvbikpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRyb2xUb0NsaWNrLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIFNlbmRNb3VzZVVw
RG93bkV2ZW50cywgRG9Ob3RTaG93UHJlc3NlZExvb2spOworICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogfQogCit2b2lkIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnJldmVh
bE1vZGFsQ29udGFpbmVyKCkKK3sKKyAgICBpZiAoYXV0byBjb250YWluZXIgPSBzdGQ6OmV4Y2hh
bmdlKG1fY29udGFpbmVyLCB7IH0pKQorICAgICAgICBjb250YWluZXItPmludmFsaWRhdGVTdHls
ZSgpOworfQorCiBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQ+PiwgVmVjdG9y
PFN0cmluZz4+IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50
cygpCiB7CiAgICAgUmVmIGNvbnRhaW5lciA9ICptX2NvbnRhaW5lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmgKaW5kZXggZGRkN2I4Zjc1MTdkMDg3YmIw
ODRmNWYxYzZhZTBiZWVjN2I1YmE5Zi4uYTczNTZmZWYyZmM1ZDExYmQ4MDQwYmYyOWFhOThjYTZj
NTI0MWU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9i
c2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVy
LmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxl
Q2xpY2thYmxlRWxlbWVudENvbGxlY3Rpb24oKTsKICAgICB2b2lkIGNvbGxlY3RDbGlja2FibGVF
bGVtZW50c1RpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHJldmVhbE1vZGFsQ29udGFpbmVyKCk7CiAK
ICAgICBzdGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQ+PiwgVmVjdG9yPFN0cmlu
Zz4+IGNvbGxlY3RDbGlja2FibGVFbGVtZW50cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9k
YWxDb250YWluZXJUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZTU0ZmQ3NjE3MDI2NjU1ZDEwNTQzZGJk
MTliNTM5OGVjMzg3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01v
ZGFsQ29udGFpbmVyVHlwZXMuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3Qgewor
ICAgIE5ldXRyYWwgPSAxIDw8IDAsCisgICAgUG9zaXRpdmUgPSAxIDw8IDEsCisgICAgTmVnYXRp
dmUgPSAxIDw8IDIsCisgICAgT3RoZXIgPSAxIDw8IDMsCit9OworCitlbnVtIGNsYXNzIE1vZGFs
Q29udGFpbmVyRGVjaXNpb24gOiB1aW50OF90IHsKKyAgICBTaG93LAorICAgIEhpZGVBbmRJZ25v
cmUsCisgICAgSGlkZUFuZEFsbG93LAorICAgIEhpZGVBbmREaXNhbGxvdywKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4geworICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGUsCisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6
Ok5ldXRyYWwsCisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6OlBv
c2l0aXZlLAorICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZWdh
dGl2ZSwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6T3RoZXIK
KyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNb2Rh
bENvbnRhaW5lckRlY2lzaW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAg
ICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29yZTo6
TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdywKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250
YWluZXJEZWNpc2lvbjo6SGlkZUFuZElnbm9yZSwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250
YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFsbG93LAorICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRh
aW5lckRlY2lzaW9uOjpIaWRlQW5kRGlzYWxsb3cKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBjZTVm
ZWEyYjJlYTE2N2U3M2EyMzEwOTIyYTA2MThmMmNkMTc5MTU0Li42Y2I3NTc2OWQ0ZmQ0YzBhM2Yw
YWIwYmNlMmYxYjc4NGMwMWU0NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKQEAgLTgwMiw2ICs4MDIsOCBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToK
ICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9N
ZWRpYVByb2R1Y2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRT
dGF0ZSc6IFsnPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TW9kYWxDb250
YWluZXJDb250cm9sVHlwZSc6IFsnPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPiddLAor
ICAgICAgICAnV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbic6IFsnPFdlYkNvcmUvTW9k
YWxDb250YWluZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGlj
eSc6IFsnPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1v
dmVEYXRhJzogWyc8V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtMb2Fk
SW5mb3JtYXRpb24uaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2NWQ5MTgxYmEwYzll
MTFkYzhiNmNmNGEwNzEyY2MyNTIzYzJmZWE1Li4xMWYwYzI0MDVhYzk0NzRiZThmOGU4MDVmZWVi
YzhmMWJiNjk2MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yODcsNiArMjg3LDcgQEAg
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
dGVybmFsRGVidWdGZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0xpbmtJY29uUGFy
YW1ldGVycy5tbQorVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8ubW0K
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8ubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggN2I2NDQwY2ZiMzdkYWUzNWI2MzljY2Vk
NGYxMjE0ODczMDZiMTQ2OS4uOTY4NTA1NDkyOWNmZGMzNWU5OGExNWYwNTRmNzgzOWUxZGY0YWUw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nv
b2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTE0Niw2
ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXF1
ZXN0aW5nRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgY3VycmVudERv
bWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q29v
a2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tpZUNvbnNlbnRE
ZWNpc2lvblJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0OjpOb3RTdXBwb3J0ZWQpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBs
ZXRpb24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7IH0KIAogICAgIC8v
IFByaW50aW5nLgogICAgIHZpcnR1YWwgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JikgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmgKaW5kZXggMGJmMjBkOTc0M2M0OTlkYTMyMjJhN2Q0NTRkNGFmZmM0MjBiYjExYS4uOWM0MzIx
M2I2NDk4ZTZlYTkzZDJkNDdkMzg5NzhkODEwMGQzZGMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC00
Miw2ICs0Miw3IEBACiBAY2xhc3MgX1dLSW5zcGVjdG9yOwogQGNsYXNzIF9XS0luc3BlY3RvckNv
bmZpZ3VyYXRpb247CiBAY2xhc3MgX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm87CitAY2xhc3Mg
X1dLTW9kYWxDb250YWluZXJJbmZvOwogCiAjaWYgVEFSR0VUX09TX0lPUwogCkBAIC0xMDMsNiAr
MTA0LDEzIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tYUlNlc3Npb25GZWF0
dXJlRmxhZ3MpIHsKICAgICBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5
cGVVbmJvdW5kZWQgPSAxIDw8IDQsCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS01v
ZGFsQ29udGFpbmVyRGVjaXNpb24pIHsKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uU2hv
dywKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZElnbm9yZSwKKyAgICBfV0tN
b2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZEFsbG93LAorICAgIF9XS01vZGFsQ29udGFpbmVy
RGVjaXNpb25IaWRlQW5kRGlzYWxsb3csCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGVQcml2YXRl
IDxXS1VJRGVsZWdhdGU+CiAKICNpZmRlZiBGT1VOREFUSU9OX0hBU19ESVJFQ1RJT05BTF9HRU9N
RVRSWQpAQCAtMTgxLDYgKzE4OSw4IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdENvb2tpZUNvbnNlbnRXaXRoTW9y
ZUluZm9IYW5kbGVyOih2b2lkICheKSh2b2lkKSltb3JlSW5mb0hhbmRsZXIgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjooX1dLTW9kYWxD
b250YWluZXJJbmZvICopY29udGFpbmVySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKF9X
S01vZGFsQ29udGFpbmVyRGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAjaWYgVEFSR0VUX09TX0lQ
SE9ORQogCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1
ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxl
bWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQppbmRleCA3
YTYxYThiNDQ3Zjk1ZDI5MjU3YmQ0NTZjOTViMDkyNWYwNjMyMGZlLi4zNDg0MTYxNWQ2YjkyZGQ5
MDE0NTM3ZDdlOTJiNWFhY2M2MzYwNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCkBAIC0xMTEsMTAg
KzExMSw2IEBAIHN0YXRpYyBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGlj
eSBtb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5CiAgICAgICAgIHJldHVybiBfV0tXZWJz
aXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2FibGVkOwogICAgIGNhc2UgV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6UHJvbXB0OgogICAgICAgICBy
ZXR1cm4gX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lQcm9tcHQ7Ci0g
ICAgY2FzZSBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpBbGxvdzoK
LSAgICAgICAgcmV0dXJuIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5
QWxsb3c7Ci0gICAgY2FzZSBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5
OjpEaXNhbGxvdzoKLSAgICAgICAgcmV0dXJuIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2Vy
dmF0aW9uUG9saWN5RGlzYWxsb3c7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIHJldHVybiBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2Fi
bGVkOwpAQCAtMTI3LDEwICsxMjMsNiBAQCBzdGF0aWMgV2ViQ29yZTo6TW9kYWxDb250YWluZXJP
YnNlcnZhdGlvblBvbGljeSBjb3JlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbAogICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWJs
ZWQ7CiAgICAgY2FzZSBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeVBy
b21wdDoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Q
b2xpY3k6OlByb21wdDsKLSAgICBjYXNlIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0
aW9uUG9saWN5QWxsb3c6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9i
c2VydmF0aW9uUG9saWN5OjpBbGxvdzsKLSAgICBjYXNlIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5l
ck9ic2VydmF0aW9uUG9saWN5RGlzYWxsb3c6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpNb2Rh
bENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzsKICAgICB9CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2
YXRpb25Qb2xpY3k6OkRpc2FibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4
IGU4YmI0ZWRlMjVkNTE2MjA2N2Y4MGFiZDZkY2VjNGFlMjdiZDBhYzQuLmZlZDAzODZkMTgxMjJm
MzUzMTI4MDMzY2Y5NjU1Mzg4YmE3MTYwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRl
LmgKQEAgLTY1LDggKzY1LDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dl
YnNpdGVNb3VzZUV2ZW50UG9saWN5KSB7CiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwg
X1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3kpIHsKICAgICBfV0tXZWJz
aXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2FibGVkLAogICAgIF9XS1dlYnNp
dGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5UHJvbXB0LAotICAgIF9XS1dlYnNpdGVN
b2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3csCi0gICAgX1dLV2Vic2l0ZU1vZGFs
Q29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhbGxvdywKIH0gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gQWxsb3cgb3ZlcnJpZGlu
ZyB0aGUgc3lzdGVtIGNvbG9yLXNjaGVtZSB3aXRoIGEgcGVyLXdlYnNpdGUgcHJlZmVyZW5jZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENv
bnRhaW5lckluZm8uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2Rh
bENvbnRhaW5lckluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmU1MzY1ZGU5MTU2ZDhkZjRlOTkxMTc4Nzc5
NDAxMDU3MjNiNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKwordHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS01v
ZGFsQ29udGFpbmVyQ29udHJvbFR5cGVzKSB7CisgICAgX1dLTW9kYWxDb250YWluZXJDb250cm9s
VHlwZU5ldXRyYWwgPSAxIDw8IDAsCisgICAgX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZVBv
c2l0aXZlID0gMSA8PCAxLAorICAgIF9XS01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVOZWdhdGl2
ZSA9IDEgPDwgMiwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpCitAaW50ZXJmYWNlIF9XS01vZGFsQ29udGFpbmVySW5mbyA6IE5TT2JqZWN0
CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTW9kYWxDb250YWluZXJDb250
cm9sVHlwZXMgYXZhaWxhYmxlVHlwZXM7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYyODRjMWViNjIxYzhiN2ExNTk2MWU0ZTkxYTQ4NGI3NWRjOTcxNzIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250
YWluZXJJbmZvLm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIl9XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmgiCisKKyNpbXBv
cnQgPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgorCitAaW1wbGVtZW50YXRpb24gX1dL
TW9kYWxDb250YWluZXJJbmZvCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFR5cGVzOihPcHRp
b25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4pdHlwZXMKK3sKKyAgICBp
ZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlm
ICh0eXBlcy5jb250YWlucyhXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQb3Np
dGl2ZSkpCisgICAgICAgIF9hdmFpbGFibGVUeXBlcyB8PSBfV0tNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlUG9zaXRpdmU7CisKKyAgICBpZiAodHlwZXMuY29udGFpbnMoV2ViQ29yZTo6TW9kYWxD
b250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmUpKQorICAgICAgICBfYXZhaWxhYmxlVHlwZXMg
fD0gX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZU5lZ2F0aXZlOworCisgICAgaWYgKHR5cGVz
LmNvbnRhaW5zKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwpKQor
ICAgICAgICBfYXZhaWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZU5l
dXRyYWw7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFs
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJ
bmZvSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjEyYzliOTk3YzdkMjA3YTAwZWE3NmNhMGZlMDQ4
MDViNTEyNTRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmgKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJfV0tNb2RhbENvbnRhaW5lcklu
Zm8uaCIKKyNpbXBvcnQgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDogdWludDhfdDsKK30KKworQGlu
dGVyZmFjZSBfV0tNb2RhbENvbnRhaW5lckluZm8gKFdlYktpdEludGVybmFsKQorCistIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhUeXBlczooT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGU+KXR5cGVzOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllci5t
bQppbmRleCAyMjljMzdiNjQ4NTUyNjhjYzI1MjgzYjIwNmNkODkyN2VkMDRiYzIxLi5jYWJiZTA1
MzI5Zjc3MWFiMDQ4OWZlNTlmOThmMDhkOGY1N2YxZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGFsQ29udGFpbmVyQ29udHJvbENs
YXNzaWZpZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllci5oIgogCi0jaW1wb3J0IDxXZWJDb3Jl
L01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTW9kYWxDb250
YWluZXJUeXBlcy5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0NvcmVNTFNvZnRMaW5rLmg+CiAjaW1w
b3J0IDxwYWwvY29jb2EvTmF0dXJhbExhbmd1YWdlU29mdExpbmsuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGQ2MDc0ZGMzMzZjOWJmOTRkMWY4
YTNjNzYyOGVhZTVmOGY1Y2ZjM2QuLjlhMDMzZGI1ZTcxODRmMjMwNTRmOGMyZGFjZDRiZTA2MzBh
NzliYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAg
LTEwNyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZl
bnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNv
cmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIGZpbmFsOwogICAgICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZp
bmFsOwogICAgICAgICB2b2lkIHJlcXVlc3RDb29raWVDb25zZW50KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0KT4mJikgZmluYWw7Cisg
ICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JN
KE1BQykKICAgICAgICAgdm9pZCBzaG93UGFnZShXZWJQYWdlUHJveHkqKSBmaW5hbDsKQEAgLTI3
NCw2ICsyNzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVl
c3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIg
OiAxOwogICAgICAgICBib29sIHdlYlZpZXdSZXF1ZXN0Q29va2llQ29uc2VudFdpdGhNb3JlSW5m
b0hhbmRsZXJEZWNpc2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JNb2RhbENvbnRhaW5lckRlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgfSBtX2RlbGVn
YXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCmluZGV4IGUzNzNmZDE2ZWI1MzkyMzEwYzE5MDE4ZmQ1ZTY1MWQyZmUwM2NjZTYuLmRk
ZmM2N2Q2OTU3MzE5MzFlY2E0ZWIzOTkyNmZiNWI2ZTg3NGE1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNTcsNiArNTcsNyBAQAogI2ltcG9y
dCAiX1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JDb25m
aWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCisj
aW1wb3J0ICJfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZD
YXB0dXJlRGV2aWNlLmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYUZvcm1hdC5oPgpA
QCAtMTk5LDYgKzIwMCw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlE
ZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5k
bGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Q29va2llQ29uc2Vu
dFdpdGhNb3JlSW5mb0hhbmRsZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Q29va2llQ29uc2VudFdpdGhNb3Jl
SW5mb0hhbmRsZXI6ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lckRlY2lzaW9uSGFuZGxlciA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZv
ck1vZGFsQ29udGFpbmVyOmRlY2lzaW9uSGFuZGxlcjopXTsKIH0KIAogI2lmIEVOQUJMRShDT05U
RVhUX01FTlVTKQpAQCAtNjY1LDYgKzY2Nyw0NCBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpyZXF1ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ogog
ICAgIH0pLmdldCgpXTsKIH0KIAorc3RhdGljIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNp
b24gY29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24oX1dLTW9kYWxDb250YWluZXJEZWNpc2lvbiBk
ZWNpc2lvbikKK3sKKyAgICBzd2l0Y2ggKGRlY2lzaW9uKSB7CisgICAgY2FzZSBfV0tNb2RhbENv
bnRhaW5lckRlY2lzaW9uU2hvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFp
bmVyRGVjaXNpb246OlNob3c7CisgICAgY2FzZSBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlk
ZUFuZElnbm9yZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNp
b246OkhpZGVBbmRJZ25vcmU7CisgICAgY2FzZSBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlk
ZUFuZEFsbG93OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lv
bjo6SGlkZUFuZEFsbG93OworICAgIGNhc2UgX1dLTW9kYWxDb250YWluZXJEZWNpc2lvbkhpZGVB
bmREaXNhbGxvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNp
b246OkhpZGVBbmREaXNhbGxvdzsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyRGVjaXNpb246OlNob3c7Cit9CisKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRl
Y2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRh
aW5lckNvbnRyb2xUeXBlPiBjb250cm9sVHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxldGlvbikKK3sKKyAgICBpZiAo
IW1fdWlEZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24oV2ViQ29yZTo6TW9kYWxD
b250YWluZXJEZWNpc2lvbjo6U2hvdyk7CisKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZS0+bV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyRGVjaXNpb25I
YW5kbGVyKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbihXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckRlY2lzaW9uOjpTaG93KTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1f
ZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7CisKKyAgICBhdXRv
IGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUu
Z2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjpk
ZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgYXV0byBpbmZvID0gYWRvcHROUyhbW19XS01vZGFsQ29u
dGFpbmVySW5mbyBhbGxvY10gaW5pdFdpdGhUeXBlczpjb250cm9sVHlwZXNdKTsKKyAgICBbKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1f
d2ViVmlldy5nZXQoKS5nZXQoKSBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjppbmZvLmdl
dCgpIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNv
bXBsZXRpb24pLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKF9XS01vZGFsQ29udGFpbmVy
RGVjaXNpb24gZGVjaXNpb24pIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxl
dGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIGNvbXBsZXRp
b24oY29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24oZGVjaXNpb24pKTsKKyAgICB9KS5nZXQoKV07
Cit9CisKICNpZiBQTEFURk9STShNQUMpCiBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjYW5S
dW5Nb2RhbCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCA1ZmY2MGU3YTRiNzljYmU4YjhjOWE0M2I5YTQwNzI5MWZjZjJlZDM0Li42ZmEwNzhk
NGNlOTVhNmYxMGMxYjRiZWI3Yzg5NzVmYjJhZmU5ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vZGFsQ29u
dGFpbmVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGVybWlzc2lvblN0YXRlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybUV2ZW50Lmg+CkBAIC0xMTA1Nyw2ICsxMTA1NywxMSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdENvb2tpZUNvbnNlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb29r
aWVDb25zZW50RGVjaQogICAgIG1fdWlDbGllbnQtPnJlcXVlc3RDb29raWVDb25zZW50KFdURk1v
dmUoY29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmIGNvbXBs
ZXRpb24pCit7CisgICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIo
dHlwZXMsIFdURk1vdmUoY29tcGxldGlvbikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI3VuZGVmIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCA3OTk5NzBkZWQ2YTQyMjZiNmEzZjhkM2EzZDM3OTg1Y2Y0YTAy
YTMxLi5jNTIwZjNiMDVkOWJhZjBhNzNhYmVlOWM5YmI3ZmRlMzM3ZWVjMzZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjc1LDYgKzI3NSw3IEBAIGVudW0gY2xh
c3MgSGFzSW5zZWN1cmVDb250ZW50IDogYm9vbDsKIGVudW0gY2xhc3MgSGlnaGxpZ2h0UmVxdWVz
dE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIEhpZ2hsaWdodFZpc2liaWxpdHkg
OiBib29sOwogZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDogdWludDhfdDsK
K2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJEZWNpc2lvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IE1vdXNlRXZlbnRQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJl
Y3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90
OwpAQCAtMjAzOCw2ICsyMDM5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXF1ZXN0Q29va2ll
Q29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tpZUNvbnNlbnREZWNp
c2lvblJlc3VsdCk+JiYpOwogICAgIHZvaWQgY2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xz
KFZlY3RvcjxTdHJpbmc+JiYgdGV4dHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYmKTsKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNb2RhbENvbnRh
aW5lckRlY2lzaW9uKT4mJik7CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggMmYyNjEzOTU1YjBhZGJmNzI2ZmE5Nzg4ZDFiNzQwZjYzODY0YzRiYS4uOTQyYzkzZGQyZjky
NjkyNWRjODQzZmRhNzk2ODQ0ZDQ4NzEyOTAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjE2LDQgKzYxNiw1IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBSZXF1ZXN0Q29va2llQ29uc2VudCgpIC0+IChl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0IHJlc3VsdCkg
QXN5bmMKICAgICBDbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4g
dGV4dHMpIC0+IChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4gdHlw
ZXMpIEFzeW5jCisgICAgRGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PFdl
YkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzKSAtPiAoZW51bTp1aW50OF90
IFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNpb24pIEFzeW5jCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5OGQ5
NDNlZjdkMTZkNWYxYjNmODI3MDIwM2JlNGFhMjFhMTQ0ZDU4Li43ZWRkYmIwZjkzZjg3Y2MwNzg4
NTQ5ZmEwZGMzMTNhODA4NjE0N2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTksNiArMjAxOSw4IEBACiAJCUY0RDk4NUM4MjY5
MEZDMTIwMEJCQ0NCRSAvKiBfV0tUYXBIYW5kbGluZ1Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREOTg1QzcyNjkwRkJFRjAwQkJDQ0JFIC8q
IF9XS1RhcEhhbmRsaW5nUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRjREOTg1Q0IyNjkxMDk2NjAwQkJDQ0JFIC8qIFRhcEhhbmRsaW5n
UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEUyQjQ0QTI2OEZERTFBMDAzMjdBQkMgLyogVGFwSGFuZGxpbmdSZXN1bHQuaCAqLzsgfTsKIAkJ
RjREQjU0RTYyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJl
Y29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyLmggKi87IH07CisJCUY0REJDMEJFMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2Rh
bENvbnRhaW5lckluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0REJDMEJDMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm8u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNERC
QzBDMTI3NkFBNkNBMDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REJDMEMwMjc2
QUE2Q0EwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oICovOyB9Owog
CQlGNEVCNEFGRDI2OUNEN0YzMDBEMjk3QUUgLyogT1NTdGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQjRBRkMyNjlDRDIzNjAwRDI5N0FF
IC8qIE9TU3RhdGVTUEkuaCAqLzsgfTsKIAkJRjRFQzk0RTMyMzU2Q0M1NzAwMEJCNjE0IC8qIEFw
cGxpY2F0aW9uU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5RDA0RTI4MjFGN0M3M0QwMDc2NzQxRCAvKiBBcHBsaWNhdGlvblNlcnZp
Y2VzU1BJLmggKi87IH07CiAJCUY0RkUwQTNCMjQ2MzJCNjAwMDI2MzFFMSAvKiBDb2NvYUNvbG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEZFMEEz
QTI0NjMyQjEwMDAyNjMxRTEgLyogQ29jb2FDb2xvci5oICovOyB9OwpAQCAtNjQ0NSw2ICs2NDQ3
LDkgQEAKIAkJRjREOTg1QzcyNjkwRkJFRjAwQkJDQ0JFIC8qIF9XS1RhcEhhbmRsaW5nUmVzdWx0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RhcEhhbmRsaW5nUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExv
bmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9X
S0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0REI1NEU1MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQ
cmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9
IGlvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNERCQzBCQzI3NkFBNkE3MDAwMUQxNjkgLyogX1dLTW9kYWxD
b250YWluZXJJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS01vZGFs
Q29udGFpbmVySW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNERCQzBCRDI3
NkFBNkE3MDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLTW9kYWxDb250YWluZXJJbmZvLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNERCQzBDMDI3NkFBNkNBMDAwMUQxNjkgLyogX1dL
TW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLTW9kYWxDb250
YWluZXJJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFMkI0
NEEyNjhGREUxQTAwMzI3QUJDIC8qIFRhcEhhbmRsaW5nUmVzdWx0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFRhcEhhbmRsaW5nUmVzdWx0Lmg7IHBhdGggPSBpb3MvVGFwSGFuZGxpbmdSZXN1bHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQjRBRkMyNjlDRDIzNjAwRDI5N0FFIC8qIE9T
U3RhdGVTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NTdGF0ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNEY1OUFEMzIwNjVBNUM5MDA2Q0FBNDYgLyogV0tTZWxlY3RNZW51TGlz
dFZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dL
U2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTg2ODcsNiArODY5Miw5IEBACiAJCQkJNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8q
IF9XS0xpbmtJY29uUGFyYW1ldGVycy5oICovLAogCQkJCTUxQzBDOTdBMURERDc4NTQwMDMyQ0FE
MyAvKiBfV0tMaW5rSWNvblBhcmFtZXRlcnMubW0gKi8sCiAJCQkJNTFDMEM5N0IxRERENzg1NDAw
MzJDQUQzIC8qIF9XS0xpbmtJY29uUGFyYW1ldGVyc0ludGVybmFsLmggKi8sCisJCQkJRjREQkMw
QkMyNzZBQTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5oICovLAorCQkJCUY0
REJDMEJEMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm8ubW0gKi8sCisJ
CQkJRjREQkMwQzAyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mb0ludGVy
bmFsLmggKi8sCiAJCQkJOTMyMzYxMUQxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3Jv
bGxiYXJTdHlsZS5oICovLAogCQkJCTFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkxQTQzRTgyNzE4OEYzQ0RDMDA5RTREMzAg
LyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovLApAQCAtMTI2NDQsNiArMTI2NTIs
OCBAQAogCQkJCTMxQjM2Mjk3MjE0MUVCRDkwMDdCRkE1MyAvKiBfV0tJbnRlcm5hbERlYnVnRmVh
dHVyZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc5MEE5RDFBRDcwNTBEMDBBQjkw
QjMgLyogX1dLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwRjU5MTExRERFMjk3
MDAwNDEyRkY1IC8qIF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjREQkMwQkUyNzZBQTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjREQkMwQzEyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFp
bmVySW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTE4QTlGMzE5MDhCOEVBMDBG
N0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVD
MEYwQTcyMDAwNjU0RDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzIzNjExRTFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0
eWxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYTI2ZmFkMGRi
MDBmNTdhMmFjN2E3MGEzNDRiYWIyOGMyOGI4NDkxZC4uYzdjZjU4NzVjOTQzYjc5MTkyYWViZDI4
NjIzYjJiMWJjNzQ3ZGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE1NzMsNiArMTU3
MywxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRy
b2xzKFZlY3RvcjxTdHJpbmc+JiYgc3RyaW5ncywgQwogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRy
b2xzKFdURk1vdmUoc3RyaW5ncykpLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChN
b2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKQoreworICAgIG1fcGFnZS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTW9k
YWxDb250YWluZXIodHlwZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKK30KKwogI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1dlYkNocm9tZUNs
aWVudEFkZGl0aW9ucy5jcHA+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDlmYTgxYzg3
ZTE5MzlkMmExOTc0YzYwNDg3NDU3MTI2YTgxZTU5NGIuLmRhNWFjZDEzOTVjYzkyNDA4ZmZkY2My
YTAyYjgzMTEyODY4Zjk2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQ2OCw2ICs0NjgsOCBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVj
dG9yPFN0cmluZz4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6TW9k
YWxDb250YWluZXJDb250cm9sVHlwZT4mJik+JiYpIGZpbmFsOwogCisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJD
b250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TW9kYWxDb250YWlu
ZXJEZWNpc2lvbik+JiYpIGZpbmFsOworCiAgICAgY29uc3QgQXRvbVN0cmluZyYgc2VhcmNoU3Ry
aW5nRm9yTW9kYWxDb250YWluZXJPYnNlcnZlcigpIGNvbnN0IGZpbmFsOwogCiAgICAgbXV0YWJs
ZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IDI2Y2VkYmFjNGY5ZjFhYjFmZTVlYzgyYjNhODIzMWQyMzVk
YzEzMzcuLjgyMjM3OGY0MDYzZjBiYWYzMDQ4Y2QzMDBjYTY0MjIyODNkZTgwYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC0yNjEsNiArMjYxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2xhc3Np
ZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYm
KSBmaW5hbDsKIAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9u
U2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKSBmaW5hbDsKKwogI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIG1fbW9ja1ZpZGVvUHJl
c2VudGF0aW9uTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0K
aW5kZXggYjMwNjQzMThkMGMwYmI3YTRjNDUyMTE2MTYxZWZkN2NmMDdiYmZlNy4uMzYzNGY3YTYw
MjE0NjE5ZWNmZWFmMGFlZDllYmZjZTcyMTBmMWExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAt
NzgsNyArNzgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ludFBvaW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Nb2RhbENv
bnRhaW5lclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05hdmlnYXRpb25BY3Rpb24uaD4KICNp
bXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5o
PgpAQCAtMTE3OCwzICsxMTc4LDggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsYXNzaWZ5TW9k
YWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0aW8KIHsKICAgICBj
b21wbGV0aW9uKHsgfSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxldGlv
bikKK3sKKyAgICBjb21wbGV0aW9uKE1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3cpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKaW5kZXggYmM3ZmFlYTdmYzU0NGZiMjViYzQ5Y2RkNWY2MmExMmFj
MDcwZmFkYS4uMDk0ZjY1MjEwMDU3NzVkZDQ2YzczZDdlNmIzOTY3MDcwMTFkOGFlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JY29u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbFdpbmRvd3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRh
aW5lckNvbnRyb2xUeXBlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uQWN0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgpAQCAtODg3
LDMgKzg4Nyw4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGFzc2lmeU1vZGFsQ29udGFpbmVy
Q29udHJvbHMoVmVjdG9yPFN0cmluZz4mJiwgQ29tcGxldGlvCiB7CiAgICAgY29tcGxldGlvbih7
IH0pOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250
YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmIGNvbXBsZXRpb24pCit7CisgICAg
Y29tcGxldGlvbihNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KTsKK30K
</data>
<flag name="commit-queue"
          id="473434"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447721</attachid>
            <date>2021-12-21 09:09:02 -0800</date>
            <delta_ts>2021-12-21 12:09:40 -0800</delta_ts>
            <desc>Fix Windows build</desc>
            <filename>bug-234440-20211221090901.patch</filename>
            <type>text/plain</type>
            <size>65346</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI0YjcyZmI0ZjliNzc3
MDgwMTU5YzdiN2NmZjY0MWZkODQ5MzlkNS4uY2Q1ZDUwNWM2YzBmODBjMTAyMGQwOGNhMTU1MTZh
OWQ4ZTQ2NjRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTEyLTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBhIFVJIGRlbGVnYXRlIG1ldGhvZCB0byBkZWNpZGUgaG93IHRvIGhhbmRsZSBkZXRlY3Rl
ZCBtb2RhbCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQ0NDAKKyAgICAgICAgcmRhcjovLzc3MDczNzM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTW92ZSBNb2RhbENvbnRhaW5lckNvbnRy
b2xUeXBlLmggdG8gTW9kYWxDb250YWluZXJUeXBlcy5oLCBhbmQgYWRkIGEgbmV3IGVudW0gZmxh
ZyB0byByZXByZXNlbnQgcmV0dXJuIHZhbHVlcyBpbgorICAgICAgICB0aGUgbmV3IFVJIGRlbGVn
YXRlIGRlY2lzaW9uIGhhbmRsZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaDoKKworICAgICAgICBBZGRpdGlvbmFsbHkgcmVtb3ZlIHRoZSB1bnVz
ZWQgQWxsb3cgYW5kIERpc2FsbG93IHZhbHVlcyBvZiBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
UG9saWN5LCBub3cgdGhhdCB3ZSB3aWxsCisgICAgICAgIGFsd2F5cyAoZWZmZWN0aXZlbHkpICJw
cm9tcHQiIHdoZW4gZGV0ZWN0aW5nIGEgbW9kYWwgY29udGFpbmVyIGJ5IGNhbGxpbmcgaW50byB0
aGUgY2xpZW50IGxheWVyIHdpdGggdGhlIG5ldworICAgICAgICBkZWxlZ2F0ZSBtZXRob2QuCisK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5Q2hyb21lQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcik6CisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisKKyAgICAgICAgQWRkIHRoZSBuZXcgYXN5bmMgY2hyb21lIGNsaWVudCBob29rLCBgZGVjaWRl
UG9saWN5Rm9yTW9kYWxDb250YWluZXIoKWAuCisKKyAgICAgICAgKiBwYWdlL01vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZl
cjo6Y29sbGVjdENsaWNrYWJsZUVsZW1lbnRzVGltZXJGaXJlZCk6CisKKyAgICAgICAgQ2FsbCBp
bnRvIHRoZSBjaHJvbWUgY2xpZW50IHRvIGRlY2lkZSBob3cgdG8gaGFuZGxlIHRoZSBvYnNlcnZl
ZCBtb2RhbCBjb250YWluZXIuCisKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXI6OnJldmVhbE1vZGFsQ29udGFpbmVyOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRo
b2QgdG8gcmVzZXQgdGhlIGN1cnJlbnQgYG1fY29udGFpbmVyYCBhbmQgaW52YWxpZGF0ZSBpdHMg
c3R5bGUgKHN1Y2ggdGhhdCBpdCB3aWxsIGJlIGRpc3BsYXllZAorICAgICAgICBhZnRlciB0aGUg
bmV4dCBzdHlsZSB1cGRhdGUpLgorCisgICAgICAgICogcGFnZS9Nb2RhbENvbnRhaW5lclR5cGVz
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGUuaC4KKworICAgICAgICBBbHNvLCB0d2VhayB0aGUgYE1vZGFsQ29udGFpbmVyQ29udHJv
bFR5cGVgIHZhbHVlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgYXMgb3B0aW9uIGZsYWdzIHdo
ZW4gaW5mb3JtaW5nIHRoZQorICAgICAgICBXZWJLaXQgY2xpZW50IGFib3V0IHdoaWNoIGNvbnRy
b2wgdHlwZXMgYXJlIHByZXNlbnQgaW4gdGhlIG1vZGFsIGNvbnRhaW5lci4KKwogMjAyMS0xMi0y
MSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHByZW11bHRpcGxpZWQgYWxwaGEgaW50ZXJwb2xhdGVkIGdyYWRpZW50cyBhbmQgZGVmYXVs
dGVkIG9mZiBvcHRpb24gdG8gdXNlIHRoZW0gZm9yIENTUyBHcmFkaWVudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YWJkMWJkMWRmZTVhYzcyM2NjZjllZDg1OGU4NjAzNDhjZTM3YTQ5Ni4uMjM3YmFhMjk4NTU3NGY0
NDBjZGE5NTUzN2IyZTRmYWExNzBiZDIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAy
MS0xMi0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBo
YW5kbGUgZGV0ZWN0ZWQgbW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDQwCisgICAgICAgIHJkYXI6Ly83NzA3MzczNQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBhIG5ldyBVSSBkZWxlZ2F0ZSBtZXRob2QsIGAtX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9y
TW9kYWxDb250YWluZXI6ZGVjaXNpb25IYW5kbGVyOmAsIHRoYXQgaXMKKyAgICAgICAgaW52b2tl
ZCB3aGVuIGEgbW9kYWwgY29udGFpbmVyIGhhcyBiZWVuIGRldGVjdGVkIGFuZCBzdXBwcmVzc2Vk
IGR1ZSB0byBhIFdlYktpdCBjbGllbnQgc3BlY2lmeWluZyB0aGUKKyAgICAgICAgYF9XS1dlYnNp
dGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5UHJvbXB0YCBvcHRpb24gaW4gd2VicGFn
ZSBwcmVmZXJlbmNlcy4gVGhpcyBuZXcgZGVsZWdhdGUgbWV0aG9kIGlzCisgICAgICAgIGludm9r
ZWQgd2l0aCBhIG5ldyBgX1dLTW9kYWxDb250YWluZXJJbmZvYCBvYmplY3QsIHdoaWNoIChmb3Ig
bm93KSBqdXN0IGVuY2Fwc3VsYXRlcyBhbiBvcHRpb24gc2V0IG9mCisgICAgICAgIE1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGVzIHRoYXQgaW5kaWNhdGVzIHdoaWNoIHR5cGVzIG9mIG1vZGFsIGNv
bnRhaW5lcnMgYXJlIGF2YWlsYWJsZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAg
IChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcik6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKFdl
YktpdDo6bW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6
OmNvcmVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCisgICAgICAgIFJl
bW92ZSBzdXBwb3J0IGZvciB0d28gdW51c2VkIHBvbGljeSBmbGFncywgYF9XS1dlYnNpdGVNb2Rh
bENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3dgIGFuZAorICAgICAgICBgX1dLV2Vic2l0
ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lEaXNhbGxvd2AuIFRoZXNlIGFyZSBub3cg
b2J2aWF0ZWQgYnkgdGhlIG5ldyBkZWNpc2lvbiBoYW5kbGVyIHJldHVybgorICAgICAgICB2YWx1
ZXMgYF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb25IaWRlQW5kQWxsb3dgIGFuZCBgX1dLTW9kYWxD
b250YWluZXJEZWNpc2lvbkhpZGVBbmREaXNhbGxvd2AsIHJlc3BlY3RpdmVseS4KKyAgICAgICAg
V2hpbGUgdGhpcyBsZWF2ZXMgdXMgd2l0aCBvbmx5IHR3byBwb2xpY3kgbW9kZXMgKHN1Y2ggdGhh
dCB0aGUgcG9saWN5IGNhbiBub3cgYmUgdHVybmVkIGludG8gYSBzaW5nbGUgQk9PTAorICAgICAg
ICBzd2l0Y2gpLCBJJ20ga2VlcGluZyB0aGUgbmFtZWQgZW51bSBmbGFncyBmb3Igbm93LCBzaW5j
ZToKKworICAgICAgICAxLiBUaGUgZXhpc3RpbmcgbmFtZXMgZG8gYSBiZXR0ZXIgam9iIG9mIGRl
c2NyaWJpbmcgdGhlaXIgcmVzcGVjdGl2ZSBiZWhhdmlvcnMgdGhhbiBhIHNpbmdsZSBCT09MIGZs
YWcgbGlrZQorICAgICAgICBgbW9kYWxDb250YWluZXJPYnNlcnZlclNob3VsZFByb21wdGAsIG9y
IGBtb2RhbENvbnRhaW5lck9ic2VydmVyRW5hYmxlZGAsIGFuZC4uLgorCisgICAgICAgIDIuIFdl
J2xsIHByb2JhYmx5IG5lZWQgdG8gZXh0ZW5kIHRoaXMgcG9saWN5IHNldCB0byBhZGQgYSBuZXcg
dmFsdWUgaW4gdGhlIG5lYXIgZnV0dXJlLCBhbnl3YXlzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mby5tbToKKyAgICAgICAgKC1bX1dLTW9kYWxD
b250YWluZXJJbmZvIGluaXRXaXRoVHlwZXM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVyLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OnNldERlbGVnYXRlKToK
KyAgICAgICAgKFdlYktpdDo6Y29yZU1vZGFsQ29udGFpbmVyRGVjaXNpb24pOgorICAgICAgICAo
V2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWlu
ZXIpOgorCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgdGhlIG5ldyBjaHJvbWUgY2xpZW50IGhv
b2sgdGhyb3VnaCBXZWJDaHJvbWVDbGllbnQsIFdlYlBhZ2UsIFdlYlBhZ2VQcm94eSwgYW5kIGZp
bmFsbHkgdGhlIFVJCisgICAgICAgIGNsaWVudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck1vZGFsQ29udGFpbmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMjEtMTIt
MjEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBJUEMg
c3RyZWFtcyBzaG91bGQgbm90IGFjY2VwdCAwLWxlbmd0aCBzdHJlYW0gYnVmZmVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDliZGEyNzdhYTNiZDFjZDg4NzIzNmUzNTRlNzQ4NmRi
OTQ4NDI0ZjguLjljNzVmM2ZkYzU0NjU3ODdlYTk2M2VhNmU2MWUxYTY2N2IxNzBkNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMi0yMSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgdG8gZGVjaWRlIGhvdyB0byBoYW5kbGUgZGV0ZWN0
ZWQgbW9kYWwgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM0NDQwCisgICAgICAgIHJkYXI6Ly83NzA3MzczNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKToKKwog
MjAyMS0xMi0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgY2xpZW50IGxheWVyIHBsdW1iaW5nIGZvciBjbGFzc2lmeWluZyBtb2RhbCBjb250
YWluZXIgY29udHJvbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBiMDBhMjdjNDg3
NTFjZTA1YmNjYWExNzgwNzhiNDQ4NzMxZDIxZTExLi4wYjc4ZjVjZTEwYTkyYzVmODk3YWI4MTY5
MDFlOTU5MWI4NjkxYzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjEtMTItMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgVUkgZGVsZWdhdGUgbWV0aG9kIHRvIGRlY2lk
ZSBob3cgdG8gaGFuZGxlIGRldGVjdGVkIG1vZGFsIGNvbnRhaW5lcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ0MAorICAgICAgICByZGFyOi8v
NzcwNzM3MzUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBT
ZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTW9kYWxDb250YWluZXIpOgorCiAyMDIxLTEyLTIxICBTYW0gV2VpbmlnICA8d2VpbmlnQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcHJlbXVsdGlwbGllZCBhbHBoYSBp
bnRlcnBvbGF0ZWQgZ3JhZGllbnRzIGFuZCBkZWZhdWx0ZWQgb2ZmIG9wdGlvbiB0byB1c2UgdGhl
bSBmb3IgQ1NTIEdyYWRpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYjFmODVkZmExMmViYTdj
NzYwZDVlYjkxYTdlNTVmM2I2YzUwOGFmNS4uYWJlZWJmZWY5MWRhOTBiOTVmYTQ5MjBkMWY2MjZj
NmFjYjU1YWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTA5LDcgKzExMDksNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9NZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtLmgKICAgICBwYWdlL01lZGlhUHJvZHVjZXIuaAogICAgIHBhZ2UvTWVt
b3J5UmVsZWFzZS5oCi0gICAgcGFnZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmgKKyAgICBw
YWdlL01vZGFsQ29udGFpbmVyVHlwZXMuaAogICAgIHBhZ2UvTmF2aWdhdG9ySXNMb2dnZWRJbi5o
CiAgICAgcGFnZS9QREZJbWFnZUNhY2hpbmdQb2xpY3kuaAogICAgIHBhZ2UvUGFnZS5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MjI2NGU1NmVmYTNhZGNmMDdkOWZhNTQ0ODBjOWM3ODcwNjNjZGJmOC4uMDRlODQxZmJlMGU1N2Q3
NjQ5ODVkYzY5OTdmNmY2ODU1MDc0NTZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTUwOSw3ICs1NTA5LDcgQEAKIAkJRjQ4
RDJBNkMyMTU2MjNCNDAwQzY3NTJCIC8qIEZvbnRTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTZBMjE1NjIzQjQwMEM2NzUyQiAvKiBG
b250U2hhZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRjQ4RDJBN0UyMTU3MTgyNjAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE3MTIxNTZEQzBB
MDBDNjc1MkIgLyogRm9udEF0dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDhEMkFBNTIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JD
b2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4
RDJBQTMyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNDkzMjg4MzI3NjkwNDFCMDAzRTIwRjgg
LyogTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlGNDkzMjg4MzI3NjkwNDFCMDAzRTIwRjggLyogTW9kYWxDb250YWluZXJU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5
MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDk3ODY4ODFGRjQ1RkE1
MDBFMDYwQUIgLyogUGFzdGVib2FyZEl0ZW1JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIgLyogUGFzdGVi
b2FyZEl0ZW1JbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRjRCMDAxODkyNkU3RjIxRjAwNkVBQUJFIC8qIEhUTUxBdG9tU3RyaW5nQ2FjaGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjAwMTg3
MjZFN0YyMUYwMDZFQUFCRSAvKiBIVE1MQXRvbVN0cmluZ0NhY2hlLmggKi87IH07CiAJCUY0QjJB
OTA5MjY1MDMwQkEwMDlFNzI4NiAvKiBEYXRhRGV0ZWN0b3JIaWdobGlnaHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjJBOTA2MjY1MDJCQTAwMDlF
NzI4NiAvKiBEYXRhRGV0ZWN0b3JIaWdobGlnaHQuaCAqLzsgfTsKQEAgLTE3NzQwLDcgKzE3NzQw
LDcgQEAKIAkJRjQ4RDJBN0EyMTU3MDUxRTAwQzY3NTJCIC8qIEZvbnRTaGFkb3dDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRTaGFkb3dDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjQ4RDJBQTMyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29sb3JDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDhEMkFBNDIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IENvbG9yQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0
OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjQ5MzI4ODIyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVy
VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kYWxDb250YWluZXJUeXBlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIgLyogUGFzdGVib2Fy
ZEl0ZW1JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRJdGVtSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDlFOThFNDIxREVFNkMxMDA5QUU1NUUgLyogRWRpdEFj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0QWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjRCMDAxODcyNkU3RjIxRjAwNkVBQUJFIC8qIEhUTUxBdG9tU3Ry
aW5nQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEF0b21TdHJpbmdDYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyNjIsMTIgKzE5MjYyLDEyIEBACiAJCTExQTFFNkZC
MjZGQkI2Q0UwMDQzNUQzNiAvKiBkaXNwbGF5ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQk2RjYwRTVBOTI3NzEwRjM5MDA1QzE1QjkgLyogSW5saW5lRGlz
cGxheUxpbmVCdWlsZGVyLmggKi8sCi0JCQkJNkY2MEU1QTcyNzcxMEYyRjAwNUMxNUI5IC8qIElu
bGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAgKi8sCiAJCQkJNkZDM0Y5NDUyNTE2NzU2NjAwQTQ5
QkVBIC8qIElubGluZURpc3BsYXlCb3guaCAqLywKIAkJCQkxMTUxM0QwMDI2RDk4MUREMDA0RDNG
QUEgLyogSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCAqLywKIAkJCQkxMTUxM0QwMjI2
RDk4MUU3MDA0RDNGQUEgLyogSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmggKi8sCiAJCQkJ
NkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZURpc3BsYXlMaW5lLmggKi8sCisJCQkJ
NkY2MEU1QTcyNzcxMEYyRjAwNUMxNUI5IC8qIElubGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAg
Ki8sCisJCQkJNkY2MEU1QTkyNzcxMEYzOTAwNUMxNUI5IC8qIElubGluZURpc3BsYXlMaW5lQnVp
bGRlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBkaXNwbGF5OwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTIzOTkxLDkgKzIzOTkxLDkgQEAKIAkJCQk1MkUyQ0FGQjE5RkYwMjA3MDAx
RUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovLAogCQkJCTQxM0UwMDc3MURCMEU0REUwMDIzNDFE
MiAvKiBNZW1vcnlSZWxlYXNlLmNwcCAqLywKIAkJCQk0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIg
LyogTWVtb3J5UmVsZWFzZS5oICovLAotCQkJCUY0OTMyODgyMjc2OTA0MUIwMDNFMjBGOCAvKiBN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlLmggKi8sCiAJCQkJQTEwRjdDNzEyNzMxMDA3MzAwOEZB
OUFGIC8qIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwICovLAogCQkJCUExMEY3QzcwMjczMTAw
NzMwMDhGQTlBRiAvKiBNb2RhbENvbnRhaW5lck9ic2VydmVyLmggKi8sCisJCQkJRjQ5MzI4ODIy
NzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCAqLywKIAkJCQk5M0VCMzU1
RTA5RTM3RkQ2MDBGNDM3OTkgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5jcHAgKi8s
CiAJCQkJOTM1QzQ3NjIwOUFDNENFNjAwQTZBQUI0IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMuaCAqLywKIAkJCQk2QjUwN0EyMzIzNEJGMzQxMDBCRTdDNjIgLyogTmF2aWdhdG9yK0lz
TG9nZ2VkSW4uaWRsICovLApAQCAtMzMzNDksNyArMzMzNDksNiBAQAogCQkJCTgzNzg4NzgyMjRE
OEE2MDkwMDBENEE1QiAvKiBBdWRpb0J1ZmZlclNvdXJjZU9wdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MDdDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5lbC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQkMxOUNERjIyNzZGRkM2RDAwNTNGNzM0IC8qIEdyYWRpZW50UmVuZGVy
ZXJDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0EyNTc5OUY4ODAwNjU2M0JCIC8qIEF1
ZGlvQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMDUxMkIwMjY3NjAw
QzFBMzU5IC8qIEF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTc4NUQ5NjIyNEI3
RjczNTAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zNDUxMCw3ICszNDUwOSw5IEBACiAJCQkJMzExNTE4RkMxRTc4QzE1RjAwRUM1MTRB
IC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1M0M1RjUwREE1NkI5MjAwMjFFQjVEIC8qIEdyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyNzk2NDBEMDBCRjIyMDA3MUI3ODIgLyogR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCQzE5Q0RGNDI3NzEwNjM5MDA1M0Y3MzQgLyogR3JhZGllbnRDb2xvclN0
b3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENDgxRjA0MTQ2QjVDNkIwMEFBNzgzNCAvKiBHcmFk
aWVudEltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzE5Q0RGMjI3NkZGQzZEMDA1M0Y3MzQg
LyogR3JhZGllbnRSZW5kZXJlckNHLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QkI2ODBCQTI1QkEx
QkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zNDg0Myw2ICszNDg0NCw3IEBACiAJCQkJNkZDM0Y5NDcyNTE2NzU2
NzAwQTQ5QkVBIC8qIElubGluZURpc3BsYXlCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTExNTEz
RDAzMjZEOTgxRTgwMDREM0ZBQSAvKiBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGOTE0MjExMjUxNTIxMzgwMDRFNEZFQSAvKiBJbmxpbmVEaXNwbGF5
TGluZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkY2MEU1QUEyNzcxMEYzOTAwNUMxNUI5IC8qIElu
bGluZURpc3BsYXlMaW5lQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY3Q0EzQ0EyMDhD
MkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0N0M0RDU3RDI2NTA4QkNCMDBDN0FCMUYgLyogSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkU2MzZFODI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5l
Rm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDkwNiw3ICszNDkwOCw2IEBA
CiAJCQkJQTVCODFDQUQxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk0QzYwM0EyNTNBMjc3MzAwQkRGMDYwIC8qIEluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3MTQx
MTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKLQkJCQlCQzE5Q0RGNDI3NzEwNjM5MDA1M0Y3MzQgLyogR3JhZGllbnRDb2xvclN0b3AuaCBp
biBIZWFkZXJzICovLAogCQkJCUYzNDRDNzUzMTEyOTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBFNzcwRjEwQzAwQTg4
MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zNjE0Nyw4ICszNjE0OCw4IEBACiAJCQkJQ0RGMkIwMTcxODIwNTQwNzAwRjJCNDI0
IC8qIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREYyQjAx
OTE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcx
NTYxMEMyMzRDMUNBMTAwOEZDN0FCIC8qIE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovLAotCQkJCUY0OTMyODgzMjc2OTA0MUIwMDNFMjBGOCAvKiBNb2Rh
bENvbnRhaW5lckNvbnRyb2xUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBGN0M3MzI3MzEw
MEQwMDA4RkE5QUYgLyogTW9kYWxDb250YWluZXJPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjQ5MzI4ODMyNzY5MDQxQjAwM0UyMEY4IC8qIE1vZGFsQ29udGFpbmVyVHlwZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEQzhEMzk4MjVGMkZFOTcwMENGQ0JBQiAvKiBNb2RlbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzEzRTc5RUEyNzNDODZCODAwOTdGOTA1IC8qIE1vZGVsRG9jdW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkI0MTE3MjczMkY0MUUwMEEyRDE5MSAvKiBNb2RlbFBs
YXllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzY3Niw3ICszNzY3Nyw2IEBACiAJCQkJQkVGMjlF
RUMxNzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDMzNkY2NDE3RkEwQTREMDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkYuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEMzM2RjY4MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNr
UHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAotCQkJCTZGNjBFNUFBMjc3MTBGMzkwMDVD
MTVCOSAvKiBJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MUY5QjE0MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzBFODFEMTFCRjI3
NjU2MDAxRkRBNDggLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDBlMDEyYjY4YzI0
YjMzNGY5MWM1NzEwNWY0ZDI1MjNkNjJiNDY3MGEuLmI0Njk4MWQ3NTBiMjVjMWZkMzA3ZjE2ZmRh
NzRiN2VlMzA2YTRjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBA
IC0xNDUsMTIgKzE0NSw3IEBAIGVudW0gY2xhc3MgTW91c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Qg
ewogI2VuZGlmCiB9OwogCi1lbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xp
Y3kgOiB1aW50OF90IHsKLSAgICBEaXNhYmxlZCwKLSAgICBQcm9tcHQsCi0gICAgQWxsb3csCi0g
ICAgRGlzYWxsb3csCi19OworZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9s
aWN5IDogYm9vbCB7IERpc2FibGVkLCBQcm9tcHQgfTsKIAogZW51bSBjbGFzcyBDb2xvclNjaGVt
ZVByZWZlcmVuY2UgOiB1aW50OF90IHsKICAgICBOb1ByZWZlcmVuY2UsCkBAIC04MDgsOSArODAz
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ck9ic2VydmF0aW9uUG9saWN5PiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAg
ICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSwKICAgICAgICAg
V2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWJsZWQsCi0gICAg
ICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21wdCwKLSAg
ICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6QWxsb3csCi0g
ICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OkRpc2FsbG93
CisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21w
dAogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4
IDU1MjU2MmU1NGJiYTU3M2JlYWIwYjIwZmE2NDA1ZTkzM2MxYjY4NjIuLjc1OGNiZTgwNjU0ZTg4
ODk3YWNkOWVkNDExOTkwYzg2ODZjYWYzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCkBAIC02Myw3ICs2Myw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVj
b3JkZXJQcm92aWRlci5oIgotI2luY2x1ZGUgIk1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUuaCIK
KyNpbmNsdWRlICJNb2RhbENvbnRhaW5lclR5cGVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0
aW9uLmgiCkBAIC01OTYsNiArNTk2LDExIEBAIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OmNsYXNz
aWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0CiAgICAg
Y29tcGxldGlvbih7IH0pOwogfQogCit2b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxl
dGlvbikKK3sKKyAgICBjb21wbGV0aW9uKE1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3cpOwor
fQorCiB2b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIs
IEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAppbmRleCBhYTE0YzRhMWI5YTZkMzNhYWYwZGIzZDlkYTIyNjVhOWM2MzRhMzg5Li5jZDVm
MjhmMTQ2MWU4YTJlNmFkYmMwZDAwZTU4ZGVlNTZkNGQwNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCkBAIC0yMjEsNiArMjIxLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGll
bnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAgIHZvaWQgcmVxdWVzdENvb2tpZUNvbnNl
bnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb29raWVDb25zZW50RGVjaXNpb25SZXN1bHQpPiYm
KSBmaW5hbDsKICAgICB2b2lkIGNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8
U3RyaW5nPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxNb2RhbENvbnRhaW5lckNv
bnRyb2xUeXBlPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNb2RhbENv
bnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYpIGZpbmFsOwogfTsKIAogRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQmIGVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDkwMzk5NmFiMjM2MzU3NTZhM2I4YzEzY2Ew
MmFjNTE2NTM3MzNjZTAuLjM1MmUwM2YwYzQxNmI2MzgwMGU3MTQyOWU4YzI4YWUzY2RjMjYwOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHN0cnVj
dCBXaW5kb3dGZWF0dXJlczsKIAogZW51bSBjbGFzcyBDb29raWVDb25zZW50RGVjaXNpb25SZXN1
bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDogdWlu
dDhfdDsKK2VudW0gY2xhc3MgTW9kYWxDb250YWluZXJEZWNpc2lvbiA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIENocm9tZUNsaWVu
dCB7CkBAIC02MjcsNiArNjI4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgQXRvbVN0
cmluZyYgc2VhcmNoU3RyaW5nRm9yTW9kYWxDb250YWluZXJPYnNlcnZlcigpIGNvbnN0IHsgcmV0
dXJuIG51bGxBdG9tKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xhc3NpZnlNb2RhbENvbnRhaW5l
ckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYgdGV4dHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VmVjdG9yPE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYmKSA9IDA7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PE1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVy
RGVjaXNpb24pPiYmKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGll
bnQoKSA9IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2Rh
bENvbnRhaW5lckNvbnRyb2xUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q1ZDUxZGEy
ZTg5MjBkYTAzYmVhY2M4YzAyN2ZhYjM3NTFjODg2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDogdWlu
dDhfdCB7Ci0gICAgTmV1dHJhbCwKLSAgICBQb3NpdGl2ZSwKLSAgICBOZWdhdGl2ZSwKLSAgICBP
dGhlciwKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNwYWNlIFdURiB7Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250
cm9sVHlwZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUsCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwsCi0gICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGU6OlBvc2l0aXZlLAotICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlOjpOZWdhdGl2ZSwKLSAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJD
b250cm9sVHlwZTo6T3RoZXIKLSAgICA+OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmNwcAppbmRleCBkMjBi
YjEzNDA1M2ZlZDVmYWVhMmFlZTQwZjZkNTFiZjNhYWNjY2EwLi44NjdiM2JkNWMxMjZhYWUwYmEy
MzA5M2VmMTYyZmMxZTBjZWZjNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01v
ZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxD
b250YWluZXJPYnNlcnZlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiTW9kYWxDb250YWluZXJDb250cm9sVHlwZS5oIgorI2lu
Y2x1ZGUgIk1vZGFsQ29udGFpbmVyVHlwZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgpA
QCAtMzAwLDkgKzMwMCw0OSBAQCB2b2lkIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RD
bGlja2FibGVFbGVtZW50c1RpbWVyRmlyZWQoKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgVmVjdG9yPFJlZjxIVE1MRWxlbWVudD4+IHBvc2l0
aXZlQ29udHJvbHM7Ci0gICAgICAgICAgICBWZWN0b3I8UmVmPEhUTUxFbGVtZW50Pj4gbmV1dHJh
bENvbnRyb2xzOwotICAgICAgICAgICAgVmVjdG9yPFJlZjxIVE1MRWxlbWVudD4+IG5lZ2F0aXZl
Q29udHJvbHM7CisgICAgICAgICAgICBzdHJ1Y3QgQ2xhc3NpZmllZENvbnRyb2xzIHsKKyAgICAg
ICAgICAgICAgICBWZWN0b3I8V2Vha1B0cjxIVE1MRWxlbWVudD4+IHBvc2l0aXZlOworICAgICAg
ICAgICAgICAgIFZlY3RvcjxXZWFrUHRyPEhUTUxFbGVtZW50Pj4gbmV1dHJhbDsKKyAgICAgICAg
ICAgICAgICBWZWN0b3I8V2Vha1B0cjxIVE1MRWxlbWVudD4+IG5lZ2F0aXZlOworCisgICAgICAg
ICAgICAgICAgSFRNTEVsZW1lbnQqIGNvbnRyb2xUb0NsaWNrKE1vZGFsQ29udGFpbmVyRGVjaXNp
b24gZGVjaXNpb24pIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICBhdXRvIG1hdGNoTm9uTnVsbCA9IFsmXShjb25zdCBXZWFrUHRyPEhUTUxFbGVtZW50PiYgZWxl
bWVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEhZWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRlY2lzaW9u
KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hv
dzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpIaWRl
QW5kSWdub3JlOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFsbG93OgorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gaW5kZXggPSBwb3NpdGl2ZS5maW5kTWF0Y2hpbmco
bWF0Y2hOb25OdWxsKTsgaW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHBvc2l0aXZlW2luZGV4XS5nZXQoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvIGluZGV4ID0gbmV1dHJhbC5maW5kTWF0Y2hpbmcobWF0Y2hOb25OdWxsKTsg
aW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dXRyYWxbaW5kZXhdLmdldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZERpc2Fs
bG93OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gaW5kZXggPSBuZWdhdGl2ZS5m
aW5kTWF0Y2hpbmcobWF0Y2hOb25OdWxsKTsgaW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0aXZlW2luZGV4XS5nZXQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcygpIGNvbnN0
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBPcHRpb25TZXQ8TW9kYWxD
b250YWluZXJDb250cm9sVHlwZT4gYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090aGVyOworICAgICAg
ICAgICAgICAgICAgICBpZiAoIXBvc2l0aXZlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGF2YWlsYWJsZVR5cGVzSWdub3JpbmdPdGhlci5hZGQoTW9kYWxDb250YWluZXJDb250
cm9sVHlwZTo6UG9zaXRpdmUpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZVR5cGVzSWdub3JpbmdP
dGhlci5hZGQoTW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6TmVnYXRpdmUpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoIW5ldXRyYWwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYXZhaWxhYmxlVHlwZXNJZ25vcmluZ090aGVyLmFkZChNb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlOjpOZXV0cmFsKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF2YWlsYWJsZVR5cGVz
SWdub3JpbmdPdGhlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAg
ICAgICAgICBDbGFzc2lmaWVkQ29udHJvbHMgY2xhc3NpZmllZENvbnRyb2xzOwogICAgICAgICAg
ICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IHR5cGVzLnNpemUoKTsgKytpbmRleCkg
ewogICAgICAgICAgICAgICAgIGF1dG8gY29udHJvbCA9IGNvbnRyb2xzW2luZGV4XTsKICAgICAg
ICAgICAgICAgICBpZiAoIWNvbnRyb2wpCkBAIC0zMTAsNTEgKzM1MCw1NyBAQCB2b2lkIE1vZGFs
Q29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50c1RpbWVyRmlyZWQoKQog
CiAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlc1tpbmRleF0pIHsKICAgICAgICAgICAgICAg
ICBjYXNlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6OlBvc2l0aXZlOgotICAgICAgICAgICAg
ICAgICAgICBwb3NpdGl2ZUNvbnRyb2xzLmFwcGVuZCgqY29udHJvbCk7CisgICAgICAgICAgICAg
ICAgICAgIGNsYXNzaWZpZWRDb250cm9scy5wb3NpdGl2ZS5hcHBlbmQoY29udHJvbCk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgTW9kYWxDb250YWlu
ZXJDb250cm9sVHlwZTo6TmVnYXRpdmU6Ci0gICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlQ29u
dHJvbHMuYXBwZW5kKCpjb250cm9sKTsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmllZENv
bnRyb2xzLm5lZ2F0aXZlLmFwcGVuZChjb250cm9sKTsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgY2FzZSBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZXV0
cmFsOgotICAgICAgICAgICAgICAgICAgICBuZXV0cmFsQ29udHJvbHMuYXBwZW5kKCpjb250cm9s
KTsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NpZmllZENvbnRyb2xzLm5ldXRyYWwuYXBwZW5k
KGNvbnRyb2wpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBj
YXNlIE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok90aGVyOgogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IFJlZlB0cjxIVE1MRWxlbWVudD4gY29udHJvbFRvQ2xpY2s7Ci0gICAgICAgICAgICBzd2l0Y2gg
KGRvY3VtZW50TG9hZGVyLT5tb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5KCkpIHsKLSAg
ICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWJsZWQ6
Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIE1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6
OkFsbG93OiB7Ci0gICAgICAgICAgICAgICAgaWYgKCFwb3NpdGl2ZUNvbnRyb2xzLmlzRW1wdHko
KSkKLSAgICAgICAgICAgICAgICAgICAgY29udHJvbFRvQ2xpY2sgPSBwb3NpdGl2ZUNvbnRyb2xz
WzBdLnB0cigpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFuZXV0cmFsQ29udHJvbHMuaXNF
bXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBjb250cm9sVG9DbGljayA9IG5ldXRyYWxDb250
cm9sc1swXS5wdHIoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGNhc2UgTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWxsb3c6
IHsKLSAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlQ29udHJvbHMuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgICAgICAgICBjb250cm9sVG9DbGljayA9IG5lZ2F0aXZlQ29udHJvbHNbMF0ucHRy
KCk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoIW5ldXRyYWxDb250cm9scy5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNrID0gbmV1dHJhbENvbnRyb2xzWzBd
LnB0cigpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2FzZSBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpQcm9tcHQ6Ci0gICAgICAg
ICAgICAgICAgLy8gTm90IHN1cHBvcnRlZCB5ZXQuCi0gICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBvYnNlcnZlci0+bV9oYXNBdHRlbXB0ZWRUb0Z1bGZpbGxQb2xpY3kgPSB0cnVl
OworCisgICAgICAgICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICAgICAg
ICAgIGlmICghcGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1
dG8gY2xpY2thYmxlQ29udHJvbFR5cGVzID0gY2xhc3NpZmllZENvbnRyb2xzLnR5cGVzKCk7Cisg
ICAgICAgICAgICBpZiAoY2xpY2thYmxlQ29udHJvbFR5cGVzLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgICAgIG9ic2VydmVyLT5yZXZlYWxNb2RhbENvbnRhaW5lcigpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb2JzZXJ2ZXItPm1faGFz
QXR0ZW1wdGVkVG9GdWxmaWxsUG9saWN5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKGNsaWNrYWJsZUNvbnRy
b2xUeXBlcywgW3dlYWtEb2N1bWVudCA9IFdURk1vdmUod2Vha0RvY3VtZW50KSwgb2JzZXJ2ZXIs
IGNsYXNzaWZpZWRDb250cm9scyA9IFdURk1vdmUoY2xhc3NpZmllZENvbnRyb2xzKV0oYXV0byBk
ZWNpc2lvbikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgUmVmUHRyIGRvY3VtZW50ID0gd2Vh
a0RvY3VtZW50LmdldCgpOworICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlciAhPSBk
b2N1bWVudC0+bW9kYWxDb250YWluZXJPYnNlcnZlcklmRXhpc3RzKCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIGlmIChkZWNpc2lvbiA9PSBNb2RhbENv
bnRhaW5lckRlY2lzaW9uOjpTaG93KSB7CisgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLT5y
ZXZlYWxNb2RhbENvbnRhaW5lcigpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoY29udHJvbFRvQ2xpY2spCi0gICAgICAg
ICAgICAgICAgY29udHJvbFRvQ2xpY2stPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sobnVsbHB0ciwg
U2VuZE1vdXNlVXBEb3duRXZlbnRzLCBEb05vdFNob3dQcmVzc2VkTG9vayk7CisgICAgICAgICAg
ICAgICAgaWYgKFJlZlB0ciBjb250cm9sVG9DbGljayA9IGNsYXNzaWZpZWRDb250cm9scy5jb250
cm9sVG9DbGljayhkZWNpc2lvbikpCisgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUb0NsaWNr
LT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKG51bGxwdHIsIFNlbmRNb3VzZVVwRG93bkV2ZW50cywg
RG9Ob3RTaG93UHJlc3NlZExvb2spOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogfQogCit2b2lkIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnJldmVhbE1vZGFsQ29udGFp
bmVyKCkKK3sKKyAgICBpZiAoYXV0byBjb250YWluZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29udGFp
bmVyLCB7IH0pKQorICAgICAgICBjb250YWluZXItPmludmFsaWRhdGVTdHlsZSgpOworfQorCiBz
dGQ6OnBhaXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQ+PiwgVmVjdG9yPFN0cmluZz4+IE1v
ZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OmNvbGxlY3RDbGlja2FibGVFbGVtZW50cygpCiB7CiAgICAg
UmVmIGNvbnRhaW5lciA9ICptX2NvbnRhaW5lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2Rh
bENvbnRhaW5lck9ic2VydmVyLmgKaW5kZXggZGRkN2I4Zjc1MTdkMDg3YmIwODRmNWYxYzZhZTBi
ZWVjN2I1YmE5Zi4uYTczNTZmZWYyZmM1ZDExYmQ4MDQwYmYyOWFhOThjYTZjNTI0MWU2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVyLmgKQEAgLTUzLDYg
KzUzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlQ2xpY2thYmxlRWxl
bWVudENvbGxlY3Rpb24oKTsKICAgICB2b2lkIGNvbGxlY3RDbGlja2FibGVFbGVtZW50c1RpbWVy
RmlyZWQoKTsKKyAgICB2b2lkIHJldmVhbE1vZGFsQ29udGFpbmVyKCk7CiAKICAgICBzdGQ6OnBh
aXI8VmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1lbnQ+PiwgVmVjdG9yPFN0cmluZz4+IGNvbGxlY3RD
bGlja2FibGVFbGVtZW50cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01v
ZGFsQ29udGFpbmVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJU
eXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgxZTU0ZmQ3NjE3MDI2NjU1ZDEwNTQzZGJkMTliNTM5OGVjMzg3
ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVy
VHlwZXMuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0g
Y2xhc3MgTW9kYWxDb250YWluZXJDb250cm9sVHlwZSA6IHVpbnQ4X3QgeworICAgIE5ldXRyYWwg
PSAxIDw8IDAsCisgICAgUG9zaXRpdmUgPSAxIDw8IDEsCisgICAgTmVnYXRpdmUgPSAxIDw8IDIs
CisgICAgT3RoZXIgPSAxIDw8IDMsCit9OworCitlbnVtIGNsYXNzIE1vZGFsQ29udGFpbmVyRGVj
aXNpb24gOiB1aW50OF90IHsKKyAgICBTaG93LAorICAgIEhpZGVBbmRJZ25vcmUsCisgICAgSGlk
ZUFuZEFsbG93LAorICAgIEhpZGVBbmREaXNhbGxvdywKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGUs
CisgICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwsCisg
ICAgICAgIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6OlBvc2l0aXZlLAorICAg
ICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpOZWdhdGl2ZSwKKyAgICAg
ICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZTo6T3RoZXIKKyAgICA+OworfTsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRl
Y2lzaW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWlu
ZXJEZWNpc2lvbjo6U2hvdywKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lv
bjo6SGlkZUFuZElnbm9yZSwKKyAgICAgICAgV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lv
bjo6SGlkZUFuZEFsbG93LAorICAgICAgICBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9u
OjpIaWRlQW5kRGlzYWxsb3cKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBjZTVmZWEyYjJlYTE2N2U3
M2EyMzEwOTIyYTA2MThmMmNkMTc5MTU0Li42Y2I3NTc2OWQ0ZmQ0YzBhM2YwYWIwYmNlMmYxYjc4
NGMwMWU0NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTgwMiw2ICs4MDIsOCBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dl
YkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlJzogWyc8V2ViQ29yZS9NZWRpYVByb2R1Y2Vy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZSc6IFsnPFdl
YkNvcmUvTWVkaWFQcm9kdWNlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5JzogWyc8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9s
VHlwZSc6IFsnPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPiddLAorICAgICAgICAnV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbic6IFsnPFdlYkNvcmUvTW9kYWxDb250YWluZXJU
eXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSc6IFsnPFdlYkNv
cmUvRG9jdW1lbnRMb2FkZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1vdmVEYXRhJzogWyc8
V2ViQ29yZS9JbmxpbmVQYXRoRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TmV0d29ya1Ry
YW5zYWN0aW9uSW5mb3JtYXRpb24nOiBbJzxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24u
aD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2NWQ5MTgxYmEwYzllMTFkYzhiNmNmNGEw
NzEyY2MyNTIzYzJmZWE1Li4xMWYwYzI0MDVhYzk0NzRiZThmOGU4MDVmZWViYzhmMWJiNjk2MDAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yODcsNiArMjg3LDcgQEAgVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdG
ZWF0dXJlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0xpbmtJY29uUGFyYW1ldGVycy5tbQor
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8ubW0KIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8ubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKaW5kZXggN2I2NDQwY2ZiMzdkYWUzNWI2MzljY2VkNGYxMjE0ODczMDZi
MTQ2OS4uOTY4NTA1NDkyOWNmZGMzNWU5OGExNWYwNTRmNzgzOWUxZGY0YWUwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUNvbnNlbnRE
ZWNpc2lvblJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTE0Niw2ICsxNDcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgU2VjdXJpdHlPcmlnaW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzQ29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQ
cm94eSosIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXF1ZXN0aW5nRG9tYWlu
LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgY3VycmVudERvbWFpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q29va2llQ29uc2VudChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tpZUNvbnNlbnREZWNpc2lvblJlc3Vs
dCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6Q29v
a2llQ29uc2VudERlY2lzaW9uUmVzdWx0OjpOb3RTdXBwb3J0ZWQpOyB9CisgICAgdmlydHVhbCB2
b2lkIGRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2Rh
bENvbnRhaW5lckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpN
b2RhbENvbnRhaW5lckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7IH0KIAogICAgIC8vIFByaW50aW5nLgog
ICAgIHZpcnR1YWwgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2Vi
S2l0OjpXZWJGcmFtZVByb3h5JikgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggMGJm
MjBkOTc0M2M0OTlkYTMyMjJhN2Q0NTRkNGFmZmM0MjBiYjExYS4uOWM0MzIxM2I2NDk4ZTZlYTkz
ZDJkNDdkMzg5NzhkODEwMGQzZGMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC00Miw2ICs0Miw3IEBA
CiBAY2xhc3MgX1dLSW5zcGVjdG9yOwogQGNsYXNzIF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb247
CiBAY2xhc3MgX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm87CitAY2xhc3MgX1dLTW9kYWxDb250
YWluZXJJbmZvOwogCiAjaWYgVEFSR0VUX09TX0lPUwogCkBAIC0xMDMsNiArMTA0LDEzIEBAIHR5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3MpIHsK
ICAgICBfV0tYUlNlc3Npb25GZWF0dXJlRmxhZ3NSZWZlcmVuY2VTcGFjZVR5cGVVbmJvdW5kZWQg
PSAxIDw8IDQsCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS01vZGFsQ29udGFpbmVy
RGVjaXNpb24pIHsKKyAgICBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uU2hvdywKKyAgICBfV0tN
b2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZElnbm9yZSwKKyAgICBfV0tNb2RhbENvbnRhaW5l
ckRlY2lzaW9uSGlkZUFuZEFsbG93LAorICAgIF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb25IaWRl
QW5kRGlzYWxsb3csCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CisKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGVQcml2YXRlIDxXS1VJRGVsZWdh
dGU+CiAKICNpZmRlZiBGT1VOREFUSU9OX0hBU19ESVJFQ1RJT05BTF9HRU9NRVRSWQpAQCAtMTgx
LDYgKzE4OSw4IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdENvb2tpZUNvbnNlbnRXaXRoTW9yZUluZm9IYW5kbGVy
Oih2b2lkICheKSh2b2lkKSltb3JlSW5mb0hhbmRsZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjooX1dLTW9kYWxDb250YWluZXJJbmZv
ICopY29udGFpbmVySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS01vZGFsQ29udGFp
bmVyRGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCiAtIChC
T09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0
aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElf
QVZBSUxBQkxFKGlvcyg5LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQppbmRleCA3YTYxYThiNDQ3Zjk1
ZDI5MjU3YmQ0NTZjOTViMDkyNWYwNjMyMGZlLi4zNDg0MTYxNWQ2YjkyZGQ5MDE0NTM3ZDdlOTJi
NWFhY2M2MzYwNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCkBAIC0xMTEsMTAgKzExMSw2IEBAIHN0
YXRpYyBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeSBtb2RhbENvbnRh
aW5lck9ic2VydmF0aW9uUG9saWN5CiAgICAgICAgIHJldHVybiBfV0tXZWJzaXRlTW9kYWxDb250
YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2FibGVkOwogICAgIGNhc2UgV2ViQ29yZTo6TW9kYWxD
b250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6UHJvbXB0OgogICAgICAgICByZXR1cm4gX1dLV2Vi
c2l0ZU1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3lQcm9tcHQ7Ci0gICAgY2FzZSBXZWJD
b3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpBbGxvdzoKLSAgICAgICAgcmV0
dXJuIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxsb3c7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzoK
LSAgICAgICAgcmV0dXJuIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5
RGlzYWxsb3c7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBf
V0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2FibGVkOwpAQCAtMTI3
LDEwICsxMjMsNiBAQCBzdGF0aWMgV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBv
bGljeSBjb3JlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbAogICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWJsZWQ7CiAgICAgY2Fz
ZSBfV0tXZWJzaXRlTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeVByb21wdDoKICAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6OlByb21w
dDsKLSAgICBjYXNlIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5QWxs
b3c6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9s
aWN5OjpBbGxvdzsKLSAgICBjYXNlIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
UG9saWN5RGlzYWxsb3c6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9i
c2VydmF0aW9uUG9saWN5OjpEaXNhbGxvdzsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3k6
OkRpc2FibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGU4YmI0ZWRlMjVk
NTE2MjA2N2Y4MGFiZDZkY2VjNGFlMjdiZDBhYzQuLmZlZDAzODZkMTgxMjJmMzUzMTI4MDMzY2Y5
NjU1Mzg4YmE3MTYwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTY1LDgg
KzY1LDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVNb3VzZUV2
ZW50UG9saWN5KSB7CiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZU1v
ZGFsQ29udGFpbmVyT2JzZXJ2YXRpb25Qb2xpY3kpIHsKICAgICBfV0tXZWJzaXRlTW9kYWxDb250
YWluZXJPYnNlcnZhdGlvblBvbGljeURpc2FibGVkLAogICAgIF9XS1dlYnNpdGVNb2RhbENvbnRh
aW5lck9ic2VydmF0aW9uUG9saWN5UHJvbXB0LAotICAgIF9XS1dlYnNpdGVNb2RhbENvbnRhaW5l
ck9ic2VydmF0aW9uUG9saWN5QWxsb3csCi0gICAgX1dLV2Vic2l0ZU1vZGFsQ29udGFpbmVyT2Jz
ZXJ2YXRpb25Qb2xpY3lEaXNhbGxvdywKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gQWxsb3cgb3ZlcnJpZGluZyB0aGUgc3lzdGVt
IGNvbG9yLXNjaGVtZSB3aXRoIGEgcGVyLXdlYnNpdGUgcHJlZmVyZW5jZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lcklu
Zm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMmU1MzY1ZGU5MTU2ZDhkZjRlOTkxMTc4Nzc5NDAxMDU3MjNiNjg5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S01vZGFsQ29udGFpbmVySW5mby5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRp
b24uaD4KKwordHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS01vZGFsQ29udGFpbmVy
Q29udHJvbFR5cGVzKSB7CisgICAgX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZU5ldXRyYWwg
PSAxIDw8IDAsCisgICAgX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZVBvc2l0aXZlID0gMSA8
PCAxLAorICAgIF9XS01vZGFsQ29udGFpbmVyQ29udHJvbFR5cGVOZWdhdGl2ZSA9IDEgPDwgMiwK
K30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
KworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
CitAaW50ZXJmYWNlIF9XS01vZGFsQ29udGFpbmVySW5mbyA6IE5TT2JqZWN0CisKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZXMgYXZh
aWxhYmxlVHlwZXM7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tNb2RhbENvbnRhaW5lckluZm8ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyODRj
MWViNjIxYzhiN2ExNTk2MWU0ZTkxYTQ4NGI3NWRjOTcxNzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvLm1t
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIl9XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUv
TW9kYWxDb250YWluZXJUeXBlcy5oPgorCitAaW1wbGVtZW50YXRpb24gX1dLTW9kYWxDb250YWlu
ZXJJbmZvCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFR5cGVzOihPcHRpb25TZXQ8V2ViQ29y
ZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4pdHlwZXMKK3sKKyAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmICh0eXBlcy5jb250
YWlucyhXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlOjpQb3NpdGl2ZSkpCisgICAg
ICAgIF9hdmFpbGFibGVUeXBlcyB8PSBfV0tNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlUG9zaXRp
dmU7CisKKyAgICBpZiAodHlwZXMuY29udGFpbnMoV2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250
cm9sVHlwZTo6TmVnYXRpdmUpKQorICAgICAgICBfYXZhaWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxD
b250YWluZXJDb250cm9sVHlwZU5lZ2F0aXZlOworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFdl
YkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU6Ok5ldXRyYWwpKQorICAgICAgICBfYXZh
aWxhYmxlVHlwZXMgfD0gX1dLTW9kYWxDb250YWluZXJDb250cm9sVHlwZU5ldXRyYWw7CisKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZjEyYzliOTk3YzdkMjA3YTAwZWE3NmNhMGZlMDQ4MDViNTEyNTRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS01v
ZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJfV0tNb2RhbENvbnRhaW5lckluZm8uaCIKKyNpbXBv
cnQgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDogdWludDhfdDsKK30KKworQGludGVyZmFjZSBfV0tN
b2RhbENvbnRhaW5lckluZm8gKFdlYktpdEludGVybmFsKQorCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhUeXBlczooT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+
KXR5cGVzOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVyLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvTW9kYWxDb250YWluZXJDb250cm9sQ2xhc3NpZmllci5tbQppbmRleCAyMjlj
MzdiNjQ4NTUyNjhjYzI1MjgzYjIwNmNkODkyN2VkMDRiYzIxLi5jYWJiZTA1MzI5Zjc3MWFiMDQ4
OWZlNTlmOThmMDhkOGY1N2YxZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Nb2RhbENvbnRhaW5lckNvbnRyb2xDbGFzc2lmaWVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGFsQ29udGFpbmVyQ29udHJvbENsYXNzaWZpZXIubW0K
QEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiTW9kYWxDb250
YWluZXJDb250cm9sQ2xhc3NpZmllci5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL01vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5o
PgogI2ltcG9ydCA8cGFsL2NvY29hL0NvcmVNTFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29j
b2EvTmF0dXJhbExhbmd1YWdlU29mdExpbmsuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGQ2MDc0ZGMzMzZjOWJmOTRkMWY4YTNjNzYyOGVhZTVm
OGY1Y2ZjM2QuLjlhMDMzZGI1ZTcxODRmMjMwNTRmOGMyZGFjZDRiZTA2MzBhNzliYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEwNyw2ICsxMDcs
NyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViUGFnZVBy
b3h5JiwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5
RXZlbnRGbGFncz4pIGZpbmFsOwogICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYWxsb3dlZCk+JiYpIGZpbmFsOwogICAgICAg
ICB2b2lkIHJlcXVlc3RDb29raWVDb25zZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0KT4mJikgZmluYWw7CisgICAgICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyRGVjaXNpb24pPiYmKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAg
ICAgdm9pZCBzaG93UGFnZShXZWJQYWdlUHJveHkqKSBmaW5hbDsKQEAgLTI3NCw2ICsyNzUsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIGJvb2wgd2ViVmlld1JlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW5EZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAg
ICBib29sIHdlYlZpZXdSZXF1ZXN0Q29va2llQ29uc2VudFdpdGhNb3JlSW5mb0hhbmRsZXJEZWNp
c2lvbkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JNb2Rh
bENvbnRhaW5lckRlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4
IGUzNzNmZDE2ZWI1MzkyMzEwYzE5MDE4ZmQ1ZTY1MWQyZmUwM2NjZTYuLmRkZmM2N2Q2OTU3MzE5
MzFlY2E0ZWIzOTkyNmZiNWI2ZTg3NGE1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNTcsNiArNTcsNyBAQAogI2ltcG9ydCAiX1dLSGl0VGVz
dFJlc3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uSW50
ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCisjaW1wb3J0ICJfV0tN
b2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbEludGVybmFsLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZDYXB0dXJlRGV2aWNl
Lmg+CiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZNZWRpYUZvcm1hdC5oPgpAQCAtMTk5LDYgKzIw
MCw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVs
ZWdhdGUpCiAjZW5kaWYKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVxdWVzdE5vdGlm
aWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46ZGVjaXNpb25IYW5kbGVyOildOwogICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXF1ZXN0Q29va2llQ29uc2VudFdpdGhNb3JlSW5m
b0hhbmRsZXJEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihfd2ViVmlldzpyZXF1ZXN0Q29va2llQ29uc2VudFdpdGhNb3JlSW5mb0hhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JNb2RhbENvbnRhaW5lckRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFp
bmVyOmRlY2lzaW9uSGFuZGxlcjopXTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpA
QCAtNjY1LDYgKzY2Nyw0NCBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZXF1ZXN0Q29v
a2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OgogICAgIH0pLmdldCgp
XTsKIH0KIAorc3RhdGljIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24gY29yZU1vZGFs
Q29udGFpbmVyRGVjaXNpb24oX1dLTW9kYWxDb250YWluZXJEZWNpc2lvbiBkZWNpc2lvbikKK3sK
KyAgICBzd2l0Y2ggKGRlY2lzaW9uKSB7CisgICAgY2FzZSBfV0tNb2RhbENvbnRhaW5lckRlY2lz
aW9uU2hvdzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246
OlNob3c7CisgICAgY2FzZSBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZElnbm9yZToK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmRJ
Z25vcmU7CisgICAgY2FzZSBfV0tNb2RhbENvbnRhaW5lckRlY2lzaW9uSGlkZUFuZEFsbG93Ogor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6SGlkZUFuZEFs
bG93OworICAgIGNhc2UgX1dLTW9kYWxDb250YWluZXJEZWNpc2lvbkhpZGVBbmREaXNhbGxvdzoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb246OkhpZGVBbmRE
aXNhbGxvdzsKKyAgICB9CisgICAgcmV0dXJuIFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNp
b246OlNob3c7Cit9CisKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlPiBjb250cm9sVHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TW9kYWxD
b250YWluZXJEZWNpc2lvbik+JiYgY29tcGxldGlvbikKK3sKKyAgICBpZiAoIW1fdWlEZWxlZ2F0
ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24oV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNp
c2lvbjo6U2hvdyk7CisKKyAgICBpZiAoIW1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0RlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyRGVjaXNpb25IYW5kbGVyKQorICAg
ICAgICByZXR1cm4gY29tcGxldGlvbihXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uOjpT
aG93KTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0
KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24oV2ViQ29y
ZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbjo6U2hvdyk7CisKKyAgICBhdXRvIGNoZWNrZXIgPSBD
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxl
Y3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjpkZWNpc2lvbkhhbmRs
ZXI6KSk7CisgICAgYXV0byBpbmZvID0gYWRvcHROUyhbW19XS01vZGFsQ29udGFpbmVySW5mbyBh
bGxvY10gaW5pdFdpdGhUeXBlczpjb250cm9sVHlwZXNdKTsKKyAgICBbKGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQo
KS5nZXQoKSBkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcjppbmZvLmdldCgpIGRlY2lzaW9u
SGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pLCBj
aGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0gKF9XS01vZGFsQ29udGFpbmVyRGVjaXNpb24gZGVj
aXNpb24pIG11dGFibGUgeworICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJI
YXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2hlY2tlci0+
ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIGNvbXBsZXRpb24oY29yZU1vZGFs
Q29udGFpbmVyRGVjaXNpb24oZGVjaXNpb24pKTsKKyAgICB9KS5nZXQoKV07Cit9CisKICNpZiBQ
TEFURk9STShNQUMpCiBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjYW5SdW5Nb2RhbCgpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1ZmY2
MGU3YTRiNzljYmU4YjhjOWE0M2I5YTQwNzI5MWZjZjJlZDM0Li42ZmEwNzhkNGNlOTVhNmYxMGMx
YjRiZWI3Yzg5NzVmYjJhZmU5ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01vZGFsQ29udGFp
bmVyQ29udHJvbFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vZGFsQ29udGFpbmVyVHlwZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGVybWlzc2lvblN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bUV2ZW50Lmg+CkBAIC0xMTA1Nyw2ICsxMTA1NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdENvb2tpZUNvbnNlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb29raWVDb25zZW50RGVj
aQogICAgIG1fdWlDbGllbnQtPnJlcXVlc3RDb29raWVDb25zZW50KFdURk1vdmUoY29tcGxldGlv
bikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWlu
ZXIoT3B0aW9uU2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmIGNvbXBsZXRpb24pCit7Cisg
ICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIodHlwZXMsIFdURk1v
dmUoY29tcGxldGlvbikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFdF
QlBBR0VQUk9YWV9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA3OTk5NzBkZWQ2YTQyMjZiNmEzZjhkM2EzZDM3OTg1Y2Y0YTAyYTMxLi5jNTIwZjNi
MDVkOWJhZjBhNzNhYmVlOWM5YmI3ZmRlMzM3ZWVjMzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMjc1LDYgKzI3NSw3IEBAIGVudW0gY2xhc3MgSGFzSW5zZWN1
cmVDb250ZW50IDogYm9vbDsKIGVudW0gY2xhc3MgSGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJ
bkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIEhpZ2hsaWdodFZpc2liaWxpdHkgOiBib29sOwogZW51
bSBjbGFzcyBNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlIDogdWludDhfdDsKK2VudW0gY2xhc3Mg
TW9kYWxDb250YWluZXJEZWNpc2lvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE1vdXNlRXZlbnRQ
b2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50
OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwpAQCAtMjAzOCw2
ICsyMDM5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXF1ZXN0Q29va2llQ29uc2VudChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdCk+
JiYpOwogICAgIHZvaWQgY2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxTdHJp
bmc+JiYgdGV4dHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck1v
ZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBl
PiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9u
KT4mJik7CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9j
ZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMmYyNjEzOTU1
YjBhZGJmNzI2ZmE5Nzg4ZDFiNzQwZjYzODY0YzRiYS4uOTQyYzkzZGQyZjkyNjkyNWRjODQzZmRh
Nzk2ODQ0ZDQ4NzEyOTAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjE2LDQgKzYxNiw1IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAKICAgICBSZXF1ZXN0Q29va2llQ29uc2VudCgpIC0+IChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICBD
bGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4gdGV4dHMpIC0+IChW
ZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4gdHlwZXMpIEFzeW5jCisg
ICAgRGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PFdlYkNvcmU6Ok1vZGFs
Q29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNpb24pIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5OGQ5NDNlZjdkMTZkNWYx
YjNmODI3MDIwM2JlNGFhMjFhMTQ0ZDU4Li43ZWRkYmIwZjkzZjg3Y2MwNzg4NTQ5ZmEwZGMzMTNh
ODA4NjE0N2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIwMTksNiArMjAxOSw4IEBACiAJCUY0RDk4NUM4MjY5MEZDMTIwMEJCQ0NC
RSAvKiBfV0tUYXBIYW5kbGluZ1Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjREOTg1QzcyNjkwRkJFRjAwQkJDQ0JFIC8qIF9XS1RhcEhhbmRs
aW5nUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRjREOTg1Q0IyNjkxMDk2NjAwQkJDQ0JFIC8qIFRhcEhhbmRsaW5nUmVzdWx0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEUyQjQ0QTI2OEZE
RTFBMDAzMjdBQkMgLyogVGFwSGFuZGxpbmdSZXN1bHQuaCAqLzsgfTsKIAkJRjREQjU0RTYyMzE5
RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REI1NEU0MjMx
OUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmgg
Ki87IH07CisJCUY0REJDMEJFMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lcklu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REJD
MEJDMjc2QUE2QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNERCQzBDMTI3NkFBNkNB
MDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REJDMEMwMjc2QUE2Q0EwMDAxRDE2
OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm9JbnRlcm5hbC5oICovOyB9OwogCQlGNEVCNEFGRDI2
OUNEN0YzMDBEMjk3QUUgLyogT1NTdGF0ZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQjRBRkMyNjlDRDIzNjAwRDI5N0FFIC8qIE9TU3RhdGVT
UEkuaCAqLzsgfTsKIAkJRjRFQzk0RTMyMzU2Q0M1NzAwMEJCNjE0IC8qIEFwcGxpY2F0aW9uU2Vy
dmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI5RDA0RTI4MjFGN0M3M0QwMDc2NzQxRCAvKiBBcHBsaWNhdGlvblNlcnZpY2VzU1BJLmggKi87
IH07CiAJCUY0RkUwQTNCMjQ2MzJCNjAwMDI2MzFFMSAvKiBDb2NvYUNvbG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEZFMEEzQTI0NjMyQjEwMDAy
NjMxRTEgLyogQ29jb2FDb2xvci5oICovOyB9OwpAQCAtNjQ0NSw2ICs2NDQ3LDkgQEAKIAkJRjRE
OTg1QzcyNjkwRkJFRjAwQkJDQ0JFIC8qIF9XS1RhcEhhbmRsaW5nUmVzdWx0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1RhcEhhbmRsaW5nUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1
cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSGlnaGxp
Z2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS0hpZ2hsaWdodExv
bmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0REI1NEU1MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tI
aWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS0hpZ2hs
aWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNERCQzBCQzI3NkFBNkE3MDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZv
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS01vZGFsQ29udGFpbmVySW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNERCQzBCRDI3NkFBNkE3MDAwMUQx
NjkgLyogX1dLTW9kYWxDb250YWluZXJJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gX1dLTW9kYWxDb250YWluZXJJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNERCQzBDMDI3NkFBNkNBMDAwMUQxNjkgLyogX1dLTW9kYWxDb250YWlu
ZXJJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLTW9kYWxDb250YWluZXJJbmZvSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFMkI0NEEyNjhGREUxQTAw
MzI3QUJDIC8qIFRhcEhhbmRsaW5nUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRhcEhhbmRsaW5n
UmVzdWx0Lmg7IHBhdGggPSBpb3MvVGFwSGFuZGxpbmdSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFQjRBRkMyNjlDRDIzNjAwRDI5N0FFIC8qIE9TU3RhdGVTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gT1NTdGF0ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNEY1OUFEMzIwNjVBNUM5MDA2Q0FBNDYgLyogV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9s
bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTZWxlY3RN
ZW51TGlzdFZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxp
c3RWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2ODcs
NiArODY5Miw5IEBACiAJCQkJNTFDMEM5NzkxRERENzg1NDAwMzJDQUQzIC8qIF9XS0xpbmtJY29u
UGFyYW1ldGVycy5oICovLAogCQkJCTUxQzBDOTdBMURERDc4NTQwMDMyQ0FEMyAvKiBfV0tMaW5r
SWNvblBhcmFtZXRlcnMubW0gKi8sCiAJCQkJNTFDMEM5N0IxRERENzg1NDAwMzJDQUQzIC8qIF9X
S0xpbmtJY29uUGFyYW1ldGVyc0ludGVybmFsLmggKi8sCisJCQkJRjREQkMwQkMyNzZBQTZBNzAw
MDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5oICovLAorCQkJCUY0REJDMEJEMjc2QUE2
QTcwMDAxRDE2OSAvKiBfV0tNb2RhbENvbnRhaW5lckluZm8ubW0gKi8sCisJCQkJRjREQkMwQzAy
NzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mb0ludGVybmFsLmggKi8sCiAJ
CQkJOTMyMzYxMUQxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5o
ICovLAogCQkJCTFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaCAqLywKIAkJCQkxQTQzRTgyNzE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tICovLApAQCAtMTI2NDQsNiArMTI2NTIsOCBAQAogCQkJCTMx
QjM2Mjk3MjE0MUVCRDkwMDdCRkE1MyAvKiBfV0tJbnRlcm5hbERlYnVnRmVhdHVyZUludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc5MEE5RDFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5
b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwRjU5MTExRERFMjk3MDAwNDEyRkY1IC8q
IF9XS0xpbmtJY29uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjREQkMwQkUyNzZB
QTZBNzAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mby5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjREQkMwQzEyNzZBQTZDQTAwMDFEMTY5IC8qIF9XS01vZGFsQ29udGFpbmVySW5mb0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTE4QTlGMzE5MDhCOEVBMDBGN0M5MkIgLyogX1dL
TlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDMEYwQTcyMDAwNjU0
RDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzIz
NjExRTFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYTI2ZmFkMGRiMDBmNTdhMmFjN2E3
MGEzNDRiYWIyOGMyOGI4NDkxZC4uYzdjZjU4NzVjOTQzYjc5MTkyYWViZDI4NjIzYjJiMWJjNzQ3
ZGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE1NzMsNiArMTU3MywxMSBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKFZlY3RvcjxT
dHJpbmc+JiYgc3RyaW5ncywgQwogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6Q2xhc3NpZnlNb2RhbENvbnRhaW5lckNvbnRyb2xzKFdURk1vdmUo
c3RyaW5ncykpLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRlY2lkZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlPiB0eXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNb2RhbENvbnRhaW5l
ckRlY2lzaW9uKT4mJiBjb21wbGV0aW9uKQoreworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIo
dHlwZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKK30KKwogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1dlYkNocm9tZUNsaWVudEFkZGl0aW9u
cy5jcHA+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDlmYTgxYzg3ZTE5MzlkMmExOTc0
YzYwNDg3NDU3MTI2YTgxZTU5NGIuLmRhNWFjZDEzOTVjYzkyNDA4ZmZkY2MyYTAyYjgzMTEyODY4
Zjk2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQ2OCw2ICs0NjgsOCBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4m
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJD
b250cm9sVHlwZT4mJik+JiYpIGZpbmFsOwogCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNb2Rh
bENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TW9kYWxDb250YWluZXJEZWNpc2lvbik+
JiYpIGZpbmFsOworCiAgICAgY29uc3QgQXRvbVN0cmluZyYgc2VhcmNoU3RyaW5nRm9yTW9kYWxD
b250YWluZXJPYnNlcnZlcigpIGNvbnN0IGZpbmFsOwogCiAgICAgbXV0YWJsZSBib29sIG1fY2Fj
aGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDI2Y2VkYmFjNGY5ZjFhYjFmZTVlYzgyYjNhODIzMWQyMzVkYzEzMzcuLjgyMjM3
OGY0MDYzZjBiYWYzMDQ4Y2QzMDBjYTY0MjIyODNkZTgwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC0yNjEsNiArMjYxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2xhc3NpZnlNb2RhbENvbnRh
aW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+JiYpPiYmKSBmaW5hbDsKIAor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PFdlYkNvcmU6
Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmKSBmaW5hbDsKKwogI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9k
ZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggYjMwNjQz
MThkMGMwYmI3YTRjNDUyMTE2MTYxZWZkN2NmMDdiYmZlNy4uMzYzNGY3YTYwMjE0NjE5ZWNmZWFm
MGFlZDllYmZjZTcyMTBmMWExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNzgsNyArNzgsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9JY29uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTW9kYWxDb250
YWluZXJDb250cm9sVHlwZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05hdmlnYXRpb25BY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgpAQCAtMTE3OCwz
ICsxMTc4LDggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsYXNzaWZ5TW9kYWxDb250YWluZXJD
b250cm9scyhWZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0aW8KIHsKICAgICBjb21wbGV0aW9uKHsg
fSk7CiB9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRh
aW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTW9kYWxDb250YWluZXJEZWNpc2lvbik+JiYgY29tcGxldGlvbikKK3sKKyAgICBj
b21wbGV0aW9uKE1vZGFsQ29udGFpbmVyRGVjaXNpb246OlNob3cpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggYmM3ZmFlYTdmYzU0NGZiMjViYzQ5Y2RkNWY2MmExMmFjMDcwZmFkYS4uMDk0
ZjY1MjEwMDU3NzVkZDQ2YzczZDdlNmIzOTY3MDcwMTFkOGFlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Mb2NhbFdpbmRvd3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9OYXZpZ2F0aW9uQWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgpAQCAtODg3LDMgKzg4Nyw4IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVj
dG9yPFN0cmluZz4mJiwgQ29tcGxldGlvCiB7CiAgICAgY29tcGxldGlvbih7IH0pOwogfQorCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9u
U2V0PE1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1v
ZGFsQ29udGFpbmVyRGVjaXNpb24pPiYmIGNvbXBsZXRpb24pCit7CisgICAgY29tcGxldGlvbihN
b2RhbENvbnRhaW5lckRlY2lzaW9uOjpTaG93KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDEz
YjEzMjFiOTA3NTczYTdmYjg1ODQxNmI1ZWY3OGU0NjM3ODA1OC4uNTkzM2ZjYzVjZmM1YmE5ZjBj
YjZmZjAxZDEwYWRkOTFlMzU2YzhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE4Nyw2ICsxODcs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhW
ZWN0b3I8U3RyaW5nPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpN
b2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiYmKT4mJikgZmluYWw7CiAKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ckNvbnRyb2xUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNb2RhbENvbnRh
aW5lckRlY2lzaW9uKT4mJikgZmluYWw7CisKIHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURl
bGVnYXRlPiB1aURlbGVnYXRlKCk7CiAK
</data>
<flag name="commit-queue"
          id="473454"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>