<?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>220874</bug_id>
          
          <creation_ts>2021-01-22 11:46:52 -0800</creation_ts>
          <short_desc>Update availability annotations to match the macOS 11.0 and iOS 14.0 GM SDKs</short_desc>
          <delta_ts>2021-01-25 13:36:58 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1721657</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-22 11:46:52 -0800</bug_when>
    <thetext>Update availability annotations to match the macOS 11.0 and iOS 14.0 GM SDKs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721658</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-22 11:47:07 -0800</bug_when>
    <thetext>&lt;rdar://73474368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721659</commentid>
    <comment_count>2</comment_count>
      <attachid>418166</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-22 11:48:39 -0800</bug_when>
    <thetext>Created attachment 418166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721667</commentid>
    <comment_count>3</comment_count>
      <attachid>418166</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-01-22 12:01:48 -0800</bug_when>
    <thetext>Comment on attachment 418166
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:129
&gt; +- (void)_webView:(WKWebView *)webView willGoToBackForwardListItem:(WKBackForwardListItem *)item inPageCache:(BOOL)inPageCache WK_API_AVAILABLE(macos(10.13.4), ios(14.0));

Can it really be that it&apos;s 10.13.4 on macOS, but a major release on iOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721668</commentid>
    <comment_count>4</comment_count>
      <attachid>418166</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-01-22 12:03:09 -0800</bug_when>
    <thetext>Comment on attachment 418166
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:129
&gt;&gt; +- (void)_webView:(WKWebView *)webView willGoToBackForwardListItem:(WKBackForwardListItem *)item inPageCache:(BOOL)inPageCache WK_API_AVAILABLE(macos(10.13.4), ios(14.0));
&gt; 
&gt; Can it really be that it&apos;s 10.13.4 on macOS, but a major release on iOS?

Yes.  See https://trac.webkit.org/changeset/260546/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721675</commentid>
    <comment_count>5</comment_count>
      <attachid>418166</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-01-22 12:08:18 -0800</bug_when>
    <thetext>Comment on attachment 418166
Patch

Got it. Did we have anything shipped in update SDKs that needs to be annotated accordingly? Surprised to see no point update version in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721679</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-22 12:12:45 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #5)
&gt; Comment on attachment 418166 [details]
&gt; Patch
&gt; 
&gt; Got it. Did we have anything shipped in update SDKs that needs to be
&gt; annotated accordingly? Surprised to see no point update version in this
&gt; patch.

I have no idea. It was already a pain to have to check which new API were in macOS 11.0 and iOS 14.0 one by one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722144</commentid>
    <comment_count>7</comment_count>
      <attachid>418310</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-25 11:03:44 -0800</bug_when>
    <thetext>Created attachment 418310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722146</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-25 11:04:45 -0800</bug_when>
    <thetext>Ok, I went further back to macOS 10.15.4 &amp; iOS 13.4 (which was our last WebKit major release before macOS 11.0 &amp; iOS 14.0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722222</commentid>
    <comment_count>9</comment_count>
      <attachid>418310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-25 13:06:53 -0800</bug_when>
    <thetext>Comment on attachment 418310
Patch

Makes me wish we had a script to check our headers against the SDK. Tempted to write one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722243</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-25 13:36:55 -0800</bug_when>
    <thetext>Committed r271813: &lt;https://trac.webkit.org/changeset/271813&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418310.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418166</attachid>
            <date>2021-01-22 11:48:39 -0800</date>
            <delta_ts>2021-01-25 11:03:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220874-20210122114838.patch</filename>
            <type>text/plain</type>
            <size>117560</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTZhZTljNTYyYWI1NTVkNjEzYzI0ODMxZTAxOGUwNGZhOGI3NzRiLi5kMjk4ZTgxMDc3OGVkN2E2
MTNhNTc3MTFjYTEzZGI1OGU0ODg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wMS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVwZGF0ZSBhdmFpbGFiaWxpdHkgYW5ub3RhdGlvbnMgdG8gbWF0Y2ggdGhlIG1h
Y09TIDExLjAgYW5kIGlPUyAxNC4wIEdNIFNES3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDg3NAorICAgICAgICA8cmRhcjovLzczNDc0MzY4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pT
Q29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0UmVmUHJpdmF0ZS5oOgor
CiAyMDIxLTAxLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIE9wdGlvbnM6dXNlQXRNZXRob2QgYmVjYXVzZSBvZiBjb21wYXRpYmlsaXR5IGlzc3Vl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA5Nzg5MGViNWNjYWExMjg4YTFkYzY1Yzg3NTlkNWRmNWJjYTA5YTA5Li42
Mjc3MmMzNzRkYWUyNjI1ZDA4OWE3ZTRhM2Y3ZGFmNTI0OGY3MWU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYwIEBACisyMDIxLTAxLTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIGF2YWlsYWJpbGl0eSBhbm5vdGF0aW9ucyB0byBtYXRjaCB0aGUgbWFj
T1MgMTEuMCBhbmQgaU9TIDE0LjAgR00gU0RLcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwODc0CisgICAgICAgIDxyZGFyOi8vNzM0NzQzNjg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGVudFdvcmxkLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Vycm9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRSZXN1bHQu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnNQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1BERkNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRnJhbWVUcmVlTm9kZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLSW5wdXREZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yRGVidWdnYWJsZUluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Jlc291cmNlTG9hZEluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25F
eGNsdXNpb25SdWxlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFu
aXB1bGF0aW9uSXRlbS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1h
bmlwdWxhdGlvblRva2VuLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2Vy
Q29udGVudFdvcmxkLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5
bGVTaGVldC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25Bc3NlcnRpb25SZXNwb25zZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oOgorCiAyMDIxLTAxLTIxICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgUGlQIHZpZGVvIHN1YnRpdGxlcyBz
dG9wIHVwZGF0aW5nIHdoZW4gU2FmYXJpIGlzIGJhY2tncm91bmRlZApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ29udGV4dFByaXZhdGUuaAppbmRleCBlZTQwMjA3OTBkMTFjMWZjMzU5
YmViZGUwMTNlNzFmZWE5ZGY3YzA2Li44MzhhOWRlNTJhMjAxMDExZjBmY2M1ZDhkMDAzZjdjZWFh
YmVmM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFByaXZhdGUu
aApAQCAtMTEwLDcgKzExMCw3IEBACiAgQG1ldGhvZAogIEBhYnN0cmFjdCBNYXJrIHRoaXMgSlND
b250ZXh0IGFzIGFuIElUTUxLaXQgY29udGV4dCBmb3IgdGhlIHB1cnBvc2VzIG9mIHJlbW90ZSBp
bnNwZWN0aW9uIGNhcGFiaWxpdGllcy4KICAqLwotLSAodm9pZClfc2V0SVRNTERlYnVnZ2FibGVU
eXBlIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJB
KSk7CistICh2b2lkKV9zZXRJVE1MRGVidWdnYWJsZVR5cGUgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWZQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZlByaXZhdGUuaAppbmRleCA2YWU2NDllZjNlMzk4NGQwOGVhYWM1
OGRiN2RhOWVlYTIxNjIxMDBmLi42ZDQ5MjdlMWQ0ODc0NWRkZDk0MTE3Mjk3MDIxYjQzZGE4NzJm
NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZlBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZlByaXZh
dGUuaApAQCAtMTM2LDcgKzEzNiw3IEBAIEpTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNl
dEluY2x1ZGVzTmF0aXZlQ2FsbFN0YWNrV2hlblJlcG9ydGluZ0V4Y2VwdGlvbnMoCiBAcGFyYW0g
ZnVuY3Rpb24gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHNldCwgd2hpY2ggcmVjZWl2ZXMgdGhl
IHByb21pc2UgYW5kIHJlamVjdGlvbiByZWFzb24gYXMgYXJndW1lbnRzLgogQHBhcmFtIGV4Y2Vw
dGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2Vw
dGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4
Y2VwdGlvbi4KICovCi1KU19FWFBPUlQgdm9pZCBKU0dsb2JhbENvbnRleHRTZXRVbmhhbmRsZWRS
ZWplY3Rpb25DYWxsYmFjayhKU0dsb2JhbENvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBmdW5j
dGlvbiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0Nf
TUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOworSlNfRVhQT1JUIHZvaWQgSlNHbG9iYWxDb250
ZXh0U2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2soSlNHbG9iYWxDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFdv
cmxkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50V29ybGQu
aAppbmRleCBkODAwNTY1NGRkNWViOWMzYjI1YTBlY2I0MDViYTM3NGVhMTg5ZTQwLi43ODI2YWMw
NTA1NjdkMjA0OGJjYTMyOWViNmE4OGQwZGNhMDU2NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50V29ybGQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50V29ybGQuaApAQCAtNDAsNyArNDAsNyBA
QCBGb3IgZXhhbXBsZToKIC0gSWYgeW91IHN0b3JlIGEgdmFyaWFibGUgaW4gSmF2YVNjcmlwdCBp
biB0aGUgc2NvcGUgb2YgYSBwYXJ0aWN1bGFyIFdLQ29udGVudFdvcmxkIHdoaWxlIHZpZXdpbmcg
YSBwYXJ0aWN1bGFyIHdlYiBwYWdlIGRvY3VtZW50LCBhZnRlciBuYXZpZ2F0aW5nIHRvIGEgbmV3
IGRvY3VtZW50IHRoYXQgdmFyaWFibGUgd2lsbCBiZSBnb25lLgogLSBJZiB5b3Ugc3RvcmUgYSB2
YXJpYWJsZSBpbiBKYXZhU2NyaXB0IGluIHRoZSBzY29wZSBvZiBhIHBhcnRpY3VsYXIgV0tDb250
ZW50V29ybGQgaW4gb25lIFdLV2ViVmlldywgdGhhdCB2YXJpYWJsZSB3aWxsIG5vdCBleGlzdCBp
biB0aGUgc2FtZSB3b3JsZCBpbiBhbm90aGVyIFdLV2ViVmlldy4KICovCi1XS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKQogQGludGVyZmFjZSBXS0NvbnRlbnRXb3JsZCA6
IE5TT2JqZWN0CiAKICsgKGluc3RhbmNldHlwZSluZXcgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAppbmRleCBhMGE4YTdkYmVjOGVk
YTA5MjhiYmZjNTZkNjU1ODdiZmMzZTdkNTViLi4zZmMwNmUzNTEyNDAwMzUzYmRkMDZlOWIzN2E3
MmY2NjNiMzkzN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yLmgKQEAgLTYwLDkgKzYwLDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tFcnJv
ckNvZGUpIHsKICAgICBXS0Vycm9yQ29udGVudFJ1bGVMaXN0U3RvcmVWZXJzaW9uTWlzbWF0Y2gg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSksCiAgICAgV0tFcnJvckF0
dHJpYnV0ZWRTdHJpbmdDb250ZW50RmFpbGVkVG9Mb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUpLCBpb3MoMTMuMCkpLAogICAgIFdLRXJyb3JBdHRyaWJ1dGVkU3RyaW5nQ29udGVudExv
YWRUaW1lZE91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKSwKLSAg
ICBXS0Vycm9ySmF2YVNjcmlwdEludmFsaWRGcmFtZVRhcmdldCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAotICAgIFdLRXJyb3JOYXZpZ2F0aW9u
QXBwQm91bmREb21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKSwKLSAgICBXS0Vycm9ySmF2YVNjcmlwdEFwcEJvdW5kRG9tYWluIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSksCisgICAgV0tFcnJv
ckphdmFTY3JpcHRJbnZhbGlkRnJhbWVUYXJnZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4w
KSwgaW9zKDE0LjApKSwKKyAgICBXS0Vycm9yTmF2aWdhdGlvbkFwcEJvdW5kRG9tYWluIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSksCisgICAgV0tFcnJvckphdmFTY3Jp
cHRBcHBCb3VuZERvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
LAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiBOU19BU1NV
TUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0ZpbmRDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tGaW5kQ29uZmlndXJhdGlvbi5oCmluZGV4IGU5YmQyZjcyODI0OTE5ODRmMmQzNzk0
NjliNDUxZGRmYzcyM2ViNmQuLmRhZTVhMmM3OThlZTA0MDc0ZTA0NWY3MDJiNGE1MzhjMzBiZjQx
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
RmluZENvbmZpZ3VyYXRpb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiBOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKQogQGlu
dGVyZmFjZSBXS0ZpbmRDb25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogLyog
QGFic3RyYWN0IFRoZSBkaXJlY3Rpb24gdG8gc2VhcmNoIGZyb20gdGhlIGN1cnJlbnQgc2VsZWN0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGaW5k
UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGaW5kUmVzdWx0
LmgKaW5kZXggYjFkOWYzNzNhYjg4YmJlOTAxNjk0OWE4NTMwYjJhODJkNzZhOGNkNS4uODczNjM1
ZGZlNjNlMDQzOTgxNjdkZWI2NTIwYjgwOGY3YzY4NjcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRmluZFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRSZXN1bHQuaApAQCAtMjcsNyArMjcsNyBAQAog
CiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMS4w
KSwgaW9zKDE0LjApKQogQGludGVyZmFjZSBXS0ZpbmRSZXN1bHQgOiBOU09iamVjdCA8TlNDb3B5
aW5nPgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUuaApp
bmRleCBlYjhjMmRmYWJiMTFmMGExNTJmZGVmMWVjNDNkZTgxYWY1NjU3NzdhLi5hNGRmZWZmNTEy
ODY4ODI3MzM3N2NjYzc5YTUzZjJjZjc1NTkxYzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oCkBAIC0zMCw2ICsz
MCw2IEBACiBAaW50ZXJmYWNlIFdLRnJhbWVJbmZvIChXS1ByaXZhdGUpCiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgY29weSwgbm9ubnVsbCkgX1dLRnJhbWVIYW5kbGUgKl9oYW5k
bGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHksIG51bGxhYmxlKSBfV0tGcmFtZUhhbmRsZSAqX3Bh
cmVudEZyYW1lSGFuZGxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHksIG51bGxh
YmxlKSBfV0tGcmFtZUhhbmRsZSAqX3BhcmVudEZyYW1lSGFuZGxlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZVByaXZhdGUuaApp
bmRleCBkMWM4Mjc4Y2MyYmQ5ZmM3NTVlMzliMDhmZGE1Y2FkYWExOTkwMjU5Li43ZTE5NDNlZjI4
ZTdiMzI0Y2E1OGQxZTExYmVlZTQ3Y2EwZWFmZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5o
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmUuaD4K
IAogQGludGVyZmFjZSBXS0hUVFBDb29raWVTdG9yZSAoV0tQcml2YXRlKQotLSAodm9pZClfZ2V0
Q29va2llc0ZvclVSTDooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
QXJyYXk8TlNIVFRQQ29va2llICo+ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9nZXRDb29r
aWVzRm9yVVJMOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJh
eTxOU0hUVFBDb29raWUgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGljeToo
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2ZsdXNoQ29va2llc1RvRGlza1dpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
RGVsZWdhdGUuaAppbmRleCA5OTFmZmY2MWMxNzBlMzY2YTI5YWUyZWU3N2FlMjMxNWI1ZTk3YmVh
Li5mODdhNWVmNGI5ZWNhMjI1MDQ5M2JjNTgyZDcxNGJkMzI2ZWUyZmFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdh
dGUuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2
aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAgQHBhcmFtIGNoYWxsZW5nZSBUaGUgYXV0aGVudGlj
YXRpb24gY2hhbGxlbmdlLgogIEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhh
bmRsZXIgeW91IG11c3QgaW52b2tlIHRvIHJlc3BvbmQgdG8gaW5kaWNhdGUgd2hldGhlciBvciBu
b3QgdG8gY29udGludWUgd2l0aCB0aGUgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LgogICovCi0t
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2Ugc2hvdWxkQWxsb3dE
ZXByZWNhdGVkVExTOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBzaG91bGRBbGxvd0RlcHJlY2F0ZWRUTFM6
KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEx
LjApLCBpb3MoMTQuMCkpOwogCiAvKgogIEBhYnN0cmFjdCBDYWxsZWQgYWZ0ZXIgdXNpbmcgV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRl
LmgKaW5kZXggZjZjNDdhNWE1OTNlOWFhNDU2MTA5MjkxZGE3YTY1NDFjNDg5YzU0ZS4uOWZmZjJj
YmM0N2VkY2UwNTMzODQ5YmNjMDFmYjE5YTU5YzFjNDc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGUuaApAQCAtODUsOCArODUsOCBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogCiAt
IChOU0RhdGEgKilfd2ViQ3J5cHRvTWFzdGVyS2V5Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldzsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhdXRoZW50aWNh
dGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBz
aG91bGRBbGxvd0xlZ2FjeVRMUzoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTmVnb3RpYXRlTW9kZXJuVExTOihO
U1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIHNob3VsZEFsbG93TGVnYWN5VExTOih2b2lkIChe
KShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROZWdv
dGlhdGVNb2Rlcm5UTFM6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2Ug
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudURpZENyZWF0ZURvd25sb2FkOihX
S0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIApAQCAtMTA3LDExICsxMDcsMTEgQEAgc3RhdGljIGNvbnN0IFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29t
ZURvd25sb2EKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGVudFJ1
bGVMaXN0V2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBwZXJmb3JtZWRBY3Rp
b246KF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbiAqKWFjdGlvbiBmb3JVUkw6KE5TVVJMICopdXJs
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3ZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZVdp
dGhSZWFzb246KF9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbilyZWFzb24gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbExvYWRXaXRoUmVxdWVzdDooTlNVUkxS
ZXF1ZXN0ICopcmVxdWVzdCBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoUmVxdWVz
dDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIHdp
dGhFcnJvcjooTlNFcnJvciAqKWVycm9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGRpZENvbW1pdExvYWRXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBpbkZy
YW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGRpZEZhaWxMb2FkV2l0aFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgaW5GcmFt
ZTooV0tGcmFtZUluZm8gKilmcmFtZSB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hMb2FkV2l0aFJlcXVlc3Q6KE5T
VVJMUmVxdWVzdCAqKXJlcXVlc3QgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZFdpdGhS
ZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJh
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhSZXF1
ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUg
d2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwg
aW9zKDE0LjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ29t
bWl0TG9hZFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGluRnJhbWU6KFdLRnJh
bWVJbmZvICopZnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbExvYWRXaXRoUmVx
dWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1l
IHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZp
bmlzaExvYWRXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBpbkZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7
CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZFN0YXJ0TG9hZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVXaXRoRmls
ZU5hbWU6KE5TU3RyaW5nICopZmlsZU5hbWUgdXRpOihOU1N0cmluZyAqKXV0aTsKQEAgLTEyNiw3
ICsxMjYsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2
aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRkZWQ6KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdLQmFja0ZvcndhcmRMaXN0SXRl
bSAqPiAqKWl0ZW1zUmVtb3ZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKICNl
bmRpZgogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBpblBhZ2VDYWNo
ZTooQk9PTClpblBhZ2VDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxs
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gaW5Q
YWdlQ2FjaGU6KEJPT0wpaW5QYWdlQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSwgaW9zKDE0LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yU09BdXRob3JpemF0aW9uTG9hZFdpdGhDdXJyZW50UG9saWN5OihfV0tTT0F1
dGhvcml6YXRpb25Mb2FkUG9saWN5KXBvbGljeSBmb3JFeHRlbnNpb246KE5TU3RyaW5nICopZXh0
ZW5zaW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tTT0F1dGhvcml6YXRpb25Mb2Fk
UG9saWN5IHBvbGljeSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNSksIGlvcygxMy4wKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnNQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0ZS5o
CmluZGV4IDdjZDQ0MWMyY2UyZTU4MDZjZjM0ZDhjMDEyOWIxMWU5MTUwMTRhZDAuLmUzNzMyYTIw
ZGVmYzA0NGI2ZTc2Yzg4ZDRhMTI2NmVhYTlkNDM2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnNQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVy
c1ByaXZhdGUuaApAQCAtMzEsNyArMzEsNyBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9hY2NlcHRlZE1JTUVUeXBlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqX2FjY2VwdGVkRmlsZUV4dGVuc2lvbnMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9hbGxvd2VkRmlsZUV4dGVuc2lv
bnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9hbGxvd2VkRmlsZUV4
dGVuc2lvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSk7CiAKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUERGQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUERGQ29uZmlndXJhdGlv
bi5oCmluZGV4IDM4MGUwNjM0ODlkYmUwYmZmOGJkODc3OWYwOTEwNjJiOWExMjAxZWIuLjJmMTE1
NjhlNWM4YjU5NWYwZDkyYTAzYTlhMDA4YjM5ZTJlNGYzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1BERkNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQREZDb25maWd1cmF0aW9uLmgKQEAgLTI5
LDcgKzI5LDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSkKIEBpbnRlcmZhY2UgV0tQREZDb25maWd1cmF0aW9u
IDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgcmVjdCB0byBjYXB0
dXJlIGluIHdlYiBwYWdlIGNvb3JkaW5hdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAppbmRleCBjZDc1NzcwMmYxZDc2OWY3MDczZThm
NmY2YTBhNWU0NGZlODIwOTVkLi5jY2RlYWNlMTNkNTcxYmViNzU0MzFiMThkZjkxZDY1MWM4ODcy
YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLmgKQEAgLTczLDYgKzczLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwbHVnSW5zRW5hYmxlZCBX
S19BUElfREVQUkVDQVRFRCgiUGx1Zy1pbnMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNv
cygxMC4xMCwgMTAuMTUpKTsKICNlbmRpZgogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBq
YXZhU2NyaXB0RW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiVXNlIFdLV2ViUGFnZVByZWZlcmVu
Y2VzLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IHRvIGRpc2FibGUgY29udGVudCBKYXZhU2NyaXB0
IG9uIGEgcGVyLW5hdmlnYXRpb24gYmFzaXMiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlv
cyg4LjAsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3Jp
cHRFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJVc2UgV0tXZWJQYWdlUHJlZmVyZW5jZXMuYWxs
b3dzQ29udGVudEphdmFTY3JpcHQgdG8gZGlzYWJsZSBjb250ZW50IEphdmFTY3JpcHQgb24gYSBw
ZXItbmF2aWdhdGlvbiBiYXNpcyIsIG1hY29zKDEwLjEwLCAxMS4wKSwgaW9zKDguMCwgMTQuMCkp
OwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDFhMmE2MWM2ZDAwZjcxYjAzMjRhZDgwYWEz
ZDI3NjExMjM3OGVhZTYuLjBlZDZmZTY2OWUxYmRkMzA0NTA5NGM1ZTk1MDBhMjZjMmZmOWYzN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC04MCw3ICs4MCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSkgewogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4w
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREaXNwbGF5TGlzdERyYXdpbmdF
bmFibGVkOikgQk9PTCBfZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDopIEJPT0wgX2xhcmdlSW1hZ2VBc3lu
Y0RlY29kaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAu
MykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TmVlZHNJbkFwcEJyb3dzZXJQ
cml2YWN5UXVpcmtzOikgQk9PTCBfbmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXROZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3M6
KSBCT09MIF9uZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDopIEJPT0wgX2FuaW1hdGVkSW1hZ2VB
c3luY0RlY29kaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3Mo
MTAuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEF1dG9zaXppbmdF
bmFibGVkOikgQk9PTCBfdGV4dEF1dG9zaXppbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
U3VicGl4ZWxBbnRpYWxpYXNlZExheWVyVGV4dEVuYWJsZWQ6KSBCT09MIF9zdWJwaXhlbEFudGlh
bGlhc2VkTGF5ZXJUZXh0RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKTsKQEAgLTE2MCwxMiArMTYwLDEyIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3M6KSBCT09MIF9uZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTMuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SXRwRGVidWdNb2RlRW5hYmxlZDopIEJPT0wg
X2l0cERlYnVnTW9kZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNvdXJjZUVuYWJs
ZWQ6KSBCT09MIF9tZWRpYVNvdXJjZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKDEzLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNlY3Vy
ZUNvbnRleHRDaGVja3NFbmFibGVkOikgQk9PTCBfc2VjdXJlQ29udGV4dENoZWNrc0VuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlbW90ZVBsYXliYWNrRW5hYmxlZDopIEJP
T0wgX3JlbW90ZVBsYXliYWNrRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
V2ViQXVkaW9FbmFibGVkOikgQk9PTCBfd2ViQXVkaW9FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ6KSBCT09MIF9hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWVzdEFu
aW1hdGlvbkZyYW1lRW5hYmxlZDopIEJPT0wgX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERp
c2FibGVkRm9yVGVzdGluZzopIEJPT0wgX3NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVk
Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VjdXJlQ29udGV4dENo
ZWNrc0VuYWJsZWQ6KSBCT09MIF9zZWN1cmVDb250ZXh0Q2hlY2tzRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0UmVtb3RlUGxheWJhY2tFbmFibGVkOikgQk9PTCBfcmVtb3RlUGxheWJhY2tFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJBdWRpb0VuYWJsZWQ6KSBCT09MIF93ZWJBdWRpb0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxNC4wKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDop
IEJPT0wgX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxNC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOikgQk9PTCBfcmVxdWVzdEFuaW1hdGlvbkZy
YW1lRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZVdvcmtlckVudGl0bGVtZW50RGlz
YWJsZWRGb3JUZXN0aW5nOikgQk9PTCBfc2VydmljZVdvcmtlckVudGl0bGVtZW50RGlzYWJsZWRG
b3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5h
YmxlZDopIEJPT0wgX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTYpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNw
ZWVjaFJlY29nbml0aW9uRW5hYmxlZDopIEJPT0wgX3NwZWVjaFJlY29nbml0aW9uRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFi
bGVkOikgQk9PTCBfcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CkBAIC0xODUsNyArMTg1LDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGht
KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRQcmludEJhY2tncm91
bmRzOikgQk9PTCBfc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdlYlNlY3VyaXR5
RW5hYmxlZDopIEJPT0wgX3dlYlNlY3VyaXR5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVuaXZlcnNhbEFj
Y2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQ6KSBCT09MIF91bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THNBbGxvd2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0VG9wTmF2aWdhdGlvblRvRGF0YVVSTHNBbGxvd2VkOikgQk9P
TCBfdG9wTmF2aWdhdGlvblRvRGF0YVVSTHNBbGxvd2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMc0FsbG93ZWQ6KSBCT09MIF90b3BOYXZpZ2F0
aW9uVG9EYXRhVVJMc0FsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJp
bmc6KSBCT09MIF9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBc3lu
Y2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQ6KSBCT09MIF9hc3luY2hyb25vdXNQ
bHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcnRpZmljaWFsUGx1Z2luSW5p
dGlhbGl6YXRpb25EZWxheUVuYWJsZWQ6KSBCT09MIF9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6
YXRpb25EZWxheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oCmluZGV4IGQ0MDM3MTM2ZTA2YjI2MTc0ODVjODJhY2RiN2Q3MWQzMWQ5NzUxZDIu
LmVjOTFhMGM5ZjU4ZTlhZGYyYmJkMWZlMDhhNmI0Yjg2NjZjNTlkMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oCkBAIC00OSw3ICs0OSw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiAqX2NvbmZpZ3VyYXRpb247CiAKIC0gKHZvaWQpX3Nl
dEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hh
aW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLV2Vic2l0ZURhdGFTdG9yZS5fYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOmZvckhv
c3Q6IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7Ci0t
ICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjooQk9PTCl2YWx1
ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCIsIG1hY29zKDEw
LjExLCBXS19NQUNfVEJBKSwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0Q2Fu
SGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb246KEJPT0wpdmFsdWUgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
ZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQiLCBtYWNvcygxMC4xMSwgMTEuMCksIGlv
cyg5LjAsIDE0LjApKTsKIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGljeTooTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5KXBvbGljeSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJXS0hUVFBDb29raWVTdG9yZS5fc2V0Q29va2llQWNjZXB0UG9saWN5OmNvbXBsZXRpb25IYW5k
bGVyOiIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwog
CiAtIChpZClfb2JqZWN0Rm9yQnVuZGxlUGFyYW1ldGVyOihOU1N0cmluZyAqKXBhcmFtZXRlcjsK
QEAgLTc2LDcgKzc2LDcgQEAKIC0gKHZvaWQpX2F1dG9tYXRpb25DYXBhYmlsaXRpZXNEaWRDaGFu
Z2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAtICh2b2lkKV9z
ZXRBdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vz
c2lvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SmF2YVNjcmlwdENvbmZpZ3VyYXRpb25E
aXJlY3Rvcnk6KSBOU1VSTCAqX2phdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRp
cmVjdG9yeTopIE5TVVJMICpfamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLSAodm9pZClfYWRkU3VwcG9y
dGVkUGx1Z2luOihOU1N0cmluZyAqKSBkb21haW4gbmFtZWQ6KE5TU3RyaW5nICopIG5hbWUgd2l0
aE1pbWVUeXBlczogKE5TU2V0PE5TU3RyaW5nICo+ICopIG1pbWVUeXBlcyB3aXRoRXh0ZW5zaW9u
czogKE5TU2V0PE5TU3RyaW5nICo+ICopIGV4dGVuc2lvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CkBAIC0xMDcsOCArMTA3LDgg
QEAKIC0gKE5TVUludGVnZXIpX21heGltdW1TdXNwZW5kZWRQYWdlQ291bnQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKE5TVUludGVnZXIpX3Byb2Nlc3ND
YWNoZUNhcGFjaXR5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiAtIChOU1VJbnRlZ2VyKV9wcm9jZXNzQ2FjaGVTaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUpLCBpb3MoMTMuMCkpOwotLSAodm9pZClfY2xlYXJXZWJQcm9jZXNzQ2FjaGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQp
X3NldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3M6KEJPT0wpZm9yY2VTZXJ2aWNlV29y
a2VyUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAodm9pZClfY2xlYXJXZWJQcm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpX3NldFVzZVNlcGFyYXRlU2VydmljZVdv
cmtlclByb2Nlc3M6KEJPT0wpZm9yY2VTZXJ2aWNlV29ya2VyUHJvY2VzcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogLSAocGlkX3QpX2dwdVByb2Nlc3NJZGVudGlm
aWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKIC8vIFRlc3Qgb25seS4gUmV0dXJucyB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcgd2ViIHBhZ2Vz
IChkb2VzIG5vdCBpbmNsdWRlIHdlYiBwcm9jZXNzZXMgcnVubmluZyBzZXJ2aWNlIHdvcmtlcnMp
CkBAIC0xMTgsNyArMTE4LDcgQEAKICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdv
cmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiArICh2b2lkKV9z
ZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi0tICh2b2lkKV9wcmVjb25uZWN0
VG9TZXJ2ZXI6KE5TVVJMICopc2VydmVyVVJMIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLV2ViVmlldy5fcHJlY29ubmVjdFRvU2VydmVyIiwgbWFjb3MoMTAuMTMuNCwgV0tf
TUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV9wcmVjb25uZWN0VG9T
ZXJ2ZXI6KE5TVVJMICopc2VydmVyVVJMIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIldLV2ViVmlldy5fcHJlY29ubmVjdFRvU2VydmVyIiwgbWFjb3MoMTAuMTMuNCwgMTEuMCks
IGlvcygxMS4zLCAxNC4wKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHZvaWQpX2dldEFjdGl2ZVBh
Z2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3Rpbmc6KHBpZF90KXBpZCBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CkBAIC0xMjcsMTAgKzEy
NywxMCBAQAogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNDb29raWVTdG9yYWdlUGFy
dGl0aW9uaW5nRW5hYmxlZCwgc2V0dGVyPV9zZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5h
YmxlZDopIEJPT0wgX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkIFdLX0FQSV9ERVBS
RUNBVEVEKCJQYXJ0aXRpb25lZCBjb29raWVzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwgbWFj
b3MoMTAuMTIuMywgMTAuMTQuNCksIGlvcygxMC4zLCAxMi4yKSk7CiAKIC8vIFRlc3Qgb25seS4K
LS0gKHZvaWQpX3NlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRm9yVGVzdGluZ1dpdGhGaXJzdFBh
cnR5OihOU1VSTCAqKWZpcnN0UGFydHlVUkwgdGhpcmRQYXJ0eTooTlNVUkwgKil0aGlyZFBhcnR5
VVJMIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uOihCT09MKXNob3VsZFNjaGVkdWxlTm90aWZp
Y2F0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVy
ICBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAodm9pZClfZ2FyYmFnZUNvbGxlY3RKYXZhU2NyaXB0T2JqZWN0c0ZvclRlc3RpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHNpemVf
dClfbnVtYmVyT2ZDb25uZWN0ZWRHYW1lcGFkc0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHNpemVfdClfbnVtYmVyT2ZD
b25uZWN0ZWRISURHYW1lcGFkc0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHNpemVfdClfbnVtYmVyT2ZDb25uZWN0ZWRH
YW1lQ29udHJvbGxlckZyYW1ld29ya0dhbWVwYWRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0VXNlc09u
bHlISURHYW1lcGFkUHJvdmlkZXJGb3JUZXN0aW5nOihCT09MKXVzZXNISURQcm92aWRlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfc2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0aW5nV2l0aEZpcnN0UGFydHk6KE5T
VVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihOU1VSTCAqKXRoaXJkUGFydHlVUkwgc2hv
dWxkU2NoZWR1bGVOb3RpZmljYXRpb246KEJPT0wpc2hvdWxkU2NoZWR1bGVOb3RpZmljYXRpb24g
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CistICh2b2lkKV9nYXJiYWdlQ29s
bGVjdEphdmFTY3JpcHRPYmplY3RzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEx
LjApLCBpb3MoMTQuMCkpOworLSAoc2l6ZV90KV9udW1iZXJPZkNvbm5lY3RlZEdhbWVwYWRzRm9y
VGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAoc2l6
ZV90KV9udW1iZXJPZkNvbm5lY3RlZEhJREdhbWVwYWRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoc2l6ZV90KV9udW1iZXJPZkNv
bm5lY3RlZEdhbWVDb250cm9sbGVyRnJhbWV3b3JrR2FtZXBhZHNGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CistICh2b2lkKV9zZXRVc2VzT25seUhJ
REdhbWVwYWRQcm92aWRlckZvclRlc3Rpbmc6KEJPT0wpdXNlc0hJRFByb3ZpZGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgKaW5kZXggNjNhMWU5
ZWEzODczNDc5OTE5MmEyYWNkZjAyNjg0M2E0ZDA5NDRmNy4uNzU5NDdkMTdjZjVjMGQyNTAzMmI3
ZGFhYjg4NmY0ZGQ1NWIzNzhlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaApAQCAtNTYsNyArNTYsNyBAQCBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CiAKIC8qISBAYWJzdHJhY3QgVGhlIGNvbnRl
bnQgd29ybGQgZnJvbSB3aGljaCB0aGUgbWVzc2FnZSB3YXMgc2VudC4gKi8KLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgV0tDb250ZW50V29ybGQgKndvcmxkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFdLQ29udGVudFdvcmxkICp3b3JsZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDExLjApLCBpb3MoMTQuMCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlSGFuZGxl
cldpdGhSZXBseS5oCmluZGV4IDk5ZmMwMTRkOGZiY2ViMjc4NTA5MjlhYTNjZWZkNjZiNzIyYTlh
NDYuLmI4NDdhZjMxZGJlZGJhMzA2Yzg3OTYxNmFlZmMxNzZiMGRlMjBmNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2VIYW5kbGVy
V2l0aFJlcGx5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Ny
aXB0TWVzc2FnZUhhbmRsZXJXaXRoUmVwbHkuaApAQCAtODcsNyArODcsNyBAQCBtZXRob2QgZm9y
IHJlY2VpdmluZyBtZXNzYWdlcyBmcm9tIEphdmFTY3JpcHQgcnVubmluZyBpbiBhIHdlYnBhZ2Ug
YW5kIHJlcGx5aW5nCiAgICAtIFRoZSBKYXZhU2NyaXB0IHByb21pc2UgaXMgZnVsZmlsbGVkIHdp
dGggdGhlIHZhbHVlIDQyLgogICAgLSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBjb250aW51ZXMgYW5k
IHRoZSB2YWx1ZSA0MiBpcyByZXR1cm5lZC4KICAqLwotLSAodm9pZCl1c2VyQ29udGVudENvbnRy
b2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRp
ZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlIHJlcGx5SGFu
ZGxlcjoodm9pZCAoXikoaWQgX051bGxhYmxlIHJlcGx5LCBOU1N0cmluZyAqX051bGxhYmxlIGVy
cm9yTWVzc2FnZSkpcmVwbHlIYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tV
c2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNj
cmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UgcmVwbHlIYW5kbGVyOih2b2lk
ICheKShpZCBfTnVsbGFibGUgcmVwbHksIE5TU3RyaW5nICpfTnVsbGFibGUgZXJyb3JNZXNzYWdl
KSlyZXBseUhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsK
IEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBjZTE5MDU2
N2ViNzc0ZTgwNWQ2MjE4YTA3ODcyYmIzYThkNzYyMzBmLi40OTc2MzI1YzQ3OTJhOTQzOTU0YTRh
YTM4ZjA2YjJlZDFkNDc5MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTczLDE0ICs3MywxNCBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tBdXRvcGxheUV2ZW50KSB7CiAgICAgX1dLQXV0
b3BsYXlFdmVudERpZFBsYXlNZWRpYVdpdGhVc2VyR2VzdHVyZSwKICAgICBfV0tBdXRvcGxheUV2
ZW50RGlkQXV0b3BsYXlNZWRpYVBhc3RUaHJlc2hvbGRXaXRob3V0VXNlckludGVyZmVyZW5jZSwK
ICAgICBfV0tBdXRvcGxheUV2ZW50VXNlckRpZEludGVyZmVyZVdpdGhQbGF5YmFjaywKLX0gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDE0LjApKTsKIAogdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIF9XS0F1dG9wbGF5RXZlbnRGbGFncykgewogICAgIF9XS0F1dG9wbGF5
RXZlbnRGbGFnc05vbmUgPSAwLAogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc0hhc0F1ZGlvID0g
MSA8PCAwLAogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc1BsYXliYWNrV2FzUHJldmVudGVkID0g
MSA8PCAxLAogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc01lZGlhSXNNYWluQ29udGVudCA9IDEg
PDwgMiwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEp
KTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDE0LjApKTsKIAogdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRm9jdXNEaXJlY3Rpb24pIHsKICAgICBfV0tGb2N1
c0RpcmVjdGlvbkJhY2t3YXJkLApAQCAtMTA3LDcgKzEwNyw3IEBAIHN0cnVjdCBVSUVkZ2VJbnNl
dHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopc2Vj
dXJpdHlPcmlnaW4gY3VycmVudFF1b3RhOih1bnNpZ25lZCBsb25nIGxvbmcpY3VycmVudFF1b3Rh
IHRvdGFsQnl0ZXNOZWVkZWQ6KHVuc2lnbmVkIGxvbmcgbG9uZyl0b3RhbEJ5dGVzTmVlZGVkIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhKSlkZWNp
c2lvbkhhbmRsZXI7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJp
bnRGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZSBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFt
ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLSAodm9pZClfd2ViVmll
d0Nsb3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0Z1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsKQEAgLTExOCw3ICsxMTgsNyBA
QCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlld0RpZFNob3dTYWZlQnJvd3Np
bmdXYXJuaW5nOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7CiAtICh2b2lkKV93ZWJWaWV3RGlkTG9zZVBvaW50ZXJMb2NrOihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBoYXNWaWRlb0luUGljdHVyZUluUGlj
dHVyZURpZENoYW5nZTooQk9PTCloYXNWaWRlb0luUGljdHVyZUluUGljdHVyZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgc2hvdWxkQWxsb3dQREZBdFVSTDooTlNVUkwgKilmaWxlVVJMIHRvT3Bl
bkZyb21GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgc2hvdWxkQWxsb3dQREZBdFVSTDooTlNVUkwgKilmaWxlVVJMIHRvT3BlbkZyb21GcmFt
ZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVkaWFE
b2N1bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4
dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMiksIGlvcygxMC4wKSk7CkBAIC0xNDYsMTEgKzE0NiwxMSBAQCBzdHJ1Y3QgVUlFZGdlSW5z
ZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHRha2VGb2N1czoo
X1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMi4yKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBh
bmVsIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBpbml0aWF0ZWRC
eUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGhhbmRsZUF1dG9wbGF5RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQp
ZXZlbnQgd2l0aEZsYWdzOihfV0tBdXRvcGxheUV2ZW50RmxhZ3MpZmxhZ3MgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVu
dClldmVudCB3aXRoRmxhZ3M6KF9XS0F1dG9wbGF5RXZlbnRGbGFncylmbGFncyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTQuMCkpOwogCi0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTaGFyZUFjdGl2aXR5SXRlbXM6KE5TQXJyYXkgKilhY3Rp
dml0eUl0ZW1zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFNoYXJlQWN0aXZpdHlJdGVtczooTlNBcnJh
eSAqKWFjdGl2aXR5SXRlbXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2lu
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lVGFza1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2tQcml2YXRlLmgKaW5kZXggZDYyMzBkMjQ2ZjVkZDMyZDU0ZDNmNWY4MTRiNTEx
YzIwZDk5NjU3ZS4uZDU5YzJiMjIxNmY3NzBjNzc1MzQ2YWQ4Y2NiZWM5MTUwOWZiYzY3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFz
a1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxT
Y2hlbWVUYXNrUHJpdmF0ZS5oCkBAIC0zMyw2ICszMyw2IEBAIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpCiAtICh2b2lkKV9kaWRQZXJmb3JtUmVkaXJlY3Rpb246KE5T
VVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0
OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3JlcXVlc3RPbmx5SWZD
YWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLRnJhbWVJbmZvICpfZnJhbWUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgV0tGcmFtZUluZm8gKl9mcmFtZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDExLjApLCBpb3MoMTQuMCkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCmluZGV4
IGY0M2YyZTYyZjJjZjJmY2IwMDMzYzFiNGYwNTQ0NjQ2MmY5ZDM0ODUuLjMyZDM4NDc4YWJlMDY1
ZTcyMGVmZDFhMjM2OGQ5YTViZDlmOTNkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCkBAIC03
NCw3ICs3NCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQog
IFRoZSBhYm92ZSByZXN0cmljdGlvbiBhcHBsaWVzIHRvIGFueSB0eXBlIG9mIHNjcmlwdCBtZXNz
YWdlIGhhbmRsZXIgLSBXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyIGFuZCBXS1NjcmlwdE1lc3NhZ2VI
YW5kbGVyV2l0aFJlcGx5CiAgb2JqZWN0cyB3aWxsIGNvbmZsaWN0IHdpdGggZWFjaCBvdGhlciBp
ZiB5b3UgdHJ5IHRvIGFkZCB0aGVtIHRvIHRoZSBzYW1lIFdLQ29udGVudFdvcmxkIHdpdGggdGhl
IHNhbWUgbmFtZS4KICAqLwotLSAodm9pZClhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdL
U2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3NhZ2VIYW5kbGVyIGNvbnRlbnRXb3JsZDoo
V0tDb250ZW50V29ybGQgKil3b3JsZCBuYW1lOihOU1N0cmluZyAqKW5hbWUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpYWRkU2Ny
aXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPilzY3JpcHRNZXNz
YWdlSGFuZGxlciBjb250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopd29ybGQgbmFtZTooTlNT
dHJpbmcgKiluYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAK
IC8qISBAYWJzdHJhY3QgQWRkcyBhIHNjcmlwdCBtZXNzYWdlIGhhbmRsZXIuCiAgQHBhcmFtIHNj
cmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5IFRoZSBzY3JpcHQgbWVzc2FnZSBoYW5kbGVyIHRv
IGFkZC4KQEAgLTk1LDcgKzk1LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwg
aW9zKDguMCkpCiAKICBSZWZlciB0byB0aGUgV0tTY3JpcHRNZXNzYWdlSGFuZGxlcldpdGhSZXBs
eSBkb2N1bWVudGF0aW9uIGZvciBleGFtcGxlcyBvZiBob3cgaXQgaXMgbW9yZSBmbGV4aWJsZSB0
aGFuIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIuCiAgKi8KLS0gKHZvaWQpYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXJXaXRoUmVwbHk6KGlkIDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5Pilz
Y3JpcHRNZXNzYWdlSGFuZGxlcldpdGhSZXBseSBjb250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxk
ICopY29udGVudFdvcmxkIG5hbWU6KE5TU3RyaW5nICopbmFtZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcldpdGhSZXBseTooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXJXaXRoUmVwbHk+
KXNjcmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5IGNvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQgbmFtZTooTlNTdHJpbmcgKiluYW1lIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQWRkcyBhIHNjcmlwdCBt
ZXNzYWdlIGhhbmRsZXIgdG8gdGhlIG1haW4gd29ybGQgdXNlZCBieSBwYWdlIGNvbnRlbnQgaXRz
ZWxmLgogIEBwYXJhbSBzY3JpcHRNZXNzYWdlSGFuZGxlciBUaGUgc2NyaXB0IG1lc3NhZ2UgaGFu
ZGxlciB0byBhZGQuCkBAIC0xMDksNyArMTA5LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEwKSwgaW9zKDguMCkpCiAgQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIG1lc3NhZ2Ug
aGFuZGxlciB0byByZW1vdmUuCiAgQHBhcmFtIGNvbnRlbnRXb3JsZCBUaGUgV0tDb250ZW50V29y
bGQgZnJvbSB3aGljaCB0byByZW1vdmUgdGhlIHNjcmlwdCBtZXNzYWdlIGhhbmRsZXIuCiAgKi8K
LS0gKHZvaWQpcmVtb3ZlU2NyaXB0TWVzc2FnZUhhbmRsZXJGb3JOYW1lOihOU1N0cmluZyAqKW5h
bWUgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClyZW1v
dmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6KE5TU3RyaW5nICopbmFtZSBjb250ZW50V29y
bGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTEuMCksIGlvcygxNC4wKSk7CiAKIC8qISBAYWJzdHJhY3QgUmVtb3ZlcyBhIHNjcmlwdCBtZXNz
YWdlIGhhbmRsZXIuCiAgQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIG1lc3NhZ2UgaGFuZGxl
ciB0byByZW1vdmUuCkBAIC0xMjEsMTEgKzEyMSwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKIC8qISBAYWJzdHJhY3QgUmVtb3ZlcyBhbGwgc2NyaXB0IG1l
c3NhZ2UgaGFuZGxlcnMgZnJvbSBhIGdpdmVuIFdLQ29udGVudFdvcmxkLgogIEBwYXJhbSBjb250
ZW50V29ybGQgVGhlIFdLQ29udGVudFdvcmxkIGZyb20gd2hpY2ggdG8gcmVtb3ZlIGFsbCBzY3Jp
cHQgbWVzc2FnZSBoYW5kbGVycy4KICAqLwotLSAodm9pZClyZW1vdmVBbGxTY3JpcHRNZXNzYWdl
SGFuZGxlcnNGcm9tQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClyZW1vdmVBbGxTY3JpcHRNZXNzYWdlSGFuZGxlcnNGcm9tQ29udGVudFdvcmxkOihXS0Nv
bnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOwogCiAvKiEgQGFic3RyYWN0IFJlbW92ZXMgYWxsIGFzc29jaWF0ZWQgc2NyaXB0
IG1lc3NhZ2UgaGFuZGxlcnMuCiAgKi8KLS0gKHZvaWQpcmVtb3ZlQWxsU2NyaXB0TWVzc2FnZUhh
bmRsZXJzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKXJlbW92ZUFsbFNjcmlwdE1lc3NhZ2VIYW5kbGVycyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAvKiEgQGFic3RyYWN0IEFkZHMgYSBjb250
ZW50IHJ1bGUgbGlzdC4KICBAcGFyYW0gY29udGVudFJ1bGVMaXN0IFRoZSBjb250ZW50IHJ1bGUg
bGlzdCB0byBhZGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggZTE1
OGE2YjY2NzI4ZmQ4YjQ1YmY1NWU4ZWYzNjFhYWM2Mzk4Mjg3Yy4uNDM2YjVlZTM4OTcxZmUyOGQ4
ZmEyZjlhYmQ4OTU2ODYyZjM2MzFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZh
dGUuaApAQCAtMzQsNyArMzQsNyBAQAogQGludGVyZmFjZSBXS1VzZXJDb250ZW50Q29udHJvbGxl
ciAoV0tQcml2YXRlKQogCiAtICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0OihXS1VzZXJTY3JpcHQg
Kil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwot
LSAodm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDoo
V0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRz
QXNzb2NpYXRlZFdpdGhDb250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIC0gKHZvaWQpX2Fk
ZFVzZXJTY3JpcHRJbW1lZGlhdGVseTooV0tVc2VyU2NyaXB0ICopdXNlclNjcmlwdCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIApAQCAtNDYsOSArNDYsOSBAQAog
LSAodm9pZClfYWRkVXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxl
U2hlZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAtICh2b2lk
KV9yZW1vdmVVc2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVl
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKHZvaWQpX3Jl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKTsKLS0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0c0Fzc29jaWF0ZWRXaXRo
Q29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVtb3Zl
QWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhDb250ZW50V29ybGQ6KFdLQ29udGVudFdv
cmxkICopY29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4w
KSk7CiAKLS0gKHZvaWQpX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOihpZCA8V0tTY3JpcHRNZXNz
YWdlSGFuZGxlcj4pc2NyaXB0TWVzc2FnZUhhbmRsZXIgbmFtZTooTlNTdHJpbmcgKiluYW1lIHVz
ZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9hZGRTY3JpcHRNZXNzYWdlSGFuZGxl
cjpuYW1lOmNvbnRlbnRXb3JsZDoiLCBtYWNvcygxMC4xMSwgV0tfTUFDX1RCQSksIGlvcyg5LjAs
IFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOihpZCA8V0tT
Y3JpcHRNZXNzYWdlSGFuZGxlcj4pc2NyaXB0TWVzc2FnZUhhbmRsZXIgbmFtZTooTlNTdHJpbmcg
KiluYW1lIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVu
dFdvcmxkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9hZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjpuYW1lOmNvbnRlbnRXb3JsZDoiLCBtYWNvcygxMC4xMSwgMTEuMCksIGlvcyg5
LjAsIDE0LjApKTsKIC0gKHZvaWQpX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOihpZCA8V0tTY3Jp
cHRNZXNzYWdlSGFuZGxlcj4pc2NyaXB0TWVzc2FnZUhhbmRsZXIgbmFtZTooTlNTdHJpbmcgKilu
YW1lIGNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQ7CiAtICh2b2lk
KV9yZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2Vy
Q29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKIC0g
KHZvaWQpX3JlbW92ZUFsbFNjcmlwdE1lc3NhZ2VIYW5kbGVyc0Fzc29jaWF0ZWRXaXRoVXNlckNv
bnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgKaW5kZXgg
NmIzNWNhMDJkOThhZWQ5OWJlM2I2Zjk3ZTJjYTE2YzI3ZjBmMTlkMC4uMmEwYzhiMGE0M2MxZjI2
ZmI3NDhlZWRhMzA2ZmJmZmE0YmI2MzJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaApAQCAtNjgsNyArNjgsNyBAQCBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKICBAcGFyYW0gZm9yTWFpbkZyYW1lT25s
eSBXaGV0aGVyIHRoZSBzY3JpcHQgc2hvdWxkIGJlIGluamVjdGVkIGludG8gYWxsIGZyYW1lcyBv
ciBqdXN0IHRoZSBtYWluIGZyYW1lLgogIEBwYXJhbSBjb250ZW50V29ybGQgVGhlIFdLQ29udGVu
dFdvcmxkIGluIHdoaWNoIHRvIGluamVjdCB0aGUgc2NyaXB0LgogICovCi0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNl
clNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09M
KWZvck1haW5GcmFtZU9ubHkgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVu
dFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGlu
amVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JN
YWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgaW5Db250ZW50V29ybGQ6KFdLQ29u
dGVudFdvcmxkICopY29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlv
cygxNC4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJTY3JpcHRQcml2YXRlLmgKaW5kZXggMGFkYWQzZmRmYjU3NThkODQ4
YWM1M2I3YWY5ZTg5ZmJlNjAzZWMzYS4uYWNiYTg4N2Q1NGY2MTEwMjc4NTQ4NzU2N2UzZTRlZTM1
YzUxYjMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VXNlclNjcmlwdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCkBAIC0zMiwxMCArMzIsMTAgQEAgTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KIAogQGludGVyZmFjZSBXS1VzZXJTY3JpcHQgKFdLUHJpdmF0ZSkKIAotLSAo
aW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9u
VGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFt
ZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczoo
bnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
IGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihudWxsYWJsZSBOU0FycmF5PE5TU3RyaW5nICo+
ICopZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgYXNzb2NpYXRlZFVSTDoobnVsbGFibGUgTlNV
UkwgKilhc3NvY2lhdGVkVVJMIGNvbnRlbnRXb3JsZDoobnVsbGFibGUgV0tDb250ZW50V29ybGQg
Kiljb250ZW50V29ybGQgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb246KEJPT0wpZGVmZXJS
dW5uaW5nVW50aWxOb3RpZmljYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5T
U3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUp
aW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgaW5j
bHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KG51bGxhYmxlIE5TQXJyYXk8TlNTdHJpbmcgKj4gKilp
bmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczoobnVs
bGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzIGFz
c29jaWF0ZWRVUkw6KG51bGxhYmxlIE5TVVJMICopYXNzb2NpYXRlZFVSTCBjb250ZW50V29ybGQ6
KG51bGxhYmxlIFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGRlZmVyUnVubmluZ1VudGls
Tm90aWZpY2F0aW9uOihCT09MKWRlZmVyUnVubmluZ1VudGlsTm90aWZpY2F0aW9uIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgX1dLVXNlckNvbnRlbnRXb3JsZCAqX3VzZXJDb250ZW50V29ybGQgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX2NvbnRlbnRXb3JsZCIsIG1hY29zKDEwLjEy
LCBXS19NQUNfVEJBKSwgaW9zKDEwLjAsIFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgV0tDb250ZW50V29ybGQgKl9jb250ZW50V29ybGQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgX1dLVXNlckNvbnRlbnRXb3JsZCAqX3VzZXJDb250ZW50V29ybGQg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX2NvbnRlbnRXb3JsZCIsIG1hY29z
KDEwLjEyLCAxMS4wKSwgaW9zKDEwLjAsIDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgV0tDb250ZW50V29ybGQgKl9jb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKaW5kZXggNzQ3NWJjYTI2NWI3NzI2NWY0OTJhZmM5
YWMwODNlMzBhZTkwYjc2Ni4uMGIxMWQyNDdlNTk5YWJiYzFjNmE5M2RlYjE1M2U4YjBkNzZhNTBl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaApA
QCAtMjUwLDcgKzI1MCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4
LjApKQogIGV2YWx1YXRlSmF2YVNjcmlwdDogaXMgYSBncmVhdCB3YXkgdG8gc2V0IHVwIGdsb2Jh
bCBzdGF0ZSBmb3IgZnV0dXJlIEphdmFTY3JpcHQgZXhlY3V0aW9uIGluIGEgZ2l2ZW4gd29ybGQu
IChlLmcuIEltcG9ydGluZyBsaWJyYXJpZXMvdXRpbGl0aWVzIHRoYXQgZnV0dXJlIEphdmFTY3Jp
cHQgZXhlY3V0aW9uIHdpbGwgcmVseSBvbikKICBPbmNlIHlvdXIgZ2xvYmFsIHN0YXRlIGlzIHNl
dCB1cCwgY29uc2lkZXIgdXNpbmcgY2FsbEFzeW5jSmF2YVNjcmlwdDogZm9yIG1vcmUgZmxleGli
bGUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgSmF2YVNjcmlwdCBwcm9ncmFtbWluZyBtb2RlbC4KICov
Ci0tICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5n
IGluRnJhbWU6KG51bGxhYmxlIFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdL
Q29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheIF9O
dWxsYWJsZSkoX051bGxhYmxlIGlkLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSljb21wbGV0
aW9uSGFuZGxlciBOU19SRUZJTkVEX0ZPUl9TV0lGVCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClldmFsdWF0ZUphdmFTY3JpcHQ6
KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBpbkZyYW1lOihudWxsYWJsZSBXS0ZyYW1lSW5m
byAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiBfTnVsbGFibGUpKF9OdWxsYWJsZSBpZCwgTlNFcnJv
ciAqIF9OdWxsYWJsZSBlcnJvcikpY29tcGxldGlvbkhhbmRsZXIgTlNfUkVGSU5FRF9GT1JfU1dJ
RlQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLyogQGFic3Ry
YWN0IENhbGxzIHRoZSBnaXZlbiBKYXZhU2NyaXB0IHN0cmluZyBhcyBhbiBhc3luYyBKYXZhU2Ny
aXB0IGZ1bmN0aW9uLCBwYXNzaW5nIHRoZSBnaXZlbiBuYW1lZCBhcmd1bWVudHMgdG8gdGhhdCBm
dW5jdGlvbi4KICBAcGFyYW0gZnVuY3Rpb25Cb2R5IFRoZSBKYXZhU2NyaXB0IHN0cmluZyB0byB1
c2UgYXMgdGhlIGZ1bmN0aW9uIGJvZHkuCkBAIC0zMjIsNyArMzIyLDcgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAKICBUaGUgYWJvdmUgZnVuY3Rpb24gdGV4
dCB3aWxsIGNyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIGZ1bGZ1bGwgd2l0aCB0aGUgdmFsdWUg
NDIgYWZ0ZXIgYSBvbmUgc2Vjb25kIGRlbGF5LCB3YWl0IGZvciBpdCB0byByZXNvbHZlLCB0aGVu
IHJldHVybiB0aGUgZnVsZmlsbG1lbnQgdmFsdWUgb2YgNDIuCiAqLwotLSAodm9pZCljYWxsQXN5
bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWZ1bmN0aW9uQm9keSBhcmd1bWVudHM6KG51bGxhYmxl
IE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgaW5GcmFtZToobnVsbGFi
bGUgV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKilj
b250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4gX051bGxhYmxlKShfTnVsbGFi
bGUgaWQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIE5TX1JF
RklORURfRk9SX1NXSUZUIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistICh2b2lkKWNhbGxBc3luY0phdmFTY3JpcHQ6KE5TU3RyaW5nICopZnVu
Y3Rpb25Cb2R5IGFyZ3VtZW50czoobnVsbGFibGUgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlk
PiAqKWFyZ3VtZW50cyBpbkZyYW1lOihudWxsYWJsZSBXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29u
dGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXiBfTnVsbGFibGUpKF9OdWxsYWJsZSBpZCwgTlNFcnJvciAqIF9OdWxsYWJsZSBl
cnJvcikpY29tcGxldGlvbkhhbmRsZXIgTlNfUkVGSU5FRF9GT1JfU1dJRlQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLyohIEBhYnN0cmFjdCBDbG9zZXMgYWxs
IG91dC1vZi13aW5kb3cgbWVkaWEgcHJlc2VudGF0aW9ucyBpbiBhIFdLV2ViVmlldy4KICBAZGlz
Y3Vzc2lvbiBJbmNsdWRlcyBwaWN0dXJlLWluLXBpY3R1cmUgYW5kIGZ1bGxzY3JlZW4uCkBAIC0z
NzQsNyArMzc0LDcgQEAgVGhlIGNvbXBsZXRpb25IYW5kbGVyIGlzIHBhc3NlZCB0aGUgcmVzdWx0
aW5nIFBERiBkb2N1bWVudCBkYXRhIG9yIGFuIGVycm9yLgogVGhlIGRhdGEgY2FuIGJlIHVzZWQg
dG8gY3JlYXRlIGEgUERGRG9jdW1lbnQgb2JqZWN0LgogSWYgdGhlIGRhdGEgaXMgd3JpdHRlbiB0
byBhIGZpbGUgdGhlIHJlc3VsdGluZyBmaWxlIGlzIGEgdmFsaWQgUERGIGRvY3VtZW50LgogKi8K
LS0gKHZvaWQpY3JlYXRlUERGV2l0aENvbmZpZ3VyYXRpb246KG51bGxhYmxlIFdLUERGQ29uZmln
dXJhdGlvbiAqKXBkZkNvbmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
RGF0YSAqIF9OdWxsYWJsZSBwZGZEb2N1bWVudERhdGEsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpKWNvbXBsZXRpb25IYW5kbGVyIE5TX1JFRklORURfRk9SX1NXSUZUIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKWNyZWF0ZVBE
RldpdGhDb25maWd1cmF0aW9uOihudWxsYWJsZSBXS1BERkNvbmZpZ3VyYXRpb24gKilwZGZDb25m
aWd1cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKiBfTnVsbGFibGUg
cGRmRG9jdW1lbnREYXRhLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSljb21wbGV0aW9uSGFu
ZGxlciBOU19SRUZJTkVEX0ZPUl9TV0lGVCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOwogCiAvKiBAYWJzdHJhY3QgQ3JlYXRlIFdlYktpdCB3ZWIgYXJjaGl2ZSBkYXRh
IHJlcHJlc2VudGluZyB0aGUgY3VycmVudCB3ZWIgY29udGVudCBvZiB0aGUgV0tXZWJWaWV3CiBA
cGFyYW0gY29tcGxldGlvbkhhbmRsZXIgQSBibG9jayB0byBpbnZva2Ugd2hlbiB0aGUgd2ViIGFy
Y2hpdmUgZGF0YSBpcyByZWFkeS4KQEAgLTM4Miw3ICszODIsNyBAQCBJZiB0aGUgZGF0YSBpcyB3
cml0dGVuIHRvIGEgZmlsZSB0aGUgcmVzdWx0aW5nIGZpbGUgaXMgYSB2YWxpZCBQREYgZG9jdW1l
bnQuCiBJdCBjYW4gYmUgdXNlZCB0byByZXByZXNlbnQgd2ViIGNvbnRlbnQgb24gYSBwYXN0ZWJv
YXJkLCBsb2FkZWQgaW50byBhIFdLV2ViVmlldyBkaXJlY3RseSwgYW5kIHNhdmVkIHRvIGEgZmls
ZSBmb3IgbGF0ZXIgdXNlLgogVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJB
cmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWJvYXJkIHR5cGUgYW5kIE1J
TUUgdHlwZS4KICovCi0tICh2b2lkKWNyZWF0ZVdlYkFyY2hpdmVEYXRhV2l0aENvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlciBO
U19SRUZJTkVEX0ZPUl9TV0lGVCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZCljcmVhdGVXZWJBcmNoaXZlRGF0YVdpdGhDb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRs
ZXIgTlNfUkVGSU5FRF9GT1JfU1dJRlQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0
aGVyIGhvcml6b250YWwgc3dpcGUgZ2VzdHVyZXMKICB3aWxsIHRyaWdnZXIgYmFjay1mb3J3YXJk
IGxpc3QgbmF2aWdhdGlvbnMuCkBAIC00MzQsNyArNDM0LDcgQEAgVGhlIHVuaWZvcm0gdHlwZSBp
ZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBw
YXN0ZWIKICBDaGFuZ2luZyB0aGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gd2ViIGNvbnRlbnQg
c2V0dGluZyB0aGUgQ1NTICJ6b29tIgogIHByb3BlcnR5IG9uIGFsbCBwYWdlIGNvbnRlbnQuCiAq
LwotQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGFnZVpvb20gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljKSBDR0Zsb2F0IHBhZ2Vab29tIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSk7CiAKIC8qIEBhYnN0cmFjdCBTZWFyY2hlcyB0aGUgcGFnZSBjb250ZW50cyBmb3IgdGhl
IGdpdmVuIHN0cmluZy4KICBAcGFyYW0gc3RyaW5nIFRoZSBzdHJpbmcgdG8gc2VhcmNoIGZvci4K
QEAgLTQ0NCw3ICs0NDQsNyBAQCBUaGUgdW5pZm9ybSB0eXBlIGlkZW50aWZpZXIga1VUVHlwZVdl
YkFyY2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3RlYgogICBBIG1hdGNoIGZv
dW5kIGJ5IHRoZSBzZWFyY2ggaXMgc2VsZWN0ZWQgYW5kIHRoZSBwYWdlIGlzIHNjcm9sbGVkIHRv
IHJldmVhbCB0aGUgc2VsZWN0aW9uLgogICBUaGUgY29tcGxldGlvbiBoYW5kbGVyIGlzIGNhbGxl
ZCBhZnRlciB0aGUgc2VhcmNoIGNvbXBsZXRlcy4KICovCi0tICh2b2lkKWZpbmRTdHJpbmc6KE5T
U3RyaW5nICopc3RyaW5nIHdpdGhDb25maWd1cmF0aW9uOihudWxsYWJsZSBXS0ZpbmRDb25maWd1
cmF0aW9uICopY29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tGaW5k
UmVzdWx0ICpyZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyIE5TX1JFRklORURfRk9SX1NXSUZUIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2
b2lkKWZpbmRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhDb25maWd1cmF0aW9uOihudWxs
YWJsZSBXS0ZpbmRDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoV0tGaW5kUmVzdWx0ICpyZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyIE5TX1JF
RklORURfRk9SX1NXSUZUIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7
CiAKIC8qIEBhYnN0cmFjdCBDaGVja3Mgd2hldGhlciBvciBub3QgV0tXZWJWaWV3cyBoYW5kbGUg
dGhlIGdpdmVuIFVSTCBzY2hlbWUgYnkgZGVmYXVsdC4KICBAcGFyYW0gc2NoZW1lIFRoZSBVUkwg
c2NoZW1lIHRvIGNoZWNrLgpAQCAtNDcwLDEzICs0NzAsMTMgQEAgVGhlIHVuaWZvcm0gdHlwZSBp
ZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBw
YXN0ZWIKICBTZXR0aW5nIHRoZSB2YWx1ZSB0byBuaWwgd2lsbCByZXN0b3JlIHRoZSBub3JtYWwg
dmFsdWUuCiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgbmlsLgogKi8KLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKm1lZGlhVHlwZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqbWVkaWFUeXBlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogLyogQGFi
c3RyYWN0IFJldHVybnMgYW4gTlNQcmludE9wZXJhdGlvbiBvYmplY3QgY29uZmlndXJlZCB0byBw
cmludCB0aGUgY29udGVudHMgb2YgdGhpcyBXS1dlYlZpZXcKIEBwYXJhbSBwcmludEluZm8gVGhl
IHByaW50IGluZm8gb2JqZWN0IHVzZWQgdG8gY29uZmlndXJlIHRoZSByZXN1bHRpbmcgcHJpbnQg
b3BlcmF0aW9uLgogKi8KLS0gKE5TUHJpbnRPcGVyYXRpb24gKilwcmludE9wZXJhdGlvbldpdGhQ
cmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSkpOworLSAoTlNQcmludE9wZXJhdGlvbiAqKXByaW50T3BlcmF0aW9uV2l0aFBy
aW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSk7CiAjZW5kaWYKIEBlbmQKIApAQCAtNTE1LDcgKzUxNSw3IEBAIFRoZSB1bmlmb3JtIHR5
cGUgaWRlbnRpZmllciBrVVRUeXBlV2ViQXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0
ZWQgcGFzdGViCiAKIEBlbmQKIAotV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSkK
K1dLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCkpCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tO
U1RleHRGaW5kZXJDbGllbnQpIDxOU1RleHRGaW5kZXJDbGllbnQ+CiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5oCmluZGV4IDQxZDI2MTYyZjYzNjY1NTU5MTU0MDJkZmU0NTE2NmM0Nzk3NTJkMGIu
LjhjY2NmNzM3ZDU5YmQ1YThhOWNmNzhmMjUyY2ZlODQ2NzMyZGM0MzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24uaApAQCAtMTM2LDcgKzEzNiw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
MCksIGlvcyg4LjApKQogICovCiBAcHJvcGVydHkgKG51bGxfcmVzZXR0YWJsZSwgbm9uYXRvbWlj
LCBjb3B5KSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBs
aW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTEuMCksIGlvcygxNC4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAvKiEgQGFic3RyYWN0
IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSFRNTDUgdmlkZW9zIHBsYXkgaW5s
aW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDg2YjljZWIyYTcxZjhl
ODhlODU5NTA2YjA2MTNlMzc5NzdhNDg0MDAuLjA1YjYwYTNmYzBkODA3NmI2YTEzMzJjMjI2ZTdh
NjRlNTE5MDk5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC01Nyw3
ICs1Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb252ZXJ0c1Bvc2l0aW9uU3R5bGVP
bkNvcHk6KSBCT09MIF9jb252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRBbGxvd3NNZXRhUmVmcmVzaDopIEJPT0wgX2FsbG93c01ldGFSZWZyZXNoIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93VG9w
TmF2aWdhdGlvblRvRGF0YVVSTHM6KSBCT09MIF9hbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFV
UkxzOikgQk9PTCBfYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcms6KSBCT09MIF9uZWVkc1N0b3Jh
Z2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMp
LCBpb3MoMTAuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWFpbkNvbnRl
bnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1
cmVPdmVycmlkZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4w
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnZpc2libGVBdXRvcGxheU5v
dFBlcm1pdHRlZDopIEJPT0wgX2ludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwpAQCAtNzQsMTggKzc0LDE4IEBAIHR5
cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXREcmF3c0JhY2tncm91bmQ6KSBCT09MIF9kcmF3c0JhY2tn
cm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNV
bnRpbEFmdGVyRG9jdW1lbnRMb2FkOikgQk9PTCBfc2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3Jp
cHRzVW50aWxBZnRlckRvY3VtZW50TG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYnNpdGVE
YXRhU3RvcmUgKl93ZWJzaXRlRGF0YVN0b3JlSWZFeGlzdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5LCBzZXR0ZXI9X3NldENPUlNEaXNhYmxpbmdQYXR0ZXJuczopIE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKl9jb3JzRGlzYWJsaW5nUGF0dGVybnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dERlZmVycmFibGVVc2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbjopIEJPT0wg
X2RlZmVycmFibGVVc2VyU2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFi
bGVkOikgQk9PTCBfY3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2Vic2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRhU3Rv
cmVJZkV4aXN0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5z
OikgTlNBcnJheTxOU1N0cmluZyAqPiAqX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RGVmZXJyYWJsZVVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9u
OikgQk9PTCBfZGVmZXJyYWJsZVVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQ6
KSBCT09MIF9jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0TG9hZHNGcm9tTmV0d29yazopIEJPT0wgX2xvYWRzRnJvbU5ldHdvcmsgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExvYWRzU3VicmVzb3VyY2VzOikgQk9PTCBfbG9hZHNT
dWJyZXNvdXJjZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldElnbm9yZXNBcHBCb3Vu
ZERvbWFpbnM6KSBCT09MIF9pZ25vcmVzQXBwQm91bmREb21haW5zIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRMb2Fkc0Zyb21OZXR3b3JrOikgQk9PTCBfbG9hZHNGcm9tTmV0d29yayBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0TG9hZHNTdWJyZXNvdXJjZXM6KSBCT09MIF9sb2Fkc1N1YnJlc291
cmNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0SWdub3Jlc0FwcEJvdW5kRG9tYWluczopIEJPT0wgX2ln
bm9yZXNBcHBCb3VuZERvbWFpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldENsaWVudE5hdmlnYXRpb25zUnVuQXRGb3JlZ3JvdW5kUHJpb3JpdHk6KSBCT09MIF9j
bGllbnROYXZpZ2F0aW9uc1J1bkF0Rm9yZWdyb3VuZFByaW9yaXR5IFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5
c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTopIEJPT0wgX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQ
cmlvcml0eSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfY2xpZW50TmF2aWdh
dGlvbnNSdW5BdEZvcmVncm91bmRQcmlvcml0eSIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENsaWVudE5hdmlnYXRpb25zUnVuQXRGb3Jl
Z3JvdW5kUHJpb3JpdHk6KSBCT09MIF9jbGllbnROYXZpZ2F0aW9uc1J1bkF0Rm9yZWdyb3VuZFBy
aW9yaXR5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTopIEJPT0wgX2Fsd2F5
c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJfY2xpZW50TmF2aWdhdGlvbnNSdW5BdEZvcmVncm91bmRQcmlvcml0eSIsIGlvcyg5LjAs
IDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldElubGluZU1lZGlhUGxh
eWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlOikgQk9PTCBfaW5saW5lTWVkaWFQbGF5
YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAu
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSW5saW5lTWVkaWFQ
bGF5YmFja0FmdGVyRnVsbHNjcmVlbjopIEJPT0wgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2tB
ZnRlckZ1bGxzY3JlZW4gIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldERyYWdMaWZ0RGVsYXk6KSBfV0tEcmFnTGlmdERlbGF5IF9k
cmFnTGlmdERlbGF5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKQEAgLTExOCw4ICsxMTgs
OCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0QWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXM6KSBOU0FycmF5PE5TU3RyaW5nICo+ICpfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdl
VHlwZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VW5kb01hbmFnZXJBUElFbmFibGVkOikgQk9P
TCBfdW5kb01hbmFnZXJBUElFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBp
b3MoMTMuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkUmVsYXhU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmc6KSBCT09MIF9zaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVCbG9ja2luZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJvY2Vzc0Rpc3BsYXlO
YW1lOikgTlNTdHJpbmcgKl9wcm9jZXNzRGlzcGxheU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOikgQk9PTCBfc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFByb2Nl
c3NEaXNwbGF5TmFtZTopIE5TU3RyaW5nICpfcHJvY2Vzc0Rpc3BsYXlOYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMWUz
MzFjNDBmNzIzNjlmMjQ3ZmU4ZWJmNDkwNTM0NmQ2MDFkNjYyNy4uOGVhY2IyMjk5NGVmNDNiN2Jj
MmJlOTQ3YjM3N2YwMTQxYWE1ZmEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEhpc3RvcnlEZWxlZ2F0ZTopIGlkIDxXS0hpc3Rv
cnlEZWxlZ2F0ZVByaXZhdGU+IF9oaXN0b3J5RGVsZWdhdGU7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgd2Vhaywgc2V0dGVyPV9zZXRJY29uTG9hZGluZ0RlbGVnYXRlOikgaWQgPF9XS0ljb25Mb2Fk
aW5nRGVsZWdhdGU+IF9pY29uTG9hZGluZ0RlbGVnYXRlOwotQHByb3BlcnR5IChub25hdG9taWMs
IHdlYWssIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkRGVsZWdhdGU6KSBpZCA8X1dLUmVzb3VyY2VM
b2FkRGVsZWdhdGU+IF9yZXNvdXJjZUxvYWREZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHdl
YWssIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkRGVsZWdhdGU6KSBpZCA8X1dLUmVzb3VyY2VMb2Fk
RGVsZWdhdGU+IF9yZXNvdXJjZUxvYWREZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEx
LjApLCBpb3MoMTQuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJM
ICpfdW5yZWFjaGFibGVVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJM
ICpfbWFpbkZyYW1lVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkp
OwpAQCAtMTc4LDkgKzE3OCw5IEBAIGhhcyBiZWVuIGxvYWRlZCBvdmVyIGEgY29ubmVjdGlvbiB1
c2luZyBUTFMgMS4wIG9yIFRMUyAxLjEuCiBAZGlzY3Vzc2lvbiBAbGluayBXS1dlYlZpZXcgQC9s
aW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50CiBmb3IgdGhpcyBwcm9w
ZXJ0eS4KICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX25lZ290aWF0
ZWRMZWdhY3lUTFMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfbmVnb3RpYXRl
ZExlZ2FjeVRMUyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi0t
ICh2b2lkKV9mcmFtZXM6KHZvaWQgKF4pKF9XS0ZyYW1lVHJlZU5vZGUgKikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX2ZyYW1lczoodm9pZCAoXikoX1dLRnJhbWVUcmVlTm9kZSAqKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAv
LyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9uY2Ugbm9ib2R5IGlzIHVzaW5nIHRoZW0uCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqX3Nlc3Npb25TdGF0ZURhdGE7CkBAIC0x
OTcsMTAgKzE5NywxMCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBfV0tGcmFtZUhhbmRsZSAqX21haW5GcmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aywgc2V0dGVyPV9zZXRUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGU6KSBpZCA8X1dLVGV4dE1hbmlw
dWxhdGlvbkRlbGVnYXRlPiBfdGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zdGFydFRl
eHRNYW5pcHVsYXRpb25zV2l0aENvbmZpZ3VyYXRpb246KF9XS1RleHRNYW5pcHVsYXRpb25Db25m
aWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBjb21wbGV0aW9uOih2b2lkKF4pKHZvaWQpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0tICh2b2lkKV9jb21wbGV0ZVRleHRNYW5pcHVsYXRpb246KF9XS1RleHRNYW5p
cHVsYXRpb25JdGVtICopaXRlbSBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLS0gKHZvaWQpX2NvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbkZvckl0ZW1zOihO
U0FycmF5PF9XS1RleHRNYW5pcHVsYXRpb25JdGVtICo+ICopaXRlbXMgY29tcGxldGlvbjoodm9p
ZCheKShOU0FycmF5PE5TRXJyb3IgKj4gKmVycm9ycykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTop
IGlkIDxfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGU+IF90ZXh0TWFuaXB1bGF0aW9uRGVsZWdh
dGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpX3N0
YXJ0VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjooX1dLVGV4dE1hbmlwdWxhdGlv
bkNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGNvbXBsZXRpb246KHZvaWQoXikodm9pZCkp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKKy0gKHZvaWQpX2NvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbjooX1dLVGV4dE1hbmlwdWxhdGlv
bkl0ZW0gKilpdGVtIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9p
ZClfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9ySXRlbXM6KE5TQXJyYXk8X1dLVGV4dE1hbmlw
dWxhdGlvbkl0ZW0gKj4gKilpdGVtcyBjb21wbGV0aW9uOih2b2lkKF4pKE5TQXJyYXk8TlNFcnJv
ciAqPiAqZXJyb3JzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEx
LjApLCBpb3MoMTQuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBZGRz
VmlzaXRlZExpbmtzOikgQk9PTCBfYWRkc1Zpc2l0ZWRMaW5rczsKIApAQCAtMjA5LDE4ICsyMDks
MTggQEAgZm9yIHRoaXMgcHJvcGVydHkuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IGdldHRlcj1faXNTaG93aW5nTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCkgQk9PTCBfc2hvd2lu
Z05hdmlnYXRpb25HZXN0dXJlU25hcHNob3Q7CiAKIC0gKHZvaWQpX2Nsb3NlOwotLSAoQk9PTClf
dHJ5Q2xvc2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKLS0gKEJPT0wpX2lzQ2xvc2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistIChCT09MKV90cnlDbG9zZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAoQk9PTClfaXNDbG9zZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAotLSAodm9pZClfdXBkYXRlV2Vic2l0ZVBv
bGljaWVzOihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV91cGRhdGVXZWJwYWdlUHJlZmVyZW5jZXM6IiwgbWFj
b3MoMTAuMTMsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOwotLSAodm9pZClf
dXBkYXRlV2VicGFnZVByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXdlYnBhZ2VQ
cmVmZXJlbmNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotLSAodm9pZClfbm90aWZ5VXNlclNjcmlwdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQk9PTCBfZGVmZXJyYWJsZVVzZXJTY3JpcHRzTmVlZE5vdGlmaWNhdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9s
aWNpZXMgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV91cGRhdGVXZWJwYWdl
UHJlZmVyZW5jZXM6IiwgbWFjb3MoMTAuMTMsIDExLjApLCBpb3MoMTEuMywgMTQuMCkpOworLSAo
dm9pZClfdXBkYXRlV2VicGFnZVByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXdl
YnBhZ2VQcmVmZXJlbmNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OworLSAodm9pZClfbm90aWZ5VXNlclNjcmlwdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4w
KSwgaW9zKDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfZGVm
ZXJyYWJsZVVzZXJTY3JpcHRzTmVlZE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDExLjApLCBpb3MoMTQuMCkpOwogCiAtICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0
VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lkKV9ldmFsdWF0ZUphdmFTY3Jp
cHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZy
YW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKiBlcnJvcikpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LS0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5n
IHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIGluRnJhbWU6KFdLRnJhbWVJbmZvICop
ZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqIGVycm9yKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAodm9pZClfY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNTdHJpbmcgKilmdW5jdGlvbkJvZHkg
YXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGluRnJh
bWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICop
Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqZXJy
b3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5n
ICopamF2YVNjcmlwdFN0cmluZyBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVu
dFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoaWQsIE5TRXJyb3IgKiBlcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNj
cmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICop
c291cmNlVVJMIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdL
Q29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShp
ZCwgTlNFcnJvciAqIGVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClfY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNT
dHJpbmcgKilmdW5jdGlvbkJvZHkgYXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwg
aWQ+ICopYXJndW1lbnRzIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29y
bGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShpZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldExheW91dE1vZGU6KSBfV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwogLy8gRm9yIHVz
ZSB3aXRoIF9sYXlvdXRNb2RlID0gX1dLTGF5b3V0TW9kZUZpeGVkU2l6ZToKQEAgLTIzMCw3ICsy
MzAsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0Vmlld1NjYWxlOikgQ0dGbG9hdCBfdmlld1NjYWxlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0
ZXI9X3NldENPUlNEaXNhYmxpbmdQYXR0ZXJuczopIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9jb3Jz
RGlzYWJsaW5nUGF0dGVybnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldENP
UlNEaXNhYmxpbmdQYXR0ZXJuczopIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9jb3JzRGlzYWJsaW5n
UGF0dGVybnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRo
OikgQ0dGbG9hdCBfbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKQEAgLTI0OCw3ICsyNDgsNyBAQCBmb3IgdGhp
cyBwcm9wZXJ0eS4KICsgKE5TVVJMICopX3Zpc2l0VW5zYWZlV2Vic2l0ZVNlbnRpbmVsIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAtICh2b2lkKV9zaG93U2Fm
ZUJyb3dzaW5nV2FybmluZ1dpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSB3YXJuaW5nOihOU1N0
cmluZyAqKXdhcm5pbmcgZGV0YWlsczooTlNBdHRyaWJ1dGVkU3RyaW5nICopZGV0YWlscyBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVS
TDp0aXRsZTp3YXJuaW5nOmRldGFpbHNXaXRoTGlua3M6Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFj
b3MoMTAuMTQuNCwgMTAuMTUuNCksIGlvcygxMi4yLCAxMy4yKSk7CiAtICh2b2lkKV9zaG93U2Fm
ZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6KE5TVVJMICopdXJsIHRpdGxlOihOU1N0cmluZyAqKXRp
dGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxzOihOU0F0dHJpYnV0ZWRTdHJp
bmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1fc2hvd1NhZmVCcm93
c2luZ1dhcm5pbmdXaXRoVVJMOnRpdGxlOndhcm5pbmc6ZGV0YWlsc1dpdGhMaW5rczpjb21wbGV0
aW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xNC40LCAxMC4xNS40KSwgaW9zKDEyLjIsIDEzLjIpKTsK
LS0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1cmwgdGl0
bGU6KE5TU3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHNX
aXRoTGlua3M6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikoQk9PTCwgTlNVUkwgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3Nob3dTYWZl
QnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1cmwgdGl0bGU6KE5TU3RyaW5nICopdGl0
bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHNXaXRoTGlua3M6KE5TQXR0cmli
dXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCwgTlNV
UkwgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwg
aW9zKDEzLjIpKTsKIAogLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZv
aWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwogLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGVXaXRob3V0
V2FpdGluZ0ZvclBhaW50aW5nOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwpAQCAtMjg5LDcgKzI4OSw3IEBAIGZv
ciB0aGlzIHByb3BlcnR5LgogLSAodm9pZClfZ2V0TWFpblJlc291cmNlRGF0YVdpdGhDb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRs
ZXI7CiAtICh2b2lkKV9nZXRXZWJBcmNoaXZlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9n
ZXRDb250ZW50c0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmlu
ZyAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMpLCBpb3MoMTEuMCkpOwotLSAodm9pZClfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3Ry
aW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfZ2V0Q29udGVudHNPZkFsbEZyYW1lc0FzU3RyaW5nV2l0aENvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogLSAodm9pZClfZ2V0Q29udGVudHNB
c0F0dHJpYnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmli
dXRlZFN0cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRy
aWJ1dGVLZXksIGlkPiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCiAtICh2b2lkKV9nZXRBcHBsaWNhdGlv
bk1hbmlmZXN0V2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tBcHBsaWNhdGlvbk1h
bmlmZXN0ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7CkBAIC0zMzAsMTIgKzMzMCwxMiBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4K
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgX1dLTWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBfV0tNZWRpYU11dGVkU3RhdGUgX21lZGlhTXV0ZWRTdGF0ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRpYU11dGVkU3RhdGUgX21lZGlhTXV0ZWRTdGF0ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAtICh2b2lkKV9zZXRQ
YWdlTXV0ZWQ6KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRNZWRpYUNhcHR1cmVFbmFibGVkOikgQk9PTCBfbWVkaWFDYXB0dXJlRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKHZvaWQpX3N0b3BNZWRp
YUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3N0b3BNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09M
IF9jYW5Ub2dnbGVQaWN0dXJlSW5QaWN0dXJlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF9pc1BpY3R1cmVJblBpY3R1cmVBY3RpdmU7CkBAIC0zNDYsMTYgKzM0NiwxNiBA
QCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX3Jlc3VtZUFsbE1lZGlhUGxheWJhY2s7CiAt
ICh2b2lkKV9jbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9uczsKIAotLSAodm9pZClfdGFrZVBERlNu
YXBzaG90V2l0aENvbmZpZ3VyYXRpb246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNo
b3RDb25maWd1cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKnBkZlNu
YXBzaG90RGF0YSwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV90YWtl
UERGU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilz
bmFwc2hvdENvbmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAq
cGRmU25hcHNob3REYXRhLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAotLSAodm9pZClfZ2V0UHJvY2Vz
c0Rpc3BsYXlOYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAodm9pZClfZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1lV2l0aENvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi0tICh2b2lkKV9ncmFudEFjY2Vz
c1RvUHJlZmVyZW5jZVNlcnZpY2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2Vydmlj
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi0tICh2b2lkKV9z
ZXJ2aWNlV29ya2Vyc0VuYWJsZWQ6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZv
aWQpX2NsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGU6KHZvaWQgKF4pKHZvaWQp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXJ2aWNlV29ya2Vyc0VuYWJsZWQ6KHZvaWQoXiko
Qk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKKy0gKHZvaWQpX2NsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGU6
KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTEuMCksIGlvcygxNC4wKSk7CiAKLS0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwg
KilzZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KSBCT09MIF9jYW5V
c2VDcmVkZW50aWFsU3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCkBAIC00NjQsMTMgKzQ2NCwxMyBAQCBmb3IgdGhpcyBwcm9wZXJ0
eS4KIAogLSAoVUlWaWV3ICopX2Z1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTIuMCkpOwogCi0tICh2b2lkKV9ncmFudEFjY2Vzc1RvQXNzZXRTZXJ2aWNlcyBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9yZXZva2VBY2Nlc3NU
b0Fzc2V0U2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfZ3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTQuMCkp
OworLSAodm9pZClfcmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDE0LjApKTsKIAotLSAodm9pZClfd2lsbE9wZW5BcHBMaW5rIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dpbGxPcGVuQXBwTGluayBXS19BUElfQVZBSUxB
QkxFKGlvcygxNC4wKSk7CiAKLS0gKHZvaWQpX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46
KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOwotLSAodm9pZClfaXNGb3JjZWRJbnRvQXBwQm91bmRNb2RlOih2b2lkKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKHZvaWQpX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46KHZvaWQoXikoQk9PTCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTQuMCkpOworLSAodm9pZClfaXNG
b3JjZWRJbnRvQXBwQm91bmRNb2RlOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDE0LjApKTsKIAogQGVuZAogCkBAIC01MDEsNyArNTAxLDcgQEAg
Zm9yIHRoaXMgcHJvcGVydHkuCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0
aW5nIHdoZXRoZXIgZHJhd2luZyBjbGlwcyB0byB0aGUgdmlzaWJsZVJlY3QuCiBAZGlzY3Vzc2lv
biBXaGVuIFlFUywgdGhlIHZpZXcgd2lsbCB1c2UgaXRzIC12aXNpYmxlUmVjdCB3aGVuIGRldGVy
bWluaW5nIHdoaWNoIGFyZWFzIG9mIHRoZSBXS1dlYlZpZXcgdG8gZHJhdy4gVGhpcyBtYXkgaW1w
cm92ZSBwZXJmb3JtYW5jZSBmb3IgbGFyZ2UgV0tXZWJWaWV3cyB3aGljaCBhcmUgbW9zdGx5IGNs
aXBwZWQgb3V0IGJ5IGVuY2xvc2luZyB2aWV3cy4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PLgog
Ki8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0Q2xpcHNUb1Zp
c2libGVSZWN0OikgQk9PTCBfY2xpcHNUb1Zpc2libGVSZWN0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVy
PV9zZXRDbGlwc1RvVmlzaWJsZVJlY3Q6KSBCT09MIF9jbGlwc1RvVmlzaWJsZVJlY3QgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAppbmRleCBiMDYwZDU1MDcxZGMyYjhhMTkzZTE0YmU2
MzFiOWU2ODNhNTcwZDlhLi40YTIzNmRhN2Q3NThhYjk2ZDZiNzU2ZDc1ZmNhZDJhMWMzYjczZDBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJwYWdlUHJlZmVyZW5jZXMuaApAQCAtNjksNiArNjksNiBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpCiAKICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAq
LwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNl
c1ByaXZhdGUuaAppbmRleCAxYWU2YmYyNzZiOWFiMzBlMzQxNzg3ZWVkNzBhMzI1OWE5ZWM5N2Fk
Li40NzdmZGMxMWYzMmY5ZGZiOWViMGQxOGI5M2Y0YjI0NzBkNDdiNDQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVBy
ZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tXZWJzaXRlTW91c2VFdmVudFBvbGljeSkgewogICAgIC8vIEluZGlyZWN0
IHBvaW50aW5nIGRldmljZXMgd2lsbCBhbHdheXMgc3ludGhlc2l6ZSB0b3VjaCBldmVudHMgYW5k
IGJlaGF2ZSBhcyBpZiB0b3VjaCBpbnB1dCBpcyBiZWluZyB1c2VkLgogICAgIF9XS1dlYnNpdGVN
b3VzZUV2ZW50UG9saWN5U3ludGhlc2l6ZVRvdWNoRXZlbnRzLAogI2VuZGlmCi19IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBjbGFzcyBfV0tDdXN0b21IZWFk
ZXJGaWVsZHM7CiBAY2xhc3MgV0tVc2VyQ29udGVudENvbnRyb2xsZXI7CkBAIC03NCw3ICs3NCw3
IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlTW91c2VFdmVudFBv
bGljeSkgewogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q3VzdG9tSGVh
ZGVyRmllbGRzOikgTlNBcnJheTxfV0tDdXN0b21IZWFkZXJGaWVsZHMgKj4gKl9jdXN0b21IZWFk
ZXJGaWVsZHM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQb3BVcFBvbGljeTop
IF9XS1dlYnNpdGVQb3BVcFBvbGljeSBfcG9wVXBQb2xpY3k7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nLCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3RvcmU6KSBXS1dlYnNpdGVEYXRhU3Rv
cmUgKl93ZWJzaXRlRGF0YVN0b3JlOwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0
dGVyPV9zZXRVc2VyQ29udGVudENvbnRyb2xsZXI6KSBXS1VzZXJDb250ZW50Q29udHJvbGxlciAq
X3VzZXJDb250ZW50Q29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVy
PV9zZXRVc2VyQ29udGVudENvbnRyb2xsZXI6KSBXS1VzZXJDb250ZW50Q29udHJvbGxlciAqX3Vz
ZXJDb250ZW50Q29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q3VzdG9tVXNlckFn
ZW50OikgTlNTdHJpbmcgKl9jdXN0b21Vc2VyQWdlbnQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSwgc2V0dGVyPV9zZXRDdXN0b21Vc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrczopIE5T
U3RyaW5nICpfY3VzdG9tVXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3M7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybTopIE5T
U3RyaW5nICpfY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm07CkBAIC04Myw2ICs4Myw2IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlTW91c2VFdmVudFBvbGljeSkgewog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRBcHBsaWNhdGlvbk5hbWVG
b3JVc2VyQWdlbnRXaXRoTW9kZXJuQ29tcGF0aWJpbGl0eTopIE5TU3RyaW5nICpfYXBwbGljYXRp
b25OYW1lRm9yVXNlckFnZW50V2l0aE1vZGVybkNvbXBhdGliaWxpdHk7CiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE1vdXNlRXZlbnRQb2xpY3k6KSBfV0tXZWJzaXRlTW91c2VF
dmVudFBvbGljeSBfbW91c2VFdmVudFBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TW91c2VFdmVudFBvbGljeTopIF9XS1dlYnNpdGVNb3VzZUV2ZW50UG9saWN5IF9tb3VzZUV2
ZW50UG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhUmVjb3JkUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgKaW5kZXggOTU3ZTg3NzA4N2Y0M2M4YzAzM2Jl
YTZmOWRjZDYzYjcyZDEwZjdlZi4uNjUzMjE1ZTdjMDZjNjdlNzYzNDY0ZDZhNzVlZTUwZDg5NDcw
NGU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFSZWNvcmRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgKQEAgLTM2LDcgKzM2LDcgQEAgV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyBXS19BUElfQVZBSUwKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNp
dGVEYXRhVHlwZUNyZWRlbnRpYWxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOwogV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQWRD
bGlja0F0dHJpYnV0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjAp
KTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVD
bGlja01lYXN1cmVtZW50cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFU
eXBlQWx0ZXJuYXRpdmVTZXJ2aWNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0
ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjAp
LCBpb3MoMTQuMCkpOwogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIFdLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggZGYyYzMwYmViOTI2
ZDI2MzRjYzY0MGJlODVjMTU0NGU5MzgwMzE3YS4uNTliOTEyYzZhMDc0MzI0MWYyMjg2MDVjYWY5
YjIxOGViMzlkNGU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC01MCwxMyArNTAs
MTMgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVG
ZXRjaE9wdGlvbnMpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGU6
KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhOikgTlNVSW50ZWdlciBfcGVyT3JpZ2luU3RvcmFnZVF1
b3RhIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSIsIG1hY29zKDEwLjEzLjQsIFdL
X01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhOikgTlNVSW50ZWdlciBfcGVyT3JpZ2lu
U3RvcmFnZVF1b3RhIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSIsIG1hY29zKDEw
LjEzLjQsIDExLjApLCBpb3MoMTEuMywgMTQuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX2JvdW5kSW50
ZXJmYWNlSWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIiLCBt
YWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0NlbGx1bGFyQWNjZXNzOikgQk9PTCBf
YWxsb3dzQ2VsbHVsYXJBY2Nlc3MgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uYWxsb3dzQ2VsbHVsYXJBY2Nlc3MiLCBt
YWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFByb3h5Q29uZmlndXJhdGlvbjopIE5TRGljdGlv
bmFyeSAqX3Byb3h5Q29uZmlndXJhdGlvbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5wcm94eUNvbmZpZ3VyYXRpb24i
LCBtYWNvcygxMC4xNCwgV0tfTUFDX1RCQSksIGlvcygxMi4wLCBXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXI6KSBO
U1N0cmluZyAqX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5ib3VuZEludGVy
ZmFjZUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMy40LCAxMS4wKSwgaW9zKDExLjMsIDE0LjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0NlbGx1bGFyQWNjZXNzOikg
Qk9PTCBfYWxsb3dzQ2VsbHVsYXJBY2Nlc3MgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uYWxsb3dzQ2VsbHVsYXJBY2Nl
c3MiLCBtYWNvcygxMC4xMy40LCAxMS4wKSwgaW9zKDExLjMsIDE0LjApKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFByb3h5Q29uZmlndXJhdGlvbjopIE5TRGljdGlvbmFyeSAq
X3Byb3h5Q29uZmlndXJhdGlvbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5wcm94eUNvbmZpZ3VyYXRpb24iLCBtYWNv
cygxMC4xNCwgMTEuMCksIGlvcygxMi4wLCAxNC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBbGxvd3NUTFNGYWxsYmFjazopIEJPT0wgX2FsbG93c1RMU0ZhbGxiYWNrIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5IFdLX0FQ
SV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSIsIG1hY29zKDEwLjExLCBXS19NQUNf
VEJBKSwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5IFdLX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLl9pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeSIsIG1hY29zKDEwLjExLCAxMS4wKSwgaW9zKDkuMCwgMTQu
MCkpOwogCiAKIC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJh
Y2s6KG51bGxhYmxlIHZvaWQgKF4pKFdLV2Vic2l0ZURhdGFTdG9yZSAqLCBOU1N0cmluZyAqKSlj
YWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKQEAgLTY3
LDE4ICs2NywxOCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURh
dGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAoYm9vbClfaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3Jr
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIC0gKHZvaWQp
X3NjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGU6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwotLSAodm9p
ZClfbG9nVXNlckludGVyYWN0aW9uOihOU1VSTCAqKWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2xvZ1VzZXJJbnRlcmFjdGlv
bjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAt
ICh2b2lkKV9zZXRQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0gKHZvaWQpX2dldElzUHJldmFsZW50RG9tYWluOihO
U1VSTCAqKWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7Ci0tICh2
b2lkKV9nZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnk6KHZvaWQgKF4pKE5TQXJy
YXk8X1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkgKj4gKikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLS0gKHZvaWQpX2NsZWFyUHJldmFsZW50RG9tYWluOihOU1VSTCAqKWRvbWFpbiBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX2NsZWFy
UmVzb3VyY2VMb2FkU3RhdGlzdGljczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0g
KHZvaWQpX2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZpcnN0UGFydHk6KE5TVVJMICop
Zmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihOU1VSTCAqKXRoaXJkUGFydHlVUkwgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOihCT09MKWVuYWJsZWQgb25seU9uU2l0ZXNXaXRob3V0
VXNlckludGVyYWN0aW9uOihCT09MKW9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQp
X3N0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX2dldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeToodm9p
ZCAoXikoTlNBcnJheTxfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eSAqPiAqKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OworLSAodm9pZClfY2xlYXJQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClfY2xlYXJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClfaXNSZWdpc3RlcmVkQXNTdWJy
ZXNvdXJjZVVuZGVyRmlyc3RQYXJ0eTooTlNVUkwgKilmaXJzdFBhcnR5VVJMIHRoaXJkUGFydHk6
KE5TVVJMICopdGhpcmRQYXJ0eVVSTCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKKy0gKHZvaWQpX3NldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6KEJPT0wpZW5hYmxl
ZCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb246KEJPT0wpb25seU9uU2l0ZXNXaXRo
b3V0VXNlckludGVyYWN0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwor
LSAodm9pZClfc3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzOih2b2lkICheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OwogLSAodm9pZClfcHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkczoodm9pZCAoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7Ci0tICh2b2lkKV9hcHBCb3VuZERvbWFpbnM6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJp
bmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX2FwcEJvdW5kU2NoZW1lczoodm9pZCAo
XikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfYXBwQm91
bmREb21haW5zOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CistICh2b2lkKV9h
cHBCb3VuZFNjaGVtZXM6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLSAo
dm9pZClfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFp
biBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQuaAppbmRleCBlYTgyMDMyYTFjZGFjYTZiNDZlOWJjMWZjYTA1
ZDhkZTkwMDQ1ZjE5Li4yMTFmOTU1MzQ4ZTE5YmNmN2UwNzVhNWFiZTg2MzdlYTUzNTBhYzJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaApA
QCAtNDMsNiArNDMsNiBAQCBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
RG93bmxvYWQiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TVVJMICo+ICpyZWRpcmVjdENoYWluIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgd2FzVXNlckluaXRpYXRlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU0RhdGEgKnJlc3VtZURhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tGcmFtZUluZm8g
Km9yaWdpbmF0aW5nRnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tGcmFtZUlu
Zm8gKm9yaWdpbmF0aW5nRnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0ZyYW1lVHJlZU5vZGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tGcmFtZVRyZWVOb2RlLmgKaW5kZXggYWIwMjBlOGVhOTExYzM2MTkwNGJmYTI4ZmVmNTg4
M2E0ZmRkODJjMS4uYjU2NzBjYzZkN2E2MTM2YzA2MTJhYmI5YTQxOTdiOTVjNjI1NjcwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZyYW1lVHJlZU5v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnJhbWVUcmVl
Tm9kZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0ZyYW1lSW5mby5o
PgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKQogQGludGVyZmFj
ZSBfV0tGcmFtZVRyZWVOb2RlIDogV0tGcmFtZUluZm8KIAogKyAoaW5zdGFuY2V0eXBlKW5ldyBO
U19VTkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnB1dERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5wdXREZWxlZ2F0ZS5oCmluZGV4IDdlNDcyOGI4YWZjOTY4ODQxMDZlYzQ2NWFmOTM3
Y2Y5NzM5YTQzYzEuLjFhZmQwMDEwMTM1NzllMjRmMGQ5ODYxYTU5NWUyMWJlNmFlNWRmMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnB1dERlbGVn
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lucHV0RGVs
ZWdhdGUuaApAQCAtNTUsNyArNTUsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tG
b2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeSkgewogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyB3aWxsU3RhcnRJbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNz
aW9uPilpbnB1dFNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogLSAoQk9PTClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmb2N1c1JlcXVpcmVzU3Ryb25nUGFzc3dvcmRB
c3Npc3RhbmNlOihpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPilpbmZvIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDEyLjApKTsKIAotLSAoTlNEaWN0aW9uYXJ5PGlkLCBOU1N0cmluZyAqPiAqKV93ZWJW
aWV3QWRkaXRpb25hbENvbnRleHRGb3JTdHJvbmdQYXNzd29yZEFzc2lzdGFuY2U6KFdLV2ViVmll
dyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNEaWN0
aW9uYXJ5PGlkLCBOU1N0cmluZyAqPiAqKV93ZWJWaWV3QWRkaXRpb25hbENvbnRleHRGb3JTdHJv
bmdQYXNzd29yZEFzc2lzdGFuY2U6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTQuMCkpOwogCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNo
b3VsZFJldmVhbEZvY3VzT3ZlcmxheUZvcklucHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1JbnB1dFNl
c3Npb24+KWlucHV0U2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiAtIChDR0Zs
b2F0KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZvY3VzZWRFbGVtZW50Q29udGV4dFZp
ZXdIZWlnaHRGb3JGaXR0aW5nU2l6ZTooQ0dTaXplKWZpdHRpbmdTaXplIGlucHV0U2Vzc2lvbjoo
aWQgPF9XS0Zvcm1JbnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlv
cygxMi4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mby5oCmluZGV4IDFhNzNlYTMzNzAwZjdl
YjdkMjIyMzRlZTIwYTM2ZmM2ZGQyNjNlMzEuLmY5ODI0ODgyMTM3MThiMGVmMzFmNzFjNjI0OTU2
NGFlYzUzYzk0NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mby5oCkBAIC0zOCw5ICszOCw5
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0luc3BlY3RvckRlYnVnZ2FibGVUeXBl
KSB7CiAgICAgX1dLSW5zcGVjdG9yRGVidWdnYWJsZVR5cGVTZXJ2aWNlV29ya2VyLAogICAgIF9X
S0luc3BlY3RvckRlYnVnZ2FibGVUeXBlUGFnZSwKICAgICBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxl
VHlwZVdlYlBhZ2UsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpCiBAaW50ZXJmYWNl
IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZSBkZWJ1Z2dhYmxlVHlw
ZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqdGFyZ2V0UGxhdGZvcm1O
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDcyMjZjYzJjYjYwNWQyMzg0
YjVmZGY5MjEwYWM3MzFiNDE2MTBjMWUuLjZlMzljMTk3MThlZjUzMzVjZmIxOTM3MWNlMmExM2Qw
ZjJlNWNjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTMyLDcgKzMyLDcg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNl
IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1VSTCAqaW5qZWN0ZWRCdW5kbGVVUkw7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTZXQ8Q2xhc3M+ICpjdXN0b21DbGFzc2VzRm9yUGFy
YW1ldGVyQ29kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1NldDxDbGFzcz4gKmN1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nl
c3NDb3VudCBXS19BUElfREVQUkVDQVRFRCgiSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGxp
bWl0IHRoZSBudW1iZXIgb2YgcHJvY2Vzc2VzIiwgbWFjb3MoMTAuMCwgMTAuMTUpLCBpb3MoMS4w
LCAxMy4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2VzU2luZ2xlV2ViUHJvY2Vz
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRlbnRTZXJ2
aWNlQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOwpAQCAtNTIsNyArNTIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTAp
LCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgZGlza0NhY2hlU2l6
ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEKCJVc2UgW1dLV2Vic2l0ZURhdGFTdG9yZSBub25Q
ZXJzaXN0ZW50RGF0YVN0b3JlXSB0byBsaW1pdCBkaXNrIGNhY2hlIHNpemUgdG8gMCIsIG1hY29z
KDEwLjExLCAxMC4xNC40KSwgaW9zKDkuMCwgMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIE5TQXJyYXkgKmNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsd2F5c1JldmFsaWRhdGVkVVJM
U2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGRpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24ubmV0d29ya0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCIs
IG1hY29zKDEwLjEyLCBXS19NQUNfVEJBKSwgaW9zKDEwLjAsIFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGRpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24ubmV0d29ya0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCIs
IG1hY29zKDEwLjEyLCAxMS4wKSwgaW9zKDEwLjAsIDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCBt
YWNvcygxMC4xMi4zLCAxMC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50
aWZpZXIiLCBtYWNvcygxMC4xMi4zLCAxMC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwpAQCAtNzAsNyArNzAsNyBAQCBX
S19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBnZXR0ZXI9aXNKSVRFbmFibGVkKSBCT09MIEpJVEVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBu
dWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhTVFNTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKmhz
dHNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmhzdHNTdG9yYWdlRGlyZWN0b3J5IiwgbWFj
b3MoMTAuMTUsIFdLX01BQ19UQkEpLCBpb3MoMTMuMCwgV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBjb25maWd1cmVKU0NGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBjb25maWd1cmVKU0NGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTEuMCksIGlvcygxNC4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZERlbGVnYXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaAppbmRleCA5
Y2YyYjMwNmI4ZmY5Mjc0ZTNiYzY0NWE2NjI5MTk0MGQwMzU2NmUyLi44OTY2YmNiMWRiNzlkMWM2
ODdhOThjODRkNGM3Yzc3N2JjNTE3MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaApAQCAtMzAs
NyArMzAsNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMS4wKSwgaW9zKDE0LjApKQogQHByb3RvY29sIF9XS1Jlc291cmNlTG9hZERlbGVn
YXRlIDxOU09iamVjdD4KIAogQG9wdGlvbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkSW5mby5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaAppbmRleCBiYmFkY2JiZjU4
YjIzNmYwYWJlOTU4MGY1ZjMyOTFkNGJhM2FjMzc4Li5iMDgwYTBlZWUzMmE0ZWZiOWU1MDBiYzZj
NTc1ZGVmMWFhNjE1YWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUmVzb3VyY2VMb2FkSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUmVzb3VyY2VMb2FkSW5mb1Jlc291cmNlVHlwZSkgewog
ICAgIF9XS1Jlc291cmNlTG9hZEluZm9SZXNvdXJjZVR5cGVPdGhlciA9IC0xLAogfTsKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSkKIEBpbnRlcmZhY2UgX1dLUmVz
b3VyY2VMb2FkSW5mbyA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIAogKyAoaW5zdGFuY2V0
eXBlKW5ldyBOU19VTkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NG
aXJzdFBhcnR5LmgKaW5kZXggMTdkNjM4N2UxYTU1OThmNTAxM2Q0ZWI2YzNlNTk1YTQ0NzFjYTcx
Mi4uOTY4NjkwMjhmZGU2MmQ4NTZiYTIyYTQ0M2Y3ODdhNzUwMjdkMGRjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NGaXJzdFBhcnR5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSkKIEBpbnRlcmZhY2UgX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFy
dHkgOiBOU09iamVjdAogCiArIChpbnN0YW5jZXR5cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NUaGlyZFBhcnR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkuaAppbmRleCBkMTgxYWYxMjk2
OTBkNTNlNTk4ZjI0ZDFmZDAwYzFjNDBlYTczNWNhLi4xOTczYWRlNjg0OGUwNjBmMjM0OGE0NjQz
NTRkN2ZhNzdiNThjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJk
UGFydHkuaApAQCAtMjksNyArMjksNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAY2xh
c3MgX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHk7CiAKLVdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpCiBAaW50ZXJmYWNlIF9XS1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NUaGlyZFBhcnR5IDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKW5ldyBOU19V
TkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmgKaW5kZXgg
M2YyMWJlODE5ZmVlMzBiMTVmOWNhNjMwMjVlYzBiNjhjODRhNTMxOS4uZjZkNTNkYjZhNmEyNDg5
MTY3ZjMzNWQzODc4ODJmNDczMWI2ZTE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25Db25m
aWd1cmF0aW9uLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogQGNsYXNzIF9XS1RleHRNYW5pcHVsYXRp
b25FeGNsdXNpb25SdWxlOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKQogQGludGVyZmFjZSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiA6IE5TT2Jq
ZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PF9XS1RleHRNYW5pcHVs
YXRpb25FeGNsdXNpb25SdWxlICo+ICpleGNsdXNpb25SdWxlczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9u
UnVsZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVs
YXRpb25FeGNsdXNpb25SdWxlLmgKaW5kZXggMjBjMTM5ZGUyYWYzNzRjNWZhZjMyNjBhMWZiOGUx
ZWU0YjJiODk2Yi4uYTIxNWEzMTAxOGE5ODNlNmUyMDQ5YjViZDE0M2QxNjQzY2NjNGZhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVs
YXRpb25FeGNsdXNpb25SdWxlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmgKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLRm91
bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKQog
QGludGVyZmFjZSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSA6IE5TT2JqZWN0CiAK
IC0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25JdGVtLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0u
aAppbmRleCA0YmQ4ZDZhMjYzNmMzY2YwYWUzODk1NjgzMmUzZGFkMDNhOTI4MGY3Li4xMjg3N2Yw
ZWVjMzhhMjU0NzA5YjQ5ZTZlMDk4NzY4NTdmOTczNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0u
aApAQCAtMzAsNyArMzAsNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKQogQGludGVyZmFjZSBfV0tUZXh0TWFu
aXB1bGF0aW9uSXRlbSA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZB
SUxBQkxFOwpAQCAtNDQsNyArNDQsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIAogQGVuZAogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbUVycm9yRG9tYWluIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcg
KiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbUVycm9yRG9tYWluIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS1RleHRNYW5pcHVsYXRpb25JdGVtRXJyb3JDb2RlKSB7CiAgICAgX1dLVGV4dE1hbmlwdWxh
dGlvbkl0ZW1FcnJvck5vdEF2YWlsYWJsZSwKQEAgLTUyLDggKzUyLDggQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW1FcnJvckNvZGUpIHsKICAgICBf
V0tUZXh0TWFuaXB1bGF0aW9uSXRlbUVycm9ySW52YWxpZEl0ZW0sCiAgICAgX1dLVGV4dE1hbmlw
dWxhdGlvbkl0ZW1FcnJvckludmFsaWRUb2tlbiwKICAgICBfV0tUZXh0TWFuaXB1bGF0aW9uSXRl
bUVycm9yRXhjbHVzaW9uVmlvbGF0aW9uLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjAp
LCBpb3MoMTQuMCkpOwogCi1XS19FWFRFUk4gTlNFcnJvclVzZXJJbmZvS2V5IGNvbnN0IF9XS1Rl
eHRNYW5pcHVsYXRpb25JdGVtRXJyb3JJdGVtS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4gTlNFcnJvclVzZXJJbmZvS2V5
IGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25JdGVtRXJyb3JJdGVtS2V5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVs
YXRpb25Ub2tlbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRN
YW5pcHVsYXRpb25Ub2tlbi5oCmluZGV4IDMzM2UzM2UxMGZlZjI2Zjc0YjllNDA4ZDc0N2EyOGVm
N2FiYmJmNTAuLjlmZDBjMjZhZWZkZmE0MzFhYjhiNWMxMzlkYTRkNzUwNmJhY2E5ODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0
aW9uVG9rZW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4
dE1hbmlwdWxhdGlvblRva2VuLmgKQEAgLTI4LDEyICsyOCwxMiBAQAogCiBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0
aW9uVG9rZW5Vc2VySW5mb0RvY3VtZW50VVJMS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBf
V0tUZXh0TWFuaXB1bGF0aW9uVG9rZW5Vc2VySW5mb1RhZ05hbWVLZXkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLVdLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlblVzZXJJbmZvUm9sZUF0dHJpYnV0ZUtl
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuVXNlcklu
Zm9Eb2N1bWVudFVSTEtleSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuVXNl
ckluZm9UYWdOYW1lS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7
CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW5Vc2Vy
SW5mb1JvbGVBdHRyaWJ1dGVLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tl
blVzZXJJbmZvVmlzaWJpbGl0eUtleSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKQogQGludGVyZmFjZSBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4gOiBOU09iamVjdAog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICppZGVudGlm
aWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Vz
ZXJDb250ZW50V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tV
c2VyQ29udGVudFdvcmxkLmgKaW5kZXggODcwMzJkN2YxNmVkMjI5NWEyNzgyMjUxODAyZWJmNTkx
MTgxNTA1Yy4uZDVkYzU2ZWI4MWIxZjFiYjcyZDFjM2Y0ZTAwNWZmZGVhZGVkMjJlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50V29y
bGQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRl
bnRXb3JsZC5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
LVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tDb250ZW50V29ybGQiLCBt
YWNvcygxMC4xMiwgV0tfTUFDX1RCQSksIGlvcygxMC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNT
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tDb250ZW50V29ybGQiLCBtYWNvcygxMC4x
MiwgMTEuMCksIGlvcygxMC4wLCAxNC4wKSkKIEBpbnRlcmZhY2UgX1dLVXNlckNvbnRlbnRXb3Js
ZCA6IE5TT2JqZWN0CiAKICsgKF9XS1VzZXJDb250ZW50V29ybGQgKil3b3JsZFdpdGhOYW1lOihO
U1N0cmluZyAqKW5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyU3R5bGVTaGVldC5oCmluZGV4IDI5NTc3Y2RhYzQxZjJlM2QwMDYxZDdmMDAw
ZjM1ODQ2OWIxMTc2OWMuLjQ5NzRlMTQyMTRlMmJiM2U5ODIzMjViODg1YmFiMzNlNTRmODM5OTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5
bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2Vy
U3R5bGVTaGVldC5oCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tVc2VyU3R5bGVMZXZlbCkgewogICAgIF9XS1Vz
ZXJTdHlsZVVzZXJMZXZlbCwKICAgICBfV0tVc2VyU3R5bGVBdXRob3JMZXZlbAotfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpCiBAaW50ZXJmYWNlIF9XS1VzZXJTdHlsZVNoZWV0IDog
TlNPYmplY3QgPE5TQ29weWluZz4KQEAgLTQ4LDcgKzQ4LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3Vy
Y2U6KE5TU3RyaW5nICopc291cmNlIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1l
T25seTsKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJj
ZSBmb3JXS1dlYlZpZXc6KG51bGxhYmxlIFdLV2ViVmlldyAqKXdlYlZpZXcgZm9yTWFpbkZyYW1l
T25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihu
dWxsYWJsZSBOU0FycmF5PE5TU3RyaW5nICo+ICopaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3Mg
ZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KG51bGxhYmxlIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBiYXNlVVJMOihudWxsYWJsZSBOU1VSTCAqKWJh
c2VVUkwgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIGNvbnRlbnRXb3JsZDoobnVsbGFi
bGUgV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNv
dXJjZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yV0tXZWJWaWV3OihudWxsYWJsZSBXS1dlYlZpZXcg
Kil3ZWJWaWV3IGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBpbmNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczoobnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWluY2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihudWxsYWJs
ZSBOU0FycmF5PE5TU3RyaW5nICo+ICopZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgYmFzZVVS
TDoobnVsbGFibGUgTlNVUkwgKiliYXNlVVJMIGxldmVsOihfV0tVc2VyU3R5bGVMZXZlbClsZXZl
bCBjb250ZW50V29ybGQ6KG51bGxhYmxlIFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmgKaW5kZXggMzkzNDg2OWMz
NjM3MTA3YWJiNzY4M2Y3MjRmYjBjZTU3ZDViZDJlNC4uNTY4OGFmNDFiYTViNGRkOWUyZGI4YmY5
N2I5YzkwZTE1MWFjYTY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRp
b25SZXNwb25zZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpCiBAaW50ZXJmYWNl
IF9XS1dlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UgOiBOU09iamVjdAogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpuYW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLmgKaW5kZXggNDVjZTI3MjY2NjE1NGEyYmY1YTEwYmU4OTcyNjZjY2Jj
MWM4ZDhkNi4uOTQwOTBjNDJkMTNmZDJmNDRjMjMxYWQxZDNhNTM3ZDRjMWY2NTZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5oCkBAIC0zOSw3ICszOSw3IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpIHsKICAgICBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsUmVzdWx0VW5hdmFpbGFibGUsCiAgICAgX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZCwKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
UmVzdWx0RGlkTm90UHJlc2VudCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbFVwZGF0ZSkgewogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVNdWx0
aXBsZU5GQ1RhZ3NQcmVzZW50LApAQCAtNTAsNDggKzUwLDQ4IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGUpIHsKICAgICBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTEFFcnJvciwKICAgICBfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsVXBkYXRlTEFFeGNsdWRlQ3JlZGVudGlhbHNNYXRjaGVkLAogICAgIF9XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVcGRhdGVMQU5vQ3JlZGVudGlhbCwKLX0gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
V2ViQXV0aGVudGljYXRpb25SZXN1bHQpIHsKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblJlc3Vs
dFN1Y2NlZWRlZCwKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdEZhaWxlZCwKLX0gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLV2ViQXV0aGVudGljYXRpb25UcmFuc3BvcnQpIHsKICAgICBfV0tXZWJB
dXRoZW50aWNhdGlvblRyYW5zcG9ydFVTQiwKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblRyYW5z
cG9ydE5GQywKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblRyYW5zcG9ydEludGVybmFsLAotfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tXZWJBdXRoZW50aWNhdGlvblR5cGUpIHsKICAgICBfV0tXZWJBdXRo
ZW50aWNhdGlvblR5cGVDcmVhdGUsCiAgICAgX1dLV2ViQXV0aGVudGljYXRpb25UeXBlR2V0LAot
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kpIHsKICAgICBfV0tM
b2NhbEF1dGhlbnRpY2F0b3JQb2xpY3lBbGxvdywKICAgICBfV0tMb2NhbEF1dGhlbnRpY2F0b3JQ
b2xpY3lEaXNhbGxvdywKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLV2ViQXV0aGVudGljYXRpb25Tb3Vy
Y2UpIHsKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblNvdXJjZUxvY2FsLAogICAgIF9XS1dlYkF1
dGhlbnRpY2F0aW9uU291cmNlRXh0ZXJuYWwsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEu
MCksIGlvcygxNC4wKSk7CiAKIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vNzE1MDkxNDE+IE9w
dGltaXplIHRoZSBkZWxlZ2F0ZSBmb3IgdGhlIEF1dGhlbnRpY2F0aW9uU2VydmljZS5mcmFtZXdv
cmsuCiBAcHJvdG9jb2wgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlIDxOU09iamVj
dD4KIAogQG9wdGlvbmFsCiAKLS0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwgKilwYW5lbCB1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOihfV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsVXBkYXRlKXVwZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbCAqKXBhbmVsIGRpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDooX1dL
V2ViQXV0aGVudGljYXRpb25SZXN1bHQpcmVzdWx0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsICopcGFuZWwgcmVxdWVzdFBJTldpdGhSZW1haW5pbmdSZXRyaWVzOihOU1VJ
bnRlZ2VyKXJldHJpZXMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci0tICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICop
cGFuZWwgc2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2U6KE5TQXJyYXkgPCBfV0tXZWJBdXRoZW50aWNh
dGlvbkFzc2VydGlvblJlc3BvbnNlICo+ICopcmVzcG9uc2VzIHNvdXJjZTooX1dLV2ViQXV0aGVu
dGljYXRpb25Tb3VyY2Upc291cmNlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tXZWJB
dXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lk
KXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgZGVjaWRlUG9saWN5Rm9y
TG9jYWxBdXRoZW50aWNhdG9yV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tMb2Nh
bEF1dGhlbnRpY2F0b3JQb2xpY3kgcG9saWN5KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClwYW5l
bDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGUpdXBkYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CistICh2b2lkKXBhbmVsOihfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxX
aXRoUmVzdWx0OihfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdClyZXN1bHQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwgKilwYW5lbCByZXF1ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6KE5T
VUludGVnZXIpcmV0cmllcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKKy0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBzZWxl
Y3RBc3NlcnRpb25SZXNwb25zZTooTlNBcnJheSA8IF9XS1dlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0
aW9uUmVzcG9uc2UgKj4gKilyZXNwb25zZXMgc291cmNlOihfV0tXZWJBdXRoZW50aWNhdGlvblNv
dXJjZSlzb3VyY2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1dlYkF1dGhlbnRpY2F0
aW9uQXNzZXJ0aW9uUmVzcG9uc2UgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwgKilwYW5lbCBkZWNpZGVQb2xpY3lGb3JMb2NhbEF1dGhlbnRpY2F0b3JXaXRo
Q29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0xvY2FsQXV0aGVudGljYXRvclBvbGljeSBw
b2xpY3kpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlv
cygxNC4wKSk7CiAKIEBlbmQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSkKIEBpbnRlcmZhY2UgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCA6IE5TT2JqZWN0CiAK
IEBwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgd2VhaykgaWQgPF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxEZWxlZ2F0ZT4gZGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCmluZGV4IDU0ZjExNTFhNWE0ZmU2MzEzYTc1MjY2YTMwMTY4OWJjMDAwMDc1
YTguLjk3YjI1NzU2ZjdkMTZlYzM1NDAxYzQ3ZDc5Njc0OTRiNzI3NDk1YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC00MiwxNiArNDIsMTYgQEAgV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9t
aWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5
IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJM
ICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIG5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25F
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBwZXJPcmlnaW5TdG9yYWdlUXVv
dGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmJvdW5kSW50
ZXJmYWNlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzQ2VsbHVsYXJB
Y2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxlZ2FjeVRMU0VuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNEaWN0aW9uYXJ5ICpwcm94eUNvbmZpZ3VyYXRp
b24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmRhdGFDb25u
ZWN0aW9uU2VydmljZVR5cGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByZXZlbnRzU3lzdGVt
SFRUUFByb3h5QXV0aGVudGljYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJlcXVpcmVz
U2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG5ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMS4wKSwgaW9zKDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGZhc3RTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlv
cygxNC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBwZXJPcmlnaW5TdG9y
YWdlUXVvdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmJvdW5kSW50ZXJmYWNl
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzQ2VsbHVsYXJBY2Nlc3MgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IGxlZ2FjeVRMU0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNEaWN0aW9uYXJ5ICpw
cm94eUNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmRhdGFD
b25uZWN0aW9uU2VydmljZVR5cGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByZXZlbnRzU3lzdGVtSFRUUFByb3h5
QXV0aGVudGljYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5l
Y3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLy8gVGhl
c2UgcHJvcGVydGllcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHBlcnNpc3RlbnQgZGF0YSBzdG9yZXMs
IGFuZCB3aWxsIHRocm93CiAvLyBhbiBleGNlcHRpb24gaWYgc2V0IGZvciBub24tcGVyc2lzdGVu
dCBzdG9yZXMuCkBAIC02MiwyMiArNjIsMjIgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5TVVJMICpfcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEu
MykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q2FjaGVTdG9yYWdl
RGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KSBOU1VSTCAq
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNVUkwgKm5ldHdvcmtDYWNoZURpcmVjdG9yeSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdl
RGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICphcHBs
aWNhdGlvbkNhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkp
IE5TU3RyaW5nICphcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICptZWRpYUNhY2hlRGlyZWN0b3J5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICptZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciB0ZXN0U3BlZWRNdWx0
aXBsaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1p
bmF0aW9uT25TeXN0ZW1DaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c1NlcnZl
clByZWNvbm5lY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNlcnZpY2VXb3JrZXJQcm9jZXNz
VGVybWluYXRpb25EZWxheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKm5l
dHdvcmtDYWNoZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqZGV2aWNl
SWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJM
ICphcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3Ry
aW5nICphcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVs
bGFibGUsIGNvcHkpIE5TVVJMICptZWRpYUNhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUs
IGNvcHkpIE5TVVJMICptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdl
ciB0ZXN0U3BlZWRNdWx0aXBsaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRl
cm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c1NlcnZlclByZWNvbm5l
Y3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhTVFNTdG9yYWdlRGlyZWN0b3J5
OikgTlNVUkwgKmhzdHNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBl
bmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVjdG9y
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqYWx0ZXJuYXRpdmVT
ZXJ2aWNlc1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAq
c3RhbmRhbG9uZUFwcGxpY2F0aW9uVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHkpIE5TVVJMICpzdGFuZGFsb25lQXBwbGljYXRpb25VUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMS4wKSwgaW9zKDE0LjApKTsKIAogLy8gVGVzdGluZyBvbmx5LgogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9s
aWNpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9s
aWNpZXMuaAppbmRleCA2Zjg3ZTQyYjIxZWU2OTAxYmY3NjA4OTM4ODRkMjg1OTk1M2E1OWU1Li4y
M2U3ZTdmYWY0ZDYwNDY2ZjM5MmVkMTVjMzNmZjZmZTdkYzIxNTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oCkBA
IC0yOCw3ICsyOCw3IEBACiAKIEBjbGFzcyBXS1dlYnNpdGVEYXRhU3RvcmU7CiAKLVdLX0NMQVNT
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJwYWdlUHJlZmVyZW5jZXMiLCBtYWNv
cygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1Nf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnBhZ2VQcmVmZXJlbmNlcyIsIG1hY29z
KDEwLjEyLjMsIDExLjApLCBpb3MoMTAuMywgMTQuMCkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVQ
b2xpY2llcyA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGNvbnRlbnRC
bG9ja2Vyc0VuYWJsZWQ7CkBAIC0zOCw3ICszOCw3IEBAIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiV0tXZWJwYWdlUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMi4zLCBXS19N
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZVBvcFVwUG9saWN5IHBvcFVwUG9saWN5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHN0cm9uZykgV0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1
aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25h
dG9taWMpIF9XS1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBk
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418310</attachid>
            <date>2021-01-25 11:03:44 -0800</date>
            <delta_ts>2021-01-25 13:36:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220874-20210125110343.patch</filename>
            <type>text/plain</type>
            <size>117799</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTZhZTljNTYyYWI1NTVkNjEzYzI0ODMxZTAxOGUwNGZhOGI3NzRiLi5kMjk4ZTgxMDc3OGVkN2E2
MTNhNTc3MTFjYTEzZGI1OGU0ODg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wMS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVwZGF0ZSBhdmFpbGFiaWxpdHkgYW5ub3RhdGlvbnMgdG8gbWF0Y2ggdGhlIG1h
Y09TIDExLjAgYW5kIGlPUyAxNC4wIEdNIFNES3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDg3NAorICAgICAgICA8cmRhcjovLzczNDc0MzY4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pT
Q29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0UmVmUHJpdmF0ZS5oOgor
CiAyMDIxLTAxLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIE9wdGlvbnM6dXNlQXRNZXRob2QgYmVjYXVzZSBvZiBjb21wYXRpYmlsaXR5IGlzc3Vl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBjNjA5ZTk3OTk4YzE3YWZhNjM3YjVjMTM1MWVmM2IyNGUwMTRiYzk0Li5m
OThmODk3YjgwY2QzZjJkN2Y3MGM1Nzg2ZDA5OTVjNTgxYWNiNmRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYwIEBACisyMDIxLTAxLTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIGF2YWlsYWJpbGl0eSBhbm5vdGF0aW9ucyB0byBtYXRjaCB0aGUgbWFj
T1MgMTEuMCBhbmQgaU9TIDE0LjAgR00gU0RLcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwODc0CisgICAgICAgIDxyZGFyOi8vNzM0NzQzNjg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGVudFdvcmxkLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Vycm9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRSZXN1bHQu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnNQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1BERkNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRnJhbWVUcmVlTm9kZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLSW5wdXREZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yRGVidWdnYWJsZUluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Jlc291cmNlTG9hZEluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25F
eGNsdXNpb25SdWxlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFu
aXB1bGF0aW9uSXRlbS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1h
bmlwdWxhdGlvblRva2VuLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2Vy
Q29udGVudFdvcmxkLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5
bGVTaGVldC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25Bc3NlcnRpb25SZXNwb25zZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oOgorCiAyMDIxLTAxLTIyICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBObyBlcnJv
ciBpcyB2aXNpYmxlIGFmdGVyIHVzZXIgZW50ZXJzIHRoZSBpbmNvcnJlY3QgUElOCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFByaXZhdGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UHJpdmF0ZS5oCmluZGV4IGVlNDAyMDc5MGQx
MWMxZmMzNTliZWJkZTAxM2U3MWZlYTlkZjdjMDYuLjgzOGE5ZGU1MmEyMDEwMTFmMGZjYzVkOGQw
MDNmN2NlYWFiZWYzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
b250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0
UHJpdmF0ZS5oCkBAIC0xMTAsNyArMTEwLDcgQEAKICBAbWV0aG9kCiAgQGFic3RyYWN0IE1hcmsg
dGhpcyBKU0NvbnRleHQgYXMgYW4gSVRNTEtpdCBjb250ZXh0IGZvciB0aGUgcHVycG9zZXMgb2Yg
cmVtb3RlIGluc3BlY3Rpb24gY2FwYWJpbGl0aWVzLgogICovCi0tICh2b2lkKV9zZXRJVE1MRGVi
dWdnYWJsZVR5cGUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlND
X0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldElUTUxEZWJ1Z2dhYmxlVHlwZSBKU0NfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZlByaXZhdGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmUHJpdmF0ZS5oCmluZGV4IDZhZTY0OWVmM2UzOTg0
ZDA4ZWFhYzU4ZGI3ZGE5ZWVhMjE2MjEwMGYuLjFhMzcwZmUzMGE4ZTIxMGYzY2QzYTQzZjliMDVm
NTJjODA1YWY3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250
ZXh0UmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0
UmVmUHJpdmF0ZS5oCkBAIC0xMzYsNyArMTM2LDcgQEAgSlNfRVhQT1JUIHZvaWQgSlNHbG9iYWxD
b250ZXh0U2V0SW5jbHVkZXNOYXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5nRXhjZXB0aW9ucygK
IEBwYXJhbSBmdW5jdGlvbiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gc2V0LCB3aGljaCByZWNl
aXZlcyB0aGUgcHJvbWlzZSBhbmQgcmVqZWN0aW9uIHJlYXNvbiBhcyBhcmd1bWVudHMuCiBAcGFy
YW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUg
YW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3Rv
cmUgYW4gZXhjZXB0aW9uLgogKi8KLUpTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNldFVu
aGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0
UmVmIGZ1bmN0aW9uLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1h
Y29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CitKU19FWFBPUlQgdm9pZCBKU0ds
b2JhbENvbnRleHRTZXRVbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjayhKU0dsb2JhbENvbnRleHRS
ZWYgY3R4LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIAogI2lmZGVmIF9fY3Bs
dXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tDb250ZW50V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nv
bnRlbnRXb3JsZC5oCmluZGV4IGQ4MDA1NjU0ZGQ1ZWI5YzNiMjVhMGVjYjQwNWJhMzc0ZWExODll
NDAuLjc4MjZhYzA1MDU2N2QyMDQ4YmNhMzI5ZWI2YTg4ZDBkY2EwNTY0MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRXb3JsZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRXb3JsZC5oCkBAIC00
MCw3ICs0MCw3IEBAIEZvciBleGFtcGxlOgogLSBJZiB5b3Ugc3RvcmUgYSB2YXJpYWJsZSBpbiBK
YXZhU2NyaXB0IGluIHRoZSBzY29wZSBvZiBhIHBhcnRpY3VsYXIgV0tDb250ZW50V29ybGQgd2hp
bGUgdmlld2luZyBhIHBhcnRpY3VsYXIgd2ViIHBhZ2UgZG9jdW1lbnQsIGFmdGVyIG5hdmlnYXRp
bmcgdG8gYSBuZXcgZG9jdW1lbnQgdGhhdCB2YXJpYWJsZSB3aWxsIGJlIGdvbmUuCiAtIElmIHlv
dSBzdG9yZSBhIHZhcmlhYmxlIGluIEphdmFTY3JpcHQgaW4gdGhlIHNjb3BlIG9mIGEgcGFydGlj
dWxhciBXS0NvbnRlbnRXb3JsZCBpbiBvbmUgV0tXZWJWaWV3LCB0aGF0IHZhcmlhYmxlIHdpbGwg
bm90IGV4aXN0IGluIHRoZSBzYW1lIHdvcmxkIGluIGFub3RoZXIgV0tXZWJWaWV3LgogKi8KLVdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpCiBAaW50ZXJmYWNlIFdLQ29u
dGVudFdvcmxkIDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKW5ldyBOU19VTkFWQUlMQUJM
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9y
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oCmluZGV4IGEw
YThhN2RiZWM4ZWRhMDkyOGJiZmM1NmQ2NTU4N2JmYzNlN2Q1NWIuLjNmYzA2ZTM1MTI0MDAzNTNi
ZGQwNmU5YjM3YTcyZjY2M2IzOTM3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRXJyb3IuaApAQCAtNjAsOSArNjAsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBXS0Vycm9yQ29kZSkgewogICAgIFdLRXJyb3JDb250ZW50UnVsZUxpc3RTdG9yZVZlcnNp
b25NaXNtYXRjaCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKSwKICAg
ICBXS0Vycm9yQXR0cmlidXRlZFN0cmluZ0NvbnRlbnRGYWlsZWRUb0xvYWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSksCiAgICAgV0tFcnJvckF0dHJpYnV0ZWRTdHJp
bmdDb250ZW50TG9hZFRpbWVkT3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3Mo
MTMuMCkpLAotICAgIFdLRXJyb3JKYXZhU2NyaXB0SW52YWxpZEZyYW1lVGFyZ2V0IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSksCi0gICAgV0tFcnJv
ck5hdmlnYXRpb25BcHBCb3VuZERvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpLAotICAgIFdLRXJyb3JKYXZhU2NyaXB0QXBwQm91bmREb21h
aW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwK
KyAgICBXS0Vycm9ySmF2YVNjcmlwdEludmFsaWRGcmFtZVRhcmdldCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDExLjApLCBpb3MoMTQuMCkpLAorICAgIFdLRXJyb3JOYXZpZ2F0aW9uQXBwQm91bmRE
b21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKSwKKyAgICBXS0Vy
cm9ySmF2YVNjcmlwdEFwcEJvdW5kRG9tYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSksCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7
CiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRmluZENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0ZpbmRDb25maWd1cmF0aW9uLmgKaW5kZXggZTliZDJmNzI4MjQ5
MTk4NGYyZDM3OTQ2OWI0NTFkZGZjNzIzZWI2ZC4uY2U4YjliNDQ2Y2FhM2NiMmQzYjFmNjU2MGE4
NTliNDJiNzJjZDQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRmluZENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tGaW5kQ29uZmlndXJhdGlvbi5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBp
b3MoMTMuNCkpCiBAaW50ZXJmYWNlIFdLRmluZENvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlND
b3B5aW5nPgogCiAvKiBAYWJzdHJhY3QgVGhlIGRpcmVjdGlvbiB0byBzZWFyY2ggZnJvbSB0aGUg
Y3VycmVudCBzZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0ZpbmRSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0ZpbmRSZXN1bHQuaAppbmRleCBiMWQ5ZjM3M2FiODhiYmU5MDE2OTQ5YTg1MzBiMmE4MmQ3
NmE4Y2Q1Li4zMjkzMDc4YWM1NzVlMmRiNTk1YzEzZjlmM2ExZjNkN2IyOGVhMTdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGaW5kUmVzdWx0LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRmluZFJlc3VsdC5oCkBAIC0y
Nyw3ICsyNyw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpCiBAaW50ZXJmYWNlIFdLRmluZFJlc3VsdCA6
IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIC0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxB
QkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJh
bWVJbmZvUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJh
bWVJbmZvUHJpdmF0ZS5oCmluZGV4IGViOGMyZGZhYmIxMWYwYTE1MmZkZWYxZWM0M2RlODFhZjU2
NTc3N2EuLmE0ZGZlZmY1MTI4Njg4MjczMzc3Y2NjNzlhNTNmMmNmNzU1OTFjNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2
YXRlLmgKQEAgLTMwLDYgKzMwLDYgQEAKIEBpbnRlcmZhY2UgV0tGcmFtZUluZm8gKFdLUHJpdmF0
ZSkKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5LCBub25udWxsKSBfV0tG
cmFtZUhhbmRsZSAqX2hhbmRsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSwgbnVsbGFibGUpIF9X
S0ZyYW1lSGFuZGxlICpfcGFyZW50RnJhbWVIYW5kbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgY29weSwgbnVsbGFibGUpIF9XS0ZyYW1lSGFuZGxlICpfcGFyZW50RnJhbWVIYW5kbGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3Jl
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tp
ZVN0b3JlUHJpdmF0ZS5oCmluZGV4IGQxYzgyNzhjYzJiZDlmYzc1NWUzOWIwOGZkYTVjYWRhYTE5
OTAyNTkuLjdlMTk0M2VmMjhlN2IzMjRjYTU4ZDFlMTFiZWVlNDdjYTBlYWZlNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZVBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29v
a2llU3RvcmVQcml2YXRlLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS0hU
VFBDb29raWVTdG9yZS5oPgogCiBAaW50ZXJmYWNlIFdLSFRUUENvb2tpZVN0b3JlIChXS1ByaXZh
dGUpCi0tICh2b2lkKV9nZXRDb29raWVzRm9yVVJMOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU0hUVFBDb29raWUgKj4gKikpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKHZvaWQpX2dldENvb2tpZXNGb3JVUkw6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShOU0FycmF5PE5TSFRUUENvb2tpZSAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogLSAodm9pZClfc2V0Q29v
a2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpcG9saWN5IGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfZmx1c2hD
b29raWVzVG9EaXNrV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IDk5MWZmZjYxYzE3MGUzNjZhMjlhZTJl
ZTc3YWUyMzE1YjVlOTdiZWEuLmY4N2E1ZWY0YjllY2EyMjUwNDkzYmM1ODJkNzE0YmQzMjZlZTJm
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0xNjcsNyArMTY3LDcgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpIHsKICBAcGFyYW0gY2hhbGxl
bmdlIFRoZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCiAgQHBhcmFtIGRlY2lzaW9uSGFuZGxl
ciBUaGUgZGVjaXNpb24gaGFuZGxlciB5b3UgbXVzdCBpbnZva2UgdG8gcmVzcG9uZCB0byBpbmRp
Y2F0ZSB3aGV0aGVyIG9yIG5vdCB0byBjb250aW51ZSB3aXRoIHRoZSBjb25uZWN0aW9uIGVzdGFi
bGlzaG1lbnQuCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxs
ZW5nZSBzaG91bGRBbGxvd0RlcHJlY2F0ZWRUTFM6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIHNob3VsZEFs
bG93RGVwcmVjYXRlZFRMUzoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIC8qCiAgQGFic3RyYWN0IENhbGxl
ZCBhZnRlciB1c2luZyBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBmNmM0N2E1YTU5M2U5YWE0NTYxMDkyOTFkYTdhNjU0
MWM0ODljNTRlLi5kMDFlZjYxNmQwZmRjNDBmYmIwNDhiMzY2NmU2OTdkODhiMzQ1OTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCkBAIC04NSw4ICs4NSw4IEBAIHN0YXRpYyBjb25z
dCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lC
ZWNvbWVEb3dubG9hCiAKIC0gKE5TRGF0YSAqKV93ZWJDcnlwdG9NYXN0ZXJLZXlGb3JXZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3OwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlICopY2hhbGxlbmdlIHNob3VsZEFsbG93TGVnYWN5VExTOih2b2lkICheKShCT09MKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROZWdv
dGlhdGVNb2Rlcm5UTFM6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2Ug
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2Ugc2hvdWxkQWxsb3dM
ZWdhY3lUTFM6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZE5lZ290aWF0ZU1vZGVyblRMUzooTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSAqKWNoYWxsZW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51
RGlkQ3JlYXRlRG93bmxvYWQ6KFdLRG93bmxvYWQgKilkb3dubG9hZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCkBAIC0xMDcsMTEgKzEwNywx
MSBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjb250ZW50UnVsZUxpc3RXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVu
dGlmaWVyIHBlcmZvcm1lZEFjdGlvbjooX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uICopYWN0aW9u
IGZvclVSTDooTlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdlYkNvbnRlbnRQ
cm9jZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbjooX1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
KXJlYXNvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGluRnJhbWU6KFdLRnJhbWVJbmZv
ICopZnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGluRnJhbWU6KFdL
RnJhbWVJbmZvICopZnJhbWUgd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ29tbWl0TG9hZFdpdGhSZXF1ZXN0OihOU1VSTFJl
cXVlc3QgKilyZXF1ZXN0IGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbExvYWRXaXRoUmVxdWVzdDooTlNVUkxSZXF1
ZXN0ICopcmVxdWVzdCBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIHdpdGhFcnJvcjooTlNF
cnJvciAqKWVycm9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlz
aExvYWRXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBpbkZyYW1lOihXS0ZyYW1l
SW5mbyAqKWZyYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkV2l0aFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgaW5GcmFt
ZTooV0tGcmFtZUluZm8gKilmcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3Mo
MTQuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgaW5GcmFtZToo
V0tGcmFtZUluZm8gKilmcmFtZSB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWRDb21taXRMb2FkV2l0aFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJl
cXVlc3QgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRGYWlsTG9hZFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGluRnJhbWU6
KFdLRnJhbWVJbmZvICopZnJhbWUgd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTG9hZFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKily
ZXF1ZXN0IGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMS4wKSwgaW9zKDE0LjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRMb2FkRm9yUXVpY2tMb29rRG9jdW1l
bnRJbk1haW5GcmFtZVdpdGhGaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZSB1dGk6KE5TU3Ry
aW5nICopdXRpOwpAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25S
ZXNwb25zZVBvbGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hCiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGJhY2tGb3J3YXJkTGlzdEl0ZW1B
ZGRlZDooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbUFkZGVkIHJlbW92ZWQ6KE5TQXJyYXk8
V0tCYWNrRm9yd2FyZExpc3RJdGVtICo+ICopaXRlbXNSZW1vdmVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOwogI2VuZGlmCiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0
ZW0gKilpdGVtIGluUGFnZUNhY2hlOihCT09MKWluUGFnZUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtICopaXRlbSBpblBhZ2VDYWNoZTooQk9PTClpblBhZ2VDYWNoZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTQuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JTT0F1dGhvcml6YXRpb25Mb2FkV2l0aEN1
cnJlbnRQb2xpY3k6KF9XS1NPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kpcG9saWN5IGZvckV4dGVu
c2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9X
S1NPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kgcG9saWN5KSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIAogQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVy
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5l
bFBhcmFtZXRlcnNQcml2YXRlLmgKaW5kZXggN2NkNDQxYzJjZTJlNTgwNmNmMzRkOGMwMTI5YjEx
ZTkxNTAxNGFkMC4uZTM3MzJhMjBkZWZjMDQ0YjZlNzZjODhkNGExMjY2ZWFhOWQ0MzZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFy
YW1ldGVyc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0ZS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqX2Fj
Y2VwdGVkTUlNRVR5cGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TU3RyaW5nICo+ICpfYWNj
ZXB0ZWRGaWxlRXh0ZW5zaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAq
X2FsbG93ZWRGaWxlRXh0ZW5zaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxOU1N0cmlu
ZyAqPiAqX2FsbG93ZWRGaWxlRXh0ZW5zaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjAp
KTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQREZDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQREZDb25maWd1cmF0aW9uLmgKaW5kZXggMzgwZTA2MzQ4OWRiZTBiZmY4YmQ4Nzc5ZjA5
MTA2MmI5YTEyMDFlYi4uNWM1Mjc2YjQ2OWJjMmNjYmYxNmM0ZDQ5N2I1YmUwMzRmNTAwODc0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUERGQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1BERkNv
bmZpZ3VyYXRpb24uaApAQCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKQogQGludGVy
ZmFjZSBXS1BERkNvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiAvKiEgQGFi
c3RyYWN0IFRoZSByZWN0IHRvIGNhcHR1cmUgaW4gd2ViIHBhZ2UgY29vcmRpbmF0ZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4
IGNkNzU3NzAyZjFkNzY5ZjcwNzNlOGY2ZjZhMGE1ZTQ0ZmU4MjA5NWQuLmNjZGVhY2UxM2Q1NzFi
ZWI3NTQzMWIxOGRmOTFkNjUxYzg4NzJiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaApAQCAtNzMsNiArNzMsNiBAQCBXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIHBsdWdJbnNFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJQbHVnLWlucyBhcmUgbm8g
bG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEwLCAxMC4xNSkpOwogI2VuZGlmCiAKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVE
KCJVc2UgV0tXZWJQYWdlUHJlZmVyZW5jZXMuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgdG8gZGlz
YWJsZSBjb250ZW50IEphdmFTY3JpcHQgb24gYSBwZXItbmF2aWdhdGlvbiBiYXNpcyIsIG1hY29z
KDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgamF2YVNjcmlwdEVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBX
S1dlYlBhZ2VQcmVmZXJlbmNlcy5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCB0byBkaXNhYmxlIGNv
bnRlbnQgSmF2YVNjcmlwdCBvbiBhIHBlci1uYXZpZ2F0aW9uIGJhc2lzIiwgbWFjb3MoMTAuMTAs
IDExLjApLCBpb3MoOC4wLCAxNC4wKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMWEy
YTYxYzZkMDBmNzFiMDMyNGFkODBhYTNkMjc2MTEyMzc4ZWFlNi4uZjA2OTFmZDU3NTA0ZjNjYTgx
MWU3NGIwZDBhMzllM2Q3OGE4ZDQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTgwLDcgKzgwLDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGht
KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBY2NlbGVyYXRlZERyYXdpbmdF
bmFibGVkOikgQk9PTCBfYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldERpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQ6KSBCT09MIF9kaXNwbGF5TGlzdERyYXdpbmdF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVk
OikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXROZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3M6KSBCT09MIF9uZWVkc0luQXBwQnJv
d3NlclByaXZhY3lRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE5lZWRzSW5B
cHBCcm93c2VyUHJpdmFjeVF1aXJrczopIEJPT0wgX25lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1
aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVk
OikgQk9PTCBfYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQ6KSBCT09MIF90ZXh0QXV0b3NpemluZ0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxl
ZDopIEJPT0wgX3N1YnBpeGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwpAQCAtMTYwLDEyICsxNjAsMTIgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrczop
IEJPT0wgX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCksIGlvcygxMy4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJdHBE
ZWJ1Z01vZGVFbmFibGVkOikgQk9PTCBfaXRwRGVidWdNb2RlRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldE1lZGlhU291cmNlRW5hYmxlZDopIEJPT0wgX21lZGlhU291cmNlRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTMuMCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2VjdXJlQ29udGV4dENoZWNrc0VuYWJsZWQ6KSBCT09MIF9zZWN1
cmVDb250ZXh0Q2hlY2tzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVt
b3RlUGxheWJhY2tFbmFibGVkOikgQk9PTCBfcmVtb3RlUGxheWJhY2tFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJBdWRpb0VuYWJsZWQ6KSBCT09MIF93ZWJBdWRpb0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcyhXS19JT1NfVEJBKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZDopIEJPT0wgX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOikgQk9PTCBfcmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Vy
dmljZVdvcmtlckVudGl0bGVtZW50RGlzYWJsZWRGb3JUZXN0aW5nOikgQk9PTCBfc2VydmljZVdv
cmtlckVudGl0bGVtZW50RGlzYWJsZWRGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRTZWN1cmVDb250ZXh0Q2hlY2tzRW5hYmxlZDopIEJPT0wgX3NlY3VyZUNvbnRleHRD
aGVja3NFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZW1vdGVQbGF5YmFja0VuYWJsZWQ6
KSBCT09MIF9yZW1vdGVQbGF5YmFja0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NS40KSwgaW9zKDEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdlYkF1
ZGlvRW5hYmxlZDopIEJPT0wgX3dlYkF1ZGlvRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0KSwgaW9zKDEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOikgQk9PTCBfYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEzLjQpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJs
ZWQ6KSBCT09MIF9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnREaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09MIF9z
ZXJ2aWNlV29ya2VyRW50aXRsZW1lbnREaXNhYmxlZEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVFbmFibGVkOikgQk9PTCBfYWNjZXNzaWJpbGl0
eUlzb2xhdGVkVHJlZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNikpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOikg
Qk9PTCBfc3BlZWNoUmVjb2duaXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6KSBCT09MIF9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKQEAgLTE4NSw3ICsxODUsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFNob3VsZFByaW50QmFja2dyb3VuZHM6KSBCT09MIF9zaG91bGRQcmludEJh
Y2tncm91bmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0V2ViU2VjdXJpdHlFbmFibGVkOikgQk9PTCBfd2ViU2VjdXJp
dHlFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZDop
IEJPT0wgX3VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUb3BO
YXZpZ2F0aW9uVG9EYXRhVVJMc0FsbG93ZWQ6KSBCT09MIF90b3BOYXZpZ2F0aW9uVG9EYXRhVVJM
c0FsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRvcE5hdmlnYXRpb25Ub0Rh
dGFVUkxzQWxsb3dlZDopIEJPT0wgX3RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzQWxsb3dlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZzopIEJPT0wgX3N1cHByZXNzZXNJbmNy
ZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0
aW9uRW5hYmxlZDopIEJPT0wgX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZDop
IEJPT0wgX2FydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggZDQwMzcxMzZl
MDZiMjYxNzQ4NWM4MmFjZGI3ZDcxZDMxZDk3NTFkMi4uOTE1N2UzNTY0MDg0NDE0MGM2ZDkwMjA5
OWY0N2QzYzdmOWFjOTk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
ICpfY29uZmlndXJhdGlvbjsKIAogLSAodm9pZClfc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhv
c3QgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJzaXRlRGF0YVN0b3Jl
Ll9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46Zm9ySG9zdDoiLCBtYWNvcygxMC4xMCwgV0tfTUFD
X1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldENhbkhhbmRsZUhUVFBT
U2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkIiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3MoOS4w
LCBXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZh
bHVhdGlvbjooQk9PTCl2YWx1ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9u
RW5hYmxlZCIsIG1hY29zKDEwLjExLCAxMC4xNS40KSwgaW9zKDkuMCwgMTMuNCkpOwogLSAodm9p
ZClfc2V0Q29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpcG9saWN5
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLSFRUUENvb2tpZVN0b3JlLl9z
ZXRDb29raWVBY2NlcHRQb2xpY3k6Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTAsIFdL
X01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CiAKIC0gKGlkKV9vYmplY3RGb3JCdW5k
bGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyOwpAQCAtNzYsNyArNzYsNyBAQAogLSAo
dm9pZClfYXV0b21hdGlvbkNhcGFiaWxpdGllc0RpZENoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKHZvaWQpX3NldEF1dG9tYXRpb25TZXNzaW9uOihf
V0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwg
c2V0dGVyPV9zZXRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfamF2
YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBz
ZXR0ZXI9X3NldEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OikgTlNVUkwgKl9qYXZh
U2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
LjQpLCBpb3MoMTMuNCkpOwogCiAtICh2b2lkKV9hZGRTdXBwb3J0ZWRQbHVnaW46KE5TU3RyaW5n
ICopIGRvbWFpbiBuYW1lZDooTlNTdHJpbmcgKikgbmFtZSB3aXRoTWltZVR5cGVzOiAoTlNTZXQ8
TlNTdHJpbmcgKj4gKikgbWltZVR5cGVzIHdpdGhFeHRlbnNpb25zOiAoTlNTZXQ8TlNTdHJpbmcg
Kj4gKikgZXh0ZW5zaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0KSwgaW9zKDEyLjApKTsKQEAgLTEwNyw4ICsxMDcsOCBAQAogLSAoTlNVSW50ZWdlcilf
bWF4aW11bVN1c3BlbmRlZFBhZ2VDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOwogLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlQ2FwYWNpdHkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKE5TVUludGVnZXIpX3By
b2Nlc3NDYWNoZVNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7
Ci0tICh2b2lkKV9jbGVhcldlYlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0VXNlU2VwYXJhdGVTZXJ2
aWNlV29ya2VyUHJvY2VzczooQk9PTClmb3JjZVNlcnZpY2VXb3JrZXJQcm9jZXNzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9j
bGVhcldlYlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3Mo
MTMuNCkpOworLSAodm9pZClfc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzczooQk9P
TClmb3JjZVNlcnZpY2VXb3JrZXJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUu
NCksIGlvcygxMy40KSk7CiAtIChwaWRfdClfZ3B1UHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBv
bmx5LiBSZXR1cm5zIHdlYiBwcm9jZXNzZXMgcnVubmluZyB3ZWIgcGFnZXMgKGRvZXMgbm90IGlu
Y2x1ZGUgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHNlcnZpY2Ugd29ya2VycykKQEAgLTExOCw3ICsx
MTgsNyBAQAogKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKICsgKHZvaWQpX3NldExpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLS0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNV
UkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJW
aWV3Ll9wcmVjb25uZWN0VG9TZXJ2ZXIiLCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9z
KDExLjMsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwg
KilzZXJ2ZXJVUkwgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3
Ll9wcmVjb25uZWN0VG9TZXJ2ZXIiLCBtYWNvcygxMC4xMy40LCAxMC4xNS40KSwgaW9zKDExLjMs
IDEzLjQpKTsKIAogLy8gVGVzdCBvbmx5LgogLSAodm9pZClfZ2V0QWN0aXZlUGFnZXNPcmlnaW5z
SW5XZWJQcm9jZXNzRm9yVGVzdGluZzoocGlkX3QpcGlkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKQEAgLTEyNywxMCArMTI3LDEwIEBACiBA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdF
bmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkOikgQk9P
TCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBh
cnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMi4z
LCAxMC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIAogLy8gVGVzdCBvbmx5LgotLSAodm9pZClf
c2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0aW5nV2l0aEZpcnN0UGFydHk6KE5TVVJM
ICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihOU1VSTCAqKXRoaXJkUGFydHlVUkwgc2hvdWxk
U2NoZWR1bGVOb3RpZmljYXRpb246KEJPT0wpc2hvdWxkU2NoZWR1bGVOb3RpZmljYXRpb24gY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9n
YXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoc2l6ZV90KV9udW1iZXJP
ZkNvbm5lY3RlZEdhbWVwYWRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoc2l6ZV90KV9udW1iZXJPZkNvbm5lY3RlZEhJ
REdhbWVwYWRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwotLSAoc2l6ZV90KV9udW1iZXJPZkNvbm5lY3RlZEdhbWVDb250cm9s
bGVyRnJhbWV3b3JrR2FtZXBhZHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRVc2VzT25seUhJREdhbWVw
YWRQcm92aWRlckZvclRlc3Rpbmc6KEJPT0wpdXNlc0hJRFByb3ZpZGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZWVkUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3RpbmdXaXRoRmlyc3RQYXJ0eTooTlNVUkwgKilmaXJz
dFBhcnR5VVJMIHRoaXJkUGFydHk6KE5TVVJMICopdGhpcmRQYXJ0eVVSTCBzaG91bGRTY2hlZHVs
ZU5vdGlmaWNhdGlvbjooQk9PTClzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbiBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciAgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKKy0gKHZvaWQpX2dhcmJhZ2VDb2xsZWN0SmF2
YVNjcmlwdE9iamVjdHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlv
cygxNC4wKSk7CistIChzaXplX3QpX251bWJlck9mQ29ubmVjdGVkR2FtZXBhZHNGb3JUZXN0aW5n
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CistIChzaXplX3QpX251
bWJlck9mQ29ubmVjdGVkSElER2FtZXBhZHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTEuMCksIGlvcyhXS19JT1NfVEJBKSk7CistIChzaXplX3QpX251bWJlck9mQ29ubmVjdGVk
R2FtZUNvbnRyb2xsZXJGcmFtZXdvcmtHYW1lcGFkc0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpX3NldFVzZXNPbmx5SElER2FtZXBh
ZFByb3ZpZGVyRm9yVGVzdGluZzooQk9PTCl1c2VzSElEUHJvdmlkZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAppbmRleCA2M2ExZTllYTM4NzM0
Nzk5MTkyYTJhY2RmMDI2ODQzYTRkMDk0NGY3Li43NTk0N2QxN2NmNWMwZDI1MDMyYjdkYWFiODg2
ZjRkZDU1YjM3OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tTY3JpcHRNZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLU2NyaXB0TWVzc2FnZS5oCkBAIC01Niw3ICs1Niw3IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBjb3B5KSBOU1N0cmluZyAqbmFtZTsKIAogLyohIEBhYnN0cmFjdCBUaGUgY29udGVudCB3b3Js
ZCBmcm9tIHdoaWNoIHRoZSBtZXNzYWdlIHdhcyBzZW50LiAqLwotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBXS0NvbnRlbnRXb3JsZCAqd29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgV0tDb250ZW50V29ybGQgKndvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEu
MCksIGlvcygxNC4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZUhhbmRsZXJXaXRoUmVwbHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJl
cGx5LmgKaW5kZXggOTlmYzAxNGQ4ZmJjZWIyNzg1MDkyOWFhM2NlZmQ2NmI3MjJhOWE0Ni4uYjg0
N2FmMzFkYmVkYmEzMDZjODc5NjE2YWVmYzE3NmIwZGUyMGY3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZUhhbmRsZXJXaXRoUmVw
bHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNz
YWdlSGFuZGxlcldpdGhSZXBseS5oCkBAIC04Nyw3ICs4Nyw3IEBAIG1ldGhvZCBmb3IgcmVjZWl2
aW5nIG1lc3NhZ2VzIGZyb20gSmF2YVNjcmlwdCBydW5uaW5nIGluIGEgd2VicGFnZSBhbmQgcmVw
bHlpbmcKICAgIC0gVGhlIEphdmFTY3JpcHQgcHJvbWlzZSBpcyBmdWxmaWxsZWQgd2l0aCB0aGUg
dmFsdWUgNDIuCiAgICAtIEphdmFTY3JpcHQgZXhlY3V0aW9uIGNvbnRpbnVlcyBhbmQgdGhlIHZh
bHVlIDQyIGlzIHJldHVybmVkLgogICovCi0tICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjoo
V0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2
ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UgcmVwbHlIYW5kbGVyOih2
b2lkICheKShpZCBfTnVsbGFibGUgcmVwbHksIE5TU3RyaW5nICpfTnVsbGFibGUgZXJyb3JNZXNz
YWdlKSlyZXBseUhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250
ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVz
c2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZSByZXBseUhhbmRsZXI6KHZvaWQgKF4pKGlk
IF9OdWxsYWJsZSByZXBseSwgTlNTdHJpbmcgKl9OdWxsYWJsZSBlcnJvck1lc3NhZ2UpKXJlcGx5
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQGVuZAog
CiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGNlMTkwNTY3ZWI3NzRl
ODA1ZDYyMThhMDc4NzJiYjNhOGQ3NjIzMGYuLjkxYmVlMzRlZDBiNjM5ODBiNTVhMWFhYmFhYTg4
YjkyODA0MzNjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtNzMsMTQgKzczLDE0IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0F1dG9wbGF5RXZlbnQpIHsKICAgICBfV0tBdXRvcGxheUV2
ZW50RGlkUGxheU1lZGlhV2l0aFVzZXJHZXN0dXJlLAogICAgIF9XS0F1dG9wbGF5RXZlbnREaWRB
dXRvcGxheU1lZGlhUGFzdFRocmVzaG9sZFdpdGhvdXRVc2VySW50ZXJmZXJlbmNlLAogICAgIF9X
S0F1dG9wbGF5RXZlbnRVc2VyRGlkSW50ZXJmZXJlV2l0aFBsYXliYWNrLAotfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTQuMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLQXV0b3BsYXlFdmVudEZsYWdzKSB7CiAgICAgX1dLQXV0b3BsYXlFdmVudEZs
YWdzTm9uZSA9IDAsCiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8gPSAxIDw8IDAs
CiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzUGxheWJhY2tXYXNQcmV2ZW50ZWQgPSAxIDw8IDEs
CiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzTWVkaWFJc01haW5Db250ZW50ID0gMSA8PCAyLAot
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTQuMCkpOwogCiB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tGb2N1c0RpcmVjdGlvbikgewogICAgIF9XS0ZvY3VzRGlyZWN0
aW9uQmFja3dhcmQsCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlV2ViQXBwbGljYXRpb25D
YWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilzZWN1cml0eU9y
aWdpbiBjdXJyZW50UXVvdGE6KHVuc2lnbmVkIGxvbmcgbG9uZyljdXJyZW50UXVvdGEgdG90YWxC
eXRlc05lZWRlZDoodW5zaWduZWQgbG9uZyBsb25nKXRvdGFsQnl0ZXNOZWVkZWQgZGVjaXNpb25I
YW5kbGVyOih2b2lkICheKSh1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGEpKWRlY2lzaW9uSGFu
ZGxlcjsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1l
OihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAtICh2b2lkKV93ZWJWaWV3Q2xvc2U6
KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKV93ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lOihXS1dlYlZpZXcgKil3ZWJWaWV3OwpAQCAtMTE4LDcgKzExOCw3IEBAIHN0cnVj
dCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3RGlkU2hvd1NhZmVCcm93c2luZ1dhcm5p
bmc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRMb3NlUG9pbnRlckxvY2s6KFdLV2ViVmll
dyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlk
Q2hhbmdlOihCT09MKWhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBzaG91bGRBbGxvd1BERkF0VVJMOihOU1VSTCAqKWZpbGVVUkwgdG9PcGVuRnJvbUZy
YW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09M
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBz
aG91bGRBbGxvd1BERkF0VVJMOihOU1VSTCAqKWZpbGVVUkwgdG9PcGVuRnJvbUZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURvY3VtZW50
U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwogLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwg
aW9zKDEwLjApKTsKQEAgLTE0NiwxMSArMTQ2LDExIEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgdGFrZUZvY3VzOihfV0tGb2N1
c0RpcmVjdGlvbilkaXJlY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDEyLjIpKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5XZWJB
dXRoZW50aWNhdGlvblBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgaW5p
dGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuV2ViQXV0aGVudGljYXRpb25Q
YW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGluaXRpYXRlZEJ5RnJhbWU6
KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVu
dCB3aXRoRmxhZ3M6KF9XS0F1dG9wbGF5RXZlbnRGbGFncylmbGFncyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBoYW5kbGVBdXRvcGxheUV2ZW50OihfV0tBdXRvcGxheUV2ZW50KWV2
ZW50IHdpdGhGbGFnczooX1dLQXV0b3BsYXlFdmVudEZsYWdzKWZsYWdzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxNC4wKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgd2lsbFNoYXJlQWN0aXZpdHlJdGVtczooTlNBcnJheSAqKWFjdGl2aXR5
SXRlbXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsU2hhcmVBY3Rpdml0eUl0ZW1zOihOU0FycmF5ICop
YWN0aXZpdHlJdGVtcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwog
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVU
YXNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lVGFza1ByaXZhdGUuaAppbmRleCBkNjIzMGQyNDZmNWRkMzJkNTRkM2Y1ZjgxNGI1MTFjMjBk
OTk2NTdlLi5kNTljMmIyMjE2Zjc3MGM3NzUzNDZhZDhjY2JlYzkxNTA5ZmJjNjc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZVRhc2tQcml2YXRlLmgKQEAgLTMzLDYgKzMzLDYgQEAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMyksIGlvcygxMS4wKSkKIC0gKHZvaWQpX2RpZFBlcmZvcm1SZWRpcmVjdGlvbjooTlNVUkxS
ZXNwb25zZSAqKXJlc3BvbnNlIG5ld1JlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfcmVxdWVzdE9ubHlJZkNhY2hl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgV0tGcmFtZUluZm8gKl9mcmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBXS0ZyYW1lSW5mbyAqX2ZyYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTEuMCksIGlvcygxNC4wKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKaW5kZXggZjQz
ZjJlNjJmMmNmMmZjYjAwMzNjMWI0ZjA1NDQ2NDYyZjlkMzQ4NS4uMzJkMzg0NzhhYmUwNjVlNzIw
ZWZkMWEyMzY4ZDlhNWJkOWY5M2RmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKQEAgLTc0LDcg
Kzc0LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAgVGhl
IGFib3ZlIHJlc3RyaWN0aW9uIGFwcGxpZXMgdG8gYW55IHR5cGUgb2Ygc2NyaXB0IG1lc3NhZ2Ug
aGFuZGxlciAtIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIgYW5kIFdLU2NyaXB0TWVzc2FnZUhhbmRs
ZXJXaXRoUmVwbHkKICBvYmplY3RzIHdpbGwgY29uZmxpY3Qgd2l0aCBlYWNoIG90aGVyIGlmIHlv
dSB0cnkgdG8gYWRkIHRoZW0gdG8gdGhlIHNhbWUgV0tDb250ZW50V29ybGQgd2l0aCB0aGUgc2Ft
ZSBuYW1lLgogICovCi0tICh2b2lkKWFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOihpZCA8V0tTY3Jp
cHRNZXNzYWdlSGFuZGxlcj4pc2NyaXB0TWVzc2FnZUhhbmRsZXIgY29udGVudFdvcmxkOihXS0Nv
bnRlbnRXb3JsZCAqKXdvcmxkIG5hbWU6KE5TU3RyaW5nICopbmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3NhZ2VI
YW5kbGVyIGNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKil3b3JsZCBuYW1lOihOU1N0cmlu
ZyAqKW5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLyoh
IEBhYnN0cmFjdCBBZGRzIGEgc2NyaXB0IG1lc3NhZ2UgaGFuZGxlci4KICBAcGFyYW0gc2NyaXB0
TWVzc2FnZUhhbmRsZXJXaXRoUmVwbHkgVGhlIHNjcmlwdCBtZXNzYWdlIGhhbmRsZXIgdG8gYWRk
LgpAQCAtOTUsNyArOTUsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3Mo
OC4wKSkKIAogIFJlZmVyIHRvIHRoZSBXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5IGRv
Y3VtZW50YXRpb24gZm9yIGV4YW1wbGVzIG9mIGhvdyBpdCBpcyBtb3JlIGZsZXhpYmxlIHRoYW4g
V0tTY3JpcHRNZXNzYWdlSGFuZGxlci4KICAqLwotLSAodm9pZClhZGRTY3JpcHRNZXNzYWdlSGFu
ZGxlcldpdGhSZXBseTooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXJXaXRoUmVwbHk+KXNjcmlw
dE1lc3NhZ2VIYW5kbGVyV2l0aFJlcGx5IGNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKilj
b250ZW50V29ybGQgbmFtZTooTlNTdHJpbmcgKiluYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKWFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyV2l0aFJlcGx5OihpZCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcldpdGhSZXBseT4pc2Ny
aXB0TWVzc2FnZUhhbmRsZXJXaXRoUmVwbHkgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAq
KWNvbnRlbnRXb3JsZCBuYW1lOihOU1N0cmluZyAqKW5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMS4wKSwgaW9zKDE0LjApKTsKIAogLyohIEBhYnN0cmFjdCBBZGRzIGEgc2NyaXB0IG1lc3Nh
Z2UgaGFuZGxlciB0byB0aGUgbWFpbiB3b3JsZCB1c2VkIGJ5IHBhZ2UgY29udGVudCBpdHNlbGYu
CiAgQHBhcmFtIHNjcmlwdE1lc3NhZ2VIYW5kbGVyIFRoZSBzY3JpcHQgbWVzc2FnZSBoYW5kbGVy
IHRvIGFkZC4KQEAgLTEwOSw3ICsxMDksNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAu
MTApLCBpb3MoOC4wKSkKICBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBoYW5k
bGVyIHRvIHJlbW92ZS4KICBAcGFyYW0gY29udGVudFdvcmxkIFRoZSBXS0NvbnRlbnRXb3JsZCBm
cm9tIHdoaWNoIHRvIHJlbW92ZSB0aGUgc2NyaXB0IG1lc3NhZ2UgaGFuZGxlci4KICAqLwotLSAo
dm9pZClyZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6KE5TU3RyaW5nICopbmFtZSBj
b250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXJlbW92ZVNj
cmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTooTlNTdHJpbmcgKiluYW1lIGNvbnRlbnRXb3JsZDoo
V0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4w
KSwgaW9zKDE0LjApKTsKIAogLyohIEBhYnN0cmFjdCBSZW1vdmVzIGEgc2NyaXB0IG1lc3NhZ2Ug
aGFuZGxlci4KICBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBoYW5kbGVyIHRv
IHJlbW92ZS4KQEAgLTEyMSwxMSArMTIxLDExIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKQogLyohIEBhYnN0cmFjdCBSZW1vdmVzIGFsbCBzY3JpcHQgbWVzc2Fn
ZSBoYW5kbGVycyBmcm9tIGEgZ2l2ZW4gV0tDb250ZW50V29ybGQuCiAgQHBhcmFtIGNvbnRlbnRX
b3JsZCBUaGUgV0tDb250ZW50V29ybGQgZnJvbSB3aGljaCB0byByZW1vdmUgYWxsIHNjcmlwdCBt
ZXNzYWdlIGhhbmRsZXJzLgogICovCi0tICh2b2lkKXJlbW92ZUFsbFNjcmlwdE1lc3NhZ2VIYW5k
bGVyc0Zyb21Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KXJlbW92ZUFsbFNjcmlwdE1lc3NhZ2VIYW5kbGVyc0Zyb21Db250ZW50V29ybGQ6KFdLQ29udGVu
dFdvcmxkICopY29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSk7CiAKIC8qISBAYWJzdHJhY3QgUmVtb3ZlcyBhbGwgYXNzb2NpYXRlZCBzY3JpcHQgbWVz
c2FnZSBoYW5kbGVycy4KICAqLwotLSAodm9pZClyZW1vdmVBbGxTY3JpcHRNZXNzYWdlSGFuZGxl
cnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKHZvaWQpcmVtb3ZlQWxsU2NyaXB0TWVzc2FnZUhhbmRsZXJzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQWRkcyBhIGNvbnRlbnQg
cnVsZSBsaXN0LgogIEBwYXJhbSBjb250ZW50UnVsZUxpc3QgVGhlIGNvbnRlbnQgcnVsZSBsaXN0
IHRvIGFkZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAppbmRleCBlMTU4YTZi
NjY3MjhmZDhiNDViZjU1ZThlZjM2MWFhYzYzOTgyODdjLi40MzZiNWVlMzg5NzFmZTI4ZDhmYTJm
OWFiZDg5NTY4NjJmMzYzMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5o
CkBAIC0zNCw3ICszNCw3IEBACiBAaW50ZXJmYWNlIFdLVXNlckNvbnRlbnRDb250cm9sbGVyIChX
S1ByaXZhdGUpCiAKIC0gKHZvaWQpX3JlbW92ZVVzZXJTY3JpcHQ6KFdLVXNlclNjcmlwdCAqKXVz
ZXJTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2
b2lkKV9yZW1vdmVBbGxVc2VyU2NyaXB0c0Fzc29jaWF0ZWRXaXRoQ29udGVudFdvcmxkOihXS0Nv
bnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3Nv
Y2lhdGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLSAodm9pZClfYWRkVXNl
clNjcmlwdEltbWVkaWF0ZWx5OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCkBAIC00Niw5ICs0Niw5IEBACiAtICh2
b2lkKV9hZGRVc2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVl
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIC0gKHZvaWQpX3Jl
bW92ZVVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAodm9pZClfcmVtb3Zl
QWxsVXNlclN0eWxlU2hlZXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAu
MCkpOwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhDb250
ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9yZW1vdmVBbGxV
c2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQg
Kiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsK
IAotLSAodm9pZClfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1lc3NhZ2VI
YW5kbGVyPilzY3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNv
bnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm5h
bWU6Y29udGVudFdvcmxkOiIsIG1hY29zKDEwLjExLCBXS19NQUNfVEJBKSwgaW9zKDkuMCwgV0tf
SU9TX1RCQSkpOworLSAodm9pZClfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyPilzY3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5h
bWUgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29y
bGQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX2FkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm5hbWU6Y29udGVudFdvcmxkOiIsIG1hY29zKDEwLjExLCAxMS4wKSwgaW9zKDkuMCwg
MTQuMCkpOwogLSAodm9pZClfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1l
c3NhZ2VIYW5kbGVyPilzY3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5hbWUg
Y29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZDsKIC0gKHZvaWQpX3Jl
bW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTooTlNTdHJpbmcgKiluYW1lIHVzZXJDb250
ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwogLSAodm9p
ZClfcmVtb3ZlQWxsU2NyaXB0TWVzc2FnZUhhbmRsZXJzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVu
dFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAppbmRleCA2YjM1
Y2EwMmQ5OGFlZDk5YmUzYjZmOTdlMmNhMTZjMjdmMGYxOWQwLi4yYTBjOGIwYTQzYzFmMjZmYjc0
OGVlZGEzMDZmYmZmYTRiYjYzMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCkBAIC02OCw3ICs2OCw3IEBAIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogIEBwYXJhbSBmb3JNYWluRnJhbWVPbmx5IFdo
ZXRoZXIgdGhlIHNjcmlwdCBzaG91bGQgYmUgaW5qZWN0ZWQgaW50byBhbGwgZnJhbWVzIG9yIGp1
c3QgdGhlIG1haW4gZnJhbWUuCiAgQHBhcmFtIGNvbnRlbnRXb3JsZCBUaGUgV0tDb250ZW50V29y
bGQgaW4gd2hpY2ggdG8gaW5qZWN0IHRoZSBzY3JpcHQuCiAgKi8KLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2Ny
aXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9y
TWFpbkZyYW1lT25seSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29y
bGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0
aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5G
cmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50
V29ybGQgKiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUuaAppbmRleCAwYWRhZDNmZGZiNTc1OGQ4NDhhYzUz
YjdhZjllODlmYmU2MDNlYzNhLi5hY2JhODg3ZDU0ZjYxMTAyNzg1NDg3NTY3ZTNlNGVlMzVjNTFi
MzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2Vy
U2NyaXB0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJTY3JpcHRQcml2YXRlLmgKQEAgLTMyLDEwICszMiwxMCBAQCBOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgogCiBAaW50ZXJmYWNlIFdLVXNlclNjcmlwdCAoV0tQcml2YXRlKQogCi0tIChpbnN0
YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1l
OihXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25s
eTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihudWxs
YWJsZSBOU0FycmF5PE5TU3RyaW5nICo+ICopaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgZXhj
bHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KG51bGxhYmxlIE5TQXJyYXk8TlNTdHJpbmcgKj4gKill
eGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBhc3NvY2lhdGVkVVJMOihudWxsYWJsZSBOU1VSTCAq
KWFzc29jaWF0ZWRVUkwgY29udGVudFdvcmxkOihudWxsYWJsZSBXS0NvbnRlbnRXb3JsZCAqKWNv
bnRlbnRXb3JsZCBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjooQk9PTClkZWZlclJ1bm5p
bmdVbnRpbE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJp
bmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmpl
Y3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBpbmNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczoobnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWluY2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihudWxsYWJs
ZSBOU0FycmF5PE5TU3RyaW5nICo+ICopZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgYXNzb2Np
YXRlZFVSTDoobnVsbGFibGUgTlNVUkwgKilhc3NvY2lhdGVkVVJMIGNvbnRlbnRXb3JsZDoobnVs
bGFibGUgV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgZGVmZXJSdW5uaW5nVW50aWxOb3Rp
ZmljYXRpb246KEJPT0wpZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb24gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNlckNvbnRlbnRXb3JsZCBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfY29udGVudFdvcmxkIiwgbWFjb3MoMTAuMTIsIFdL
X01BQ19UQkEpLCBpb3MoMTAuMCwgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBXS0NvbnRlbnRXb3JsZCAqX2NvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNlckNvbnRlbnRXb3JsZCBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfY29udGVudFdvcmxkIiwgbWFjb3MoMTAu
MTIsIDExLjApLCBpb3MoMTAuMCwgMTQuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBXS0NvbnRlbnRXb3JsZCAqX2NvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDExLjApLCBpb3MoMTQuMCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaAppbmRleCA3NDc1YmNhMjY1Yjc3MjY1ZjQ5MmFmYzlhYzA4
M2UzMGFlOTBiNzY2Li4zNGIyZmNmZWU1Mzk5MzllMTE3ZWZlZGQzYWQ1NDZmMmIzYjg3YzhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCkBAIC0y
NTAsNyArMjUwLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
CiAgZXZhbHVhdGVKYXZhU2NyaXB0OiBpcyBhIGdyZWF0IHdheSB0byBzZXQgdXAgZ2xvYmFsIHN0
YXRlIGZvciBmdXR1cmUgSmF2YVNjcmlwdCBleGVjdXRpb24gaW4gYSBnaXZlbiB3b3JsZC4gKGUu
Zy4gSW1wb3J0aW5nIGxpYnJhcmllcy91dGlsaXRpZXMgdGhhdCBmdXR1cmUgSmF2YVNjcmlwdCBl
eGVjdXRpb24gd2lsbCByZWx5IG9uKQogIE9uY2UgeW91ciBnbG9iYWwgc3RhdGUgaXMgc2V0IHVw
LCBjb25zaWRlciB1c2luZyBjYWxsQXN5bmNKYXZhU2NyaXB0OiBmb3IgbW9yZSBmbGV4aWJsZSBp
bnRlcmFjdGlvbiB3aXRoIHRoZSBKYXZhU2NyaXB0IHByb2dyYW1taW5nIG1vZGVsLgogKi8KLS0g
KHZvaWQpZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgaW5G
cmFtZToobnVsbGFibGUgV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250
ZW50V29ybGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4gX051bGxh
YmxlKShfTnVsbGFibGUgaWQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpKWNvbXBsZXRpb25I
YW5kbGVyIE5TX1JFRklORURfRk9SX1NXSUZUIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNT
dHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGluRnJhbWU6KG51bGxhYmxlIFdLRnJhbWVJbmZvICop
ZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheIF9OdWxsYWJsZSkoX051bGxhYmxlIGlkLCBOU0Vycm9yICog
X051bGxhYmxlIGVycm9yKSljb21wbGV0aW9uSGFuZGxlciBOU19SRUZJTkVEX0ZPUl9TV0lGVCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAvKiBAYWJzdHJhY3Qg
Q2FsbHMgdGhlIGdpdmVuIEphdmFTY3JpcHQgc3RyaW5nIGFzIGFuIGFzeW5jIEphdmFTY3JpcHQg
ZnVuY3Rpb24sIHBhc3NpbmcgdGhlIGdpdmVuIG5hbWVkIGFyZ3VtZW50cyB0byB0aGF0IGZ1bmN0
aW9uLgogIEBwYXJhbSBmdW5jdGlvbkJvZHkgVGhlIEphdmFTY3JpcHQgc3RyaW5nIHRvIHVzZSBh
cyB0aGUgZnVuY3Rpb24gYm9keS4KQEAgLTMyMiw3ICszMjIsNyBAQCBXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIAogIFRoZSBhYm92ZSBmdW5jdGlvbiB0ZXh0IHdp
bGwgY3JlYXRlIGEgcHJvbWlzZSB0aGF0IHdpbGwgZnVsZnVsbCB3aXRoIHRoZSB2YWx1ZSA0MiBh
ZnRlciBhIG9uZSBzZWNvbmQgZGVsYXksIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUsIHRoZW4gcmV0
dXJuIHRoZSBmdWxmaWxsbWVudCB2YWx1ZSBvZiA0Mi4KICovCi0tICh2b2lkKWNhbGxBc3luY0ph
dmFTY3JpcHQ6KE5TU3RyaW5nICopZnVuY3Rpb25Cb2R5IGFyZ3VtZW50czoobnVsbGFibGUgTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBpbkZyYW1lOihudWxsYWJsZSBX
S0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRl
bnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiBfTnVsbGFibGUpKF9OdWxsYWJsZSBp
ZCwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikpY29tcGxldGlvbkhhbmRsZXIgTlNfUkVGSU5F
RF9GT1JfU1dJRlQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKKy0gKHZvaWQpY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNTdHJpbmcgKilmdW5jdGlv
bkJvZHkgYXJndW1lbnRzOihudWxsYWJsZSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICop
YXJndW1lbnRzIGluRnJhbWU6KG51bGxhYmxlIFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50
V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheIF9OdWxsYWJsZSkoX051bGxhYmxlIGlkLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9y
KSljb21wbGV0aW9uSGFuZGxlciBOU19SRUZJTkVEX0ZPUl9TV0lGVCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAvKiEgQGFic3RyYWN0IENsb3NlcyBhbGwgb3V0
LW9mLXdpbmRvdyBtZWRpYSBwcmVzZW50YXRpb25zIGluIGEgV0tXZWJWaWV3LgogIEBkaXNjdXNz
aW9uIEluY2x1ZGVzIHBpY3R1cmUtaW4tcGljdHVyZSBhbmQgZnVsbHNjcmVlbi4KQEAgLTM3NCw3
ICszNzQsNyBAQCBUaGUgY29tcGxldGlvbkhhbmRsZXIgaXMgcGFzc2VkIHRoZSByZXN1bHRpbmcg
UERGIGRvY3VtZW50IGRhdGEgb3IgYW4gZXJyb3IuCiBUaGUgZGF0YSBjYW4gYmUgdXNlZCB0byBj
cmVhdGUgYSBQREZEb2N1bWVudCBvYmplY3QuCiBJZiB0aGUgZGF0YSBpcyB3cml0dGVuIHRvIGEg
ZmlsZSB0aGUgcmVzdWx0aW5nIGZpbGUgaXMgYSB2YWxpZCBQREYgZG9jdW1lbnQuCiAqLwotLSAo
dm9pZCljcmVhdGVQREZXaXRoQ29uZmlndXJhdGlvbjoobnVsbGFibGUgV0tQREZDb25maWd1cmF0
aW9uICopcGRmQ29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRh
ICogX051bGxhYmxlIHBkZkRvY3VtZW50RGF0YSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikp
Y29tcGxldGlvbkhhbmRsZXIgTlNfUkVGSU5FRF9GT1JfU1dJRlQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpY3JlYXRlUERGV2l0
aENvbmZpZ3VyYXRpb246KG51bGxhYmxlIFdLUERGQ29uZmlndXJhdGlvbiAqKXBkZkNvbmZpZ3Vy
YXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqIF9OdWxsYWJsZSBwZGZE
b2N1bWVudERhdGEsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVy
IE5TX1JFRklORURfRk9SX1NXSUZUIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSk7CiAKIC8qIEBhYnN0cmFjdCBDcmVhdGUgV2ViS2l0IHdlYiBhcmNoaXZlIGRhdGEgcmVw
cmVzZW50aW5nIHRoZSBjdXJyZW50IHdlYiBjb250ZW50IG9mIHRoZSBXS1dlYlZpZXcKIEBwYXJh
bSBjb21wbGV0aW9uSGFuZGxlciBBIGJsb2NrIHRvIGludm9rZSB3aGVuIHRoZSB3ZWIgYXJjaGl2
ZSBkYXRhIGlzIHJlYWR5LgpAQCAtMzgyLDcgKzM4Miw3IEBAIElmIHRoZSBkYXRhIGlzIHdyaXR0
ZW4gdG8gYSBmaWxlIHRoZSByZXN1bHRpbmcgZmlsZSBpcyBhIHZhbGlkIFBERiBkb2N1bWVudC4K
IEl0IGNhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCB3ZWIgY29udGVudCBvbiBhIHBhc3RlYm9hcmQs
IGxvYWRlZCBpbnRvIGEgV0tXZWJWaWV3IGRpcmVjdGx5LCBhbmQgc2F2ZWQgdG8gYSBmaWxlIGZv
ciBsYXRlciB1c2UuCiBUaGUgdW5pZm9ybSB0eXBlIGlkZW50aWZpZXIga1VUVHlwZVdlYkFyY2hp
dmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3RlYm9hcmQgdHlwZSBhbmQgTUlNRSB0
eXBlLgogKi8KLS0gKHZvaWQpY3JlYXRlV2ViQXJjaGl2ZURhdGFXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKE5TRGF0YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIE5TX1JF
RklORURfRk9SX1NXSUZUIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistICh2b2lkKWNyZWF0ZVdlYkFyY2hpdmVEYXRhV2l0aENvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlciBO
U19SRUZJTkVEX0ZPUl9TV0lGVCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOwogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIg
aG9yaXpvbnRhbCBzd2lwZSBnZXN0dXJlcwogIHdpbGwgdHJpZ2dlciBiYWNrLWZvcndhcmQgbGlz
dCBuYXZpZ2F0aW9ucy4KQEAgLTQzNCw3ICs0MzQsNyBAQCBUaGUgdW5pZm9ybSB0eXBlIGlkZW50
aWZpZXIga1VUVHlwZVdlYkFyY2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3Rl
YgogIENoYW5naW5nIHRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0byB3ZWIgY29udGVudCBzZXR0
aW5nIHRoZSBDU1MgInpvb20iCiAgcHJvcGVydHkgb24gYWxsIHBhZ2UgY29udGVudC4KICovCi1A
cHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBwYWdlWm9vbSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMp
IENHRmxvYXQgcGFnZVpvb20gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKIAogLyogQGFic3RyYWN0IFNlYXJjaGVzIHRoZSBwYWdlIGNvbnRlbnRzIGZvciB0aGUgZ2l2
ZW4gc3RyaW5nLgogIEBwYXJhbSBzdHJpbmcgVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLgpAQCAt
NDQ0LDcgKzQ0NCw3IEBAIFRoZSB1bmlmb3JtIHR5cGUgaWRlbnRpZmllciBrVVRUeXBlV2ViQXJj
aGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQgcGFzdGViCiAgIEEgbWF0Y2ggZm91bmQg
YnkgdGhlIHNlYXJjaCBpcyBzZWxlY3RlZCBhbmQgdGhlIHBhZ2UgaXMgc2Nyb2xsZWQgdG8gcmV2
ZWFsIHRoZSBzZWxlY3Rpb24uCiAgIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgaXMgY2FsbGVkIGFm
dGVyIHRoZSBzZWFyY2ggY29tcGxldGVzLgogKi8KLS0gKHZvaWQpZmluZFN0cmluZzooTlNTdHJp
bmcgKilzdHJpbmcgd2l0aENvbmZpZ3VyYXRpb246KG51bGxhYmxlIFdLRmluZENvbmZpZ3VyYXRp
b24gKiljb25maWd1cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS0ZpbmRSZXN1
bHQgKnJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIgTlNfUkVGSU5FRF9GT1JfU1dJRlQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
ZmluZFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgd2l0aENvbmZpZ3VyYXRpb246KG51bGxhYmxl
IFdLRmluZENvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShXS0ZpbmRSZXN1bHQgKnJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIgTlNfUkVGSU5F
RF9GT1JfU1dJRlQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAog
LyogQGFic3RyYWN0IENoZWNrcyB3aGV0aGVyIG9yIG5vdCBXS1dlYlZpZXdzIGhhbmRsZSB0aGUg
Z2l2ZW4gVVJMIHNjaGVtZSBieSBkZWZhdWx0LgogIEBwYXJhbSBzY2hlbWUgVGhlIFVSTCBzY2hl
bWUgdG8gY2hlY2suCkBAIC00NzAsMTMgKzQ3MCwxMyBAQCBUaGUgdW5pZm9ybSB0eXBlIGlkZW50
aWZpZXIga1VUVHlwZVdlYkFyY2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3Rl
YgogIFNldHRpbmcgdGhlIHZhbHVlIHRvIG5pbCB3aWxsIHJlc3RvcmUgdGhlIG5vcm1hbCB2YWx1
ZS4KICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBuaWwuCiAqLwotQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqbWVkaWFUeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICptZWRpYVR5cGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMS4wKSwgaW9zKDE0LjApKTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvKiBAYWJzdHJh
Y3QgUmV0dXJucyBhbiBOU1ByaW50T3BlcmF0aW9uIG9iamVjdCBjb25maWd1cmVkIHRvIHByaW50
IHRoZSBjb250ZW50cyBvZiB0aGlzIFdLV2ViVmlldwogQHBhcmFtIHByaW50SW5mbyBUaGUgcHJp
bnQgaW5mbyBvYmplY3QgdXNlZCB0byBjb25maWd1cmUgdGhlIHJlc3VsdGluZyBwcmludCBvcGVy
YXRpb24uCiAqLwotLSAoTlNQcmludE9wZXJhdGlvbiAqKXByaW50T3BlcmF0aW9uV2l0aFByaW50
SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSk7CistIChOU1ByaW50T3BlcmF0aW9uICopcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJ
bmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjAp
KTsKICNlbmRpZgogQGVuZAogCkBAIC01MTUsNyArNTE1LDcgQEAgVGhlIHVuaWZvcm0gdHlwZSBp
ZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBw
YXN0ZWIKIAogQGVuZAogCi1XS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKQorV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS05T
VGV4dEZpbmRlckNsaWVudCkgPE5TVGV4dEZpbmRlckNsaWVudD4KIEBlbmQKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uLmgKaW5kZXggNDFkMjYxNjJmNjM2NjU1NTkxNTQwMmRmZTQ1MTY2YzQ3OTc1MmQwYi4u
OGNjY2Y3MzdkNTliZDVhOGE5Y2Y3OGYyNTJjZmU4NDY3MzJkYzQzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5oCkBAIC0xMzYsNyArMTM2LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiAgKi8KIEBwcm9wZXJ0eSAobnVsbF9yZXNldHRhYmxlLCBub25hdG9taWMs
IGNvcHkpIFdLV2VicGFnZVByZWZlcmVuY2VzICpkZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBsaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGxp
bWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3Qg
QSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBIVE1MNSB2aWRlb3MgcGxheSBpbmxp
bmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggODZiOWNlYjJhNzFmOGU4
OGU4NTk1MDZiMDYxM2UzNzk3N2E0ODQwMC4uNTRiOGZlMzQ2NTNiZDRhZDZkOTc2ZDJhNWM4ODZm
M2ExZWM3MWQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTU3LDcg
KzU3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnZlcnRzUG9zaXRpb25TdHlsZU9u
Q29weTopIEJPT0wgX2NvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEFsbG93c01ldGFSZWZyZXNoOikgQk9PTCBfYWxsb3dzTWV0YVJlZnJlc2ggV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2FsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dUb3BO
YXZpZ2F0aW9uVG9EYXRhVVJMczopIEJPT0wgX2FsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVS
THM6KSBCT09MIF9hbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazopIEJPT0wgX25lZWRzU3RvcmFn
ZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyks
IGlvcygxMC4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNYWluQ29udGVu
dFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkOikgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVy
ZU92ZXJyaWRlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEludmlzaWJsZUF1dG9wbGF5Tm90
UGVybWl0dGVkOikgQk9PTCBfaW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CkBAIC03NCwxOCArNzQsMTggQEAgdHlw
ZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldERyYXdzQmFja2dyb3VuZDopIEJPT0wgX2RyYXdzQmFja2dy
b3VuZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1Vu
dGlsQWZ0ZXJEb2N1bWVudExvYWQ6KSBCT09MIF9zaG91bGREZWZlckFzeW5jaHJvbm91c1Njcmlw
dHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBp
b3MoMTIuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2Vic2l0ZURh
dGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmVJZkV4aXN0cyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zOikgTlNBcnJheTxOU1N0cmluZyAq
PiAqX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
RGVmZXJyYWJsZVVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uOikgQk9PTCBf
ZGVmZXJyYWJsZVVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJs
ZWQ6KSBCT09MIF9jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0VuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgV0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9y
ZUlmRXhpc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDT1JTRGlzYWJsaW5nUGF0dGVy
bnM6KSBOU0FycmF5PE5TU3RyaW5nICo+ICpfY29yc0Rpc2FibGluZ1BhdHRlcm5zIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXREZWZlcnJhYmxlVXNlclNjcmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmlj
YXRpb246KSBCT09MIF9kZWZlcnJhYmxlVXNlclNjcmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmlj
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5h
YmxlZDopIEJPT0wgX2Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRMb2Fkc0Zyb21OZXR3b3JrOikgQk9PTCBfbG9hZHNGcm9tTmV0d29yayBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9hZHNTdWJyZXNvdXJjZXM6KSBCT09MIF9s
b2Fkc1N1YnJlc291cmNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SWdub3Jlc0Fw
cEJvdW5kRG9tYWluczopIEJPT0wgX2lnbm9yZXNBcHBCb3VuZERvbWFpbnMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldExvYWRzRnJvbU5ldHdvcms6KSBCT09MIF9sb2Fkc0Zyb21OZXR3
b3JrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2Fkc1N1YnJlc291cmNlczopIEJPT0wgX2xvYWRzU3Vi
cmVzb3VyY2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJZ25vcmVzQXBwQm91bmREb21haW5zOikgQk9P
TCBfaWdub3Jlc0FwcEJvdW5kRG9tYWlucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0Q2xpZW50TmF2aWdhdGlvbnNSdW5BdEZvcmVncm91bmRQcmlvcml0eTopIEJP
T0wgX2NsaWVudE5hdmlnYXRpb25zUnVuQXRGb3JlZ3JvdW5kUHJpb3JpdHkgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5OikgQk9PTCBfYWx3YXlzUnVuc0F0Rm9yZWdy
b3VuZFByaW9yaXR5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9jbGllbnRO
YXZpZ2F0aW9uc1J1bkF0Rm9yZWdyb3VuZFByaW9yaXR5IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q2xpZW50TmF2aWdhdGlvbnNSdW5B
dEZvcmVncm91bmRQcmlvcml0eTopIEJPT0wgX2NsaWVudE5hdmlnYXRpb25zUnVuQXRGb3JlZ3Jv
dW5kUHJpb3JpdHkgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuNCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5OikgQk9PTCBf
YWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9jbGllbnROYXZpZ2F0aW9uc1J1bkF0Rm9yZWdyb3VuZFByaW9yaXR5IiwgaW9z
KDkuMCwgMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5saW5lTWVk
aWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU6KSBCT09MIF9pbmxpbmVNZWRp
YVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSBXS19BUElfQVZBSUxBQkxFKGlv
cygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NJbmxpbmVN
ZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuOikgQk9PTCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFja0FmdGVyRnVsbHNjcmVlbiAgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RHJhZ0xpZnREZWxheTopIF9XS0RyYWdMaWZ0RGVs
YXkgX2RyYWdMaWZ0RGVsYXkgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwpAQCAtMTE4LDgg
KzExOCw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRBZGRpdGlvbmFsU3VwcG9y
dGVkSW1hZ2VUeXBlczopIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9hZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVuYWJsZWQ6
KSBCT09MIF91bmRvTWFuYWdlckFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NSksIGlvcygxMy4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzopIEJPT0wgX3Nob3VsZFJlbGF4VGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcm9jZXNzRGlz
cGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNwbGF5TmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc6KSBCT09M
IF9zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDExLjApLCBpb3MoMTQuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
UHJvY2Vzc0Rpc3BsYXlOYW1lOikgTlNTdHJpbmcgKl9wcm9jZXNzRGlzcGxheU5hbWUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRl
eCAxZTMzMWM0MGY3MjM2OWYyNDdmZThlYmY0OTA1MzQ2ZDYwMWQ2NjI3Li4zZDk0MGRmNGZiNmE5
OTkzYjYzMjNhYjYwZDc0NmU2MzRhNDhiZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTE0Nyw3ICsxNDcsNyBA
QCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0SGlzdG9yeURlbGVnYXRlOikgaWQgPFdL
SGlzdG9yeURlbGVnYXRlUHJpdmF0ZT4gX2hpc3RvcnlEZWxlZ2F0ZTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEljb25Mb2FkaW5nRGVsZWdhdGU6KSBpZCA8X1dLSWNv
bkxvYWRpbmdEZWxlZ2F0ZT4gX2ljb25Mb2FkaW5nRGVsZWdhdGU7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgd2Vhaywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZTopIGlkIDxfV0tSZXNv
dXJjZUxvYWREZWxlZ2F0ZT4gX3Jlc291cmNlTG9hZERlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgd2Vhaywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZTopIGlkIDxfV0tSZXNvdXJj
ZUxvYWREZWxlZ2F0ZT4gX3Jlc291cmNlTG9hZERlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNVUkwgKl91bnJlYWNoYWJsZVVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNVUkwgKl9tYWluRnJhbWVVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CkBAIC0xNzgsOSArMTc4LDkgQEAgaGFzIGJlZW4gbG9hZGVkIG92ZXIgYSBjb25uZWN0
aW9uIHVzaW5nIFRMUyAxLjAgb3IgVExTIDEuMS4KIEBkaXNjdXNzaW9uIEBsaW5rIFdLV2ViVmll
dyBAL2xpbmsgaXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQKIGZvciB0aGlz
IHByb3BlcnR5LgogKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfbmVn
b3RpYXRlZExlZ2FjeVRMUyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9uZWdv
dGlhdGVkTGVnYWN5VExTIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40
KSk7CiAKLS0gKHZvaWQpX2ZyYW1lczoodm9pZCAoXikoX1dLRnJhbWVUcmVlTm9kZSAqKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAodm9pZClfZnJhbWVzOih2b2lkICheKShfV0tGcmFtZVRyZWVOb2RlICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4w
KSk7CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2Ugb25jZSBub2JvZHkgaXMgdXNpbmcgdGhlbS4K
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNEYXRhICpfc2Vzc2lvblN0YXRlRGF0
YTsKQEAgLTE5NywxMCArMTk3LDEwIEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS0ZyYW1lSGFuZGxlICpfbWFpbkZyYW1lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCB3ZWFrLCBzZXR0ZXI9X3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTopIGlkIDxfV0tU
ZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGU+IF90ZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQp
X3N0YXJ0VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjooX1dLVGV4dE1hbmlwdWxh
dGlvbkNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGNvbXBsZXRpb246KHZvaWQoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX2NvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbjooX1dL
VGV4dE1hbmlwdWxhdGlvbkl0ZW0gKilpdGVtIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNj
ZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uRm9y
SXRlbXM6KE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0gKj4gKilpdGVtcyBjb21wbGV0
aW9uOih2b2lkKF4pKE5TQXJyYXk8TlNFcnJvciAqPiAqZXJyb3JzKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0VGV4dE1hbmlwdWxhdGlvbkRl
bGVnYXRlOikgaWQgPF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZT4gX3RleHRNYW5pcHVsYXRp
b25EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwor
LSAodm9pZClfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhDb25maWd1cmF0aW9uOihfV0tUZXh0
TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gY29tcGxldGlvbjoodm9p
ZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
LjQpLCBpb3MoMTMuNCkpOworLSAodm9pZClfY29tcGxldGVUZXh0TWFuaXB1bGF0aW9uOihfV0tU
ZXh0TWFuaXB1bGF0aW9uSXRlbSAqKWl0ZW0gY29tcGxldGlvbjoodm9pZCheKShCT09MIHN1Y2Nl
c3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlv
cygxMy40KSk7CistICh2b2lkKV9jb21wbGV0ZVRleHRNYW5pcHVsYXRpb25Gb3JJdGVtczooTlNB
cnJheTxfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbSAqPiAqKWl0ZW1zIGNvbXBsZXRpb246KHZvaWQo
XikoTlNBcnJheTxOU0Vycm9yICo+ICplcnJvcnMpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFkZHNWaXNpdGVkTGlua3M6KSBCT09MIF9hZGRzVmlzaXRlZExpbmtzOwog
CkBAIC0yMDksMTggKzIwOSwxOCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBz
aG90KSBCT09MIF9zaG93aW5nTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDsKIAogLSAodm9pZClf
Y2xvc2U7Ci0tIChCT09MKV90cnlDbG9zZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoQk9PTClfaXNDbG9zZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKEJPT0wpX3RyeUNsb3Nl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CistIChCT09MKV9p
c0Nsb3NlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogCi0t
ICh2b2lkKV91cGRhdGVXZWJzaXRlUG9saWNpZXM6KF9XS1dlYnNpdGVQb2xpY2llcyAqKXdlYnNp
dGVQb2xpY2llcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX3VwZGF0ZVdl
YnBhZ2VQcmVmZXJlbmNlczoiLCBtYWNvcygxMC4xMywgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBX
S19JT1NfVEJBKSk7Ci0tICh2b2lkKV91cGRhdGVXZWJwYWdlUHJlZmVyZW5jZXM6KFdLV2VicGFn
ZVByZWZlcmVuY2VzICopd2VicGFnZVByZWZlcmVuY2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9ub3RpZnlVc2VyU2NyaXB0
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9kZWZlcnJhYmxlVXNlclNjcmlw
dHNOZWVkTm90aWZpY2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV91cGRhdGVXZWJzaXRlUG9saWNpZXM6KF9XS1dlYnNp
dGVQb2xpY2llcyAqKXdlYnNpdGVQb2xpY2llcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCItX3VwZGF0ZVdlYnBhZ2VQcmVmZXJlbmNlczoiLCBtYWNvcygxMC4xMywgMTAuMTUu
NCksIGlvcygxMS4zLCAxMy40KSk7CistICh2b2lkKV91cGRhdGVXZWJwYWdlUHJlZmVyZW5jZXM6
KFdLV2VicGFnZVByZWZlcmVuY2VzICopd2VicGFnZVByZWZlcmVuY2VzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CistICh2b2lkKV9ub3RpZnlVc2VyU2NyaXB0
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9kZWZlcnJhYmxlVXNlclNjcmlwdHNOZWVkTm90aWZp
Y2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIC0gKHZv
aWQpX2V2YWx1YXRlSmF2YVNjcmlwdFdpdGhvdXRVc2VyR2VzdHVyZTooTlNTdHJpbmcgKilqYXZh
U2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKLS0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3Ry
aW5nIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVu
dFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNF
cnJvciAqIGVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0
OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgd2l0aFNvdXJjZVVSTDooTlNVUkwgKilzb3Vy
Y2VVUkwgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250
ZW50V29ybGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBO
U0Vycm9yICogZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9jYWxsQXN5bmNKYXZhU2Ny
aXB0OihOU1N0cmluZyAqKWZ1bmN0aW9uQm9keSBhcmd1bWVudHM6KE5TRGljdGlvbmFyeTxOU1N0
cmluZyAqLCBpZD4gKilhcmd1bWVudHMgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNv
bnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGluRnJhbWU6
KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29u
dGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqIGVycm9y
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOworLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRT
dHJpbmcgd2l0aFNvdXJjZVVSTDooTlNVUkwgKilzb3VyY2VVUkwgaW5GcmFtZTooV0tGcmFtZUlu
Zm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICogZXJyb3IpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CistICh2
b2lkKV9jYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWZ1bmN0aW9uQm9keSBhcmd1bWVu
dHM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgaW5GcmFtZTooV0tG
cmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50
V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICplcnJvcikpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGF5b3V0TW9kZTopIF9XS0xheW91
dE1vZGUgX2xheW91dE1vZGU7CiAvLyBGb3IgdXNlIHdpdGggX2xheW91dE1vZGUgPSBfV0tMYXlv
dXRNb2RlRml4ZWRTaXplOgpAQCAtMjMwLDcgKzIzMCw3IEBAIGZvciB0aGlzIHByb3BlcnR5Lgog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92
aWV3U2NhbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAotQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5z
OikgTlNBcnJheTxOU1N0cmluZyAqPiAqX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zOikgTlNBcnJh
eTxOU1N0cmluZyAqPiAqX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDExLjApLCBpb3MoMTQuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRNaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
IApAQCAtMjQ4LDcgKzI0OCw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogKyAoTlNVUkwgKilfdmlz
aXRVbnNhZmVXZWJzaXRlU2VudGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIC0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFRpdGxlOihO
U1N0cmluZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxzOihOU0F0
dHJpYnV0ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1f
c2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOnRpdGxlOndhcm5pbmc6ZGV0YWlsc1dpdGhM
aW5rczpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xNC40LCAxMC4xNS40KSwgaW9zKDEy
LjIsIDEzLjIpKTsKIC0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNV
UkwgKil1cmwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJu
aW5nIGRldGFpbHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiLV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6dGl0bGU6d2Fy
bmluZzpkZXRhaWxzV2l0aExpbmtzOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjE0LjQs
IDEwLjE1LjQpLCBpb3MoMTIuMiwgMTMuMikpOwotLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dh
cm5pbmdXaXRoVVJMOihOU1VSTCAqKXVybCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSB3YXJuaW5n
OihOU1N0cmluZyAqKXdhcm5pbmcgZGV0YWlsc1dpdGhMaW5rczooTlNBdHRyaWJ1dGVkU3RyaW5n
ICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MLCBOU1VSTCAqKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOihOU1VS
TCAqKXVybCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5p
bmcgZGV0YWlsc1dpdGhMaW5rczooTlNBdHRyaWJ1dGVkU3RyaW5nICopZGV0YWlscyBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKShCT09MLCBOU1VSTCAqKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuMikpOwogCiAtICh2b2lkKV9kb0Fm
dGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAtICh2b2lkKV9kb0FmdGVy
TmV4dFByZXNlbnRhdGlvblVwZGF0ZVdpdGhvdXRXYWl0aW5nRm9yUGFpbnRpbmc6KHZvaWQgKF4p
KHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygx
MC4zKSk7CkBAIC0yODksNyArMjg5LDcgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9n
ZXRNYWluUmVzb3VyY2VEYXRhV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEg
KiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2dldFdlYkFyY2hpdmVE
YXRhV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKiwgTlNFcnJvciAqKSlj
b21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2dldENvbnRlbnRzQXNTdHJpbmdXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lk
KV9nZXRDb250ZW50c09mQWxsRnJhbWVzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9nZXRDb250ZW50c09m
QWxsRnJhbWVzQXNTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSk7CiAtICh2b2lkKV9nZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZ1dpdGhDb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TRGljdGlvbmFyeTxO
U0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICosIE5TRXJyb3IgKikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4w
KSk7CiAKIC0gKHZvaWQpX2dldEFwcGxpY2F0aW9uTWFuaWZlc3RXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QgKikpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKQEAgLTMzMCwxMiAr
MzMwLDEyIEBAIGZvciB0aGlzIHByb3BlcnR5LgogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMp
KTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRpYUNhcHR1cmVTdGF0
ZSBfbWVkaWFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlhTXV0ZWRTdGF0
ZSBfbWVkaWFNdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlh
TXV0ZWRTdGF0ZSBfbWVkaWFNdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CiAKIC0gKHZvaWQpX3NldFBhZ2VNdXRlZDooX1dLTWVkaWFNdXRlZFN0YXRl
KW11dGVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZUVuYWJsZWQ6KSBC
T09MIF9tZWRpYUNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuMCkpOwotLSAodm9pZClfc3RvcE1lZGlhQ2FwdHVyZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc3RvcE1lZGlhQ2Fw
dHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NhblRvZ2dsZVBpY3R1cmVJblBpY3R1
cmU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzUGljdHVyZUluUGlj
dHVyZUFjdGl2ZTsKQEAgLTM0NiwxNiArMzQ2LDE2IEBAIGZvciB0aGlzIHByb3BlcnR5LgogLSAo
dm9pZClfcmVzdW1lQWxsTWVkaWFQbGF5YmFjazsKIC0gKHZvaWQpX2Nsb3NlQWxsTWVkaWFQcmVz
ZW50YXRpb25zOwogCi0tICh2b2lkKV90YWtlUERGU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjoo
V0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3VyYXRpb24gY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqcGRmU25hcHNob3REYXRhLCBOU0Vycm9yICplcnJv
cikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3Rha2VQREZTbmFwc2hvdFdpdGhDb25maWd1cmF0
aW9uOihXS1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90Q29uZmlndXJhdGlvbiBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICpwZGZTbmFwc2hvdERhdGEsIE5TRXJyb3Ig
KmVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQp
LCBpb3MoMTMuNCkpOwogCi0tICh2b2lkKV9nZXRQcm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KV9nZXRQcm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CiAKLS0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfZ3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VTZXJ2aWNlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTEuMCksIGlvcygxNC4wKSk7CiAKLS0gKHZvaWQpX3NlcnZpY2VXb3JrZXJzRW5hYmxlZDoo
dm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfY2xlYXJTZXJ2aWNlV29ya2Vy
RW50aXRsZW1lbnRPdmVycmlkZToodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3NlcnZpY2VXb3JrZXJzRW5hYmxlZDoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClfY2xl
YXJTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnRPdmVycmlkZToodm9pZCAoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAot
LSAodm9pZClfcHJlY29ubmVjdFRvU2VydmVyOihOU1VSTCAqKXNlcnZlclVSTCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcHJl
Y29ubmVjdFRvU2VydmVyOihOU1VSTCAqKXNlcnZlclVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDExLjApLCBpb3MoMTQuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRD
YW5Vc2VDcmVkZW50aWFsU3RvcmFnZTopIEJPT0wgX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKQEAg
LTQ2NCwxMyArNDY0LDEzIEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtIChVSVZpZXcgKilfZnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiAKLS0g
KHZvaWQpX2dyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKLS0gKHZvaWQpX3Jldm9rZUFjY2Vzc1RvQXNzZXRTZXJ2aWNlcyBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9ncmFudEFjY2Vzc1RvQXNzZXRT
ZXJ2aWNlcyBXS19BUElfQVZBSUxBQkxFKGlvcygxNC4wKSk7CistICh2b2lkKV9yZXZva2VBY2Nl
c3NUb0Fzc2V0U2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTQuMCkpOwogCi0tICh2b2lk
KV93aWxsT3BlbkFwcExpbmsgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfd2lsbE9wZW5BcHBMaW5rIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDE0LjApKTsKIAotLSAo
dm9pZClfaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjoodm9pZCheKShCT09MKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9p
c0ZvcmNlZEludG9BcHBCb3VuZE1vZGU6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbjoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKGlvcygxNC4wKSk7CistICh2b2lkKV9pc0ZvcmNlZEludG9BcHBCb3VuZE1vZGU6
KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTQu
MCkpOwogCiBAZW5kCiAKQEAgLTUwMSw3ICs1MDEsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC8q
ISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBkcmF3aW5nIGNs
aXBzIHRvIHRoZSB2aXNpYmxlUmVjdC4KIEBkaXNjdXNzaW9uIFdoZW4gWUVTLCB0aGUgdmlldyB3
aWxsIHVzZSBpdHMgLXZpc2libGVSZWN0IHdoZW4gZGV0ZXJtaW5pbmcgd2hpY2ggYXJlYXMgb2Yg
dGhlIFdLV2ViVmlldyB0byBkcmF3LiBUaGlzIG1heSBpbXByb3ZlIHBlcmZvcm1hbmNlIGZvciBs
YXJnZSBXS1dlYlZpZXdzIHdoaWNoIGFyZSBtb3N0bHkgY2xpcHBlZCBvdXQgYnkgZW5jbG9zaW5n
IHZpZXdzLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgTk8uCiAqLwotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRDbGlwc1RvVmlzaWJsZVJlY3Q6KSBCT09MIF9jbGlw
c1RvVmlzaWJsZVJlY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldENsaXBzVG9WaXNpYmxlUmVj
dDopIEJPT0wgX2NsaXBzVG9WaXNpYmxlUmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjAp
KTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1ZpZXcgKl9zYWZlQnJvd3Np
bmdXYXJuaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNl
cy5oCmluZGV4IGIwNjBkNTUwNzFkYzJiOGExOTNlMTRiZTYzMWI5ZTY4M2E1NzBkOWEuLjRhMjM2
ZGE3ZDc1OGFiOTZkNmI3NTZkNzVmY2FkMmExYzNiNzNkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCkBA
IC02OSw2ICs2OSw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4w
KSkKIAogIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBhbGxvd3NDb250ZW50SmF2YVNjcmlwdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
YWxsb3dzQ29udGVudEphdmFTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDFhZTZi
ZjI3NmI5YWIzMGUzNDE3ODdlZWQ3MGEzMjU5YTllYzk3YWQuLjQ3N2ZkYzExZjMyZjlkZmI5ZWIw
ZDE4YjkzZjRiMjQ3MGQ0N2I0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAg
LTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVN
b3VzZUV2ZW50UG9saWN5KSB7CiAgICAgLy8gSW5kaXJlY3QgcG9pbnRpbmcgZGV2aWNlcyB3aWxs
IGFsd2F5cyBzeW50aGVzaXplIHRvdWNoIGV2ZW50cyBhbmQgYmVoYXZlIGFzIGlmIHRvdWNoIGlu
cHV0IGlzIGJlaW5nIHVzZWQuCiAgICAgX1dLV2Vic2l0ZU1vdXNlRXZlbnRQb2xpY3lTeW50aGVz
aXplVG91Y2hFdmVudHMsCiAjZW5kaWYKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwg
aW9zKDE0LjApKTsKIAogQGNsYXNzIF9XS0N1c3RvbUhlYWRlckZpZWxkczsKIEBjbGFzcyBXS1Vz
ZXJDb250ZW50Q29udHJvbGxlcjsKQEAgLTc0LDcgKzc0LDcgQEAgdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS1dlYnNpdGVNb3VzZUV2ZW50UG9saWN5KSB7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDdXN0b21IZWFkZXJGaWVsZHM6KSBOU0FycmF5PF9X
S0N1c3RvbUhlYWRlckZpZWxkcyAqPiAqX2N1c3RvbUhlYWRlckZpZWxkczsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFBvcFVwUG9saWN5OikgX1dLV2Vic2l0ZVBvcFVwUG9saWN5
IF9wb3BVcFBvbGljeTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0
V2Vic2l0ZURhdGFTdG9yZTopIFdLV2Vic2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmU7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFVzZXJDb250ZW50Q29u
dHJvbGxlcjopIFdLVXNlckNvbnRlbnRDb250cm9sbGVyICpfdXNlckNvbnRlbnRDb250cm9sbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFVzZXJDb250ZW50Q29udHJv
bGxlcjopIFdLVXNlckNvbnRlbnRDb250cm9sbGVyICpfdXNlckNvbnRlbnRDb250cm9sbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRDdXN0b21Vc2VyQWdlbnQ6KSBOU1N0cmluZyAqX2N1c3Rv
bVVzZXJBZ2VudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEN1c3Rv
bVVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzOikgTlNTdHJpbmcgKl9jdXN0b21Vc2VyQWdl
bnRBc1NpdGVTcGVjaWZpY1F1aXJrczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0
ZXI9X3NldEN1c3RvbU5hdmlnYXRvclBsYXRmb3JtOikgTlNTdHJpbmcgKl9jdXN0b21OYXZpZ2F0
b3JQbGF0Zm9ybTsKQEAgLTgzLDYgKzgzLDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVn
ZXIsIF9XS1dlYnNpdGVNb3VzZUV2ZW50UG9saWN5KSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudFdpdGhNb2Rlcm5D
b21wYXRpYmlsaXR5OikgTlNTdHJpbmcgKl9hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnRXaXRo
TW9kZXJuQ29tcGF0aWJpbGl0eTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
TW91c2VFdmVudFBvbGljeTopIF9XS1dlYnNpdGVNb3VzZUV2ZW50UG9saWN5IF9tb3VzZUV2ZW50
UG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNb3VzZUV2ZW50UG9saWN5Oikg
X1dLV2Vic2l0ZU1vdXNlRXZlbnRQb2xpY3kgX21vdXNlRXZlbnRQb2xpY3kgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFBy
aXZhdGUuaAppbmRleCA5NTdlODc3MDg3ZjQzYzhjMDMzYmVhNmY5ZGNkNjNiNzJkMTBmN2VmLi42
NTMyMTVlN2MwNmM2N2U3NjM0NjRkNmE3NWVlNTBkODk0NzA0ZTY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZFByaXZhdGUuaApAQCAtMzYsNyArMzYsNyBAQCBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFdLX0FQSV9BVkFJTAog
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiBXS19FWFRFUk4gTlNT
dHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1XS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2Vz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitX
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNl
cnZpY2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKICNpZiAh
VEFSR0VUX09TX0lQSE9ORQogV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURh
dGFUeXBlUGx1Z0luRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaAppbmRleCBkZjJjMzBiZWI5MjZkMjYzNGNjNjQwYmU4NWMxNTQ0ZTkz
ODAzMTdhLi5lMDFhMmNkNzY4ZTIyYTUzMGZlYTVhMjJlYTdkYjQ5MzJjYjQ5MmE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTUwLDEzICs1MCwxMyBAQCB0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZDopIEJPT0wgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTopIEJPT0wgX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4w
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZXJPcmlnaW5TdG9yYWdlUXVv
dGE6KSBOU1VJbnRlZ2VyIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ucGVyT3Jp
Z2luU3RvcmFnZVF1b3RhIiwgbWFjb3MoMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZXJPcmlnaW5T
dG9yYWdlUXVvdGE6KSBOU1VJbnRlZ2VyIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24ucGVyT3JpZ2luU3RvcmFnZVF1b3RhIiwgbWFjb3MoMTAuMTMuNCwgMTAuMTUuNCksIGlvcygx
MS4zLCAxMy40KSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50
ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllciIsIG1hY29zKDEwLjEzLjQsIFdLX01B
Q19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3M6KSBCT09MIF9hbGxvd3NDZWxsdWxhckFjY2Vz
cyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5hbGxvd3NDZWxsdWxhckFjY2VzcyIsIG1hY29zKDEwLjEzLjQsIFdLX01B
Q19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0UHJveHlDb25maWd1cmF0aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1
cmF0aW9uIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLnByb3h5Q29uZmlndXJhdGlvbiIsIG1hY29zKDEwLjE0LCBXS19N
QUNfVEJBKSwgaW9zKDEyLjAsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYm91bmRJbnRl
cmZhY2VJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllciIsIG1h
Y29zKDEwLjEzLjQsIDEwLjE1LjQpLCBpb3MoMTEuMywgMTMuNCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3M6KSBCT09MIF9hbGxvd3NDZWxs
dWxhckFjY2VzcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5hbGxvd3NDZWxsdWxhckFjY2VzcyIsIG1hY29zKDEwLjEz
LjQsIDEwLjE1LjQpLCBpb3MoMTEuMywgMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0UHJveHlDb25maWd1cmF0aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1
cmF0aW9uIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLnByb3h5Q29uZmlndXJhdGlvbiIsIG1hY29zKDEwLjE0LCAxMC4x
NS40KSwgaW9zKDEyLjAsIDEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEFsbG93c1RMU0ZhbGxiYWNrOikgQk9PTCBfYWxsb3dzVExTRmFsbGJhY2sgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TVVJMICpfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgV0tfQVBJX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uX2lu
ZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5IiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3Mo
OS4wLCBXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJM
ICpfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uX2luZGV4ZWREQkRhdGFi
YXNlRGlyZWN0b3J5IiwgbWFjb3MoMTAuMTEsIDExLjApLCBpb3MoOS4wLCAxNC4wKSk7CiAKIAog
LSAodm9pZClfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjazoobnVsbGFi
bGUgdm9pZCAoXikoV0tXZWJzaXRlRGF0YVN0b3JlICosIE5TU3RyaW5nICopKWNhbGxiYWNrIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwpAQCAtNjcsMTggKzY3LDE4
IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0
Y2hPcHRpb25zKSB7CiAtIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLSAodm9pZClfc2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZToodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7Ci0tICh2b2lkKV9sb2dVc2Vy
SW50ZXJhY3Rpb246KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfbG9nVXNlckludGVyYWN0aW9uOihOU1VSTCAq
KWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIC0gKHZvaWQp
X3NldFByZXZhbGVudERvbWFpbjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTUpLCBpb3MoMTMuMCkpOwogLSAodm9pZClfZ2V0SXNQcmV2YWxlbnREb21haW46KE5TVVJMICop
ZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKLS0gKHZvaWQpX2dl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeToodm9pZCAoXikoTlNBcnJheTxfV0tS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eSAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
dm9pZClfY2xlYXJQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfY2xlYXJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClf
aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyRmlyc3RQYXJ0eTooTlNVUkwgKilmaXJzdFBh
cnR5VVJMIHRoaXJkUGFydHk6KE5TVVJMICopdGhpcmRQYXJ0eVVSTCBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldFRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGU6KEJPT0wpZW5hYmxlZCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50
ZXJhY3Rpb246KEJPT0wpb25seU9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9uIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc3RhdGlz
dGljc0RhdGFiYXNlSGFzQWxsVGFibGVzOih2b2lkICheKShCT09MKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
LSAodm9pZClfZ2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5Oih2b2lkICheKShO
U0FycmF5PF9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5ICo+ICopKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7Cist
ICh2b2lkKV9jbGVhclByZXZhbGVudERvbWFpbjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CistICh2b2lkKV9jbGVhclJlc291cmNlTG9hZFN0
YXRpc3RpY3M6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CistICh2b2lkKV9pc1JlZ2lzdGVyZWRBc1N1
YnJlc291cmNlVW5kZXJGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlVUkwgdGhpcmRQYXJ0
eTooTlNVUkwgKil0aGlyZFBhcnR5VVJMIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09M
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3Mo
MTMuNCkpOworLSAodm9pZClfc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTooQk9PTCll
bmFibGVkIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbjooQk9PTClvbmx5T25TaXRl
c1dpdGhvdXRVc2VySW50ZXJhY3Rpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4w
KSk7CistICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6KHZvaWQgKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSk7CiAtICh2b2lkKV9wcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzOih2b2lkIChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwg
aW9zKDEzLjApKTsKLS0gKHZvaWQpX2FwcEJvdW5kRG9tYWluczoodm9pZCAoXikoTlNBcnJheTxO
U1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfYXBwQm91bmRTY2hlbWVzOih2
b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9h
cHBCb3VuZERvbWFpbnM6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZv
aWQpX2FwcEJvdW5kU2NoZW1lczoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwog
CiAtICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46KE5TQXJyYXkgKiljZXJ0aWZpY2F0
ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCmluZGV4IGVhODIwMzJhMWNkYWNhNmI0NmU5YmMx
ZmNhMDVkOGRlOTAwNDVmMTkuLjdlYTUyMjUzNjA0Y2JjZmEwNWU5ODMwYjllZGM0NTNhYjE4Y2Q4
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3du
bG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9h
ZC5oCkBAIC00Myw2ICs0Myw2IEBAIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tEb3dubG9hZCIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKnJlZGlyZWN0Q2hh
aW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB3YXNVc2VySW5pdGlhdGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TRGF0YSAqcmVzdW1lRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0ZyYW1l
SW5mbyAqb3JpZ2luYXRpbmdGcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0Zy
YW1lSW5mbyAqb3JpZ2luYXRpbmdGcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQp
LCBpb3MoMTMuNCkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRnJhbWVUcmVlTm9kZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0ZyYW1lVHJlZU5vZGUuaAppbmRleCBhYjAyMGU4ZWE5MTFjMzYxOTA0YmZh
MjhmZWY1ODgzYTRmZGQ4MmMxLi5iNTY3MGNjNmQ3YTYxMzZjMDYxMmFiYjlhNDE5N2I5NWM2MjU2
NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnJh
bWVUcmVlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
cmFtZVRyZWVOb2RlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRnJh
bWVJbmZvLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpCiBA
aW50ZXJmYWNlIF9XS0ZyYW1lVHJlZU5vZGUgOiBXS0ZyYW1lSW5mbwogCiArIChpbnN0YW5jZXR5
cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0lucHV0RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnB1dERlbGVnYXRlLmgKaW5kZXggN2U0NzI4YjhhZmM5Njg4NDEwNmVj
NDY1YWY5MzdjZjk3MzlhNDNjMS4uNzkyNmRmYjMyNjI0YzU4MGUxZmFjZmM2MjYzN2RkNDAxNTI0
NmJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
cHV0RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5wdXREZWxlZ2F0ZS5oCkBAIC01NSw3ICs1NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5KSB7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTdGFydElucHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1J
bnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiAt
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZvY3VzUmVxdWlyZXNTdHJvbmdQ
YXNzd29yZEFzc2lzdGFuY2U6KGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KWluZm8gV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTIuMCkpOwogCi0tIChOU0RpY3Rpb25hcnk8aWQsIE5TU3RyaW5nICo+
ICopX3dlYlZpZXdBZGRpdGlvbmFsQ29udGV4dEZvclN0cm9uZ1Bhc3N3b3JkQXNzaXN0YW5jZToo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Cist
IChOU0RpY3Rpb25hcnk8aWQsIE5TU3RyaW5nICo+ICopX3dlYlZpZXdBZGRpdGlvbmFsQ29udGV4
dEZvclN0cm9uZ1Bhc3N3b3JkQXNzaXN0YW5jZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKGlvcygxMy40KSk7CiAKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgc2hvdWxkUmV2ZWFsRm9jdXNPdmVybGF5Rm9ySW5wdXRTZXNzaW9uOihpZCA8X1dLRm9y
bUlucHV0U2Vzc2lvbj4paW5wdXRTZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjApKTsK
IC0gKENHRmxvYXQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZm9jdXNlZEVsZW1lbnRD
b250ZXh0Vmlld0hlaWdodEZvckZpdHRpbmdTaXplOihDR1NpemUpZml0dGluZ1NpemUgaW5wdXRT
ZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0U2Vzc2lvbj4paW5wdXRTZXNzaW9uIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEyLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mby5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvLmgKaW5kZXggMWE3M2Vh
MzM3MDBmN2ViN2QyMjIzNGVlMjBhMzZmYzZkZDI2M2UzMS4uOWJiYmU4ZWY0ZDkzYWZiNTFkZmVj
MDhiOGNiMWJlOTAzYjVkNjQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvLmgKQEAgLTM4
LDkgKzM4LDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW5zcGVjdG9yRGVidWdn
YWJsZVR5cGUpIHsKICAgICBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZVNlcnZpY2VXb3JrZXIs
CiAgICAgX1dLSW5zcGVjdG9yRGVidWdnYWJsZVR5cGVQYWdlLAogICAgIF9XS0luc3BlY3RvckRl
YnVnZ2FibGVUeXBlV2ViUGFnZSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwg
aW9zKDEzLjQpKTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40
KSkKIEBpbnRlcmZhY2UgX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm8gOiBOU09iamVjdCA8TlND
b3B5aW5nPgogQHByb3BlcnR5IChub25hdG9taWMpIF9XS0luc3BlY3RvckRlYnVnZ2FibGVUeXBl
IGRlYnVnZ2FibGVUeXBlOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICp0
YXJnZXRQbGF0Zm9ybU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggNzIy
NmNjMmNiNjA1ZDIzODRiNWZkZjkyMTBhYzczMWI0MTYxMGMxZS4uNWYyMTM5NzBhY2ZjMDM5Njgz
OWE2MTNiYjhlZTk0MDdiZmU4ODgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApA
QCAtMzIsNyArMzIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5T
Q29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TVVJMICppbmplY3RlZEJ1
bmRsZVVSTDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1NldDxDbGFzcz4gKmN1c3Rv
bUNsYXNzZXNGb3JQYXJhbWV0ZXJDb2RlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU2V0
PENsYXNzPiAqY3VzdG9tQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50
ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50IFdLX0FQSV9ERVBSRUNBVEVEKCJJdCBpcyBubyBsb25n
ZXIgcG9zc2libGUgdG8gbGltaXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMiLCBtYWNvcygxMC4w
LCAxMC4xNSksIGlvcygxLjAsIDEzLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVz
ZXNTaW5nbGVXZWJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMu
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqY3Vz
dG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CkBAIC01Miw3ICs1Miw3IEBAIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMpIE5TSW50
ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJpZGUgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBbV0tXZWJz
aXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdIHRvIGxpbWl0IGRpc2sgY2FjaGUg
c2l6ZSB0byAwIiwgbWFjb3MoMTAuMTEsIDEwLjE0LjQpLCBpb3MoOS4wLCAxMi4yKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheSAqY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVt
ZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqYWx3
YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRp
dmVWYWxpZGF0aW9uRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5uZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVZh
bGlkYXRpb25FbmFibGVkIiwgbWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpLCBpb3MoMTAuMCwgV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRp
dmVWYWxpZGF0aW9uRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5uZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVZh
bGlkYXRpb25FbmFibGVkIiwgbWFjb3MoMTAuMTIsIDEwLjE1LjQpLCBpb3MoMTAuMCwgMTMuNCkp
OwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNl
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQpLCBpb3MoMTAuMywgMTIu
MikpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxp
Y2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQpLCBpb3Mo
MTAuMywgMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkQ2FwdHVyZUF1
ZGlvSW5VSVByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7
CkBAIC03MCw3ICs3MCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4
LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0pJVEVuYWJsZWQpIEJPT0wgSklU
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VE
aXJlY3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaHN0c1N0
b3JhZ2VEaXJlY3RvcnkiLCBtYWNvcygxMC4xNSwgV0tfTUFDX1RCQSksIGlvcygxMy4wLCBXS19J
T1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGNvbmZpZ3VyZUpTQ0ZvclRl
c3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGNvbmZpZ3VyZUpTQ0ZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIAogQGVuZAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2Fk
RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5oCmluZGV4IDljZjJiMzA2YjhmZjkyNzRlM2JjNjQ1YTY2MjkxOTQwZDAz
NTY2ZTIuLjg5NjZiY2IxZGI3OWQxYzY4N2E5OGM4NGQ0YzdjNzc3YmM1MTcxODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5oCkBAIC0zMCw3ICszMCw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpCiBAcHJvdG9j
b2wgX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUgPE5TT2JqZWN0PgogCiBAb3B0aW9uYWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJ
bmZvLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2Fk
SW5mby5oCmluZGV4IGJiYWRjYmJmNThiMjM2ZjBhYmU5NTgwZjVmMzI5MWQ0YmEzYWMzNzguLmIw
ODBhMGVlZTMyYTRlZmI5ZTUwMGJjNmM1NzVkZWYxYWE2MTVhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaApA
QCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tSZXNvdXJjZUxv
YWRJbmZvUmVzb3VyY2VUeXBlKSB7CiAgICAgX1dLUmVzb3VyY2VMb2FkSW5mb1Jlc291cmNlVHlw
ZU90aGVyID0gLTEsCiB9OwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKQogQGludGVyZmFjZSBfV0tSZXNvdXJjZUxvYWRJbmZvIDogTlNPYmplY3QgPE5TU2VjdXJl
Q29kaW5nPgogCiArIChpbnN0YW5jZXR5cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NGaXJzdFBhcnR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkuaAppbmRleCAxN2Q2Mzg3ZTFhNTU5OGY1
MDEzZDRlYjZjM2U1OTVhNDQ3MWNhNzEyLi5lMDllZWQ2MzQ0NTdjMWU4MzU4ZTliM2YxNGZjYzEw
NzhkMzZjMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHku
aApAQCAtMjcsNyArMjcsNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKQogQGludGVyZmFjZSBfV0tSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eSA6IE5TT2JqZWN0CiAKICsgKGluc3RhbmNldHlw
ZSluZXcgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhp
cmRQYXJ0eS5oCmluZGV4IGQxODFhZjEyOTY5MGQ1M2U1OThmMjRkMWZkMDBjMWM0MGVhNzM1Y2Eu
LmRjMDQ1YWJiM2I3YzZhNTEyZjEzODVmZjE4YjkzNDJlMDg3ZDA1ZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGhpcmRQYXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eS5oCkBAIC0yOSw3ICsyOSw3IEBAIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiAKIEBjbGFzcyBfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmly
c3RQYXJ0eTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSkK
IEBpbnRlcmZhY2UgX1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkgOiBOU09iamVj
dAogCiArIChpbnN0YW5jZXR5cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlw
dWxhdGlvbkNvbmZpZ3VyYXRpb24uaAppbmRleCAzZjIxYmU4MTlmZWUzMGIxNWY5Y2E2MzAyNWVj
MGI2OGM4NGE1MzE5Li41M2Q3YzgwNmE5MDkzOGI4NDIwODY4NTM2MDEyMTZjYzI3YzMyNDdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlw
dWxhdGlvbkNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaApAQCAtMjgsNyArMjgsNyBA
QAogCiBAY2xhc3MgX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGU7CiAKLVdLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpCiBAaW50ZXJmYWNlIF9XS1RleHRN
YW5pcHVsYXRpb25Db25maWd1cmF0aW9uIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgKj4gKmV4
Y2x1c2lvblJ1bGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaAppbmRl
eCAyMGMxMzlkZTJhZjM3NGM1ZmFmMzI2MGExZmI4ZTFlZTRiMmI4OTZiLi41ZDA3ZTVjMWFiMmUy
OTNlOTEwZjM2NjE3YjA5NWI0MTYwODA3M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4
Y2x1c2lvblJ1bGUuaApAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpCiBAaW50ZXJmYWNlIF9XS1RleHRNYW5p
cHVsYXRpb25FeGNsdXNpb25SdWxlIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWluaXQg
TlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oCmluZGV4IDRiZDhkNmEyNjM2YzNj
ZjBhZTM4OTU2ODMyZTNkYWQwM2E5MjgwZjcuLjFlNjNkODBhNzRhZjY5NGJhMjlkNDdjMGJmZWQ3
MzMwNTk5ZmUxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oCkBAIC0zMCw3ICszMCw3IEBACiAK
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE1
LjQpLCBpb3MoMTMuNCkpCiBAaW50ZXJmYWNlIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtIDogTlNP
YmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CkBAIC00NCw3ICs0
NCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKQogCiBAZW5kCiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVs
YXRpb25JdGVtRXJyb3JEb21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5p
cHVsYXRpb25JdGVtRXJyb3JEb21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLVGV4dE1hbmlwdWxhdGlv
bkl0ZW1FcnJvckNvZGUpIHsKICAgICBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbUVycm9yTm90QXZh
aWxhYmxlLApAQCAtNTIsOCArNTIsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tU
ZXh0TWFuaXB1bGF0aW9uSXRlbUVycm9yQ29kZSkgewogICAgIF9XS1RleHRNYW5pcHVsYXRpb25J
dGVtRXJyb3JJbnZhbGlkSXRlbSwKICAgICBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbUVycm9ySW52
YWxpZFRva2VuLAogICAgIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtRXJyb3JFeGNsdXNpb25WaW9s
YXRpb24sCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKLVdL
X0VYVEVSTiBOU0Vycm9yVXNlckluZm9LZXkgY29uc3QgX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW1F
cnJvckl0ZW1LZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK1dLX0VYVEVSTiBOU0Vycm9yVXNlckluZm9LZXkgY29uc3QgX1dLVGV4dE1hbmlw
dWxhdGlvbkl0ZW1FcnJvckl0ZW1LZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9z
KDE0LjApKTsKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmgK
aW5kZXggMzMzZTMzZTEwZmVmMjZmNzRiOWU0MDhkNzQ3YTI4ZWY3YWJiYmY1MC4uMTBmMjk2YjVi
NmQyMmM4MjNmODYyMzIzNjgzMDczMDIyZmJhOTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4u
aApAQCAtMjgsMTIgKzI4LDEyIEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlblVzZXJJbmZvRG9j
dW1lbnRVUkxLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25U
b2tlblVzZXJJbmZvVGFnTmFtZUtleSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVGV4dE1h
bmlwdWxhdGlvblRva2VuVXNlckluZm9Sb2xlQXR0cmlidXRlS2V5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcg
KiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW5Vc2VySW5mb0RvY3VtZW50VVJMS2V5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CitXS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW5Vc2VySW5mb1RhZ05hbWVLZXkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKK1dLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlblVzZXJJbmZvUm9sZUF0dHJpYnV0ZUtl
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuVXNlckluZm9WaXNpYmlsaXR5
S2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpCiBAaW50ZXJm
YWNlIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50V29ybGQu
aAppbmRleCA4NzAzMmQ3ZjE2ZWQyMjk1YTI3ODIyNTE4MDJlYmY1OTExODE1MDVjLi5kNWRjNTZl
YjgxYjFmMWJiNzJkMWMzZjRlMDA1ZmZkZWFkZWQyMmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudFdvcmxkLmgKQEAgLTI3
LDcgKzI3LDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0NvbnRlbnRXb3JsZCIsIG1hY29zKDEwLjEyLCBXS19N
QUNfVEJBKSwgaW9zKDEwLjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJXS0NvbnRlbnRXb3JsZCIsIG1hY29zKDEwLjEyLCAxMS4wKSwgaW9zKDEw
LjAsIDE0LjApKQogQGludGVyZmFjZSBfV0tVc2VyQ29udGVudFdvcmxkIDogTlNPYmplY3QKIAog
KyAoX1dLVXNlckNvbnRlbnRXb3JsZCAqKXdvcmxkV2l0aE5hbWU6KE5TU3RyaW5nICopbmFtZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5
bGVTaGVldC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHls
ZVNoZWV0LmgKaW5kZXggMjk1NzdjZGFjNDFmMmUzZDAwNjFkN2YwMDBmMzU4NDY5YjExNzY5Yy4u
NDk3NGUxNDIxNGUyYmIzZTk4MjMyNWI4ODViYWIzM2U1NGY4Mzk5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgKQEAg
LTM1LDcgKzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS1VzZXJTdHlsZUxldmVsKSB7CiAgICAgX1dLVXNlclN0eWxlVXNlckxldmVs
LAogICAgIF9XS1VzZXJTdHlsZUF1dGhvckxldmVsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTEuMCksIGlvcygxNC4wKSk7CiAKIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSkKIEBpbnRlcmZhY2UgX1dLVXNlclN0eWxlU2hlZXQgOiBOU09iamVjdCA8TlNDb3B5
aW5nPgpAQCAtNDgsNyArNDgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpCiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilz
b3VyY2UgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5OwogCi0tIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvcldLV2ViVmlldzoo
bnVsbGFibGUgV0tXZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1h
aW5GcmFtZU9ubHkgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KG51bGxhYmxlIE5TQXJyYXk8
TlNTdHJpbmcgKj4gKilpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczoobnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWV4Y2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzIGJhc2VVUkw6KG51bGxhYmxlIE5TVVJMICopYmFzZVVSTCBsZXZlbDooX1dL
VXNlclN0eWxlTGV2ZWwpbGV2ZWwgY29udGVudFdvcmxkOihudWxsYWJsZSBXS0NvbnRlbnRXb3Js
ZCAqKWNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNlOihOU1N0cmluZyAq
KXNvdXJjZSBmb3JXS1dlYlZpZXc6KG51bGxhYmxlIFdLV2ViVmlldyAqKXdlYlZpZXcgZm9yTWFp
bkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJp
bmdzOihudWxsYWJsZSBOU0FycmF5PE5TU3RyaW5nICo+ICopaW5jbHVkZU1hdGNoUGF0dGVyblN0
cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KG51bGxhYmxlIE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBiYXNlVVJMOihudWxsYWJsZSBOU1VS
TCAqKWJhc2VVUkwgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIGNvbnRlbnRXb3JsZDoo
bnVsbGFibGUgV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNw
b25zZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaAppbmRleCAzOTM0ODY5YzM2MzcxMDdhYmI3NjgzZjcy
NGZiMGNlNTdkNWJkMmU0Li41Njg4YWY0MWJhNWI0ZGQ5ZTJkYjhiZjk3YjljOTBlMTUxYWNhNjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmgKQEAg
LTI4LDcgKzI4LDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSkKIEBpbnRlcmZhY2UgX1dLV2ViQXV0aGVudGlj
YXRpb25Bc3NlcnRpb25SZXNwb25zZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
aAppbmRleCA0NWNlMjcyNjY2MTU0YTJiZjVhMTBiZTg5NzI2NmNjYmMxYzhkOGQ2Li4zYTcyYzU1
ZjY2ODk0YTcwOGYwYWRkYWM3ODQ0YTFmMTRlNzRhMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLmgKQEAgLTM5LDcgKzM5LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdCkgewogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxSZXN1bHRVbmF2YWlsYWJsZSwKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0
UHJlc2VudGVkLAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHREaWROb3RQcmVz
ZW50LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogCiB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRl
KSB7CiAgICAgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU11bHRpcGxlTkZDVGFnc1By
ZXNlbnQsCkBAIC01MCw0OCArNTAsNDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZSkgewogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVcGRhdGVMQUVycm9yLAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVM
QUV4Y2x1ZGVDcmVkZW50aWFsc01hdGNoZWQsCiAgICAgX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bFVwZGF0ZUxBTm9DcmVkZW50aWFsLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQp
LCBpb3MoMTMuNCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tXZWJBdXRoZW50
aWNhdGlvblJlc3VsdCkgewogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0U3VjY2VlZGVk
LAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0RmFpbGVkLAotfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tXZWJBdXRoZW50aWNhdGlvblRyYW5zcG9ydCkgewogICAgIF9XS1dlYkF1dGhlbnRp
Y2F0aW9uVHJhbnNwb3J0VVNCLAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uVHJhbnNwb3J0TkZD
LAogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uVHJhbnNwb3J0SW50ZXJuYWwsCi19IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiAKIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS1dlYkF1dGhlbnRpY2F0aW9uVHlwZSkgewogICAgIF9XS1dlYkF1dGhlbnRp
Y2F0aW9uVHlwZUNyZWF0ZSwKICAgICBfV0tXZWJBdXRoZW50aWNhdGlvblR5cGVHZXQsCi19IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiAKIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS0xvY2FsQXV0aGVudGljYXRvclBvbGljeSkgewogICAgIF9XS0xv
Y2FsQXV0aGVudGljYXRvclBvbGljeUFsbG93LAogICAgIF9XS0xvY2FsQXV0aGVudGljYXRvclBv
bGljeURpc2FsbG93LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tXZWJBdXRoZW50aWNhdGlvblNvdXJj
ZSkgewogICAgIF9XS1dlYkF1dGhlbnRpY2F0aW9uU291cmNlTG9jYWwsCiAgICAgX1dLV2ViQXV0
aGVudGljYXRpb25Tb3VyY2VFeHRlcm5hbCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4w
KSwgaW9zKDE0LjApKTsKIAogLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS83MTUwOTE0MT4gT3B0
aW1pemUgdGhlIGRlbGVnYXRlIGZvciB0aGUgQXV0aGVudGljYXRpb25TZXJ2aWNlLmZyYW1ld29y
ay4KIEBwcm90b2NvbCBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgPE5TT2JqZWN0
PgogCiBAb3B0aW9uYWwKIAotLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bCAqKXBhbmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVcGRhdGUpdXBkYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsICopcGFuZWwgZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OihfV0tX
ZWJBdXRoZW50aWNhdGlvblJlc3VsdClyZXN1bHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwgKilwYW5lbCByZXF1ZXN0UElOV2l0aFJlbWFpbmluZ1JldHJpZXM6KE5TVUlu
dGVnZXIpcmV0cmllcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLS0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilw
YW5lbCBzZWxlY3RBc3NlcnRpb25SZXNwb25zZTooTlNBcnJheSA8IF9XS1dlYkF1dGhlbnRpY2F0
aW9uQXNzZXJ0aW9uUmVzcG9uc2UgKj4gKilyZXNwb25zZXMgc291cmNlOihfV0tXZWJBdXRoZW50
aWNhdGlvblNvdXJjZSlzb3VyY2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1dlYkF1
dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQp
cGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkZWNpZGVQb2xpY3lGb3JM
b2NhbEF1dGhlbnRpY2F0b3JXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0xvY2Fs
QXV0aGVudGljYXRvclBvbGljeSBwb2xpY3kpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXBhbmVs
OihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgdXBkYXRlV2ViQXV0aGVudGljYXRp
b25QYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZSl1cGRhdGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKKy0gKHZvaWQpcGFuZWw6KF9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5l
bFdpdGhSZXN1bHQ6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KXJlc3VsdCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOworLSAodm9pZClwYW5lbDooX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHJlcXVlc3RQSU5XaXRoUmVtYWluaW5nUmV0cmll
czooTlNVSW50ZWdlcilyZXRyaWVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmlu
ZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBp
b3MoMTMuNCkpOworLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBh
bmVsIHNlbGVjdEFzc2VydGlvblJlc3BvbnNlOihOU0FycmF5IDwgX1dLV2ViQXV0aGVudGljYXRp
b25Bc3NlcnRpb25SZXNwb25zZSAqPiAqKXJlc3BvbnNlcyBzb3VyY2U6KF9XS1dlYkF1dGhlbnRp
Y2F0aW9uU291cmNlKXNvdXJjZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLV2ViQXV0
aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZSAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClwYW5lbDooX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGRlY2lkZVBvbGljeUZvckxvY2FsQXV0aGVudGlj
YXRvcldpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLTG9jYWxBdXRoZW50aWNhdG9y
UG9saWN5IHBvbGljeSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIAogQGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
NS40KSwgaW9zKDEzLjQpKQogQGludGVyZmFjZSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIDog
TlNPYmplY3QKIAogQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCB3ZWFrKSBpZCA8X1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiBkZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggNTRmMTE1MWE1YTRmZTYzMTNhNzUyNjZhMzAx
Njg5YmMwMDAwNzVhOC4uZDg1ZGIzMzQzYTQ1N2I2ZTJhZWFjMGJhZjY4MmZjYWEyOGY5OWJjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTQyLDE2ICs0Miwx
NiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQUHJveHk6KSBOU1VS
TCAqaHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQU1By
b3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMu
MCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbmV0d29ya0NhY2hlU3BlY3VsYXRpdmVW
YWxpZGF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZmFzdFNlcnZlclRydXN0
RXZhbHVhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIHBlck9yaWdp
blN0b3JhZ2VRdW90YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmlu
ZyAqYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxv
d3NDZWxsdWxhckFjY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGVnYWN5VExTRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU0RpY3Rpb25hcnkgKnByb3h5
Q29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmlu
ZyAqZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJl
dmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgbmV0d29ya0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRl
Z2VyIHBlck9yaWdpblN0b3JhZ2VRdW90YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQp
LCBpb3MoMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0
cmluZyAqYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTUuNCksIGlvcygxMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NDZWxs
dWxhckFjY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTQuMCkpOwor
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGVnYWN5VExTRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51
bGxhYmxlLCBjb3B5KSBOU0RpY3Rpb25hcnkgKnByb3h5Q29uZmlndXJhdGlvbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOworQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgcHJldmVudHNTeXN0ZW1IVFRQUHJveHlBdXRoZW50aWNhdGlvbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgcmVxdWlyZXNTZWN1cmVIVFRQU1Byb3h5Q29ubmVjdGlvbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAvLyBUaGVzZSBwcm9wZXJ0aWVzIG9ubHkgbWFr
ZSBzZW5zZSBmb3IgcGVyc2lzdGVudCBkYXRhIHN0b3JlcywgYW5kIHdpbGwgdGhyb3cKIC8vIGFu
IGV4Y2VwdGlvbiBpZiBzZXQgZm9yIG5vbi1wZXJzaXN0ZW50IHN0b3Jlcy4KQEAgLTYyLDIyICs2
MiwyMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX2Nh
Y2hlU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
MTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5h
dGlvbkRlbGF5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VS
TCAqbmV0d29ya0NhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHkpIE5TVVJMICpkZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmFwcGxpY2F0aW9u
Q2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJs
ZSwgY29weSkgTlNVUkwgKm1lZGlhQ2FjaGVEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBu
dWxsYWJsZSwgY29weSkgTlNVUkwgKm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBOU1VJbnRlZ2VyIHRlc3RTcGVlZE11bHRpcGxpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzU2VydmVyUHJlY29ubmVjdCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgc2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1VSTCAqbmV0d29ya0NhY2hlRGlyZWN0b3J5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICpkZXZpY2VJZEhhc2hTYWx0c1N0b3Jh
Z2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKmFwcGxpY2F0aW9u
Q2FjaGVEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmFwcGxp
Y2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC40KSwgaW9zKDEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSkgTlNVUkwgKm1lZGlhQ2FjaGVEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NS40KSwgaW9zKDEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNVUkwgKm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNS40KSwgaW9zKDEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIHRl
c3RTcGVlZE11bHRpcGxpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEz
LjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHN1cHByZXNzZXNDb25uZWN0aW9uVGVy
bWluYXRpb25PblN5c3RlbUNoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBp
b3MoMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzU2VydmVyUHJlY29u
bmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VEaXJl
Y3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKmFsdGVybmF0aXZlU2VydmljZXNTdG9yYWdlRGly
ZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TVVJMICphbHRlcm5h
dGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjAp
LCBpb3MoMTQuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
VVJMICpzdGFuZGFsb25lQXBwbGljYXRpb25VUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJs
ZSwgY29weSkgTlNVUkwgKnN0YW5kYWxvbmVBcHBsaWNhdGlvblVSTCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAvLyBUZXN0aW5nIG9ubHkuCiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVQb2xpY2llcy5oCmluZGV4IDZmODdlNDJiMjFlZTY5MDFiZjc2MDg5Mzg4NGQyODU5OTUzYTU5
ZTUuLjg2YmFlZjJiNTU5MjIzMTJlNTRiNjllY2I2MjhkOWRmNTEyZTIxNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVz
LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogQGNsYXNzIFdLV2Vic2l0ZURhdGFTdG9yZTsKIAotV0tf
Q0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnBhZ2VQcmVmZXJlbmNlcyIs
IG1hY29zKDEwLjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpCitXS19D
TEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2VicGFnZVByZWZlcmVuY2VzIiwg
bWFjb3MoMTAuMTIuMywgMTAuMTUuNCksIGlvcygxMC4zLCAxMy40KSkKIEBpbnRlcmZhY2UgX1dL
V2Vic2l0ZVBvbGljaWVzIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
Y29udGVudEJsb2NrZXJzRW5hYmxlZDsKQEAgLTM4LDcgKzM4LDcgQEAgV0tfQ0xBU1NfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnBhZ2VQcmVmZXJlbmNlcyIsIG1hY29zKDEwLjEy
LjMsIFdLX00KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlUG9wVXBQb2xpY3kgcG9w
VXBQb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBXS1dlYnNpdGVEYXRhU3RvcmUgKndlYnNpdGVEYXRh
U3RvcmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgTlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudEFzU2l0ZVNw
ZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbU5hdmlnYXRvclBs
YXRmb3JtIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzUG9saWN5IGRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>