<?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>237099</bug_id>
          
          <creation_ts>2022-02-23 11:50:51 -0800</creation_ts>
          <short_desc>Adopt more widely the new URL constructor that takes in a String</short_desc>
          <delta_ts>2022-02-23 15:20:26 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>237068</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845247</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 11:50:51 -0800</bug_when>
    <thetext>Adopt more widely the new URL constructor that takes in a String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845250</commentid>
    <comment_count>1</comment_count>
      <attachid>453008</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 11:57:15 -0800</bug_when>
    <thetext>Created attachment 453008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845301</commentid>
    <comment_count>2</comment_count>
      <attachid>453008</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-23 13:56:25 -0800</bug_when>
    <thetext>Comment on attachment 453008
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:881
&gt; -    URL url(URL(), uriString);
&gt; +    URL url { uriString };
&gt;      return url;

I would have merged these into one line.

&gt; Source/WebCore/platform/win/PasteboardWin.cpp:614
&gt; +        URL kurl { url };

&quot;kurl&quot;, ha ha ha</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845322</commentid>
    <comment_count>3</comment_count>
      <attachid>453029</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 14:34:18 -0800</bug_when>
    <thetext>Created attachment 453029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845342</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-23 15:19:46 -0800</bug_when>
    <thetext>Committed r290394 (247708@main): &lt;https://commits.webkit.org/247708@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453029.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845344</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-23 15:20:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/89381477&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453008</attachid>
            <date>2022-02-23 11:57:15 -0800</date>
            <delta_ts>2022-02-23 14:34:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237099-20220223115714.patch</filename>
            <type>text/plain</type>
            <size>172013</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDljZTJkY2YwNDcwOTU2Y2Q1NDQ5YzY0
MTI4YTIyZDQ5ODUyNzY0OTEuLjkxNTIwMmY5N2Y5NTJlYWRiZmQ4NGY1YWNlNmYzZTlmMzRhOGFj
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBtb3JlIHdpZGVseSB0aGUgbmV3IFVSTCBjb25z
dHJ1Y3RvciB0aGF0IHRha2VzIGluIGEgU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9VUkwuY3BwOgorICAgICAgICAoV1RGOjphYm91
dEJsYW5rVVJMKToKKyAgICAgICAgKFdURjo6YWJvdXRTcmNEb2NVUkwpOgorCiAyMDIyLTAyLTIz
ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgVGhyZWFk
IHNhZmV0eSBhbmFseXNpcyBtYWNyb3MgYXJlIGNvbmZ1c2luZyBmb3Igbm9uLUxvY2sgdXNlLWNh
c2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYjA5M2U1ZjI2MTY1MDI3MGI3NTc2ZTQ2YTg3YzFkMWQ4OTAyMGRi
ZC4uZWE0NjgzYTNjMmVjMjEzNDQ4ZDdmMTVmNzI3YTQ0MWMyYTUzMTA4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ2IEBACisyMDIyLTAyLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRvcHQgbW9yZSB3aWRlbHkgdGhlIG5ldyBVUkwgY29uc3RydWN0b3Ig
dGhhdCB0YWtlcyBpbiBhIFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3MDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZVBheW1lbnRNZXRob2RJZGVu
dGlmaWVyKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4dDo6Y29tcGxldGVVUkwgY29uc3QpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVm
ZXJyZXIpOgorICAgICAgICAqIGh0bWwvRE9NVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVVSTDo6cmV2b2tlT2JqZWN0VVJMKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVD
bGlja01lYXN1cmVtZW50IGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6
ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKToKKyAgICAgICAgKiBw
YWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpleHRyYWN0SW5uZXJVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2Nh
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChjb252ZXJ0UGxheWJpblVSSSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1VSTFNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c291cFVSSVRvVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmaWxlc3lzdGVtUGF0aEZyb21VcmxPclRpdGxlKToKKyAgICAg
ICAgKiB0ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSSk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleTo6ZnJvbURhdGFiYXNlS2V5KToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRz
KToKKwogMjAyMi0wMi0yMyAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBmb3IgRGViaWFuIFN0YWJsZSBh
ZnRlciByMjkwMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYxZGE5MmE4Mjg3NGJiOWIzMTBiN2Y3YTM0YTNhNTRi
MWQ5NjNhYmUuLjk0MGE1Zjg4YjliMDczODVmNjU5YjUwM2QzMWZmMjI5NGQ4NTE3MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTU0IEBACisyMDIyLTAyLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgbW9yZSB3aWRlbHkgdGhlIG5ldyBVUkwgY29uc3Ry
dWN0b3IgdGhhdCB0YWtlcyBpbiBhIFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0
ZSBVUkxTZXNzaW9uOnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmg6CisgICAgICAgIChB
UEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKToKKyAgICAgICAgKiBTaGFyZWQv
QVBJL0FQSVVSTC5oOgorICAgICAgICAoQVBJOjpVUkw6OnBhcnNlVVJMSWZOZWNlc3NhcnkgY29u
c3QpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3BwOgorICAgICAgICAo
V0tVUkxSZXF1ZXN0Q3JlYXRlV2l0aFdLVVJMKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2dsaWIv
V2ViS2l0VVJJUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3Vy
aSk6CisgICAgICAgICogU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5tbToKKyAgICAgICAg
KEFQSTo6V2ViQXJjaGl2ZVJlc291cmNlOjpXZWJBcmNoaXZlUmVzb3VyY2UpOgorICAgICAgICAq
IFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpzaG93UGF5bWVudFVJKToKKyAg
ICAgICAgKiBTaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcDoKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRh
KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcDoKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxTZWxlY3Rpb25EYXRhPjo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcDoKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHA6CisgICAg
ICAgIChmaWxlUGF0aHNGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlTG9hZFVSTCk6CisgICAgICAgIChXS1BhZ2VMb2Fk
VVJMV2l0aFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOgorICAgICAgICAoV0tQYWdlTG9h
ZFVSTFdpdGhVc2VyRGF0YSk6CisgICAgICAgIChXS1BhZ2VMb2FkQWx0ZXJuYXRlSFRNTFN0cmlu
Z1dpdGhVc2VyRGF0YSk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChX
S1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRl
c3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHA6CisgICAg
ICAgIChXS1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdLUGFnZUdyb3Vw
QWRkVXNlclNjcmlwdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOgorICAgICAgICAoV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzRXhwaXJlZFN0YXRpc3RpYyk6CisgICAgICAgIChXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAg
ICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3VicmVzb3VyY2VVbmRlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8pOgorICAgICAgICAoV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNl
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVk
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQp
OgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RG
cm9tKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGlj
c1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKToKKyAgICAgICAg
KFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzTG9jYWxTdG9yYWdlKToKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNJc29sYXRlZFNlc3Npb24pOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RvU2Ft
ZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRl
c3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlU2V0QXBwQm91bmREb21haW5zRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL2N1cmwvV0tXZWJzaXRlRGF0YVN0b3JlUmVmQ3VybC5jcHA6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVFbmFibGVDdXN0b21OZXR3b3JrUHJveHlTZXR0aW5ncyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAo
d2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2dldF9jb29raWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAod2Via2l0X3NlY3Vy
aXR5X29yaWdpbl9uZXdfZm9yX3VyaSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2xvYWRfYWx0ZXJuYXRl
X2h0bWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF91aUV2ZW50QXR0cmlidXRpb25dKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjphZGRTaW5nbGVDb29raWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL0xlZ2FjeURvd25sb2FkQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpMZWdhY3lEb3dubG9hZENsaWVudDo6bGVnYWN5RGlkU3RhcnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6
Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAgICgtW1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6aXNVUkxLbm93bkhTVFNIb3N0IGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5Ojpsb2FkKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5Ojppc01haW5PclRlc3RJbnNwZWN0b3JQYWdlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6b3BlbkxvY2FsSW5zcGVjdG9y
RnJvbnRlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYklu
c3BlY3RvclVJUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0
b3JVSVByb3h5OjpwbGF0Zm9ybVNhdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
Z3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybVNhdmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NG
b3JSZWxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRGaWxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0
ZWRDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVsb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6Y2hlY2tJZk5hdmlnYXRpb25Db250YWluc0RhdGFUcmFuc2Zlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2hlY2tVUkxSZWNlaXZlZEZy
b21DdXJyZW50T3JQcmV2aW91c1dlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNz
Rm9yTmF2aWdhdGlvbkludGVybmFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojphc3N1bWVSZWFkQWNj
ZXNzVG9CYXNlVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjaGVja1VS
TFJlY2VpdmVkRnJvbVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjppbml0aWFsaXplQXBwQm91bmREb21haW5zKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmRlY29kZUxlZ2FjeVNlc3Npb25TdGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYXltZW50Q29vcmRpbmF0b3I6OnZhbGlkYXRlTWVyY2hhbnQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHA6CisgICAgICAgIChX
S0J1bmRsZUZyYW1lQWxsb3dzRm9sbG93aW5nTGluayk6CisgICAgICAgIChXS0J1bmRsZUZyYW1l
Q29weVN1Z2dlc3RlZEZpbGVuYW1lRm9yUmVzb3VyY2VXaXRoVVJMKToKKyAgICAgICAgKFdLQnVu
ZGxlRnJhbWVDb3B5TUlNRVR5cGVGb3JSZXNvdXJjZVdpdGhVUkwpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdL
QnVuZGxlUGFnZUhhc0xvY2FsRGF0YUZvclVSTCk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VDbGVh
ckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4pOgorICAgICAgICAoV0tCdW5kbGVQYWdlR2V0QXBw
Q2FjaGVVc2FnZUZvck9yaWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpz
ZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0Ojppc1Zh
bGlkRmV0Y2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0
YXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OnRvRm9ybURhdGEpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkQWx0ZXJuYXRl
SFRNTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFt
ZSk6CisgICAgICAgICogd2VicHVzaGQvUHVzaFNlcnZpY2UubW06CisgICAgICAgIChXZWJQdXNo
RDo6UHVzaFNlcnZpY2U6OmRpZFJlY2VpdmVQdXNoTWVzc2FnZSk6CisKIDIwMjItMDItMjMgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZSBzaG91bGQgbm90IGNoYW5nZSBtZWRpYSBz
YW1wbGVzIG93bmVkIGJ5IGl0cyBvYmplY3QgaGVhcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
CmluZGV4IGIzNmQ0ODBiNGNlYWY1OTY1MjZkYTVlMmRmYjQ1NzIxOTgzMDIzYmIuLjJmZjBjYzlk
NTUyNWMwYmEwNjI4ZDVhM2FlZDIxYzdiNmUyMjUzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMi0wMi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IG1vcmUgd2lkZWx5IHRoZSBuZXcgVVJMIGNvbnN0
cnVjdG9yIHRoYXQgdGFrZXMgaW4gYSBTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTWFyc2hhbGxpbmdIZWxwZXJzLmNwcDoKKyAgICAgICAg
KiBXZWJFcnJvci5jcHA6CisgICAgICAgIChXZWJFcnJvcjo6aW5pdCk6CisgICAgICAgICogV2Vi
RnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmxvYWREYXRhKToKKyAgICAgICAgKiBXZWJW
aWV3LmNwcDoKKyAgICAgICAgKHRvVVJMKToKKwogMjAyMi0wMi0xNSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERvIHByZWxpbWluYXJ5IHdvcmsgdG8gcGFzcyBk
b21haW4gbmFtZXMgdG8gQ29yZUxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9V
UkwuY3BwIGIvU291cmNlL1dURi93dGYvVVJMLmNwcAppbmRleCBhNGFmYmFjNTZiMjU5MzQ1Njg0
ZjRkZjJhNWJiMjRiZjM5MzJiY2Q0Li5kODlhYjQ4ZGVhM2EyODdkMTkyNzI1NTRmYmJjZGFhMDI3
ZjZkODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1VSTC5jcHAKQEAgLTg5Nyw3ICs4OTcsNyBAQCBjb25zdCBVUkwmIGFib3V0QmxhbmtV
UkwoKQogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8VVJMPiBzdGF0aWNCbGFua1VSTDsK
ICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uo
b25jZUZsYWcsIFsmXSB7Ci0gICAgICAgIHN0YXRpY0JsYW5rVVJMLmNvbnN0cnVjdChVUkwoKSwg
JmFib3V0QmxhbmtTdHJpbmcpOworICAgICAgICBzdGF0aWNCbGFua1VSTC5jb25zdHJ1Y3QoJmFi
b3V0QmxhbmtTdHJpbmcpOwogICAgIH0pOwogICAgIHJldHVybiBzdGF0aWNCbGFua1VSTDsKIH0K
QEAgLTkwOCw3ICs5MDgsNyBAQCBjb25zdCBVUkwmIGFib3V0U3JjRG9jVVJMKCkKICAgICBzdGF0
aWMgTGF6eU5ldmVyRGVzdHJveWVkPFVSTD4gc3RhdGljU3JjRG9jVVJMOwogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZd
IHsKLSAgICAgICAgc3RhdGljU3JjRG9jVVJMLmNvbnN0cnVjdChVUkwoKSwgJmFib3V0U3JjRG9j
U3RyaW5nKTsKKyAgICAgICAgc3RhdGljU3JjRG9jVVJMLmNvbnN0cnVjdCgmYWJvdXRTcmNEb2NT
dHJpbmcpOwogICAgIH0pOwogICAgIHJldHVybiBzdGF0aWNTcmNEb2NVUkw7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuY3BwCmluZGV4IDU2OWE4ODhmZDBlYjMzNDRhNDA2MGMyMjNjNDU4OWIyOThlZWNhZTcuLmRm
MmI1YzI2NGYzYTVjZTJjMWUxY2I2Yjc2MzQwYTAwZmE0MGNjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3Bw
CkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIGJvb2wgaXNWYWxpZFVSTEJhc2VkUGF5bWVudE1l
dGhvZElkZW50aWZpZXIoY29uc3QgVVJMJiB1cmwpCiAvLyBodHRwczovL3d3dy53My5vcmcvVFIv
cGF5bWVudC1tZXRob2QtaWQvI3ZhbGlkaXR5CiBzdGQ6Om9wdGlvbmFsPFBheW1lbnRSZXF1ZXN0
OjpNZXRob2RJZGVudGlmaWVyPiBjb252ZXJ0QW5kVmFsaWRhdGVQYXltZW50TWV0aG9kSWRlbnRp
Zmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7Ci0gICAgVVJMIHVybCB7IFVSTCgpLCBp
ZGVudGlmaWVyIH07CisgICAgVVJMIHVybCB7IGlkZW50aWZpZXIgfTsKICAgICBpZiAoIXVybC5p
c1ZhbGlkKCkpIHsKICAgICAgICAgaWYgKGlzVmFsaWRTdGFuZGFyZGl6ZWRQYXltZW50TWV0aG9k
SWRlbnRpZmllcihpZGVudGlmaWVyKSkKICAgICAgICAgICAgIHJldHVybiB7IGlkZW50aWZpZXIg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCmlu
ZGV4IDUzYzMyYTYwYTdlNzVmOTY2ZmM4MjZhOWM4NjZlYjY5NDUwZWYzZWMuLmRjMjM5ZmQyNTQx
ZDgyNDQwMTU2ZmRmM2FjNWIxOGJjMjIzMzk0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtMjcwLDcgKzI3MCw3IEBAIFJlc29sdmVk
VVJMIENTU1BhcnNlckNvbnRleHQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgc3RyaW5nKSBj
b25zdAogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgICAgICBpZiAoQ1NTVmFsdWU6Omlz
Q1NTTG9jYWxVUkwoc3RyaW5nKSkKLSAgICAgICAgICAgIHJldHVybiB7IHN0cmluZywgeyBVUkwo
KSwgc3RyaW5nIH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHN0cmluZywgVVJMIHsgc3RyaW5n
IH0gfTsKIAogICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1
cm4geyBzdHJpbmcsIHsgYmFzZVVSTCwgc3RyaW5nIH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDJmMGJjZDg2MzYxMzRmZjU0ZmNiOWM0NWQ3ODkwOWUzYzZhZmYzZGEuLmUxZTExM2U0
ZTAxNDJkYjNkMmNkZWNkOWJkMTQ0MDRlY2U1OWE5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNTMzNiw3ICs1MzM2LDcgQEAgU3RyaW5nIERvY3VtZW50OjpyZWZlcnJlcigpCiAgICAg
aWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoKSAmJiBmcmFtZSgpKSB7CiAgICAgICAgIGF1dG8gcmVmZXJyZXJTdHIgPSBmcmFtZSgpLT5s
b2FkZXIoKS5yZWZlcnJlcigpOwogICAgICAgICBpZiAoIXJlZmVycmVyU3RyLmlzRW1wdHkoKSkg
ewotICAgICAgICAgICAgVVJMIHJlZmVycmVyVVJMIHsgVVJMKCksIHJlZmVycmVyU3RyIH07Cisg
ICAgICAgICAgICBVUkwgcmVmZXJyZXJVUkwgeyByZWZlcnJlclN0ciB9OwogICAgICAgICAgICAg
UmVnaXN0cmFibGVEb21haW4gcmVmZXJyZXJSZWdpc3RyYWJsZURvbWFpbiB7IHJlZmVycmVyVVJM
IH07CiAgICAgICAgICAgICBpZiAoIXJlZmVycmVyUmVnaXN0cmFibGVEb21haW4ubWF0Y2hlcyhz
ZWN1cml0eU9yaWdpbigpLmRhdGEoKSkpIHsKICAgICAgICAgICAgICAgICBtX3JlZmVycmVyT3Zl
cnJpZGUgPSBVUkwgeyByZWZlcnJlclVSTC5wcm90b2NvbEhvc3RBbmRQb3J0KCkgfS5zdHJpbmco
KTsKQEAgLTYyNDgsNyArNjI0OCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRl
eHQoKQogICAgICAgICAvLyBUaGlzIGNhbiBvY2N1ciB2aWEgZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlRG9jdW1lbnQoKS4KICAgICAgICAgc2V0Q29va2llVVJMKFVSTCh7IH0sIGVtcHR5
U3RyaW5nKCkpKTsKICAgICAgICAgc2V0U2VjdXJpdHlPcmlnaW5Qb2xpY3koU2VjdXJpdHlPcmln
aW5Qb2xpY3k6OmNyZWF0ZShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpKTsKLSAgICAg
ICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9s
aWN5PihVUkwgeyB7IH0sIGVtcHR5U3RyaW5nKCkgfSwgKnRoaXMpKTsKKyAgICAgICAgc2V0Q29u
dGVudFNlY3VyaXR5UG9saWN5KG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihVUkwg
eyBlbXB0eVN0cmluZygpIH0sICp0aGlzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTg0NTYsNyArODQ1Niw3IEBAIHZvaWQgRG9jdW1lbnQ6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNm
ZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKQogCiB2b2lkIERvY3VtZW50Ojpkb3duZ3JhZGVSZWZl
cnJlclRvUmVnaXN0cmFibGVEb21haW4oKQogewotICAgIFVSTCByZWZlcnJlclVSTCB7IHsgfSwg
cmVmZXJyZXIoKSB9OworICAgIFVSTCByZWZlcnJlclVSTCB7IHJlZmVycmVyKCkgfTsKICAgICBp
ZiAocmVmZXJyZXJVUkwuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
VVJMLmNwcAppbmRleCA0MjU0YTFiMDFjZWVlNjExOTYxZDgwNDcxMjU4NTEyYjQwYjgxZjFkLi40
NDY2YzBiNGZkYjY1NTA0OGU2YzQyMTA3OGU0ODY2YzY1ZjYzZmMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01V
UkwuY3BwCkBAIC01Niw3ICs1Niw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxET01VUkw+PiBET01VUkw6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVVJMJiBiYXNlKQogCiBFeGNlcHRpb25P
cjxSZWY8RE9NVVJMPj4gRE9NVVJMOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgYmFzZSkKIHsKLSAgICBVUkwgYmFzZVVSTCB7IFVSTCB7IH0sIGJhc2UgfTsKKyAgICBV
UkwgYmFzZVVSTCB7IGJhc2UgfTsKICAgICBpZiAoIWJhc2UuaXNOdWxsKCkgJiYgIWJhc2VVUkwu
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAgICAg
cmV0dXJuIGNyZWF0ZSh1cmwsIGJhc2VVUkwpOwpAQCAtNzEsNyArNzEsNyBAQCBET01VUkw6On5E
T01VUkwoKSA9IGRlZmF1bHQ7CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTVVSTDo6c2V0SHJlZihj
b25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBVUkwgY29tcGxldGVVUkwgeyBVUkwgeyB9LCB1cmwg
fTsKKyAgICBVUkwgY29tcGxldGVVUkwgeyB1cmwgfTsKICAgICBpZiAoIWNvbXBsZXRlVVJMLmlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwogICAgIG1f
dXJsID0gV1RGTW92ZShjb21wbGV0ZVVSTCk7CkBAIC0xMTAsNyArMTEwLDcgQEAgVVJMU2VhcmNo
UGFyYW1zJiBET01VUkw6OnNlYXJjaFBhcmFtcygpCiAgICAgCiB2b2lkIERPTVVSTDo6cmV2b2tl
T2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIFVSTCB1cmwoVVJMKCksIHVybFN0cmlu
Zyk7CisgICAgVVJMIHVybCB7IHVybFN0cmluZyB9OwogICAgIFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KHVybCk7CiAgICAgcmVxdWVzdC5zZXREb21haW5Gb3JDYWNoZVBhcnRpdGlvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0LmRvbWFpbkZvckNhY2hlUGFydGl0aW9uKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IGMzMGRjNmY3YThiYWFmNTAyOGRj
MjdlNWM4ZGNlOTVkYzAzYTJmODkuLjE2OTFlMmViNzZmOGFiMGY4Y2FmZmMxOTY0NjVhM2ZlOWMz
OWFjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC00
MzIsNyArNDMyLDcgQEAgc3RkOjpvcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gSFRN
TEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3UKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICB9CiAKLSAgICBVUkwgZGVzdGluYXRpb25VUkwgeyBVUkwoKSwgYXR0
cmlidXRpb25EZXN0aW5hdGlvbkF0dHIgfTsKKyAgICBVUkwgZGVzdGluYXRpb25VUkwgeyBhdHRy
aWJ1dGlvbkRlc3RpbmF0aW9uQXR0ciB9OwogICAgIGlmICghZGVzdGluYXRpb25VUkwuaXNWYWxp
ZCgpIHx8ICFkZXN0aW5hdGlvblVSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAg
ICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVz
c2FnZUxldmVsOjpXYXJuaW5nLCAiYXR0cmlidXRpb25kZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUg
Y29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLiJfcyk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDYyNGE3ZDNhOWMwNTExNWI0OTYyOTViN2RmODkwOTRl
NzY4MTkwMzEuLmI0ZjM0MmY0YTAxZjUzOGIxYWRmMmRhZDFmNTFmYTczYjVlMjJhZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CkBAIC03MTcsNyArNzE3LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmRpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uSUQsIGMKICAgICBpZiAoIW1f
Y2xpZW50KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9jbGllbnQtPmRpZE5hdmlnYXRl
RXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCwgeyBVUkwoKSwgbmV3VVJM
U3RyaW5nIH0pOworICAgIG1fY2xpZW50LT5kaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihleHRlbnNp
b25JRCwgZXh0ZW5zaW9uVGFiSUQsIFVSTCB7IG5ld1VSTFN0cmluZyB9KTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBTdHJp
bmcmIG5ld1VSTFN0cmluZykKQEAgLTcyNSw3ICs3MjUsNyBAQCB2b2lkIEluc3BlY3RvckZyb250
ZW5kSG9zdDo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFN0cmluZyYgbmV3VVJMU3Ry
aW5nKQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX2Ns
aWVudC0+aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKHsgVVJMKCksIG5ld1VSTFN0cmluZyB9KTsK
KyAgICBtX2NsaWVudC0+aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKFVSTCB7IG5ld1VSTFN0cmlu
ZyB9KTsKIH0KIAogRXhjZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiBJbnNwZWN0b3JGcm9udGVuZEhv
c3Q6OmV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoSFRNTElGcmFtZUVsZW1lbnQmIGV4dGVu
c2lvbkZyYW1lRWxlbWVudCwgY29uc3QgU3RyaW5nJiBzY3JpcHRTb3VyY2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
aW5kZXggYTRmZmQxMzYxY2RkZTVhYjdkOTczY2QwMGQxOWE5MTBhZTllZDI5Zi4uY2IxMmNjNjk0
ZTJmYWJiZmNjNTdiOTg0M2NjNTA3MjYwOTllNDJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtOTAwLDcg
KzkwMCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdElu
V29ybGQoRnJhbWUmIGZyYW1lLCBET01XcmFwcGVyV29yCiAgICAgaWYgKG1fYm9vdHN0cmFwU2Ny
aXB0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZnJhbWUuc2NyaXB0KCkuZXZh
bHVhdGVJZ25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKG1fYm9vdHN0cmFwU2NyaXB0
LCBVUkwgeyBVUkwoKSwgIndlYi1pbnNwZWN0b3I6Ly9ib290c3RyYXAuanMiX3MgfSkpOworICAg
IGZyYW1lLnNjcmlwdCgpLmV2YWx1YXRlSWdub3JpbmdFeGNlcHRpb24oU2NyaXB0U291cmNlQ29k
ZShtX2Jvb3RzdHJhcFNjcmlwdCwgVVJMIHsgIndlYi1pbnNwZWN0b3I6Ly9ib290c3RyYXAuanMi
X3N0ciB9KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRQYWludChSZW5kZXJP
YmplY3QmIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggNGE1MDcwNTRl
MDg2NDU5NGQ4Y2VjNjVjNmE2MTBlYmExNWNmMDhlZC4uMDU3OGY2M2JlYmViMWE4N2Y0MGFmNDdi
OTQzMmI2MmU1YmRjNGMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgYm9vbCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01l
YXN1cmVtZW4KIAogc3RhdGljIFVSTCBtYWtlVmFsaWRVUkwoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpbiwgY29uc3QgY2hhciogcGF0aCkKIHsKLSAgICBVUkwgdmFsaWRVUkwgeyB7IH0s
IG1ha2VTdHJpbmcoImh0dHBzOi8vIiwgZG9tYWluLnN0cmluZygpLCBwYXRoKSB9OworICAgIFVS
TCB2YWxpZFVSTCB7IG1ha2VTdHJpbmcoImh0dHBzOi8vIiwgZG9tYWluLnN0cmluZygpLCBwYXRo
KSB9OwogICAgIHJldHVybiB2YWxpZFVSTC5pc1ZhbGlkKCkgPyB2YWxpZFVSTCA6IFVSTCB7IH07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggMDM2ZWZkMjBlNDk2MzAwY2Y4YzllN2U3OTAzMTdl
MDFkZTViYWYzOC4uODVjN2QwMTgzYWMxNmRlMTNhNzE0NmE4YWRjOTBmZDcyMTk0Mjc5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKQEAgLTg5Niw3ICs4OTYsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6c3RhcnRMb2FkaW5nRW50cnkoKQogICAgIEFTU0VSVCghbV9tYW5pZmVzdExvYWRlcik7
CiAgICAgQVNTRVJUKCFtX2VudHJ5TG9hZGVyKTsKIAotICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0
ZVJlcXVlc3QoVVJMIHsgeyB9LCBmaXJzdFBlbmRpbmdFbnRyeVVSTCB9LCBtX25ld2VzdENhY2hl
ID8gbV9uZXdlc3RDYWNoZS0+cmVzb3VyY2VGb3JVUkwoZmlyc3RQZW5kaW5nRW50cnlVUkwpIDog
bnVsbHB0cik7CisgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChVUkwgeyBmaXJzdFBl
bmRpbmdFbnRyeVVSTCB9LCBtX25ld2VzdENhY2hlID8gbV9uZXdlc3RDYWNoZS0+cmVzb3VyY2VG
b3JVUkwoZmlyc3RQZW5kaW5nRW50cnlVUkwpIDogbnVsbHB0cik7CiAKICAgICBtX2N1cnJlbnRS
ZXNvdXJjZUlkZW50aWZpZXIgPSBSZXNvdXJjZUxvYWRlcklkZW50aWZpZXI6OmdlbmVyYXRlKCk7
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9mcmFtZS5n
ZXQoKSwgbV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyLCBtX2ZyYW1lLT5sb2FkZXIoKS5kb2N1
bWVudExvYWRlcigpLCByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlIHsgfSwgbnVsbHB0cik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDAyMDAxYWIzNDMwMThhNzMy
NTU5OThmYzQ3NGNlYmZjNDlmOGM4NDIuLjdmOWUxYjdhMjcwZDJiNWRiNjFmZTk4ZDdiMTA1MDBh
N2U2Y2VlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC0zMTgs
NyArMzE4LDcgQEAgVVJMIFBhZ2VTZXJpYWxpemVyOjp1cmxGb3JCbGFua0ZyYW1lKEZyYW1lKiBm
cmFtZSkKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9ibGFua0ZyYW1lVVJMcy5maW5kKGZyYW1lKTsK
ICAgICBpZiAoaXRlcmF0b3IgIT0gbV9ibGFua0ZyYW1lVVJMcy5lbmQoKSkKICAgICAgICAgcmV0
dXJuIGl0ZXJhdG9yLT52YWx1ZTsKLSAgICBVUkwgZmFrZVVSTCB7IHsgfSwgbWFrZVN0cmluZygi
d3ljaXd5ZzovL2ZyYW1lLyIsIG1fYmxhbmtGcmFtZUNvdW50ZXIrKykgfTsKKyAgICBVUkwgZmFr
ZVVSTCB7IG1ha2VTdHJpbmcoInd5Y2l3eWc6Ly9mcmFtZS8iLCBtX2JsYW5rRnJhbWVDb3VudGVy
KyspIH07CiAgICAgbV9ibGFua0ZyYW1lVVJMcy5hZGQoZnJhbWUsIGZha2VVUkwpOwogICAgIHJl
dHVybiBmYWtlVVJMOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAppbmRl
eCAyNzM4YWQxYjlhZjQ4YmFmOTQxMTcyODM4MTk2NmQ1ZDA0MjBjNzRhLi5iNDIwNGZjZGFlMmIw
ZWVmNWFiYjhkOGY5YmNkYTYxODFmMTQwNDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmNwcApAQCAtODEsNyArODEsNyBAQCBVUkwgU2VjdXJpdHlPcmlnaW46OmV4dHJhY3RJ
bm5lclVSTChjb25zdCBVUkwmIHVybCkKIHsKICAgICAvLyBGSVhNRTogVXBkYXRlIHRoaXMgY2Fs
bHNpdGUgdG8gdXNlIHRoZSBpbm5lclVSTCBtZW1iZXIgZnVuY3Rpb24gd2hlbgogICAgIC8vIHdl
IGZpbmlzaCBpbXBsZW1lbnRpbmcgaXQuCi0gICAgcmV0dXJuIHsgVVJMKCksIFBBTDo6ZGVjb2Rl
VVJMRXNjYXBlU2VxdWVuY2VzKHVybC5wYXRoKCkpIH07CisgICAgcmV0dXJuIFVSTCB7IFBBTDo6
ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5wYXRoKCkpIH07CiB9CiAKIHN0YXRpYyBSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IGdldENhY2hlZE9yaWdpbihjb25zdCBVUkwmIHVybCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4
IDliM2Q3YmQxNmU1NWNiYmMzNzJkMjRlZjE1ODhmZjU5YzAzZTY0ZjUuLjczNDQ5YzA0OTk2MmRm
YzQ5ZTBhODQzOGU5N2EyN2ZhNmVhZjZjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtNzkzLDcgKzc5Myw3IEBAIHZvaWQg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZl
Y3RpdmVWaW9sYXRlZERpcmVjCiAgICAgICAgIGF1dG8gc3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxs
U3RhY2soSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKICAgICAgICAgYXV0byogY2Fs
bEZyYW1lID0gc3RhY2stPmZpcnN0Tm9uTmF0aXZlQ2FsbEZyYW1lKCk7CiAgICAgICAgIGlmIChj
YWxsRnJhbWUgJiYgY2FsbEZyYW1lLT5saW5lTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGluZm8u
c291cmNlRmlsZSA9IGNyZWF0ZVVSTEZvclJlcG9ydGluZyhVUkwgeyBVUkwgeyB9LCBjYWxsRnJh
bWUtPnNvdXJjZVVSTCgpIH0sIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlKTsKKyAgICAgICAg
ICAgIGluZm8uc291cmNlRmlsZSA9IGNyZWF0ZVVSTEZvclJlcG9ydGluZyhVUkwgeyBjYWxsRnJh
bWUtPnNvdXJjZVVSTCgpIH0sIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlKTsKICAgICAgICAg
ICAgIGluZm8ubGluZU51bWJlciA9IGNhbGxGcmFtZS0+bGluZU51bWJlcigpOwogICAgICAgICAg
ICAgaW5mby5jb2x1bW5OdW1iZXIgPSBjYWxsRnJhbWUtPmNvbHVtbk51bWJlcigpOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IGY4Nzc5N2NjZDUwYjlhYjVlYTQ4
YzI1MWU0MmYwMGI1ZmJmNGZhYTAuLmUyYTU4MDZjZjJmZWNmNjEzNWM5MzVhZDA2NWIzYThhZWI5
Mzg4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0xMTcsNyArMTE3LDcgQEAg
dm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICBpZiAoIW1vZGlmaWVkUmVxdWVzdFVSTFN0cmlu
ZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgVVJMIG1vZGlmaWVkUmVxdWVzdFVSTCB7IFVSTCgp
LCBtb2RpZmllZFJlcXVlc3RVUkxTdHJpbmcuZ2V0KCkgfTsKKyAgICBVUkwgbW9kaWZpZWRSZXF1
ZXN0VVJMIHsgbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nLmdldCgpIH07CiAgICAgaWYgKCFtb2Rp
ZmllZFJlcXVlc3RVUkwuaXNWYWxpZCgpKSB7CiAgICAgICAgIExPRyhDb250ZW50RmlsdGVyaW5n
LCAiTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIgZmFpbGVkIHRvIGNvbnZlcnQgbW9kaWZp
ZWQgVVJMIHN0cmluZyAlQCB0byBhICBVUkwuXG4iLCBtb2RpZmllZFJlcXVlc3RVUkxTdHJpbmcu
Z2V0KCkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGY3OTk5ODNkZTI0MDE0OTQ0MjZjZWExMzM4MmM4YTli
MmEwYjBkYTQuLjY2MzA0NDJmNDZhNzE2ODZjOTlkMjMwNTM2Mzg1ZjJhZWFhZTcxMjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yODks
NyArMjg5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXMKIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgVVJM
IHVybChVUkwoKSwgdXJsU3RyaW5nKTsKKyAgICBVUkwgdXJsIHsgdXJsU3RyaW5nIH07CiAgICAg
aWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSkgewogICAgICAgICBsb2FkaW5nRmFpbGVkKE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yLCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZTo6SGF2ZU5vdGhpbmcsIHRydWUpOwogICAgICAgICByZXR1cm47CkBAIC0xODYzLDcgKzE4NjMs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1l
KHN0cnVjdHVyZSwgImh0dHAtaGVhZGVycyIpKSB7CiAgICAgICAgICAgICBHU1RfREVCVUdfT0JK
RUNUKHBpcGVsaW5lKCksICJQcm9jZXNzaW5nIEhUVFAgaGVhZGVyczogJSIgR1NUX1BUUl9GT1JN
QVQsIHN0cnVjdHVyZSk7CiAgICAgICAgICAgICBpZiAoY29uc3QgY2hhciogdXJpID0gZ3N0X3N0
cnVjdHVyZV9nZXRfc3RyaW5nKHN0cnVjdHVyZSwgInVyaSIpKSB7Ci0gICAgICAgICAgICAgICAg
VVJMIHVybChVUkwoKSwgdXJpKTsKKyAgICAgICAgICAgICAgICBVUkwgdXJsIHsgdXJpIH07CiAg
ICAgICAgICAgICAgICAgbV9vcmlnaW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkp
OwogCiAgICAgICAgICAgICAgICAgaWYgKHVybCAhPSBtX3VybCkgewpAQCAtMjQ0OCw3ICsyNDQ4
LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24o
KQogCiAgICAgICAgIEdVbmlxdWVPdXRQdHI8Z2NoYXI+IHBsYXliaW5VcmxTdHI7CiAgICAgICAg
IGdfb2JqZWN0X2dldChtX3BpcGVsaW5lLmdldCgpLCAiY3VycmVudC11cmkiLCAmcGxheWJpblVy
bFN0ci5vdXRQdHIoKSwgbnVsbHB0cik7Ci0gICAgICAgIFVSTCBwbGF5YmluVXJsKFVSTCgpLCBw
bGF5YmluVXJsU3RyLmdldCgpKTsKKyAgICAgICAgVVJMIHBsYXliaW5VcmwgeyBwbGF5YmluVXJs
U3RyLmdldCgpIH07CiAKICAgICAgICAgaWYgKHBsYXliaW5VcmwgPT0gbmV3VXJsKSB7CiAgICAg
ICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBpcGVsaW5lKCksICJQbGF5YmluIGFscmVhZHkgaGFu
ZGxlZCByZWRpcmVjdGlvbi4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggNzY5NmQxY2I3MmM1YjVhNzc1ZTgyNmE0NzU5NDZmMWExYjJhMDk5ZC4u
MGNmMjkwOTNkOTA1MTAxNDFmMjNmNjc2YzVhY2IzZjYxNzAwZjlhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTg3Nyw3ICs4NzcsNyBAQCBjb25z
dCBnY2hhciogY29uc3QqIHdlYktpdFdlYlNyY0dldFByb3RvY29scyhHVHlwZSkKIAogc3RhdGlj
IFVSTCBjb252ZXJ0UGxheWJpblVSSShjb25zdCBjaGFyKiB1cmlTdHJpbmcpCiB7Ci0gICAgVVJM
IHVybChVUkwoKSwgdXJpU3RyaW5nKTsKKyAgICBVUkwgdXJsIHsgdXJpU3RyaW5nIH07CiAgICAg
cmV0dXJuIHVybDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1VSTFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1VSTFNvdXAuY3BwCmluZGV4IGQ0ZTVmODhmMmI2NDA1MTY5ZmQ1ZTM4MzIxZDc2MGZhYzVm
OWZjODIuLjM1MWU1Mjg5MzM5OTUxNGQ3YzI0M2Y5Yzk5ZDE4ZDgzNGMxZjA0ZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9VUkxTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvVVJMU291cC5jcHAKQEAgLTM3
LDcgKzM3LDcgQEAgVVJMIHNvdXBVUklUb1VSTChTb3VwVVJJKiBzb3VwVVJJKQogICAgICAgICBy
ZXR1cm4gVVJMKCk7CiAKICAgICBHVW5pcXVlUHRyPGdjaGFyPiB1cmxTdHJpbmcoc291cF91cmlf
dG9fc3RyaW5nKHNvdXBVUkksIEZBTFNFKSk7Ci0gICAgVVJMIHVybChVUkwoKSwgU3RyaW5nOjpm
cm9tVVRGOCh1cmxTdHJpbmcuZ2V0KCkpKTsKKyAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tVVRG
OCh1cmxTdHJpbmcuZ2V0KCkpIH07CiAgICAgaWYgKHVybC5pc1ZhbGlkKCkpIHsKICAgICAgICAg
Ly8gTW90aXZhdGVkIGJ5IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODk1Ni4gbGlic291cAogICAgICAgICAvLyBkb2VzIG5vdCBhZGQgdGhlIHBhc3N3b3JkIHRvIHRo
ZSBVUkwgd2hlbiBjYWxsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggNTdiNmEwYmZlMmM5NmZjZDU2MmM1MGY3OGVmYzgxNzk4NDk2YjEx
My4uNDdkNzgwNzNkNzBhMWY4ZTJlMDM5ZmM2MzI4Y2E0ZDc5ZTkyYzI0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtNjExLDcgKzYxMSw3
IEBAIHN0YXRpYyBTdHJpbmcgZmlsZXN5c3RlbVBhdGhGcm9tVXJsT3JUaXRsZShjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsCiAgICAgfQogCiAgICAgaWYgKCF3Y3NsZW4od2No
YXJGcm9tKGZzUGF0aEJ1ZmZlcikpKSB7Ci0gICAgICAgIFVSTCBrdXJsKFVSTCgpLCB1cmwpOwor
ICAgICAgICBVUkwga3VybCB7IHVybCB9OwogICAgICAgICB1c2VkVVJMID0gdHJ1ZTsKICAgICAg
ICAgLy8gVGhlIGZpbGVuYW1lIGZvciBhbnkgY29udGVudCBiYXNlZCBkcmFnIG9yIGZpbGUgdXJs
IHNob3VsZCBiZSB0aGUgbGFzdCBlbGVtZW50IG9mIAogICAgICAgICAvLyB0aGUgcGF0aC4gSWYg
d2UgY2FuJ3QgZmluZCBpdCwgb3Igd2UncmUgY29taW5nIHVwIHdpdGggdGhlIG5hbWUgZm9yIGEg
bGluawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU5NTk5NjcxZDk4ZTBl
NDJmNDA0ZWM4ZTYwNDlhMTgyZmNmMGMzMjAuLjk0NmVmZjk3NDRlNGM3YzhmNjVlOTkzZGMzYTU5
ZjliMjdkZTkxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTg1Myw3
ICs4NTMsNyBAQCBTdHJpbmcgSW50ZXJuYWxzOjpibG9iSW50ZXJuYWxVUkwoY29uc3QgQmxvYiYg
YmxvYikKIAogdm9pZCBJbnRlcm5hbHM6OmlzQmxvYkludGVybmFsVVJMUmVnaXN0ZXJlZChjb25z
dCBTdHJpbmcmIHVybCwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkK
IHsKLSAgICBwcm9taXNlLnJlc29sdmUoISFUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6
ZShVUkwgeyB7IH0sIHVybCB9KSk7CisgICAgcHJvbWlzZS5yZXNvbHZlKCEhVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeTo6YmxvYlNpemUoVVJMIHsgdXJsIH0pKTsKIH0KIAogYm9vbCBJbnRlcm5hbHM6
OmlzU2hhcmluZ1N0eWxlU2hlZXRDb250ZW50cyhIVE1MTGlua0VsZW1lbnQmIGEsIEhUTUxMaW5r
RWxlbWVudCYgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1l
bnRDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29v
cmRpbmF0b3IuY3BwCmluZGV4IDdmOWI5NDU4YTJiMjRiODZkOTYyMGI0YzU4YmJmMmI2NzFmYmNj
OTQuLjhiOTM4ODg2M2M4MWIxMjZiOGI4NDY4N2IwYmQ4NmJmYTM3MGQ5MzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcApAQCAtMTI3
LDcgKzEyNyw3IEBAIGJvb2wgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSShj
b25zdCBVUkwmLCBjb25zdCBWZWN0b3I8VVJMPiYsIGNvbnN0CiAgICAgQVNTRVJUKHNob3dDb3Vu
dCA9PSBoaWRlQ291bnQpOwogICAgICsrc2hvd0NvdW50OwogICAgIGRpc3BhdGNoSWZTaG93aW5n
KFtwYWdlID0gJm1fcGFnZV0oKSB7Ci0gICAgICAgIHBhZ2UtPnBheW1lbnRDb29yZGluYXRvcigp
LnZhbGlkYXRlTWVyY2hhbnQoeyBVUkwoKSwgImh0dHBzOi8vd2Via2l0Lm9yZy8iX3MgfSk7Cisg
ICAgICAgIHBhZ2UtPnBheW1lbnRDb29yZGluYXRvcigpLnZhbGlkYXRlTWVyY2hhbnQoVVJMIHsg
Imh0dHBzOi8vd2Via2l0Lm9yZy8iX3N0ciB9KTsKICAgICB9KTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmNwcAppbmRleCAxMzVkOTEwZjRlODY0MjI0OTY1
MDZkNzAwMzYwZjYyMTNhMjA4NzU2Li43YTg4ZmE3NzRlZGMxMmUyNWVkYmMyNTA0NDNjZWEzMTJh
YmEyZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3BwCkBAIC0xMTQsNyArMTE0LDcg
QEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5PiBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5Ojpmcm9tRGEKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgfQogCi0gICAgYXV0byBzY29wZSA9IFVSTCB7IFVSTCgpLCBrZXkuc3Vic3RyaW5n
KHRoaXJkICsgMSkgfTsKKyAgICBVUkwgc2NvcGUgeyBrZXkuc3Vic3RyaW5nKHRoaXJkICsgMSkg
fTsKICAgICBpZiAoIXNjb3BlLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9S
ZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCBiNGUxYTQ1ODQ4ZWVjMzc5MTMy
YzAzOTk2OGM1NTFmY2I5YzJhZDdhLi40NTY3MWNmMjdhMzQxZWM3NTkxMmM1ZjAxNDI5M2IxNGVk
OGZhYjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtNTE1LDEzICs1MTUsMTMg
QEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKCkKICAgICBmb3Ig
KDsgcmVzdWx0ID09IFNRTElURV9ST1c7IHJlc3VsdCA9IHNxbC0+c3RlcCgpKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0
UmVjb3JkczogSW1wb3J0aW5nIGEgcmVnaXN0cmF0aW9uIGZyb20gdGhlIGRhdGFiYXNlIik7CiAg
ICAgICAgIGF1dG8ga2V5ID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleTo6ZnJvbURhdGFi
YXNlS2V5KHNxbC0+Y29sdW1uVGV4dCgwKSk7Ci0gICAgICAgIGF1dG8gb3JpZ2luVVJMID0gVVJM
IHsgVVJMKCksIHNxbC0+Y29sdW1uVGV4dCgxKSB9OworICAgICAgICBhdXRvIG9yaWdpblVSTCA9
IFVSTCB7IHNxbC0+Y29sdW1uVGV4dCgxKSB9OwogICAgICAgICBhdXRvIHNjb3BlUGF0aCA9IHNx
bC0+Y29sdW1uVGV4dCgyKTsKICAgICAgICAgYXV0byBzY29wZVVSTCA9IFVSTCB7IG9yaWdpblVS
TCwgc2NvcGVQYXRoIH07CiAgICAgICAgIGF1dG8gdG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVyKHNxbC0+Y29sdW1uVGV4dCgzKSk7CiAgICAgICAg
IGF1dG8gbGFzdFVwZGF0ZUNoZWNrVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzcWwt
PmNvbHVtbkRvdWJsZSg0KSk7CiAgICAgICAgIGF1dG8gdXBkYXRlVmlhQ2FjaGUgPSBzdHJpbmdU
b1VwZGF0ZVZpYUNhY2hlKHNxbC0+Y29sdW1uVGV4dCg1KSk7Ci0gICAgICAgIGF1dG8gc2NyaXB0
VVJMID0gVVJMIHsgVVJMKCksIHNxbC0+Y29sdW1uVGV4dCg2KSB9OworICAgICAgICBhdXRvIHNj
cmlwdFVSTCA9IFVSTCB7IHNxbC0+Y29sdW1uVGV4dCg2KSB9OwogICAgICAgICBhdXRvIHdvcmtl
clR5cGUgPSBzdHJpbmdUb1dvcmtlclR5cGUoc3FsLT5jb2x1bW5UZXh0KDcpKTsKIAogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycz4gY29u
dGVudFNlY3VyaXR5UG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCmluZGV4IDFhM2IwOGJmNzNlMTRmYzdjZTBhNjU3ZGU1ODNmOWYyMmQ0YWE4MjIuLmJjN2Fl
ODhmNzU4MjM2NDZkNGZhMmJjMTk0MjY3MjY0MzE4OGNiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI3OSw3ICsyNzksNyBAQCBwcml2YXRlOgogICAg
IE1vbm90b25pY1RpbWUgbV9sYXN0VGltZURhdGFSZWNvcmRzV2VyZVJlbW92ZWQ7CiAgICAgdWlu
dDY0X3QgbV9sYXN0U3RhdGlzdGljc1Byb2Nlc3NpbmdSZXF1ZXN0SWRlbnRpZmllciB7IDAgfTsK
ICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtX3BlbmRpbmdTdGF0aXN0aWNzUHJvY2Vzc2lu
Z1JlcXVlc3RJZGVudGlmaWVyOwotICAgIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluIG1fZGVidWdT
dGF0aWNQcmV2YWxlbnRSZXNvdXJjZSB7IFVSTCB7IFVSTCgpLCAiaHR0cHM6Ly8zcmRwYXJ0eXRl
c3R3ZWJraXQub3JnIl9zIH0gfTsKKyAgICBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiBtX2RlYnVn
U3RhdGljUHJldmFsZW50UmVzb3VyY2UgeyBVUkwgeyAiaHR0cHM6Ly8zcmRwYXJ0eXRlc3R3ZWJr
aXQub3JnIl9zdHIgfSB9OwogICAgIGJvb2wgbV9kZWJ1Z0xvZ2dpbmdFbmFibGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZGVidWdNb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGUgeyBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOjpBbGwgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApp
bmRleCBhMDIzZDI1YzgwOThjNDVmNjE2NmM2NWY4ODk1YTUxNDBlYTMxN2JiLi42ZTY2MTk3YWZk
Y2Y0MGMwOTZhNWRkZjIxNTQ4NjFmYjdmMjIzMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC00NDIsNyArNDQyLDcg
QEAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBOZXR3b3JrTG9hZENoZWNrZXI6OmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpCiB7CiAgICAgaWYgKCFtX2NvbnRlbnRTZWN1cml0eVBvbGljeSAmJiBtX2Nz
cFJlc3BvbnNlSGVhZGVycykgewogICAgICAgICAvLyBGSVhNRTogUGFzcyB0aGUgVVJMIG9mIHRo
ZSBwcm90ZWN0ZWQgcmVzb3VyY2UgaW5zdGVhZCBvZiBpdHMgb3JpZ2luLgotICAgICAgICBtX2Nv
bnRlbnRTZWN1cml0eVBvbGljeSA9IG1ha2VVbmlxdWU8Q29udGVudFNlY3VyaXR5UG9saWN5PihV
UkwgeyBVUkwgeyB9LCBtX29yaWdpbi0+dG9SYXdTdHJpbmcoKSB9KTsKKyAgICAgICAgbV9jb250
ZW50U2VjdXJpdHlQb2xpY3kgPSBtYWtlVW5pcXVlPENvbnRlbnRTZWN1cml0eVBvbGljeT4oVVJM
IHsgbV9vcmlnaW4tPnRvUmF3U3RyaW5nKCkgfSk7CiAgICAgICAgIG1fY29udGVudFNlY3VyaXR5
UG9saWN5LT5kaWRSZWNlaXZlSGVhZGVycygqbV9jc3BSZXNwb25zZUhlYWRlcnMsIFN0cmluZyB7
IG1fcmVmZXJyZXIgfSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRQYXJzaW5nRXJyb3Jz
OjpObyk7CiAgICAgICAgIGlmICghbV9kb2N1bWVudFVSTC5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeS0+c2V0RG9jdW1lbnRVUkwobV9kb2N1bWVudFVSTCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KaW5kZXggOWVhYTgzZmVhZTE5NWRlOWMwNmM1ZTQxOGRkYzFiODMw
ODBmODY0ZS4uMmM1NDdhYjQ4NjE3ZWI5YmRhYmUyYjFkYjRlZTlhNzliNWJjNWZkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQpAQCAtNzQ0LDcgKzc0NCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICAgICAgYXV0byogbmV0d29ya0RhdGFUYXNrID0gW3NlbGYgZXhp
c3RpbmdUYXNrOnRhc2tdOwogICAgICAgICAgICAgaWYgKG5ldHdvcmtEYXRhVGFzaykgewogICAg
ICAgICAgICAgICAgIE5TVVJMUHJvdGVjdGlvblNwYWNlICpwcm90ZWN0aW9uU3BhY2UgPSBjaGFs
bGVuZ2UucHJvdGVjdGlvblNwYWNlOwotICAgICAgICAgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+
ZGlkTmVnb3RpYXRlTW9kZXJuVExTKFVSTChVUkwoKSwgbWFrZVN0cmluZyhTdHJpbmcocHJvdGVj
dGlvblNwYWNlLnByb3RvY29sKSwgIjovLyIsIFN0cmluZyhwcm90ZWN0aW9uU3BhY2UuaG9zdCks
ICc6JywgcHJvdGVjdGlvblNwYWNlLnBvcnQpKSk7CisgICAgICAgICAgICAgICAgbmV0d29ya0Rh
dGFUYXNrLT5kaWROZWdvdGlhdGVNb2Rlcm5UTFMoVVJMIHsgbWFrZVN0cmluZyhTdHJpbmcocHJv
dGVjdGlvblNwYWNlLnByb3RvY29sKSwgIjovLyIsIFN0cmluZyhwcm90ZWN0aW9uU3BhY2UuaG9z
dCksICc6JywgcHJvdGVjdGlvblNwYWNlLnBvcnQpIH0pOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vh
a09iakNQdHI8V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0g
V2Vha1B0ciB7IHNlc3Npb25Db2NvYSB9LCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0
cihjb21wbGV0aW9uSGFuZGxlciksIHRhc2tJZGVudGlmaWVyLCBuZXR3b3JrRGF0YVRhc2sgPSBS
ZWZQdHIgeyBuZXR3b3JrRGF0YVRhc2sgfSwgbmVnb3RpYXRlZExlZ2FjeVRMU10oTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqY2hhbGxlbmdlLCBPU1N0YXR1cyB0cnVzdFJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJU2VjdXJpdHlPcmlnaW4u
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oCmluZGV4IDNh
ZWRkNGMyMjdhNTVmYmQ0YzBjN2Q5YTFkZDE1ZDJmMDEwMmU4MWYuLjdiYmU5YjZhMTgwMTUyZDcy
ODRiNTlmMWNlNDc1OThkMjEwM2U0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9BUElTZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9B
UElTZWN1cml0eU9yaWdpbi5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2lu
IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6U2VjdXJpdHlPcmln
aW4+CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0
cmluZyhjb25zdCBXVEY6OlN0cmluZyYgc3RyaW5nKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VjdXJpdHlPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tVVJMKFdURjo6VVJMKFdURjo6VVJMKCksIHN0cmluZykpKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNlY3VyaXR5T3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbVVSTChXVEY6OlVSTCB7IHN0cmluZyB9KSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8
U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgcHJvdG9jb2wsIGNvbnN0
IFdURjo6U3RyaW5nJiBob3N0LCBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiBwb3J0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVVSTC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSVVSTC5oCmluZGV4IDRjODM4YWZiNzMwNTk2MzU4OTM5YWZiNWJiNDU2NGQw
MGE4YTYyMWYuLjljNjA1YzFkYWExZTI1ODVjNWJmMTVkZmM4NWE0Y2ZkYTc2Yzc3YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElVUkwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQVBJVVJMLmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBwcml2YXRlOgogICAg
IHsKICAgICAgICAgaWYgKG1fcGFyc2VkVVJMKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBtX3BhcnNlZFVSTCA9IG1ha2VVbmlxdWU8V1RGOjpVUkw+KFdURjo6VVJMKCksIG1fc3RyaW5n
KTsKKyAgICAgICAgbV9wYXJzZWRVUkwgPSBtYWtlVW5pcXVlPFdURjo6VVJMPihtX3N0cmluZyk7
CiAgICAgfQogCiAgICAgV1RGOjpTdHJpbmcgbV9zdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmNwcAppbmRleCAyOTZjYWY3YzMyNzVlMDI1M2RmZWE2ZDY4
ODY2OTMwMmNiYTgwYTU2Li5mNmMwNWViYTVmMjZkNzNmNTk4OGNjM2JhM2IwOWNjM2M4ZjRkZjhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAKQEAgLTM4
LDcgKzM4LDcgQEAgV0tUeXBlSUQgV0tVUkxSZXF1ZXN0R2V0VHlwZUlEKCkKIAogV0tVUkxSZXF1
ZXN0UmVmIFdLVVJMUmVxdWVzdENyZWF0ZVdpdGhXS1VSTChXS1VSTFJlZiB1cmwpCiB7Ci0gICAg
cmV0dXJuIFdlYktpdDo6dG9BUEkoJkFQSTo6VVJMUmVxdWVzdDo6Y3JlYXRlKFVSTChVUkwoKSwg
V2ViS2l0Ojp0b0ltcGwodXJsKS0+c3RyaW5nKCkpKS5sZWFrUmVmKCkpOworICAgIHJldHVybiBX
ZWJLaXQ6OnRvQVBJKCZBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0ZShVUkwgeyBXZWJLaXQ6OnRvSW1w
bCh1cmwpLT5zdHJpbmcoKSB9KS5sZWFrUmVmKCkpOwogfQogCiBXS1VSTFJlZiBXS1VSTFJlcXVl
c3RDb3B5VVJMKFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0VVJJUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklSZXF1ZXN0LmNwcAppbmRleCBhNjMwZDQzODM4
MjlhNmI4YTIwZjkxMzM0M2Y3N2ZlZjVhMDI5YjYzLi4yNTU3MjZmM2UyNmVkMTJhNzM2MGJiNzdj
ZWNkZTZkMDMwODhiNTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xp
Yi9XZWJLaXRVUklSZXF1ZXN0LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgd2Via2l0X3Vy
aV9yZXF1ZXN0X3NldF91cmkoV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciog
dXJpKQogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3Qp
KTsKICAgICBnX3JldHVybl9pZl9mYWlsKHVyaSk7CiAKLSAgICBVUkwgdXJsKFVSTCgpLCB1cmkp
OworICAgIFVSTCB1cmwgeyB1cmkgfTsKICAgICBpZiAodXJsID09IHJlcXVlc3QtPnByaXYtPnJl
c291cmNlUmVxdWVzdC51cmwoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0KaW5kZXggMTEwZTBhZGRlNTU4YTlkOTMz
OGIyNDUwNmU4OTE2M2M5MzY5NzE5OC4uNzMyOWJhYTZkZTM2ZTIwY2VhNWQzYzM4NGExODA3ZDAz
MGEwOTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJV2ViQXJjaGl2ZVJl
c291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJj
ZS5tbQpAQCAtNDcsNyArNDcsNyBAQCBSZWY8V2ViQXJjaGl2ZVJlc291cmNlPiBXZWJBcmNoaXZl
UmVzb3VyY2U6OmNyZWF0ZShSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiYmIGFyYwogfQogCiBXZWJB
cmNoaXZlUmVzb3VyY2U6OldlYkFyY2hpdmVSZXNvdXJjZShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRF
bmNvZGluZykKLSAgICA6IG1fYXJjaGl2ZVJlc291cmNlKEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRl
KFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEtPmJ5dGVzKCksIGRhdGEtPnNpemUoKSksIFdURjo6
VVJMKFdURjo6VVJMKCksIHVybCksIE1JTUVUeXBlLCB0ZXh0RW5jb2RpbmcsIFN0cmluZygpKSkK
KyAgICA6IG1fYXJjaGl2ZVJlc291cmNlKEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGRhdGEtPmJ5dGVzKCksIGRhdGEtPnNpemUoKSksIFdURjo6VVJMIHsgdXJs
IH0sIE1JTUVUeXBlLCB0ZXh0RW5jb2RpbmcsIFN0cmluZygpKSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHkuY3BwCmluZGV4IGJjY2MwNTUwNzcxNzc5NzY2OGY5YzlkY2YxMDMxMDkxMTFiOThh
ZWEuLjY4OGYxODVkMDliMmUyZDE5ZWFkNjBiZTJiMWQ4MTA2NDQ3ODFiYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5jcHAKQEAgLTkxLDEwICs5MSwxMCBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpzaG93UGF5bWVudFVJKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGRlc3RpbmF0
aQogICAgIG1fZGVzdGluYXRpb25JRCA9IGRlc3RpbmF0aW9uSUQ7CiAgICAgbV9zdGF0ZSA9IFN0
YXRlOjpBY3RpdmF0aW5nOwogCi0gICAgVVJMIG9yaWdpbmF0aW5nVVJMKFVSTCgpLCBvcmlnaW5h
dGluZ1VSTFN0cmluZyk7CisgICAgVVJMIG9yaWdpbmF0aW5nVVJMIHsgb3JpZ2luYXRpbmdVUkxT
dHJpbmcgfTsKIAogICAgIGF1dG8gbGlua0ljb25VUkxzID0gbGlua0ljb25VUkxTdHJpbmdzLm1h
cChbXShhdXRvJiBsaW5rSWNvblVSTFN0cmluZykgewotICAgICAgICByZXR1cm4gVVJMKFVSTCgp
LCBsaW5rSWNvblVSTFN0cmluZyk7CisgICAgICAgIHJldHVybiBVUkwgeyBsaW5rSWNvblVSTFN0
cmluZyB9OwogICAgIH0pOwogCiAgICAgcGxhdGZvcm1TaG93UGF5bWVudFVJKHdlYlBhZ2VQcm94
eUlELCBvcmlnaW5hdGluZ1VSTCwgbGlua0ljb25VUkxzLCBwYXltZW50UmVxdWVzdCwgW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGJvb2wgcmVzdWx0KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNw
cAppbmRleCBhYjY0ODNiODkxZGUyODk1NmExMGZiZTU2ZjQyOGUxOWQ4M2RkMDJlLi44YThjMDNm
OWI5M2EwNjU0NjE1OTcyYjE0MTEyM2U5ZWU3YjQ5NWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKQEAgLTEz
NSw3ICsxMzUsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBs
YXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZQogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc3NsRXJyb3JzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmVzb3VyY2VF
cnJvciA9IFJlc291cmNlRXJyb3IoZG9tYWluLCBlcnJvckNvZGUsIFVSTChVUkwoKSwgZmFpbGlu
Z1VSTCksIGxvY2FsaXplZERlc2NyaXB0aW9uLCBlcnJvclR5cGUpOworICAgIHJlc291cmNlRXJy
b3IgPSBSZXNvdXJjZUVycm9yKGRvbWFpbiwgZXJyb3JDb2RlLCBVUkwgeyBmYWlsaW5nVVJMIH0s
IGxvY2FsaXplZERlc2NyaXB0aW9uLCBlcnJvclR5cGUpOwogICAgIHJlc291cmNlRXJyb3Iuc2V0
U3NsRXJyb3JzKHNzbEVycm9ycyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwCmluZGV4IDY3MTc1OGEyODBhNWU0
NDBhYTA2MGE3OWNmMWYwZjEyNmRiN2JlMjkuLmJmM2RkMDYwM2Y1ZjdiMjhkYzE0YTE3MjRkODAw
MzFhMWVmYWIzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9Bcmd1bWVu
dENvZGVyc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29k
ZXJzR3RrLmNwcApAQCAtMTMyLDcgKzEzMiw3IEBAIHN0ZDo6b3B0aW9uYWw8U2VsZWN0aW9uRGF0
YT4gQXJndW1lbnRDb2RlcjxTZWxlY3Rpb25EYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kCiAg
ICAgICAgIFN0cmluZyB1cmw7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodXJsKSkKICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIHNlbGVjdGlvbi5zZXRVUkwo
VVJMKFVSTCgpLCB1cmwpLCBTdHJpbmcoKSk7CisgICAgICAgIHNlbGVjdGlvbi5zZXRVUkwoVVJM
IHsgdXJsIH0sIFN0cmluZygpKTsKICAgICB9CiAKICAgICBib29sIGhhc1VSSUxpc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1Nv
dXAuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNT
b3VwLmNwcAppbmRleCBhZDliZDZlMzJiNzJmYWYyNWUwNGYyZDE1MDU3ZjdmZjgyOWJkNTg1Li5k
ZGQ4MGM0MTcwOTg3MzYzMGM3MDczYmNiYWY4ODQwMWVmM2JlMDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAK
QEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRl
Y29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZQogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobG9jYWxpemVkRGVzY3JpcHRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICByZXNvdXJjZUVycm9yID0gUmVzb3VyY2VFcnJvcihkb21haW4sIGVycm9yQ29kZSwg
VVJMKFVSTCgpLCBmYWlsaW5nVVJMKSwgbG9jYWxpemVkRGVzY3JpcHRpb24pOworICAgIHJlc291
cmNlRXJyb3IgPSBSZXNvdXJjZUVycm9yKGRvbWFpbiwgZXJyb3JDb2RlLCBVUkwgeyBmYWlsaW5n
VVJMIH0sIGxvY2FsaXplZERlc2NyaXB0aW9uKTsKIAogICAgIENlcnRpZmljYXRlSW5mbyBjZXJ0
aWZpY2F0ZUluZm87CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjZXJ0aWZpY2F0ZUluZm8pKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmNwcAppbmRleCBiNjExODgxNzE4ODUyYjUwMzU5ODRmMzUwNzAyZjE3
OTFhMmVlZWNjLi43YmRjOTExNTBiZGIxNGVhOGMwMDc2MjBkZGQxMmFjMTNiYjgzNjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmlu
Zz4gZmlsZVBhdGhzRnJvbUZpbGVVUkxzKGNvbnN0IEFQSTo6QXJyYXkmIGZpbGVVUkxzKQogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIEFQSTo6VVJMKiBh
cGlVUkwgPSBmaWxlVVJMcy5hdDxBUEk6OlVSTD4oaSk7CiAgICAgICAgIGlmIChhcGlVUkwpCi0g
ICAgICAgICAgICBmaWxlUGF0aHMudW5jaGVja2VkQXBwZW5kKFVSTChVUkwoKSwgYXBpVVJMLT5z
dHJpbmcoKSkuZmlsZVN5c3RlbVBhdGgoKSk7CisgICAgICAgICAgICBmaWxlUGF0aHMudW5jaGVj
a2VkQXBwZW5kKFVSTCB7IGFwaVVSTC0+c3RyaW5nKCkgfS5maWxlU3lzdGVtUGF0aCgpKTsKICAg
ICB9CiAKICAgICByZXR1cm4gZmlsZVBhdGhzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKaW5kZXggOTkwNzdiNTAzN2Q1YWNiZTc2MzBjMTBlMDViNzNjYTkyN2FkMjJk
Ni4uODliMWViZmMyMzFmMGI3MjJkMzAxMThjOTA2YTk2OTQ4YzhhOGY1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xODUsMjAgKzE4NSwyMCBAQCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmIFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VSZWYg
cGFnZVJlZikKIHZvaWQgV0tQYWdlTG9hZFVSTChXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYg
VVJMUmVmKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZikt
PmxvYWRSZXF1ZXN0KFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSkpOworICAgIHRvSW1w
bChwYWdlUmVmKS0+bG9hZFJlcXVlc3QoVVJMIHsgdG9XVEZTdHJpbmcoVVJMUmVmKSB9KTsKIH0K
IAogdm9pZCBXS1BhZ2VMb2FkVVJMV2l0aFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koV0tQ
YWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVmIFVSTFJlZiwgYm9vbCBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKICAgICBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzID8gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkQWxsb3cgOiBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdzsKLSAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRSZXF1ZXN0KFVSTChVUkwoKSwg
dG9XVEZTdHJpbmcoVVJMUmVmKSksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAg
IHRvSW1wbChwYWdlUmVmKS0+bG9hZFJlcXVlc3QoVVJMIHsgdG9XVEZTdHJpbmcoVVJMUmVmKSB9
LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIH0KIAogdm9pZCBXS1BhZ2VMb2FkVVJM
V2l0aFVzZXJEYXRhKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1VSTFJlZiBVUkxSZWYsIFdLVHlwZVJl
ZiB1c2VyRGF0YVJlZikKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7Ci0gICAgdG9JbXBsKHBh
Z2VSZWYpLT5sb2FkUmVxdWVzdChVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBXZWJD
b3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdywgdG9JbXBs
KHVzZXJEYXRhUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkUmVxdWVzdChVUkwgeyB0
b1dURlN0cmluZyhVUkxSZWYpIH0sIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93LCB0b0ltcGwodXNlckRhdGFSZWYpKTsKIH0KIAogdm9pZCBXS1Bh
Z2VMb2FkVVJMUmVxdWVzdChXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZXF1ZXN0UmVmIHVybFJl
cXVlc3RSZWYpCkBAIC0yODEsNyArMjgxLDcgQEAgdm9pZCBXS1BhZ2VMb2FkQWx0ZXJuYXRlSFRN
TFN0cmluZ1dpdGhVc2VyRGF0YShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgaHQKIHsK
ICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAgICAgU3RyaW5nIHN0cmluZyA9IHRvV1RGU3RyaW5n
KGh0bWxTdHJpbmdSZWYpOwotICAgIHRvSW1wbChwYWdlUmVmKS0+bG9hZEFsdGVybmF0ZUhUTUwo
ZGF0YUZyb20oc3RyaW5nKSwgZW5jb2RpbmdPZihzdHJpbmcpLCBVUkwoVVJMKCksIHRvV1RGU3Ry
aW5nKGJhc2VVUkxSZWYpKSwgVVJMKFVSTCgpLCB0b1dURlN0cmluZyh1bnJlYWNoYWJsZVVSTFJl
ZikpLCB0b0ltcGwodXNlckRhdGFSZWYpKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRBbHRl
cm5hdGVIVE1MKGRhdGFGcm9tKHN0cmluZyksIGVuY29kaW5nT2Yoc3RyaW5nKSwgVVJMIHsgdG9X
VEZTdHJpbmcoYmFzZVVSTFJlZikgfSwgVVJMIHsgdG9XVEZTdHJpbmcodW5yZWFjaGFibGVVUkxS
ZWYpIH0sIHRvSW1wbCh1c2VyRGF0YVJlZikpOwogfQogCiB2b2lkIFdLUGFnZUxvYWRQbGFpblRl
eHRTdHJpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHBsYWluVGV4dFN0cmluZ1Jl
ZikKQEAgLTMwNzksNyArMzA3OSw3IEBAIHZvaWQgV0tQYWdlU2ltdWxhdGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFNlc3Npb25SZXN0YXJ0KFdLUGFnZVJlZiBwYWdlUmVmLCBXS1BhCiB2b2lkIFdL
UGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5n
KFdLUGFnZVJlZiBwYWdlUmVmLCBXS1VSTFJlZiBVUkxSZWYsIFdLUGFnZVNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ss
IHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7Ci0gICAg
dG9JbXBsKHBhZ2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5
VVJMRm9yVGVzdGluZyhVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBbY2FsbGJhY2tD
b250ZXh0LCBjYWxsYmFja10gKCkgeworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcoVVJMIHsgdG9XVEZTdHJp
bmcoVVJMUmVmKSB9LCBbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBj
YWxsYmFjayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQpAQCAtMzA4Nyw3ICszMDg3LDcg
QEAgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJM
Rm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZVIKIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdL
VVJMUmVmIFVSTFJlZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25h
dHVyZVVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0
KQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFVSTChVUkwo
KSwgdG9XVEZTdHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2ln
bmF0dXJlVVJMRm9yVGVzdGluZyhVUkwgeyB0b1dURlN0cmluZyhVUkxSZWYpIH0sIFtjYWxsYmFj
a0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CiAgICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4
dCk7CiAgICAgfSk7CiB9CkBAIC0zMDk1LDcgKzMwOTUsNyBAQCB2b2lkIFdLUGFnZVNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBw
YWdlUgogdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVw
b3J0VVJMc0ZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVmIHNvdXJjZVVSTCwg
V0tVUkxSZWYgZGVzdGluYXRpb25VUkwsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja0NvbnRleHQpCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwotICAgIHRvSW1wbChw
YWdlUmVmKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNG
b3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoc291cmNlVVJMKSksIFVSTChVUkwoKSwg
dG9XVEZTdHJpbmcoZGVzdGluYXRpb25VUkwpKSwgW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2td
ICgpIHsKKyAgICB0b0ltcGwocGFnZVJlZiktPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhVUkwgeyB0b1dURlN0cmluZyhzb3VyY2VVUkwp
IH0sIFVSTCB7IHRvV1RGU3RyaW5nKGRlc3RpbmF0aW9uVVJMKSB9LCBbY2FsbGJhY2tDb250ZXh0
LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOwogICAg
IH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
R3JvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
CmluZGV4IDY1MTRlZTg2ZGUzYTg0MTQ0ODM3ZGY2MmZjMTAxM2QyM2NhYTM1YTkuLmNiY2NiM2Y4
MDdlZDdhMTk2MGNlMDE2MzAyM2VhZWYyYTEwYWY4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBXS1Bh
Z2VHcm91cEFkZFVzZXJTdHlsZVNoZWV0KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tT
dHJpbmdSZWYgc291cmMKICAgICBhdXRvIGFsbG93bGlzdCA9IHRvSW1wbChhbGxvd2VkVVJMUGF0
dGVybnMpOwogICAgIGF1dG8gYmxvY2tsaXN0ID0gdG9JbXBsKGJsb2NrZWRVUkxQYXR0ZXJucyk7
CiAKLSAgICBSZWY8QVBJOjpVc2VyU3R5bGVTaGVldD4gdXNlclN0eWxlU2hlZXQgPSBBUEk6OlVz
ZXJTdHlsZVNoZWV0OjpjcmVhdGUoV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQgeyBzb3VyY2UsIChi
YXNlVVJMU3RyaW5nLmlzRW1wdHkoKSA/IGFib3V0QmxhbmtVUkwoKSA6ICBVUkwoVVJMKCksIGJh
c2VVUkxTdHJpbmcpKSwgYWxsb3dsaXN0ID8gYWxsb3dsaXN0LT50b1N0cmluZ1ZlY3RvcigpIDog
VmVjdG9yPFN0cmluZz4oKSwgYmxvY2tsaXN0ID8gYmxvY2tsaXN0LT50b1N0cmluZ1ZlY3Rvcigp
IDogVmVjdG9yPFN0cmluZz4oKSwgdG9Vc2VyQ29udGVudEluamVjdGVkRnJhbWVzKGluamVjdGVk
RnJhbWVzKSwgV2ViQ29yZTo6VXNlclN0eWxlVXNlckxldmVsIH0sIEFQSTo6Q29udGVudFdvcmxk
OjpwYWdlQ29udGVudFdvcmxkKCkpOworICAgIFJlZjxBUEk6OlVzZXJTdHlsZVNoZWV0PiB1c2Vy
U3R5bGVTaGVldCA9IEFQSTo6VXNlclN0eWxlU2hlZXQ6OmNyZWF0ZShXZWJDb3JlOjpVc2VyU3R5
bGVTaGVldCB7IHNvdXJjZSwgYmFzZVVSTFN0cmluZy5pc0VtcHR5KCkgPyBhYm91dEJsYW5rVVJM
KCkgOiAgVVJMIHsgYmFzZVVSTFN0cmluZyB9LCBhbGxvd2xpc3QgPyBhbGxvd2xpc3QtPnRvU3Ry
aW5nVmVjdG9yKCkgOiBWZWN0b3I8U3RyaW5nPigpLCBibG9ja2xpc3QgPyBibG9ja2xpc3QtPnRv
U3RyaW5nVmVjdG9yKCkgOiBWZWN0b3I8U3RyaW5nPigpLCB0b1VzZXJDb250ZW50SW5qZWN0ZWRG
cmFtZXMoaW5qZWN0ZWRGcmFtZXMpLCBXZWJDb3JlOjpVc2VyU3R5bGVVc2VyTGV2ZWwgfSwgQVBJ
OjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQoKSk7CiAKICAgICB0b0ltcGwocGFnZUdy
b3VwUmVmKS0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkuYWRkVXNlclN0eWxlU2hlZXQodXNlclN0
eWxlU2hlZXQuZ2V0KCkpOwogfQpAQCAtOTgsNyArOTgsNyBAQCB2b2lkIFdLUGFnZUdyb3VwQWRk
VXNlclNjcmlwdChXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNvdXJj
ZVJlZgogICAgIGF1dG8gYWxsb3dsaXN0ID0gdG9JbXBsKGFsbG93ZWRVUkxQYXR0ZXJucyk7CiAg
ICAgYXV0byBibG9ja2xpc3QgPSB0b0ltcGwoYmxvY2tlZFVSTFBhdHRlcm5zKTsKICAgICAKLSAg
ICBhdXRvIHVybCA9IGJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpID8gYWJvdXRCbGFua1VSTCgpIDog
IFVSTChVUkwoKSwgYmFzZVVSTFN0cmluZyk7CisgICAgYXV0byB1cmwgPSBiYXNlVVJMU3RyaW5n
LmlzRW1wdHkoKSA/IGFib3V0QmxhbmtVUkwoKSA6IFVSTCB7IGJhc2VVUkxTdHJpbmcgfTsKICAg
ICBSZWY8QVBJOjpVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0gQVBJOjpVc2VyU2NyaXB0OjpjcmVh
dGUoV2ViQ29yZTo6VXNlclNjcmlwdCB7IFdURk1vdmUoc291cmNlKSwgV1RGTW92ZSh1cmwpLCBh
bGxvd2xpc3QgPyBhbGxvd2xpc3QtPnRvU3RyaW5nVmVjdG9yKCkgOiBWZWN0b3I8U3RyaW5nPigp
LCBibG9ja2xpc3QgPyBibG9ja2xpc3QtPnRvU3RyaW5nVmVjdG9yKCkgOiBWZWN0b3I8U3RyaW5n
PigpLCB0b1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCB0b1VzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMoaW5qZWN0ZWRGcmFtZXMpLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZp
Y2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRl
bnRXb3JsZCgpKTsKICAgICB0b0ltcGwocGFnZUdyb3VwUmVmKS0+dXNlckNvbnRlbnRDb250cm9s
bGVyKCkuYWRkVXNlclNjcmlwdCh1c2VyU2NyaXB0LmdldCgpLCBJbmplY3RVc2VyU2NyaXB0SW1t
ZWRpYXRlbHk6Ok5vKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDhkZmE4OGM2NjM0ZWUwMGYwMjM5
ZDg1ZThiNTA1ZDlkOTVhMTNkOTguLmE4ZWFkMzA5ZWRiOTM1NGEyNTFlYjI3NjE1MTg0MjEzMjJl
ZWM5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0aW9u
SGFuZGxlcihXCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRh
U3RvcmVTdGF0aXN0aWNzRGVidWdNb2RlRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0
b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoVVJM
KFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29tcGxl
dGlvbkhhbmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRQcmV2
YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3Ry
aW5nKCkgfSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTE5NSw3ICsxOTUsNyBAQCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShXSwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzTGFzdFNlZW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdS
ZWYgaG9zdCwgZG91YmxlIHNlY29uZHMsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NMYXN0U2VlbkZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBs
KGRhdGFTdG9yZVJlZiktPnNldExhc3RTZWVuKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9z
dCktPnN0cmluZygpKSwgU2Vjb25kcyB7IHNlY29uZHMgfSwgW2NvbnRleHQsIGNvbXBsZXRpb25I
YW5kbGVyXSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0TGFzdFNlZW4o
VVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFNlY29uZHMgeyBzZWNvbmRz
IH0sIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTGFzdFNlZW4oV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01l
cmdlU3RhdGlzdGljKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMSwgV0tTdHJpbmdSZWYgdG9wRnJh
bWVEb21haW4yLCBkb3VibGUgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBkb3Vi
bGUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wg
aXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1Jl
bW92ZWQsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NNZXJnZVN0
YXRpc3RpY0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJl
ZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhv
c3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVEb21haW4x
KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lRG9tYWluMikt
PnN0cmluZygpKSwgU2Vjb25kcyB7IGxhc3RTZWVuIH0sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vj
b25kcyB7IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gfSwgaXNHcmFuZGZhdGhlcmVkLCBpc1By
ZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIFtjb250ZXh0LCBj
b21wbGV0aW9uSGFuZGxlcl0geworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPm1l
cmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5n
KCkgfSwgVVJMIHsgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVEb21haW4xKS0+c3RyaW5nKCkgfSwg
VVJMIHsgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVEb21haW4yKS0+c3RyaW5nKCkgfSwgU2Vjb25k
cyB7IGxhc3RTZWVuIH0sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyB7IG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb24gfSwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJl
dmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0g
ewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBA
IC0yMTcsNyArMjE3LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVy
Z2VTdGF0aXN0aWMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG8KIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlU2V0U3RhdGlzdGljc0V4cGlyZWRTdGF0aXN0aWMoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdW5zaWduZWQgbnVtYmVyT2ZPcGVy
YXRpbmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxl
ZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50LCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pbnNlcnRFeHBpcmVk
U3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJp
bmcoKSksIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNlckludGVyYWN0aW9uLCBp
c1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1ByZXZhbGVudCwgW2NvbnRl
eHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVm
KS0+aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoVVJMIHsgV2ViS2l0Ojp0b0ltcGwo
aG9zdCktPnN0cmluZygpIH0sIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNlcklu
dGVyYWN0aW9uLCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1ByZXZh
bGVudCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTIzMSwxMSArMjMxLDExIEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhCiAgICAgYXV0byYgd2Vic2l0ZURhdGFTdG9yZSA9ICpXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQotICAgICAgICB3ZWJz
aXRlRGF0YVN0b3JlLnNldFByZXZhbGVudFJlc291cmNlKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0lt
cGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAg
ICAgIHdlYnNpdGVEYXRhU3RvcmUuc2V0UHJldmFsZW50UmVzb3VyY2UoVVJMIHsgV2ViS2l0Ojp0
b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgICAgIH0pOwogICAg
IGVsc2UKLSAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS5jbGVhclByZXZhbGVudFJlc291cmNlKFVS
TChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNvbXBs
ZXRpb25IYW5kbGVyXSB7CisgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUuY2xlYXJQcmV2YWxlbnRS
ZXNvdXJjZShVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQs
IGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250
ZXh0KTsKICAgICAgICAgfSk7CiAjZWxzZQpAQCAtMjQ5LDExICsyNDksMTEgQEAgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZgogICAgIGF1dG8mIHdlYnNpdGVEYXRhU3RvcmUgPSAqV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKTsKIAogICAgIGlmICh2YWx1ZSkKLSAgICAgICAgd2Vic2l0ZURhdGFT
dG9yZS5zZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCho
b3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAg
d2Vic2l0ZURhdGFTdG9yZS5zZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoVVJMIHsgV2ViS2l0Ojp0
b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgICAgIH0pOwogICAg
IGVsc2UKLSAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS5jbGVhclByZXZhbGVudFJlc291cmNlKFVS
TChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNvbXBs
ZXRpb25IYW5kbGVyXSB7CisgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUuY2xlYXJQcmV2YWxlbnRS
ZXNvdXJjZShVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQs
IGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250
ZXh0KTsKICAgICAgICAgfSk7CiAjZWxzZQpAQCAtMjc1LDcgKzI3NSw3IEBAIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVm
IGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlRnVuY3Rpb24gY2FsbGJhY2spCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+
aXNQcmV2YWxlbnRSZXNvdXJjZShVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJp
bmcoKSksIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBpc1ByZXZhbGVudFJlc291cmNlKSB7Cisg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNQcmV2YWxlbnRSZXNvdXJjZShVUkwg
eyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQsIGNhbGxiYWNrXShi
b29sIGlzUHJldmFsZW50UmVzb3VyY2UpIHsKICAgICAgICAgY2FsbGJhY2soaXNQcmV2YWxlbnRS
ZXNvdXJjZSwgY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMjg2LDcgKzI4Niw3IEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGlj
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNhbGxiYWNrKQogewogI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRh
dGFTdG9yZVJlZiktPmlzVmVyeVByZXZhbGVudFJlc291cmNlKFVSTChVUkwoKSwgV2ViS2l0Ojp0
b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlzVmVyeVBy
ZXZhbGVudFJlc291cmNlKSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygp
IH0sIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSkgewog
ICAgICAgICBjYWxsYmFjayhpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSwgY29udGV4dCk7CiAgICAg
fSk7CiAjZWxzZQpAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNT
dGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkCiB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNl
VW5kZXIoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgc3Vi
cmVzb3VyY2VIb3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QsIHZvaWQqIGNvbnRleHQsIFdL
V2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXJG
dW5jdGlvbiBjYWxsYmFjaykKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc1JlZ2lzdGVyZWRB
c1N1YnJlc291cmNlVW5kZXIoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChzdWJyZXNvdXJjZUhv
c3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVIb3N0KS0+
c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNSZWdpc3RlcmVkQXNTdWJyZXNv
dXJjZVVuZGVyKSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZWdpc3Rl
cmVkQXNTdWJyZXNvdXJjZVVuZGVyKFVSTCB7IFdlYktpdDo6dG9JbXBsKHN1YnJlc291cmNlSG9z
dCktPnN0cmluZygpIH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lSG9zdCktPnN0cmlu
ZygpIH0sIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBpc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNl
VW5kZXIpIHsKICAgICAgICAgY2FsbGJhY2soaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVy
LCBjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFdL
V2Vic2l0ZURhdGFTdG8KIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzU3ViRnJhbWVVbmRlcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBzdWJGcmFtZUhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlckZ1bmN0aW9uIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzUmVn
aXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHN1YkZyYW1l
SG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZUhvc3Qp
LT5zdHJpbmcoKSksIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBpc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIpIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc1JlZ2lzdGVy
ZWRBc1N1YkZyYW1lVW5kZXIoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoc3ViRnJhbWVIb3N0KS0+c3Ry
aW5nKCkgfSwgVVJMIHsgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVIb3N0KS0+c3RyaW5nKCkgfSwg
W2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcikgewog
ICAgICAgICBjYWxsYmFjayhpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIsIGNvbnRleHQpOwog
ICAgIH0pOwogI2Vsc2UKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoV0tXZWJzaXRlRGF0YVN0b3Jl
Ugogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhv
c3RSZWRpcmVjdGVkRnJvbSwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRUbywgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUb0Z1bmN0aW9uIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVj
dGVkRnJvbSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJl
Y3RlZFRvKS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvKSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNS
ZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVj
dGVkRnJvbSktPnN0cmluZygpIH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVk
VG8pLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNSZWdpc3RlcmVkQXNS
ZWRpcmVjdGluZ1RvKSB7CiAgICAgICAgIGNhbGxiYWNrKGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbywgY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMzMzLDExICszMzMsMTEgQEAgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZgogICAgIGF1dG8mIGRhdGFTdG9yZSA9ICpXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQotICAgICAgICBkYXRhU3RvcmUubG9n
VXNlckludGVyYWN0aW9uKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygp
KSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGRhdGFTdG9yZS5sb2dV
c2VySW50ZXJhY3Rpb24oVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFtj
b250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoY29udGV4dCk7CiAgICAgICAgIH0pOwogICAgIGVsc2UKLSAgICAgICAgZGF0YVN0b3JlLmNs
ZWFyVXNlckludGVyYWN0aW9uKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmlu
ZygpKSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGRhdGFTdG9yZS5j
bGVhclVzZXJJbnRlcmFjdGlvbihVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkg
fSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihjb250ZXh0KTsKICAgICAgICAgfSk7CiAjZWxzZQpAQCAtMzQ4LDcgKzM0OCw3IEBA
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihXS1dlYnNpdGVEYXRhU3RvcmVSZWYKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbkZ1bmN0aW9uIGNhbGxiYWNrKQogewogI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9J
bXBsKGRhdGFTdG9yZVJlZiktPmhhc0hhZFVzZXJJbnRlcmFjdGlvbihVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBoYXNI
YWRVc2VySW50ZXJhY3Rpb24pIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5o
YXNIYWRVc2VySW50ZXJhY3Rpb24oVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygp
IH0sIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24pIHsKICAg
ICAgICAgY2FsbGJhY2soaGFzSGFkVXNlckludGVyYWN0aW9uLCBjb250ZXh0KTsKICAgICB9KTsK
ICNlbHNlCkBAIC0zNTksNyArMzU5LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGQKIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIHN1Ykhvc3QsIFdLU3RyaW5n
UmVmIHRvcEhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGlj
c09ubHlJbkRhdGFiYXNlT25jZUZ1bmN0aW9uIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9y
ZVJlZiktPmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFVSTChVUkwoKSwgV2ViS2l0
Ojp0b0ltcGwoc3ViSG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0
b3BIb3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgb25seUluRGF0YWJh
c2VPbmNlKSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZWxhdGlvbnNo
aXBPbmx5SW5EYXRhYmFzZU9uY2UoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoc3ViSG9zdCktPnN0cmlu
ZygpIH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKHRvcEhvc3QpLT5zdHJpbmcoKSB9LCBbY29udGV4
dCwgY2FsbGJhY2tdKGJvb2wgb25seUluRGF0YWJhc2VPbmNlKSB7CiAgICAgICAgIGNhbGxiYWNr
KG9ubHlJbkRhdGFiYXNlT25jZSwgY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMzcwLDE0
ICszNzAsMTQgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRh
YmFzZU9uY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGEKIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSkKIHsKICNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5zZXRHcmFuZGZhdGhlcmVkKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCkt
PnN0cmluZygpKSwgdmFsdWUsIFtdIHsgfSk7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3Jl
UmVmKS0+c2V0R3JhbmRmYXRoZXJlZChVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5n
KCkgfSwgdmFsdWUsIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWRGdW5jdGlvbiBjYWxsYmFjaykKIHsKICNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5pc0dyYW5kZmF0aGVyZWQoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCho
b3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNHcmFuZGZhdGhlcmVk
KSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNHcmFuZGZhdGhlcmVkKFVS
TCB7IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY2FsbGJhY2td
KGJvb2wgaXNHcmFuZGZhdGhlcmVkKSB7CiAgICAgICAgIGNhbGxiYWNrKGlzR3JhbmRmYXRoZXJl
ZCwgY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMzg4LDQ5ICszODgsNDkgQEAgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmUKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRv
SW1wbCh0b3BGcmFtZUhvc3QpLT5zdHJpbmcoKSksIFtdIHsgfSk7CisgICAgV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFVSTCB7IFdl
YktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBVUkwgeyBXZWJLaXQ6OnRvSW1wbCh0b3BG
cmFtZUhvc3QpLT5zdHJpbmcoKSB9LCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0
cmluZ1JlZiB0b3BGcmFtZUhvc3QpCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0U3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCkt
PnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZUhvc3QpLT5zdHJp
bmcoKSksIFtdIHsgfSk7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0U3Vi
cmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5z
dHJpbmcoKSB9LCBVUkwgeyBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZUhvc3QpLT5zdHJpbmcoKSB9
LCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRv
KQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdl
YktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RU
byhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwg
V2ViS2l0Ojp0b0ltcGwoaG9zdFJlZGlyZWN0ZWRUbyktPnN0cmluZygpKSwgW10geyB9KTsKKyAg
ICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0VG8oVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFVSTCB7IFdlYktp
dDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkVG8pLT5zdHJpbmcoKSB9LCBbXSB7IH0pOwogI2VuZGlm
CiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RGcm9tKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3Ry
aW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkRnJvbSkKIHsKICNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5zZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShVUkwoVVJMKCks
IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0lt
cGwoaG9zdFJlZGlyZWN0ZWRGcm9tKS0+c3RyaW5nKCkpLCBbXSB7IH0pOworICAgIFdlYktpdDo6
dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFVS
TCB7IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBVUkwgeyBXZWJLaXQ6OnRvSW1w
bChob3N0UmVkaXJlY3RlZEZyb20pLT5zdHJpbmcoKSB9LCBbXSB7IH0pOwogI2VuZGlmCiB9CiAK
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0
LCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRvKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhv
c3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdFJlZGlyZWN0ZWRU
byktPnN0cmluZygpKSwgW10geyB9KTsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYp
LT5zZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCkt
PnN0cmluZygpIH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkVG8pLT5zdHJp
bmcoKSB9LCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVj
dGVkRnJvbSkKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
LSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0RnJvbShVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdFJlZGlyZWN0ZWRGcm9tKS0+c3RyaW5nKCkpLCBbXSB7
IH0pOworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RGcm9tKFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBVUkwg
eyBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZEZyb20pLT5zdHJpbmcoKSB9LCBbXSB7IH0p
OwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0Nyb3Nz
U2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgV0tTdHJpbmdSZWYgZnJvbUhvc3QsIFdLU3RyaW5nUmVmIHRvSG9zdCwgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0Nyb3NzU2l0ZUxvYWRXaXRoTGlu
a0RlY29yYXRpb25GdW5jdGlvbiBjYWxsYmFjaykKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5z
ZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhVUkwoVVJMKCksIFdl
YktpdDo6dG9JbXBsKGZyb21Ib3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKHRvSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXSB7CisgICAgV2ViS2l0
Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlv
bkZvclRlc3RpbmcoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoZnJvbUhvc3QpLT5zdHJpbmcoKSB9LCBV
UkwgeyBXZWJLaXQ6OnRvSW1wbCh0b0hvc3QpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY2FsbGJh
Y2tdIHsKICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtNTU3
LDcgKzU1Nyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFyVGhyb3Vn
aFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvCiB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9yVGVzdGluZyhXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIGluY2x1ZGVIdHRwT25seUNv
b2tpZXMsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVD
b29raWVzRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJl
ZiktPmRlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9z
dCktPnN0cmluZygpKSwgaW5jbHVkZUh0dHBPbmx5Q29va2llcywgW2NvbnRleHQsIGNhbGxiYWNr
XSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+ZGVsZXRlQ29va2llc0ZvclRl
c3RpbmcoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIGluY2x1ZGVIdHRw
T25seUNvb2tpZXMsIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250
ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTdGF0aXN0aWNzRGVsZXRlQ29va2llc0ZvclRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0
b3JlUmVmIGQKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0xvY2FsU3RvcmFn
ZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2
b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzTG9jYWxTdG9yYWdl
RnVuY3Rpb24gY2FsbGJhY2spCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aGFzTG9jYWxTdG9y
YWdlRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSks
IFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBoYXNMb2NhbFN0b3JhZ2UpIHsKKyAgICBXZWJLaXQ6
OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5oYXNMb2NhbFN0b3JhZ2VGb3JUZXN0aW5nKFVSTCB7IFdl
YktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wg
aGFzTG9jYWxTdG9yYWdlKSB7CiAgICAgICAgIGNhbGxiYWNrKGhhc0xvY2FsU3RvcmFnZSwgY29u
dGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtNTkwLDcgKzU5MCw3IEBAIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlU2V0U3RhdGlzdGljc0NhY2hlTWF4QWdlQ2FwKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNJc29sYXRlZFNl
c3Npb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9z
dCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0lzb2xhdGVk
U2Vzc2lvbkZ1bmN0aW9uIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmhhc0lz
b2xhdGVkU2Vzc2lvbkZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+
c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSXNvbGF0ZWRTZXNzaW9uKSB7
CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aGFzSXNvbGF0ZWRTZXNzaW9uRm9y
VGVzdGluZyhVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQs
IGNhbGxiYWNrXShib29sIGhhc0lzb2xhdGVkU2Vzc2lvbikgewogICAgICAgICBjYWxsYmFjayho
YXNJc29sYXRlZFNlc3Npb24sIGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTY0Niw3ICs2
NDYsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NG
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZQogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5n
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3ROYW1l
LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0g
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1RvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKGhvc3ROYW1lKS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsK
KyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFVSTCB7IFdlYktpdDo6dG9JbXBs
KGhvc3ROYW1lKS0+c3RyaW5nKCkgfSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTY1
Nyw3ICs2NTcsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3Rpbgogdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZv
clRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYg
Zmlyc3RQYXJ0eVVSTFN0cmluZywgV0tTdHJpbmdSZWYgY25hbWVVUkxTdHJpbmcsIHZvaWQqIGNv
bnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBh
cnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZ0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBh
cnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGZp
cnN0UGFydHlVUkxTdHJpbmcpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwo
Y25hbWVVUkxTdHJpbmcpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0g
eworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhVUkwgeyBXZWJLaXQ6OnRv
SW1wbChmaXJzdFBhcnR5VVJMU3RyaW5nKS0+c3RyaW5nKCkgfSwgVVJMIHsgV2ViS2l0Ojp0b0lt
cGwoY25hbWVVUkxTdHJpbmcpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRs
ZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CiAjZWxz
ZQpAQCAtNjY4LDcgKzY2OCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0CiB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Q05BTUVEb21h
aW5Gb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGNuYW1lVVJMU3RyaW5nLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZ0Z1bmN0
aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwoY25hbWVVUkxTdHJpbmcpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBj
b21wbGV0aW9uSGFuZGxlcl0geworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFVS
TCB7IFdlYktpdDo6dG9JbXBsKGNuYW1lVVJMU3RyaW5nKS0+c3RyaW5nKCkgfSwgW2NvbnRleHQs
IGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQp
OwogICAgIH0pOwogI2Vsc2UKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldEFwcEJvdW5kRG9tYWluc0ZvclRlc3RpbmcoV0tBcnJheVJlZiBvcmlnaW5VUkxzUmVm
LCB2bwogICAgICAgICBpZiAoIW9yaWdpblVSTCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAKLSAgICAgICAgZG9tYWlucy5hZGQoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyBV
UkwoVVJMKCksIG9yaWdpblVSTC0+c3RyaW5nKCkpIH0pOworICAgICAgICBkb21haW5zLmFkZChX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IG9yaWdpblVSTC0+c3RyaW5nKCkgfSB9
KTsKICAgICB9CiAKICAgICBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEFwcEJvdW5kRG9t
YWluc0ZvclRlc3RpbmcoV1RGTW92ZShkb21haW5zKSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5k
bGVyXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZkN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvY3VybC9XS1dlYnNpdGVEYXRhU3RvcmVSZWZDdXJsLmNwcAppbmRleCA2YmQwNGYxNDJmYzhi
NjI5N2QzYTA5ZTM0Njg0YmRlZDYwMTFhYTJkLi43YzIxOTkxYmRhMzU4OGEwZDg1YWJjNmM3MDhk
N2JkYzRlOThiNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9j
dXJsL1dLV2Vic2l0ZURhdGFTdG9yZVJlZkN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL2N1cmwvV0tXZWJzaXRlRGF0YVN0b3JlUmVmQ3VybC5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVFbmFibGVEZWZhdWx0TmV0d29ya1Byb3h5
U2V0dGluZ3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGQKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVFbmFibGVDdXN0b21OZXR3b3JrUHJveHlTZXR0aW5ncyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1VSTFJlZiBwcm94eVVybCwgV0tTdHJpbmdSZWYgaWdub3JlSG9zdHMp
CiB7Ci0gICAgdG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldE5ldHdvcmtQcm94eVNldHRpbmdzKFdl
YkNvcmU6OkN1cmxQcm94eVNldHRpbmdzKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcocHJveHlVcmwp
KSwgdG9XVEZTdHJpbmcoaWdub3JlSG9zdHMpKSk7CisgICAgdG9JbXBsKGRhdGFTdG9yZVJlZikt
PnNldE5ldHdvcmtQcm94eVNldHRpbmdzKFdlYkNvcmU6OkN1cmxQcm94eVNldHRpbmdzKFVSTCB7
IHRvV1RGU3RyaW5nKHByb3h5VXJsKSB9LCB0b1dURlN0cmluZyhpZ25vcmVIb3N0cykpKTsKIH0K
IAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVEaXNhYmxlTmV0d29ya1Byb3h5U2V0dGluZ3MoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGVhYTJh
ZDYyMTQ0NjQyOTNjYzk0N2ZmMmExNTJlNWU5NmJmMDVmM2IuLjhlZWVkMmM4MjViYzJkN2JlYTgz
MTIzNDcyYjcwMjJlOWJhNTEyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzksOCArNzksOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocXVvdGEpOwogICAgICAgICB9
KTsKIAotICAgICAgICBVUkwgbWFpbkZyYW1lVVJMIHsgVVJMKCksIHRvcE9yaWdpbi50b1N0cmlu
ZygpIH07Ci0gICAgICAgIFVSTCBmcmFtZVVSTCB7IFVSTCgpLCBmcmFtZU9yaWdpbi50b1N0cmlu
ZygpIH07CisgICAgICAgIFVSTCBtYWluRnJhbWVVUkwgeyB0b3BPcmlnaW4udG9TdHJpbmcoKSB9
OworICAgICAgICBVUkwgZnJhbWVVUkwgeyBmcmFtZU9yaWdpbi50b1N0cmluZygpIH07CiAKICAg
ICAgICAgW21fZGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2VkKCkgcmVxdWVzdFN0b3JhZ2VTcGFjZTpt
YWluRnJhbWVVUkwgZnJhbWVPcmlnaW46ZnJhbWVVUkwgcXVvdGE6cXVvdGEgY3VycmVudFNpemU6
Y3VycmVudFNpemUgc3BhY2VSZXF1aXJlZDpzcGFjZVJlcXVpcmVkIGRlY2lzaW9uSGFuZGxlcjpk
ZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggZmZmMzhj
NGQ2ZDQ4NWQ0NzViYjYxNWM1NTNjN2Q3MDFiZWM5ODYxMy4uMDg2MjUzYjJiMWRjYWM1NDBmNjU2
OGE4N2MxM2JmM2UwMTFjZTkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTMzMCw3ICszMzAsNyBA
QCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9nZXRfY29va2llcyhXZWJLaXRDb29raWVNYW5h
Z2VyKiBtYW5hZ2VyLCBjb25zdCBnY2hhcgogICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKIAog
ICAgIEdSZWZQdHI8R1Rhc2s+IHRhc2sgPSBhZG9wdEdSZWYoZ190YXNrX25ldyhtYW5hZ2VyLCBj
YW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRhKSk7Ci0gICAgbWFuYWdlci0+cHJpdi0+Y29v
a2llTWFuYWdlcigpLmdldENvb2tpZXMobWFuYWdlci0+cHJpdi0+c2Vzc2lvbklEKCksIFVSTChV
UkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYgY29va2llcykgeworICAgIG1hbmFnZXItPnByaXYt
PmNvb2tpZU1hbmFnZXIoKS5nZXRDb29raWVzKG1hbmFnZXItPnByaXYtPnNlc3Npb25JRCgpLCBV
UkwgeyBTdHJpbmc6OmZyb21VVEY4KHVyaSkgfSwgW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShjb25z
dCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYgY29va2llcykgewogICAgICAgICBHTGlzdCogY29v
a2llc0xpc3QgPSBudWxscHRyOwogICAgICAgICBmb3IgKGF1dG8mIGNvb2tpZSA6IGNvb2tpZXMp
CiAgICAgICAgICAgICBjb29raWVzTGlzdCA9IGdfbGlzdF9wcmVwZW5kKGNvb2tpZXNMaXN0LCBj
b29raWUudG9Tb3VwQ29va2llKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDI0MGRjMmMzMTQy
N2NlNTVkM2E4OTQ5NjdlNTllNmNjZDMxZjFkYTIuLmQxZjFkMGFlOWQ2ODkxMTZjOWVkNDhhYTU4
NWI0NzIzOTUwMDg5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdpbi5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBX
ZWJLaXRTZWN1cml0eU9yaWdpbiogd2Via2l0X3NlY3VyaXR5X29yaWdpbl9uZXdfZm9yX3VyaShj
b25zdCBnY2hhciogdXJpKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHVyaSwgbnVsbHB0
cik7CiAKLSAgICByZXR1cm4gd2Via2l0U2VjdXJpdHlPcmlnaW5DcmVhdGUoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKFVSTChVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkp
KSkpOworICAgIHJldHVybiB3ZWJraXRTZWN1cml0eU9yaWdpbkNyZWF0ZShXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoVVJMIHsgU3RyaW5nOjpmcm9tVVRGOCh1cmkpIH0pKTsK
IH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwCmluZGV4IDFlYzg2YTNmMTZhMDk3YmY4NDNkYmRhY2Y4ZDhlYmQ2MmQ4MTc1
YTQuLmM0ZWE4YTk3ZDI0ZGNhZTJmYzI5MjU5MWYzZDQ2Mjk3YjAyYWE3ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0z
MTIwLDcgKzMxMjAsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19sb2FkX2FsdGVybmF0ZV9odG1s
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBjbwogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoY29udGVudCk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChjb250ZW50VVJJKTsKIAotICAg
IGdldFBhZ2Uod2ViVmlldykubG9hZEFsdGVybmF0ZUhUTUwoeyByZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihjb250ZW50KSwgY29udGVudCA/IHN0cmxlbihjb250ZW50KSA6IDAgfSwg
IlVURi04Il9zLCBVUkwoVVJMKCksIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSSSkpLCBVUkwoVVJM
KCksIFN0cmluZzo6ZnJvbVVURjgoY29udGVudFVSSSkpKTsKKyAgICBnZXRQYWdlKHdlYlZpZXcp
LmxvYWRBbHRlcm5hdGVIVE1MKHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oY29u
dGVudCksIGNvbnRlbnQgPyBzdHJsZW4oY29udGVudCkgOiAwIH0sICJVVEYtOCJfcywgVVJMIHsg
U3RyaW5nOjpmcm9tVVRGOChiYXNlVVJJKSB9LCBVUkwgeyBTdHJpbmc6OmZyb21VVEY4KGNvbnRl
bnRVUkkpIH0pOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KaW5kZXggNmI3YmZmYjIwMzY2NWY0MjVkZDI3ZTZmZmIxNjRkOGE2
OTEyMGNkMC4uMGViOTdiZDg2ZDgzMjVhYjc1MjQ2ZWFiMjVjMzM3NzI1NGZiZWZjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTI3
MjcsNyArMjcyNyw3IEBAIC0gKFVJRXZlbnRBdHRyaWJ1dGlvbiAqKV91aUV2ZW50QXR0cmlidXRp
b24KICAgICBpZiAoIW1lYXN1cmVtZW50KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0
byBkZXN0aW5hdGlvblVSTCA9IFVSTChVUkwoKSwgbWFrZVN0cmluZygiaHR0cHM6Ly8iLCBtZWFz
dXJlbWVudC0+cGNtLmRlc3RpbmF0aW9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygp
KSk7CisgICAgVVJMIGRlc3RpbmF0aW9uVVJMIHsgbWFrZVN0cmluZygiaHR0cHM6Ly8iLCBtZWFz
dXJlbWVudC0+cGNtLmRlc3RpbmF0aW9uU2l0ZSgpLnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygp
KSB9OwogICAgIHJldHVybiBhZG9wdE5TKFtbVUlFdmVudEF0dHJpYnV0aW9uIGFsbG9jXSBpbml0
V2l0aFNvdXJjZUlkZW50aWZpZXI6bWVhc3VyZW1lbnQtPnBjbS5zb3VyY2VJRCgpLmlkIGRlc3Rp
bmF0aW9uVVJMOmRlc3RpbmF0aW9uVVJMIHNvdXJjZURlc2NyaXB0aW9uOm1lYXN1cmVtZW50LT5z
b3VyY2VEZXNjcmlwdGlvbiBwdXJjaGFzZXI6bWVhc3VyZW1lbnQtPnB1cmNoYXNlcl0pLmF1dG9y
ZWxlYXNlKCk7CiAjZWxzZQogICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmlu
ZGV4IDQ2ZDRjY2RkMTRhYThlNTlkNjg1MzNiMDFiZTc5OWYyMTQ1ZDFlNTAuLjdjNjNmZjM1MmVl
Mjc4OTAyOTExZmU4ZWE3NjlmMDFiYzNhMTZjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBA
IC03MDUsNyArNzA1LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGVCcm93
c2luZ0NvbnRleHQoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXUKICAgICBhdXRvIHBhZ2VM
b2FkU3RyYXRlZ3kgPSBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3kudmFsdWVfb3IoZGVmYXVsdFBh
Z2VMb2FkU3RyYXRlZ3kpOwogICAgIGF1dG8gcGFnZUxvYWRUaW1lb3V0ID0gb3B0aW9uYWxQYWdl
TG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKCpvcHRpb25hbFBhZ2VMb2Fk
VGltZW91dCkgOiBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0OwogCi0gICAgcGFnZS0+bG9hZFJlcXVl
c3QoVVJMKFVSTCgpLCB1cmwpKTsKKyAgICBwYWdlLT5sb2FkUmVxdWVzdChVUkwgeyB1cmwgfSk7
CiAgICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBwYWdlTG9hZFN0
cmF0ZWd5LCBwYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIApAQCAtMTQx
MCw3ICsxNDEwLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkU2luZ2xlQ29va2ll
KGNvbnN0IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb24KICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsK
IAotICAgIFVSTCBhY3RpdmVVUkwgPSBVUkwoVVJMKCksIHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5h
Y3RpdmVVUkwoKSk7CisgICAgVVJMIGFjdGl2ZVVSTCB7IHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5h
Y3RpdmVVUkwoKSB9OwogICAgIEFTU0VSVChhY3RpdmVVUkwuaXNWYWxpZCgpKTsKIAogICAgIFdl
YkNvcmU6OkNvb2tpZSBjb29raWU7CkBAIC0xNDgzLDcgKzE0ODMsNyBAQCBJbnNwZWN0b3I6OlBy
b3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVB
bGxDb29raWVzKAogICAgIGlmICghcGFnZSkKICAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBVUkwgYWN0aXZlVVJMID0gVVJMKFVS
TCgpLCBwYWdlLT5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOworICAgIFVSTCBhY3RpdmVV
UkwgeyBwYWdlLT5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkgfTsKICAgICBBU1NFUlQoYWN0
aXZlVVJMLmlzVmFsaWQoKSk7CiAKICAgICBTdHJpbmcgaG9zdCA9IGFjdGl2ZVVSTC5ob3N0KCku
dG9TdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xl
Z2FjeURvd25sb2FkQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVn
YWN5RG93bmxvYWRDbGllbnQubW0KaW5kZXggNjU1ZDg5YjhkODBjZmZjNDBkOTUzMjc4MTEwZTcw
ZDNlNmEwZTlkNy4uMmZlYjE0MWU0NzVhMjEwZjgxNjAxMzZmOWRhMDZlYWQwMGFlY2Q2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5RG93bmxvYWRDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5RG93bmxvYWRD
bGllbnQubW0KQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBMZWdhY3lEb3dubG9hZENsaWVudDo6bGVn
YWN5RGlkU3RhcnQoRG93bmxvYWRQcm94eSYgZG93bmxvYWRQcm94eSkKICAgICBpZiAoZG93bmxv
YWRQcm94eS5pc1N5c3RlbVByZXZpZXdEb3dubG9hZCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiB3
ZWJQYWdlID0gZG93bmxvYWRQcm94eS5vcmlnaW5hdGluZ1BhZ2UoKSkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IFVwZGF0ZSB0aGUgTUlNRS10eXBlIG9uY2UgaXQgaXMga25vd24gaW4gdGhlIFJl
c291cmNlUmVzcG9uc2UuCi0gICAgICAgICAgICB3ZWJQYWdlLT5zeXN0ZW1QcmV2aWV3Q29udHJv
bGxlcigpLT5zdGFydChVUkwoVVJMKCksIHdlYlBhZ2UtPmN1cnJlbnRVUkwoKSksICJhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0iX3MsIGRvd25sb2FkUHJveHkuc3lzdGVtUHJldmlld0Rvd25sb2Fk
SW5mbygpKTsKKyAgICAgICAgICAgIHdlYlBhZ2UtPnN5c3RlbVByZXZpZXdDb250cm9sbGVyKCkt
PnN0YXJ0KFVSTCB7IHdlYlBhZ2UtPmN1cnJlbnRVUkwoKSB9LCAiYXBwbGljYXRpb24vb2N0ZXQt
c3RyZWFtIl9zLCBkb3dubG9hZFByb3h5LnN5c3RlbVByZXZpZXdEb3dubG9hZEluZm8oKSk7CiAg
ICAgICAgIH0KICAgICAgICAgdGFrZUFjdGl2aXR5VG9rZW4oZG93bmxvYWRQcm94eSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbQppbmRleCA4ZDNhODU2NDYyZWFlZjc0MWQ4YzI5ZTI1OTJmZDU3MzY2ZjU5OWM4
Li43MjQzZWFiZjE2YWNjZjI5ZWNhNGJiYjU0ZGY0YTE1ZTg1OWI2Yjc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC03MzMsNyAr
NzMzLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoV2ViUGFnZVByb3h5JgogICAgIGlmICghbmF2aWdhdGlvbkRlbGVn
YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBVUkwgdXJsKFVSTCgpLCB1cmxTdHJpbmcpOwor
ICAgIFVSTCB1cmwgeyB1cmxTdHJpbmcgfTsKIAogICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlKSBfd2ViVmlldzptX25h
dmlnYXRpb25TdGF0ZS0+bV93ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDp1
cmwgZGVsYXk6ZGVsYXldOwogfQpAQCAtNzUwLDggKzc1MCw4IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoV2ViUGFnZVBy
b3h5JiBwCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFVSTCBzb3VyY2VVUkwoVVJMKCksIHNvdXJjZVVSTFN0cmluZyk7Ci0gICAgVVJMIGRlc3Rp
bmF0aW9uVVJMKFVSTCgpLCBkZXN0aW5hdGlvblVSTFN0cmluZyk7CisgICAgVVJMIHNvdXJjZVVS
TCB7IHNvdXJjZVVSTFN0cmluZyB9OworICAgIFVSTCBkZXN0aW5hdGlvblVSTCB7IGRlc3RpbmF0
aW9uVVJMU3RyaW5nIH07CiAKICAgICBbc3RhdGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVn
YXRlUHJpdmF0ZT4+KG5hdmlnYXRpb25EZWxlZ2F0ZSkgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3Rh
dGUtPm1fd2ViVmlldyBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGcm9tVVJMOnNvdXJjZVVSTCB0
b1VSTDpkZXN0aW5hdGlvblVSTF07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1w
dGVyLm1tCmluZGV4IDI1YjU0NjRhOTNhODJhYTlhNDY0YWQ0MmNjMDkxYjc2ZTk5Nzg2YmMuLmQ3
OWMyMzg5ODdiMmE0YTVlMjUyYTUzM2JlZjE2YWYwYTE2NjQxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1w
dGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVF
cnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCkBAIC02Nyw3ICs2Nyw3IEBAIC0gKEJPT0wpYXR0ZW1w
dFJlY292ZXJ5CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5KQogICAgICAgICByZXR1cm4gTk87CiAK
LSAgICB3ZWJGcmFtZVByb3h5LT5sb2FkVVJMKFVSTChVUkwoKSwgX3VybFN0cmluZykpOworICAg
IHdlYkZyYW1lUHJveHktPmxvYWRVUkwoVVJMIHsgX3VybFN0cmluZyB9KTsKICAgICByZXR1cm4g
WUVTOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA1Njk2ZGEzODk4ODUyN2M3YWU2OTNiOGZjNzFkNmJiNWY0
YWU4NjA0Li44YmNmZTEwMmZmYTYzM2NmYjU5OTgzNjMzZTdlMjQxNjYwYjUwNTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KQEAgLTgxMyw3ICs4MTMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90
aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKIAogYm9vbCBXZWJQcm9jZXNzUG9vbDo6aXNVUkxLbm93bkhT
VFNIb3N0KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdAogewotICAgIFJldGFpblB0cjxD
RlVSTFJlZj4gdXJsID0gVVJMKFVSTCgpLCB1cmxTdHJpbmcpLmNyZWF0ZUNGVVJMKCk7CisgICAg
UmV0YWluUHRyPENGVVJMUmVmPiB1cmwgPSBVUkwgeyB1cmxTdHJpbmcgfS5jcmVhdGVDRlVSTCgp
OwogCiAgICAgcmV0dXJuIF9DRk5ldHdvcmtJc0tub3duSFNUU0hvc3RXaXRoU2Vzc2lvbih1cmwu
Z2V0KCksIG51bGxwdHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHkuY3BwCmluZGV4IDZi
ZjQ3YmYyNWU3MTEwZTBiZmRkYTA4YTdjMWFhNzkzNzJlMWU5N2EuLmRhNDM0NGMyNTc2YjIxZGQ2
NjY2YWJmMjkwYThjZWY3MzMyOGU3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAK
QEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5Ojpsb2FkKFJl
ZjxBUEk6OkRlYnVnZ2FibGVJbmZvPiYmIGRlYnVnZ2FibGVJbmZvLAogICAgIGNyZWF0ZUZyb250
ZW5kUGFnZUFuZFdpbmRvdygpOwogCiAgICAgbV9pbnNwZWN0b3JQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6SW5pdGlhbGl6ZShtX2RlYnVnZ2FibGVJbmZvLT5kZWJ1
Z2dhYmxlSW5mb0RhdGEoKSwgYmFja2VuZENvbW1hbmRzVVJMKSk7Ci0gICAgbV9pbnNwZWN0b3JQ
YWdlLT5sb2FkUmVxdWVzdChVUkwoVVJMKCksIFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3Rv
clBhZ2VVUkwoKSkpOworICAgIG1faW5zcGVjdG9yUGFnZS0+bG9hZFJlcXVlc3QoVVJMIHsgV2Vi
SW5zcGVjdG9yVUlQcm94eTo6aW5zcGVjdG9yUGFnZVVSTCgpIH0pOwogfQogCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbUJhY2tlbmQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3Bw
CmluZGV4IGNkMGU4MDZkMTM0Y2I2MmMwMTcyNmUzMDQ0YWE3OWVmZGNmMmI4MWUuLjk1NTZiMTI2
NTUwYWYxZjhkN2U1MWU4ZWJkNGVhY2RmOTM4YWE2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKQEAg
LTM5NCw3ICszOTQsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnRvZ2dsZUVsZW1lbnRT
ZWxlY3Rpb24oKQogYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5Ojppc01haW5PclRlc3RJbnNwZWN0
b3JQYWdlKGNvbnN0IFVSTCYgdXJsKQogewogICAgIC8vIFVzZSBVUkwgc28gd2UgY2FuIGNvbXBh
cmUgdGhlIHBhdGhzIGFuZCBwcm90b2NvbHMuCi0gICAgVVJMIG1haW5QYWdlVVJMKFVSTCgpLCBX
ZWJJbnNwZWN0b3JVSVByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkpOworICAgIFVSTCBtYWluUGFn
ZVVSTCB7IFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKSB9OwogICAgIGlm
ICh1cmwucHJvdG9jb2woKSA9PSBtYWluUGFnZVVSTC5wcm90b2NvbCgpICYmIFBBTDo6ZGVjb2Rl
VVJMRXNjYXBlU2VxdWVuY2VzKHVybC5wYXRoKCkpID09IFBBTDo6ZGVjb2RlVVJMRXNjYXBlU2Vx
dWVuY2VzKG1haW5QYWdlVVJMLnBhdGgoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC00
MDMsNyArNDAzLDcgQEAgYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5Ojppc01haW5PclRlc3RJbnNw
ZWN0b3JQYWdlKGNvbnN0IFVSTCYgdXJsKQogICAgIGlmICh0ZXN0UGFnZVVSTFN0cmluZy5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgVVJMIHRlc3RQYWdlVVJMKFVSTCgp
LCB0ZXN0UGFnZVVSTFN0cmluZyk7CisgICAgVVJMIHRlc3RQYWdlVVJMIHsgdGVzdFBhZ2VVUkxT
dHJpbmcgfTsKICAgICByZXR1cm4gdXJsLnByb3RvY29sKCkgPT0gdGVzdFBhZ2VVUkwucHJvdG9j
b2woKSAmJiBQQUw6OmRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1cmwucGF0aCgpKSA9PSBQQUw6
OmRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh0ZXN0UGFnZVVSTC5wYXRoKCkpOwogfQogCkBAIC00
ODksNyArNDg5LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpvcGVuTG9jYWxJbnNwZWN0
b3JGcm9udGVuZChib29sIGNhbkF0dGFjaCwgYm9vbCB1bmRlclQKICAgICBpZiAoIW1faW5zcGVj
dG9yUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pbnNwZWN0b3JQYWdlLT5sb2FkUmVx
dWVzdChVUkwoVVJMKCksIG1fdW5kZXJUZXN0ID8gV2ViSW5zcGVjdG9yVUlQcm94eTo6aW5zcGVj
dG9yVGVzdFBhZ2VVUkwoKSA6IFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RvclBhZ2VVUkwo
KSkpOworICAgIG1faW5zcGVjdG9yUGFnZS0+bG9hZFJlcXVlc3QoVVJMIHsgbV91bmRlclRlc3Qg
PyBXZWJJbnNwZWN0b3JVSVByb3h5OjppbnNwZWN0b3JUZXN0UGFnZVVSTCgpIDogV2ViSW5zcGVj
dG9yVUlQcm94eTo6aW5zcGVjdG9yUGFnZVVSTCgpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3Rv
clVJUHJveHk6Om9wZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5j
cHAKaW5kZXggMTM4YWRlMTI0ODA1ZGQzN2Q5ZGU0Nzk5NWU3YjllOGU3MWRlOWNjMy4uYjQzYTc3
YzRkNWY5MjU4ZDNkODRjOWExZDliMjYyMjMwNTVjYjE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdl
Ykluc3BlY3RvclVJUHJveHlHdGsuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBSZW1vdGVX
ZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRV
UkwsIGNvbnN0IFMKICAgICAvLyBTb21lIGluc3BlY3RvciB2aWV3cyAoQXVkaXRzIGZvciBpbnN0
YW5jZSkgdXNlIGEgY3VzdG9tIFVSSSBzY2hlbWUsIHN1Y2gKICAgICAvLyBhcyB3ZWItaW5zcGVj
dG9yLiBTbyB3ZSBjYW4ndCByZWx5IG9uIHRoZSBVUkwgYmVpbmcgYSB2YWxpZCBmaWxlOi8vLyBV
UkwKICAgICAvLyB1bmZvcnR1bmF0ZWx5LgotICAgIFVSTCB1cmwoVVJMKCksIHN1Z2dlc3RlZFVS
TCk7CisgICAgVVJMIHVybCB7IHN1Z2dlc3RlZFVSTCB9OwogICAgIC8vIFN0cmlwIGxlYWRpbmcg
LyBjaGFyYWN0ZXIuCiAgICAgZ3RrX2ZpbGVfY2hvb3Nlcl9zZXRfY3VycmVudF9uYW1lKGNob29z
ZXIsIHVybC5wYXRoKCkuc3Vic3RyaW5nKDEpLnV0ZjgoKS5kYXRhKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJv
eHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNw
ZWN0b3JVSVByb3h5R3RrLmNwcAppbmRleCA4NDU1MGVkNTAzYWQzZTU1NGM1Mjk4NzhkNWQzOGJi
NGE2NTVjM2Y4Li4zZDVjZjEwODA4MDIyYThiMjU4NGVmOTUyOGUwZGU2ZTRhOWUyMGFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3Rv
clVJUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9n
dGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKQEAgLTUzMSw3ICs1MzEsNyBAQCB2b2lkIFdl
Ykluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZFVS
TCwgY29uc3QgU3RyaW5nJgogICAgIC8vIFNvbWUgaW5zcGVjdG9yIHZpZXdzIChBdWRpdHMgZm9y
IGluc3RhbmNlKSB1c2UgYSBjdXN0b20gVVJJIHNjaGVtZSwgc3VjaAogICAgIC8vIGFzIHdlYi1p
bnNwZWN0b3IuIFNvIHdlIGNhbid0IHJlbHkgb24gdGhlIFVSTCBiZWluZyBhIHZhbGlkIGZpbGU6
Ly8vIFVSTAogICAgIC8vIHVuZm9ydHVuYXRlbHkuCi0gICAgVVJMIHVybChVUkwoKSwgc3VnZ2Vz
dGVkVVJMKTsKKyAgICBVUkwgdXJsIHsgc3VnZ2VzdGVkVVJMIH07CiAgICAgLy8gU3RyaXAgbGVh
ZGluZyAvIGNoYXJhY3Rlci4KICAgICBndGtfZmlsZV9jaG9vc2VyX3NldF9jdXJyZW50X25hbWUo
Y2hvb3NlciwgdXJsLnBhdGgoKS5zdWJzdHJpbmcoMSkudXRmOCgpLmRhdGEoKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAppbmRleCA2Nzk5
ZTkzYmEzZjFjOThmZTU5NjNiZmZlYjI5ZDNiODgzOTMwZGQ0Li42OWU5YmMyNjk2NmVjZTYwN2I2
ODdlYjQyZjQyYWI0ZjE4NTY4MDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3Ivc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKHRva2Vucy5zaXplKCkgIT0gMykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBV
UkwgcmVxdWVzdFVSTCB7IHsgfSwgcGFnZS5wYWdlTG9hZFN0YXRlKCkudXJsKCkgfTsKKyAgICAg
ICAgVVJMIHJlcXVlc3RVUkwgeyBwYWdlLnBhZ2VMb2FkU3RhdGUoKS51cmwoKSB9OwogICAgICAg
ICBtX2luc3BlY3RvclByb3RvY29sSGFuZGxlci5pbnNwZWN0KHJlcXVlc3RVUkwuaG9zdEFuZFBv
cnQoKSwgcGFyc2VJbnRlZ2VyPHVpbnQzMl90Pih0b2tlbnNbMF0pLnZhbHVlX29yKDApLCBwYXJz
ZUludGVnZXI8dWludDMyX3Q+KHRva2Vuc1sxXSkudmFsdWVfb3IoMCksIHRva2Vuc1syXSk7CiAg
ICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
ZmQxMTE3NTk5NDc4YzFjOTZhZTBjMThjOTRmNDlmMTE0NDhkNjMwMC4uZGU0OGRiYzVkNmE0ZDc2
YzgyMTVkMjM2YjExNzQ2MTA0Y2ZiMGFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC0xMDg5LDcgKzEwODksNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9u
PiBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3NGb3JSZWxvYWQoKQogICAgIH0KICAgICAKICAg
ICBBU1NFUlQoIWhhc1J1bm5pbmdQcm9jZXNzKCkpOwotICAgIGF1dG8gcmVnaXN0cmFibGVEb21h
aW4gPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSA/IFJlZ2lzdHJhYmxlRG9tYWlu
IHsgVVJMKFVSTCgpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+dXJsKCkpIH0g
OiBSZWdpc3RyYWJsZURvbWFpbiB7IH07CisgICAgYXV0byByZWdpc3RyYWJsZURvbWFpbiA9IG1f
YmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpID8gUmVnaXN0cmFibGVEb21haW4geyBVUkwg
eyBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+dXJsKCkgfSB9IDogUmVnaXN0cmFi
bGVEb21haW4geyB9OwogICAgIGxhdW5jaFByb2Nlc3MocmVnaXN0cmFibGVEb21haW4sIFByb2Nl
c3NMYXVuY2hSZWFzb246OkNyYXNoKTsKIAogICAgIGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1
cnJlbnRJdGVtKCkpIHsKQEAgLTE0NjUsNyArMTQ2NSw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMU3RyaW5nLCBj
b25zCiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICBsYXVuY2hQcm9jZXNz
KHsgfSwgUHJvY2Vzc0xhdW5jaFJlYXNvbjo6SW5pdGlhbFByb2Nlc3MpOwogCi0gICAgVVJMIGZp
bGVVUkwgPSBVUkwoVVJMKCksIGZpbGVVUkxTdHJpbmcpOworICAgIFVSTCBmaWxlVVJMIHsgZmls
ZVVSTFN0cmluZyB9OwogICAgIGlmICghZmlsZVVSTC5pc0xvY2FsRmlsZSgpKSB7CiAgICAgICAg
IFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAibG9hZEZpbGU6IGZpbGUgaXMgbm90
IGxvY2FsIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTQ3NSw3ICsxNDc1LDcgQEAg
UmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkRmlsZShjb25zdCBTdHJp
bmcmIGZpbGVVUkxTdHJpbmcsIGNvbnMKICAgICBpZiAocmVzb3VyY2VEaXJlY3RvcnlVUkxTdHJp
bmcuaXNOdWxsKCkpCiAgICAgICAgIHJlc291cmNlRGlyZWN0b3J5VVJMID0gVVJMKHsgfSwgImZp
bGU6Ly8vIl9zKTsKICAgICBlbHNlIHsKLSAgICAgICAgcmVzb3VyY2VEaXJlY3RvcnlVUkwgPSBV
UkwoVVJMKCksIHJlc291cmNlRGlyZWN0b3J5VVJMU3RyaW5nKTsKKyAgICAgICAgcmVzb3VyY2VE
aXJlY3RvcnlVUkwgPSBVUkwgeyByZXNvdXJjZURpcmVjdG9yeVVSTFN0cmluZyB9OwogICAgICAg
ICBpZiAoIXJlc291cmNlRGlyZWN0b3J5VVJMLmlzTG9jYWxGaWxlKCkpIHsKICAgICAgICAgICAg
IFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAibG9hZEZpbGU6IHJlc291cmNlIFVS
TCBpcyBub3QgbG9jYWwiKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTcxNiw3
ICsxNzE2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVs
YXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLAogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCi0gICAgICAgIGxhdW5jaFByb2Nlc3MoUmVnaXN0
cmFibGVEb21haW4geyBVUkwoVVJMKCksIHVybFN0cmluZykgfSwgUHJvY2Vzc0xhdW5jaFJlYXNv
bjo6SW5pdGlhbFByb2Nlc3MpOworICAgICAgICBsYXVuY2hQcm9jZXNzKFJlZ2lzdHJhYmxlRG9t
YWluIHsgVVJMIHsgdXJsU3RyaW5nIH0gfSwgUHJvY2Vzc0xhdW5jaFJlYXNvbjo6SW5pdGlhbFBy
b2Nlc3MpOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TmF2aWdhdGVUb1BERkxpbmtX
aXRoU2ltdWxhdGVkQ2xpY2sodXJsU3RyaW5nLCBkb2N1bWVudFBvaW50LCBzY3JlZW5Qb2ludCkp
OwogICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyKCk7CkBAIC0xNzU2LDcg
KzE3NTYsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OnJlbG9hZChP
cHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiBvcAogICAgIFN0cmluZyB1cmwgPSBjdXJy
ZW50VVJMKCk7CiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFdlIG1heSBu
b3QgaGF2ZSBhbiBleHRlbnNpb24geWV0IGlmIGJhY2svZm9yd2FyZCBsaXN0IHdhcyByZWluc3Rh
dGVkIGFmdGVyIGEgV2ViUHJvY2VzcyBjcmFzaCBvciBhIGJyb3dzZXIgcmVsYXVuY2gKLSAgICAg
ICAgbWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShtX3Byb2Nlc3MsIFVSTChV
UkwoKSwgdXJsKSwgY3VycmVudFJlc291cmNlRGlyZWN0b3J5VVJMKCksIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUpOworICAgICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KG1fcHJvY2VzcywgVVJMIHsgdXJsIH0sIGN1cnJlbnRSZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKICAgICB9CiAKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9j
ZXNzKCkpCkBAIC0xODQwLDcgKzE4NDAsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQ
YWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbQogICAg
IH0KIAogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBsYXVuY2hQcm9j
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMKFVSTCgpLCBpdGVtLnVybCgpKSB9LCBQcm9jZXNz
TGF1bmNoUmVhc29uOjpJbml0aWFsUHJvY2Vzcyk7CisgICAgICAgIGxhdW5jaFByb2Nlc3MoUmVn
aXN0cmFibGVEb21haW4geyBVUkwgeyBpdGVtLnVybCgpIH0gfSwgUHJvY2Vzc0xhdW5jaFJlYXNv
bjo6SW5pdGlhbFByb2Nlc3MpOwogCiAgICAgICAgIGlmICgmaXRlbSAhPSBtX2JhY2tGb3J3YXJk
TGlzdC0+Y3VycmVudEl0ZW0oKSkKICAgICAgICAgICAgIG1fYmFja0ZvcndhcmRMaXN0LT5nb1Rv
SXRlbShpdGVtKTsKQEAgLTM0NjQsNyArMzQ2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNl
aXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
CiAgICAgfQogCiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gc291cmNlUHJvY2VzcyA9IHByb2Nl
c3MoKTsKLSAgICBVUkwgc291cmNlVVJMID0gVVJMIHsgVVJMKCksIHBhZ2VMb2FkU3RhdGUoKS51
cmwoKSB9OworICAgIFVSTCBzb3VyY2VVUkwgeyBwYWdlTG9hZFN0YXRlKCkudXJsKCkgfTsKICAg
ICBpZiAoYXV0byogcHJvdmlzaW9uYWxQYWdlID0gcHJvdmlzaW9uYWxQYWdlUHJveHkoKSkgewog
ICAgICAgICBpZiAocHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSA9PSBuYXZpZ2F0aW9u
LT5uYXZpZ2F0aW9uSUQoKSkgewogICAgICAgICAgICAgc291cmNlUHJvY2VzcyA9IHByb3Zpc2lv
bmFsUGFnZS0+cHJvY2VzcygpOwpAQCAtMzUxMiw3ICszNTEyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lB
Y3Rpb24sIEEKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gaXRlbSA9IG5hdmln
YXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA6IG5hdmlnYXRp
b24tPnRhcmdldEl0ZW0oKTsKICAgICAgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5
QWN0aW9uOjpVc2UgJiYgaXRlbSkgewotICAgICAgICAgICAgICAgIGF1dG8gZnVsbFVSTCA9IFVS
TCB7IFVSTCgpLCBpdGVtLT51cmwoKSB9OworICAgICAgICAgICAgICAgIFVSTCBmdWxsVVJMIHsg
aXRlbS0+dXJsKCkgfTsKICAgICAgICAgICAgICAgICBpZiAoZnVsbFVSTC5wcm90b2NvbElzKCJm
aWxlIl9zKSkgewogICAgICAgICAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
c2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKICAgICAgICAgICAgICAgICAgICAgbWF5YmVJbml0aWFs
aXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzRm9yTmF2aWdhdGlvbi5nZXQoKSwgZnVs
bFVSTCwgaXRlbS0+cmVzb3VyY2VEaXJlY3RvcnlVUkwoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZSk7CkBAIC0zODA0LDcgKzM4MDQsNyBAQCBTZXNzaW9uU3RhdGUgV2ViUGFnZVByb3h5OjpzZXNz
aW9uU3RhdGUoV1RGOjpGdW5jdGlvbjxib29sIChXZWJCYWNrRm9yd2FyZExpc3RJdAogICAgICAg
ICBwcm92aXNpb25hbFVSTFN0cmluZyA9IG1fcGFnZUxvYWRTdGF0ZS5wcm92aXNpb25hbFVSTCgp
OwogCiAgICAgaWYgKCFwcm92aXNpb25hbFVSTFN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgIHNl
c3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTCA9IFVSTChVUkwoKSwgcHJvdmlzaW9uYWxVUkxTdHJp
bmcpOworICAgICAgICBzZXNzaW9uU3RhdGUucHJvdmlzaW9uYWxVUkwgPSBVUkwgeyBwcm92aXNp
b25hbFVSTFN0cmluZyB9OwogCiAgICAgc2Vzc2lvblN0YXRlLnJlbmRlclRyZWVTaXplID0gcmVu
ZGVyVHJlZVNpemUoKTsKICAgICBzZXNzaW9uU3RhdGUuaXNBcHBJbml0aWF0ZWQgPSBtX2xhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkOwpAQCAtNDg5OSw3ICs0ODk5LDcgQEAgc3RhdGljIE9w
dGlvblNldDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBjaGVja0lmTmF2
aWdhdGlvbkNvbnRhaW4KICAgICBpZiAoIWN1cnJlbnRVUkwucXVlcnkoKS5pc0VtcHR5KCkgfHwg
IWN1cnJlbnRVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkuaXNFbXB0eSgpKQogICAgICAgICBuYXZp
Z2F0aW9uRGF0YVRyYW5zZmVyLmFkZChDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpG
bGFnOjpEZXN0aW5hdGlvbkxpbmtEZWNvcmF0aW9uKTsKIAotICAgIFVSTCByZWZlcnJlclVSTCB7
IFVSTCgpLCBjdXJyZW50UmVxdWVzdC5odHRwUmVmZXJyZXIoKSB9OworICAgIFVSTCByZWZlcnJl
clVSTCB7IGN1cnJlbnRSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpIH07CiAgICAgaWYgKCFyZWZlcnJl
clVSTC5xdWVyeSgpLmlzRW1wdHkoKSB8fCAhcmVmZXJyZXJVUkwuZnJhZ21lbnRJZGVudGlmaWVy
KCkuaXNFbXB0eSgpKQogICAgICAgICBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmFkZChDcm9zc1Np
dGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnOjpSZWZlcnJlckxpbmtEZWNvcmF0aW9uKTsK
IApAQCAtNDkyNyw3ICs0OTI3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICAgICAg
YXV0byBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyID0gY2hlY2tJZk5hdmlnYXRpb25Db250YWluc0Rh
dGFUcmFuc2ZlcihyZXF1ZXN0ZXJPcmlnaW4sIGN1cnJlbnRSZXF1ZXN0KTsKICAgICAgICAgaWYg
KCFuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgUmVnaXN0
cmFibGVEb21haW4gY3VycmVudERvbWFpbiB7IGN1cnJlbnRSZXF1ZXN0LnVybCgpIH07Ci0gICAg
ICAgICAgICBVUkwgcmVxdWVzdGVyVVJMIHsgVVJMKCksIHJlcXVlc3Rlck9yaWdpbi50b1N0cmlu
ZygpIH07CisgICAgICAgICAgICBVUkwgcmVxdWVzdGVyVVJMIHsgcmVxdWVzdGVyT3JpZ2luLnRv
U3RyaW5nKCkgfTsKICAgICAgICAgICAgIGlmICghY3VycmVudERvbWFpbi5tYXRjaGVzKHJlcXVl
c3RlclVSTCkpCiAgICAgICAgICAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3b3JrUHJv
Y2VzcygpLmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKG1fd2Vic2l0ZURh
dGFTdG9yZS0+c2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluIHsgcmVxdWVzdGVyVVJMIH0s
IGN1cnJlbnREb21haW4sIG5hdmlnYXRpb25EYXRhVHJhbnNmZXIsIG1faWRlbnRpZmllciwgbV93
ZWJQYWdlSUQpOwogICAgICAgICB9CkBAIC01NTYyLDcgKzU1NjIsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2NlcwogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIGF1dG8gd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIgPSBuYXZpZ2F0aW9uLT5pc0xv
YWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKCkgfHwgdXNlckluaXRpYXRlZEFjdGl2aXR5OwogICAg
IGlmICghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgbG9nRnJhbWVOYXZpZ2F0
aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJl
ZGlyZWN0UmVzcG9uc2UudXJsKCksIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKTsKKyAg
ICAgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwgeyBtX3BhZ2VMb2FkU3RhdGUudXJs
KCkgfSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSwgd2FzUG90ZW50aWFsbHlJbml0
aWF0ZWRCeVVzZXIpOwogI2VuZGlmCiAKICAgICBpZiAobV9wb2xpY3lDbGllbnQpCkBAIC03MTMx
LDcgKzcxMzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Y29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKICAgICB9CiAKICAgICBpZiAoZG93
bmxvYWRJbmZvKSB7Ci0gICAgICAgIGF1dG8mIGRvd25sb2FkID0gbV9wcm9jZXNzLT5wcm9jZXNz
UG9vbCgpLmRvd25sb2FkKG1fd2Vic2l0ZURhdGFTdG9yZSwgdGhpcywgVVJMKFVSTCgpLCBkb3du
bG9hZEluZm8tPnVybCksIGRvd25sb2FkSW5mby0+c3VnZ2VzdGVkRmlsZW5hbWUpOworICAgICAg
ICBhdXRvJiBkb3dubG9hZCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5kb3dubG9hZChtX3dl
YnNpdGVEYXRhU3RvcmUsIHRoaXMsIFVSTCB7IGRvd25sb2FkSW5mby0+dXJsIH0sIGRvd25sb2Fk
SW5mby0+c3VnZ2VzdGVkRmlsZW5hbWUpOwogICAgICAgICBkb3dubG9hZC5zZXREaWRTdGFydENh
bGxiYWNrKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoYXV0byogZG93bmxv
YWQpIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIWRvd25sb2FkKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTg1MjQsNyArODUyNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpt
YWtlU3RvcmFnZVNwYWNlUmVxdWVzdChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAogICAgIGF1dG8gb3Jp
Z2luRGF0YSA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmln
aW5JZGVudGlmaWVyKTsKLSAgICBpZiAob3JpZ2luRGF0YSAhPSBTZWN1cml0eU9yaWdpbkRhdGE6
OmZyb21VUkwoVVJMIHsgeyB9LCBjdXJyZW50VVJMKCkgfSkpIHsKKyAgICBpZiAob3JpZ2luRGF0
YSAhPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoVVJMIHsgY3VycmVudFVSTCgpIH0pKSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJlbnRRdW90YSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0xMDQ4NSw3ICsxMDQ4NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRh
dGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpCiAKIGJvb2wgV2ViUGFnZVByb3h5OjpjaGVja1VSTFJl
Y2VpdmVkRnJvbUN1cnJlbnRPclByZXZpb3VzV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewotICAgIHJldHVybiBjaGVja1VSTFJl
Y2VpdmVkRnJvbUN1cnJlbnRPclByZXZpb3VzV2ViUHJvY2Vzcyhwcm9jZXNzLCBVUkwoVVJMKCks
IHVybFN0cmluZykpOworICAgIHJldHVybiBjaGVja1VSTFJlY2VpdmVkRnJvbUN1cnJlbnRPclBy
ZXZpb3VzV2ViUHJvY2Vzcyhwcm9jZXNzLCBVUkwgeyB1cmxTdHJpbmcgfSk7CiB9CiAKIGJvb2wg
V2ViUGFnZVByb3h5OjpjaGVja1VSTFJlY2VpdmVkRnJvbUN1cnJlbnRPclByZXZpb3VzV2ViUHJv
Y2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDNkODY3OGM1ZDg2NTFlYWM0
NTAzNzc2ZDFmYTI0OGI4OTk3YWRiYWEuLjNhNWVlYWRkMjEzYmRlZjQxMmNlZGE2NDQ3MDFkMTc1
ODQwMTFkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
QEAgLTEyNTQsNyArMTI1NCw3IEBAIERvd25sb2FkUHJveHkmIFdlYlByb2Nlc3NQb29sOjpkb3du
bG9hZChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlBhZ2VQcm94CiAgICAgLy8gUmVx
dWVzdCdzIGZpcnN0UGFydHlGb3JDb29raWVzIHdpbGwgYmUgdXNlZCBhcyBPcmlnaW5hbCBVUkwg
b2YgdGhlIGRvd25sb2FkIHJlcXVlc3QuCiAgICAgLy8gV2Ugc2V0IHRoZSB2YWx1ZSB0byB0b3Ag
bGV2ZWwgZG9jdW1lbnQncyBVUkwuCiAgICAgaWYgKGluaXRpYXRpbmdQYWdlKSB7Ci0gICAgICAg
IFVSTCBpbml0aWF0aW5nUGFnZVVSTCA9IFVSTCB7IFVSTCB7IH0sIGluaXRpYXRpbmdQYWdlLT5w
YWdlTG9hZFN0YXRlKCkudXJsKCkgfTsKKyAgICAgICAgVVJMIGluaXRpYXRpbmdQYWdlVVJMID0g
VVJMIHsgaW5pdGlhdGluZ1BhZ2UtPnBhZ2VMb2FkU3RhdGUoKS51cmwoKSB9OwogICAgICAgICB1
cGRhdGVkUmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhpbml0aWF0aW5nUGFnZVVSTCk7
CiAgICAgICAgIHVwZGF0ZWRSZXF1ZXN0LnNldElzU2FtZVNpdGUoYXJlUmVnaXN0cmFibGVEb21h
aW5zRXF1YWwoaW5pdGlhdGluZ1BhZ2VVUkwsIHJlcXVlc3QudXJsKCkpKTsKICAgICAgICAgaWYg
KCF1cGRhdGVkUmVxdWVzdC5oYXNIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlVzZXJB
Z2VudCkpCkBAIC0xOTc2LDEyICsxOTc2LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nl
c3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6CiAK
ICAgICBVUkwgc291cmNlVVJMOwogICAgIGlmIChwYWdlLmlzUGFnZU9wZW5lZEJ5RE9NU2hvd2lu
Z0luaXRpYWxFbXB0eURvY3VtZW50KCkgJiYgIW5hdmlnYXRpb24ucmVxdWVzdGVyT3JpZ2luKCku
aXNFbXB0eSgpKQotICAgICAgICBzb3VyY2VVUkwgPSBVUkwgeyBVUkwoKSwgbmF2aWdhdGlvbi5y
ZXF1ZXN0ZXJPcmlnaW4oKS50b1N0cmluZygpIH07CisgICAgICAgIHNvdXJjZVVSTCA9IFVSTCB7
IG5hdmlnYXRpb24ucmVxdWVzdGVyT3JpZ2luKCkudG9TdHJpbmcoKSB9OwogICAgIGVsc2UKICAg
ICAgICAgc291cmNlVVJMID0gcGFnZVNvdXJjZVVSTDsKIAogICAgIGlmIChzb3VyY2VVUkwuaXNF
bXB0eSgpICYmIHBhZ2UuY29uZmlndXJhdGlvbigpLnJlbGF0ZWRQYWdlKCkpIHsKLSAgICAgICAg
c291cmNlVVJMID0gVVJMIHsgeyB9LCBwYWdlLmNvbmZpZ3VyYXRpb24oKS5yZWxhdGVkUGFnZSgp
LT5wYWdlTG9hZFN0YXRlKCkudXJsKCkgfTsKKyAgICAgICAgc291cmNlVVJMID0gVVJMIHsgcGFn
ZS5jb25maWd1cmF0aW9uKCkucmVsYXRlZFBhZ2UoKS0+cGFnZUxvYWRTdGF0ZSgpLnVybCgpIH07
CiAgICAgICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgInBy
b2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWw6IFVzaW5nIHJlbGF0ZWQgcGFnZSdzIFVSTCBhcyBz
b3VyY2UgVVJMIGZvciBwcm9jZXNzIHN3YXAgZGVjaXNpb24gKHBhZ2U9JXApIiwgcGFnZS5jb25m
aWd1cmF0aW9uKCkucmVsYXRlZFBhZ2UoKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzNjhhMzk1ODdkYTMzZGU2NGMxYjg5ZDBl
NjM4ZDM4Yjg4ZDdhMTdiLi43OTkwMjAyN2M1MDM2ZjE5YmU0ZmI0ZTA2Y2E2MTUyZDQ4YmFlYjQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE2
MSw3ICsxNjEsNyBAQCBzdGF0aWMgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQYWdlUHJveHlNYXAmIGds
b2JhbFBhZ2VNYXAoKQogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZvcldlYlBhZ2VzV2l0aE9yaWdp
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3Jp
Z2luLCBjb25zdCBGdW5jdGlvbjx2b2lkKFdlYlBhZ2VQcm94eSYpPiYgY2FsbGJhY2spCiB7CiAg
ICAgZm9yIChhdXRvKiBwYWdlIDogZ2xvYmFsUGFnZU1hcCgpLnZhbHVlcygpKSB7Ci0gICAgICAg
IGlmIChwYWdlLT5zZXNzaW9uSUQoKSAhPSBzZXNzaW9uSUQgfHwgU2VjdXJpdHlPcmlnaW5EYXRh
Ojpmcm9tVVJMKFVSTCB7IHsgfSwgcGFnZS0+Y3VycmVudFVSTCgpIH0pICE9IG9yaWdpbikKKyAg
ICAgICAgaWYgKHBhZ2UtPnNlc3Npb25JRCgpICE9IHNlc3Npb25JRCB8fCBTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21VUkwoVVJMIHsgcGFnZS0+Y3VycmVudFVSTCgpIH0pICE9IG9yaWdpbikKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjYWxsYmFjaygqcGFnZSk7CiAgICAgfQpAQCAt
NjgyLDcgKzY4Miw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95V2ViVXNlckNv
bnRlbnRDb250cm9sbGVyUHJveHkoV2ViVXNlckNvbnRlbnRDb250CiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5Ojphc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7Ci0gICAgVVJMIHVybChVUkwoKSwgdXJsU3RyaW5nKTsK
KyAgICBVUkwgdXJsIHsgdXJsU3RyaW5nIH07CiAgICAgaWYgKCF1cmwuaXNMb2NhbEZpbGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC03NDcsMTAgKzc0NywxMCBAQCBib29sIFdlYlByb2Nlc3NQ
cm94eTo6Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKGNvbnN0IFVSTCYgdXJsLCBDaGVj
a0JhY2tGbwogICAgIGlmIChjaGVja0JhY2tGb3J3YXJkTGlzdCA9PSBDaGVja0JhY2tGb3J3YXJk
TGlzdDo6WWVzKSB7CiAgICAgICAgIFN0cmluZyBwYXRoID0gdXJsLmZpbGVTeXN0ZW1QYXRoKCk7
CiAgICAgICAgIGZvciAoYXV0byYgaXRlbSA6IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW06OmFsbEl0
ZW1zKCkudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIFVSTCBpdGVtVVJMKFVSTCgpLCBpdGVtLT51
cmwoKSk7CisgICAgICAgICAgICBVUkwgaXRlbVVSTCB7IGl0ZW0tPnVybCgpIH07CiAgICAgICAg
ICAgICBpZiAoaXRlbVVSTC5pc0xvY2FsRmlsZSgpICYmIGl0ZW1VUkwuZmlsZVN5c3RlbVBhdGgo
KSA9PSBwYXRoKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgVVJM
IGl0ZW1PcmlnaW5hbFVSTChVUkwoKSwgaXRlbS0+b3JpZ2luYWxVUkwoKSk7CisgICAgICAgICAg
ICBVUkwgaXRlbU9yaWdpbmFsVVJMIHsgaXRlbS0+b3JpZ2luYWxVUkwoKSB9OwogICAgICAgICAg
ICAgaWYgKGl0ZW1PcmlnaW5hbFVSTC5pc0xvY2FsRmlsZSgpICYmIGl0ZW1PcmlnaW5hbFVSTC5m
aWxlU3lzdGVtUGF0aCgpID09IHBhdGgpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRleCAxMTNmMTFi
MjZkMGU4OGM4MDNlOWQ0ODhiODY0ZTg0ZjlmZjZlYzU0Li4xODU3MGM4ZDFjMThkNzU4YzFhNTE1
YjYxZjMyN2QwNmFjZmNlMDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1t
CkBAIC0xNTcsOSArMTU3LDkgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVNldE5l
dHdvcmtQYXJhbWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJgogI2VuZGlmCiAgICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGVzZSBvbmNlIFNhZmFyaSBhZG9wdHMgX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaHR0cFByb3h5IGFuZCAuaHR0cHNQcm94eS4KICAgICBpZiAoIWh0
dHBQcm94eS5pc1ZhbGlkKCkgJiYgKGlzU2FmYXJpIHx8IGlzTWluaUJyb3dzZXIpKQotICAgICAg
ICBodHRwUHJveHkgPSBVUkwoVVJMKCksIFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6KE5TU3RyaW5n
ICopV2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5XSk7CisgICAgICAgIGh0dHBQcm94eSA9IFVS
TCB7IFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6KE5TU3RyaW5nICopV2ViS2l0MkhUVFBQcm94eURl
ZmF1bHRzS2V5XSB9OwogICAgIGlmICghaHR0cHNQcm94eS5pc1ZhbGlkKCkgJiYgKGlzU2FmYXJp
IHx8IGlzTWluaUJyb3dzZXIpKQotICAgICAgICBodHRwc1Byb3h5ID0gVVJMKFVSTCgpLCBbZGVm
YXVsdHMgc3RyaW5nRm9yS2V5OihOU1N0cmluZyAqKVdlYktpdDJIVFRQU1Byb3h5RGVmYXVsdHNL
ZXldKTsKKyAgICAgICAgaHR0cHNQcm94eSA9IFVSTCB7IFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6
KE5TU3RyaW5nICopV2ViS2l0MkhUVFBTUHJveHlEZWZhdWx0c0tleV0gfTsKIAogI2lmIEhBVkUo
Q0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgYm9vbCBodHRwM0VuYWJsZWQgPSBX
ZWJzaXRlRGF0YVN0b3JlOjpodHRwM0VuYWJsZWQoKTsKQEAgLTQ5OSw3ICs0OTksNyBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OmluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoRm9yY2VSZWluaXRp
YWxpemF0aW9uIGZvcmNlUmVpbgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICAgICAgVVJMIHVybCB7IFVSTCgpLCBkYXRhIH07CisgICAgICAg
ICAgICAgICAgVVJMIHVybCB7IGRhdGEgfTsKICAgICAgICAgICAgICAgICBpZiAodXJsLnByb3Rv
Y29sKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICB1cmwuc2V0UHJvdG9jb2woImh0
dHBzIik7CiAgICAgICAgICAgICAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggMWQxZGZmZDEyMDkxYWFjN2NjODgwZTIxNDU0ODI3Yzc1ZTBhZGY2ZC4uMDkzNTZiNjc0
ZTRmMmRlYzhlYjJmNjllZGM3NDgwYTAzMDFiYTg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDUx
OSw3ICsxMDUxOSw3IEBAIC0gKGlkIDxRTFByZXZpZXdJdGVtPilwcmV2aWV3Q29udHJvbGxlcjoo
UUxQcmV2aWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcHJldmllCiAgICAgICAgIGF1dG8gcHJl
dmlld09wdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdp
dGhDYXBhY2l0eToyXSk7CiAgICAgICAgIGlmIChfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlVVJM
KQogICAgICAgICAgICAgW3ByZXZpZXdPcHRpb25zIHNldE9iamVjdDpfdmlzdWFsU2VhcmNoUHJl
dmlld0ltYWdlVVJMLmdldCgpIGZvcktleTpAImltYWdlVVJMIl07Ci0gICAgICAgIGlmIChhdXRv
IHBhZ2VVUkwgPSBVUkwgeyBVUkwgeyB9LCBfcGFnZS0+Y3VycmVudFVSTCgpIH07ICFwYWdlVVJM
LmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKGF1dG8gcGFnZVVSTCA9IFVSTCB7IF9wYWdlLT5jdXJy
ZW50VVJMKCkgfTsgIXBhZ2VVUkwuaXNFbXB0eSgpKQogICAgICAgICAgICAgW3ByZXZpZXdPcHRp
b25zIHNldE9iamVjdDpwYWdlVVJMIGZvcktleTpAInBhZ2VVUkwiXTsKICAgICAgICAgaWYgKFtw
cmV2aWV3T3B0aW9ucyBjb3VudF0pCiAgICAgICAgICAgICBbaXRlbSBzZXRQcmV2aWV3T3B0aW9u
czpwcmV2aWV3T3B0aW9ucy5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCmluZGV4IDY1NWI5ODUwNDcx
NjA1MTg3ZjZhNTk4YjI3ZjE1OTJkMWY1NTg3MDAuLjRiNGM5M2IzNGU5ZGE2ZGFkMDY0MzU0OTM5
MDFmNTRhNjEyNjJiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9M
ZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwCkBAIC0xMTQ2LDcgKzExNDYsNyBAQCBi
b29sIGRlY29kZUxlZ2FjeVNlc3Npb25TdGF0ZShjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90
IHNpemUsIFNlc3Npb25TdGF0ZSYgcwogICAgIH0KIAogICAgIGlmIChhdXRvIHByb3Zpc2lvbmFs
VVJMU3RyaW5nID0gZHluYW1pY19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25hcnlHZXRW
YWx1ZShzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5LCBwcm92aXNpb25hbFVSTEtleSkpKSB7Ci0gICAg
ICAgIHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTCA9IFVSTChVUkwoKSwgcHJvdmlzaW9uYWxV
UkxTdHJpbmcpOworICAgICAgICBzZXNzaW9uU3RhdGUucHJvdmlzaW9uYWxVUkwgPSBVUkwgeyBw
cm92aXNpb25hbFVSTFN0cmluZyB9OwogICAgICAgICBpZiAoIXNlc3Npb25TdGF0ZS5wcm92aXNp
b25hbFVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUXVpY2tMb29rUHJldmlld0Nv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2
aWV3Q29udHJvbGxlci5tbQppbmRleCA4ZjVjODJlMDY0YzBlYmYxYzgwMjNhZTBiOWFmYTBiYjY5
M2ZjYTMyLi41ZjQ5NGU0ZDUzZjE3MDRjMTBhNzc3NjgyMzhiYmYxMGE2ZTdjMWYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tRdWlja0xvb2tQcmV2
aWV3Q29udHJvbGxlci5tbQpAQCAtNTQsNyArNTQsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSBpbWFnZURhdGE6KE5TRGF0YSAqKWlt
YQogICAgICAgICBhdXRvIHByZXZpZXdPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml0pOwogICAgICAgICBpZiAoaW1hZ2VVUkwp
CiAgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OmltYWdlVVJMIGZvcktleTpA
ImltYWdlVVJMIl07Ci0gICAgICAgIGlmIChOU1VSTCAqcGFnZVVSTCA9IFVSTCB7IFVSTCB7IH0s
IHBhZ2UuY3VycmVudFVSTCgpIH0pCisgICAgICAgIGlmIChOU1VSTCAqcGFnZVVSTCA9IFVSTCB7
IHBhZ2UuY3VycmVudFVSTCgpIH0pCiAgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2Jq
ZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFnZVVSTCJdOwogICAgICAgICBbX2l0ZW0gc2V0UHJldmll
d09wdGlvbnM6cHJldmlld09wdGlvbnMuZ2V0KCldOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggY2Y0
OGYyZTY0MTc5M2E0OGMzNjViYTUzZjRkMGNhYjk4NGJkMDk1ZS4uNDliMWRiMzgxNzQ2NjRhYWZm
YjBjYTFjOTYzMGM0NWNlNjYyNGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTYyMyw3ICs2MjMsNyBAQCB2
b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRleHRNZW51RnJvbUl0ZW1zKGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudQogICAgIEFTU0VSVChtX2NvbnRleHQud2ViSGl0VGVzdFJl
c3VsdERhdGEoKSk7CiAgICAgYXV0byBoaXRUZXN0RGF0YSA9IG1fY29udGV4dC53ZWJIaXRUZXN0
UmVzdWx0RGF0YSgpLnZhbHVlKCk7CiAgICAgCi0gICAgYXV0byBpbWFnZVVSTCA9IFVSTCB7IFVS
TCB7IH0sIGhpdFRlc3REYXRhLmFic29sdXRlSW1hZ2VVUkwgfTsKKyAgICBhdXRvIGltYWdlVVJM
ID0gVVJMIHsgaGl0VGVzdERhdGEuYWJzb2x1dGVJbWFnZVVSTCB9OwogICAgIGF1dG8gaW1hZ2VC
aXRtYXAgPSBoaXRUZXN0RGF0YS5pbWFnZUJpdG1hcDsKIAogICAgIGF1dG8gc3BhcnNlTWVudUl0
ZW1zID0gcmV0YWluUHRyKFtOU1BvaW50ZXJBcnJheSBzdHJvbmdPYmplY3RzUG9pbnRlckFycmF5
XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpp
bmRleCBjZWM0MjUyM2Q2OWVkODQ5ZGZmN2RiZDZiM2E2Y2E3NDUxYWE0MDY2Li5mNmFkYzljNzA4
MDdlZjc1ZThkNDhlMTYwNTE4ODBmYzU2MDVkMTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTczNCw3ICs3MzQsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlQ29udGV4dE1lbnVRdWlja0xvb2tJbWFnZShRdWlja0xvb2tQcmV2
aWV3QWN0aXZpdHkgYWN0aQogICAgIGlmICghcmVzdWx0LmltYWdlQml0bWFwKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzaG93SW1hZ2VJblF1aWNrTG9va1ByZXZpZXdQYW5lbCgqcmVzdWx0Lmlt
YWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IFVSTCB7IH0sIHJlc3VsdC5hYnNv
bHV0ZUltYWdlVVJMIH0sIGFjdGl2aXR5KTsKKyAgICBzaG93SW1hZ2VJblF1aWNrTG9va1ByZXZp
ZXdQYW5lbCgqcmVzdWx0LmltYWdlQml0bWFwLCByZXN1bHQudG9vbFRpcFRleHQsIFVSTCB7IHJl
c3VsdC5hYnNvbHV0ZUltYWdlVVJMIH0sIGFjdGl2aXR5KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dJbWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKFNoYXJlYWJsZUJpdG1hcCYgaW1h
Z2VCaXRtYXAsIGNvbnN0IFN0cmluZyYgdG9vbHRpcCwgY29uc3QgVVJMJiBpbWFnZVVSTCwgUXVp
Y2tMb29rUHJldmlld0FjdGl2aXR5IGFjdGl2aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcAppbmRl
eCAxMjdhYzFlNDU3NzE1YmY3ZGZiMGU5YzkzYTEwNDIwYjRmNWMzNTcxLi5hNmRhOWUyYzQyNTVm
ZGU1MTVkM2Q4MzVjMmMxMDJkMWJmODdhNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcApAQCAt
MTc0LDcgKzE3NCw3IEBAIHVpbnQ2NF90IFdlYlBheW1lbnRDb29yZGluYXRvcjo6bWVzc2FnZVNl
bmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6
dmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25VUkxTdHJpbmcpCiB7Ci0g
ICAgcGF5bWVudENvb3JkaW5hdG9yKCkudmFsaWRhdGVNZXJjaGFudChVUkwoVVJMKCksIHZhbGlk
YXRpb25VUkxTdHJpbmcpKTsKKyAgICBwYXltZW50Q29vcmRpbmF0b3IoKS52YWxpZGF0ZU1lcmNo
YW50KFVSTCB7IHZhbGlkYXRpb25VUkxTdHJpbmcgfSk7CiB9CiAKIHZvaWQgV2ViUGF5bWVudENv
b3JkaW5hdG9yOjpkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmIHBh
eW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5kZXggMmM1OGU5Y2FhZDUxMzUw
NTYzMWYwM2IwNmIxYzk0MWQwOWZiZTgxZi4uNzNiN2ZiMGYwZDYzZDEzNTkzNjFiM2E0OWRlNzU1
NDRkMWUwNjgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMTYzLDcgKzE2
Myw3IEBAIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJhbWVDb3B5TGF5ZXJUcmVlQXNUZXh0KFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWVSZWYpCiAKIGJvb2wgV0tCdW5kbGVGcmFtZUFsbG93c0ZvbGxvd2lu
Z0xpbmsoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgV0tVUkxSZWYgdXJsUmVmKQogewotICAg
IHJldHVybiBXZWJLaXQ6OnRvSW1wbChmcmFtZVJlZiktPmFsbG93c0ZvbGxvd2luZ0xpbmsoVVJM
KFVSTCgpLCBXZWJLaXQ6OnRvV1RGU3RyaW5nKHVybFJlZikpKTsKKyAgICByZXR1cm4gV2ViS2l0
Ojp0b0ltcGwoZnJhbWVSZWYpLT5hbGxvd3NGb2xsb3dpbmdMaW5rKFVSTCB7IFdlYktpdDo6dG9X
VEZTdHJpbmcodXJsUmVmKSB9KTsKIH0KIAogYm9vbCBXS0J1bmRsZUZyYW1lSGFuZGxlc1BhZ2VT
Y2FsZUdlc3R1cmUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikKQEAgLTIwOCwxMiArMjA4LDEy
IEBAIGJvb2wgV0tCdW5kbGVGcmFtZUdldERvY3VtZW50QmFja2dyb3VuZENvbG9yKFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWVSZWYsIGRvdWJsZSoKIAogV0tTdHJpbmdSZWYgV0tCdW5kbGVGcmFtZUNv
cHlTdWdnZXN0ZWRGaWxlbmFtZUZvclJlc291cmNlV2l0aFVSTChXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lUmVmLCBXS1VSTFJlZiB1cmxSZWYpCiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9Db3BpZWRB
UEkoV2ViS2l0Ojp0b0ltcGwoZnJhbWVSZWYpLT5zdWdnZXN0ZWRGaWxlbmFtZUZvclJlc291cmNl
V2l0aFVSTChVUkwoVVJMKCksIFdlYktpdDo6dG9XVEZTdHJpbmcodXJsUmVmKSkpKTsKKyAgICBy
ZXR1cm4gV2ViS2l0Ojp0b0NvcGllZEFQSShXZWJLaXQ6OnRvSW1wbChmcmFtZVJlZiktPnN1Z2dl
c3RlZEZpbGVuYW1lRm9yUmVzb3VyY2VXaXRoVVJMKFVSTCB7IFdlYktpdDo6dG9XVEZTdHJpbmco
dXJsUmVmKSB9KSk7CiB9CiAKIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJhbWVDb3B5TUlNRVR5cGVG
b3JSZXNvdXJjZVdpdGhVUkwoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgV0tVUkxSZWYgdXJs
UmVmKQogewotICAgIHJldHVybiBXZWJLaXQ6OnRvQ29waWVkQVBJKFdlYktpdDo6dG9JbXBsKGZy
YW1lUmVmKS0+bWltZVR5cGVGb3JSZXNvdXJjZVdpdGhVUkwoVVJMKFVSTCgpLCBXZWJLaXQ6OnRv
V1RGU3RyaW5nKHVybFJlZikpKSk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9Db3BpZWRBUEkoV2Vi
S2l0Ojp0b0ltcGwoZnJhbWVSZWYpLT5taW1lVHlwZUZvclJlc291cmNlV2l0aFVSTChVUkwgeyBX
ZWJLaXQ6OnRvV1RGU3RyaW5nKHVybFJlZikgfSkpOwogfQogCiBib29sIFdLQnVuZGxlRnJhbWVD
b250YWluc0FueUZvcm1FbGVtZW50cyhXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBjOGJjZjE0N2I1ZWY1MTQyZTI4ZmQ0YmQyNjBkNzQ2
NTNmNTA4NThiLi5lMTliMWUwMzI0MGM3NWE4M2M1OTk0NzJhZTJlZGU0NmRiZmM3MWFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQgV0tCdW5k
bGVQYWdlU2V0Rm9vdGVyQmFubmVyKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBh
Z2VCYW5uZXJSZWYKIAogYm9vbCBXS0J1bmRsZVBhZ2VIYXNMb2NhbERhdGFGb3JVUkwoV0tCdW5k
bGVQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVmIHVybFJlZikKIHsKLSAgICByZXR1cm4gV2ViS2l0
Ojp0b0ltcGwocGFnZVJlZiktPmhhc0xvY2FsRGF0YUZvclVSTChVUkwoVVJMKCksIFdlYktpdDo6
dG9XVEZTdHJpbmcodXJsUmVmKSkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChwYWdlUmVm
KS0+aGFzTG9jYWxEYXRhRm9yVVJMKFVSTCB7IFdlYktpdDo6dG9XVEZTdHJpbmcodXJsUmVmKSB9
KTsKIH0KIAogYm9vbCBXS0J1bmRsZVBhZ2VDYW5IYW5kbGVSZXF1ZXN0KFdLVVJMUmVxdWVzdFJl
ZiByZXF1ZXN0UmVmKQpAQCAtODE0LDcgKzgxNCw3IEBAIHZvaWQgV0tCdW5kbGVQYWdlQ2xlYXJB
cHBsaWNhdGlvbkNhY2hlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFn
ZUNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgb3JpZ2luKQogewotICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5jb3JlUGFnZSgp
LT5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKG9y
aWdpbiktPnN0cmluZygpKSkpOworICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT5jb3JlUGFnZSgp
LT5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChVUkwgeyBXZWJLaXQ6OnRvSW1wbChvcmlnaW4p
LT5zdHJpbmcoKSB9KSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2V0QXBwQ2FjaGVNYXhpbXVt
U2l6ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qgc2l6ZSkKQEAgLTgyNCw3ICs4MjQs
NyBAQCB2b2lkIFdLQnVuZGxlUGFnZVNldEFwcENhY2hlTWF4aW11bVNpemUoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIHVpbnQ2NF90IHNpemUpCiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldEFwcENh
Y2hlVXNhZ2VGb3JPcmlnaW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG9yaWdp
bikKIHsKLSAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwocGFnZSktPmNvcmVQYWdlKCktPmFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlKCkuZGlza1VzYWdlRm9yT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbVVSTChVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKG9yaWdpbiktPnN0
cmluZygpKSkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+Y29yZVBhZ2UoKS0+
YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5kaXNrVXNhZ2VGb3JPcmlnaW4oV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKFVSTCB7IFdlYktpdDo6dG9JbXBsKG9yaWdpbiktPnN0
cmluZygpIH0pKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG9yaWdpbiwgdWludDY0
X3QgYnl0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBmNGRkNTgzMTIwYmUwY2ZhZDQ4MDU2
MmQzYjA4NWEyNTI4ODFkZDE1Li42MmE3ZjVjZThiZTUyOTQyYTJlM2U5ZTZhZGRkZjQ2ZTc4NGE0
YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI4Niw3ICsyODYsNyBAQCB2b2lkIEluamVj
dGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShXZWJQYWdlKiBwYWdlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZwogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0VXNlclN0eWxlU2hlZXRMb2Nh
dGlvbihjb25zdCBTdHJpbmcmIGxvY2F0aW9uKQogewogICAgIFBhZ2U6OmZvckVhY2hQYWdlKFts
b2NhdGlvbl0oUGFnZSYgcGFnZSkgewotICAgICAgICBwYWdlLnNldHRpbmdzKCkuc2V0VXNlclN0
eWxlU2hlZXRMb2NhdGlvbihVUkwoVVJMKCksIGxvY2F0aW9uKSk7CisgICAgICAgIHBhZ2Uuc2V0
dGluZ3MoKS5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFVSTCB7IGxvY2F0aW9uIH0pOwogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNWNmMjhm
Zjg5MWY4ZTdmZTY4ZTVkNzNlZjNkMTVjZWUwNTg2NjJjMi4uOTcwZTkwMDZkNTk5NjlhZWRjZGUy
MDk2MmM5MWFiMzQ2NDVhOTkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cApAQCAtMTk3LDcgKzE5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkRmV0Y2goY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBGZXRjaE9wdGlvCiAgICAgfQogCiAg
ICAgU3RyaW5nIG9yaWdpbiA9IHJlcXVlc3QuaHR0cE9yaWdpbigpOwotICAgIFVSTCB1cmwgeyBV
UkwoKSwgb3JpZ2luLmlzRW1wdHkoKSA/IHJlZmVycmVyIDogb3JpZ2luIH07CisgICAgVVJMIHVy
bCB7IG9yaWdpbi5pc0VtcHR5KCkgPyByZWZlcnJlciA6IG9yaWdpbiB9OwogICAgIGlmICh1cmwu
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwo
dXJsLCBzZXJ2aWNlV29ya2VyVVJMKSkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2
aWNlV29ya2VyLCAiU2hvdWxkIG5vdCBpbnRlcmNlcHQgYSBub24gbmF2aWdhdGlvbiBsb2FkIHRo
YXQgaXMgbm90IG9yaWdpbmF0aW5nIGZyb20gYSBzYW1lLW9yaWdpbiBjb250ZXh0IGFzIHRoZSBz
ZXJ2aWNlIHdvcmtlciBVUkwiKTsKICAgICAgICAgQVNTRVJUKHVybC5ob3N0KCkgPT0gc2Vydmlj
ZVdvcmtlclVSTC5ob3N0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmlu
ZGV4IDU2N2Q0NzUxYmVlODNhM2IzZjRmNmUwZmEyMzc3YmQwMDYzNTBhMjkuLmJjZDk4NzQ5YzJj
ZDAyNWYwMGI1Y2JmNDIzMGExNzI3N2IyMWZmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29u
dmVyc2lvbi5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgUmVmPEZvcm1EYXRhPiB0b0Zv
cm1EYXRhKGNvbnN0IEhUVFBCb2R5JiBodHRwQm9keSkKICAgICAgICAgICAgIGJyZWFrOwogCiAg
ICAgICAgIGNhc2UgSFRUUEJvZHk6OkVsZW1lbnQ6OlR5cGU6OkJsb2I6Ci0gICAgICAgICAgICBm
b3JtRGF0YS0+YXBwZW5kQmxvYihVUkwoVVJMKCksIGVsZW1lbnQuYmxvYlVSTFN0cmluZykpOwor
ICAgICAgICAgICAgZm9ybURhdGEtPmFwcGVuZEJsb2IoVVJMIHsgZWxlbWVudC5ibG9iVVJMU3Ry
aW5nIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmNwcAppbmRleCBjNmE2ZTQ2MDMyOWU3YTE0YzMxOGFhZTNlMWZiODRh
ZmE3ZTkyOGU0Li5iYWRhZjE1ODdhMjAxOTc3ZWI5ZTc0ZjE0Nzk3OTQ3ZWIyNDcyZjFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4
dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBXZWJD
b250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSog
ZnJhbWUpCiAgICAgc2VhcmNoU3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgpOwogICAgIHNlYXJjaFN0
cmluZyA9IGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMoc2VhcmNoU3RyaW5nKTsKICAgICBz
ZWFyY2hTdHJpbmcucmVwbGFjZSgiJTIwIl9zLCAiKyJfcyk7Ci0gICAgYXV0byBzZWFyY2hVUkwg
PSBVUkwgeyB7IH0sICJodHRwczovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSIgKyBzZWFyY2hT
dHJpbmcgKyAiJmllPVVURi04Jm9lPVVURi04IiB9OworICAgIGF1dG8gc2VhcmNoVVJMID0gVVJM
IHsgImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9IiArIHNlYXJjaFN0cmluZyArICIm
aWU9VVRGLTgmb2U9VVRGLTgiIH07CiAKICAgICBXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRv
ciBpbmRpY2F0b3IgeyBXZWJDb3JlOjpQcm9jZXNzaW5nVXNlckdlc3R1cmUgfTsKICAgICBwYWdl
LT5tYWluRnJhbWUoKS5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihzZWFyY2hVUkwsIHsgfSwgbnVs
bHB0ciwgV2ViQ29yZTo6UmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nLCBXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCmluZGV4IDU0ZjQ2
NTdmODQwNjQ0MWRmYzQzOGQ4YzUwZmQxYjc5NTZiODU0ZjcuLjQzZTQ1MTc5M2YwNTE4Y2VhNWZl
YTM1Mjg1OWFkNDY0MjYwN2ZmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwCkBAIC0xMzY2LDcgKzEzNjYsNyBAQCBzdGF0aWMg
Ym9vbCBlbmNvZGVBcmd1bWVudChJUEM6OkVuY29kZXImIGVuY29kZXIsIEpTSVBDJiBqc0lQQywg
SlNDb250ZXh0UmVmIGNvbgogICAgICAgICBhdXRvIHN0cmluZyA9IGpzVmFsdWUudG9XVEZTdHJp
bmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBlbmNvZGVyIDw8IFVSTCB7IFVSTCB7IH0sIHN0
cmluZyB9OworICAgICAgICBlbmNvZGVyIDw8IFVSTCB7IHN0cmluZyB9OwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTEzNzgsNyArMTM3OCw3IEBAIHN0YXRpYyBib29sIGVuY29k
ZUFyZ3VtZW50KElQQzo6RW5jb2RlciYgZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRS
ZWYgY29uCiAgICAgICAgIGF1dG8gc3RyaW5nID0ganNWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxP
YmplY3QpOwogICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
eyBVUkwgeyBVUkwgeyB9LCBzdHJpbmcgfSB9OworICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsgc3RyaW5nIH0gfTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGUyM2FkYmE5MTgxMjNhMTljZTQ4N2MxMGE2NWNlNmRmNGUxNTk0MmEuLmVkYTMy
NDliYWQ5NjYyZmZmNTM5NzM5OWQwODY3ZjQ4NDY3YzE5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNzU5LDcgKzE3NTksNyBAQCB2b2lk
IFdlYlBhZ2U6OmxvYWREYXRhKExvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiAgICAg
aWYgKGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICBiYXNl
VVJMID0gYWJvdXRCbGFua1VSTCgpOwogICAgIGVsc2UgewotICAgICAgICBiYXNlVVJMID0gVVJM
KFVSTCgpLCBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nKTsKKyAgICAgICAgYmFzZVVSTCA9
IFVSTCB7IGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgfTsKICAgICAgICAgaWYgKGJhc2VV
UkwuaXNWYWxpZCgpICYmICFiYXNlVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKICAgICAg
ICAgICAgIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzSGFuZGxlZEJ5
U2NoZW1lSGFuZGxlcihiYXNlVVJMLnByb3RvY29sKCkudG9TdHJpbmcoKSk7CiAgICAgfQpAQCAt
MTc3NSw5ICsxNzc1LDkgQEAgdm9pZCBXZWJQYWdlOjpsb2FkQWx0ZXJuYXRlSFRNTChMb2FkUGFy
YW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQogewogICAgIHBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQ
YXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAotICAgIFVSTCBiYXNlVVJMID0gbG9hZFBhcmFt
ZXRlcnMuYmFzZVVSTFN0cmluZy5pc0VtcHR5KCkgPyBhYm91dEJsYW5rVVJMKCkgOiBVUkwoVVJM
KCksIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcpOwotICAgIFVSTCB1bnJlYWNoYWJsZVVS
TCA9IGxvYWRQYXJhbWV0ZXJzLnVucmVhY2hhYmxlVVJMU3RyaW5nLmlzRW1wdHkoKSA/IFVSTCgp
IDogVVJMKFVSTCgpLCBsb2FkUGFyYW1ldGVycy51bnJlYWNoYWJsZVVSTFN0cmluZyk7Ci0gICAg
VVJMIHByb3Zpc2lvbmFsTG9hZEVycm9yVVJMID0gbG9hZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxM
b2FkRXJyb3JVUkxTdHJpbmcuaXNFbXB0eSgpID8gVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJh
bWV0ZXJzLnByb3Zpc2lvbmFsTG9hZEVycm9yVVJMU3RyaW5nKTsKKyAgICBVUkwgYmFzZVVSTCA9
IGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpID8gYWJvdXRCbGFua1VSTCgp
IDogVVJMIHsgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0cmluZyB9OworICAgIFVSTCB1bnJlYWNo
YWJsZVVSTCA9IGxvYWRQYXJhbWV0ZXJzLnVucmVhY2hhYmxlVVJMU3RyaW5nLmlzRW1wdHkoKSA/
IFVSTCgpIDogVVJMIHsgbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVVUkxTdHJpbmcgfTsKKyAg
ICBVUkwgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwgPSBsb2FkUGFyYW1ldGVycy5wcm92aXNpb25h
bExvYWRFcnJvclVSTFN0cmluZy5pc0VtcHR5KCkgPyBVUkwoKSA6IFVSTCB7IGxvYWRQYXJhbWV0
ZXJzLnByb3Zpc2lvbmFsTG9hZEVycm9yVVJMU3RyaW5nIH07CiAgICAgYXV0byBzaGFyZWRCdWZm
ZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShsb2FkUGFyYW1ldGVycy5kYXRhLmRhdGEoKSwgbG9h
ZFBhcmFtZXRlcnMuZGF0YS5zaXplKCkpOwogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+
bG9hZGVyKCkuc2V0UHJvdmlzaW9uYWxMb2FkRXJyb3JCZWluZ0hhbmRsZWRVUkwocHJvdmlzaW9u
YWxMb2FkRXJyb3JVUkwpOwogCkBAIC0zOTAxLDcgKzM5MDEsNyBAQCB2b2lkIFdlYlBhZ2U6Omdl
dFJlc291cmNlRGF0YUZyb21GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiByZQogewogICAgIFJlZlB0cjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBidWZmZXI7CiAg
ICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJh
bWVJRCkpIHsKLSAgICAgICAgVVJMIHJlc291cmNlVVJMKFVSTCgpLCByZXNvdXJjZVVSTFN0cmlu
Zyk7CisgICAgICAgIFVSTCByZXNvdXJjZVVSTCB7IHJlc291cmNlVVJMU3RyaW5nIH07CiAgICAg
ICAgIGJ1ZmZlciA9IHJlc291cmNlRGF0YUZvckZyYW1lKGZyYW1lLT5jb3JlRnJhbWUoKSwgcmVz
b3VyY2VVUkwpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Q
dXNoU2VydmljZS5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2UubW0KaW5k
ZXggMDU4YTc2OWU2OTZjYWVjZTY2NDU0MmQwY2E3MDA4Yzg3NGI4YTdmMC4uODBlMjQzMDg0MDBi
Y2ZjN2VhOWJhYTBhZjgyNzc5ZGE1ZjgzNTMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
ZWJwdXNoZC9QdXNoU2VydmljZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hT
ZXJ2aWNlLm1tCkBAIC01NjcsNyArNTY3LDcgQEAgdm9pZCBQdXNoU2VydmljZTo6ZGlkUmVjZWl2
ZVB1c2hNZXNzYWdlKE5TU3RyaW5nKiB0b3BpYywgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbywKICAg
ICAgICAgYXV0byByZWNvcmQgPSBXVEZNb3ZlKCpyZWNvcmRSZXN1bHQpOwogCiAgICAgICAgIGlm
IChtZXNzYWdlLmVuY29kaW5nID09IENvbnRlbnRFbmNvZGluZzo6RW1wdHkpIHsKLSAgICAgICAg
ICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIocmVjb3JkLmJ1bmRsZUlELCBXZWJLaXQ6
OldlYlB1c2hNZXNzYWdlIHsgeyB9LCBVUkwoVVJMKCksIHJlY29yZC5zY29wZSkgfSk7CisgICAg
ICAgICAgICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyKHJlY29yZC5idW5kbGVJRCwgV2Vi
S2l0OjpXZWJQdXNoTWVzc2FnZSB7IHsgfSwgVVJMIHsgcmVjb3JkLnNjb3BlIH0gfSk7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBQdXNoU2VydmljZTo6ZGlkUmVjZWl2ZVB1c2hN
ZXNzYWdlKE5TU3RyaW5nKiB0b3BpYywgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbywKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhh
bmRsZXIocmVjb3JkLmJ1bmRsZUlELCBXZWJLaXQ6OldlYlB1c2hNZXNzYWdlIHsgV1RGTW92ZSgq
ZGVjcnlwdGVkUGF5bG9hZCksIFVSTChVUkwoKSwgcmVjb3JkLnNjb3BlKSB9KTsKKyAgICAgICAg
bV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcihyZWNvcmQuYnVuZGxlSUQsIFdlYktpdDo6V2Vi
UHVzaE1lc3NhZ2UgeyBXVEZNb3ZlKCpkZWNyeXB0ZWRQYXlsb2FkKSwgVVJMIHsgcmVjb3JkLnNj
b3BlIH0gfSk7CiAKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL01hcnNoYWxsaW5nSGVscGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9NYXJzaGFsbGluZ0hlbHBlcnMuY3BwCmluZGV4IGFiNmQ4
NWJmZjc5N2E5OWI4ZTlmOGIyMmJjY2RjYzQ1ZDI3MDllNzAuLjliOGYwNWM5YTViZmM1MDRhNGMz
ZTkxZjc3OTUwODRmOGIzMTcwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L01hcnNoYWxsaW5nSGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vTWFy
c2hhbGxpbmdIZWxwZXJzLmNwcApAQCAtNDQsNyArNDQsNyBAQCBDRkRpY3Rpb25hcnlWYWx1ZUNh
bGxCYWNrcyBNYXJzaGFsbGluZ0hlbHBlcnM6OmtJVW5rbm93bkRpY3Rpb25hcnlWYWx1ZUNhbGxC
YWNrcwogCiBVUkwgTWFyc2hhbGxpbmdIZWxwZXJzOjpCU1RSVG9LVVJMKEJTVFIgdXJsU3RyKQog
ewotICAgIHJldHVybiBVUkwoVVJMKCksIFN0cmluZyh1cmxTdHIsIFN5c1N0cmluZ0xlbih1cmxT
dHIpKSk7CisgICAgcmV0dXJuIFVSTCB7IFN0cmluZyh1cmxTdHIsIFN5c1N0cmluZ0xlbih1cmxT
dHIpKSB9OwogfQogCiBCU1RSIE1hcnNoYWxsaW5nSGVscGVyczo6VVJMVG9CU1RSKGNvbnN0IFVS
TCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGEzZDliOWIwMGM5YjY4
YTk4MGZhYmYzN2RjODFlZWQxZmRkNDM1Y2UuLmRmYzBhZTUxOTY2ODkyNDNhYjBmOGZjOTA4NjVj
Yzk2YzU2MGVlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBX
ZWJDb3JlOjpGcmFtZSogZnJhbWUpCiAgICAgc2VhcmNoU3RyaW5nLnN0cmlwV2hpdGVTcGFjZSgp
OwogICAgIHNlYXJjaFN0cmluZyA9IGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMoc2VhcmNo
U3RyaW5nKTsKICAgICBzZWFyY2hTdHJpbmcucmVwbGFjZSgiJTIwIl9zLCAiKyJfcyk7Ci0gICAg
YXV0byBzZWFyY2hVUkwgPSBVUkwgeyB7IH0sICJodHRwczovL3d3dy5nb29nbGUuY29tL3NlYXJj
aD9xPSIgKyBzZWFyY2hTdHJpbmcgKyAiJmllPVVURi04Jm9lPVVURi04IiB9OworICAgIGF1dG8g
c2VhcmNoVVJMID0gVVJMIHsgImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9IiArIHNl
YXJjaFN0cmluZyArICImaWU9VVRGLTgmb2U9VVRGLTgiIH07CiAKICAgICBXZWJDb3JlOjpVc2Vy
R2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IgeyBXZWJDb3JlOjpQcm9jZXNzaW5nVXNlckdlc3R1
cmUgfTsKICAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihzZWFy
Y2hVUkwsIHsgfSwgbnVsbHB0ciwgV2ViQ29yZTo6UmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5n
LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJFcnJvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJFcnJvci5jcHAKaW5kZXggZjA0Zjc5OTAzNTVlYTkxZGI4
NTUyNmRkZjM4YTJiZjkzNjA4MDU4Ny4uMTlkZTM3MWJlYTFjMTE2ZmQ3NjZkNmEzOTRkYjRlYTgw
ZmJkYmZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRXJyb3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkVycm9yLmNwcApAQCAtMTA3LDcgKzEw
Nyw3IEBAIFVMT05HIFdlYkVycm9yOjpSZWxlYXNlKCkKIAogSFJFU1VMVCBXZWJFcnJvcjo6aW5p
dChfSW5fIEJTVFIgZG9tYWluLCBpbnQgY29kZSwgX0luXyBCU1RSIHVybCkKIHsKLSAgICBtX2Vy
cm9yID0gUmVzb3VyY2VFcnJvcihTdHJpbmcoZG9tYWluLCBTeXNTdHJpbmdMZW4oZG9tYWluKSks
IGNvZGUsIFVSTChVUkwoKSwgU3RyaW5nKHVybCwgU3lzU3RyaW5nTGVuKHVybCkpKSwgU3RyaW5n
KCkpOworICAgIG1fZXJyb3IgPSBSZXNvdXJjZUVycm9yKFN0cmluZyhkb21haW4sIFN5c1N0cmlu
Z0xlbihkb21haW4pKSwgY29kZSwgVVJMIHsgU3RyaW5nKHVybCwgU3lzU3RyaW5nTGVuKHVybCkp
IH0sIFN0cmluZygpKTsKICAgICByZXR1cm4gU19PSzsKIH0KICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJGcmFtZS5jcHAKaW5kZXggNTU4ZTEzYzdmMWZkYWE1YjEyNWQyMGJlZmU3OTFhMjdmZjc1
NzEyYS4uNTk0OGIwZWM1YjgwZDI3OWIyNjQzNGY0MmY0NWNmYTE3YmY3ZmJjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcApAQCAtNTcwLDcgKzU3MCw3IEBAIHZvaWQgV2ViRnJh
bWU6OmxvYWREYXRhKFJlZjxXZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiYmIGRhdGEs
IEJTVFIgbWltZVR5CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZWFsbHkgYmUgdXNpbmcgTWFy
c2hhbGxpbmdIZWxwZXJzOjpCU1RSVG9LVVJMIGhlcmUsCiAgICAgLy8gYnV0IHRoYXQgd291bGQg
dHVybiBhIG51bGwgQlNUUiBpbnRvIGEgbnVsbCBVUkwsIGFuZCB3ZSBjcmFzaCBpbnNpZGUgb2YK
ICAgICAvLyBXZWJDb3JlIGlmIHdlIHVzZSBhIG51bGwgVVJMIGluIGNvbnN0cnVjdGluZyB0aGUg
UmVzb3VyY2VSZXF1ZXN0LgotICAgIFVSTCBiYXNlQ29yZVVSTCA9IFVSTChVUkwoKSwgU3RyaW5n
KGJhc2VVUkwgPyBiYXNlVVJMIDogTCIiLCBTeXNTdHJpbmdMZW4oYmFzZVVSTCkpKTsKKyAgICBV
UkwgYmFzZUNvcmVVUkwgeyBTdHJpbmcoYmFzZVVSTCA/IGJhc2VVUkwgOiBMIiIsIFN5c1N0cmlu
Z0xlbihiYXNlVVJMKSkgfTsKIAogICAgIFVSTCBmYWlsaW5nQ29yZVVSTCA9IE1hcnNoYWxsaW5n
SGVscGVyczo6QlNUUlRvS1VSTChmYWlsaW5nVVJMKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAppbmRleCBmZWU0MDRmYjc1MGU3MjU1NWYxMzYxZjQzOWM4NDg3NmM2Mjk4ODMyLi5k
YjYyZGM2NTU5MzRmNjYxZTAwN2VlMTJkMGQxOTQ1ZDNiNzhmYzliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5n
IHRvU3RyaW5nKEJTdHJpbmcgJmJzdHIpCiAKIHN0YXRpYyBpbmxpbmUgVVJMIHRvVVJMKEJTVFIg
YnN0cikKIHsKLSAgICByZXR1cm4gVVJMKFVSTCgpLCB0b1N0cmluZyhic3RyKSk7CisgICAgcmV0
dXJuIFVSTCB7IHRvU3RyaW5nKGJzdHIpIH07CiB9CiAKIHN0YXRpYyBTdHJpbmcgbG9jYWxTdG9y
YWdlRGF0YWJhc2VQYXRoKFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NTliMTFkNWEzYmY2YTRj
YTVlNmUzMDVjZTE3YmM4YjYyMTRiMDg2Li4wYWNmOTgxODVmM2RiNmE5MjBmYzE4MWZmMDI5NTcx
ODQ0MmExMWI0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBBZG9wdCBtb3JlIHdpZGVseSB0aGUgbmV3IFVSTCBjb25zdHJ1
Y3RvciB0aGF0IHRha2VzIGluIGEgU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTFBhcnNlci5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjaGVja1VSTCk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpjaGVja1VSTERpZmZlcmVuY2VzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRl
c3RVc2VyUGFzc3dvcmQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29h
L1VSTEV4dHJhcy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjptYWluRG9jdW1lbnRSZXF1ZXN0KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnN1YlJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpy
ZXF1ZXN0SW5Ub3BBbmRGcmFtZVVSTHMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9G
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUmVnaXN0cmFibGVEb21h
aW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2N1cmwvQ29va2llcy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDdXJsOjpURVNUX0Yp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25N
YW5pZmVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdFNPQXV0aG9yaXphdGlvbi5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1NTTEtleUdlbmVyYXRvci5tbToKKwogMjAyMi0wMi0yMyAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIENhbGwgV0tOYXZpZ2F0aW9u
RGVsZWdhdGUuZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbiBldmVuIGFmdGVyIGEgY3Jvc3Mt
b3JpZ2luIG5hdmlnYXRpb24gd2l0aCBDT09QCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9VUkxQYXJzZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvVVJMUGFyc2VyLmNwcAppbmRleCBlZTJjNGI4YTkzMTQ2OGQyOWU2MjczMzFmMmM4ZjZlNzY1
Yzg4OTQ5Li5mZWZjNDI1MDEwMTM1MjE1NmE2MzM4ZTNmMzlkMmRkYzk2YzJhZTYyIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkxQYXJzZXIuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTFBhcnNlci5jcHAKQEAgLTg4LDcgKzg4LDcg
QEAgY29uc3QgVGVzdFRhYnMgdGVzdFRhYnNWYWx1ZUZvclN1cnJvZ2F0ZVBhaXJzID0gVGVzdFRh
YnM6Ok5vOwogCiBzdGF0aWMgdm9pZCBjaGVja1VSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZywg
Y29uc3QgRXhwZWN0ZWRQYXJ0cyYgcGFydHMsIFRlc3RUYWJzIHRlc3RUYWJzID0gVGVzdFRhYnM6
OlllcykKIHsKLSAgICBhdXRvIHVybCA9IFVSTChVUkwoKSwgdXJsU3RyaW5nKTsKKyAgICBVUkwg
dXJsIHsgdXJsU3RyaW5nIH07CiAgICAgCiAgICAgRVhQRUNUX1RSVUUoZXEocGFydHMucHJvdG9j
b2wsIHVybC5wcm90b2NvbCgpKSk7CiAgICAgRVhQRUNUX1RSVUUoZXEocGFydHMudXNlciwgdXJs
LnVzZXIoKSkpOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrUmVsYXRpdmVV
UkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTFN0cmluCiBz
dGF0aWMgdm9pZCBjaGVja1VSTERpZmZlcmVuY2VzKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBj
b25zdCBFeHBlY3RlZFBhcnRzJiBwYXJ0c05ldywgY29uc3QgRXhwZWN0ZWRQYXJ0cyYgcGFydHNP
bGQsIFRlc3RUYWJzIHRlc3RUYWJzID0gVGVzdFRhYnM6OlllcykKIHsKICAgICBVTlVTRURfUEFS
QU0ocGFydHNPbGQpOyAvLyBGSVhNRTogUmVtb3ZlIGFsbCB0aGUgb2xkIGV4cGVjdGVkIHBhcnRz
LgotICAgIGF1dG8gdXJsID0gVVJMKFVSTCgpLCB1cmxTdHJpbmcpOworICAgIFVSTCB1cmwgeyB1
cmxTdHJpbmcgfTsKICAgICAKICAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05ldy5wcm90b2NvbCwg
dXJsLnByb3RvY29sKCkpKTsKICAgICBFWFBFQ1RfVFJVRShlcShwYXJ0c05ldy51c2VyLCB1cmwu
dXNlcigpKSk7CkBAIC00OTcsOCArNDk3LDggQEAgVEVTVF9GKFdURl9VUkxQYXJzZXIsIEJhc2lj
KQogCiBzdGF0aWMgdm9pZCB0ZXN0VXNlclBhc3N3b3JkKGNvbnN0IFN0cmluZyYgdmFsdWUsIGNv
bnN0IFN0cmluZyYgZGVjb2RlZCwgY29uc3QgU3RyaW5nJiBlbmNvZGVkKQogewotICAgIFVSTCB1
c2VyVVJMKFVSTCgpLCBtYWtlU3RyaW5nKCJodHRwOi8vIiwgdmFsdWUsICJAZXhhbXBsZS5jb20v
IikpOwotICAgIFVSTCBwYXNzVVJMKFVSTCgpLCBtYWtlU3RyaW5nKCJodHRwOi8vdXNlcjoiLCB2
YWx1ZSwgIkBleGFtcGxlLmNvbS8iKSk7CisgICAgVVJMIHVzZXJVUkwgeyBtYWtlU3RyaW5nKCJo
dHRwOi8vIiwgdmFsdWUsICJAZXhhbXBsZS5jb20vIikgfTsKKyAgICBVUkwgcGFzc1VSTCB7IG1h
a2VTdHJpbmcoImh0dHA6Ly91c2VyOiIsIHZhbHVlLCAiQGV4YW1wbGUuY29tLyIpIH07CiAgICAg
RVhQRUNUX0VRKGVuY29kZWQsIHVzZXJVUkwuZW5jb2RlZFVzZXIoKSk7CiAgICAgRVhQRUNUX0VR
KGVuY29kZWQsIHBhc3NVUkwuZW5jb2RlZFBhc3N3b3JkKCkpOwogICAgIEVYUEVDVF9FUShkZWNv
ZGVkLCB1c2VyVVJMLnVzZXIoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9jb2NvYS9VUkxFeHRyYXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9jb2NvYS9VUkxFeHRyYXMubW0KaW5kZXggYTcwMTk4ODg1YThlZDYwNGU0MjYzYjBhODVkZTll
NGQ2NDlmODMzYS4uYmJmYTk0MzRjZWZkMGQyYTlhMzE3ZjMyOWEyZDZhYTlhMjRiMzlhYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvVVJMRXh0cmFzLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1VSTEV4dHJhcy5tbQpA
QCAtMjI1LDI0ICsyMjUsMjQgQEAgVEVTVChXVEZfVVJMRXh0cmFzLCBVUkxFeHRyYXNfUGFyc2lu
Z0Vycm9yKQogICAgIE5TU3RyaW5nICplbmNvZGVkSG9zdE5hbWUgPSBXVEY6OmVuY29kZUhvc3RO
YW1lKEAiaHR0cDovL++jvy5jb20iKTsKICAgICBFWFBFQ1RfVFJVRShlbmNvZGVkSG9zdE5hbWUg
PT0gbmlsKTsKIAotICAgIFdURjo6VVJMIHVybDIoVVJMKCksIHV0ZjE2U3RyaW5nKHUiaHR0cDov
L1x1MjI2N1x1MjIyRVx1RkU2M1x1MDY2MVx1MDZGMSIpKTsKKyAgICBXVEY6OlVSTCB1cmwyIHsg
dXRmMTZTdHJpbmcodSJodHRwOi8vXHUyMjY3XHUyMjJFXHVGRTYzXHUwNjYxXHUwNkYxIikgfTsK
ICAgICBFWFBFQ1RfU1RSRVEoW1t1cmwyIGFic29sdXRlU3RyaW5nXSBVVEY4U3RyaW5nXSwgImh0
dHA6Ly8lRTIlODklQTclRTIlODglQUUlRUYlQjklQTMlRDklQTElREIlQjEiKTsKIAogICAgIHN0
ZDo6YXJyYXk8VUNoYXIsIDM+IHV0ZjE2IHsgMHhDMiwgMHhCNiwgMHgwMCB9OwotICAgIFdURjo6
VVJMIHVybDMoVVJMKCksIFN0cmluZyh1dGYxNi5kYXRhKCkpKTsKKyAgICBXVEY6OlVSTCB1cmwz
IHsgU3RyaW5nKHV0ZjE2LmRhdGEoKSkgfTsKICAgICBFWFBFQ1RfRkFMU0UodXJsMy5zdHJpbmco
KS5pczhCaXQoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHVybDMuaXNWYWxpZCgpKTsKICAgICBFWFBF
Q1RfU1RSRVEoW1t1cmwzIGFic29sdXRlU3RyaW5nXSBVVEY4U3RyaW5nXSwgIiVDMyU4MiVDMiVC
NiIpOwogICAgIAogICAgIHN0ZDo6YXJyYXk8TENoYXIsIDM+IGxhdGluMSB7IDB4QzIsIDB4QjYs
IDB4MDAgfTsKLSAgICBXVEY6OlVSTCB1cmw0KFVSTCgpLCBTdHJpbmcobGF0aW4xLmRhdGEoKSkp
OworICAgIFdURjo6VVJMIHVybDQgeyBTdHJpbmcobGF0aW4xLmRhdGEoKSkgfTsKICAgICBFWFBF
Q1RfRkFMU0UodXJsNC5pc1ZhbGlkKCkpOwogICAgIEVYUEVDVF9UUlVFKHVybDQuc3RyaW5nKCku
aXM4Qml0KCkpOwogICAgIEVYUEVDVF9TVFJFUShbW3VybDQgYWJzb2x1dGVTdHJpbmddIFVURjhT
dHJpbmddLCAiJUMzJTgyJUMyJUI2Iik7CiAKICAgICBjaGFyIGJ1ZmZlclsxMDBdOwogICAgIG1l
bXNldChidWZmZXIsIDAsIHNpemVvZihidWZmZXIpKTsKLSAgICBXVEY6OlVSTCB1cmw1KFVSTCgp
LCAiZmlsZTovLy9BJUMzJUE3JUMzJUEzby5odG1sIl9zKTsKKyAgICBXVEY6OlVSTCB1cmw1IHsg
ImZpbGU6Ly8vQSVDMyVBNyVDMyVBM28uaHRtbCJfc3RyIH07CiAgICAgQ0ZVUkxHZXRGaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24odXJsNS5jcmVhdGVDRlVSTCgpLmdldCgpLCBmYWxzZSwgcmVpbnRl
cnByZXRfY2FzdDxVSW50OCo+KGJ1ZmZlciksIHNpemVvZihidWZmZXIpKTsKICAgICBFWFBFQ1Rf
U1RSRVEoYnVmZmVyLCAiL0FjzKdhzINvLmh0bWwiKTsKIH0KQEAgLTI1OCw3ICsyNTgsNyBAQCBU
RVNUKFdURl9VUkxFeHRyYXMsIFVSTEV4dHJhc19OaWwpCiAKIFRFU1QoV1RGX1VSTEV4dHJhcywg
Q3JlYXRlTlNBcnJheSkKIHsKLSAgICBWZWN0b3I8VVJMPiB1cmxzIHsgVVJMKFVSTCgpLCAiaHR0
cHM6Ly93ZWJraXQub3JnLyIpIH07CisgICAgVmVjdG9yPFVSTD4gdXJscyB7IFVSTCB7ICJodHRw
czovL3dlYmtpdC5vcmcvIl9zdHIgfSB9OwogICAgIGF1dG8gYXJyYXkgPSBjcmVhdGVOU0FycmF5
KHVybHMpOwogICAgIEVYUEVDVF9UUlVFKFthcnJheS5nZXQoKVswXSBpc0tpbmRPZkNsYXNzOk5T
VVJMLmNsYXNzXSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCA4MTcyNzVhZTQ2ODFhYTRiOTNiZGVj
MmI5OTc5MGQ3ZDhlZDgxM2YwLi45MjljMjllMjRhMTY2OGVjZWYyYjUyZmNhYTRlZDkyOTBkZDc0
NjJjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVu
dEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTE5NSwxOSArMTk1LDE5IEBAIHZvaWQgc3RhdGljIHRl
c3RSZXF1ZXN0SW1wbChpbnQgbGluZSwgY29uc3QgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRF
eHRlbnNpb25zCiAKIHN0YXRpYyBSZXNvdXJjZUxvYWRJbmZvIG1haW5Eb2N1bWVudFJlcXVlc3Qo
Y29uc3QgY2hhciogdXJsU3RyaW5nLCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlID0gUmVzb3Vy
Y2VUeXBlOjpEb2N1bWVudCkKIHsKLSAgICBVUkwgdXJsKFVSTCgpLCB1cmxTdHJpbmcpOworICAg
IFVSTCB1cmwgeyB1cmxTdHJpbmcgfTsKICAgICByZXR1cm4geyB1cmwsIHVybCwgdXJsLCByZXNv
dXJjZVR5cGUgfTsKIH0KIAogc3RhdGljIFJlc291cmNlTG9hZEluZm8gc3ViUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogbWFpbkRvY3VtZW50VVJMU3RyaW5nLCBS
ZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlID0gUmVzb3VyY2VUeXBlOjpEb2N1bWVudCkKIHsKLSAg
ICBVUkwgbWFpbkRvY3VtZW50VVJMKFVSTCgpLCBtYWluRG9jdW1lbnRVUkxTdHJpbmcpOwotICAg
IHJldHVybiB7IFVSTChVUkwoKSwgdXJsKSwgbWFpbkRvY3VtZW50VVJMLCBtYWluRG9jdW1lbnRV
UkwsIHJlc291cmNlVHlwZSB9OworICAgIFVSTCBtYWluRG9jdW1lbnRVUkwgeyBtYWluRG9jdW1l
bnRVUkxTdHJpbmcgfTsKKyAgICByZXR1cm4geyBVUkwgeyB1cmwgfSwgbWFpbkRvY3VtZW50VVJM
LCBtYWluRG9jdW1lbnRVUkwsIHJlc291cmNlVHlwZSB9OwogfQogCiBzdGF0aWMgUmVzb3VyY2VM
b2FkSW5mbyByZXF1ZXN0SW5Ub3BBbmRGcmFtZVVSTHMoY29uc3QgY2hhciogdXJsLCBjb25zdCBj
aGFyKiB0b3BVUkwsIGNvbnN0IGNoYXIqIGZyYW1lVVJMLCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VU
eXBlID0gUmVzb3VyY2VUeXBlOjpEb2N1bWVudCkKIHsKLSAgICByZXR1cm4geyBVUkwoVVJMKCks
IHVybCksIFVSTChVUkwoKSwgdG9wVVJMKSwgVVJMKFVSTCgpLCBmcmFtZVVSTCksIHJlc291cmNl
VHlwZSB9OworICAgIHJldHVybiB7IFVSTCB7IHVybCB9LCBVUkwgeyB0b3BVUkwgfSwgVVJMIHsg
ZnJhbWVVUkwgfSwgcmVzb3VyY2VUeXBlIH07CiB9CiAKIENvbnRlbnRFeHRlbnNpb25zOjpDb250
ZW50RXh0ZW5zaW9uc0JhY2tlbmQgbWFrZUJhY2tlbmQoY29uc3QgY2hhcioganNvbikKQEAgLTEx
MzgsMTMgKzExMzgsMTMgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBMb2FkVHlwZSkK
ICAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcImFsd2F5c2Jsb2NrLnBkZlwifX1dIik7CiAgICAgCiAgICAgdGVzdFJl
cXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmciKSwg
eyB9KTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTChVUkwoKSwgImh0dHA6Ly93ZWJr
aXQub3JnIiksIFVSTChVUkwoKSwgImh0dHA6Ly9ub3Rfd2Via2l0Lm9yZyIpLCBVUkwoVVJMKCks
ICJodHRwOi8vbm90X3dlYmtpdC5vcmciKSwgUmVzb3VyY2VUeXBlOjpEb2N1bWVudCB9LCB7IHZh
cmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tMb2FkQWN0aW9uPiB9KTsKKyAgICB0
ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTCB7ICJodHRwOi8vd2Via2l0Lm9yZyJfc3RyIH0sIFVS
TCB7ICJodHRwOi8vbm90X3dlYmtpdC5vcmciX3N0ciB9LCBVUkwgeyAiaHR0cDovL25vdF93ZWJr
aXQub3JnIl9zdHIgfSwgUmVzb3VyY2VUeXBlOjpEb2N1bWVudCB9LCB7IHZhcmlhbnRJbmRleDxD
b250ZW50RXh0ZW5zaW9uczo6QmxvY2tMb2FkQWN0aW9uPiB9KTsKICAgICAgICAgCiAgICAgdGVz
dFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3doYXR3Zy5vcmci
KSwgeyB2YXJpYW50SW5kZXg8Q29udGVudEV4dGVuc2lvbnM6OkJsb2NrTG9hZEFjdGlvbj4gfSk7
Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgeyBVUkwoVVJMKCksICJodHRwOi8vd2hhdHdnLm9y
ZyIpLCBVUkwoVVJMKCksICJodHRwOi8vbm90X3doYXR3Zy5vcmciKSwgVVJMKFVSTCgpLCAiaHR0
cDovL25vdF93aGF0d2cub3JnIiksIFJlc291cmNlVHlwZTo6RG9jdW1lbnQgfSwgeyB9KTsKKyAg
ICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTCB7ICJodHRwOi8vd2hhdHdnLm9yZyJfc3RyIH0s
IFVSTCB7ICJodHRwOi8vbm90X3doYXR3Zy5vcmciX3N0ciB9LCBVUkwgeyAiaHR0cDovL25vdF93
aGF0d2cub3JnIl9zdHIgfSwgUmVzb3VyY2VUeXBlOjpEb2N1bWVudCB9LCB7IH0pOwogICAgIAog
ICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9mb29i
YXIub3JnL2Fsd2F5c2Jsb2NrLnBkZiIpLCB7IHZhcmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9u
czo6QmxvY2tMb2FkQWN0aW9uPiB9KTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTChV
UkwoKSwgImh0dHA6Ly9mb29iYXIub3JnL2Fsd2F5c2Jsb2NrLnBkZiIpLCBVUkwoVVJMKCksICJo
dHRwOi8vbm90X2Zvb2Jhci5vcmcvYWx3YXlzYmxvY2sucGRmIiksIFVSTChVUkwoKSwgImh0dHA6
Ly9ub3RfZm9vYmFyLm9yZy9hbHdheXNibG9jay5wZGYiKSwgUmVzb3VyY2VUeXBlOjpEb2N1bWVu
dCB9LCB7IHZhcmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tMb2FkQWN0aW9uPiB9
KTsKKyAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTCB7ICJodHRwOi8vZm9vYmFyLm9yZy9h
bHdheXNibG9jay5wZGYiX3N0ciB9LCBVUkwgeyAiaHR0cDovL25vdF9mb29iYXIub3JnL2Fsd2F5
c2Jsb2NrLnBkZiJfc3RyIH0sIFVSTCB7ICJodHRwOi8vbm90X2Zvb2Jhci5vcmcvYWx3YXlzYmxv
Y2sucGRmIl9zdHIgfSwgUmVzb3VyY2VUeXBlOjpEb2N1bWVudCB9LCB7IHZhcmlhbnRJbmRleDxD
b250ZW50RXh0ZW5zaW9uczo6QmxvY2tMb2FkQWN0aW9uPiB9KTsKIH0KIAogVEVTVF9GKENvbnRl
bnRFeHRlbnNpb25UZXN0LCBSZXNvdXJjZVR5cGUpCkBAIC0xMTgxLDggKzExODEsOCBAQCBURVNU
X0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFJlc291cmNlT3JMb2FkVHlwZU1hdGNoaW5nRXZlcnl0
aGluZykKICAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImlnbm9yZS1wcmV2aW91cy1y
dWxlc1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwiLFwibG9hZC10eXBlXCI6
W1wiZmlyc3QtcGFydHlcIl19fV0iKTsKICAgICAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBt
YWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZyIpLCB7IH0sIDApOwotICAgIHRl
c3RSZXF1ZXN0KGJhY2tlbmQsIHsgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmciKSwgVVJM
KFVSTCgpLCAiaHR0cDovL25vdF93ZWJraXQub3JnIiksIFVSTChVUkwoKSwgImh0dHA6Ly9ub3Rf
d2Via2l0Lm9yZyIpLCBSZXNvdXJjZVR5cGU6OkRvY3VtZW50IH0sIHsgdmFyaWFudEluZGV4PENv
bnRlbnRFeHRlbnNpb25zOjpCbG9ja0Nvb2tpZXNBY3Rpb24+IH0pOwotICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmQsIHsgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmciKSwgVVJMKFVSTCgpLCAi
aHR0cDovL25vdF93ZWJraXQub3JnIiksIFVSTChVUkwoKSwgImh0dHA6Ly9ub3Rfd2Via2l0Lm9y
ZyIpLCBSZXNvdXJjZVR5cGU6OkltYWdlIH0sIHsgdmFyaWFudEluZGV4PENvbnRlbnRFeHRlbnNp
b25zOjpCbG9ja0Nvb2tpZXNBY3Rpb24+LCB2YXJpYW50SW5kZXg8Q29udGVudEV4dGVuc2lvbnM6
OkJsb2NrTG9hZEFjdGlvbj4gfSk7CisgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgeyBVUkwgeyAi
aHR0cDovL3dlYmtpdC5vcmciX3N0ciB9LCBVUkwgeyAiaHR0cDovL25vdF93ZWJraXQub3JnIl9z
dHIgfSwgVVJMIHsgImh0dHA6Ly9ub3Rfd2Via2l0Lm9yZyJfc3RyIH0sIFJlc291cmNlVHlwZTo6
RG9jdW1lbnQgfSwgeyB2YXJpYW50SW5kZXg8Q29udGVudEV4dGVuc2lvbnM6OkJsb2NrQ29va2ll
c0FjdGlvbj4gfSk7CisgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgeyBVUkwgeyAiaHR0cDovL3dl
YmtpdC5vcmciX3N0ciB9LCBVUkwgeyAiaHR0cDovL25vdF93ZWJraXQub3JnIl9zdHIgfSwgVVJM
IHsgImh0dHA6Ly9ub3Rfd2Via2l0Lm9yZyJfc3RyIH0sIFJlc291cmNlVHlwZTo6SW1hZ2UgfSwg
eyB2YXJpYW50SW5kZXg8Q29udGVudEV4dGVuc2lvbnM6OkJsb2NrQ29va2llc0FjdGlvbj4sIHZh
cmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tMb2FkQWN0aW9uPiB9KTsKIH0KICAg
ICAKIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgV2lkZU5GQSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnZWRJblN0YXR1cy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2VkSW5TdGF0dXMuY3BwCmluZGV4IDM1
NjRlODhkYzFiNWVhNzI4NmJjYmYyOTcyODBhZmRhZWQ4MjhlYmQuLjhlYTRlNDNlYzQ0NmI1MjZh
MzE4ZGY0MmM0NGNiMjQzOTJlOGE4YjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Mb2dnZWRJblN0YXR1cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0xvZ2dlZEluU3RhdHVzLmNwcApAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIERlZmF1bHRFeHBp
cnlXZWJBdXRobikKIHsKLSAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7
IHsgfSwgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OworICAgIFJlZ2lzdHJhYmxl
RG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3Mg
fSB9OwogCiAgICAgYXV0byBsb2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3RhdHVzOjpjcmVhdGUo
bG9naW5Eb21haW4sICJhZG1pbiJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5
cGU6OkhUVFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpX
ZWJBdXRobik7CiAgICAgYXV0byYgbG9nZ2VkSW4gPSBsb2dnZWRJblJlc3VsdC5yZXR1cm5WYWx1
ZSgpLmdldCgpOwpAQCAtNTYsNyArNTYsNyBAQCBURVNUKExvZ2dlZEluU3RhdHVzLCBEZWZhdWx0
RXhwaXJ5V2ViQXV0aG4pCiAKIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIERlZmF1bHRFeHBpcnlQYXNz
d29yZE1hbmFnZXIpCiB7Ci0gICAgUmVnaXN0cmFibGVEb21haW4gbG9naW5Eb21haW4geyBVUkwg
eyB7IH0sICJodHRwczovL2xvZ2luLmV4YW1wbGUuY29tIl9zIH0gfTsKKyAgICBSZWdpc3RyYWJs
ZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7ICJodHRwczovL2xvZ2luLmV4YW1wbGUuY29tIl9z
IH0gfTsKIAogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBMb2dnZWRJblN0YXR1czo6Y3JlYXRl
KGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExvZ2dlZEluU3RhdHVzOjpDcmVkZW50aWFsVG9rZW5U
eXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0aW9uVHlwZTo6
UGFzc3dvcmRNYW5hZ2VyKTsKICAgICBhdXRvJiBsb2dnZWRJbiA9IGxvZ2dlZEluUmVzdWx0LnJl
dHVyblZhbHVlKCkuZ2V0KCk7CkBAIC02OSw3ICs2OSw3IEBAIFRFU1QoTG9nZ2VkSW5TdGF0dXMs
IERlZmF1bHRFeHBpcnlQYXNzd29yZE1hbmFnZXIpCiAKIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIERl
ZmF1bHRFeHBpcnlVbm1hbmFnZWQpCiB7Ci0gICAgUmVnaXN0cmFibGVEb21haW4gbG9naW5Eb21h
aW4geyBVUkwgeyB7IH0sICJodHRwczovL2xvZ2luLmV4YW1wbGUuY29tIl9zIH0gfTsKKyAgICBS
ZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7ICJodHRwczovL2xvZ2luLmV4YW1w
bGUuY29tIl9zIH0gfTsKIAogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBMb2dnZWRJblN0YXR1
czo6Y3JlYXRlKGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExvZ2dlZEluU3RhdHVzOjpDcmVkZW50
aWFsVG9rZW5UeXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0
aW9uVHlwZTo6VW5tYW5hZ2VkKTsKICAgICBhdXRvJiBsb2dnZWRJbiA9IGxvZ2dlZEluUmVzdWx0
LnJldHVyblZhbHVlKCkuZ2V0KCk7CkBAIC04Miw3ICs4Miw3IEBAIFRFU1QoTG9nZ2VkSW5TdGF0
dXMsIERlZmF1bHRFeHBpcnlVbm1hbmFnZWQpCiAKIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIEN1c3Rv
bUV4cGlyeUJlbG93TG9uZykKIHsKLSAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7
IFVSTCB7IHsgfSwgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OworICAgIFJlZ2lz
dHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5j
b20iX3MgfSB9OwogCiAgICAgYXV0byBjdXN0b21FeHBpcnkgPSBMb2dnZWRJblN0YXR1czo6VGlt
ZVRvTGl2ZUxvbmcgLSA0OF9oOwogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBMb2dnZWRJblN0
YXR1czo6Y3JlYXRlKGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExvZ2dlZEluU3RhdHVzOjpDcmVk
ZW50aWFsVG9rZW5UeXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRp
Y2F0aW9uVHlwZTo6V2ViQXV0aG4sIGN1c3RvbUV4cGlyeSk7CkBAIC05Niw3ICs5Niw3IEBAIFRF
U1QoTG9nZ2VkSW5TdGF0dXMsIEN1c3RvbUV4cGlyeUJlbG93TG9uZykKIAogVEVTVChMb2dnZWRJ
blN0YXR1cywgQ3VzdG9tRXhwaXJ5QmVsb3dTaG9ydCkKIHsKLSAgICBSZWdpc3RyYWJsZURvbWFp
biBsb2dpbkRvbWFpbiB7IFVSTCB7IHsgfSwgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3Mg
fSB9OworICAgIFJlZ2lzdHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgImh0dHBzOi8v
bG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OwogCiAgICAgYXV0byBjdXN0b21FeHBpcnkgPSBMb2dn
ZWRJblN0YXR1czo6VGltZVRvTGl2ZVNob3J0IC0gNDhfaDsKICAgICBhdXRvIGxvZ2dlZEluUmVz
dWx0ID0gTG9nZ2VkSW5TdGF0dXM6OmNyZWF0ZShsb2dpbkRvbWFpbiwgImFkbWluIl9zLCBMb2dn
ZWRJblN0YXR1czo6Q3JlZGVudGlhbFRva2VuVHlwZTo6SFRUUFN0YXRlVG9rZW4sIExvZ2dlZElu
U3RhdHVzOjpBdXRoZW50aWNhdGlvblR5cGU6OlBhc3N3b3JkTWFuYWdlciwgY3VzdG9tRXhwaXJ5
KTsKQEAgLTExMCw3ICsxMTAsNyBAQCBURVNUKExvZ2dlZEluU3RhdHVzLCBDdXN0b21FeHBpcnlC
ZWxvd1Nob3J0KQogCiBURVNUKExvZ2dlZEluU3RhdHVzLCBSZW5ld2VkRXhwaXJ5KQogewotICAg
IFJlZ2lzdHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgeyB9LCAiaHR0cHM6Ly9sb2dp
bi5leGFtcGxlLmNvbSJfcyB9IH07CisgICAgUmVnaXN0cmFibGVEb21haW4gbG9naW5Eb21haW4g
eyBVUkwgeyAiaHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9IH07CiAKICAgICBhdXRvIGN1
c3RvbUV4cGlyeSA9IExvZ2dlZEluU3RhdHVzOjpUaW1lVG9MaXZlU2hvcnQgLSA0OF9oOwogICAg
IGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBMb2dnZWRJblN0YXR1czo6Y3JlYXRlKGxvZ2luRG9tYWlu
LCAiYWRtaW4iX3MsIExvZ2dlZEluU3RhdHVzOjpDcmVkZW50aWFsVG9rZW5UeXBlOjpIVFRQU3Rh
dGVUb2tlbiwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0aW9uVHlwZTo6V2ViQXV0aG4sIGN1
c3RvbUV4cGlyeSk7CkBAIC0xMzIsNyArMTMyLDcgQEAgVEVTVChMb2dnZWRJblN0YXR1cywgUmVu
ZXdlZEV4cGlyeSkKIAogVEVTVChMb2dnZWRJblN0YXR1cywgSW52YWxpZFVzZXJuYW1lcykKIHsK
LSAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7IHsgfSwgImh0dHBzOi8v
bG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OworICAgIFJlZ2lzdHJhYmxlRG9tYWluIGxvZ2luRG9t
YWluIHsgVVJMIHsgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OwogCiAgICAgLy8g
V2hpdGVzcGFjZSBpcyBub3QgYWxsb3dlZC4KICAgICBhdXRvIGxvZ2dlZEluUmVzdWx0ID0gTG9n
Z2VkSW5TdGF0dXM6OmNyZWF0ZShsb2dpbkRvbWFpbiwgIkkgdXNlIHNwYWNlcyJfcywgTG9nZ2Vk
SW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5cGU6OkhUVFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0
YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpXZWJBdXRobik7CkBAIC0xNTIsNyArMTUyLDcgQEAg
VEVTVChMb2dnZWRJblN0YXR1cywgSW52YWxpZFVzZXJuYW1lcykKIAogVEVTVChMb2dnZWRJblN0
YXR1cywgQ2xhbXBlZEV4cGlyeUxvbmcpCiB7Ci0gICAgUmVnaXN0cmFibGVEb21haW4gbG9naW5E
b21haW4geyBVUkwgeyB7IH0sICJodHRwczovL2xvZ2luLmV4YW1wbGUuY29tIl9zIH0gfTsKKyAg
ICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7ICJodHRwczovL2xvZ2luLmV4
YW1wbGUuY29tIl9zIH0gfTsKIAogICAgIC8vIFRvbyBsb25nIGV4cGlyaWVzIGZvciBtYW5hZ2Vk
IGF1dGggdHlwZXMgc2hvdWxkIGJlIGNsYW1wZWQgdG8gTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xp
dmVMb25nLgogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBMb2dnZWRJblN0YXR1czo6Y3JlYXRl
KGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExvZ2dlZEluU3RhdHVzOjpDcmVkZW50aWFsVG9rZW5U
eXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2VkSW5TdGF0dXM6OkF1dGhlbnRpY2F0aW9uVHlwZTo6
V2ViQXV0aG4sIExvZ2dlZEluU3RhdHVzOjpUaW1lVG9MaXZlTG9uZyArIDI0X2gpOwpAQCAtMTc0
LDcgKzE3NCw3IEBAIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIENsYW1wZWRFeHBpcnlMb25nKQogCiBU
RVNUKExvZ2dlZEluU3RhdHVzLCBDbGFtcGVkRXhwaXJ5U2hvcnQpCiB7Ci0gICAgUmVnaXN0cmFi
bGVEb21haW4gbG9naW5Eb21haW4geyBVUkwgeyB7IH0sICJodHRwczovL2xvZ2luLmV4YW1wbGUu
Y29tIl9zIH0gfTsKKyAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7ICJo
dHRwczovL2xvZ2luLmV4YW1wbGUuY29tIl9zIH0gfTsKIAogICAgIC8vIFRvbyBsb25nIGV4cGly
aWVzIGZvciB1bm1hbmFnZWQgYXV0aCB0eXBlcyBzaG91bGQgYmUgY2xhbXBlZCB0byBMb2dnZWRJ
blN0YXR1czo6VGltZVRvTGl2ZVNob3J0LgogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBMb2dn
ZWRJblN0YXR1czo6Y3JlYXRlKGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExvZ2dlZEluU3RhdHVz
OjpDcmVkZW50aWFsVG9rZW5UeXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2VkSW5TdGF0dXM6OkF1
dGhlbnRpY2F0aW9uVHlwZTo6VW5tYW5hZ2VkLCBMb2dnZWRJblN0YXR1czo6VGltZVRvTGl2ZVNo
b3J0ICsgMjRfaCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA1ZTc3NzY2YmFkOWE3
MDQyNWFhYjM5Y2NjZDIxYjBhODE4NGZkNTg3Li5lMWFjYWI3M2FmMzRjMzRiYWI3Y2I3ZDk1NzZm
OTkyMGJkODQxNzE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTM2LDggKzM2LDgg
QEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBjb25zdGV4cHIgdWludDMyX3QgbWluNkJp
dFZhbHVlIHsgMCB9OwogCi1jb25zdCBVUkwgd2ViS2l0VVJMIHsgeyB9LCAiaHR0cHM6Ly93ZWJr
aXQub3JnIl9zIH07Ci1jb25zdCBVUkwgZXhhbXBsZVVSTCB7IHsgfSwgImh0dHBzOi8vZXhhbXBs
ZS5jb20iX3MgfTsKK2NvbnN0IFVSTCB3ZWJLaXRVUkwgeyAiaHR0cHM6Ly93ZWJraXQub3JnIl9z
IH07Citjb25zdCBVUkwgZXhhbXBsZVVSTCB7ICJodHRwczovL2V4YW1wbGUuY29tIl9zIH07CiBj
b25zdCBVUkwgZW1wdHlVUkwgeyB9OwogCiAvLyBQb3NpdGl2ZSB0ZXN0IGNhc2VzLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWlu
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9SZWdpc3RyYWJsZURvbWFp
bi5jcHAKaW5kZXggYjI3ZDUwOGQ5NWRjYTMwZDVkMjk3NTU4NjNlOGE3ZTliOGQzN2Y4Yi4uNDYy
NzY1Y2ExNWRlNzcwZDc5YTQzYTNiN2U5NjRkZDA0NDkyODg3NyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uY3BwCkBA
IC0zNCwxOSArMzQsMTkgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBURVNUKFJlZ2lz
dHJhYmxlRG9tYWluLCBTdHJpbmdWc1VSTCkKIHsKLSAgICBVUkwgd2Via2l0VVJMIHsgVVJMKCks
ICJodHRwczovL3dlYmtpdC5vcmciIH07CisgICAgVVJMIHdlYmtpdFVSTCB7ICJodHRwczovL3dl
YmtpdC5vcmciX3N0ciB9OwogICAgIFJlZ2lzdHJhYmxlRG9tYWluIHdlYmtpdERvbWFpbkZyb21V
UkwgeyB3ZWJraXRVUkwgfTsKICAgICBhdXRvIHdlYmtpdERvbWFpbkZyb21TdHJpbmcgPSBSZWdp
c3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5n
KCJ3ZWJraXQub3JnIik7CiAKICAgICBBU1NFUlRfRVEod2Via2l0RG9tYWluRnJvbVVSTCwgd2Vi
a2l0RG9tYWluRnJvbVN0cmluZyk7CiAKLSAgICBVUkwgbG9jYWxob3N0VVJMIHsgVVJMKCksICJo
dHRwczovL2xvY2FsaG9zdDo4MDAwIiB9OworICAgIFVSTCBsb2NhbGhvc3RVUkwgeyAiaHR0cHM6
Ly9sb2NhbGhvc3Q6ODAwMCJfc3RyIH07CiAgICAgUmVnaXN0cmFibGVEb21haW4gbG9jYWxob3N0
RG9tYWluRnJvbVVSTCB7IGxvY2FsaG9zdFVSTCB9OwogICAgIGF1dG8gbG9jYWxob3N0RG9tYWlu
RnJvbVN0cmluZyA9IFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0
cmFibGVEb21haW5TdHJpbmcoImxvY2FsaG9zdCIpOwogCiAgICAgQVNTRVJUX0VRKGxvY2FsaG9z
dERvbWFpbkZyb21VUkwsIGxvY2FsaG9zdERvbWFpbkZyb21TdHJpbmcpOwogCi0gICAgVVJMIGZp
bGVVUkwgeyBVUkwoKSwgImZpbGU6Ly8vc29tZS9maWxlIiB9OworICAgIFVSTCBmaWxlVVJMIHsg
ImZpbGU6Ly8vc29tZS9maWxlIl9zdHIgfTsKICAgICBSZWdpc3RyYWJsZURvbWFpbiBmaWxlRG9t
YWluRnJvbVVSTCB7IGZpbGVVUkwgfTsKICAgICBhdXRvIGZpbGVEb21haW5Gcm9tU3RyaW5nID0g
UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0
cmluZygiIik7CiAgICAgCkBAIC01NSwxMiArNTUsMTIgQEAgVEVTVChSZWdpc3RyYWJsZURvbWFp
biwgU3RyaW5nVnNVUkwpCiAKIFRFU1QoUmVnaXN0cmFibGVEb21haW4sIE1hdGNoZXNVUkxzKQog
ewotICAgIFVSTCB3ZWJraXRVUkwgeyBVUkwoKSwgImh0dHBzOi8vd2Via2l0Lm9yZyIgfTsKLSAg
ICBVUkwgd2Via2l0VVJMV2l0aFBhdGggeyBVUkwoKSwgImh0dHBzOi8vd2Via2l0Lm9yZy9yb2Fk
L3RvL25vd2hlcmUvIiB9OwotICAgIFVSTCB3ZWJraXRTdWJkb21haW5VUkwgeyBVUkwoKSwgImh0
dHBzOi8vc3ViLmRvbWFpbi53ZWJraXQub3JnIiB9OwotICAgIFVSTCB3ZWJraXRPdGhlclN1YmRv
bWFpblVSTCB7IFVSTCgpLCAiaHR0cHM6Ly9zdWIub3RoZXIud2Via2l0Lm9yZyIgfTsKLSAgICBV
Ukwgd2Via2l0RHVwbGljYXRlU3ViZG9tYWluVVJMIHsgVVJMKCksICJodHRwczovL2RvbWFpbi5k
b21haW4ud2Via2l0Lm9yZyIgfTsKLSAgICBVUkwgd2Via2l0U3ViZG9tYWluVVJMV2l0aFBhdGgg
eyBVUkwoKSwgImh0dHBzOi8vc3ViLmRvbWFpbi53ZWJraXQub3JnL3JvYWQvdG8vbm93aGVyZS8i
IH07CisgICAgVVJMIHdlYmtpdFVSTCB7ICJodHRwczovL3dlYmtpdC5vcmciX3N0ciB9OworICAg
IFVSTCB3ZWJraXRVUkxXaXRoUGF0aCB7ICJodHRwczovL3dlYmtpdC5vcmcvcm9hZC90by9ub3do
ZXJlLyJfc3RyIH07CisgICAgVVJMIHdlYmtpdFN1YmRvbWFpblVSTCB7ICJodHRwczovL3N1Yi5k
b21haW4ud2Via2l0Lm9yZyJfc3RyIH07CisgICAgVVJMIHdlYmtpdE90aGVyU3ViZG9tYWluVVJM
IHsgImh0dHBzOi8vc3ViLm90aGVyLndlYmtpdC5vcmciX3N0ciB9OworICAgIFVSTCB3ZWJraXRE
dXBsaWNhdGVTdWJkb21haW5VUkwgeyAiaHR0cHM6Ly9kb21haW4uZG9tYWluLndlYmtpdC5vcmci
X3N0ciB9OworICAgIFVSTCB3ZWJraXRTdWJkb21haW5VUkxXaXRoUGF0aCB7ICJodHRwczovL3N1
Yi5kb21haW4ud2Via2l0Lm9yZy9yb2FkL3RvL25vd2hlcmUvIl9zdHIgfTsKICAgICBSZWdpc3Ry
YWJsZURvbWFpbiB3ZWJraXREb21haW4geyB3ZWJraXRVUkwgfTsKICAgICBSZWdpc3RyYWJsZURv
bWFpbiB3ZWJraXRTdWJkb21haW4geyB3ZWJraXRTdWJkb21haW5VUkwgfTsKIApAQCAtNzIsOCAr
NzIsOCBAQCBURVNUKFJlZ2lzdHJhYmxlRG9tYWluLCBNYXRjaGVzVVJMcykKICAgICBBU1NFUlRf
VFJVRSh3ZWJraXRTdWJkb21haW4ubWF0Y2hlcyh3ZWJraXRPdGhlclN1YmRvbWFpblVSTCkpOwog
ICAgIEFTU0VSVF9UUlVFKHdlYmtpdFN1YmRvbWFpbi5tYXRjaGVzKHdlYmtpdER1cGxpY2F0ZVN1
YmRvbWFpblVSTCkpOwogCi0gICAgVVJMIGxvY2FsaG9zdFVSTCB7IFVSTCgpLCAiaHR0cDovL2xv
Y2FsaG9zdCIgfTsKLSAgICBVUkwgbG9jYWxob3N0VVJMV2l0aFBhdGggeyBVUkwoKSwgImh0dHA6
Ly9sb2NhbGhvc3Qvcm9hZC90by9ub3doZXJlLyIgfTsKKyAgICBVUkwgbG9jYWxob3N0VVJMIHsg
Imh0dHA6Ly9sb2NhbGhvc3QiX3MgfTsKKyAgICBVUkwgbG9jYWxob3N0VVJMV2l0aFBhdGggeyAi
aHR0cDovL2xvY2FsaG9zdC9yb2FkL3RvL25vd2hlcmUvIl9zIH07CiAgICAgUmVnaXN0cmFibGVE
b21haW4gbG9jYWxob3N0RG9tYWluIHsgbG9jYWxob3N0VVJMIH07CiAKICAgICBBU1NFUlRfVFJV
RShsb2NhbGhvc3REb21haW4ubWF0Y2hlcyhsb2NhbGhvc3RVUkwpKTsKQEAgLTg0LDcgKzg0LDcg
QEAgVEVTVChSZWdpc3RyYWJsZURvbWFpbiwgTWF0Y2hlc1VSTHMpCiAgICAgQVNTRVJUX0ZBTFNF
KHdlYmtpdERvbWFpbi5tYXRjaGVzKGxvY2FsaG9zdFVSTCkpOwogICAgIEFTU0VSVF9GQUxTRSh3
ZWJraXREb21haW4ubWF0Y2hlcyhsb2NhbGhvc3RVUkxXaXRoUGF0aCkpOwogCi0gICAgVVJMIGVi
a2l0VVJMIHsgVVJMKCksICJodHRwczovL2Via2l0Lm9yZyIgfTsKKyAgICBVUkwgZWJraXRVUkwg
eyAiaHR0cHM6Ly9lYmtpdC5vcmciX3MgfTsKICAgICBBU1NFUlRfRkFMU0Uod2Via2l0RG9tYWlu
Lm1hdGNoZXMoZWJraXRVUkwpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjdlNDBlYzMyODZhOGJiZDFm
MjQ2YjJiZTY5NmEyZGU1NjExNDY5My4uNGMxZGRhMzdjYTZlNzM0NjViODdiNmUzYjViNzI1OTFl
ZGFjZGY4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uY3BwCkBAIC04MSw4ICs4MSw4IEBAIFRFU1RfRihTZWN1cml0eU9yaWdp
blRlc3QsIFNlY3VyaXR5T3JpZ2luQ29uc3RydWN0b3JzKQogICAgIGF1dG8gbzIgPSBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKCJodHRwIiwgImV4YW1wbGUuY29tIiwgc3RkOjpvcHRpb25hbDx1aW50
MTZfdD4oKSk7CiAgICAgYXV0byBvMyA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5n
KCJodHRwOi8vZXhhbXBsZS5jb20iKTsKICAgICBhdXRvIG80ID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUZyb21TdHJpbmcoImh0dHA6Ly9leGFtcGxlLmNvbTo4MCIpOwotICAgIGF1dG8gbzUgPSBT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwoKSwgImh0dHA6Ly9leGFtcGxlLmNvbSIpKTsK
LSAgICBhdXRvIG82ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwoVVJMKCksICJodHRwOi8v
ZXhhbXBsZS5jb206ODAiKSk7CisgICAgYXV0byBvNSA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
VVJMIHsgImh0dHA6Ly9leGFtcGxlLmNvbSJfc3RyIH0pOworICAgIGF1dG8gbzYgPSBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKFVSTCB7ICJodHRwOi8vZXhhbXBsZS5jb206ODAiX3N0ciB9KTsKICAg
ICBhdXRvIG83ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoImh0dHA6Ly9leGFt
cGxlLmNvbTo4MSIpOwogICAgIGF1dG8gbzggPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZygidW5yZWNvZ25pemVkOi8vaG9zdCIpOwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMTYz
LDEwICsxNjMsMTAgQEAgVEVTVF9GKFNlY3VyaXR5T3JpZ2luVGVzdCwgU2VjdXJpdHlPcmlnaW5D
b25zdHJ1Y3RvcnMpCiAKIFRFU1RfRihTZWN1cml0eU9yaWdpblRlc3QsIFNlY3VyaXR5T3JpZ2lu
RmlsZUJhc2VkQ29uc3RydWN0b3JzKQogewotICAgIGF1dG8gdGVtcEZpbGVPcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwoKSwgImZpbGU6Ly8vIiArIHRlbXBGaWxlUGF0aCgp
KSk7Ci0gICAgYXV0byBzcGFjZUNvbnRhaW5pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKFVSTChVUkwoKSwgImZpbGU6Ly8vIiArIHNwYWNlQ29udGFpbmluZ0ZpbGVQYXRoKCkpKTsK
LSAgICBhdXRvIGJhbmdDb250YWluaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShV
UkwoVVJMKCksICJmaWxlOi8vLyIgKyBiYW5nQ29udGFpbmluZ0ZpbGVQYXRoKCkpKTsKLSAgICBh
dXRvIHF1b3RlQ29udGFpbmluZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMKFVS
TCgpLCAiZmlsZTovLy8iICsgcXVvdGVDb250YWluaW5nRmlsZVBhdGgoKSkpOworICAgIGF1dG8g
dGVtcEZpbGVPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTCB7ICJmaWxlOi8vLyIg
KyB0ZW1wRmlsZVBhdGgoKSB9KTsKKyAgICBhdXRvIHNwYWNlQ29udGFpbmluZ09yaWdpbiA9IFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMIHsgImZpbGU6Ly8vIiArIHNwYWNlQ29udGFpbmluZ0Zp
bGVQYXRoKCkgfSk7CisgICAgYXV0byBiYW5nQ29udGFpbmluZ09yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUoVVJMIHsgImZpbGU6Ly8vIiArIGJhbmdDb250YWluaW5nRmlsZVBhdGgoKSB9
KTsKKyAgICBhdXRvIHF1b3RlQ29udGFpbmluZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGUoVVJMIHsgImZpbGU6Ly8vIiArIHF1b3RlQ29udGFpbmluZ0ZpbGVQYXRoKCkgfSk7CiAgICAg
CiAgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZSIpLCB0ZW1wRmlsZU9yaWdpbi0+cHJvdG9jb2wo
KSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygiZmlsZSIpLCBzcGFjZUNvbnRhaW5pbmdPcmlnaW4t
PnByb3RvY29sKCkpOwpAQCAtMTg5LDcgKzE4OSw3IEBAIFRFU1RfRihTZWN1cml0eU9yaWdpblRl
c3QsIFNlY3VyaXR5T3JpZ2luRmlsZUJhc2VkQ29uc3RydWN0b3JzKQogVEVTVF9GKFNlY3VyaXR5
T3JpZ2luVGVzdCwgSXNQb3RlbnRpYWxseVRydXN0d29ydGh5KQogewogICAgIC8vIFBvdGVudGlh
bGx5IFRydXN0d29ydGh5Ci0gICAgRVhQRUNUX1RSVUUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShV
UkwoVVJMKCksICJmaWxlOi8vLyIgKyB0ZW1wRmlsZVBhdGgoKSkpLT5pc1BvdGVudGlhbGx5VHJ1
c3R3b3J0aHkoKSk7CisgICAgRVhQRUNUX1RSVUUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwg
eyAiZmlsZTovLy8iICsgdGVtcEZpbGVQYXRoKCkgfSktPmlzUG90ZW50aWFsbHlUcnVzdHdvcnRo
eSgpKTsKICAgICBFWFBFQ1RfVFJVRShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZygi
YmxvYjpodHRwOi8vMTI3LjAuMC4xLzNENDVGMzZGLUMxMjYtNDkzQS1BOEFBLTQ1N0ZBNDk1MjQ3
QiIpLT5pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoKSk7CiAgICAgRVhQRUNUX1RSVUUoU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoImJsb2I6aHR0cDovL2xvY2FsaG9zdC8zRDQ1RjM2
Ri1DMTI2LTQ5M0EtQThBQS00NTdGQTQ5NTI0N0IiKS0+aXNQb3RlbnRpYWxseVRydXN0d29ydGh5
KCkpOwogICAgIEVYUEVDVF9UUlVFKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKCJi
bG9iOmh0dHA6Ly9bOjoxXS8zRDQ1RjM2Ri1DMTI2LTQ5M0EtQThBQS00NTdGQTQ5NTI0N0IiKS0+
aXNQb3RlbnRpYWxseVRydXN0d29ydGh5KCkpOwpAQCAtMjM2LDcgKzIzNiw3IEBAIFRFU1RfRihT
ZWN1cml0eU9yaWdpblRlc3QsIElzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSkKIAogVEVTVF9GKFNl
Y3VyaXR5T3JpZ2luVGVzdCwgSXNSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCkKIHsKLSAgICBhdXRv
IGV4YW1wbGVPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwoKSwgImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20iKSk7CisgICAgYXV0byBleGFtcGxlT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH0pOwogICAg
IEVYUEVDVF9UUlVFKGV4YW1wbGVPcmlnaW4tPmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1
ZmZpeCgiZXhhbXBsZS5jb20iKSk7CiAgICAgRVhQRUNUX1RSVUUoZXhhbXBsZU9yaWdpbi0+aXNN
YXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCJ3d3cuZXhhbXBsZS5jb20iKSk7CiAjaWYg
IUVOQUJMRShQVUJMSUNfU1VGRklYX0xJU1QpCkBAIC0yNTEsNyArMjUxLDcgQEAgVEVTVF9GKFNl
Y3VyaXR5T3JpZ2luVGVzdCwgSXNSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCkKICAgICBFWFBFQ1Rf
RkFMU0UoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCJj
b20iKSk7CiAjZW5kaWYKIAotICAgIGF1dG8gZXhhbXBsZURvdE9yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUoVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbS4iKSk7CisgICAg
YXV0byBleGFtcGxlRG90T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwgeyAiaHR0
cDovL3d3dy5leGFtcGxlLmNvbS4iX3N0ciB9KTsKICAgICBFWFBFQ1RfVFJVRShleGFtcGxlRG90
T3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImV4YW1wbGUuY29tLiIp
KTsKICAgICBFWFBFQ1RfVFJVRShleGFtcGxlRG90T3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFi
bGVEb21haW5TdWZmaXgoInd3dy5leGFtcGxlLmNvbS4iKSk7CiAjaWYgIUVOQUJMRShQVUJMSUNf
U1VGRklYX0xJU1QpCkBAIC0yNjYsMTEgKzI2NiwxMSBAQCBURVNUX0YoU2VjdXJpdHlPcmlnaW5U
ZXN0LCBJc1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KQogICAgIEVYUEVDVF9GQUxTRShleGFtcGxl
RG90T3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImNvbSIpKTsKICNl
bmRpZgogCi0gICAgYXV0byBpcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMKFVS
TCgpLCAiaHR0cDovLzEyNy4wLjAuMSIpKTsKKyAgICBhdXRvIGlwT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShVUkwgeyAiaHR0cDovLzEyNy4wLjAuMSJfc3RyIH0pOwogICAgIEVYUEVD
VF9UUlVFKGlwT3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoIjEyNy4w
LjAuMSIsIHRydWUpKTsKICAgICBFWFBFQ1RfRkFMU0UoaXBPcmlnaW4tPmlzTWF0Y2hpbmdSZWdp
c3RyYWJsZURvbWFpblN1ZmZpeCgiMTI3LjAuMC4yIiwgdHJ1ZSkpOwogCi0gICAgYXV0byBjb21P
cmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwoKSwgImh0dHA6Ly9jb20iKSk7
CisgICAgYXV0byBjb21PcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTCB7ICJodHRw
Oi8vY29tIl9zdHIgfSk7CiAgICAgRVhQRUNUX1RSVUUoY29tT3JpZ2luLT5pc01hdGNoaW5nUmVn
aXN0cmFibGVEb21haW5TdWZmaXgoImNvbSIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2N1cmwvQ29va2llcy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY3VybC9Db29raWVzLmNwcAppbmRleCAyMTllOTY2ZGJlYmFh
ODRkMzYwMjcyMmU5NTllMzJmNjRmYjRkYjJlLi43YTNlY2E1NTU4MmVlZjgxNTI2NmE0NGFkNmM1
ZWUyNTM2NmI3NWVlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY3VybC9Db29raWVzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY3VybC9Db29raWVzLmNwcApAQCAtNjQsNyArNjQsNyBAQCBwcm90ZWN0ZWQ6CiAKIFRFU1Rf
RihDdXJsQ29va2llcywgUmVqZWN0VGFpbG1hdGNoRmFpbHVyZURvbWFpbikKIHsKLSAgICBVUkwg
dXJsKFVSTCgpLCAiaHR0cDovL2V4YW1wbGUuY29tIik7CisgICAgVVJMIHVybCB7ICJodHRwOi8v
ZXhhbXBsZS5jb20iIH07CiAKICAgICAvLyBzdWNjZXNzOiBkb21haW4gbWF0Y2gKICAgICBFWFBF
Q1RfVFJVRShtX2Nvb2tpZUphci0+c2V0Q29va2llKHVybCwgdXJsLCAiZm9vPWJhcjsgRG9tYWlu
PWV4YW1wbGUuY29tIiwgQ29va2llSmFyREI6OlNvdXJjZTo6TmV0d29yaykpOwpAQCAtNzgsNyAr
NzgsNyBAQCBURVNUX0YoQ3VybENvb2tpZXMsIFJlamVjdFRhaWxtYXRjaEZhaWx1cmVEb21haW4p
CiAKIFRFU1RfRihDdXJsQ29va2llcywgVGVzdEh0dHBPbmx5Q2FzZSkKIHsKLSAgICBVUkwgdXJs
KFVSTCgpLCAiaHR0cDovL2V4YW1wbGUuY29tIik7CisgICAgVVJMIHVybCB7ICJodHRwOi8vZXhh
bXBsZS5jb20iIH07CiAKICAgICAvLyBzdWNjZXNzOiBmcm9tIG5ldHdvcmsKICAgICBFWFBFQ1Rf
VFJVRShtX2Nvb2tpZUphci0+c2V0Q29va2llKHVybCwgdXJsLCAiZm9vPWJhcjsgSHR0cE9ubHki
LCBDb29raWVKYXJEQjo6U291cmNlOjpOZXR3b3JrKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FwcGxpY2F0aW9uTWFuaWZlc3QubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FwcGxpY2F0aW9uTWFuaWZlc3QubW0K
aW5kZXggZjk0YjNhOTdhZmQwOTk2YmYzNTFiMWRkODFhMDI0ZmE5OGUwN2Q4Mi4uM2ZhZGU1YThl
NGVhNWRmZDQ1MDQzNzVmNmZlMjNmNmI4OTJlMTI0MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BcHBsaWNhdGlvbk1hbmlmZXN0Lm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25NYW5pZmVzdC5t
bQpAQCAtMzY2LDcgKzM2Niw3IEBAIFRFU1QoQXBwbGljYXRpb25NYW5pZmVzdCwgSWNvbkNvZGlu
ZykKIHsKICAgICBzdGF0aWMgY29uc3QgY2hhciogdGVzdFVSTCA9ICJodHRwczovL2V4YW1wbGUu
Y29tL2ltYWdlcy90b3VjaC9ob21lc2NyZWVuMTI4LmpwZyI7CiAKLSAgICBXZWJDb3JlOjpBcHBs
aWNhdGlvbk1hbmlmZXN0OjpJY29uIGljb24gPSB7IFVSTChVUkwoKSwgdGVzdFVSTCksIG1ha2VW
ZWN0b3I8U3RyaW5nPihAW0AiOTZ4OTYiLCBAIjEyOHgxMjgiXSksICJpbWFnZS9qcGciLCB7IFdl
YkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3Q6Okljb246OlB1cnBvc2U6Ok1vbm9jaHJvbWUsIFdl
YkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3Q6Okljb246OlB1cnBvc2U6Ok1hc2thYmxlIH0gfTsK
KyAgICBXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0OjpJY29uIGljb24gPSB7IFVSTCB7IHRl
c3RVUkwgfSwgbWFrZVZlY3RvcjxTdHJpbmc+KEBbQCI5Nng5NiIsIEAiMTI4eDEyOCJdKSwgImlt
YWdlL2pwZyIsIHsgV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdDo6SWNvbjo6UHVycG9zZTo6
TW9ub2Nocm9tZSwgV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdDo6SWNvbjo6UHVycG9zZTo6
TWFza2FibGUgfSB9OwogCiAgICAgSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJvYmpjLW1ldGhvZC1h
Y2Nlc3MiKQogICAgIGF1dG8gbWFuaWZlc3RJY29uID0gYWRvcHROUyhbW19XS0FwcGxpY2F0aW9u
TWFuaWZlc3RJY29uIGFsbG9jXSBpbml0V2l0aENvcmVJY29uOiZpY29uXSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Rlc3RTT0F1dGhvcml6YXRp
b24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Rlc3RTT0F1dGhv
cml6YXRpb24ubW0KaW5kZXggZDUxNDExODhjZTgyNTZmNjgwM2M4MTgyNWFmMWRkNWQ5YWM0N2U1
My4uMjZjZjYxMjU1MzA5MmU5MGNiYmY2MjBjZDE3ZTQwMjlmODdhM2M5ZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0U09BdXRob3JpemF0aW9u
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdFNPQXV0
aG9yaXphdGlvbi5tbQpAQCAtNTg4LDcgKzU4OCw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVk
aXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWQyKQogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICAvLyBGb3JjZSBBcHAgTGlua3Mgd2l0aCBh
IHJlcXVlc3QuVVJMIHRoYXQgaGFzIGEgZGlmZmVyZW50IGhvc3QgdGhhbiB0aGUgY3VycmVudCBv
bmUgKGVtcHR5IGhvc3QpIGFuZCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRB
bGxvdy4KLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwczovL3d3dy5leGFtcGxl
LmNvbSIpOworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIg
fTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgW3dlYlZpZXcgX2xvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTF0gc2hvdWxkT3BlbkV4dGVybmFsVVJMczpZRVNd
OwogI2VsaWYgUExBVEZPUk0oSU9TKQpAQCAtNjI1LDcgKzYyNSw3IEBAIFRFU1QoU09BdXRob3Jp
emF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWQzKQogICAgIEVYUEVDVF9UUlVFKGdB
dXRob3JpemF0aW9uLmVuYWJsZUVtYmVkZGVkQXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyKTsK
IAogICAgIC8vIEZvcmNlIEFwcCBMaW5rcyB3aXRoIGEgcmVxdWVzdC5VUkwgdGhhdCBoYXMgYSBk
aWZmZXJlbnQgaG9zdCB0aGFuIHRoZSBjdXJyZW50IG9uZSAoZW1wdHkgaG9zdCkgYW5kIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93LgotICAgIGF1dG8gdGVzdFVSTCA9
IFVSTChVUkwoKSwgImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwg
eyAiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBbd2ViVmlldyBfbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0
VVJMXSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzOllFU107CiAjZWxpZiBQTEFURk9STShJT1MpCkBA
IC03OTMsNyArNzkzLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0
aW9uU3VjY2VlZFdpdGhSZWRpcmVjdGlvbkFuZENvb2tpZSkKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUu
Z2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xpY3k6OkFsbG93KTsKIAotICAgIGF1dG8gdGVz
dFVSTCA9IFVSTChVUkwoKSwgImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRl
c3RVUkwgeyAiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OnRlc3RVUkxdXTsKICNlbGlmIFBMQVRGT1JNKElPUykKQEAgLTg0MSw3ICs4NDEsNyBAQCBURVNU
KFNPQXV0aG9yaXphdGlvblJlZGlyZWN0LCBJbnRlcmNlcHRpb25TdWNjZWVkV2l0aERpZmZlcmVu
dE9yaWdpbikKICAgICBjaGVja0F1dGhvcml6YXRpb25PcHRpb25zKGZhbHNlLCAiIiwgMCk7CiAg
ICAgRVhQRUNUX1RSVUUocG9saWN5Rm9yQXBwU1NPUGVyZm9ybWVkKTsKIAotICAgIGF1dG8gcmVk
aXJlY3RVUkwgPSBVUkwoVVJMKCksICJodHRwczovL3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVS
TCByZWRpcmVjdFVSTCB7ICJodHRwczovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0
byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhV
Ukw6cmVkaXJlY3RVUkwgc3RhdHVzQ29kZTozMDIgSFRUUFZlcnNpb246QCJIVFRQLzEuMSIgaGVh
ZGVyRmllbGRzOkB7IEAiTG9jYXRpb24iIDogcmVkaXJlY3RVUkwuc3RyaW5nKCkgfV0pOwogICAg
IFtnRGVsZWdhdGUgYXV0aG9yaXphdGlvbjpnQXV0aG9yaXphdGlvbiBkaWRDb21wbGV0ZVdpdGhI
VFRQUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCkgaHR0cEJvZHk6YWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdF0pLmdldCgpXTsKICAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZWQpOwpA
QCAtMTExMCw3ICsxMTEwLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJj
ZXB0aW9uU3VjY2VlZFNBTUxXaXRoUFNPTikKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3
aXp6bGVyNChQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRo
b3JpemF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJw
cmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAog
ICAgIFJldGFpblB0cjxOU1VSTD4gYmFzZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJzaW1wbGUzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJM
KCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cDov
L3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKV0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlv
bkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTUwLDcgKzExNTAsNyBAQCBURVNUKFNPQXV0
aG9yaXphdGlvblJlZGlyZWN0LCBBdXRob3JpemF0aW9uT3B0aW9ucykKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVs
ZWdhdGUuZ2V0KCkpOwogCi0gICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCIiIGJhc2VVUkw6
KE5TVVJMICopVVJMKFVSTCgpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnIildOworICAgIFt3ZWJW
aWV3IGxvYWRIVE1MU3RyaW5nOkAiIiBiYXNlVVJMOihOU1VSTCAqKVVSTCB7ICJodHRwOi8vd3d3
LndlYmtpdC5vcmciX3N0ciB9XTsKICAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZWQp
OwogCiAgICAgW2RlbGVnYXRlIHNldFNob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXM6dHJ1ZV07CkBA
IC0xODQ5LDcgKzE4NDksNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblBvcFVwLCBJbnRlcmNlcHRp
b25TdWNjZWVkQ2xvc2VCeUl0c2VsZikKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6
bGVyNChQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3Jp
emF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0
X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAogICAg
IFJldGFpblB0cjxOU1VSTD4gYmFzZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCks
ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3
dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChv
cGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDQwMCwgNDAwKV0pOwpAQCAtMTg4Nyw3ICsxODg3LDcgQEAgVEVTVChTT0F1dGhvcml6YXRp
b25Qb3BVcCwgSW50ZXJjZXB0aW9uU3VjY2VlZENsb3NlQnlQYXJlbnQpCiAgICAgSW5zdGFuY2VN
ZXRob2RTd2l6emxlciBzd2l6emxlcjQoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBA
c2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxl
dGlvbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGlu
dHNXaXRoVVJMKSk7CiAKICAgICBSZXRhaW5QdHI8TlNVUkw+IGJhc2VVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Ci0gICAgYXV0byB0
ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVSTCB0
ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogICAgIGF1dG8gdGVzdEh0
bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCksICIiLCAi
ZXZlbnQuc291cmNlLmNsb3NlKCk7Iik7IC8vIFRoZSBwYXJlbnQgY2xvc2VzIHRoZSBwb3AgdXAu
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwpAQCAtMTkyNSw3ICsxOTI1
LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgSW50ZXJjZXB0aW9uU3VjY2VlZENsb3Nl
QnlXZWJLaXQpCiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjQoUEFMOjpnZXRT
T0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0
aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3Zl
cnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IGJhc2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2lt
cGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07Ci0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSIpOworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20i
X3N0ciB9OwogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUs
IHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCld
KTsKQEAgLTIwMDcsNyArMjAwNyw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIEludGVy
Y2VwdGlvblN1Y2NlZWRXaXRoQ29va2llKQogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dp
enpsZXI0KFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdldEF1dGhv
cml6YXRpb25IaW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVpbnRlcnBy
ZXRfY2FzdDxJTVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkpOwogCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiBiYXNlVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAInNpbXBsZTIiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwotICAgIGF1dG8gdGVzdFVSTCA9IFVSTChVUkwo
KSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVSTCB7ICJodHRwOi8v
d3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RIdG1sID0gZ2VuZXJhdGVIdG1s
KG9wZW5lclRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgNDAwLCA0MDApXSk7CkBAIC0yMDQ1LDcgKzIwNDUsNyBAQCBURVNUKFNPQXV0aG9yaXph
dGlvblBvcFVwLCBJbnRlcmNlcHRpb25TdWNjZWVkVHdpY2UpCiAgICAgSW5zdGFuY2VNZXRob2RT
d2l6emxlciBzd2l6emxlcjQoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0
b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjop
LCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRo
VVJMKSk7CiAKICAgICBSZXRhaW5QdHI8TlNVUkw+IGJhc2VVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Ci0gICAgYXV0byB0ZXN0VVJM
ID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVSTCB0ZXN0VVJM
IHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogICAgIGF1dG8gdGVzdEh0bWwgPSBn
ZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsKQEAgLTIwODgsNyArMjA4OCw3IEBAIFRFU1Qo
U09BdXRob3JpemF0aW9uUG9wVXAsIEludGVyY2VwdGlvblN1Y2NlZWRTdXBwcmVzc0FjdGl2ZVNl
c3Npb24pCiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjUoUEFMOjpnZXRTT0F1
dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVS
TDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJp
ZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKICAgICBSZXRhaW5QdHI8TlNVUkw+
IGJhc2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxl
MiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07Ci0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFt
cGxlLmNvbSIpOworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0
ciB9OwogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRl
c3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsK
QEAgLTIxNTMsNyArMjE1Myw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIEludGVyY2Vw
dGlvblN1Y2NlZWROZXdXaW5kb3dOYXZpZ2F0aW9uKQogICAgIEluc3RhbmNlTWV0aG9kU3dpenps
ZXIgc3dpenpsZXI0KFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdl
dEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVp
bnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkp
OwogCiAgICAgUmV0YWluUHRyPE5TVVJMPiBiYXNlVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZTIiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwotICAgIGF1dG8gdGVzdFVSTCA9IFVS
TChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVSTCB7ICJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RIdG1sID0gZ2VuZXJh
dGVIdG1sKG9wZW5lclRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpLCBtYWtlU3RyaW5nKCJuZXdX
aW5kb3cubG9jYXRpb24gPSAnIiwgYmFzZVVSTC5nZXQoKS5hYnNvbHV0ZVN0cmluZy5VVEY4U3Ry
aW5nLCAiJzsiKSk7IC8vIFN0YXJ0cyBhIG5ldyBuYXZpZ2F0aW9uIG9uIHRoZSBuZXcgd2luZG93
LgogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsKQEAgLTIxOTAsMTQgKzIx
OTAsMTQgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgQXV0aG9yaXphdGlvbk9wdGlvbnMp
CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjMoUEFMOjpnZXRTT0F1dGhvcml6
YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoYmVnaW5BdXRob3JpemF0aW9uV2l0aFVSTDpodHRwSGVh
ZGVyczpodHRwQm9keTopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVCZWdpbkF1dGhv
cml6YXRpb25XaXRoVVJMKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjQo
UEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlv
bkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9jYXN0
PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKLSAgICBhdXRv
IHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJM
IHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0ZXN0
SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAg
ICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0
ZS5nZXQoKSk7CiAKLSAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJM
OihOU1VSTCAqKVVSTChVUkwoKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZyIpXTsKKyAgICBbd2Vi
VmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOihOU1VSTCAqKVVSTCB7ICJodHRw
Oi8vd3d3LndlYmtpdC5vcmciX3N0ciB9XTsKICAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25Db21w
bGV0ZWQpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjIxNiw3ICsyMjE2LDcgQEAgVEVTVChT
T0F1dGhvcml6YXRpb25Qb3BVcCwgU09BdXRob3JpemF0aW9uTG9hZFBvbGljeUlnbm9yZSkKICAg
ICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyMShQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNs
YXNzKCksIEBzZWxlY3RvcihjYW5QZXJmb3JtQXV0aG9yaXphdGlvbldpdGhVUkw6cmVzcG9uc2VD
b2RlOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUNhblBlcmZvcm1BdXRob3JpemF0
aW9uV2l0aFVSTCkpOwogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenpsZXIyKFBBTDo6
Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdldEF1dGhvcml6YXRpb25IaW50
c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+
KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkpOwogCi0gICAgYXV0byB0ZXN0
VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVSTCB0ZXN0
VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogICAgIGF1dG8gdGVzdEh0bWwg
PSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKQEAgLTIyMjQsNyArMjIyNCw3IEBAIFRF
U1QoU09BdXRob3JpemF0aW9uUG9wVXAsIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3lJZ25vcmUp
CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxl
Z2F0ZS5nZXQoKSk7CiAgICAgW2RlbGVnYXRlIHNldEFsbG93U09BdXRob3JpemF0aW9uTG9hZDpm
YWxzZV07CiAKLSAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOihO
U1VSTCAqKVVSTChVUkwoKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZyIpXTsKKyAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOihOU1VSTCAqKVVSTCB7ICJodHRwOi8v
d3d3LndlYmtpdC5vcmciX3N0ciB9XTsKICAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25Db21wbGV0
ZWQpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjI0Niw3ICsyMjQ2LDcgQEAgVEVTVChTT0F1
dGhvcml6YXRpb25Qb3BVcCwgU09BdXRob3JpemF0aW9uTG9hZFBvbGljeUFsbG93QXN5bmMpCiAg
ICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjQoUEFMOjpnZXRTT0F1dGhvcml6YXRp
b25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25z
ZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRo
b3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKICAgICBSZXRhaW5QdHI8TlNVUkw+IGJhc2VVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
Ci0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIp
OworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogICAg
IGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3Ry
aW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsKQEAgLTIyODMs
NyArMjI4Myw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIFNPQXV0aG9yaXphdGlvbkxv
YWRQb2xpY3lJZ25vcmVBc3luYykKICAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyMShQ
QUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihjYW5QZXJmb3JtQXV0aG9y
aXphdGlvbldpdGhVUkw6cmVzcG9uc2VDb2RlOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVy
cmlkZUNhblBlcmZvcm1BdXRob3JpemF0aW9uV2l0aFVSTCkpOwogICAgIEluc3RhbmNlTWV0aG9k
U3dpenpsZXIgc3dpenpsZXIyKFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVj
dG9yKGdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246
KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0
aFVSTCkpOwogCi0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFt
cGxlLmNvbSIpOworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0
ciB9OwogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRl
c3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsK
QEAgLTIyOTIsNyArMjI5Miw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIFNPQXV0aG9y
aXphdGlvbkxvYWRQb2xpY3lJZ25vcmVBc3luYykKICAgICBbZGVsZWdhdGUgc2V0QWxsb3dTT0F1
dGhvcml6YXRpb25Mb2FkOmZhbHNlXTsKICAgICBbZGVsZWdhdGUgc2V0SXNBc3luY0V4ZWN1dGlv
bjp0cnVlXTsKIAotICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6
KE5TVVJMICopVVJMKFVSTCgpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnIildOworICAgIFt3ZWJW
aWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJMICopVVJMIHsgImh0dHA6
Ly93d3cud2Via2l0Lm9yZyJfc3RyIH1dOwogICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBs
ZXRlZCk7CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0yMzI5LDEzICsyMzI5LDEzIEBAIFRFU1Qo
U09BdXRob3JpemF0aW9uU3ViRnJhbWUsIE5vSW50ZXJjZXB0aW9uc05vbkFwcGxlRmlyc3RQYXJ0
eU1haW5GcmFtZSkKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyMyhQQUw6Omdl
dFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihiZWdpbkF1dGhvcml6YXRpb25XaXRo
VVJMOmh0dHBIZWFkZXJzOmh0dHBCb2R5OiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlk
ZUJlZ2luQXV0aG9yaXphdGlvbldpdGhVUkwpKTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
IHN3aXp6bGVyNShQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRB
dXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50
ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsK
IAotICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwocGFyZW50VGVtcGxhdGUsIFVSTChV
UkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKS5zdHJpbmcoKSk7CisgICAgYXV0byB0ZXN0
SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgVVJMIHsgImh0dHA6Ly93d3cuZXhh
bXBsZS5jb20iX3N0ciB9LnN0cmluZygpKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25X
ZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgpKTsKIAotICAgIFt3ZWJWaWV3IGxv
YWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJMICopVVJMKFVSTCgpLCAiaHR0cDov
L3d3dy53ZWJraXQub3JnIildOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1s
IGJhc2VVUkw6KE5TVVJMICopVVJMIHsgImh0dHA6Ly93d3cud2Via2l0Lm9yZyJfc3RyIH1dOwog
ICAgIC8vIFRyeSB0byB3YWl0IHVudGlsIHRoZSBpZnJhbWUgbG9hZCBpcyBmaW5pc2hlZC4KICAg
ICBVdGlsOjpzbGVlcCgwLjUpOwogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBpbnRlcmNlcHQg
dGhlIGlmcmFtZS4KQEAgLTI0MTgsNyArMjQxOCw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uU3Vi
RnJhbWUsIEludGVyY2VwdGlvblN1Y2Nlc3MpCiAgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6
emxlcjQoW0FLQXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgY2xhc3NdLCBAc2VsZWN0b3IoaXNVUkxG
cm9tQXBwbGVPd25lZERvbWFpbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVJc1VS
TEZyb21BcHBsZU93bmVkRG9tYWluKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6
emxlcjUoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9y
aXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJl
dF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKLSAg
ICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7Cisg
ICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0
byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmco
KSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwpAQCAtMjQ4NCw3ICsy
NDg0LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwgSW50ZXJjZXB0aW9uU3VjY2Vl
ZFdpdGhDb29raWUpCiAgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6emxlcjQoW0FLQXV0aG9y
aXphdGlvbkNvbnRyb2xsZXIgY2xhc3NdLCBAc2VsZWN0b3IoaXNVUkxGcm9tQXBwbGVPd25lZERv
bWFpbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVJc1VSTEZyb21BcHBsZU93bmVk
RG9tYWluKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjUoUEFMOjpnZXRT
T0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0
aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3Zl
cnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKLSAgICBhdXRvIHRlc3RVUkwg
PSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwg
eyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdl
bmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwpAQCAtMjUxMyw3ICsyNTEzLDcgQEAgVEVTVChT
T0F1dGhvcml6YXRpb25TdWJGcmFtZSwgSW50ZXJjZXB0aW9uU3VjY2Vzc1R3aWNlKQogICAgIENs
YXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXI0KFtBS0F1dGhvcml6YXRpb25Db250cm9sbGVyIGNs
YXNzXSwgQHNlbGVjdG9yKGlzVVJMRnJvbUFwcGxlT3duZWREb21haW46KSwgcmVpbnRlcnByZXRf
Y2FzdDxJTVA+KG92ZXJyaWRlSXNVUkxGcm9tQXBwbGVPd25lZERvbWFpbikpOwogICAgIEluc3Rh
bmNlTWV0aG9kU3dpenpsZXIgc3dpenpsZXI1KFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3Mo
KSwgQHNlbGVjdG9yKGdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNv
bXBsZXRpb246KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlv
bkhpbnRzV2l0aFVSTCkpOwogCi0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDov
L3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20iX3N0ciB9OwogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwocGFyZW50VGVt
cGxhdGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAs
IDUwMCldKTsKQEAgLTI1NDgsMTQgKzI1NDgsMTQgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJG
cmFtZSwgQXV0aG9yaXphdGlvbk9wdGlvbnMpCiAgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6
emxlcjQoW0FLQXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgY2xhc3NdLCBAc2VsZWN0b3IoaXNVUkxG
cm9tQXBwbGVPd25lZERvbWFpbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVJc1VS
TEZyb21BcHBsZU93bmVkRG9tYWluKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6
emxlcjUoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9y
aXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJl
dF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKLSAg
ICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7Cisg
ICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0
byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmco
KSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBk
ZWxlZ2F0ZS5nZXQoKSk7CiAKLSAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBi
YXNlVVJMOihOU1VSTCAqKVVSTChVUkwoKSwgImh0dHA6Ly93d3cuYXBwbGUuY29tIildOworICAg
IFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJMICopVVJMIHsg
Imh0dHA6Ly93d3cuYXBwbGUuY29tIl9zdHIgfV07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3Nh
Z2U6QCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3Nh
Z2U6QCJTT0F1dGhvcml6YXRpb25EaWRTdGFydCJdOwogICAgIGNoZWNrQXV0aG9yaXphdGlvbk9w
dGlvbnMoZmFsc2UsICJodHRwOi8vd3d3LmFwcGxlLmNvbSIsIDIpOwpAQCAtMjU2Nyw3ICsyNTY3
LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwgU09BdXRob3JpemF0aW9uTG9hZFBv
bGljeUlnbm9yZSkKICAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyMShQQUw6OmdldFNP
QXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihjYW5QZXJmb3JtQXV0aG9yaXphdGlvbldp
dGhVUkw6cmVzcG9uc2VDb2RlOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUNhblBl
cmZvcm1BdXRob3JpemF0aW9uV2l0aFVSTCkpOwogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIg
c3dpenpsZXIyKFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdldEF1
dGhvcml6YXRpb25IaW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVpbnRl
cnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkpOwog
Ci0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIp
OworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogICAg
IGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwocGFyZW50VGVtcGxhdGUsIHRlc3RVUkwuc3Ry
aW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKQEAgLTI1NzUs
NyArMjU3NSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uU3ViRnJhbWUsIFNPQXV0aG9yaXphdGlv
bkxvYWRQb2xpY3lJZ25vcmUpCiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3
ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAgICAgW2RlbGVnYXRlIHNldEFsbG93U09B
dXRob3JpemF0aW9uTG9hZDpmYWxzZV07CiAKLSAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0
ZXN0SHRtbCBiYXNlVVJMOihOU1VSTCAqKVVSTChVUkwoKSwgImh0dHA6Ly93d3cuYXBwbGUuY29t
IildOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJM
ICopVVJMIHsgImh0dHA6Ly93d3cuYXBwbGUuY29tIl9zdHIgfV07CiAgICAgLy8gVHJ5IHRvIHdh
aXQgdW50aWwgdGhlIGlmcmFtZSBsb2FkIGlzIGZpbmlzaGVkLgogICAgIFV0aWw6OnNsZWVwKDAu
NSk7CiAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IGludGVyY2VwdCB0aGUgaWZyYW1lLgpAQCAt
MjU5MSw3ICsyNTkxLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwgU09BdXRob3Jp
emF0aW9uTG9hZFBvbGljeUFsbG93QXN5bmMpCiAgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6
emxlcjQoW0FLQXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgY2xhc3NdLCBAc2VsZWN0b3IoaXNVUkxG
cm9tQXBwbGVPd25lZERvbWFpbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVJc1VS
TEZyb21BcHBsZU93bmVkRG9tYWluKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6
emxlcjUoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9y
aXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJl
dF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKLSAg
ICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7Cisg
ICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0
byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmco
KSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwpAQCAtMjYxOCw3ICsy
NjE4LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwgU09BdXRob3JpemF0aW9uTG9h
ZFBvbGljeUlnbm9yZUFzeW5jKQogICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIxKFBB
TDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGNhblBlcmZvcm1BdXRob3Jp
emF0aW9uV2l0aFVSTDpyZXNwb25zZUNvZGU6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJy
aWRlQ2FuUGVyZm9ybUF1dGhvcml6YXRpb25XaXRoVVJMKSk7CiAgICAgSW5zdGFuY2VNZXRob2RT
d2l6emxlciBzd2l6emxlcjIoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0
b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjop
LCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRo
VVJMKSk7CiAKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1w
bGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3Ry
IH07CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVz
dFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwpA
QCAtMjcyMSw3ICsyNzIxLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwgSW50ZXJj
ZXB0aW9uU3VjY2Vzc01lc3NhZ2VPcmRlcikKICAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6
bGVyNChbQUtBdXRob3JpemF0aW9uQ29udHJvbGxlciBjbGFzc10sIEBzZWxlY3Rvcihpc1VSTEZy
b21BcHBsZU93bmVkRG9tYWluOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzVVJM
RnJvbUFwcGxlT3duZWREb21haW4pKTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6
bGVyNShQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3Jp
emF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0
X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAotICAg
IGF1dG8gdGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAg
ICBVUkwgdGVzdFVSTCB7ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRv
IHRlc3RIdG1sID0gZ2VuZXJhdGVIdG1sKHBhcmVudFRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygp
KTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9TU0xLZXlHZW5lcmF0b3IubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9TU0xLZXlHZW5lcmF0b3IubW0KaW5kZXggYjZiYmIzYjExYzNjMDM1MWQwYjdjOGM5ZWQ1ODZm
NGMxOTE0ODkyMC4uMjMwZjdiYTFjMjQ3NjJkYWU2NWJhMWFkMzcyNjkxMGE3MzEzMWFlNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU1NMS2V5R2VuZXJhdG9yLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1NTTEtleUdlbmVyYXRvci5tbQpA
QCAtNjksNyArNjksNyBAQCBjb25zdCBTZWNBc24xVGVtcGxhdGUgc2lnbmVkUHVibGljS2V5QW5k
Q2hhbGxlbmdlVGVtcGxhdGVbXSB7CiAgICAgeyAwLCAwLCAwLCAwIH0KIH07CiAKLWNvbnN0IFVS
TCB1cmwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LndlYmtpdC5vcmcvIik7Citjb25zdCBVUkwg
dXJsIHsgImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iX3N0ciB9OwogCiBjbGFzcyBTU0xLZXlHZW5l
cmF0b3JUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453029</attachid>
            <date>2022-02-23 14:34:18 -0800</date>
            <delta_ts>2022-02-23 15:19:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237099-20220223143417.patch</filename>
            <type>text/plain</type>
            <size>174514</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDljZTJkY2YwNDcwOTU2Y2Q1NDQ5YzY0
MTI4YTIyZDQ5ODUyNzY0OTEuLjlmMGM2N2JkNjJjY2VkN2U3NjMxYzA0NzBhZWYyYzBkZGRlMzMw
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBtb3JlIHdpZGVseSB0aGUgbmV3IFVSTCBjb25z
dHJ1Y3RvciB0aGF0IHRha2VzIGluIGEgU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICAqIHd0Zi9VUkwuY3BwOgorICAgICAgICAoV1RGOjphYm91dEJs
YW5rVVJMKToKKyAgICAgICAgKFdURjo6YWJvdXRTcmNEb2NVUkwpOgorCiAyMDIyLTAyLTIzICBL
aW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgVGhyZWFkIHNh
ZmV0eSBhbmFseXNpcyBtYWNyb3MgYXJlIGNvbmZ1c2luZyBmb3Igbm9uLUxvY2sgdXNlLWNhc2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZWZmNWQxZWIzMmM4NmQ2Y2U2ZGNlMzY4YzViNzZjZTI0ZmQyMTMxYi4u
ODdiYjBmYWUxOWI4YWFlNGU1Y2M2M2RiMTJjMGI2ZWYxMGZkODQxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ2IEBACisyMDIyLTAyLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgbW9yZSB3aWRlbHkgdGhlIG5ldyBVUkwgY29uc3RydWN0b3IgdGhh
dCB0YWtlcyBpbiBhIFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM3MDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZVBheW1lbnRNZXRob2RJZGVudGlmaWVy
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4dDo6Y29tcGxldGVVUkwgY29uc3QpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVmZXJyZXIp
OgorICAgICAgICAqIGh0bWwvRE9NVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6
cmV2b2tlT2JqZWN0VVJMKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01l
YXN1cmVtZW50IGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2
aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRI
b3N0OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBh
Z2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKToKKyAgICAgICAgKiBwYWdlL1Nl
Y3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpleHRy
YWN0SW5uZXJVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25D
b250ZW50RmlsdGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHA6CisgICAgICAgIChjb252ZXJ0UGxheWJpblVSSSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1VSTFNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c291cFVS
SVRvVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlc3lzdGVtUGF0aEZyb21VcmxPclRpdGxlKToKKyAgICAgICAgKiB0
ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1BheW1lbnRDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSSk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleTo6ZnJvbURhdGFiYXNlS2V5KToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKToKKwog
MjAyMi0wMi0yMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0lG
Q11bSW50ZWdyYXRpb25dIExpbmVMYXlvdXQ6OmZpcnN0TGluZVBoeXNpY2FsQmFzZWxpbmUvbGFz
dExpbmVMb2dpY2FsQmFzZWxpbmUgc2hvdWxkIGZsaXAgYm94IGJhc2VsaW5lIHZhbHVlIGZvciB2
ZXJ0aWNhbC1scgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBjYWYyNTdkZTRkOGM5ZmZmMGVkMzIyYTQ0ZTE3ODBlMGU5
MjI4NzY3Li5hOGNhZjM0MWRjMDQzZWFjMzRlMzIxYzhjNzI0NDQ5YmYzNDU2ZTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1NCBAQAorMjAyMi0wMi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEFkb3B0IG1vcmUgd2lkZWx5IHRoZSBuZXcgVVJMIGNvbnN0cnVj
dG9yIHRoYXQgdGFrZXMgaW4gYSBTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJM
U2Vzc2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICogU2hhcmVkL0FQSS9BUElTZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAoQVBJOjpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyk6CisgICAgICAgICogU2hhcmVkL0FQSS9B
UElVUkwuaDoKKyAgICAgICAgKEFQSTo6VVJMOjpwYXJzZVVSTElmTmVjZXNzYXJ5IGNvbnN0KToK
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdLVVJM
UmVxdWVzdENyZWF0ZVdpdGhXS1VSTCk6CisgICAgICAgICogU2hhcmVkL0FQSS9nbGliL1dlYktp
dFVSSVJlcXVlc3QuY3BwOgorICAgICAgICAod2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkpOgor
ICAgICAgICAqIFNoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW06CisgICAgICAgIChBUEk6
OldlYkFyY2hpdmVSZXNvdXJjZTo6V2ViQXJjaGl2ZVJlc291cmNlKToKKyAgICAgICAgKiBTaGFy
ZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6c2hvd1BheW1lbnRVSSk6CisgICAgICAg
ICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHA6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgICogU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHA6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8U2VsZWN0aW9uRGF0YT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwOgorICAgICAgICAo
ZmlsZVBhdGhzRnJvbUZpbGVVUkxzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDoKKyAgICAgICAgKFdLUGFnZUxvYWRVUkwpOgorICAgICAgICAoV0tQYWdlTG9hZFVSTFdp
dGhTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KToKKyAgICAgICAgKFdLUGFnZUxvYWRVUkxX
aXRoVXNlckRhdGEpOgorICAgICAgICAoV0tQYWdlTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRo
VXNlckRhdGEpOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tl
blB1YmxpY0tleVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdl
U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwOgorICAgICAgICAo
V0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgIChXS1BhZ2VHcm91cEFkZFVz
ZXJTY3JpcHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKToKKyAgICAgICAgKFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2Vlbik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc0V4cGlyZWRTdGF0aXN0aWMpOgorICAgICAgICAoV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKToK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJl
c291cmNlVW5kZXIpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3ViRnJhbWVVbmRlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0
YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKToKKyAgICAgICAgKFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV0tX
ZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAg
ICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZSk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKToKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW4pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbSk6
CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdFRvKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRT
dGF0aXN0aWNzQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbik6CisgICAgICAgIChXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVsZXRlQ29va2llc0ZvclRlc3RpbmcpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0xvY2FsU3RvcmFnZSk6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNzaW9uKToKKyAgICAg
ICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVTaXRl
U3RyaWN0Q29va2llc0ZvclRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5n
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NU
aGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFT
dG9yZVNldEFwcEJvdW5kRG9tYWluc0ZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9jdXJsL1dLV2Vic2l0ZURhdGFTdG9yZVJlZkN1cmwuY3BwOgorICAgICAgICAoV0tXZWJz
aXRlRGF0YVN0b3JlRW5hYmxlQ3VzdG9tTmV0d29ya1Byb3h5U2V0dGluZ3MpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHdlYmtp
dF9jb29raWVfbWFuYWdlcl9nZXRfY29va2llcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9v
cmlnaW5fbmV3X2Zvcl91cmkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19sb2FkX2FsdGVybmF0ZV9odG1s
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfdWlFdmVudEF0dHJpYnV0aW9uXSk6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGVCcm93c2luZ0NvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkU2luZ2xlQ29va2llKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0ZUFsbENvb2tpZXMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lEb3dubG9hZENsaWVudC5tbToKKyAgICAgICAgKFdl
YktpdDo6TGVnYWN5RG93bmxvYWRDbGllbnQ6OmxlZ2FjeURpZFN0YXJ0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZp
Z2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tOgorICAgICAgICAoLVtXS1JlbG9hZEZy
YW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlciBhdHRlbXB0UmVjb3ZlcnldKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OmlzVVJMS25vd25IU1RTSG9zdCBjb25zdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eTo6bG9hZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6aXNNYWluT3JUZXN0SW5zcGVjdG9yUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6Om9wZW5Mb2NhbEluc3BlY3RvckZyb250
ZW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJbnNwZWN0
b3JVSVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUlQ
cm94eTo6cGxhdGZvcm1TYXZlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9X
ZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
VUlQcm94eTo6cGxhdGZvcm1TYXZlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpsYXVuY2hQcm9jZXNzRm9yUmVs
b2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRmlsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xp
Y2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlbG9hZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OmNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbnNEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoZWNrVVJMUmVjZWl2ZWRGcm9tQ3Vy
cmVudE9yUHJldmlvdXNXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5h
dmlnYXRpb25JbnRlcm5hbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YXNzdW1lUmVhZEFjY2Vzc1Rv
QmFzZVVSTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y2hlY2tVUkxSZWNl
aXZlZEZyb21XZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29j
b2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6aW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucyk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpkZWNvZGVMZWdhY3lTZXNzaW9uU3RhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5
bWVudENvb3JkaW5hdG9yOjp2YWxpZGF0ZU1lcmNoYW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwOgorICAgICAgICAoV0tCdW5k
bGVGcmFtZUFsbG93c0ZvbGxvd2luZ0xpbmspOgorICAgICAgICAoV0tCdW5kbGVGcmFtZUNvcHlT
dWdnZXN0ZWRGaWxlbmFtZUZvclJlc291cmNlV2l0aFVSTCk6CisgICAgICAgIChXS0J1bmRsZUZy
YW1lQ29weU1JTUVUeXBlRm9yUmVzb3VyY2VXaXRoVVJMKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRs
ZVBhZ2VIYXNMb2NhbERhdGFGb3JVUkwpOgorICAgICAgICAoV0tCdW5kbGVQYWdlQ2xlYXJBcHBs
aWNhdGlvbkNhY2hlRm9yT3JpZ2luKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZUdldEFwcENhY2hl
VXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0VXNl
clN0eWxlU2hlZXRMb2NhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aXNWYWxpZEZl
dGNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNv
bnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b0Zvcm1EYXRhKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmxvYWREYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZEFsdGVybmF0ZUhUTUwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUpOgor
ICAgICAgICAqIHdlYnB1c2hkL1B1c2hTZXJ2aWNlLm1tOgorICAgICAgICAoV2ViUHVzaEQ6OlB1
c2hTZXJ2aWNlOjpkaWRSZWNlaXZlUHVzaE1lc3NhZ2UpOgorCiAyMDIyLTAyLTIzICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2hhcmUgbW9yZSBjb2RlIGJldHdl
ZW4gc2VydmljZSBhbmQgc2hhcmVkIHdvcmtlcnMgZm9yIGNvbnRleHQgY29ubmVjdGlvbiBlc3Rh
Ymxpc2htZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggYjM2ZDQ4MGI0Y2VhZjU5
NjUyNmRhNWUyZGZiNDU3MjE5ODMwMjNiYi4uMWFhODcwOWE3YWI0NWI1MDFlOTdhNzY0NjgwNDYx
YTQ4OGQzNmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDIyLTAyLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRvcHQgbW9yZSB3aWRlbHkgdGhlIG5ldyBVUkwgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBpbiBh
IFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3MDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBN
YXJzaGFsbGluZ0hlbHBlcnMuY3BwOgorICAgICAgICAqIFdlYkVycm9yLmNwcDoKKyAgICAgICAg
KFdlYkVycm9yOjppbml0KToKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJG
cmFtZTo6bG9hZERhdGEpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAodG9VUkwp
OgorCiAyMDIyLTAyLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgRG8gcHJlbGltaW5hcnkgd29yayB0byBwYXNzIGRvbWFpbiBuYW1lcyB0byBDb3JlTG9jYXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9V
UkwuY3BwCmluZGV4IGE0YWZiYWM1NmIyNTkzNDU2ODRmNGRmMmE1YmIyNGJmMzkzMmJjZDQuLmQ4
OWFiNDhkZWEzYTI4N2QxOTI3MjU1NGZiYmNkYWEwMjdmNmQ4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1VSTC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVVJMLmNwcApAQCAtODk3LDcg
Kzg5Nyw3IEBAIGNvbnN0IFVSTCYgYWJvdXRCbGFua1VSTCgpCiAgICAgc3RhdGljIExhenlOZXZl
ckRlc3Ryb3llZDxVUkw+IHN0YXRpY0JsYW5rVVJMOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZdIHsKLSAgICAgICAg
c3RhdGljQmxhbmtVUkwuY29uc3RydWN0KFVSTCgpLCAmYWJvdXRCbGFua1N0cmluZyk7CisgICAg
ICAgIHN0YXRpY0JsYW5rVVJMLmNvbnN0cnVjdCgmYWJvdXRCbGFua1N0cmluZyk7CiAgICAgfSk7
CiAgICAgcmV0dXJuIHN0YXRpY0JsYW5rVVJMOwogfQpAQCAtOTA4LDcgKzkwOCw3IEBAIGNvbnN0
IFVSTCYgYWJvdXRTcmNEb2NVUkwoKQogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8VVJM
PiBzdGF0aWNTcmNEb2NVUkw7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJl0gewotICAgICAgICBzdGF0aWNTcmNEb2NV
UkwuY29uc3RydWN0KFVSTCgpLCAmYWJvdXRTcmNEb2NTdHJpbmcpOworICAgICAgICBzdGF0aWNT
cmNEb2NVUkwuY29uc3RydWN0KCZhYm91dFNyY0RvY1N0cmluZyk7CiAgICAgfSk7CiAgICAgcmV0
dXJuIHN0YXRpY1NyY0RvY1VSTDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggNTY5YTg4OGZkMGVi
MzM0NGE0MDYwYzIyM2M0NTg5YjI5OGVlY2FlNy4uZGYyYjVjMjY0ZjNhNWNlMmMxZTFjYjZiNzYz
NDBhMDBmYTQwY2NlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0
aWMgYm9vbCBpc1ZhbGlkVVJMQmFzZWRQYXltZW50TWV0aG9kSWRlbnRpZmllcihjb25zdCBVUkwm
IHVybCkKIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wYXltZW50LW1ldGhvZC1pZC8jdmFsaWRp
dHkKIHN0ZDo6b3B0aW9uYWw8UGF5bWVudFJlcXVlc3Q6Ok1ldGhvZElkZW50aWZpZXI+IGNvbnZl
cnRBbmRWYWxpZGF0ZVBheW1lbnRNZXRob2RJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllcikKIHsKLSAgICBVUkwgdXJsIHsgVVJMKCksIGlkZW50aWZpZXIgfTsKKyAgICBVUkwgdXJs
IHsgaWRlbnRpZmllciB9OwogICAgIGlmICghdXJsLmlzVmFsaWQoKSkgewogICAgICAgICBpZiAo
aXNWYWxpZFN0YW5kYXJkaXplZFBheW1lbnRNZXRob2RJZGVudGlmaWVyKGlkZW50aWZpZXIpKQog
ICAgICAgICAgICAgcmV0dXJuIHsgaWRlbnRpZmllciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXggNTNjMzJhNjBhN2U3NWY5NjZmYzgy
NmE5Yzg2NmViNjk0NTBlZjNlYy4uZGMyMzlmZDI1NDFkODI0NDAxNTZmZGYzYWM1YjE4YmMyMjMz
OTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQu
Y3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgUmVzb2x2ZWRVUkwgQ1NTUGFyc2VyQ29udGV4dDo6Y29t
cGxldGVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgICAgIGlmIChDU1NWYWx1ZTo6aXNDU1NMb2NhbFVSTChzdHJpbmcpKQotICAg
ICAgICAgICAgcmV0dXJuIHsgc3RyaW5nLCB7IFVSTCgpLCBzdHJpbmcgfSB9OworICAgICAgICAg
ICAgcmV0dXJuIHsgc3RyaW5nLCBVUkwgeyBzdHJpbmcgfSB9OwogCiAgICAgICAgIGlmIChjaGFy
c2V0LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB7IHN0cmluZywgeyBiYXNlVVJMLCBz
dHJpbmcgfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOGE5NmZmMmVmMDc5Y2VmMTll
YjcyYjAzMDIzZWIwYmEzYjdkYWMxMS4uOTU1Zjc0NjZjM2FlNzU0NzYzNGI0OTcwZjllOTZiNDYz
OGFkNzRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MzQ4LDcgKzUzNDgsNyBAQCBT
dHJpbmcgRG9jdW1lbnQ6OnJlZmVycmVyKCkKICAgICBpZiAoRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpICYmIGZyYW1lKCkpIHsKICAgICAg
ICAgYXV0byByZWZlcnJlclN0ciA9IGZyYW1lKCktPmxvYWRlcigpLnJlZmVycmVyKCk7CiAgICAg
ICAgIGlmICghcmVmZXJyZXJTdHIuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBVUkwgcmVmZXJy
ZXJVUkwgeyBVUkwoKSwgcmVmZXJyZXJTdHIgfTsKKyAgICAgICAgICAgIFVSTCByZWZlcnJlclVS
TCB7IHJlZmVycmVyU3RyIH07CiAgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWZlcnJl
clJlZ2lzdHJhYmxlRG9tYWluIHsgcmVmZXJyZXJVUkwgfTsKICAgICAgICAgICAgIGlmICghcmVm
ZXJyZXJSZWdpc3RyYWJsZURvbWFpbi5tYXRjaGVzKHNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKSkg
ewogICAgICAgICAgICAgICAgIG1fcmVmZXJyZXJPdmVycmlkZSA9IFVSTCB7IHJlZmVycmVyVVJM
LnByb3RvY29sSG9zdEFuZFBvcnQoKSB9LnN0cmluZygpOwpAQCAtNjI2MCw3ICs2MjYwLDcgQEAg
dm9pZCBEb2N1bWVudDo6aW5pdFNlY3VyaXR5Q29udGV4dCgpCiAgICAgICAgIC8vIFRoaXMgY2Fu
IG9jY3VyIHZpYSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgpLgogICAg
ICAgICBzZXRDb29raWVVUkwoVVJMKHsgfSwgZW1wdHlTdHJpbmcoKSkpOwogICAgICAgICBzZXRT
ZWN1cml0eU9yaWdpblBvbGljeShTZWN1cml0eU9yaWdpblBvbGljeTo6Y3JlYXRlKFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVVbmlxdWUoKSkpOwotICAgICAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xp
Y3kobWFrZVVuaXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IHsgfSwgZW1wdHlTdHJp
bmcoKSB9LCAqdGhpcykpOworICAgICAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3kobWFrZVVu
aXF1ZTxDb250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IGVtcHR5U3RyaW5nKCkgfSwgKnRoaXMp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODQ2OCw3ICs4NDY4LDcgQEAgdm9pZCBE
b2N1bWVudDo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgp
CiAKIHZvaWQgRG9jdW1lbnQ6OmRvd25ncmFkZVJlZmVycmVyVG9SZWdpc3RyYWJsZURvbWFpbigp
CiB7Ci0gICAgVVJMIHJlZmVycmVyVVJMIHsgeyB9LCByZWZlcnJlcigpIH07CisgICAgVVJMIHJl
ZmVycmVyVVJMIHsgcmVmZXJyZXIoKSB9OwogICAgIGlmIChyZWZlcnJlclVSTC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01V
UkwuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCmluZGV4IDQyNTRhMWIwMWNl
ZWU2MTE5NjFkODA0NzEyNTg1MTJiNDBiODFmMWQuLjQ0NjZjMGI0ZmRiNjU1MDQ4ZTZjNDIxMDc4
ZTQ4NjZjNjVmNjNmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
RXhjZXB0aW9uT3I8UmVmPERPTVVSTD4+IERPTVVSTDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBVUkwmIGJhc2UpCiAKIEV4Y2VwdGlvbk9yPFJlZjxET01VUkw+PiBET01VUkw6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBiYXNlKQogewotICAgIFVSTCBi
YXNlVVJMIHsgVVJMIHsgfSwgYmFzZSB9OworICAgIFVSTCBiYXNlVVJMIHsgYmFzZSB9OwogICAg
IGlmICghYmFzZS5pc051bGwoKSAmJiAhYmFzZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKICAgICByZXR1cm4gY3JlYXRlKHVybCwgYmFzZVVS
TCk7CkBAIC03MSw3ICs3MSw3IEBAIERPTVVSTDo6fkRPTVVSTCgpID0gZGVmYXVsdDsKIAogRXhj
ZXB0aW9uT3I8dm9pZD4gRE9NVVJMOjpzZXRIcmVmKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAg
IFVSTCBjb21wbGV0ZVVSTCB7IFVSTCB7IH0sIHVybCB9OworICAgIFVSTCBjb21wbGV0ZVVSTCB7
IHVybCB9OwogICAgIGlmICghY29tcGxldGVVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiAgICAgbV91cmwgPSBXVEZNb3ZlKGNvbXBsZXRlVVJM
KTsKQEAgLTExMCw3ICsxMTAsNyBAQCBVUkxTZWFyY2hQYXJhbXMmIERPTVVSTDo6c2VhcmNoUGFy
YW1zKCkKICAgICAKIHZvaWQgRE9NVVJMOjpyZXZva2VPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcp
CiB7Ci0gICAgVVJMIHVybChVUkwoKSwgdXJsU3RyaW5nKTsKKyAgICBVUkwgdXJsIHsgdXJsU3Ry
aW5nIH07CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNl
dERvbWFpbkZvckNhY2hlUGFydGl0aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZG9tYWluRm9y
Q2FjaGVQYXJ0aXRpb24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKaW5kZXggYzMwZGM2ZjdhOGJhYWY1MDI4ZGMyN2U1YzhkY2U5NWRjMDNhMmY4OS4uMTY5
MWUyZWI3NmY4YWIwZjhjYWZmYzE5NjQ2NWEzZmU5YzM5YWMxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQzMiw3ICs0MzIsNyBAQCBzdGQ6Om9wdGlv
bmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VQcml2
YXRlQ2xpY2tNZWFzdQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAotICAg
IFVSTCBkZXN0aW5hdGlvblVSTCB7IFVSTCgpLCBhdHRyaWJ1dGlvbkRlc3RpbmF0aW9uQXR0ciB9
OworICAgIFVSTCBkZXN0aW5hdGlvblVSTCB7IGF0dHJpYnV0aW9uRGVzdGluYXRpb25BdHRyIH07
CiAgICAgaWYgKCFkZXN0aW5hdGlvblVSTC5pc1ZhbGlkKCkgfHwgIWRlc3RpbmF0aW9uVVJMLnBy
b3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewogICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJhdHRy
aWJ1dGlvbmRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQ
LWZhbWlseSBVUkwuIl9zKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXgg
NjI0YTdkM2E5YzA1MTE1YjQ5NjI5NWI3ZGY4OTA5NGU3NjgxOTAzMS4uYjRmMzQyZjRhMDFmNTM4
YjFhZGYyZGFkMWY1MWZhNzNiNWUyMmFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTcxNyw3ICs3MTcsNyBAQCB2b2lk
IEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgU3Ry
aW5nJiBleHRlbnNpb25JRCwgYwogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICBtX2NsaWVudC0+ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uSUQs
IGV4dGVuc2lvblRhYklELCB7IFVSTCgpLCBuZXdVUkxTdHJpbmcgfSk7CisgICAgbV9jbGllbnQt
PmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCwgVVJM
IHsgbmV3VVJMU3RyaW5nIH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6aW5z
cGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFN0cmluZyYgbmV3VVJMU3RyaW5nKQpAQCAtNzI1
LDcgKzcyNSw3IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjppbnNwZWN0ZWRQYWdlRGlk
TmF2aWdhdGUoY29uc3QgU3RyaW5nJiBuZXdVUkxTdHJpbmcpCiAgICAgaWYgKCFtX2NsaWVudCkK
ICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fY2xpZW50LT5pbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGUoeyBVUkwoKSwgbmV3VVJMU3RyaW5nIH0pOworICAgIG1fY2xpZW50LT5pbnNwZWN0ZWRQ
YWdlRGlkTmF2aWdhdGUoVVJMIHsgbmV3VVJMU3RyaW5nIH0pOwogfQogCiBFeGNlcHRpb25PcjxK
U0M6OkpTVmFsdWU+IEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZXZhbHVhdGVTY3JpcHRJbkV4dGVu
c2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCYgZXh0ZW5zaW9uRnJhbWVFbGVtZW50LCBjb25zdCBT
dHJpbmcmIHNjcmlwdFNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCBhNGZmZDEzNjFjZGRlNWFiN2Q5
NzNjZDAwZDE5YTkxMGFlOWVkMjlmLi5jYjEyY2M2OTRlMmZhYmJmY2M1N2I5ODQzY2M1MDcyNjA5
OWU0MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC05MDAsNyArOTAwLDcgQEAgdm9pZCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChGcmFtZSYgZnJhbWUsIERPTVdy
YXBwZXJXb3IKICAgICBpZiAobV9ib290c3RyYXBTY3JpcHQuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBmcmFtZS5zY3JpcHQoKS5ldmFsdWF0ZUlnbm9yaW5nRXhjZXB0aW9uKFNj
cmlwdFNvdXJjZUNvZGUobV9ib290c3RyYXBTY3JpcHQsIFVSTCB7IFVSTCgpLCAid2ViLWluc3Bl
Y3RvcjovL2Jvb3RzdHJhcC5qcyJfcyB9KSk7CisgICAgZnJhbWUuc2NyaXB0KCkuZXZhbHVhdGVJ
Z25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKG1fYm9vdHN0cmFwU2NyaXB0LCBVUkwg
eyAid2ViLWluc3BlY3RvcjovL2Jvb3RzdHJhcC5qcyJfc3RyIH0pKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmRpZFBhaW50KFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IExh
eW91dFJlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcAppbmRleCA0YTUwNzA1NGUwODY0NTk0ZDhjZWM2NWM2YTYxMGViYTE1
Y2YwOGVkLi4wNTc4ZjYzYmViZWIxYTg3ZjQwYWY0N2I5NDMyYjYyZTViZGM0YzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAg
LTI3MCw3ICsyNzAsNyBAQCBib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpoYXNIaWdoZXJQ
cmlvcml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogCiBzdGF0aWMgVVJMIG1h
a2VWYWxpZFVSTChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBjaGFyKiBw
YXRoKQogewotICAgIFVSTCB2YWxpZFVSTCB7IHsgfSwgbWFrZVN0cmluZygiaHR0cHM6Ly8iLCBk
b21haW4uc3RyaW5nKCksIHBhdGgpIH07CisgICAgVVJMIHZhbGlkVVJMIHsgbWFrZVN0cmluZygi
aHR0cHM6Ly8iLCBkb21haW4uc3RyaW5nKCksIHBhdGgpIH07CiAgICAgcmV0dXJuIHZhbGlkVVJM
LmlzVmFsaWQoKSA/IHZhbGlkVVJMIDogVVJMIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRl
eCAwMzZlZmQyMGU0OTYzMDBjZjhjOWU3ZTc5MDMxN2UwMWRlNWJhZjM4Li44NWM3ZDAxODNhYzE2
ZGUxM2E3MTQ2YThhZGM5MGZkNzIxOTQyNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtODk2LDcg
Kzg5Niw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpzdGFydExvYWRpbmdFbnRyeSgp
CiAgICAgQVNTRVJUKCFtX21hbmlmZXN0TG9hZGVyKTsKICAgICBBU1NFUlQoIW1fZW50cnlMb2Fk
ZXIpOwogCi0gICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChVUkwgeyB7IH0sIGZpcnN0
UGVuZGluZ0VudHJ5VVJMIH0sIG1fbmV3ZXN0Q2FjaGUgPyBtX25ld2VzdENhY2hlLT5yZXNvdXJj
ZUZvclVSTChmaXJzdFBlbmRpbmdFbnRyeVVSTCkgOiBudWxscHRyKTsKKyAgICBhdXRvIHJlcXVl
c3QgPSBjcmVhdGVSZXF1ZXN0KFVSTCB7IGZpcnN0UGVuZGluZ0VudHJ5VVJMIH0sIG1fbmV3ZXN0
Q2FjaGUgPyBtX25ld2VzdENhY2hlLT5yZXNvdXJjZUZvclVSTChmaXJzdFBlbmRpbmdFbnRyeVVS
TCkgOiBudWxscHRyKTsKIAogICAgIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciA9IFJlc291
cmNlTG9hZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2ZyYW1lLmdldCgpLCBtX2N1cnJlbnRSZXNvdXJjZUlk
ZW50aWZpZXIsIG1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIFJl
c291cmNlUmVzcG9uc2UgeyB9LCBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAKaW5kZXggMDIwMDFhYjM0MzAxOGE3MzI1NTk5OGZjNDc0Y2ViZmM0OWY4Yzg0Mi4u
N2Y5ZTFiN2EyNzBkMmI1ZGI2MWZlOThkN2IxMDUwMGE3ZTZjZWUxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTMxOCw3ICszMTgsNyBAQCBVUkwgUGFnZVNlcmlh
bGl6ZXI6OnVybEZvckJsYW5rRnJhbWUoRnJhbWUqIGZyYW1lKQogICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX2JsYW5rRnJhbWVVUkxzLmZpbmQoZnJhbWUpOwogICAgIGlmIChpdGVyYXRvciAhPSBtX2Js
YW5rRnJhbWVVUkxzLmVuZCgpKQogICAgICAgICByZXR1cm4gaXRlcmF0b3ItPnZhbHVlOwotICAg
IFVSTCBmYWtlVVJMIHsgeyB9LCBtYWtlU3RyaW5nKCJ3eWNpd3lnOi8vZnJhbWUvIiwgbV9ibGFu
a0ZyYW1lQ291bnRlcisrKSB9OworICAgIFVSTCBmYWtlVVJMIHsgbWFrZVN0cmluZygid3ljaXd5
ZzovL2ZyYW1lLyIsIG1fYmxhbmtGcmFtZUNvdW50ZXIrKykgfTsKICAgICBtX2JsYW5rRnJhbWVV
UkxzLmFkZChmcmFtZSwgZmFrZVVSTCk7CiAgICAgcmV0dXJuIGZha2VVUkw7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDI3MzhhZDFiOWFmNDhiYWY5NDExNzI4
MzgxOTY2ZDVkMDQyMGM3NGEuLmI0MjA0ZmNkYWUyYjBlZWY1YWJiOGQ4ZjliY2RhNjE4MWYxNDA0
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC04MSw3ICs4MSw3
IEBAIFVSTCBTZWN1cml0eU9yaWdpbjo6ZXh0cmFjdElubmVyVVJMKGNvbnN0IFVSTCYgdXJsKQog
ewogICAgIC8vIEZJWE1FOiBVcGRhdGUgdGhpcyBjYWxsc2l0ZSB0byB1c2UgdGhlIGlubmVyVVJM
IG1lbWJlciBmdW5jdGlvbiB3aGVuCiAgICAgLy8gd2UgZmluaXNoIGltcGxlbWVudGluZyBpdC4K
LSAgICByZXR1cm4geyBVUkwoKSwgUEFMOjpkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnBh
dGgoKSkgfTsKKyAgICByZXR1cm4gVVJMIHsgUEFMOjpkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMo
dXJsLnBhdGgoKSkgfTsKIH0KIAogc3RhdGljIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gZ2V0Q2Fj
aGVkT3JpZ2luKGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3Nw
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggOWIzZDdiZDE2ZTU1Y2JiYzM3MmQyNGVm
MTU4OGZmNTljMDNlNjRmNS4uNzM0NDljMDQ5OTYyZGZjNDllMGE4NDM4ZTk3YTI3ZmE2ZWFmNmM5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCkBAIC03OTMsNyArNzkzLDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJl
cG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICAg
ICAgYXV0byBzdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0V4ZWNTdGF0ZTo6Y3VycmVu
dFN0YXRlKCksIDIpOwogICAgICAgICBhdXRvKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25O
YXRpdmVDYWxsRnJhbWUoKTsKICAgICAgICAgaWYgKGNhbGxGcmFtZSAmJiBjYWxsRnJhbWUtPmxp
bmVOdW1iZXIoKSkgewotICAgICAgICAgICAgaW5mby5zb3VyY2VGaWxlID0gY3JlYXRlVVJMRm9y
UmVwb3J0aW5nKFVSTCB7IFVSTCB7IH0sIGNhbGxGcmFtZS0+c291cmNlVVJMKCkgfSwgZWZmZWN0
aXZlVmlvbGF0ZWREaXJlY3RpdmUpOworICAgICAgICAgICAgaW5mby5zb3VyY2VGaWxlID0gY3Jl
YXRlVVJMRm9yUmVwb3J0aW5nKFVSTCB7IGNhbGxGcmFtZS0+c291cmNlVVJMKCkgfSwgZWZmZWN0
aXZlVmlvbGF0ZWREaXJlY3RpdmUpOwogICAgICAgICAgICAgaW5mby5saW5lTnVtYmVyID0gY2Fs
bEZyYW1lLT5saW5lTnVtYmVyKCk7CiAgICAgICAgICAgICBpbmZvLmNvbHVtbk51bWJlciA9IGNh
bGxGcmFtZS0+Y29sdW1uTnVtYmVyKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIubW0KaW5kZXggZjg3Nzk3Y2NkNTBiOWFiNWVhNDhjMjUxZTQyZjAwYjVmYmY0ZmFhMC4uZTJh
NTgwNmNmMmZlY2Y2MTM1YzkzNWFkMDY1YjNhOGFlYjkzODgzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXIubW0KQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwog
ICAgIGlmICghbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBVUkwgbW9kaWZpZWRSZXF1ZXN0VVJMIHsgVVJMKCksIG1vZGlmaWVkUmVxdWVzdFVSTFN0cmlu
Zy5nZXQoKSB9OworICAgIFVSTCBtb2RpZmllZFJlcXVlc3RVUkwgeyBtb2RpZmllZFJlcXVlc3RV
UkxTdHJpbmcuZ2V0KCkgfTsKICAgICBpZiAoIW1vZGlmaWVkUmVxdWVzdFVSTC5pc1ZhbGlkKCkp
IHsKICAgICAgICAgTE9HKENvbnRlbnRGaWx0ZXJpbmcsICJOZXR3b3JrRXh0ZW5zaW9uQ29udGVu
dEZpbHRlciBmYWlsZWQgdG8gY29udmVydCBtb2RpZmllZCBVUkwgc3RyaW5nICVAIHRvIGEgIFVS
TC5cbiIsIG1vZGlmaWVkUmVxdWVzdFVSTFN0cmluZy5nZXQoKSk7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
Zjc5OTk4M2RlMjQwMTQ5NDQyNmNlYTEzMzgyYzhhOWIyYTBiMGRhNC4uNjYzMDQ0MmY0NmE3MTY4
NmM5OWQyMzA1MzYzODVmMmFlYWFlNzEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhciByZWdpcwogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25z
dCBTdHJpbmcmIHVybFN0cmluZykKIHsKLSAgICBVUkwgdXJsKFVSTCgpLCB1cmxTdHJpbmcpOwor
ICAgIFVSTCB1cmwgeyB1cmxTdHJpbmcgfTsKICAgICBpZiAodXJsLnByb3RvY29sSXNBYm91dCgp
KSB7CiAgICAgICAgIGxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9y
bWF0RXJyb3IsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZywgdHJ1ZSk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTE4NjMsNyArMTg2Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAg
IGVsc2UgaWYgKGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAiaHR0cC1oZWFkZXJz
IikpIHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIlByb2Nlc3Np
bmcgSFRUUCBoZWFkZXJzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RydWN0dXJlKTsKICAgICAgICAg
ICAgIGlmIChjb25zdCBjaGFyKiB1cmkgPSBnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcoc3RydWN0
dXJlLCAidXJpIikpIHsKLSAgICAgICAgICAgICAgICBVUkwgdXJsKFVSTCgpLCB1cmkpOworICAg
ICAgICAgICAgICAgIFVSTCB1cmwgeyB1cmkgfTsKICAgICAgICAgICAgICAgICBtX29yaWdpbnMu
YWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICAgICAgICAgICAgICBpZiAo
dXJsICE9IG1fdXJsKSB7CkBAIC0yNDQ4LDcgKzI0NDgsNyBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bG9hZE5leHRMb2NhdGlvbigpCiAKICAgICAgICAgR1VuaXF1ZU91dFB0
cjxnY2hhcj4gcGxheWJpblVybFN0cjsKICAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGlwZWxpbmUu
Z2V0KCksICJjdXJyZW50LXVyaSIsICZwbGF5YmluVXJsU3RyLm91dFB0cigpLCBudWxscHRyKTsK
LSAgICAgICAgVVJMIHBsYXliaW5VcmwoVVJMKCksIHBsYXliaW5VcmxTdHIuZ2V0KCkpOworICAg
ICAgICBVUkwgcGxheWJpblVybCB7IHBsYXliaW5VcmxTdHIuZ2V0KCkgfTsKIAogICAgICAgICBp
ZiAocGxheWJpblVybCA9PSBuZXdVcmwpIHsKICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qo
cGlwZWxpbmUoKSwgIlBsYXliaW4gYWxyZWFkeSBoYW5kbGVkIHJlZGlyZWN0aW9uLiIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA3Njk2ZDFjYjcy
YzViNWE3NzVlODI2YTQ3NTk0NmYxYTFiMmEwOTlkLi41M2IzN2NiM2MwNTQ2ZDY1YjY5MGM2MzYw
ZmUxMWJlNzBmZDRmODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcApAQCAtODc3LDggKzg3Nyw3IEBAIGNvbnN0IGdjaGFyKiBjb25zdCogd2ViS2l0V2Vi
U3JjR2V0UHJvdG9jb2xzKEdUeXBlKQogCiBzdGF0aWMgVVJMIGNvbnZlcnRQbGF5YmluVVJJKGNv
bnN0IGNoYXIqIHVyaVN0cmluZykKIHsKLSAgICBVUkwgdXJsKFVSTCgpLCB1cmlTdHJpbmcpOwot
ICAgIHJldHVybiB1cmw7CisgICAgcmV0dXJuIFVSTCB7IHVyaVN0cmluZyB9OwogfQogCiBzdGF0
aWMgZ2NoYXIqIHdlYktpdFdlYlNyY0dldFVyaShHc3RVUklIYW5kbGVyKiBoYW5kbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1VSTFNvdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1VSTFNvdXAuY3BwCmluZGV4
IGQ0ZTVmODhmMmI2NDA1MTY5ZmQ1ZTM4MzIxZDc2MGZhYzVmOWZjODIuLjM1MWU1Mjg5MzM5OTUx
NGQ3YzI0M2Y5Yzk5ZDE4ZDgzNGMxZjA0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9VUkxTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvVVJMU291cC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgVVJMIHNvdXBV
UklUb1VSTChTb3VwVVJJKiBzb3VwVVJJKQogICAgICAgICByZXR1cm4gVVJMKCk7CiAKICAgICBH
VW5pcXVlUHRyPGdjaGFyPiB1cmxTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHNvdXBVUkksIEZB
TFNFKSk7Ci0gICAgVVJMIHVybChVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmxTdHJpbmcuZ2V0
KCkpKTsKKyAgICBVUkwgdXJsIHsgU3RyaW5nOjpmcm9tVVRGOCh1cmxTdHJpbmcuZ2V0KCkpIH07
CiAgICAgaWYgKHVybC5pc1ZhbGlkKCkpIHsKICAgICAgICAgLy8gTW90aXZhdGVkIGJ5IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODk1Ni4gbGlic291cAogICAgICAg
ICAvLyBkb2VzIG5vdCBhZGQgdGhlIHBhc3N3b3JkIHRvIHRoZSBVUkwgd2hlbiBjYWxsaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggNTdi
NmEwYmZlMmM5NmZjZDU2MmM1MGY3OGVmYzgxNzk4NDk2YjExMy4uMGIyNWZmNmMzOGM4NjM0ZjM3
ZWVhMmFmZDAyNGE4ZDQyYTRmNDJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtNTk1LDcgKzU5NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBwYXRoUmVtb3ZlQmFkRlNDaGFyYWN0ZXJzKFBXU1RSIHBzeiwgc2l6ZV90IGxlbmd0aCkKICAg
ICBwc3pbd3JpdGVUb10gPSAwOwogfQogCi1zdGF0aWMgU3RyaW5nIGZpbGVzeXN0ZW1QYXRoRnJv
bVVybE9yVGl0bGUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFN0cmluZyYgZXh0ZW5zaW9uLCBib29sIGlzTGluaykKK3N0YXRpYyBTdHJpbmcgZmlsZVN5c3Rl
bVBhdGhGcm9tVVJMT3JUaXRsZShjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiBleHRlbnNpb24sIGJvb2wgaXNMaW5rKQogewogICAgIHN0
YXRpYyBjb25zdCBzaXplX3QgZnNQYXRoTWF4TGVuZ3RoRXhjbHVkaW5nTnVsbFRlcm1pbmF0b3Ig
PSBNQVhfUEFUSCAtIDE7CiAgICAgYm9vbCB1c2VkVVJMID0gZmFsc2U7CkBAIC02MTEsMTkgKzYx
MSwxOSBAQCBzdGF0aWMgU3RyaW5nIGZpbGVzeXN0ZW1QYXRoRnJvbVVybE9yVGl0bGUoY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bAogICAgIH0KIAogICAgIGlmICghd2NzbGVu
KHdjaGFyRnJvbShmc1BhdGhCdWZmZXIpKSkgewotICAgICAgICBVUkwga3VybChVUkwoKSwgdXJs
KTsKKyAgICAgICAgVVJMIHVybCB7IHVybFN0cmluZyB9OwogICAgICAgICB1c2VkVVJMID0gdHJ1
ZTsKICAgICAgICAgLy8gVGhlIGZpbGVuYW1lIGZvciBhbnkgY29udGVudCBiYXNlZCBkcmFnIG9y
IGZpbGUgdXJsIHNob3VsZCBiZSB0aGUgbGFzdCBlbGVtZW50IG9mIAogICAgICAgICAvLyB0aGUg
cGF0aC4gSWYgd2UgY2FuJ3QgZmluZCBpdCwgb3Igd2UncmUgY29taW5nIHVwIHdpdGggdGhlIG5h
bWUgZm9yIGEgbGluawogICAgICAgICAvLyB3ZSBqdXN0IHVzZSB0aGUgZW50aXJlIHVybC4KICAg
ICAgICAgRFdPUkQgbGVuID0gZnNQYXRoTWF4TGVuZ3RoRXhjbHVkaW5nRXh0ZW5zaW9uOwotICAg
ICAgICBhdXRvIGxhc3RDb21wb25lbnQgPSBrdXJsLmxhc3RQYXRoQ29tcG9uZW50KCk7Ci0gICAg
ICAgIGlmIChrdXJsLmlzTG9jYWxGaWxlKCkgfHwgKCFpc0xpbmsgJiYgIWxhc3RDb21wb25lbnQu
aXNFbXB0eSgpKSkgeworICAgICAgICBhdXRvIGxhc3RDb21wb25lbnQgPSB1cmwubGFzdFBhdGhD
b21wb25lbnQoKTsKKyAgICAgICAgaWYgKHVybC5pc0xvY2FsRmlsZSgpIHx8ICghaXNMaW5rICYm
ICFsYXN0Q29tcG9uZW50LmlzRW1wdHkoKSkpIHsKICAgICAgICAgICAgIGxlbiA9IHN0ZDo6bWlu
PERXT1JEPihmc1BhdGhNYXhMZW5ndGhFeGNsdWRpbmdFeHRlbnNpb24sIGxhc3RDb21wb25lbnQu
bGVuZ3RoKCkpOwogICAgICAgICAgICAgbGFzdENvbXBvbmVudC5zdWJzdHJpbmcoMCwgbGVuKS5n
ZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydChmc1BhdGhCdWZmZXIpOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgbGVuID0gc3RkOjptaW48RFdPUkQ+KGZzUGF0aE1heExlbmd0aEV4Y2x1
ZGluZ0V4dGVuc2lvbiwgdXJsLmxlbmd0aCgpKTsKLSAgICAgICAgICAgIFN0cmluZ1ZpZXcodXJs
KS5zdWJzdHJpbmcoMCwgbGVuKS5nZXRDaGFyYWN0ZXJzV2l0aFVwY29udmVydChmc1BhdGhCdWZm
ZXIpOworICAgICAgICAgICAgbGVuID0gc3RkOjptaW48RFdPUkQ+KGZzUGF0aE1heExlbmd0aEV4
Y2x1ZGluZ0V4dGVuc2lvbiwgdXJsU3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIFN0cmlu
Z1ZpZXcodXJsU3RyaW5nKS5zdWJzdHJpbmcoMCwgbGVuKS5nZXRDaGFyYWN0ZXJzV2l0aFVwY29u
dmVydChmc1BhdGhCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAgIGZzUGF0aEJ1ZmZlcltsZW5d
ID0gMDsKICAgICAgICAgcGF0aFJlbW92ZUJhZEZTQ2hhcmFjdGVycyh3Y2hhckZyb20oZnNQYXRo
QnVmZmVyKSwgbGVuKTsKQEAgLTY5Miw3ICs2OTIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
VVJMVG9EYXRhT2JqZWN0KGNvbnN0IFVSTCYga3VybCwgY29uc3QgU3RyaW5nJiB0aXRsZVN0cikK
ICAgICBTdHJpbmcgdXJsID0ga3VybC5zdHJpbmcoKTsKICAgICBBU1NFUlQodXJsLmlzQWxsQVND
SUkoKSk7IC8vIFVSTDo6c3RyaW5nKCkgaXMgVVJMIGVuY29kZWQuCiAKLSAgICBTdHJpbmcgZnNQ
YXRoID0gZmlsZXN5c3RlbVBhdGhGcm9tVXJsT3JUaXRsZSh1cmwsIHRpdGxlU3RyLCAiLlVSTCIs
IHRydWUpOworICAgIFN0cmluZyBmc1BhdGggPSBmaWxlU3lzdGVtUGF0aEZyb21VUkxPclRpdGxl
KHVybCwgdGl0bGVTdHIsICIuVVJMIiwgdHJ1ZSk7CiAgICAgU3RyaW5nIGNvbnRlbnRTdHJpbmco
IltJbnRlcm5ldFNob3J0Y3V0XVxyXG5VUkw9IiArIHVybCArICJcclxuIik7CiAgICAgQ1N0cmlu
ZyBjb250ZW50ID0gY29udGVudFN0cmluZy5sYXRpbjEoKTsKIApAQCAtOTUxLDcgKzk1MSw3IEBA
IHN0YXRpYyBIR0xPQkFMIGNyZWF0ZUdsb2JhbEltYWdlRmlsZURlc2NyaXB0b3IoY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIGV4
dGVuc2lvbi5pbnNlcnQoIi4iLCAwKTsKLSAgICBmc1BhdGggPSBmaWxlc3lzdGVtUGF0aEZyb21V
cmxPclRpdGxlKHVybCwgcHJlZmVycmVkVGl0bGUsIGV4dGVuc2lvbiwgZmFsc2UpOworICAgIGZz
UGF0aCA9IGZpbGVTeXN0ZW1QYXRoRnJvbVVSTE9yVGl0bGUodXJsLCBwcmVmZXJyZWRUaXRsZSwg
ZXh0ZW5zaW9uLCBmYWxzZSk7CiAKICAgICBpZiAoZnNQYXRoLmxlbmd0aCgpIDw9IDApIHsKICAg
ICAgICAgR2xvYmFsVW5sb2NrKG1lbU9iaik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggZTk1OTk2NzFkOThlMGU0MmY0MDRlYzhlNjA0OWExODJmY2YwYzMyMC4uOTQ2ZWZm
OTc0NGU0YzdjOGY2NWU5OTNkYzNhNTlmOWIyN2RlOTEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtODUzLDcgKzg1Myw3IEBAIFN0cmluZyBJbnRlcm5hbHM6OmJsb2JJ
bnRlcm5hbFVSTChjb25zdCBCbG9iJiBibG9iKQogCiB2b2lkIEludGVybmFsczo6aXNCbG9iSW50
ZXJuYWxVUkxSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgdXJsLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMQm9vbGVhbj4mJiBwcm9taXNlKQogewotICAgIHByb21pc2UucmVzb2x2ZSghIVRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKFVSTCB7IHsgfSwgdXJsIH0pKTsKKyAgICBwcm9taXNl
LnJlc29sdmUoISFUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZShVUkwgeyB1cmwgfSkp
OwogfQogCiBib29sIEludGVybmFsczo6aXNTaGFyaW5nU3R5bGVTaGVldENvbnRlbnRzKEhUTUxM
aW5rRWxlbWVudCYgYSwgSFRNTExpbmtFbGVtZW50JiBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKaW5kZXggN2Y5Yjk0NThhMmIyNGI4
NmQ5NjIwYjRjNThiYmYyYjY3MWZiY2M5NC4uOGI5Mzg4ODYzYzgxYjEyNmI4Yjg0Njg3YjBiZDg2
YmZhMzcwZDkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVu
dENvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50
Q29vcmRpbmF0b3IuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgYm9vbCBNb2NrUGF5bWVudENvb3Jk
aW5hdG9yOjpzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxVUkw+JiwgY29u
c3QKICAgICBBU1NFUlQoc2hvd0NvdW50ID09IGhpZGVDb3VudCk7CiAgICAgKytzaG93Q291bnQ7
CiAgICAgZGlzcGF0Y2hJZlNob3dpbmcoW3BhZ2UgPSAmbV9wYWdlXSgpIHsKLSAgICAgICAgcGFn
ZS0+cGF5bWVudENvb3JkaW5hdG9yKCkudmFsaWRhdGVNZXJjaGFudCh7IFVSTCgpLCAiaHR0cHM6
Ly93ZWJraXQub3JnLyJfcyB9KTsKKyAgICAgICAgcGFnZS0+cGF5bWVudENvb3JkaW5hdG9yKCku
dmFsaWRhdGVNZXJjaGFudChVUkwgeyAiaHR0cHM6Ly93ZWJraXQub3JnLyJfc3RyIH0pOwogICAg
IH0pOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3BwCmlu
ZGV4IDEzNWQ5MTBmNGU4NjQyMjQ5NjUwNmQ3MDAzNjBmNjIxM2EyMDg3NTYuLjdhODhmYTc3NGVk
YzEyZTI1ZWRiYzI1MDQ0M2NlYTMxMmFiYTJlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eS5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXk+IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXk6OmZyb21EYQogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKLSAgICBhdXRvIHNjb3BlID0gVVJM
IHsgVVJMKCksIGtleS5zdWJzdHJpbmcodGhpcmQgKyAxKSB9OworICAgIFVSTCBzY29wZSB7IGtl
eS5zdWJzdHJpbmcodGhpcmQgKyAxKSB9OwogICAgIGlmICghc2NvcGUuaXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCmlu
ZGV4IGI0ZTFhNDU4NDhlZWMzNzkxMzJjMDM5OTY4YzU1MWZjYjljMmFkN2EuLjQ1NjcxY2YyN2Ez
NDFlYzc1OTEyYzVmMDE0MjkzYjE0ZWQ4ZmFiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwCkBAIC01MTUsMTMgKzUxNSwxMyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9uRGF0YWJhc2U6Omlt
cG9ydFJlY29yZHMoKQogICAgIGZvciAoOyByZXN1bHQgPT0gU1FMSVRFX1JPVzsgcmVzdWx0ID0g
c3FsLT5zdGVwKCkpIHsKICAgICAgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlJlZ2lz
dHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzOiBJbXBvcnRpbmcgYSByZWdpc3RyYXRpb24g
ZnJvbSB0aGUgZGF0YWJhc2UiKTsKICAgICAgICAgYXV0byBrZXkgPSBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5Ojpmcm9tRGF0YWJhc2VLZXkoc3FsLT5jb2x1bW5UZXh0KDApKTsKLSAgICAg
ICAgYXV0byBvcmlnaW5VUkwgPSBVUkwgeyBVUkwoKSwgc3FsLT5jb2x1bW5UZXh0KDEpIH07Cisg
ICAgICAgIGF1dG8gb3JpZ2luVVJMID0gVVJMIHsgc3FsLT5jb2x1bW5UZXh0KDEpIH07CiAgICAg
ICAgIGF1dG8gc2NvcGVQYXRoID0gc3FsLT5jb2x1bW5UZXh0KDIpOwogICAgICAgICBhdXRvIHNj
b3BlVVJMID0gVVJMIHsgb3JpZ2luVVJMLCBzY29wZVBhdGggfTsKICAgICAgICAgYXV0byB0b3BP
cmlnaW4gPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlkZW50aWZpZXIoc3FsLT5j
b2x1bW5UZXh0KDMpKTsKICAgICAgICAgYXV0byBsYXN0VXBkYXRlQ2hlY2tUaW1lID0gV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKHNxbC0+Y29sdW1uRG91YmxlKDQpKTsKICAgICAgICAgYXV0byB1
cGRhdGVWaWFDYWNoZSA9IHN0cmluZ1RvVXBkYXRlVmlhQ2FjaGUoc3FsLT5jb2x1bW5UZXh0KDUp
KTsKLSAgICAgICAgYXV0byBzY3JpcHRVUkwgPSBVUkwgeyBVUkwoKSwgc3FsLT5jb2x1bW5UZXh0
KDYpIH07CisgICAgICAgIGF1dG8gc2NyaXB0VVJMID0gVVJMIHsgc3FsLT5jb2x1bW5UZXh0KDYp
IH07CiAgICAgICAgIGF1dG8gd29ya2VyVHlwZSA9IHN0cmluZ1RvV29ya2VyVHlwZShzcWwtPmNv
bHVtblRleHQoNykpOwogCiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Q29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzPiBjb250ZW50U2VjdXJpdHlQb2xpY3k7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggMWEzYjA4YmY3M2UxNGZjN2NlMGE2NTdk
ZTU4M2Y5ZjIyZDRhYTgyMi4uYmM3YWU4OGY3NTgyMzY0NmQ0ZmEyYmMxOTQyNjcyNjQzMTg4Y2I0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjc5LDcg
KzI3OSw3IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RUaW1lRGF0YVJlY29y
ZHNXZXJlUmVtb3ZlZDsKICAgICB1aW50NjRfdCBtX2xhc3RTdGF0aXN0aWNzUHJvY2Vzc2luZ1Jl
cXVlc3RJZGVudGlmaWVyIHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG1fcGVu
ZGluZ1N0YXRpc3RpY3NQcm9jZXNzaW5nUmVxdWVzdElkZW50aWZpZXI7Ci0gICAgY29uc3QgUmVn
aXN0cmFibGVEb21haW4gbV9kZWJ1Z1N0YXRpY1ByZXZhbGVudFJlc291cmNlIHsgVVJMIHsgVVJM
KCksICJodHRwczovLzNyZHBhcnR5dGVzdHdlYmtpdC5vcmciX3MgfSB9OworICAgIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluIG1fZGVidWdTdGF0aWNQcmV2YWxlbnRSZXNvdXJjZSB7IFVSTCB7ICJo
dHRwczovLzNyZHBhcnR5dGVzdHdlYmtpdC5vcmciX3N0ciB9IH07CiAgICAgYm9vbCBtX2RlYnVn
TG9nZ2luZ0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kZWJ1Z01vZGVFbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIG1fdGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9j
a2luZ01vZGU6OkFsbCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IGEwMjNkMjVjODA5OGM0NWY2MTY2YzY1Zjg4OTVh
NTE0MGVhMzE3YmIuLjZlNjYxOTdhZmRjZjQwYzA5NmE1ZGRmMjE1NDg2MWZiN2YyMjMyNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKQEAgLTQ0Miw3ICs0NDIsNyBAQCBDb250ZW50U2VjdXJpdHlQb2xpY3kqIE5ldHdvcmtM
b2FkQ2hlY2tlcjo6Y29udGVudFNlY3VyaXR5UG9saWN5KCkKIHsKICAgICBpZiAoIW1fY29udGVu
dFNlY3VyaXR5UG9saWN5ICYmIG1fY3NwUmVzcG9uc2VIZWFkZXJzKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBQYXNzIHRoZSBVUkwgb2YgdGhlIHByb3RlY3RlZCByZXNvdXJjZSBpbnN0ZWFkIG9mIGl0
cyBvcmlnaW4uCi0gICAgICAgIG1fY29udGVudFNlY3VyaXR5UG9saWN5ID0gbWFrZVVuaXF1ZTxD
b250ZW50U2VjdXJpdHlQb2xpY3k+KFVSTCB7IFVSTCB7IH0sIG1fb3JpZ2luLT50b1Jhd1N0cmlu
ZygpIH0pOworICAgICAgICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1ha2VVbmlxdWU8Q29u
dGVudFNlY3VyaXR5UG9saWN5PihVUkwgeyBtX29yaWdpbi0+dG9SYXdTdHJpbmcoKSB9KTsKICAg
ICAgICAgbV9jb250ZW50U2VjdXJpdHlQb2xpY3ktPmRpZFJlY2VpdmVIZWFkZXJzKCptX2NzcFJl
c3BvbnNlSGVhZGVycywgU3RyaW5nIHsgbV9yZWZlcnJlciB9LCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OlJlcG9ydFBhcnNpbmdFcnJvcnM6Ok5vKTsKICAgICAgICAgaWYgKCFtX2RvY3VtZW50VVJM
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fY29udGVudFNlY3VyaXR5UG9saWN5LT5zZXREb2N1
bWVudFVSTChtX2RvY3VtZW50VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCA5ZWFhODNmZWFl
MTk1ZGU5YzA2YzVlNDE4ZGRjMWI4MzA4MGY4NjRlLi4yYzU0N2FiNDg2MTdlYjliZGFiZTJiMWRi
NGVlOWE3OWI1YmM1ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC03NDQsNyArNzQ0LDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBhdXRvKiBuZXR3
b3JrRGF0YVRhc2sgPSBbc2VsZiBleGlzdGluZ1Rhc2s6dGFza107CiAgICAgICAgICAgICBpZiAo
bmV0d29ya0RhdGFUYXNrKSB7CiAgICAgICAgICAgICAgICAgTlNVUkxQcm90ZWN0aW9uU3BhY2Ug
KnByb3RlY3Rpb25TcGFjZSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2U7Ci0gICAgICAgICAg
ICAgICAgbmV0d29ya0RhdGFUYXNrLT5kaWROZWdvdGlhdGVNb2Rlcm5UTFMoVVJMKFVSTCgpLCBt
YWtlU3RyaW5nKFN0cmluZyhwcm90ZWN0aW9uU3BhY2UucHJvdG9jb2wpLCAiOi8vIiwgU3RyaW5n
KHByb3RlY3Rpb25TcGFjZS5ob3N0KSwgJzonLCBwcm90ZWN0aW9uU3BhY2UucG9ydCkpKTsKKyAg
ICAgICAgICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmRpZE5lZ290aWF0ZU1vZGVyblRMUyhVUkwg
eyBtYWtlU3RyaW5nKFN0cmluZyhwcm90ZWN0aW9uU3BhY2UucHJvdG9jb2wpLCAiOi8vIiwgU3Ry
aW5nKHByb3RlY3Rpb25TcGFjZS5ob3N0KSwgJzonLCBwcm90ZWN0aW9uU3BhY2UucG9ydCkgfSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VC
bG9ja1B0cihbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGU+
KHNlbGYpLCBzZXNzaW9uQ29jb2EgPSBXZWFrUHRyIHsgc2Vzc2lvbkNvY29hIH0sIGNvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKSwgdGFza0lkZW50aWZp
ZXIsIG5ldHdvcmtEYXRhVGFzayA9IFJlZlB0ciB7IG5ldHdvcmtEYXRhVGFzayB9LCBuZWdvdGlh
dGVkTGVnYWN5VExTXShOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UsIE9T
U3RhdHVzIHRydXN0UmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBhdXRvIHN0cm9u
Z1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9BUElTZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVNl
Y3VyaXR5T3JpZ2luLmgKaW5kZXggM2FlZGQ0YzIyN2E1NWZiZDRjMGM3ZDlhMWRkMTVkMmYwMTAy
ZTgxZi4uN2JiZTliNmExODAxNTJkNzI4NGI1OWYxY2U0NzU5OGQyMTAzZTQ5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVNlY3VyaXR5T3JpZ2luLmgKQEAgLTM1LDcgKzM1LDcg
QEAgY2xhc3MgU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpTZWN1cml0eU9yaWdpbj4KIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNlY3Vy
aXR5T3JpZ2luPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmcpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWN1cml0eU9yaWdpbihXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoV1RGOjpVUkwoV1RGOjpVUkwoKSwgc3RyaW5n
KSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VjdXJpdHlPcmlnaW4oV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKFdURjo6VVJMIHsgc3RyaW5nIH0pKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFJlZjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFdURjo6
U3RyaW5nJiBwcm90b2NvbCwgY29uc3QgV1RGOjpTdHJpbmcmIGhvc3QsIHN0ZDo6b3B0aW9uYWw8
dWludDE2X3Q+IHBvcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJ
VVJMLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJVVJMLmgKaW5kZXggNGM4MzhhZmI3
MzA1OTYzNTg5MzlhZmI1YmI0NTY0ZDAwYThhNjIxZi4uOWM2MDVjMWRhYTFlMjU4NWM1YmYxNWRm
Yzg1YTRjZmRhNzZjNzdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQ
SVVSTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElVUkwuaApAQCAtMTIxLDcg
KzEyMSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAobV9wYXJzZWRVUkwpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fcGFyc2VkVVJMID0gbWFrZVVuaXF1ZTxXVEY6OlVS
TD4oV1RGOjpVUkwoKSwgbV9zdHJpbmcpOworICAgICAgICBtX3BhcnNlZFVSTCA9IG1ha2VVbmlx
dWU8V1RGOjpVUkw+KG1fc3RyaW5nKTsKICAgICB9CiAKICAgICBXVEY6OlN0cmluZyBtX3N0cmlu
ZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3BwCmluZGV4IDI5
NmNhZjdjMzI3NWUwMjUzZGZlYTZkNjg4NjY5MzAyY2JhODBhNTYuLmY2YzA1ZWJhNWYyNmQ3M2Y1
OTg4Y2MzYmEzYjA5Y2MzYzhmNGRmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
V0tVUkxSZXF1ZXN0LmNwcApAQCAtMzgsNyArMzgsNyBAQCBXS1R5cGVJRCBXS1VSTFJlcXVlc3RH
ZXRUeXBlSUQoKQogCiBXS1VSTFJlcXVlc3RSZWYgV0tVUkxSZXF1ZXN0Q3JlYXRlV2l0aFdLVVJM
KFdLVVJMUmVmIHVybCkKIHsKLSAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSSgmQVBJOjpVUkxSZXF1
ZXN0OjpjcmVhdGUoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh1cmwpLT5zdHJpbmcoKSkpLmxl
YWtSZWYoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoJkFQSTo6VVJMUmVxdWVzdDo6Y3Jl
YXRlKFVSTCB7IFdlYktpdDo6dG9JbXBsKHVybCktPnN0cmluZygpIH0pLmxlYWtSZWYoKSk7CiB9
CiAKIFdLVVJMUmVmIFdLVVJMUmVxdWVzdENvcHlVUkwoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RS
ZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRVUklS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVl
c3QuY3BwCmluZGV4IGE2MzBkNDM4MzgyOWE2YjhhMjBmOTEzMzQzZjc3ZmVmNWEwMjliNjMuLjI1
NTcyNmYzZTI2ZWQxMmE3MzYwYmI3N2NlY2RlNmQwMzA4OGI1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdFVSSVJlcXVlc3QuY3BwCkBAIC0xNDUsNyAr
MTQ1LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaShXZWJLaXRVUklSZXF1ZXN0
KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
SVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKIAot
ICAgIFVSTCB1cmwoVVJMKCksIHVyaSk7CisgICAgVVJMIHVybCB7IHVyaSB9OwogICAgIGlmICh1
cmwgPT0gcmVxdWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1
cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSVdlYkFyY2hpdmVSZXNvdXJjZS5tbQpp
bmRleCAxMTBlMGFkZGU1NThhOWQ5MzM4YjI0NTA2ZTg5MTYzYzkzNjk3MTk4Li43MzI5YmFhNmRl
MzZlMjBjZWE1ZDNjMzg0YTE4MDdkMDMwYTA5ODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUElXZWJBcmNoaXZlUmVzb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCkBAIC00Nyw3ICs0Nyw3IEBAIFJlZjxXZWJBcmNo
aXZlUmVzb3VyY2U+IFdlYkFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKFJlZlB0cjxBcmNoaXZlUmVz
b3VyY2U+JiYgYXJjCiB9CiAKIFdlYkFyY2hpdmVSZXNvdXJjZTo6V2ViQXJjaGl2ZVJlc291cmNl
KEFQSTo6RGF0YSogZGF0YSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKQotICAgIDogbV9hcmNoaXZlUmVzb3VyY2Uo
QXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS0+Ynl0ZXMo
KSwgZGF0YS0+c2l6ZSgpKSwgV1RGOjpVUkwoV1RGOjpVUkwoKSwgdXJsKSwgTUlNRVR5cGUsIHRl
eHRFbmNvZGluZywgU3RyaW5nKCkpKQorICAgIDogbV9hcmNoaXZlUmVzb3VyY2UoQXJjaGl2ZVJl
c291cmNlOjpjcmVhdGUoU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS0+Ynl0ZXMoKSwgZGF0YS0+
c2l6ZSgpKSwgV1RGOjpVUkwgeyB1cmwgfSwgTUlNRVR5cGUsIHRleHRFbmNvZGluZywgU3RyaW5n
KCkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9X
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBs
ZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggYmNjYzA1NTA3NzE3Nzk3
NjY4ZjljOWRjZjEwMzEwOTExMWI5OGFlYS4uNjg4ZjE4NWQwOWIyZTJkMTllYWQ2MGJlMmIxZDgx
MDY0NDc4MWJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Fw
cGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcApAQCAtOTEsMTAgKzkxLDEwIEBA
IHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnNob3dQYXltZW50VUkoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgZGVzdGluYXRpCiAgICAgbV9kZXN0aW5hdGlvbklEID0gZGVzdGluYXRp
b25JRDsKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2YXRpbmc7CiAKLSAgICBVUkwgb3JpZ2lu
YXRpbmdVUkwoVVJMKCksIG9yaWdpbmF0aW5nVVJMU3RyaW5nKTsKKyAgICBVUkwgb3JpZ2luYXRp
bmdVUkwgeyBvcmlnaW5hdGluZ1VSTFN0cmluZyB9OwogCiAgICAgYXV0byBsaW5rSWNvblVSTHMg
PSBsaW5rSWNvblVSTFN0cmluZ3MubWFwKFtdKGF1dG8mIGxpbmtJY29uVVJMU3RyaW5nKSB7Ci0g
ICAgICAgIHJldHVybiBVUkwoVVJMKCksIGxpbmtJY29uVVJMU3RyaW5nKTsKKyAgICAgICAgcmV0
dXJuIFVSTCB7IGxpbmtJY29uVVJMU3RyaW5nIH07CiAgICAgfSk7CiAKICAgICBwbGF0Zm9ybVNo
b3dQYXltZW50VUkod2ViUGFnZVByb3h5SUQsIG9yaWdpbmF0aW5nVVJMLCBsaW5rSWNvblVSTHMs
IHBheW1lbnRSZXF1ZXN0LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYm9v
bCByZXN1bHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNv
cmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCmluZGV4IGFiNjQ4M2I4OTFkZTI4OTU2YTEwZmJlNTZm
NDI4ZTE5ZDgzZGQwMmUuLjhhOGMwM2Y5YjkzYTA2NTQ2MTU5NzJiMTQxMTIzZTllZTdiNDk1YjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNDdXJsLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxS
ZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291
cmNlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzc2xFcnJvcnMpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICByZXNvdXJjZUVycm9yID0gUmVzb3VyY2VFcnJvcihkb21haW4sIGVycm9y
Q29kZSwgVVJMKFVSTCgpLCBmYWlsaW5nVVJMKSwgbG9jYWxpemVkRGVzY3JpcHRpb24sIGVycm9y
VHlwZSk7CisgICAgcmVzb3VyY2VFcnJvciA9IFJlc291cmNlRXJyb3IoZG9tYWluLCBlcnJvckNv
ZGUsIFVSTCB7IGZhaWxpbmdVUkwgfSwgbG9jYWxpemVkRGVzY3JpcHRpb24sIGVycm9yVHlwZSk7
CiAgICAgcmVzb3VyY2VFcnJvci5zZXRTc2xFcnJvcnMoc3NsRXJyb3JzKTsKIAogICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29k
ZXJzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5j
cHAKaW5kZXggNjcxNzU4YTI4MGE1ZTQ0MGFhMDYwYTc5Y2YxZjBmMTI2ZGI3YmUyOS4uYmYzZGQw
NjAzZjVmN2IyOGRjMTRhMTcyNGQ4MDAzMWExZWZhYjNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgc3Rk
OjpvcHRpb25hbDxTZWxlY3Rpb25EYXRhPiBBcmd1bWVudENvZGVyPFNlbGVjdGlvbkRhdGE+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICAgICAgU3RyaW5nIHVybDsKICAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh1cmwpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICAgICAgc2VsZWN0aW9uLnNldFVSTChVUkwoVVJMKCksIHVybCksIFN0cmluZygpKTsKKyAgICAg
ICAgc2VsZWN0aW9uLnNldFVSTChVUkwgeyB1cmwgfSwgU3RyaW5nKCkpOwogICAgIH0KIAogICAg
IGJvb2wgaGFzVVJJTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IGFkOWJkNmUzMmI3MmZhZjI1ZTA0
ZjJkMTUwNTdmN2ZmODI5YmQ1ODUuLmRkZDgwYzQxNzA5ODczNjMwYzcwNzNiY2JhZjg4NDAxZWYz
YmUwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNTb3VwLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIs
IFJlc291cmNlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsb2NhbGl6ZWREZXNjcmlwdGlvbikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJlc291cmNlRXJyb3IgPSBSZXNvdXJjZUVy
cm9yKGRvbWFpbiwgZXJyb3JDb2RlLCBVUkwoVVJMKCksIGZhaWxpbmdVUkwpLCBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbik7CisgICAgcmVzb3VyY2VFcnJvciA9IFJlc291cmNlRXJyb3IoZG9tYWluLCBl
cnJvckNvZGUsIFVSTCB7IGZhaWxpbmdVUkwgfSwgbG9jYWxpemVkRGVzY3JpcHRpb24pOwogCiAg
ICAgQ2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbzsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNlcnRpZmljYXRlSW5mbykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwCmluZGV4IGI2MTE4ODE3
MTg4NTJiNTAzNTk4NGYzNTA3MDJmMTc5MWEyZWVlY2MuLjdiZGM5MTE1MGJkYjE0ZWE4YzAwNzYy
MGRkZDEyYWMxM2JiODM2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwCkBAIC01MCw3ICs1MCw3
IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBmaWxlUGF0aHNGcm9tRmlsZVVSTHMoY29uc3QgQVBJ
OjpBcnJheSYgZmlsZVVSTHMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kp
IHsKICAgICAgICAgQVBJOjpVUkwqIGFwaVVSTCA9IGZpbGVVUkxzLmF0PEFQSTo6VVJMPihpKTsK
ICAgICAgICAgaWYgKGFwaVVSTCkKLSAgICAgICAgICAgIGZpbGVQYXRocy51bmNoZWNrZWRBcHBl
bmQoVVJMKFVSTCgpLCBhcGlVUkwtPnN0cmluZygpKS5maWxlU3lzdGVtUGF0aCgpKTsKKyAgICAg
ICAgICAgIGZpbGVQYXRocy51bmNoZWNrZWRBcHBlbmQoVVJMIHsgYXBpVVJMLT5zdHJpbmcoKSB9
LmZpbGVTeXN0ZW1QYXRoKCkpOwogICAgIH0KIAogICAgIHJldHVybiBmaWxlUGF0aHM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA5OTA3N2I1MDM3ZDVhY2Jl
NzYzMGMxMGUwNWI3M2NhOTI3YWQyMmQ2Li44OWIxZWJmYzIzMWYwYjcyMmQzMDExOGM5MDZhOTY5
NDhjOGE4ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAg
LTE4NSwyMCArMTg1LDIwIEBAIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VD
b25maWd1cmF0aW9uKFdLUGFnZVJlZiBwYWdlUmVmKQogdm9pZCBXS1BhZ2VMb2FkVVJMKFdLUGFn
ZVJlZiBwYWdlUmVmLCBXS1VSTFJlZiBVUkxSZWYpCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVE
OwotICAgIHRvSW1wbChwYWdlUmVmKS0+bG9hZFJlcXVlc3QoVVJMKFVSTCgpLCB0b1dURlN0cmlu
ZyhVUkxSZWYpKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkUmVxdWVzdChVUkwgeyB0b1dU
RlN0cmluZyhVUkxSZWYpIH0pOwogfQogCiB2b2lkIFdLUGFnZUxvYWRVUkxXaXRoU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYgVVJMUmVmLCBi
b29sIHNob3VsZE9wZW5FeHRlcm5hbFVSTHMpCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwog
ICAgIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHMgPyBXZWJDb3JlOjpTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyA6IFdlYkNvcmU6OlNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93OwotICAgIHRvSW1wbChwYWdlUmVmKS0+
bG9hZFJlcXVlc3QoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhVUkxSZWYpKSwgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkUmVxdWVzdChVUkwg
eyB0b1dURlN0cmluZyhVUkxSZWYpIH0sIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwog
fQogCiB2b2lkIFdLUGFnZUxvYWRVUkxXaXRoVXNlckRhdGEoV0tQYWdlUmVmIHBhZ2VSZWYsIFdL
VVJMUmVmIFVSTFJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhUmVmKQogewogICAgIENSQVNIX0lGX1NV
U1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRSZXF1ZXN0KFVSTChVUkwoKSwgdG9X
VEZTdHJpbmcoVVJMUmVmKSksIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93LCB0b0ltcGwodXNlckRhdGFSZWYpKTsKKyAgICB0b0ltcGwocGFnZVJl
ZiktPmxvYWRSZXF1ZXN0KFVSTCB7IHRvV1RGU3RyaW5nKFVSTFJlZikgfSwgV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3csIHRvSW1wbCh1c2VyRGF0
YVJlZikpOwogfQogCiB2b2lkIFdLUGFnZUxvYWRVUkxSZXF1ZXN0KFdLUGFnZVJlZiBwYWdlUmVm
LCBXS1VSTFJlcXVlc3RSZWYgdXJsUmVxdWVzdFJlZikKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lk
IFdLUGFnZUxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aFVzZXJEYXRhKFdLUGFnZVJlZiBwYWdl
UmVmLCBXS1N0cmluZ1JlZiBodAogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKICAgICBTdHJp
bmcgc3RyaW5nID0gdG9XVEZTdHJpbmcoaHRtbFN0cmluZ1JlZik7Ci0gICAgdG9JbXBsKHBhZ2VS
ZWYpLT5sb2FkQWx0ZXJuYXRlSFRNTChkYXRhRnJvbShzdHJpbmcpLCBlbmNvZGluZ09mKHN0cmlu
ZyksIFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoYmFzZVVSTFJlZikpLCBVUkwoVVJMKCksIHRvV1RG
U3RyaW5nKHVucmVhY2hhYmxlVVJMUmVmKSksIHRvSW1wbCh1c2VyRGF0YVJlZikpOworICAgIHRv
SW1wbChwYWdlUmVmKS0+bG9hZEFsdGVybmF0ZUhUTUwoZGF0YUZyb20oc3RyaW5nKSwgZW5jb2Rp
bmdPZihzdHJpbmcpLCBVUkwgeyB0b1dURlN0cmluZyhiYXNlVVJMUmVmKSB9LCBVUkwgeyB0b1dU
RlN0cmluZyh1bnJlYWNoYWJsZVVSTFJlZikgfSwgdG9JbXBsKHVzZXJEYXRhUmVmKSk7CiB9CiAK
IHZvaWQgV0tQYWdlTG9hZFBsYWluVGV4dFN0cmluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgV0tTdHJp
bmdSZWYgcGxhaW5UZXh0U3RyaW5nUmVmKQpAQCAtMzA3OSw3ICszMDc5LDcgQEAgdm9pZCBXS1Bh
Z2VTaW11bGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50U2Vzc2lvblJlc3RhcnQoV0tQYWdlUmVm
IHBhZ2VSZWYsIFdLUGEKIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tl
blB1YmxpY0tleVVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVmIFVSTFJl
ZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRl
c3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewogICAgIENS
QVNIX0lGX1NVU1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJp
bmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBs
KHBhZ2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9y
VGVzdGluZyhVUkwgeyB0b1dURlN0cmluZyhVUkxSZWYpIH0sIFtjYWxsYmFja0NvbnRleHQsIGNh
bGxiYWNrXSAoKSB7CiAgICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CiAgICAgfSk7
CiB9CkBAIC0zMDg3LDcgKzMwODcsNyBAQCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlUgogdm9pZCBX
S1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
ZyhXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYgVVJMUmVmLCBXS1BhZ2VTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNr
LCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwotICAg
IHRvSW1wbChwYWdlUmVmKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVVSTEZvclRlc3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhVUkxSZWYpKSwgW2NhbGxiYWNr
Q29udGV4dCwgY2FsbGJhY2tdICgpIHsKKyAgICB0b0ltcGwocGFnZVJlZiktPnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFVSTCB7IHRvV1RGU3Ry
aW5nKFVSTFJlZikgfSwgW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKICAgICAgICAg
Y2FsbGJhY2soY2FsbGJhY2tDb250ZXh0KTsKICAgICB9KTsKIH0KQEAgLTMwOTUsNyArMzA5NSw3
IEBAIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVS
TEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2VSCiB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZVJl
ZiwgV0tVUkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCwgV0tQYWdlU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nRnVu
Y3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKICAgICBDUkFTSF9JRl9T
VVNQRU5ERUQ7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhz
b3VyY2VVUkwpKSwgVVJMKFVSTCgpLCB0b1dURlN0cmluZyhkZXN0aW5hdGlvblVSTCkpLCBbY2Fs
bGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgeworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKFVSTCB7
IHRvV1RGU3RyaW5nKHNvdXJjZVVSTCkgfSwgVVJMIHsgdG9XVEZTdHJpbmcoZGVzdGluYXRpb25V
UkwpIH0sIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CiAgICAgICAgIGNhbGxiYWNr
KGNhbGxiYWNrQ29udGV4dCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKaW5kZXggNjUxNGVlODZkZTNhODQxNDQ4MzdkZjYyZmMx
MDEzZDIzY2FhMzVhOS4uY2JjY2IzZjgwN2VkN2ExOTYwY2UwMTYzMDIzZWFlZjJhMTBhZjhkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcApAQCAt
NzcsNyArNzcsNyBAQCB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3Jv
dXBSZWYgcGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyYwogICAgIGF1dG8gYWxsb3dsaXN0
ID0gdG9JbXBsKGFsbG93ZWRVUkxQYXR0ZXJucyk7CiAgICAgYXV0byBibG9ja2xpc3QgPSB0b0lt
cGwoYmxvY2tlZFVSTFBhdHRlcm5zKTsKIAotICAgIFJlZjxBUEk6OlVzZXJTdHlsZVNoZWV0PiB1
c2VyU3R5bGVTaGVldCA9IEFQSTo6VXNlclN0eWxlU2hlZXQ6OmNyZWF0ZShXZWJDb3JlOjpVc2Vy
U3R5bGVTaGVldCB7IHNvdXJjZSwgKGJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpID8gYWJvdXRCbGFu
a1VSTCgpIDogIFVSTChVUkwoKSwgYmFzZVVSTFN0cmluZykpLCBhbGxvd2xpc3QgPyBhbGxvd2xp
c3QtPnRvU3RyaW5nVmVjdG9yKCkgOiBWZWN0b3I8U3RyaW5nPigpLCBibG9ja2xpc3QgPyBibG9j
a2xpc3QtPnRvU3RyaW5nVmVjdG9yKCkgOiBWZWN0b3I8U3RyaW5nPigpLCB0b1VzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXMoaW5qZWN0ZWRGcmFtZXMpLCBXZWJDb3JlOjpVc2VyU3R5bGVVc2VyTGV2
ZWwgfSwgQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQoKSk7CisgICAgUmVmPEFQ
STo6VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHlsZVNoZWV0ID0gQVBJOjpVc2VyU3R5bGVTaGVldDo6
Y3JlYXRlKFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0IHsgc291cmNlLCBiYXNlVVJMU3RyaW5nLmlz
RW1wdHkoKSA/IGFib3V0QmxhbmtVUkwoKSA6ICBVUkwgeyBiYXNlVVJMU3RyaW5nIH0sIGFsbG93
bGlzdCA/IGFsbG93bGlzdC0+dG9TdHJpbmdWZWN0b3IoKSA6IFZlY3RvcjxTdHJpbmc+KCksIGJs
b2NrbGlzdCA/IGJsb2NrbGlzdC0+dG9TdHJpbmdWZWN0b3IoKSA6IFZlY3RvcjxTdHJpbmc+KCks
IHRvVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyhpbmplY3RlZEZyYW1lcyksIFdlYkNvcmU6OlVz
ZXJTdHlsZVVzZXJMZXZlbCB9LCBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3JsZCgp
KTsKIAogICAgIHRvSW1wbChwYWdlR3JvdXBSZWYpLT51c2VyQ29udGVudENvbnRyb2xsZXIoKS5h
ZGRVc2VyU3R5bGVTaGVldCh1c2VyU3R5bGVTaGVldC5nZXQoKSk7CiB9CkBAIC05OCw3ICs5OCw3
IEBAIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU2NyaXB0KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cFJlZiwgV0tTdHJpbmdSZWYgc291cmNlUmVmCiAgICAgYXV0byBhbGxvd2xpc3QgPSB0b0ltcGwo
YWxsb3dlZFVSTFBhdHRlcm5zKTsKICAgICBhdXRvIGJsb2NrbGlzdCA9IHRvSW1wbChibG9ja2Vk
VVJMUGF0dGVybnMpOwogICAgIAotICAgIGF1dG8gdXJsID0gYmFzZVVSTFN0cmluZy5pc0VtcHR5
KCkgPyBhYm91dEJsYW5rVVJMKCkgOiAgVVJMKFVSTCgpLCBiYXNlVVJMU3RyaW5nKTsKKyAgICBh
dXRvIHVybCA9IGJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpID8gYWJvdXRCbGFua1VSTCgpIDogVVJM
IHsgYmFzZVVSTFN0cmluZyB9OwogICAgIFJlZjxBUEk6OlVzZXJTY3JpcHQ+IHVzZXJTY3JpcHQg
PSBBUEk6OlVzZXJTY3JpcHQ6OmNyZWF0ZShXZWJDb3JlOjpVc2VyU2NyaXB0IHsgV1RGTW92ZShz
b3VyY2UpLCBXVEZNb3ZlKHVybCksIGFsbG93bGlzdCA/IGFsbG93bGlzdC0+dG9TdHJpbmdWZWN0
b3IoKSA6IFZlY3RvcjxTdHJpbmc+KCksIGJsb2NrbGlzdCA/IGJsb2NrbGlzdC0+dG9TdHJpbmdW
ZWN0b3IoKSA6IFZlY3RvcjxTdHJpbmc+KCksIHRvVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5q
ZWN0aW9uVGltZSksIHRvVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyhpbmplY3RlZEZyYW1lcyks
IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sIEFQSTo6
Q29udGVudFdvcmxkOjpwYWdlQ29udGVudFdvcmxkKCkpOwogICAgIHRvSW1wbChwYWdlR3JvdXBS
ZWYpLT51c2VyQ29udGVudENvbnRyb2xsZXIoKS5hZGRVc2VyU2NyaXB0KHVzZXJTY3JpcHQuZ2V0
KCksIEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseTo6Tm8pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5k
ZXggOGRmYTg4YzY2MzRlZTAwZjAyMzlkODVlOGI1MDVkOWQ5NWExM2Q5OC4uYThlYWQzMDllZGI5
MzU0YTI1MWViMjc2MTUxODQyMTMyMmVlYzlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC0xODUsNyAr
MTg1LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGVidWdNb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyKFcKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQq
IGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWJ1Z01vZGVGdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJp
bmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgIFdlYktpdDo6dG9JbXBs
KGRhdGFTdG9yZVJlZiktPnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFVSTCB7IFdl
YktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRs
ZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CiAjZWxz
ZQpAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLCiB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0TGFzdFNlZW4oVVJMKFVS
TCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBTZWNvbmRzIHsgc2Vjb25kcyB9
LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5zZXRMYXN0U2VlbihVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5n
KCkgfSwgU2Vjb25kcyB7IHNlY29uZHMgfSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAg
LTIwNiw3ICsyMDYsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0
U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLAogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMoV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21h
aW4xLCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIsIGRvdWJsZSBsYXN0U2VlbiwgYm9vbCBo
YWRVc2VySW50ZXJhY3Rpb24sIGRvdWJsZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29s
IGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQs
IHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc01lcmdlU3RhdGlzdGljRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2Vi
S2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFVSTChV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6
OnRvSW1wbCh0b3BGcmFtZURvbWFpbjEpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0
b0ltcGwodG9wRnJhbWVEb21haW4yKS0+c3RyaW5nKCkpLCBTZWNvbmRzIHsgbGFzdFNlZW4gfSwg
aGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIHsgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiB9
LCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNv
cmRzUmVtb3ZlZCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgV2ViS2l0Ojp0
b0ltcGwoZGF0YVN0b3JlUmVmKS0+bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFVSTCB7IFdlYktp
dDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBVUkwgeyBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFt
ZURvbWFpbjEpLT5zdHJpbmcoKSB9LCBVUkwgeyBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZURvbWFp
bjIpLT5zdHJpbmcoKSB9LCBTZWNvbmRzIHsgbGFzdFNlZW4gfSwgaGFkVXNlckludGVyYWN0aW9u
LCBTZWNvbmRzIHsgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiB9LCBpc0dyYW5kZmF0aGVyZWQs
IGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgW2NvbnRl
eHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRl
eHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0bwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzRXhwaXJlZFN0YXRp
c3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0
LCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVy
YWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wg
aXNQcmV2YWxlbnQsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpY0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFT
dG9yZVJlZiktPmluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFVSTChVUkwoKSwgV2Vi
S2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2Vk
LCBoYWRVc2VySW50ZXJhY3Rpb24sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92
YWwsIGlzUHJldmFsZW50LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICBXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGlu
ZyhVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgbnVtYmVyT2ZPcGVyYXRp
bmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29v
a2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJd
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpA
QCAtMjMxLDExICsyMzEsMTEgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGEKICAgICBhdXRvJiB3
ZWJzaXRlRGF0YVN0b3JlID0gKldlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZik7CiAKICAgICBp
ZiAodmFsdWUpCi0gICAgICAgIHdlYnNpdGVEYXRhU3RvcmUuc2V0UHJldmFsZW50UmVzb3VyY2Uo
VVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29t
cGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS5zZXRQcmV2YWxlbnRS
ZXNvdXJjZShVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQs
IGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250
ZXh0KTsKICAgICAgICAgfSk7CiAgICAgZWxzZQotICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlLmNs
ZWFyUHJldmFsZW50UmVzb3VyY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3Ry
aW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgd2Vic2l0ZURh
dGFTdG9yZS5jbGVhclByZXZhbGVudFJlc291cmNlKFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3Qp
LT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgICAgICB9KTsKICNlbHNlCkBAIC0yNDks
MTEgKzI0OSwxMSBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NWZXJ5UHJl
dmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmCiAgICAgYXV0byYgd2Vic2l0ZURh
dGFTdG9yZSA9ICpXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVl
KQotICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlLnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0
aW9uSGFuZGxlcl0geworICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlLnNldFZlcnlQcmV2YWxlbnRS
ZXNvdXJjZShVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQs
IGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250
ZXh0KTsKICAgICAgICAgfSk7CiAgICAgZWxzZQotICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlLmNs
ZWFyUHJldmFsZW50UmVzb3VyY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3Ry
aW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgd2Vic2l0ZURh
dGFTdG9yZS5jbGVhclByZXZhbGVudFJlc291cmNlKFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3Qp
LT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgICAgICB9KTsKICNlbHNlCkBAIC0yNzUs
NyArMjc1LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVEdW1wUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3IKIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGdW5jdGlvbiBjYWxsYmFjaykKIHsK
ICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6
OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc1ByZXZhbGVudFJlc291cmNlKFVSTChVUkwoKSwgV2Vi
S2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlz
UHJldmFsZW50UmVzb3VyY2UpIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5p
c1ByZXZhbGVudFJlc291cmNlKFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9
LCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNQcmV2YWxlbnRSZXNvdXJjZSkgewogICAgICAg
ICBjYWxsYmFjayhpc1ByZXZhbGVudFJlc291cmNlLCBjb250ZXh0KTsKICAgICB9KTsKICNlbHNl
CkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVMKIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRnVuY3Rpb24g
Y2FsbGJhY2spCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
Ci0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwg
Y2FsbGJhY2tdKGJvb2wgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UpIHsKKyAgICBXZWJLaXQ6OnRv
SW1wbChkYXRhU3RvcmVSZWYpLT5pc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShVUkwgeyBXZWJLaXQ6
OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlzVmVy
eVByZXZhbGVudFJlc291cmNlKSB7CiAgICAgICAgIGNhbGxiYWNrKGlzVmVyeVByZXZhbGVudFJl
c291cmNlLCBjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGQKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJyZXNvdXJjZUhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1l
SG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZ1bmN0aW9uIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFT
dG9yZVJlZiktPmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKHN1YnJlc291cmNlSG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6
OnRvSW1wbCh0b3BGcmFtZUhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjYWxsYmFja10oYm9v
bCBpc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIpIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5pc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoVVJMIHsgV2ViS2l0
Ojp0b0ltcGwoc3VicmVzb3VyY2VIb3N0KS0+c3RyaW5nKCkgfSwgVVJMIHsgV2ViS2l0Ojp0b0lt
cGwodG9wRnJhbWVIb3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlz
UmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcikgewogICAgICAgICBjYWxsYmFjayhpc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXIsIGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTMw
OCw3ICszMDgsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1N1YnJlc291cmNlVW5kZXIoV0tXZWJzaXRlRGF0YVN0bwogdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIHN1YkZyYW1lSG9zdCwgV0tTdHJpbmdS
ZWYgdG9wRnJhbWVIb3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyRnVuY3Rpb24gY2FsbGJhY2spCiB7CiAjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFVSTChVUkwoKSwg
V2ViS2l0Ojp0b0ltcGwoc3ViRnJhbWVIb3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKHRvcEZyYW1lSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShi
b29sIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcikgeworICAgIFdlYktpdDo6dG9JbXBsKGRh
dGFTdG9yZVJlZiktPmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihVUkwgeyBXZWJLaXQ6OnRv
SW1wbChzdWJGcmFtZUhvc3QpLT5zdHJpbmcoKSB9LCBVUkwgeyBXZWJLaXQ6OnRvSW1wbCh0b3BG
cmFtZUhvc3QpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKSB7CiAgICAgICAgIGNhbGxiYWNrKGlzUmVnaXN0ZXJlZEFzU3Vi
RnJhbWVVbmRlciwgY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtMzE5LDcgKzMxOSw3IEBA
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcihXS1dlYnNpdGVEYXRhU3RvcmVSCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRGcm9tLCBXS1N0cmluZ1JlZiBob3N0
UmVkaXJlY3RlZFRvLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvRnVuY3Rpb24gY2FsbGJhY2spCiB7CiAjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFVSTChVUkwoKSwgV2Vi
S2l0Ojp0b0ltcGwoaG9zdFJlZGlyZWN0ZWRGcm9tKS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdl
YktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkVG8pLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjYWxs
YmFja10oYm9vbCBpc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8pIHsKKyAgICBXZWJLaXQ6OnRv
SW1wbChkYXRhU3RvcmVSZWYpLT5pc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oVVJMIHsgV2Vi
S2l0Ojp0b0ltcGwoaG9zdFJlZGlyZWN0ZWRGcm9tKS0+c3RyaW5nKCkgfSwgVVJMIHsgV2ViS2l0
Ojp0b0ltcGwoaG9zdFJlZGlyZWN0ZWRUbyktPnN0cmluZygpIH0sIFtjb250ZXh0LCBjYWxsYmFj
a10oYm9vbCBpc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8pIHsKICAgICAgICAgY2FsbGJhY2so
aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvLCBjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBA
IC0zMzMsMTEgKzMzMywxMSBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmCiAgICAgYXV0byYgZGF0
YVN0b3JlID0gKldlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZik7CiAKICAgICBpZiAodmFsdWUp
Ci0gICAgICAgIGRhdGFTdG9yZS5sb2dVc2VySW50ZXJhY3Rpb24oVVJMKFVSTCgpLCBXZWJLaXQ6
OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsK
KyAgICAgICAgZGF0YVN0b3JlLmxvZ1VzZXJJbnRlcmFjdGlvbihVUkwgeyBXZWJLaXQ6OnRvSW1w
bChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICAgICAgfSk7CiAgICAgZWxz
ZQotICAgICAgICBkYXRhU3RvcmUuY2xlYXJVc2VySW50ZXJhY3Rpb24oVVJMKFVSTCgpLCBXZWJL
aXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJd
IHsKKyAgICAgICAgZGF0YVN0b3JlLmNsZWFyVXNlckludGVyYWN0aW9uKFVSTCB7IFdlYktpdDo6
dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgICAgICB9KTsKICNl
bHNlCkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZgogdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4
dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uRnVu
Y3Rpb24gY2FsbGJhY2spCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aGFzSGFkVXNlckludGVy
YWN0aW9uKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRl
eHQsIGNhbGxiYWNrXShib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbikgeworICAgIFdlYktpdDo6
dG9JbXBsKGRhdGFTdG9yZVJlZiktPmhhc0hhZFVzZXJJbnRlcmFjdGlvbihVUkwgeyBXZWJLaXQ6
OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGhhc0hh
ZFVzZXJJbnRlcmFjdGlvbikgewogICAgICAgICBjYWxsYmFjayhoYXNIYWRVc2VySW50ZXJhY3Rp
b24sIGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTM1OSw3ICszNTksNyBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5
SW5EYXRhYmFzZU9uY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJp
bmdSZWYgc3ViSG9zdCwgV0tTdHJpbmdSZWYgdG9wSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlRnVuY3Rpb24gY2FsbGJh
Y2spCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAg
V2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFz
ZU9uY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChzdWJIb3N0KS0+c3RyaW5nKCkpLCBVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjYWxs
YmFja10oYm9vbCBvbmx5SW5EYXRhYmFzZU9uY2UpIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShVUkwgeyBXZWJLaXQ6
OnRvSW1wbChzdWJIb3N0KS0+c3RyaW5nKCkgfSwgVVJMIHsgV2ViS2l0Ojp0b0ltcGwodG9wSG9z
dCktPnN0cmluZygpIH0sIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBvbmx5SW5EYXRhYmFzZU9u
Y2UpIHsKICAgICAgICAgY2FsbGJhY2sob25seUluRGF0YWJhc2VPbmNlLCBjb250ZXh0KTsKICAg
ICB9KTsKICNlbHNlCkBAIC0zNzAsMTQgKzM3MCwxNCBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YQogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZh
bHVlKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAg
IFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldEdyYW5kZmF0aGVyZWQoVVJMKFVSTCgp
LCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCB2YWx1ZSwgW10geyB9KTsKKyAgICBX
ZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRHcmFuZGZhdGhlcmVkKFVSTCB7IFdlYktp
dDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSB9LCB2YWx1ZSwgW10geyB9KTsKICNlbmRpZgogfQog
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZEZ1bmN0aW9u
IGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzR3JhbmRmYXRoZXJlZChVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjYWxsYmFj
a10oYm9vbCBpc0dyYW5kZmF0aGVyZWQpIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT5pc0dyYW5kZmF0aGVyZWQoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygp
IH0sIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBpc0dyYW5kZmF0aGVyZWQpIHsKICAgICAgICAg
Y2FsbGJhY2soaXNHcmFuZGZhdGhlcmVkLCBjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC0z
ODgsNDkgKzM4OCw0OSBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5k
ZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVm
IHRvcEZyYW1lSG9zdCkKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRTdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW4oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkp
LCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lSG9zdCktPnN0cmluZygpKSwgW10g
eyB9KTsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRTdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW4oVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFVS
TCB7IFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lSG9zdCktPnN0cmluZygpIH0sIFtdIHsgfSk7CiAj
ZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYs
IFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCkKIHsKICNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5zZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oVVJMKFVSTCgp
LCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKHRvcEZyYW1lSG9zdCktPnN0cmluZygpKSwgW10geyB9KTsKKyAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5zZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oVVJMIHsg
V2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKHRv
cEZyYW1lSG9zdCktPnN0cmluZygpIH0sIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3Ry
aW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0U3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCkt
PnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZFRvKS0+
c3RyaW5nKCkpLCBbXSB7IH0pOworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNl
dFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+
c3RyaW5nKCkgfSwgVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdFJlZGlyZWN0ZWRUbyktPnN0cmlu
ZygpIH0sIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGly
ZWN0ZWRGcm9tKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RGcm9tKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwg
VVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZEZyb20pLT5zdHJpbmcoKSks
IFtdIHsgfSk7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0U3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdEZyb20oVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygp
IH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkRnJvbSktPnN0cmluZygpIH0s
IFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pCiB7
CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0
Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFVSTChV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6
OnRvSW1wbChob3N0UmVkaXJlY3RlZFRvKS0+c3RyaW5nKCkpLCBbXSB7IH0pOworICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhVUkwg
eyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkgfSwgVVJMIHsgV2ViS2l0Ojp0b0ltcGwo
aG9zdFJlZGlyZWN0ZWRUbyktPnN0cmluZygpIH0sIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZy
b20oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwg
V0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRGcm9tKQogewogI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwo
aG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3Rl
ZEZyb20pLT5zdHJpbmcoKSksIFtdIHsgfSk7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3Jl
UmVmKS0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oVVJMIHsgV2ViS2l0Ojp0b0ltcGwo
aG9zdCktPnN0cmluZygpIH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkRnJv
bSktPnN0cmluZygpIH0sIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRTdGF0aXN0aWNzQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBmcm9tSG9zdCwgV0tTdHJp
bmdSZWYgdG9Ib3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZ1bmN0aW9uIGNhbGxiYWNrKQogewog
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYktpdDo6
dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25G
b3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoZnJvbUhvc3QpLT5zdHJpbmcoKSks
IFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9Ib3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwg
Y2FsbGJhY2tdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRDcm9zc1Np
dGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhVUkwgeyBXZWJLaXQ6OnRvSW1wbChm
cm9tSG9zdCktPnN0cmluZygpIH0sIFVSTCB7IFdlYktpdDo6dG9JbXBsKHRvSG9zdCktPnN0cmlu
ZygpIH0sIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsK
ICAgICB9KTsKICNlbHNlCkBAIC01NTcsNyArNTU3LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVTdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFT
dG8KIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0
aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3Qs
IGJvb2wgaW5jbHVkZUh0dHBPbmx5Q29va2llcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2sp
CiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2Vi
S2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+ZGVsZXRlQ29va2llc0ZvclRlc3RpbmcoVVJMKFVS
TCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBpbmNsdWRlSHR0cE9ubHlDb29r
aWVzLCBbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT5kZWxldGVDb29raWVzRm9yVGVzdGluZyhVUkwgeyBXZWJLaXQ6OnRvSW1wbChob3N0KS0+
c3RyaW5nKCkgfSwgaW5jbHVkZUh0dHBPbmx5Q29va2llcywgW2NvbnRleHQsIGNhbGxiYWNrXSB7
CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwogI2Vsc2UKQEAgLTU2OCw3ICs1
NjgsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9y
VGVzdGluZyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
dGF0aXN0aWNzSGFzTG9jYWxTdG9yYWdlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVS
ZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0
YXRpc3RpY3NIYXNMb2NhbFN0b3JhZ2VGdW5jdGlvbiBjYWxsYmFjaykKIHsKICNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5oYXNMb2NhbFN0b3JhZ2VGb3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0Ojp0
b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGhhc0xvY2Fs
U3RvcmFnZSkgeworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmhhc0xvY2FsU3Rv
cmFnZUZvclRlc3RpbmcoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpIH0sIFtj
b250ZXh0LCBjYWxsYmFja10oYm9vbCBoYXNMb2NhbFN0b3JhZ2UpIHsKICAgICAgICAgY2FsbGJh
Y2soaGFzTG9jYWxTdG9yYWdlLCBjb250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC01OTAsNyAr
NTkwLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VD
YXAoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG8KIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc0hhc0lzb2xhdGVkU2Vzc2lvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3Rv
cmVTdGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNzaW9uRnVuY3Rpb24gY2FsbGJhY2spCiB7CiAjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+aGFzSXNvbGF0ZWRTZXNzaW9uRm9yVGVzdGluZyhVUkwoVVJMKCks
IFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjYWxsYmFja10oYm9v
bCBoYXNJc29sYXRlZFNlc3Npb24pIHsKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYp
LT5oYXNJc29sYXRlZFNlc3Npb25Gb3JUZXN0aW5nKFVSTCB7IFdlYktpdDo6dG9JbXBsKGhvc3Qp
LT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSXNvbGF0ZWRTZXNzaW9u
KSB7CiAgICAgICAgIGNhbGxiYWNrKGhhc0lzb2xhdGVkU2Vzc2lvbiwgY29udGV4dCk7CiAgICAg
fSk7CiAjZWxzZQpAQCAtNjQ2LDcgKzY0Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlCiB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVTaXRl
U3RyaWN0Q29va2llc0ZvclRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdE5hbWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3Rp
bmdGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5n
KFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdE5hbWUpLT5zdHJpbmcoKSksIFtjb250ZXh0
LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3Rp
bmcoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoaG9zdE5hbWUpLT5zdHJpbmcoKSB9LCBbY29udGV4dCwg
Y29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7
CiAgICAgfSk7CiAjZWxzZQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVz
dGluCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJz
dFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBmaXJzdFBhcnR5VVJMU3RyaW5nLCBXS1N0cmluZ1JlZiBj
bmFtZVVSTFN0cmluZywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nKFVSTChV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwoZmlyc3RQYXJ0eVVSTFN0cmluZyktPnN0cmluZygpKSwgVVJM
KFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChjbmFtZVVSTFN0cmluZyktPnN0cmluZygpKSwgW2NvbnRl
eHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVm
KS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JU
ZXN0aW5nKFVSTCB7IFdlYktpdDo6dG9JbXBsKGZpcnN0UGFydHlVUkxTdHJpbmcpLT5zdHJpbmco
KSB9LCBVUkwgeyBXZWJLaXQ6OnRvSW1wbChjbmFtZVVSTFN0cmluZyktPnN0cmluZygpIH0sIFtj
b250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihj
b250ZXh0KTsKICAgICB9KTsKICNlbHNlCkBAIC02NjgsNyArNjY4LDcgQEAgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURv
bWFpbkZvclRlc3QKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgY25hbWVVUkxTdHJpbmcsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Q05B
TUVEb21haW5Gb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURv
bWFpbkZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChjbmFtZVVSTFN0cmluZykt
PnN0cmluZygpKSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgV2ViS2l0Ojp0
b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlD
TkFNRURvbWFpbkZvclRlc3RpbmcoVVJMIHsgV2ViS2l0Ojp0b0ltcGwoY25hbWVVUkxTdHJpbmcp
LT5zdHJpbmcoKSB9LCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CiAjZWxzZQpAQCAtNjg4LDcgKzY4OCw3
IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0QXBwQm91bmREb21haW5zRm9yVGVzdGluZyhX
S0FycmF5UmVmIG9yaWdpblVSTHNSZWYsIHZvCiAgICAgICAgIGlmICghb3JpZ2luVVJMKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBkb21haW5zLmFkZChXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTChVUkwoKSwgb3JpZ2luVVJMLT5zdHJpbmcoKSkgfSk7
CisgICAgICAgIGRvbWFpbnMuYWRkKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgVVJMIHsg
b3JpZ2luVVJMLT5zdHJpbmcoKSB9IH0pOwogICAgIH0KIAogICAgIFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6c2V0QXBwQm91bmREb21haW5zRm9yVGVzdGluZyhXVEZNb3ZlKGRvbWFpbnMpLCBb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tXZWJzaXRlRGF0YVN0b3JlUmVmQ3VybC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLV2Vic2l0ZURhdGFTdG9yZVJlZkN1cmwu
Y3BwCmluZGV4IDZiZDA0ZjE0MmZjOGI2Mjk3ZDNhMDllMzQ2ODRiZGVkNjAxMWFhMmQuLjdjMjE5
OTFiZGEzNTg4YTBkODVhYmM2YzcwOGQ3YmRjNGU5OGI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tXZWJzaXRlRGF0YVN0b3JlUmVmQ3VybC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWZDdXJsLmNwcApAQCAtNDEsNyArNDEsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUVu
YWJsZURlZmF1bHROZXR3b3JrUHJveHlTZXR0aW5ncyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZAog
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUVuYWJsZUN1c3RvbU5ldHdvcmtQcm94eVNldHRpbmdz
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLVVJMUmVmIHByb3h5VXJsLCBX
S1N0cmluZ1JlZiBpZ25vcmVIb3N0cykKIHsKLSAgICB0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0
TmV0d29ya1Byb3h5U2V0dGluZ3MoV2ViQ29yZTo6Q3VybFByb3h5U2V0dGluZ3MoVVJMKFVSTCgp
LCB0b1dURlN0cmluZyhwcm94eVVybCkpLCB0b1dURlN0cmluZyhpZ25vcmVIb3N0cykpKTsKKyAg
ICB0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0TmV0d29ya1Byb3h5U2V0dGluZ3MoV2ViQ29yZTo6
Q3VybFByb3h5U2V0dGluZ3MoVVJMIHsgdG9XVEZTdHJpbmcocHJveHlVcmwpIH0sIHRvV1RGU3Ry
aW5nKGlnbm9yZUhvc3RzKSkpOwogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZURpc2FibGVO
ZXR3b3JrUHJveHlTZXR0aW5ncyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0KaW5kZXggZWFhMmFkNjIxNDQ2NDI5M2NjOTQ3ZmYyYTE1MmU1ZTk2YmYwNWYz
Yi4uOGVlZWQyYzgyNWJjMmQ3YmVhODMxMjM0NzJiNzAyMmU5YmE1MTJjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCkBAIC03OSw4ICs3OSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihxdW90YSk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIFVSTCBtYWluRnJhbWVVUkwgeyBV
UkwoKSwgdG9wT3JpZ2luLnRvU3RyaW5nKCkgfTsKLSAgICAgICAgVVJMIGZyYW1lVVJMIHsgVVJM
KCksIGZyYW1lT3JpZ2luLnRvU3RyaW5nKCkgfTsKKyAgICAgICAgVVJMIG1haW5GcmFtZVVSTCB7
IHRvcE9yaWdpbi50b1N0cmluZygpIH07CisgICAgICAgIFVSTCBmcmFtZVVSTCB7IGZyYW1lT3Jp
Z2luLnRvU3RyaW5nKCkgfTsKIAogICAgICAgICBbbV9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQo
KSByZXF1ZXN0U3RvcmFnZVNwYWNlOm1haW5GcmFtZVVSTCBmcmFtZU9yaWdpbjpmcmFtZVVSTCBx
dW90YTpxdW90YSBjdXJyZW50U2l6ZTpjdXJyZW50U2l6ZSBzcGFjZVJlcXVpcmVkOnNwYWNlUmVx
dWlyZWQgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVN
YW5hZ2VyLmNwcAppbmRleCBmZmYzOGM0ZDZkNDg1ZDQ3NWJiNjE1YzU1M2M3ZDcwMWJlYzk4NjEz
Li4wODYyNTNiMmIxZGNhYzU0MGY2NTY4YTg3YzEzYmYzZTAxMWNlOTJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2Vy
LmNwcApAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgd2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2dldF9j
b29raWVzKFdlYktpdENvb2tpZU1hbmFnZXIqIG1hbmFnZXIsIGNvbnN0IGdjaGFyCiAgICAgZ19y
ZXR1cm5faWZfZmFpbCh1cmkpOwogCiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1Jl
ZihnX3Rhc2tfbmV3KG1hbmFnZXIsIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsK
LSAgICBtYW5hZ2VyLT5wcml2LT5jb29raWVNYW5hZ2VyKCkuZ2V0Q29va2llcyhtYW5hZ2VyLT5w
cml2LT5zZXNzaW9uSUQoKSwgVVJMKFVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpLCBbdGFz
ayA9IFdURk1vdmUodGFzayldKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiBjb29raWVz
KSB7CisgICAgbWFuYWdlci0+cHJpdi0+Y29va2llTWFuYWdlcigpLmdldENvb2tpZXMobWFuYWdl
ci0+cHJpdi0+c2Vzc2lvbklEKCksIFVSTCB7IFN0cmluZzo6ZnJvbVVURjgodXJpKSB9LCBbdGFz
ayA9IFdURk1vdmUodGFzayldKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiBjb29raWVz
KSB7CiAgICAgICAgIEdMaXN0KiBjb29raWVzTGlzdCA9IG51bGxwdHI7CiAgICAgICAgIGZvciAo
YXV0byYgY29va2llIDogY29va2llcykKICAgICAgICAgICAgIGNvb2tpZXNMaXN0ID0gZ19saXN0
X3ByZXBlbmQoY29va2llc0xpc3QsIGNvb2tpZS50b1NvdXBDb29raWUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdpbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZWN1cml0eU9yaWdp
bi5jcHAKaW5kZXggMjQwZGMyYzMxNDI3Y2U1NWQzYTg5NDk2N2U1OWU2Y2NkMzFmMWRhMi4uZDFm
MWQwYWU5ZDY4OTExNmM5ZWQ0OGFhNTg1YjQ3MjM5NTAwODkxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2VjdXJpdHlPcmlnaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNlY3VyaXR5T3JpZ2luLmNw
cApAQCAtMTEwLDcgKzExMCw3IEBAIFdlYktpdFNlY3VyaXR5T3JpZ2luKiB3ZWJraXRfc2VjdXJp
dHlfb3JpZ2luX25ld19mb3JfdXJpKGNvbnN0IGdjaGFyKiB1cmkpCiB7CiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwodXJpLCBudWxscHRyKTsKIAotICAgIHJldHVybiB3ZWJraXRTZWN1cml0eU9y
aWdpbkNyZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoVVJMKFVSTCgp
LCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKSk7CisgICAgcmV0dXJuIHdlYmtpdFNlY3VyaXR5T3Jp
Z2luQ3JlYXRlKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChVUkwgeyBTdHJp
bmc6OmZyb21VVEY4KHVyaSkgfSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggMWVjODZhM2YxNmEwOTdi
Zjg0M2RiZGFjZjhkOGViZDYyZDgxNzVhNC4uYzRlYThhOTdkMjRkY2FlMmZjMjkyNTkxZjNkNDYy
OTdiMDJhYTdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKQEAgLTMxMjAsNyArMzEyMCw3IEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X2xvYWRfYWx0ZXJuYXRlX2h0bWwoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2No
YXIqIGNvCiAgICAgZ19yZXR1cm5faWZfZmFpbChjb250ZW50KTsKICAgICBnX3JldHVybl9pZl9m
YWlsKGNvbnRlbnRVUkkpOwogCi0gICAgZ2V0UGFnZSh3ZWJWaWV3KS5sb2FkQWx0ZXJuYXRlSFRN
TCh7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGNvbnRlbnQpLCBjb250ZW50ID8g
c3RybGVuKGNvbnRlbnQpIDogMCB9LCAiVVRGLTgiX3MsIFVSTChVUkwoKSwgU3RyaW5nOjpmcm9t
VVRGOChiYXNlVVJJKSksIFVSTChVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOChjb250ZW50VVJJKSkp
OworICAgIGdldFBhZ2Uod2ViVmlldykubG9hZEFsdGVybmF0ZUhUTUwoeyByZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihjb250ZW50KSwgY29udGVudCA/IHN0cmxlbihjb250ZW50KSA6
IDAgfSwgIlVURi04Il9zLCBVUkwgeyBTdHJpbmc6OmZyb21VVEY4KGJhc2VVUkkpIH0sIFVSTCB7
IFN0cmluZzo6ZnJvbVVURjgoY29udGVudFVSSSkgfSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA2YjdiZmZiMjAz
NjY1ZjQyNWRkMjdlNmZmYjE2NGQ4YTY5MTIwY2QwLi4wZWI5N2JkODZkODMyNWFiNzUyNDZlYWIy
NWMzMzc3MjU0ZmJlZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbQpAQCAtMjcyNyw3ICsyNzI3LDcgQEAgLSAoVUlFdmVudEF0dHJpYnV0
aW9uICopX3VpRXZlbnRBdHRyaWJ1dGlvbgogICAgIGlmICghbWVhc3VyZW1lbnQpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKLSAgICBhdXRvIGRlc3RpbmF0aW9uVVJMID0gVVJMKFVSTCgpLCBtYWtl
U3RyaW5nKCJodHRwczovLyIsIG1lYXN1cmVtZW50LT5wY20uZGVzdGluYXRpb25TaXRlKCkucmVn
aXN0cmFibGVEb21haW4uc3RyaW5nKCkpKTsKKyAgICBVUkwgZGVzdGluYXRpb25VUkwgeyBtYWtl
U3RyaW5nKCJodHRwczovLyIsIG1lYXN1cmVtZW50LT5wY20uZGVzdGluYXRpb25TaXRlKCkucmVn
aXN0cmFibGVEb21haW4uc3RyaW5nKCkpIH07CiAgICAgcmV0dXJuIGFkb3B0TlMoW1tVSUV2ZW50
QXR0cmlidXRpb24gYWxsb2NdIGluaXRXaXRoU291cmNlSWRlbnRpZmllcjptZWFzdXJlbWVudC0+
cGNtLnNvdXJjZUlEKCkuaWQgZGVzdGluYXRpb25VUkw6ZGVzdGluYXRpb25VUkwgc291cmNlRGVz
Y3JpcHRpb246bWVhc3VyZW1lbnQtPnNvdXJjZURlc2NyaXB0aW9uIHB1cmNoYXNlcjptZWFzdXJl
bWVudC0+cHVyY2hhc2VyXSkuYXV0b3JlbGVhc2UoKTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggNDZkNGNjZGQxNGFhOGU1OWQ2ODUzM2IwMWJlNzk5
ZjIxNDVkMWU1MC4uN2M2M2ZmMzUyZWUyNzg5MDI5MTFmZThlYTc2OWYwMWJjM2ExNmM5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTcwNSw3ICs3MDUsNyBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChjb25zdCBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdQogICAgIGF1dG8gcGFnZUxvYWRTdHJhdGVneSA9IG9wdGlvbmFsUGFnZUxvYWRTdHJh
dGVneS52YWx1ZV9vcihkZWZhdWx0UGFnZUxvYWRTdHJhdGVneSk7CiAgICAgYXV0byBwYWdlTG9h
ZFRpbWVvdXQgPSBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNl
Y29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQ7
CiAKLSAgICBwYWdlLT5sb2FkUmVxdWVzdChVUkwoVVJMKCksIHVybCkpOworICAgIHBhZ2UtPmxv
YWRSZXF1ZXN0KFVSTCB7IHVybCB9KTsKICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
blBhZ2UoKnBhZ2UsIHBhZ2VMb2FkU3RyYXRlZ3ksIHBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCkBAIC0xNDEwLDcgKzE0MTAsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjphZGRTaW5nbGVDb29raWUoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbgogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgVVJMIGFjdGl2ZVVSTCA9IFVSTChVUkwoKSwg
cGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKTsKKyAgICBVUkwgYWN0aXZlVVJMIHsg
cGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpIH07CiAgICAgQVNTRVJUKGFjdGl2ZVVS
TC5pc1ZhbGlkKCkpOwogCiAgICAgV2ViQ29yZTo6Q29va2llIGNvb2tpZTsKQEAgLTE0ODMsNyAr
MTQ4Myw3IEBAIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gV2ViQXV0
b21hdGlvblNlc3Npb246OmRlbGV0ZUFsbENvb2tpZXMoCiAgICAgaWYgKCFwYWdlKQogICAgICAg
ICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAg
IFVSTCBhY3RpdmVVUkwgPSBVUkwoVVJMKCksIHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVV
UkwoKSk7CisgICAgVVJMIGFjdGl2ZVVSTCB7IHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVV
UkwoKSB9OwogICAgIEFTU0VSVChhY3RpdmVVUkwuaXNWYWxpZCgpKTsKIAogICAgIFN0cmluZyBo
b3N0ID0gYWN0aXZlVVJMLmhvc3QoKS50b1N0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5RG93bmxvYWRDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lEb3dubG9hZENsaWVudC5tbQppbmRleCA2NTVkODli
OGQ4MGNmZmM0MGQ5NTMyNzgxMTBlNzBkM2U2YTBlOWQ3Li4yZmViMTQxZTQ3NWEyMTBmODE2MDEz
NmY5ZGEwNmVhZDAwYWVjZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9MZWdhY3lEb3dubG9hZENsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9MZWdhY3lEb3dubG9hZENsaWVudC5tbQpAQCAtODUsNyArODUsNyBAQCB2b2lkIExl
Z2FjeURvd25sb2FkQ2xpZW50OjpsZWdhY3lEaWRTdGFydChEb3dubG9hZFByb3h5JiBkb3dubG9h
ZFByb3h5KQogICAgIGlmIChkb3dubG9hZFByb3h5LmlzU3lzdGVtUHJldmlld0Rvd25sb2FkKCkp
IHsKICAgICAgICAgaWYgKGF1dG8qIHdlYlBhZ2UgPSBkb3dubG9hZFByb3h5Lm9yaWdpbmF0aW5n
UGFnZSgpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVXBkYXRlIHRoZSBNSU1FLXR5cGUgb25j
ZSBpdCBpcyBrbm93biBpbiB0aGUgUmVzb3VyY2VSZXNwb25zZS4KLSAgICAgICAgICAgIHdlYlBh
Z2UtPnN5c3RlbVByZXZpZXdDb250cm9sbGVyKCktPnN0YXJ0KFVSTChVUkwoKSwgd2ViUGFnZS0+
Y3VycmVudFVSTCgpKSwgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJfcywgZG93bmxvYWRQcm94
eS5zeXN0ZW1QcmV2aWV3RG93bmxvYWRJbmZvKCkpOworICAgICAgICAgICAgd2ViUGFnZS0+c3lz
dGVtUHJldmlld0NvbnRyb2xsZXIoKS0+c3RhcnQoVVJMIHsgd2ViUGFnZS0+Y3VycmVudFVSTCgp
IH0sICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iX3MsIGRvd25sb2FkUHJveHkuc3lzdGVtUHJl
dmlld0Rvd25sb2FkSW5mbygpKTsKICAgICAgICAgfQogICAgICAgICB0YWtlQWN0aXZpdHlUb2tl
bihkb3dubG9hZFByb3h5KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IDhkM2E4NTY0NjJlYWVmNzQx
ZDhjMjllMjU5MmZkNTczNjZmNTk5YzguLjcyNDNlYWJmMTZhY2NmMjllY2E0YmJiNTRkZjRhMTVl
ODU5YjZiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUubW0KQEAgLTczMyw3ICs3MzMsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChXZWJQYWdlUHJveHkmCiAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFVSTCB1
cmwoVVJMKCksIHVybFN0cmluZyk7CisgICAgVVJMIHVybCB7IHVybFN0cmluZyB9OwogCiAgICAg
W3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9u
RGVsZWdhdGUpIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLT5tX3dlYlZpZXcgd2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMOnVybCBkZWxheTpkZWxheV07CiB9CkBAIC03NTAsOCArNzUw
LDggQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFBlcmZvcm1D
bGllbnRSZWRpcmVjdChXZWJQYWdlUHJveHkmIHAKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVVJMIHNvdXJjZVVSTChVUkwoKSwgc291cmNlVVJM
U3RyaW5nKTsKLSAgICBVUkwgZGVzdGluYXRpb25VUkwoVVJMKCksIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nKTsKKyAgICBVUkwgc291cmNlVVJMIHsgc291cmNlVVJMU3RyaW5nIH07CisgICAgVVJMIGRl
c3RpbmF0aW9uVVJMIHsgZGVzdGluYXRpb25VUkxTdHJpbmcgfTsKIAogICAgIFtzdGF0aWNfY2Fz
dDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlKSBf
d2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS0+bV93ZWJWaWV3IGRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZyb21VUkw6c291cmNlVVJMIHRvVVJMOmRlc3RpbmF0aW9uVVJMXTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292
ZXJ5QXR0ZW1wdGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRG
cmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KaW5kZXggMjViNTQ2NGE5M2E4MmFhOWE0NjRh
ZDQyY2MwOTFiNzZlOTk3ODZiYy4uZDc5YzIzODk4N2IyYTRhNWUyNTJhNTMzYmVmMTZhZjBhMTY2
NDE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRG
cmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KQEAgLTY3LDcg
KzY3LDcgQEAgLSAoQk9PTClhdHRlbXB0UmVjb3ZlcnkKICAgICBpZiAoIXdlYkZyYW1lUHJveHkp
CiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIHdlYkZyYW1lUHJveHktPmxvYWRVUkwoVVJMKFVS
TCgpLCBfdXJsU3RyaW5nKSk7CisgICAgd2ViRnJhbWVQcm94eS0+bG9hZFVSTChVUkwgeyBfdXJs
U3RyaW5nIH0pOwogICAgIHJldHVybiBZRVM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDU2OTZkYTM4OTg4
NTI3YzdhZTY5M2I4ZmM3MWQ2YmI1ZjRhZTg2MDQuLjhiY2ZlMTAyZmZhNjMzY2ZiNTk5ODM2MzNl
N2UyNDE2NjBiNTA1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtODEzLDcgKzgxMyw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKQogCiBib29sIFdlYlBy
b2Nlc3NQb29sOjppc1VSTEtub3duSFNUU0hvc3QoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNv
bnN0CiB7Ci0gICAgUmV0YWluUHRyPENGVVJMUmVmPiB1cmwgPSBVUkwoVVJMKCksIHVybFN0cmlu
ZykuY3JlYXRlQ0ZVUkwoKTsKKyAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHVybCA9IFVSTCB7IHVy
bFN0cmluZyB9LmNyZWF0ZUNGVVJMKCk7CiAKICAgICByZXR1cm4gX0NGTmV0d29ya0lzS25vd25I
U1RTSG9zdFdpdGhTZXNzaW9uKHVybC5nZXQoKSwgbnVsbHB0cik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVj
dG9yVUlQcm94eS5jcHAKaW5kZXggNmJmNDdiZjI1ZTcxMTBlMGJmZGRhMDhhN2MxYWE3OTM3MmUx
ZTk3YS4uZGE0MzQ0YzI1NzZiMjFkZDY2NjZhYmYyOTBhOGNlZjczMzI4ZTdjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJ
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVX
ZWJJbnNwZWN0b3JVSVByb3h5LmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFJlbW90ZVdlYklu
c3BlY3RvclVJUHJveHk6OmxvYWQoUmVmPEFQSTo6RGVidWdnYWJsZUluZm8+JiYgZGVidWdnYWJs
ZUluZm8sCiAgICAgY3JlYXRlRnJvbnRlbmRQYWdlQW5kV2luZG93KCk7CiAKICAgICBtX2luc3Bl
Y3RvclBhZ2UtPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpJbml0aWFsaXpl
KG1fZGVidWdnYWJsZUluZm8tPmRlYnVnZ2FibGVJbmZvRGF0YSgpLCBiYWNrZW5kQ29tbWFuZHNV
UkwpKTsKLSAgICBtX2luc3BlY3RvclBhZ2UtPmxvYWRSZXF1ZXN0KFVSTChVUkwoKSwgV2ViSW5z
cGVjdG9yVUlQcm94eTo6aW5zcGVjdG9yUGFnZVVSTCgpKSk7CisgICAgbV9pbnNwZWN0b3JQYWdl
LT5sb2FkUmVxdWVzdChVUkwgeyBXZWJJbnNwZWN0b3JVSVByb3h5OjppbnNwZWN0b3JQYWdlVVJM
KCkgfSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eTo6Y2xvc2VGcm9tQmFj
a2VuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKaW5kZXggY2QwZTgwNmQxMzRjYjYyYzAxNzI2ZTMwNDRh
YTc5ZWZkY2YyYjgxZS4uOTU1NmIxMjY1NTBhZjFmOGQ3ZTUxZThlYmQ0ZWFjZGY5MzhhYTZjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSVByb3h5LmNwcApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9y
VUlQcm94eTo6dG9nZ2xlRWxlbWVudFNlbGVjdGlvbigpCiBib29sIFdlYkluc3BlY3RvclVJUHJv
eHk6OmlzTWFpbk9yVGVzdEluc3BlY3RvclBhZ2UoY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgLy8g
VXNlIFVSTCBzbyB3ZSBjYW4gY29tcGFyZSB0aGUgcGF0aHMgYW5kIHByb3RvY29scy4KLSAgICBV
UkwgbWFpblBhZ2VVUkwoVVJMKCksIFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RvclBhZ2VV
UkwoKSk7CisgICAgVVJMIG1haW5QYWdlVVJMIHsgV2ViSW5zcGVjdG9yVUlQcm94eTo6aW5zcGVj
dG9yUGFnZVVSTCgpIH07CiAgICAgaWYgKHVybC5wcm90b2NvbCgpID09IG1haW5QYWdlVVJMLnBy
b3RvY29sKCkgJiYgUEFMOjpkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnBhdGgoKSkgPT0g
UEFMOjpkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMobWFpblBhZ2VVUkwucGF0aCgpKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKQEAgLTQwMyw3ICs0MDMsNyBAQCBib29sIFdlYkluc3BlY3RvclVJ
UHJveHk6OmlzTWFpbk9yVGVzdEluc3BlY3RvclBhZ2UoY29uc3QgVVJMJiB1cmwpCiAgICAgaWYg
KHRlc3RQYWdlVVJMU3RyaW5nLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBVUkwgdGVzdFBhZ2VVUkwoVVJMKCksIHRlc3RQYWdlVVJMU3RyaW5nKTsKKyAgICBVUkwgdGVz
dFBhZ2VVUkwgeyB0ZXN0UGFnZVVSTFN0cmluZyB9OwogICAgIHJldHVybiB1cmwucHJvdG9jb2wo
KSA9PSB0ZXN0UGFnZVVSTC5wcm90b2NvbCgpICYmIFBBTDo6ZGVjb2RlVVJMRXNjYXBlU2VxdWVu
Y2VzKHVybC5wYXRoKCkpID09IFBBTDo6ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHRlc3RQYWdl
VVJMLnBhdGgoKSk7CiB9CiAKQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJ
UHJveHk6Om9wZW5Mb2NhbEluc3BlY3RvckZyb250ZW5kKGJvb2wgY2FuQXR0YWNoLCBib29sIHVu
ZGVyVAogICAgIGlmICghbV9pbnNwZWN0b3JQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2luc3BlY3RvclBhZ2UtPmxvYWRSZXF1ZXN0KFVSTChVUkwoKSwgbV91bmRlclRlc3QgPyBXZWJJ
bnNwZWN0b3JVSVByb3h5OjppbnNwZWN0b3JUZXN0UGFnZVVSTCgpIDogV2ViSW5zcGVjdG9yVUlQ
cm94eTo6aW5zcGVjdG9yUGFnZVVSTCgpKSk7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5sb2FkUmVx
dWVzdChVUkwgeyBtX3VuZGVyVGVzdCA/IFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RvclRl
c3RQYWdlVVJMKCkgOiBXZWJJbnNwZWN0b3JVSVByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkgfSk7
CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6b3BlbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclVJUHJv
eHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVX
ZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAppbmRleCAxMzhhZGUxMjQ4MDVkZDM3ZDlkZTQ3OTk1
ZTdiOWU4ZTcxZGU5Y2MzLi5iNDNhNzdjNGQ1ZjkyNThkM2Q4NGM5YTFkOWIyNjIyMzA1NWNiMTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90
ZVdlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKQEAgLTEzMiw3
ICsxMzIsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtU2F2ZShj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZFVSTCwgY29uc3QgUwogICAgIC8vIFNvbWUgaW5zcGVjdG9y
IHZpZXdzIChBdWRpdHMgZm9yIGluc3RhbmNlKSB1c2UgYSBjdXN0b20gVVJJIHNjaGVtZSwgc3Vj
aAogICAgIC8vIGFzIHdlYi1pbnNwZWN0b3IuIFNvIHdlIGNhbid0IHJlbHkgb24gdGhlIFVSTCBi
ZWluZyBhIHZhbGlkIGZpbGU6Ly8vIFVSTAogICAgIC8vIHVuZm9ydHVuYXRlbHkuCi0gICAgVVJM
IHVybChVUkwoKSwgc3VnZ2VzdGVkVVJMKTsKKyAgICBVUkwgdXJsIHsgc3VnZ2VzdGVkVVJMIH07
CiAgICAgLy8gU3RyaXAgbGVhZGluZyAvIGNoYXJhY3Rlci4KICAgICBndGtfZmlsZV9jaG9vc2Vy
X3NldF9jdXJyZW50X25hbWUoY2hvb3NlciwgdXJsLnBhdGgoKS5zdWJzdHJpbmcoMSkudXRmOCgp
LmRhdGEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCmluZGV4IDg0NTUwZWQ1
MDNhZDNlNTU0YzUyOTg3OGQ1ZDM4YmI0YTY1NWMzZjguLjNkNWNmMTA4MDgwMjJhOGIyNTg0ZWY5
NTI4ZTBkZTZlNGE5ZTIwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcApAQCAt
NTMxLDcgKzUzMSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1TYXZlKGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmCiAgICAgLy8gU29tZSBpbnNw
ZWN0b3Igdmlld3MgKEF1ZGl0cyBmb3IgaW5zdGFuY2UpIHVzZSBhIGN1c3RvbSBVUkkgc2NoZW1l
LCBzdWNoCiAgICAgLy8gYXMgd2ViLWluc3BlY3Rvci4gU28gd2UgY2FuJ3QgcmVseSBvbiB0aGUg
VVJMIGJlaW5nIGEgdmFsaWQgZmlsZTovLy8gVVJMCiAgICAgLy8gdW5mb3J0dW5hdGVseS4KLSAg
ICBVUkwgdXJsKFVSTCgpLCBzdWdnZXN0ZWRVUkwpOworICAgIFVSTCB1cmwgeyBzdWdnZXN0ZWRV
UkwgfTsKICAgICAvLyBTdHJpcCBsZWFkaW5nIC8gY2hhcmFjdGVyLgogICAgIGd0a19maWxlX2No
b29zZXJfc2V0X2N1cnJlbnRfbmFtZShjaG9vc2VyLCB1cmwucGF0aCgpLnN1YnN0cmluZygxKS51
dGY4KCkuZGF0YSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2Nv
bEhhbmRsZXIuY3BwCmluZGV4IDY3OTllOTNiYTNmMWM5OGZlNTk2M2JmZmViMjlkM2I4ODM5MzBk
ZDQuLjY5ZTliYzI2OTY2ZWNlNjA3YjY4N2ViNDJmNDJhYjRmMTg1NjgwNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
UHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3Ivc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAgcHVibGljOgogICAgICAgICBpZiAodG9rZW5zLnNpemUoKSAhPSAzKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIFVSTCByZXF1ZXN0VVJMIHsgeyB9LCBwYWdlLnBhZ2VMb2Fk
U3RhdGUoKS51cmwoKSB9OworICAgICAgICBVUkwgcmVxdWVzdFVSTCB7IHBhZ2UucGFnZUxvYWRT
dGF0ZSgpLnVybCgpIH07CiAgICAgICAgIG1faW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmluc3Bl
Y3QocmVxdWVzdFVSTC5ob3N0QW5kUG9ydCgpLCBwYXJzZUludGVnZXI8dWludDMyX3Q+KHRva2Vu
c1swXSkudmFsdWVfb3IoMCksIHBhcnNlSW50ZWdlcjx1aW50MzJfdD4odG9rZW5zWzFdKS52YWx1
ZV9vcigwKSwgdG9rZW5zWzJdKTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBmZDExMTc1OTk0NzhjMWM5NmFlMGMxOGM5NGY0OWYxMTQ0
OGQ2MzAwLi5kZTQ4ZGJjNWQ2YTRkNzZjODIxNWQyMzZiMTE3NDYxMDRjZmIwYWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwODksNyArMTA4OSw3IEBA
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vzc0ZvclJl
bG9hZCgpCiAgICAgfQogICAgIAogICAgIEFTU0VSVCghaGFzUnVubmluZ1Byb2Nlc3MoKSk7Ci0g
ICAgYXV0byByZWdpc3RyYWJsZURvbWFpbiA9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRl
bSgpID8gUmVnaXN0cmFibGVEb21haW4geyBVUkwoVVJMKCksIG1fYmFja0ZvcndhcmRMaXN0LT5j
dXJyZW50SXRlbSgpLT51cmwoKSkgfSA6IFJlZ2lzdHJhYmxlRG9tYWluIHsgfTsKKyAgICBhdXRv
IHJlZ2lzdHJhYmxlRG9tYWluID0gbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkgPyBS
ZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgp
LT51cmwoKSB9IH0gOiBSZWdpc3RyYWJsZURvbWFpbiB7IH07CiAgICAgbGF1bmNoUHJvY2Vzcyhy
ZWdpc3RyYWJsZURvbWFpbiwgUHJvY2Vzc0xhdW5jaFJlYXNvbjo6Q3Jhc2gpOwogCiAgICAgaWYg
KCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSkgewpAQCAtMTQ2NSw3ICsxNDY1LDcg
QEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkRmlsZShjb25zdCBT
dHJpbmcmIGZpbGVVUkxTdHJpbmcsIGNvbnMKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkp
CiAgICAgICAgIGxhdW5jaFByb2Nlc3MoeyB9LCBQcm9jZXNzTGF1bmNoUmVhc29uOjpJbml0aWFs
UHJvY2Vzcyk7CiAKLSAgICBVUkwgZmlsZVVSTCA9IFVSTChVUkwoKSwgZmlsZVVSTFN0cmluZyk7
CisgICAgVVJMIGZpbGVVUkwgeyBmaWxlVVJMU3RyaW5nIH07CiAgICAgaWYgKCFmaWxlVVJMLmlz
TG9jYWxGaWxlKCkpIHsKICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcs
ICJsb2FkRmlsZTogZmlsZSBpcyBub3QgbG9jYWwiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC0xNDc1LDcgKzE0NzUsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJv
eHk6OmxvYWRGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVVSTFN0cmluZywgY29ucwogICAgIGlmIChy
ZXNvdXJjZURpcmVjdG9yeVVSTFN0cmluZy5pc051bGwoKSkKICAgICAgICAgcmVzb3VyY2VEaXJl
Y3RvcnlVUkwgPSBVUkwoeyB9LCAiZmlsZTovLy8iX3MpOwogICAgIGVsc2UgewotICAgICAgICBy
ZXNvdXJjZURpcmVjdG9yeVVSTCA9IFVSTChVUkwoKSwgcmVzb3VyY2VEaXJlY3RvcnlVUkxTdHJp
bmcpOworICAgICAgICByZXNvdXJjZURpcmVjdG9yeVVSTCA9IFVSTCB7IHJlc291cmNlRGlyZWN0
b3J5VVJMU3RyaW5nIH07CiAgICAgICAgIGlmICghcmVzb3VyY2VEaXJlY3RvcnlVUkwuaXNMb2Nh
bEZpbGUoKSkgewogICAgICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcs
ICJsb2FkRmlsZTogcmVzb3VyY2UgVVJMIGlzIG5vdCBsb2NhbCIpOwogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC0xNzE2LDcgKzE3MTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmF2
aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKLSAgICAg
ICAgbGF1bmNoUHJvY2VzcyhSZWdpc3RyYWJsZURvbWFpbiB7IFVSTChVUkwoKSwgdXJsU3RyaW5n
KSB9LCBQcm9jZXNzTGF1bmNoUmVhc29uOjpJbml0aWFsUHJvY2Vzcyk7CisgICAgICAgIGxhdW5j
aFByb2Nlc3MoUmVnaXN0cmFibGVEb21haW4geyBVUkwgeyB1cmxTdHJpbmcgfSB9LCBQcm9jZXNz
TGF1bmNoUmVhc29uOjpJbml0aWFsUHJvY2Vzcyk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpOYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayh1cmxTdHJpbmcsIGRvY3Vt
ZW50UG9pbnQsIHNjcmVlblBvaW50KSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVu
ZXNzVGltZXIoKTsKQEAgLTE3NTYsNyArMTc1Niw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+
IFdlYlBhZ2VQcm94eTo6cmVsb2FkKE9wdGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IG9w
CiAgICAgU3RyaW5nIHVybCA9IGN1cnJlbnRVUkwoKTsKICAgICBpZiAoIXVybC5pc0VtcHR5KCkp
IHsKICAgICAgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGFuIGV4dGVuc2lvbiB5ZXQgaWYgYmFjay9m
b3J3YXJkIGxpc3Qgd2FzIHJlaW5zdGF0ZWQgYWZ0ZXIgYSBXZWJQcm9jZXNzIGNyYXNoIG9yIGEg
YnJvd3NlciByZWxhdW5jaAotICAgICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKG1fcHJvY2VzcywgVVJMKFVSTCgpLCB1cmwpLCBjdXJyZW50UmVzb3VyY2VEaXJlY3Rv
cnlVUkwoKSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIG1heWJlSW5pdGlhbGl6
ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUobV9wcm9jZXNzLCBVUkwgeyB1cmwgfSwgY3VycmVudFJl
c291cmNlRGlyZWN0b3J5VVJMKCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAgIH0KIAog
ICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKQEAgLTE4NDAsNyArMTg0MCw3IEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJC
YWNrRm9yd2FyZExpc3RJdGVtCiAgICAgfQogCiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vzcygp
KSB7Ci0gICAgICAgIGxhdW5jaFByb2Nlc3MoUmVnaXN0cmFibGVEb21haW4geyBVUkwoVVJMKCks
IGl0ZW0udXJsKCkpIH0sIFByb2Nlc3NMYXVuY2hSZWFzb246OkluaXRpYWxQcm9jZXNzKTsKKyAg
ICAgICAgbGF1bmNoUHJvY2VzcyhSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IGl0ZW0udXJsKCkg
fSB9LCBQcm9jZXNzTGF1bmNoUmVhc29uOjpJbml0aWFsUHJvY2Vzcyk7CiAKICAgICAgICAgaWYg
KCZpdGVtICE9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKQogICAgICAgICAgICAg
bV9iYWNrRm9yd2FyZExpc3QtPmdvVG9JdGVtKGl0ZW0pOwpAQCAtMzQ2NCw3ICszNDY0LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGlj
eUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICB9CiAKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiBzb3VyY2VQcm9jZXNzID0gcHJvY2VzcygpOwotICAgIFVSTCBzb3VyY2VVUkwgPSBVUkwgeyBV
UkwoKSwgcGFnZUxvYWRTdGF0ZSgpLnVybCgpIH07CisgICAgVVJMIHNvdXJjZVVSTCB7IHBhZ2VM
b2FkU3RhdGUoKS51cmwoKSB9OwogICAgIGlmIChhdXRvKiBwcm92aXNpb25hbFBhZ2UgPSBwcm92
aXNpb25hbFBhZ2VQcm94eSgpKSB7CiAgICAgICAgIGlmIChwcm92aXNpb25hbFBhZ2UtPm5hdmln
YXRpb25JRCgpID09IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpKSB7CiAgICAgICAgICAgICBz
b3VyY2VQcm9jZXNzID0gcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCk7CkBAIC0zNTEyLDcgKzM1
MTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNp
b24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQQogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgYXV0byBpdGVtID0gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlvbi0+
cmVsb2FkSXRlbSgpIDogbmF2aWdhdGlvbi0+dGFyZ2V0SXRlbSgpOwogICAgICAgICAgICAgaWYg
KHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBpdGVtKSB7Ci0gICAgICAgICAg
ICAgICAgYXV0byBmdWxsVVJMID0gVVJMIHsgVVJMKCksIGl0ZW0tPnVybCgpIH07CisgICAgICAg
ICAgICAgICAgVVJMIGZ1bGxVUkwgeyBpdGVtLT51cmwoKSB9OwogICAgICAgICAgICAgICAgIGlm
IChmdWxsVVJMLnByb3RvY29sSXMoImZpbGUiX3MpKSB7CiAgICAgICAgICAgICAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwogICAgICAgICAg
ICAgICAgICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKHByb2Nlc3NG
b3JOYXZpZ2F0aW9uLmdldCgpLCBmdWxsVVJMLCBpdGVtLT5yZXNvdXJjZURpcmVjdG9yeVVSTCgp
LCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKQEAgLTM4MDQsNyArMzgwNCw3IEBAIFNlc3Npb25T
dGF0ZSBXZWJQYWdlUHJveHk6OnNlc3Npb25TdGF0ZShXVEY6OkZ1bmN0aW9uPGJvb2wgKFdlYkJh
Y2tGb3J3YXJkTGlzdEl0CiAgICAgICAgIHByb3Zpc2lvbmFsVVJMU3RyaW5nID0gbV9wYWdlTG9h
ZFN0YXRlLnByb3Zpc2lvbmFsVVJMKCk7CiAKICAgICBpZiAoIXByb3Zpc2lvbmFsVVJMU3RyaW5n
LmlzRW1wdHkoKSkKLSAgICAgICAgc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMID0gVVJMKFVS
TCgpLCBwcm92aXNpb25hbFVSTFN0cmluZyk7CisgICAgICAgIHNlc3Npb25TdGF0ZS5wcm92aXNp
b25hbFVSTCA9IFVSTCB7IHByb3Zpc2lvbmFsVVJMU3RyaW5nIH07CiAKICAgICBzZXNzaW9uU3Rh
dGUucmVuZGVyVHJlZVNpemUgPSByZW5kZXJUcmVlU2l6ZSgpOwogICAgIHNlc3Npb25TdGF0ZS5p
c0FwcEluaXRpYXRlZCA9IG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ7CkBAIC00ODk5
LDcgKzQ4OTksNyBAQCBzdGF0aWMgT3B0aW9uU2V0PENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJh
bnNmZXI6OkZsYWc+IGNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbgogICAgIGlmICghY3VycmVudFVS
TC5xdWVyeSgpLmlzRW1wdHkoKSB8fCAhY3VycmVudFVSTC5mcmFnbWVudElkZW50aWZpZXIoKS5p
c0VtcHR5KCkpCiAgICAgICAgIG5hdmlnYXRpb25EYXRhVHJhbnNmZXIuYWRkKENyb3NzU2l0ZU5h
dmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc6OkRlc3RpbmF0aW9uTGlua0RlY29yYXRpb24pOwog
Ci0gICAgVVJMIHJlZmVycmVyVVJMIHsgVVJMKCksIGN1cnJlbnRSZXF1ZXN0Lmh0dHBSZWZlcnJl
cigpIH07CisgICAgVVJMIHJlZmVycmVyVVJMIHsgY3VycmVudFJlcXVlc3QuaHR0cFJlZmVycmVy
KCkgfTsKICAgICBpZiAoIXJlZmVycmVyVVJMLnF1ZXJ5KCkuaXNFbXB0eSgpIHx8ICFyZWZlcnJl
clVSTC5mcmFnbWVudElkZW50aWZpZXIoKS5pc0VtcHR5KCkpCiAgICAgICAgIG5hdmlnYXRpb25E
YXRhVHJhbnNmZXIuYWRkKENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc6OlJl
ZmVycmVyTGlua0RlY29yYXRpb24pOwogCkBAIC00OTI3LDcgKzQ5MjcsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBG
cmFtZUluZm9EYXRhJgogICAgICAgICBhdXRvIG5hdmlnYXRpb25EYXRhVHJhbnNmZXIgPSBjaGVj
a0lmTmF2aWdhdGlvbkNvbnRhaW5zRGF0YVRyYW5zZmVyKHJlcXVlc3Rlck9yaWdpbiwgY3VycmVu
dFJlcXVlc3QpOwogICAgICAgICBpZiAoIW5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBjdXJyZW50RG9tYWluIHsgY3VycmVu
dFJlcXVlc3QudXJsKCkgfTsKLSAgICAgICAgICAgIFVSTCByZXF1ZXN0ZXJVUkwgeyBVUkwoKSwg
cmVxdWVzdGVyT3JpZ2luLnRvU3RyaW5nKCkgfTsKKyAgICAgICAgICAgIFVSTCByZXF1ZXN0ZXJV
UkwgeyByZXF1ZXN0ZXJPcmlnaW4udG9TdHJpbmcoKSB9OwogICAgICAgICAgICAgaWYgKCFjdXJy
ZW50RG9tYWluLm1hdGNoZXMocmVxdWVzdGVyVVJMKSkKICAgICAgICAgICAgICAgICBtX3dlYnNp
dGVEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhE
YXRhVHJhbnNmZXIobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVE
b21haW4geyByZXF1ZXN0ZXJVUkwgfSwgY3VycmVudERvbWFpbiwgbmF2aWdhdGlvbkRhdGFUcmFu
c2ZlciwgbV9pZGVudGlmaWVyLCBtX3dlYlBhZ2VJRCk7CiAgICAgICAgIH0KQEAgLTU1NjIsNyAr
NTU2Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYXV0byB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5
VXNlciA9IG5hdmlnYXRpb24tPmlzTG9hZGVkV2l0aE5hdmlnYXRpb25TaGFyZWQoKSB8fCB1c2Vy
SW5pdGlhdGVkQWN0aXZpdHk7CiAgICAgaWYgKCFzZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQot
ICAgICAgICBsb2dGcmFtZU5hdmlnYXRpb24oZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9hZFN0
YXRlLnVybCgpKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSwgd2FzUG90ZW50aWFs
bHlJbml0aWF0ZWRCeVVzZXIpOworICAgICAgICBsb2dGcmFtZU5hdmlnYXRpb24oZnJhbWUsIFVS
TCB7IG1fcGFnZUxvYWRTdGF0ZS51cmwoKSB9LCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLnVy
bCgpLCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcik7CiAjZW5kaWYKIAogICAgIGlmICht
X3BvbGljeUNsaWVudCkKQEAgLTcxMzEsNyArNzEzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVt
KQogICAgIH0KIAogICAgIGlmIChkb3dubG9hZEluZm8pIHsKLSAgICAgICAgYXV0byYgZG93bmxv
YWQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuZG93bmxvYWQobV93ZWJzaXRlRGF0YVN0b3Jl
LCB0aGlzLCBVUkwoVVJMKCksIGRvd25sb2FkSW5mby0+dXJsKSwgZG93bmxvYWRJbmZvLT5zdWdn
ZXN0ZWRGaWxlbmFtZSk7CisgICAgICAgIGF1dG8mIGRvd25sb2FkID0gbV9wcm9jZXNzLT5wcm9j
ZXNzUG9vbCgpLmRvd25sb2FkKG1fd2Vic2l0ZURhdGFTdG9yZSwgdGhpcywgVVJMIHsgZG93bmxv
YWRJbmZvLT51cmwgfSwgZG93bmxvYWRJbmZvLT5zdWdnZXN0ZWRGaWxlbmFtZSk7CiAgICAgICAg
IGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJhY2soW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH1dIChhdXRvKiBkb3dubG9hZCkgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhZG93bmxvYWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtODUyNCw3ICs4NTI0LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcywg
ZnJhbWUpOwogCiAgICAgYXV0byBvcmlnaW5EYXRhID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
RGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpOwotICAgIGlmIChvcmlnaW5EYXRh
ICE9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChVUkwgeyB7IH0sIGN1cnJlbnRVUkwoKSB9
KSkgeworICAgIGlmIChvcmlnaW5EYXRhICE9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChV
UkwgeyBjdXJyZW50VVJMKCkgfSkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVu
dFF1b3RhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwNDg1LDcgKzEwNDg1LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCkKIAogYm9vbCBX
ZWJQYWdlUHJveHk6OmNoZWNrVVJMUmVjZWl2ZWRGcm9tQ3VycmVudE9yUHJldmlvdXNXZWJQcm9j
ZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7
Ci0gICAgcmV0dXJuIGNoZWNrVVJMUmVjZWl2ZWRGcm9tQ3VycmVudE9yUHJldmlvdXNXZWJQcm9j
ZXNzKHByb2Nlc3MsIFVSTChVUkwoKSwgdXJsU3RyaW5nKSk7CisgICAgcmV0dXJuIGNoZWNrVVJM
UmVjZWl2ZWRGcm9tQ3VycmVudE9yUHJldmlvdXNXZWJQcm9jZXNzKHByb2Nlc3MsIFVSTCB7IHVy
bFN0cmluZyB9KTsKIH0KIAogYm9vbCBXZWJQYWdlUHJveHk6OmNoZWNrVVJMUmVjZWl2ZWRGcm9t
Q3VycmVudE9yUHJldmlvdXNXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgY29u
c3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggMjkwMmYzY2I1MzZjM2VmNTI4MTI5NDIyNmJjYTI4NTY1OWJiYmEyZi4uZDhiZjJiNjQ4
MWZhMmRjZGY3YzdlYTFhMzM0NDk5M2FiZmIzYzcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTIwNiw3ICsxMjA2LDcgQEAgRG93bmxvYWRQcm94
eSYgV2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwg
V2ViUGFnZVByb3gKICAgICAvLyBSZXF1ZXN0J3MgZmlyc3RQYXJ0eUZvckNvb2tpZXMgd2lsbCBi
ZSB1c2VkIGFzIE9yaWdpbmFsIFVSTCBvZiB0aGUgZG93bmxvYWQgcmVxdWVzdC4KICAgICAvLyBX
ZSBzZXQgdGhlIHZhbHVlIHRvIHRvcCBsZXZlbCBkb2N1bWVudCdzIFVSTC4KICAgICBpZiAoaW5p
dGlhdGluZ1BhZ2UpIHsKLSAgICAgICAgVVJMIGluaXRpYXRpbmdQYWdlVVJMID0gVVJMIHsgVVJM
IHsgfSwgaW5pdGlhdGluZ1BhZ2UtPnBhZ2VMb2FkU3RhdGUoKS51cmwoKSB9OworICAgICAgICBV
UkwgaW5pdGlhdGluZ1BhZ2VVUkwgPSBVUkwgeyBpbml0aWF0aW5nUGFnZS0+cGFnZUxvYWRTdGF0
ZSgpLnVybCgpIH07CiAgICAgICAgIHVwZGF0ZWRSZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29r
aWVzKGluaXRpYXRpbmdQYWdlVVJMKTsKICAgICAgICAgdXBkYXRlZFJlcXVlc3Quc2V0SXNTYW1l
U2l0ZShhcmVSZWdpc3RyYWJsZURvbWFpbnNFcXVhbChpbml0aWF0aW5nUGFnZVVSTCwgcmVxdWVz
dC51cmwoKSkpOwogICAgICAgICBpZiAoIXVwZGF0ZWRSZXF1ZXN0Lmhhc0hUVFBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZTo6VXNlckFnZW50KSkKQEAgLTE5MjgsMTIgKzE5MjgsMTIgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJv
eHkmIHBhZ2UsIGNvbnN0IEFQSToKIAogICAgIFVSTCBzb3VyY2VVUkw7CiAgICAgaWYgKHBhZ2Uu
aXNQYWdlT3BlbmVkQnlET01TaG93aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSAmJiAhbmF2aWdh
dGlvbi5yZXF1ZXN0ZXJPcmlnaW4oKS5pc0VtcHR5KCkpCi0gICAgICAgIHNvdXJjZVVSTCA9IFVS
TCB7IFVSTCgpLCBuYXZpZ2F0aW9uLnJlcXVlc3Rlck9yaWdpbigpLnRvU3RyaW5nKCkgfTsKKyAg
ICAgICAgc291cmNlVVJMID0gVVJMIHsgbmF2aWdhdGlvbi5yZXF1ZXN0ZXJPcmlnaW4oKS50b1N0
cmluZygpIH07CiAgICAgZWxzZQogICAgICAgICBzb3VyY2VVUkwgPSBwYWdlU291cmNlVVJMOwog
CiAgICAgaWYgKHNvdXJjZVVSTC5pc0VtcHR5KCkgJiYgcGFnZS5jb25maWd1cmF0aW9uKCkucmVs
YXRlZFBhZ2UoKSkgewotICAgICAgICBzb3VyY2VVUkwgPSBVUkwgeyB7IH0sIHBhZ2UuY29uZmln
dXJhdGlvbigpLnJlbGF0ZWRQYWdlKCktPnBhZ2VMb2FkU3RhdGUoKS51cmwoKSB9OworICAgICAg
ICBzb3VyY2VVUkwgPSBVUkwgeyBwYWdlLmNvbmZpZ3VyYXRpb24oKS5yZWxhdGVkUGFnZSgpLT5w
YWdlTG9hZFN0YXRlKCkudXJsKCkgfTsKICAgICAgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9M
T0coUHJvY2Vzc1N3YXBwaW5nLCAicHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbDogVXNpbmcg
cmVsYXRlZCBwYWdlJ3MgVVJMIGFzIHNvdXJjZSBVUkwgZm9yIHByb2Nlc3Mgc3dhcCBkZWNpc2lv
biAocGFnZT0lcCkiLCBwYWdlLmNvbmZpZ3VyYXRpb24oKS5yZWxhdGVkUGFnZSgpKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDA5
MTMwYTAzMjEzNWNhNTIwYzRiNjg1ODBjMmY0NDM4ZDY0Mjc5NzguLjM0OTM3ZmI4MmQ2YWJiNzU4
OTJmYzVmNDk1ZTBkMTdhMjkwMzEwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIHN0YXRpYyBXZWJQcm9jZXNzUHJv
eHk6OldlYlBhZ2VQcm94eU1hcCYgZ2xvYmFsUGFnZU1hcCgpCiB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Zm9yV2ViUGFnZXNXaXRoT3JpZ2luKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4sIGNvbnN0IEZ1bmN0aW9uPHZvaWQoV2ViUGFnZVBy
b3h5Jik+JiBjYWxsYmFjaykKIHsKICAgICBmb3IgKGF1dG8qIHBhZ2UgOiBnbG9iYWxQYWdlTWFw
KCkudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKHBhZ2UtPnNlc3Npb25JRCgpICE9IHNlc3Npb25J
RCB8fCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoVVJMIHsgeyB9LCBwYWdlLT5jdXJyZW50
VVJMKCkgfSkgIT0gb3JpZ2luKQorICAgICAgICBpZiAocGFnZS0+c2Vzc2lvbklEKCkgIT0gc2Vz
c2lvbklEIHx8IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChVUkwgeyBwYWdlLT5jdXJyZW50
VVJMKCkgfSkgIT0gb3JpZ2luKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNhbGxi
YWNrKCpwYWdlKTsKICAgICB9CkBAIC02ODMsNyArNjgzLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZERlc3Ryb3lXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVu
dENvbnQKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwo
V2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKLSAgICBVUkwg
dXJsKFVSTCgpLCB1cmxTdHJpbmcpOworICAgIFVSTCB1cmwgeyB1cmxTdHJpbmcgfTsKICAgICBp
ZiAoIXVybC5pc0xvY2FsRmlsZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTc0OCwxMCArNzQ4
LDEwIEBAIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjaGVja1VSTFJlY2VpdmVkRnJvbVdlYlByb2Nl
c3MoY29uc3QgVVJMJiB1cmwsIENoZWNrQmFja0ZvCiAgICAgaWYgKGNoZWNrQmFja0ZvcndhcmRM
aXN0ID09IENoZWNrQmFja0ZvcndhcmRMaXN0OjpZZXMpIHsKICAgICAgICAgU3RyaW5nIHBhdGgg
PSB1cmwuZmlsZVN5c3RlbVBhdGgoKTsKICAgICAgICAgZm9yIChhdXRvJiBpdGVtIDogV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbTo6YWxsSXRlbXMoKS52YWx1ZXMoKSkgewotICAgICAgICAgICAgVVJM
IGl0ZW1VUkwoVVJMKCksIGl0ZW0tPnVybCgpKTsKKyAgICAgICAgICAgIFVSTCBpdGVtVVJMIHsg
aXRlbS0+dXJsKCkgfTsKICAgICAgICAgICAgIGlmIChpdGVtVVJMLmlzTG9jYWxGaWxlKCkgJiYg
aXRlbVVSTC5maWxlU3lzdGVtUGF0aCgpID09IHBhdGgpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICBVUkwgaXRlbU9yaWdpbmFsVVJMKFVSTCgpLCBpdGVtLT5vcmln
aW5hbFVSTCgpKTsKKyAgICAgICAgICAgIFVSTCBpdGVtT3JpZ2luYWxVUkwgeyBpdGVtLT5vcmln
aW5hbFVSTCgpIH07CiAgICAgICAgICAgICBpZiAoaXRlbU9yaWdpbmFsVVJMLmlzTG9jYWxGaWxl
KCkgJiYgaXRlbU9yaWdpbmFsVVJMLmZpbGVTeXN0ZW1QYXRoKCkgPT0gcGF0aCkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9y
ZUNvY29hLm1tCmluZGV4IDExM2YxMWIyNmQwZTg4YzgwM2U5ZDQ4OGI4NjRlODRmOWZmNmVjNTQu
LjE4NTcwYzhkMWMxOGQ3NThjMWE1MTViNjFmMzI3ZDA2YWNmY2UwNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTE1Nyw5ICsxNTcsOSBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMmCiAjZW5kaWYKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9uY2UgU2FmYXJp
IGFkb3B0cyBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5odHRwUHJveHkgYW5kIC5o
dHRwc1Byb3h5LgogICAgIGlmICghaHR0cFByb3h5LmlzVmFsaWQoKSAmJiAoaXNTYWZhcmkgfHwg
aXNNaW5pQnJvd3NlcikpCi0gICAgICAgIGh0dHBQcm94eSA9IFVSTChVUkwoKSwgW2RlZmF1bHRz
IHN0cmluZ0ZvcktleTooTlNTdHJpbmcgKilXZWJLaXQySFRUUFByb3h5RGVmYXVsdHNLZXldKTsK
KyAgICAgICAgaHR0cFByb3h5ID0gVVJMIHsgW2RlZmF1bHRzIHN0cmluZ0ZvcktleTooTlNTdHJp
bmcgKilXZWJLaXQySFRUUFByb3h5RGVmYXVsdHNLZXldIH07CiAgICAgaWYgKCFodHRwc1Byb3h5
LmlzVmFsaWQoKSAmJiAoaXNTYWZhcmkgfHwgaXNNaW5pQnJvd3NlcikpCi0gICAgICAgIGh0dHBz
UHJveHkgPSBVUkwoVVJMKCksIFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6KE5TU3RyaW5nICopV2Vi
S2l0MkhUVFBTUHJveHlEZWZhdWx0c0tleV0pOworICAgICAgICBodHRwc1Byb3h5ID0gVVJMIHsg
W2RlZmF1bHRzIHN0cmluZ0ZvcktleTooTlNTdHJpbmcgKilXZWJLaXQySFRUUFNQcm94eURlZmF1
bHRzS2V5XSB9OwogCiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAg
ICBib29sIGh0dHAzRW5hYmxlZCA9IFdlYnNpdGVEYXRhU3RvcmU6Omh0dHAzRW5hYmxlZCgpOwpA
QCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aW5pdGlhbGl6ZUFwcEJv
dW5kRG9tYWlucyhGb3JjZVJlaW5pdGlhbGl6YXRpb24gZm9yY2VSZWluCiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBVUkwgdXJsIHsg
VVJMKCksIGRhdGEgfTsKKyAgICAgICAgICAgICAgICBVUkwgdXJsIHsgZGF0YSB9OwogICAgICAg
ICAgICAgICAgIGlmICh1cmwucHJvdG9jb2woKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
ICAgIHVybC5zZXRQcm90b2NvbCgiaHR0cHMiKTsKICAgICAgICAgICAgICAgICBpZiAoIXVybC5p
c1ZhbGlkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAxZDFkZmZkMTIwOTFhYWM3Y2M4ODBlMjE0NTQ4
MjdjNzVlMGFkZjZkLi4wOTM1NmI2NzRlNGYyZGVjOGViMmY2OWVkYzc0ODBhMDMwMWJhODZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KQEAgLTEwNTE5LDcgKzEwNTE5LDcgQEAgLSAoaWQgPFFMUHJldmlld0l0
ZW0+KXByZXZpZXdDb250cm9sbGVyOihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBw
cmV2aWUKICAgICAgICAgYXV0byBwcmV2aWV3T3B0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdKTsKICAgICAgICAgaWYgKF92aXN1
YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwpCiAgICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0
T2JqZWN0Ol92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2VVUkwuZ2V0KCkgZm9yS2V5OkAiaW1hZ2VV
UkwiXTsKLSAgICAgICAgaWYgKGF1dG8gcGFnZVVSTCA9IFVSTCB7IFVSTCB7IH0sIF9wYWdlLT5j
dXJyZW50VVJMKCkgfTsgIXBhZ2VVUkwuaXNFbXB0eSgpKQorICAgICAgICBpZiAoYXV0byBwYWdl
VVJMID0gVVJMIHsgX3BhZ2UtPmN1cnJlbnRVUkwoKSB9OyAhcGFnZVVSTC5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBbcHJldmlld09wdGlvbnMgc2V0T2JqZWN0OnBhZ2VVUkwgZm9yS2V5OkAicGFn
ZVVSTCJdOwogICAgICAgICBpZiAoW3ByZXZpZXdPcHRpb25zIGNvdW50XSkKICAgICAgICAgICAg
IFtpdGVtIHNldFByZXZpZXdPcHRpb25zOnByZXZpZXdPcHRpb25zLmdldCgpXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2Rpbmcu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5jcHAKaW5kZXggNjU1Yjk4NTA0NzE2MDUxODdmNmE1OThiMjdmMTU5MmQxZjU1ODcwMC4uNGI0
YzkzYjM0ZTlkYTZkYWQwNjQzNTQ5MzkwMWY1NGE2MTI2MmJiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAK
QEAgLTExNDYsNyArMTE0Niw3IEBAIGJvb2wgZGVjb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0
IHVpbnQ4X3QqIGJ5dGVzLCBzaXplX3Qgc2l6ZSwgU2Vzc2lvblN0YXRlJiBzCiAgICAgfQogCiAg
ICAgaWYgKGF1dG8gcHJvdmlzaW9uYWxVUkxTdHJpbmcgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZTdHJp
bmdSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHNlc3Npb25TdGF0ZURpY3Rpb25hcnksIHByb3Zp
c2lvbmFsVVJMS2V5KSkpIHsKLSAgICAgICAgc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMID0g
VVJMKFVSTCgpLCBwcm92aXNpb25hbFVSTFN0cmluZyk7CisgICAgICAgIHNlc3Npb25TdGF0ZS5w
cm92aXNpb25hbFVSTCA9IFVSTCB7IHByb3Zpc2lvbmFsVVJMU3RyaW5nIH07CiAgICAgICAgIGlm
ICghc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLm1tCmluZGV4IDhmNWM4MmUwNjRj
MGViZjFjODAyM2FlMGI5YWZhMGJiNjkzZmNhMzIuLjVmNDk0ZTRkNTNmMTcwNGMxMGE3Nzc2ODIz
OGJiZjEwYTZlN2MxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLm1tCkBAIC01NCw3ICs1NCw3IEBA
IC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdl
IGltYWdlRGF0YTooTlNEYXRhICopaW1hCiAgICAgICAgIGF1dG8gcHJldmlld09wdGlvbnMgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXSk7
CiAgICAgICAgIGlmIChpbWFnZVVSTCkKICAgICAgICAgICAgIFtwcmV2aWV3T3B0aW9ucyBzZXRP
YmplY3Q6aW1hZ2VVUkwgZm9yS2V5OkAiaW1hZ2VVUkwiXTsKLSAgICAgICAgaWYgKE5TVVJMICpw
YWdlVVJMID0gVVJMIHsgVVJMIHsgfSwgcGFnZS5jdXJyZW50VVJMKCkgfSkKKyAgICAgICAgaWYg
KE5TVVJMICpwYWdlVVJMID0gVVJMIHsgcGFnZS5jdXJyZW50VVJMKCkgfSkKICAgICAgICAgICAg
IFtwcmV2aWV3T3B0aW9ucyBzZXRPYmplY3Q6cGFnZVVSTCBmb3JLZXk6QCJwYWdlVVJMIl07CiAg
ICAgICAgIFtfaXRlbSBzZXRQcmV2aWV3T3B0aW9uczpwcmV2aWV3T3B0aW9ucy5nZXQoKV07CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRN
ZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1l
bnVQcm94eU1hYy5tbQppbmRleCBjZjQ4ZjJlNjQxNzkzYTQ4YzM2NWJhNTNmNGQwY2FiOTg0YmQw
OTVlLi40OWIxZGIzODE3NDY2NGFhZmZiMGNhMWM5NjMwYzQ1Y2U2NjI0YjdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5t
bQpAQCAtNjIzLDcgKzYyMyw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29u
dGV4dE1lbnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51CiAgICAgQVNTRVJU
KG1fY29udGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpKTsKICAgICBhdXRvIGhpdFRlc3REYXRh
ID0gbV9jb250ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCkudmFsdWUoKTsKICAgICAKLSAgICBh
dXRvIGltYWdlVVJMID0gVVJMIHsgVVJMIHsgfSwgaGl0VGVzdERhdGEuYWJzb2x1dGVJbWFnZVVS
TCB9OworICAgIGF1dG8gaW1hZ2VVUkwgPSBVUkwgeyBoaXRUZXN0RGF0YS5hYnNvbHV0ZUltYWdl
VVJMIH07CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IGhpdFRlc3REYXRhLmltYWdlQml0bWFwOwog
CiAgICAgYXV0byBzcGFyc2VNZW51SXRlbXMgPSByZXRhaW5QdHIoW05TUG9pbnRlckFycmF5IHN0
cm9uZ09iamVjdHNQb2ludGVyQXJyYXldKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGNlYzQyNTIzZDY5ZWQ4NDlkZmY3ZGJkNmIzYTZj
YTc0NTFhYTQwNjYuLmY2YWRjOWM3MDgwN2VmNzVlOGQ0OGUxNjA1MTg4MGZjNTYwNWQxMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAt
NzM0LDcgKzczNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudVF1aWNr
TG9va0ltYWdlKFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSBhY3RpCiAgICAgaWYgKCFyZXN1bHQu
aW1hZ2VCaXRtYXApCiAgICAgICAgIHJldHVybjsKIAotICAgIHNob3dJbWFnZUluUXVpY2tMb29r
UHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3VsdC50b29sVGlwVGV4dCwgVVJM
IHsgVVJMIHsgfSwgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSwgYWN0aXZpdHkpOworICAgIHNo
b3dJbWFnZUluUXVpY2tMb29rUHJldmlld1BhbmVsKCpyZXN1bHQuaW1hZ2VCaXRtYXAsIHJlc3Vs
dC50b29sVGlwVGV4dCwgVVJMIHsgcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwgfSwgYWN0aXZpdHkp
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0ltYWdlSW5RdWlja0xvb2tQcmV2aWV3UGFu
ZWwoU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgY29uc3QgU3RyaW5nJiB0b29sdGlwLCBj
b25zdCBVUkwmIGltYWdlVVJMLCBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgYWN0aXZpdHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3IuY3BwCmluZGV4IDEyN2FjMWU0NTc3MTViZjdkZmIwZTljOTNhMTA0MjBi
NGY1YzM1NzEuLmE2ZGE5ZTJjNDI1NWZkZTUxNWQzZDgzNWMyYzEwMmQxYmY4N2E2NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3IuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdWludDY0X3QgV2ViUGF5bWVu
dENvb3JkaW5hdG9yOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAKIHZvaWQg
V2ViUGF5bWVudENvb3JkaW5hdG9yOjp2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFs
aWRhdGlvblVSTFN0cmluZykKIHsKLSAgICBwYXltZW50Q29vcmRpbmF0b3IoKS52YWxpZGF0ZU1l
cmNoYW50KFVSTChVUkwoKSwgdmFsaWRhdGlvblVSTFN0cmluZykpOworICAgIHBheW1lbnRDb29y
ZGluYXRvcigpLnZhbGlkYXRlTWVyY2hhbnQoVVJMIHsgdmFsaWRhdGlvblVSTFN0cmluZyB9KTsK
IH0KIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmRpZEF1dGhvcml6ZVBheW1lbnQoY29u
c3QgV2ViQ29yZTo6UGF5bWVudCYgcGF5bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNw
cAppbmRleCAyYzU4ZTljYWFkNTEzNTA1NjMxZjAzYjA2YjFjOTQxZDA5ZmJlODFmLi43M2I3ZmIw
ZjBkNjNkMTM1OTM2MWIzYTQ5ZGU3NTU0NGQxZTA2ODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgV0tTdHJpbmdSZWYgV0tCdW5kbGVGcmFtZUNv
cHlMYXllclRyZWVBc1RleHQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikKIAogYm9vbCBXS0J1
bmRsZUZyYW1lQWxsb3dzRm9sbG93aW5nTGluayhXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBX
S1VSTFJlZiB1cmxSZWYpCiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGZyYW1lUmVmKS0+
YWxsb3dzRm9sbG93aW5nTGluayhVUkwoVVJMKCksIFdlYktpdDo6dG9XVEZTdHJpbmcodXJsUmVm
KSkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChmcmFtZVJlZiktPmFsbG93c0ZvbGxvd2lu
Z0xpbmsoVVJMIHsgV2ViS2l0Ojp0b1dURlN0cmluZyh1cmxSZWYpIH0pOwogfQogCiBib29sIFdL
QnVuZGxlRnJhbWVIYW5kbGVzUGFnZVNjYWxlR2VzdHVyZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
UmVmKQpAQCAtMjA4LDEyICsyMDgsMTIgQEAgYm9vbCBXS0J1bmRsZUZyYW1lR2V0RG9jdW1lbnRC
YWNrZ3JvdW5kQ29sb3IoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgZG91YmxlKgogCiBXS1N0
cmluZ1JlZiBXS0J1bmRsZUZyYW1lQ29weVN1Z2dlc3RlZEZpbGVuYW1lRm9yUmVzb3VyY2VXaXRo
VVJMKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYsIFdLVVJMUmVmIHVybFJlZikKIHsKLSAgICBy
ZXR1cm4gV2ViS2l0Ojp0b0NvcGllZEFQSShXZWJLaXQ6OnRvSW1wbChmcmFtZVJlZiktPnN1Z2dl
c3RlZEZpbGVuYW1lRm9yUmVzb3VyY2VXaXRoVVJMKFVSTChVUkwoKSwgV2ViS2l0Ojp0b1dURlN0
cmluZyh1cmxSZWYpKSkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvQ29waWVkQVBJKFdlYktpdDo6
dG9JbXBsKGZyYW1lUmVmKS0+c3VnZ2VzdGVkRmlsZW5hbWVGb3JSZXNvdXJjZVdpdGhVUkwoVVJM
IHsgV2ViS2l0Ojp0b1dURlN0cmluZyh1cmxSZWYpIH0pKTsKIH0KIAogV0tTdHJpbmdSZWYgV0tC
dW5kbGVGcmFtZUNvcHlNSU1FVHlwZUZvclJlc291cmNlV2l0aFVSTChXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lUmVmLCBXS1VSTFJlZiB1cmxSZWYpCiB7Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9Db3Bp
ZWRBUEkoV2ViS2l0Ojp0b0ltcGwoZnJhbWVSZWYpLT5taW1lVHlwZUZvclJlc291cmNlV2l0aFVS
TChVUkwoVVJMKCksIFdlYktpdDo6dG9XVEZTdHJpbmcodXJsUmVmKSkpKTsKKyAgICByZXR1cm4g
V2ViS2l0Ojp0b0NvcGllZEFQSShXZWJLaXQ6OnRvSW1wbChmcmFtZVJlZiktPm1pbWVUeXBlRm9y
UmVzb3VyY2VXaXRoVVJMKFVSTCB7IFdlYktpdDo6dG9XVEZTdHJpbmcodXJsUmVmKSB9KSk7CiB9
CiAKIGJvb2wgV0tCdW5kbGVGcmFtZUNvbnRhaW5zQW55Rm9ybUVsZW1lbnRzKFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWVSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IGM4YmNmMTQ3
YjVlZjUxNDJlMjhmZDRiZDI2MGQ3NDY1M2Y1MDg1OGIuLmUxOWIxZTAzMjQwYzc1YTgzYzU5OTQ3
MmFlMmVkZTQ2ZGJmYzcxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC00Njgs
NyArNDY4LDcgQEAgdm9pZCBXS0J1bmRsZVBhZ2VTZXRGb290ZXJCYW5uZXIoV0tCdW5kbGVQYWdl
UmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZUJhbm5lclJlZgogCiBib29sIFdLQnVuZGxlUGFnZUhh
c0xvY2FsRGF0YUZvclVSTChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYgdXJsUmVm
KQogewotICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChwYWdlUmVmKS0+aGFzTG9jYWxEYXRhRm9y
VVJMKFVSTChVUkwoKSwgV2ViS2l0Ojp0b1dURlN0cmluZyh1cmxSZWYpKSk7CisgICAgcmV0dXJu
IFdlYktpdDo6dG9JbXBsKHBhZ2VSZWYpLT5oYXNMb2NhbERhdGFGb3JVUkwoVVJMIHsgV2ViS2l0
Ojp0b1dURlN0cmluZyh1cmxSZWYpIH0pOwogfQogCiBib29sIFdLQnVuZGxlUGFnZUNhbkhhbmRs
ZVJlcXVlc3QoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCkBAIC04MTQsNyArODE0LDcgQEAg
dm9pZCBXS0J1bmRsZVBhZ2VDbGVhckFwcGxpY2F0aW9uQ2FjaGUoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UpCiAKIHZvaWQgV0tCdW5kbGVQYWdlQ2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBvcmlnaW4pCiB7Ci0gICAgV2ViS2l0Ojp0
b0ltcGwocGFnZSktPmNvcmVQYWdlKCktPmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuZGVsZXRl
Q2FjaGVGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKFVSTChV
UkwoKSwgV2ViS2l0Ojp0b0ltcGwob3JpZ2luKS0+c3RyaW5nKCkpKSk7CisgICAgV2ViS2l0Ojp0
b0ltcGwocGFnZSktPmNvcmVQYWdlKCktPmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuZGVsZXRl
Q2FjaGVGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKFVSTCB7
IFdlYktpdDo6dG9JbXBsKG9yaWdpbiktPnN0cmluZygpIH0pKTsKIH0KIAogdm9pZCBXS0J1bmRs
ZVBhZ2VTZXRBcHBDYWNoZU1heGltdW1TaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRf
dCBzaXplKQpAQCAtODI0LDcgKzgyNCw3IEBAIHZvaWQgV0tCdW5kbGVQYWdlU2V0QXBwQ2FjaGVN
YXhpbXVtU2l6ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qgc2l6ZSkKIAogdWludDY0
X3QgV0tCdW5kbGVQYWdlR2V0QXBwQ2FjaGVVc2FnZUZvck9yaWdpbihXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgb3JpZ2luKQogewotICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChw
YWdlKS0+Y29yZVBhZ2UoKS0+YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5kaXNrVXNhZ2VGb3JP
cmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKFVSTChVUkwoKSwgV2Vi
S2l0Ojp0b0ltcGwob3JpZ2luKS0+c3RyaW5nKCkpKSk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9J
bXBsKHBhZ2UpLT5jb3JlUGFnZSgpLT5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmRpc2tVc2Fn
ZUZvck9yaWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoVVJMIHsgV2Vi
S2l0Ojp0b0ltcGwob3JpZ2luKS0+c3RyaW5nKCkgfSkpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFn
ZVNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgb3JpZ2luLCB1aW50NjRfdCBieXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4
IGY0ZGQ1ODMxMjBiZTBjZmFkNDgwNTYyZDNiMDg1YTI1Mjg4MWRkMTUuLjYyYTdmNWNlOGJlNTI5
NDJhMmUzZTllNmFkZGRmNDZlNzg0YTRiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjg2
LDcgKzI4Niw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdl
KFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnCiB2b2lkIEluamVjdGVkQnVuZGxl
OjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IFN0cmluZyYgbG9jYXRpb24pCiB7CiAg
ICAgUGFnZTo6Zm9yRWFjaFBhZ2UoW2xvY2F0aW9uXShQYWdlJiBwYWdlKSB7Ci0gICAgICAgIHBh
Z2Uuc2V0dGluZ3MoKS5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFVSTChVUkwoKSwgbG9jYXRp
b24pKTsKKyAgICAgICAgcGFnZS5zZXR0aW5ncygpLnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24o
VVJMIHsgbG9jYXRpb24gfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAppbmRleCA1Y2YyOGZmODkxZjhlN2ZlNjhlNWQ3M2VmM2QxNWNlZTA1ODY2MmMy
Li45NzBlOTAwNmQ1OTk2OWFlZGNkZTIwOTYyYzkxYWIzNDY0NWE5OTBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzVmFsaWRGZXRjaChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IEZldGNoT3B0aW8KICAgICB9CiAKICAgICBTdHJpbmcgb3JpZ2luID0gcmVxdWVzdC5odHRwT3Jp
Z2luKCk7Ci0gICAgVVJMIHVybCB7IFVSTCgpLCBvcmlnaW4uaXNFbXB0eSgpID8gcmVmZXJyZXIg
OiBvcmlnaW4gfTsKKyAgICBVUkwgdXJsIHsgb3JpZ2luLmlzRW1wdHkoKSA/IHJlZmVycmVyIDog
b3JpZ2luIH07CiAgICAgaWYgKHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgJiYgIXByb3Rv
Y29sSG9zdEFuZFBvcnRBcmVFcXVhbCh1cmwsIHNlcnZpY2VXb3JrZXJVUkwpKSB7CiAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJTaG91bGQgbm90IGludGVyY2VwdCBh
IG5vbiBuYXZpZ2F0aW9uIGxvYWQgdGhhdCBpcyBub3Qgb3JpZ2luYXRpbmcgZnJvbSBhIHNhbWUt
b3JpZ2luIGNvbnRleHQgYXMgdGhlIHNlcnZpY2Ugd29ya2VyIFVSTCIpOwogICAgICAgICBBU1NF
UlQodXJsLmhvc3QoKSA9PSBzZXJ2aWNlV29ya2VyVVJMLmhvc3QoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVy
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lv
blN0YXRlQ29udmVyc2lvbi5jcHAKaW5kZXggNTY3ZDQ3NTFiZWU4M2EzYjNmNGY2ZTBmYTIzNzdi
ZDAwNjM1MGEyOS4uYmNkOTg3NDljMmNkMDI1ZjAwYjVjYmY0MjMwYTE3Mjc3YjIxZmZiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25T
dGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHN0
YXRpYyBSZWY8Rm9ybURhdGE+IHRvRm9ybURhdGEoY29uc3QgSFRUUEJvZHkmIGh0dHBCb2R5KQog
ICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBIVFRQQm9keTo6RWxlbWVudDo6VHlw
ZTo6QmxvYjoKLSAgICAgICAgICAgIGZvcm1EYXRhLT5hcHBlbmRCbG9iKFVSTChVUkwoKSwgZWxl
bWVudC5ibG9iVVJMU3RyaW5nKSk7CisgICAgICAgICAgICBmb3JtRGF0YS0+YXBwZW5kQmxvYihV
UkwgeyBlbGVtZW50LmJsb2JVUkxTdHJpbmcgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGM2YTZlNDYw
MzI5ZTdhMTRjMzE4YWFlM2UxZmI4NGFmYTdlOTI4ZTQuLmJhZGFmMTU4N2EyMDE5NzdlYjllNzRm
MTQ3OTc5NDdlYjI0NzJmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcApAQCAt
NjIsNyArNjIsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzZWFyY2hXaXRoR29vZ2xl
KGNvbnN0IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKICAgICBzZWFyY2hTdHJpbmcuc3RyaXBXaGl0
ZVNwYWNlKCk7CiAgICAgc2VhcmNoU3RyaW5nID0gZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNl
cyhzZWFyY2hTdHJpbmcpOwogICAgIHNlYXJjaFN0cmluZy5yZXBsYWNlKCIlMjAiX3MsICIrIl9z
KTsKLSAgICBhdXRvIHNlYXJjaFVSTCA9IFVSTCB7IHsgfSwgImh0dHBzOi8vd3d3Lmdvb2dsZS5j
b20vc2VhcmNoP3E9IiArIHNlYXJjaFN0cmluZyArICImaWU9VVRGLTgmb2U9VVRGLTgiIH07Cisg
ICAgYXV0byBzZWFyY2hVUkwgPSBVUkwgeyAiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/
cT0iICsgc2VhcmNoU3RyaW5nICsgIiZpZT1VVEYtOCZvZT1VVEYtOCIgfTsKIAogICAgIFdlYkNv
cmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvciB7IFdlYkNvcmU6OlByb2Nlc3NpbmdV
c2VyR2VzdHVyZSB9OwogICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmNoYW5nZUxvY2F0
aW9uKHNlYXJjaFVSTCwgeyB9LCBudWxscHRyLCBXZWJDb3JlOjpSZWZlcnJlclBvbGljeTo6RW1w
dHlTdHJpbmcsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5v
dEFsbG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQ
Q1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHAKaW5kZXggNTRmNDY1N2Y4NDA2NDQxZGZjNDM4ZDhjNTBmZDFiNzk1NmI4NTRm
Ny4uNDNlNDUxNzkzZjA1MThjZWE1ZmVhMzUyODU5YWQ0NjQyNjA3ZmYyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKQEAgLTEz
NjYsNyArMTM2Niw3IEBAIHN0YXRpYyBib29sIGVuY29kZUFyZ3VtZW50KElQQzo6RW5jb2RlciYg
ZW5jb2RlciwgSlNJUEMmIGpzSVBDLCBKU0NvbnRleHRSZWYgY29uCiAgICAgICAgIGF1dG8gc3Ry
aW5nID0ganNWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoc2Nv
cGUuZXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGVuY29k
ZXIgPDwgVVJMIHsgVVJMIHsgfSwgc3RyaW5nIH07CisgICAgICAgIGVuY29kZXIgPDwgVVJMIHsg
c3RyaW5nIH07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMTM3OCw3ICsxMzc4
LDcgQEAgc3RhdGljIGJvb2wgZW5jb2RlQXJndW1lbnQoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBK
U0lQQyYganNJUEMsIEpTQ29udGV4dFJlZiBjb24KICAgICAgICAgYXV0byBzdHJpbmcgPSBqc1Zh
bHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmIChzY29wZS5leGNlcHRp
b24oKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZW5jb2RlciA8PCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IFVSTCB7IFVSTCB7IH0sIHN0cmluZyB9IH07CisgICAg
ICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyBVUkwgeyBzdHJpbmcg
fSB9OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTIzYWRiYTkxODEyM2ExOWNlNDg3YzEw
YTY1Y2U2ZGY0ZTE1OTQyYS4uZWRhMzI0OWJhZDk2NjJmZmY1Mzk3Mzk5ZDA4NjdmNDg0NjdjMTkz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTE3NTksNyArMTc1OSw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoTG9hZFBhcmFtZXRlcnMm
JiBsb2FkUGFyYW1ldGVycykKICAgICBpZiAobG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0cmluZy5p
c0VtcHR5KCkpCiAgICAgICAgIGJhc2VVUkwgPSBhYm91dEJsYW5rVVJMKCk7CiAgICAgZWxzZSB7
Ci0gICAgICAgIGJhc2VVUkwgPSBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJp
bmcpOworICAgICAgICBiYXNlVVJMID0gVVJMIHsgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0cmlu
ZyB9OwogICAgICAgICBpZiAoYmFzZVVSTC5pc1ZhbGlkKCkgJiYgIWJhc2VVUkwucHJvdG9jb2xJ
c0luSFRUUEZhbWlseSgpKQogICAgICAgICAgICAgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnJlZ2lz
dGVyVVJMU2NoZW1lQXNIYW5kbGVkQnlTY2hlbWVIYW5kbGVyKGJhc2VVUkwucHJvdG9jb2woKS50
b1N0cmluZygpKTsKICAgICB9CkBAIC0xNzc1LDkgKzE3NzUsOSBAQCB2b2lkIFdlYlBhZ2U6Omxv
YWRBbHRlcm5hdGVIVE1MKExvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAg
cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCi0gICAg
VVJMIGJhc2VVUkwgPSBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nLmlzRW1wdHkoKSA/IGFi
b3V0QmxhbmtVUkwoKSA6IFVSTChVUkwoKSwgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0cmluZyk7
Ci0gICAgVVJMIHVucmVhY2hhYmxlVVJMID0gbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVVUkxT
dHJpbmcuaXNFbXB0eSgpID8gVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLnVucmVh
Y2hhYmxlVVJMU3RyaW5nKTsKLSAgICBVUkwgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwgPSBsb2Fk
UGFyYW1ldGVycy5wcm92aXNpb25hbExvYWRFcnJvclVSTFN0cmluZy5pc0VtcHR5KCkgPyBVUkwo
KSA6IFVSTChVUkwoKSwgbG9hZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJp
bmcpOworICAgIFVSTCBiYXNlVVJMID0gbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0cmluZy5pc0Vt
cHR5KCkgPyBhYm91dEJsYW5rVVJMKCkgOiBVUkwgeyBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3Ry
aW5nIH07CisgICAgVVJMIHVucmVhY2hhYmxlVVJMID0gbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFi
bGVVUkxTdHJpbmcuaXNFbXB0eSgpID8gVVJMKCkgOiBVUkwgeyBsb2FkUGFyYW1ldGVycy51bnJl
YWNoYWJsZVVSTFN0cmluZyB9OworICAgIFVSTCBwcm92aXNpb25hbExvYWRFcnJvclVSTCA9IGxv
YWRQYXJhbWV0ZXJzLnByb3Zpc2lvbmFsTG9hZEVycm9yVVJMU3RyaW5nLmlzRW1wdHkoKSA/IFVS
TCgpIDogVVJMIHsgbG9hZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcg
fTsKICAgICBhdXRvIHNoYXJlZEJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGxvYWRQYXJh
bWV0ZXJzLmRhdGEuZGF0YSgpLCBsb2FkUGFyYW1ldGVycy5kYXRhLnNpemUoKSk7CiAgICAgbV9t
YWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zZXRQcm92aXNpb25hbExvYWRFcnJvckJl
aW5nSGFuZGxlZFVSTChwcm92aXNpb25hbExvYWRFcnJvclVSTCk7CiAKQEAgLTM5MDEsNyArMzkw
MSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlCiB7CiAgICAgUmVmUHRyPEZyYWdtZW50ZWRT
aGFyZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICBpZiAoYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewotICAgICAgICBVUkwgcmVzb3VyY2VVUkwo
VVJMKCksIHJlc291cmNlVVJMU3RyaW5nKTsKKyAgICAgICAgVVJMIHJlc291cmNlVVJMIHsgcmVz
b3VyY2VVUkxTdHJpbmcgfTsKICAgICAgICAgYnVmZmVyID0gcmVzb3VyY2VEYXRhRm9yRnJhbWUo
ZnJhbWUtPmNvcmVGcmFtZSgpLCByZXNvdXJjZVVSTCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlLm1tIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC9QdXNoU2VydmljZS5tbQppbmRleCAwNThhNzY5ZTY5NmNhZWNlNjY0NTQyZDBjYTcwMDhj
ODc0YjhhN2YwLi44MGUyNDMwODQwMGJjZmM3ZWE5YmFhMGFmODI3NzlkYTVmODM1MzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2UubW0KQEAgLTU2Nyw3ICs1NjcsNyBAQCB2b2lk
IFB1c2hTZXJ2aWNlOjpkaWRSZWNlaXZlUHVzaE1lc3NhZ2UoTlNTdHJpbmcqIHRvcGljLCBOU0Rp
Y3Rpb25hcnkqIHVzZXJJbmZvLAogICAgICAgICBhdXRvIHJlY29yZCA9IFdURk1vdmUoKnJlY29y
ZFJlc3VsdCk7CiAKICAgICAgICAgaWYgKG1lc3NhZ2UuZW5jb2RpbmcgPT0gQ29udGVudEVuY29k
aW5nOjpFbXB0eSkgewotICAgICAgICAgICAgbV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcihy
ZWNvcmQuYnVuZGxlSUQsIFdlYktpdDo6V2ViUHVzaE1lc3NhZ2UgeyB7IH0sIFVSTChVUkwoKSwg
cmVjb3JkLnNjb3BlKSB9KTsKKyAgICAgICAgICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRs
ZXIocmVjb3JkLmJ1bmRsZUlELCBXZWJLaXQ6OldlYlB1c2hNZXNzYWdlIHsgeyB9LCBVUkwgeyBy
ZWNvcmQuc2NvcGUgfSB9KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIFB1c2hT
ZXJ2aWNlOjpkaWRSZWNlaXZlUHVzaE1lc3NhZ2UoTlNTdHJpbmcqIHRvcGljLCBOU0RpY3Rpb25h
cnkqIHVzZXJJbmZvLAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
bV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcihyZWNvcmQuYnVuZGxlSUQsIFdlYktpdDo6V2Vi
UHVzaE1lc3NhZ2UgeyBXVEZNb3ZlKCpkZWNyeXB0ZWRQYXlsb2FkKSwgVVJMKFVSTCgpLCByZWNv
cmQuc2NvcGUpIH0pOworICAgICAgICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyKHJlY29y
ZC5idW5kbGVJRCwgV2ViS2l0OjpXZWJQdXNoTWVzc2FnZSB7IFdURk1vdmUoKmRlY3J5cHRlZFBh
eWxvYWQpLCBVUkwgeyByZWNvcmQuc2NvcGUgfSB9KTsKIAogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vTWFy
c2hhbGxpbmdIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL01hcnNoYWxsaW5n
SGVscGVycy5jcHAKaW5kZXggYWI2ZDg1YmZmNzk3YTk5YjhlOWY4YjIyYmNjZGNjNDVkMjcwOWU3
MC4uOWI4ZjA1YzlhNWJmYzUwNGE0YzNlOTFmNzc5NTA4NGY4YjMxNzBmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vTWFyc2hhbGxpbmdIZWxwZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9NYXJzaGFsbGluZ0hlbHBlcnMuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIENGRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzIE1hcnNoYWxsaW5nSGVscGVyczo6a0lVbmtu
b3duRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzCiAKIFVSTCBNYXJzaGFsbGluZ0hlbHBlcnM6OkJT
VFJUb0tVUkwoQlNUUiB1cmxTdHIpCiB7Ci0gICAgcmV0dXJuIFVSTChVUkwoKSwgU3RyaW5nKHVy
bFN0ciwgU3lzU3RyaW5nTGVuKHVybFN0cikpKTsKKyAgICByZXR1cm4gVVJMIHsgU3RyaW5nKHVy
bFN0ciwgU3lzU3RyaW5nTGVuKHVybFN0cikpIH07CiB9CiAKIEJTVFIgTWFyc2hhbGxpbmdIZWxw
ZXJzOjpVUkxUb0JTVFIoY29uc3QgVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5j
cHAKaW5kZXggYTNkOWI5YjAwYzliNjhhOTgwZmFiZjM3ZGM4MWVlZDFmZGQ0MzVjZS4uZGZjMGFl
NTE5NjY4OTI0M2FiMGY4ZmM5MDg2NWNjOTZjNTYwZWVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51
Q2xpZW50LmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpz
ZWFyY2hXaXRoR29vZ2xlKGNvbnN0IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKICAgICBzZWFyY2hT
dHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgc2VhcmNoU3RyaW5nID0gZW5jb2RlV2l0aFVS
TEVzY2FwZVNlcXVlbmNlcyhzZWFyY2hTdHJpbmcpOwogICAgIHNlYXJjaFN0cmluZy5yZXBsYWNl
KCIlMjAiX3MsICIrIl9zKTsKLSAgICBhdXRvIHNlYXJjaFVSTCA9IFVSTCB7IHsgfSwgImh0dHBz
Oi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9IiArIHNlYXJjaFN0cmluZyArICImaWU9VVRGLTgm
b2U9VVRGLTgiIH07CisgICAgYXV0byBzZWFyY2hVUkwgPSBVUkwgeyAiaHR0cHM6Ly93d3cuZ29v
Z2xlLmNvbS9zZWFyY2g/cT0iICsgc2VhcmNoU3RyaW5nICsgIiZpZT1VVEYtOCZvZT1VVEYtOCIg
fTsKIAogICAgIFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvciB7IFdlYkNv
cmU6OlByb2Nlc3NpbmdVc2VyR2VzdHVyZSB9OwogICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRl
cigpLmNoYW5nZUxvY2F0aW9uKHNlYXJjaFVSTCwgeyB9LCBudWxscHRyLCBXZWJDb3JlOjpSZWZl
cnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkVycm9yLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkVycm9yLmNwcApp
bmRleCBmMDRmNzk5MDM1NWVhOTFkYjg1NTI2ZGRmMzhhMmJmOTM2MDgwNTg3Li4xOWRlMzcxYmVh
MWMxMTZmZDc2NmQ2YTM5NGRiNGVhODBmYmRiZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJFcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
RXJyb3IuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgVUxPTkcgV2ViRXJyb3I6OlJlbGVhc2UoKQog
CiBIUkVTVUxUIFdlYkVycm9yOjppbml0KF9Jbl8gQlNUUiBkb21haW4sIGludCBjb2RlLCBfSW5f
IEJTVFIgdXJsKQogewotICAgIG1fZXJyb3IgPSBSZXNvdXJjZUVycm9yKFN0cmluZyhkb21haW4s
IFN5c1N0cmluZ0xlbihkb21haW4pKSwgY29kZSwgVVJMKFVSTCgpLCBTdHJpbmcodXJsLCBTeXNT
dHJpbmdMZW4odXJsKSkpLCBTdHJpbmcoKSk7CisgICAgbV9lcnJvciA9IFJlc291cmNlRXJyb3Io
U3RyaW5nKGRvbWFpbiwgU3lzU3RyaW5nTGVuKGRvbWFpbikpLCBjb2RlLCBVUkwgeyBTdHJpbmco
dXJsLCBTeXNTdHJpbmdMZW4odXJsKSkgfSwgU3RyaW5nKCkpOwogICAgIHJldHVybiBTX09LOwog
fQogICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcAppbmRleCA1NThlMTNjN2YxZmRh
YTViMTI1ZDIwYmVmZTc5MWEyN2ZmNzU3MTJhLi41OTQ4YjBlYzViODBkMjc5YjI2NDM0ZjQyZjQ1
Y2ZhMTdiZjdmYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCkBAIC01NzAs
NyArNTcwLDcgQEAgdm9pZCBXZWJGcmFtZTo6bG9hZERhdGEoUmVmPFdlYkNvcmU6OkZyYWdtZW50
ZWRTaGFyZWRCdWZmZXI+JiYgZGF0YSwgQlNUUiBtaW1lVHkKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIHJlYWxseSBiZSB1c2luZyBNYXJzaGFsbGluZ0hlbHBlcnM6OkJTVFJUb0tVUkwgaGVyZSwK
ICAgICAvLyBidXQgdGhhdCB3b3VsZCB0dXJuIGEgbnVsbCBCU1RSIGludG8gYSBudWxsIFVSTCwg
YW5kIHdlIGNyYXNoIGluc2lkZSBvZgogICAgIC8vIFdlYkNvcmUgaWYgd2UgdXNlIGEgbnVsbCBV
UkwgaW4gY29uc3RydWN0aW5nIHRoZSBSZXNvdXJjZVJlcXVlc3QuCi0gICAgVVJMIGJhc2VDb3Jl
VVJMID0gVVJMKFVSTCgpLCBTdHJpbmcoYmFzZVVSTCA/IGJhc2VVUkwgOiBMIiIsIFN5c1N0cmlu
Z0xlbihiYXNlVVJMKSkpOworICAgIFVSTCBiYXNlQ29yZVVSTCB7IFN0cmluZyhiYXNlVVJMID8g
YmFzZVVSTCA6IEwiIiwgU3lzU3RyaW5nTGVuKGJhc2VVUkwpKSB9OwogCiAgICAgVVJMIGZhaWxp
bmdDb3JlVVJMID0gTWFyc2hhbGxpbmdIZWxwZXJzOjpCU1RSVG9LVVJMKGZhaWxpbmdVUkwpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGZlZTQwNGZiNzUwZTcyNTU1ZjEz
NjFmNDM5Yzg0ODc2YzYyOTg4MzIuLmRiNjJkYzY1NTkzNGY2NjFlMDA3ZWUxMmQwZDE5NDVkM2I3
OGZjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0yODEsNyArMjgxLDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgdG9TdHJpbmcoQlN0cmluZyAmYnN0cikKIAogc3RhdGlj
IGlubGluZSBVUkwgdG9VUkwoQlNUUiBic3RyKQogewotICAgIHJldHVybiBVUkwoVVJMKCksIHRv
U3RyaW5nKGJzdHIpKTsKKyAgICByZXR1cm4gVVJMIHsgdG9TdHJpbmcoYnN0cikgfTsKIH0KIAog
c3RhdGljIFN0cmluZyBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoV2ViUHJlZmVyZW5jZXMqIHBy
ZWZlcmVuY2VzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGYwNTE4MTJjMjk1OWJlZWJkZTNlODMzM2Y1NDhjOWJmZDJmNDM0Y2IuLjYzZTExMjll
MDY4OGE2NDk5MmYzOGUzYjQ5ZTU5MjViMmE3YWZiNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0wMi0yMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IG1vcmUgd2lk
ZWx5IHRoZSBuZXcgVVJMIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgaW4gYSBTdHJpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA5OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvVVJMUGFyc2VyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNoZWNrVVJM
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNoZWNrVVJMRGlmZmVyZW5jZXMpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6dGVzdFVzZXJQYXNzd29yZCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvY29jb2EvVVJMRXh0cmFzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Om1haW5Eb2N1bWVudFJlcXVl
c3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c3ViUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnJlcXVlc3RJblRvcEFuZEZyYW1lVVJMcyk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9SZWdpc3RyYWJsZURvbWFpbi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY3VybC9Db29raWVzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OkN1cmw6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9BcHBsaWNhdGlvbk1hbmlmZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0U09B
dXRob3JpemF0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU1NMS2V5R2VuZXJhdG9yLm1tOgorCiAyMDIyLTAy
LTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKDI4ODkyNT8pOiBbaU9TXSBUZXN0V2ViS2l0QVBJLlJlcXVlc3RUZXh0SW5wdXRD
b250ZXh0LlRleHRJbnRlcmFjdGlvbl9Gb2N1c2luZ1JlYWRPbmx5RWxlbWVudFNob3VsZFNjcm9s
bFRvUmV2ZWFsIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1VSTFBhcnNlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9VUkxQ
YXJzZXIuY3BwCmluZGV4IGVlMmM0YjhhOTMxNDY4ZDI5ZTYyNzMzMWYyYzhmNmU3NjVjODg5NDku
LmZlZmM0MjUwMTAxMzUyMTU2YTYzMzhlM2YzOWQyZGRjOTZjMmFlNjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1VSTFBhcnNlci5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvVVJMUGFyc2VyLmNwcApAQCAtODgsNyArODgsNyBAQCBjb25z
dCBUZXN0VGFicyB0ZXN0VGFic1ZhbHVlRm9yU3Vycm9nYXRlUGFpcnMgPSBUZXN0VGFiczo6Tm87
CiAKIHN0YXRpYyB2b2lkIGNoZWNrVVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBF
eHBlY3RlZFBhcnRzJiBwYXJ0cywgVGVzdFRhYnMgdGVzdFRhYnMgPSBUZXN0VGFiczo6WWVzKQog
ewotICAgIGF1dG8gdXJsID0gVVJMKFVSTCgpLCB1cmxTdHJpbmcpOworICAgIFVSTCB1cmwgeyB1
cmxTdHJpbmcgfTsKICAgICAKICAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5wcm90b2NvbCwgdXJs
LnByb3RvY29sKCkpKTsKICAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy51c2VyLCB1cmwudXNlcigp
KSk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIHZvaWQgY2hlY2tSZWxhdGl2ZVVSTChjb25z
dCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMU3RyaW4KIHN0YXRpYyB2
b2lkIGNoZWNrVVJMRGlmZmVyZW5jZXMoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEV4
cGVjdGVkUGFydHMmIHBhcnRzTmV3LCBjb25zdCBFeHBlY3RlZFBhcnRzJiBwYXJ0c09sZCwgVGVz
dFRhYnMgdGVzdFRhYnMgPSBUZXN0VGFiczo6WWVzKQogewogICAgIFVOVVNFRF9QQVJBTShwYXJ0
c09sZCk7IC8vIEZJWE1FOiBSZW1vdmUgYWxsIHRoZSBvbGQgZXhwZWN0ZWQgcGFydHMuCi0gICAg
YXV0byB1cmwgPSBVUkwoVVJMKCksIHVybFN0cmluZyk7CisgICAgVVJMIHVybCB7IHVybFN0cmlu
ZyB9OwogICAgIAogICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LnByb3RvY29sLCB1cmwucHJv
dG9jb2woKSkpOwogICAgIEVYUEVDVF9UUlVFKGVxKHBhcnRzTmV3LnVzZXIsIHVybC51c2VyKCkp
KTsKQEAgLTQ5Nyw4ICs0OTcsOCBAQCBURVNUX0YoV1RGX1VSTFBhcnNlciwgQmFzaWMpCiAKIHN0
YXRpYyB2b2lkIHRlc3RVc2VyUGFzc3dvcmQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3Ry
aW5nJiBkZWNvZGVkLCBjb25zdCBTdHJpbmcmIGVuY29kZWQpCiB7Ci0gICAgVVJMIHVzZXJVUkwo
VVJMKCksIG1ha2VTdHJpbmcoImh0dHA6Ly8iLCB2YWx1ZSwgIkBleGFtcGxlLmNvbS8iKSk7Ci0g
ICAgVVJMIHBhc3NVUkwoVVJMKCksIG1ha2VTdHJpbmcoImh0dHA6Ly91c2VyOiIsIHZhbHVlLCAi
QGV4YW1wbGUuY29tLyIpKTsKKyAgICBVUkwgdXNlclVSTCB7IG1ha2VTdHJpbmcoImh0dHA6Ly8i
LCB2YWx1ZSwgIkBleGFtcGxlLmNvbS8iKSB9OworICAgIFVSTCBwYXNzVVJMIHsgbWFrZVN0cmlu
ZygiaHR0cDovL3VzZXI6IiwgdmFsdWUsICJAZXhhbXBsZS5jb20vIikgfTsKICAgICBFWFBFQ1Rf
RVEoZW5jb2RlZCwgdXNlclVSTC5lbmNvZGVkVXNlcigpKTsKICAgICBFWFBFQ1RfRVEoZW5jb2Rl
ZCwgcGFzc1VSTC5lbmNvZGVkUGFzc3dvcmQoKSk7CiAgICAgRVhQRUNUX0VRKGRlY29kZWQsIHVz
ZXJVUkwudXNlcigpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L2NvY29hL1VSTEV4dHJhcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29h
L1VSTEV4dHJhcy5tbQppbmRleCBhNzAxOTg4ODVhOGVkNjA0ZTQyNjNiMGE4NWRlOWU0ZDY0OWY4
MzNhLi5iYmZhOTQzNGNlZmQwZDJhOWEzMTdmMzI5YTJkNmFhOWEyNGIzOWFiIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9VUkxFeHRyYXMubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvVVJMRXh0cmFzLm1tCkBAIC0yMjUs
MjQgKzIyNSwyNCBAQCBURVNUKFdURl9VUkxFeHRyYXMsIFVSTEV4dHJhc19QYXJzaW5nRXJyb3Ip
CiAgICAgTlNTdHJpbmcgKmVuY29kZWRIb3N0TmFtZSA9IFdURjo6ZW5jb2RlSG9zdE5hbWUoQCJo
dHRwOi8v76O/LmNvbSIpOwogICAgIEVYUEVDVF9UUlVFKGVuY29kZWRIb3N0TmFtZSA9PSBuaWwp
OwogCi0gICAgV1RGOjpVUkwgdXJsMihVUkwoKSwgdXRmMTZTdHJpbmcodSJodHRwOi8vXHUyMjY3
XHUyMjJFXHVGRTYzXHUwNjYxXHUwNkYxIikpOworICAgIFdURjo6VVJMIHVybDIgeyB1dGYxNlN0
cmluZyh1Imh0dHA6Ly9cdTIyNjdcdTIyMkVcdUZFNjNcdTA2NjFcdTA2RjEiKSB9OwogICAgIEVY
UEVDVF9TVFJFUShbW3VybDIgYWJzb2x1dGVTdHJpbmddIFVURjhTdHJpbmddLCAiaHR0cDovLyVF
MiU4OSVBNyVFMiU4OCVBRSVFRiVCOSVBMyVEOSVBMSVEQiVCMSIpOwogCiAgICAgc3RkOjphcnJh
eTxVQ2hhciwgMz4gdXRmMTYgeyAweEMyLCAweEI2LCAweDAwIH07Ci0gICAgV1RGOjpVUkwgdXJs
MyhVUkwoKSwgU3RyaW5nKHV0ZjE2LmRhdGEoKSkpOworICAgIFdURjo6VVJMIHVybDMgeyBTdHJp
bmcodXRmMTYuZGF0YSgpKSB9OwogICAgIEVYUEVDVF9GQUxTRSh1cmwzLnN0cmluZygpLmlzOEJp
dCgpKTsKICAgICBFWFBFQ1RfRkFMU0UodXJsMy5pc1ZhbGlkKCkpOwogICAgIEVYUEVDVF9TVFJF
UShbW3VybDMgYWJzb2x1dGVTdHJpbmddIFVURjhTdHJpbmddLCAiJUMzJTgyJUMyJUI2Iik7CiAg
ICAgCiAgICAgc3RkOjphcnJheTxMQ2hhciwgMz4gbGF0aW4xIHsgMHhDMiwgMHhCNiwgMHgwMCB9
OwotICAgIFdURjo6VVJMIHVybDQoVVJMKCksIFN0cmluZyhsYXRpbjEuZGF0YSgpKSk7CisgICAg
V1RGOjpVUkwgdXJsNCB7IFN0cmluZyhsYXRpbjEuZGF0YSgpKSB9OwogICAgIEVYUEVDVF9GQUxT
RSh1cmw0LmlzVmFsaWQoKSk7CiAgICAgRVhQRUNUX1RSVUUodXJsNC5zdHJpbmcoKS5pczhCaXQo
KSk7CiAgICAgRVhQRUNUX1NUUkVRKFtbdXJsNCBhYnNvbHV0ZVN0cmluZ10gVVRGOFN0cmluZ10s
ICIlQzMlODIlQzIlQjYiKTsKIAogICAgIGNoYXIgYnVmZmVyWzEwMF07CiAgICAgbWVtc2V0KGJ1
ZmZlciwgMCwgc2l6ZW9mKGJ1ZmZlcikpOwotICAgIFdURjo6VVJMIHVybDUoVVJMKCksICJmaWxl
Oi8vL0ElQzMlQTclQzMlQTNvLmh0bWwiX3MpOworICAgIFdURjo6VVJMIHVybDUgeyAiZmlsZTov
Ly9BJUMzJUE3JUMzJUEzby5odG1sIl9zdHIgfTsKICAgICBDRlVSTEdldEZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbih1cmw1LmNyZWF0ZUNGVVJMKCkuZ2V0KCksIGZhbHNlLCByZWludGVycHJldF9j
YXN0PFVJbnQ4Kj4oYnVmZmVyKSwgc2l6ZW9mKGJ1ZmZlcikpOwogICAgIEVYUEVDVF9TVFJFUShi
dWZmZXIsICIvQWPMp2HMg28uaHRtbCIpOwogfQpAQCAtMjU4LDcgKzI1OCw3IEBAIFRFU1QoV1RG
X1VSTEV4dHJhcywgVVJMRXh0cmFzX05pbCkKIAogVEVTVChXVEZfVVJMRXh0cmFzLCBDcmVhdGVO
U0FycmF5KQogewotICAgIFZlY3RvcjxVUkw+IHVybHMgeyBVUkwoVVJMKCksICJodHRwczovL3dl
YmtpdC5vcmcvIikgfTsKKyAgICBWZWN0b3I8VVJMPiB1cmxzIHsgVVJMIHsgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8iX3N0ciB9IH07CiAgICAgYXV0byBhcnJheSA9IGNyZWF0ZU5TQXJyYXkodXJscyk7
CiAgICAgRVhQRUNUX1RSVUUoW2FycmF5LmdldCgpWzBdIGlzS2luZE9mQ2xhc3M6TlNVUkwuY2xh
c3NdKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IDgxNzI3NWFlNDY4MWFhNGI5M2JkZWMyYjk5Nzkw
ZDdkOGVkODEzZjAuLjkyOWMyOWUyNGExNjY4ZWNlZjJiNTJmY2FhNGVkOTI5MGRkNzQ2MmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcApAQCAtMTk1LDE5ICsxOTUsMTkgQEAgdm9pZCBzdGF0aWMgdGVzdFJlcXVl
c3RJbXBsKGludCBsaW5lLCBjb25zdCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bnMKIAogc3RhdGljIFJlc291cmNlTG9hZEluZm8gbWFpbkRvY3VtZW50UmVxdWVzdChjb25zdCBj
aGFyKiB1cmxTdHJpbmcsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5cGU6
OkRvY3VtZW50KQogewotICAgIFVSTCB1cmwoVVJMKCksIHVybFN0cmluZyk7CisgICAgVVJMIHVy
bCB7IHVybFN0cmluZyB9OwogICAgIHJldHVybiB7IHVybCwgdXJsLCB1cmwsIHJlc291cmNlVHlw
ZSB9OwogfQogCiBzdGF0aWMgUmVzb3VyY2VMb2FkSW5mbyBzdWJSZXNvdXJjZVJlcXVlc3QoY29u
c3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiBtYWluRG9jdW1lbnRVUkxTdHJpbmcsIFJlc291cmNl
VHlwZSByZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5cGU6OkRvY3VtZW50KQogewotICAgIFVSTCBt
YWluRG9jdW1lbnRVUkwoVVJMKCksIG1haW5Eb2N1bWVudFVSTFN0cmluZyk7Ci0gICAgcmV0dXJu
IHsgVVJMKFVSTCgpLCB1cmwpLCBtYWluRG9jdW1lbnRVUkwsIG1haW5Eb2N1bWVudFVSTCwgcmVz
b3VyY2VUeXBlIH07CisgICAgVVJMIG1haW5Eb2N1bWVudFVSTCB7IG1haW5Eb2N1bWVudFVSTFN0
cmluZyB9OworICAgIHJldHVybiB7IFVSTCB7IHVybCB9LCBtYWluRG9jdW1lbnRVUkwsIG1haW5E
b2N1bWVudFVSTCwgcmVzb3VyY2VUeXBlIH07CiB9CiAKIHN0YXRpYyBSZXNvdXJjZUxvYWRJbmZv
IHJlcXVlc3RJblRvcEFuZEZyYW1lVVJMcyhjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRv
cFVSTCwgY29uc3QgY2hhciogZnJhbWVVUkwsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUgPSBS
ZXNvdXJjZVR5cGU6OkRvY3VtZW50KQogewotICAgIHJldHVybiB7IFVSTChVUkwoKSwgdXJsKSwg
VVJMKFVSTCgpLCB0b3BVUkwpLCBVUkwoVVJMKCksIGZyYW1lVVJMKSwgcmVzb3VyY2VUeXBlIH07
CisgICAgcmV0dXJuIHsgVVJMIHsgdXJsIH0sIFVSTCB7IHRvcFVSTCB9LCBVUkwgeyBmcmFtZVVS
TCB9LCByZXNvdXJjZVR5cGUgfTsKIH0KIAogQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRl
bnNpb25zQmFja2VuZCBtYWtlQmFja2VuZChjb25zdCBjaGFyKiBqc29uKQpAQCAtMTEzOCwxMyAr
MTEzOCwxMyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIExvYWRUeXBlKQogICAgICAg
ICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwiYWx3YXlzYmxvY2sucGRmXCJ9fV0iKTsKICAgICAKICAgICB0ZXN0UmVxdWVzdChi
YWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZyIpLCB7IH0pOwot
ICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIHsgVVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmci
KSwgVVJMKFVSTCgpLCAiaHR0cDovL25vdF93ZWJraXQub3JnIiksIFVSTChVUkwoKSwgImh0dHA6
Ly9ub3Rfd2Via2l0Lm9yZyIpLCBSZXNvdXJjZVR5cGU6OkRvY3VtZW50IH0sIHsgdmFyaWFudElu
ZGV4PENvbnRlbnRFeHRlbnNpb25zOjpCbG9ja0xvYWRBY3Rpb24+IH0pOworICAgIHRlc3RSZXF1
ZXN0KGJhY2tlbmQsIHsgVVJMIHsgImh0dHA6Ly93ZWJraXQub3JnIl9zdHIgfSwgVVJMIHsgImh0
dHA6Ly9ub3Rfd2Via2l0Lm9yZyJfc3RyIH0sIFVSTCB7ICJodHRwOi8vbm90X3dlYmtpdC5vcmci
X3N0ciB9LCBSZXNvdXJjZVR5cGU6OkRvY3VtZW50IH0sIHsgdmFyaWFudEluZGV4PENvbnRlbnRF
eHRlbnNpb25zOjpCbG9ja0xvYWRBY3Rpb24+IH0pOwogICAgICAgICAKICAgICB0ZXN0UmVxdWVz
dChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2hhdHdnLm9yZyIpLCB7IHZh
cmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tMb2FkQWN0aW9uPiB9KTsKLSAgICB0
ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTChVUkwoKSwgImh0dHA6Ly93aGF0d2cub3JnIiksIFVS
TChVUkwoKSwgImh0dHA6Ly9ub3Rfd2hhdHdnLm9yZyIpLCBVUkwoVVJMKCksICJodHRwOi8vbm90
X3doYXR3Zy5vcmciKSwgUmVzb3VyY2VUeXBlOjpEb2N1bWVudCB9LCB7IH0pOworICAgIHRlc3RS
ZXF1ZXN0KGJhY2tlbmQsIHsgVVJMIHsgImh0dHA6Ly93aGF0d2cub3JnIl9zdHIgfSwgVVJMIHsg
Imh0dHA6Ly9ub3Rfd2hhdHdnLm9yZyJfc3RyIH0sIFVSTCB7ICJodHRwOi8vbm90X3doYXR3Zy5v
cmciX3N0ciB9LCBSZXNvdXJjZVR5cGU6OkRvY3VtZW50IH0sIHsgfSk7CiAgICAgCiAgICAgdGVz
dFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL2Zvb2Jhci5vcmcv
YWx3YXlzYmxvY2sucGRmIiksIHsgdmFyaWFudEluZGV4PENvbnRlbnRFeHRlbnNpb25zOjpCbG9j
a0xvYWRBY3Rpb24+IH0pOwotICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIHsgVVJMKFVSTCgpLCAi
aHR0cDovL2Zvb2Jhci5vcmcvYWx3YXlzYmxvY2sucGRmIiksIFVSTChVUkwoKSwgImh0dHA6Ly9u
b3RfZm9vYmFyLm9yZy9hbHdheXNibG9jay5wZGYiKSwgVVJMKFVSTCgpLCAiaHR0cDovL25vdF9m
b29iYXIub3JnL2Fsd2F5c2Jsb2NrLnBkZiIpLCBSZXNvdXJjZVR5cGU6OkRvY3VtZW50IH0sIHsg
dmFyaWFudEluZGV4PENvbnRlbnRFeHRlbnNpb25zOjpCbG9ja0xvYWRBY3Rpb24+IH0pOworICAg
IHRlc3RSZXF1ZXN0KGJhY2tlbmQsIHsgVVJMIHsgImh0dHA6Ly9mb29iYXIub3JnL2Fsd2F5c2Js
b2NrLnBkZiJfc3RyIH0sIFVSTCB7ICJodHRwOi8vbm90X2Zvb2Jhci5vcmcvYWx3YXlzYmxvY2su
cGRmIl9zdHIgfSwgVVJMIHsgImh0dHA6Ly9ub3RfZm9vYmFyLm9yZy9hbHdheXNibG9jay5wZGYi
X3N0ciB9LCBSZXNvdXJjZVR5cGU6OkRvY3VtZW50IH0sIHsgdmFyaWFudEluZGV4PENvbnRlbnRF
eHRlbnNpb25zOjpCbG9ja0xvYWRBY3Rpb24+IH0pOwogfQogCiBURVNUX0YoQ29udGVudEV4dGVu
c2lvblRlc3QsIFJlc291cmNlVHlwZSkKQEAgLTExODEsOCArMTE4MSw4IEBAIFRFU1RfRihDb250
ZW50RXh0ZW5zaW9uVGVzdCwgUmVzb3VyY2VPckxvYWRUeXBlTWF0Y2hpbmdFdmVyeXRoaW5nKQog
ICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiaWdub3JlLXByZXZpb3VzLXJ1bGVzXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIi4qXCIsXCJsb2FkLXR5cGVcIjpbXCJmaXJz
dC1wYXJ0eVwiXX19XSIpOwogICAgIAogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1
bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnIiksIHsgfSwgMCk7Ci0gICAgdGVzdFJlcXVl
c3QoYmFja2VuZCwgeyBVUkwoVVJMKCksICJodHRwOi8vd2Via2l0Lm9yZyIpLCBVUkwoVVJMKCks
ICJodHRwOi8vbm90X3dlYmtpdC5vcmciKSwgVVJMKFVSTCgpLCAiaHR0cDovL25vdF93ZWJraXQu
b3JnIiksIFJlc291cmNlVHlwZTo6RG9jdW1lbnQgfSwgeyB2YXJpYW50SW5kZXg8Q29udGVudEV4
dGVuc2lvbnM6OkJsb2NrQ29va2llc0FjdGlvbj4gfSk7Ci0gICAgdGVzdFJlcXVlc3QoYmFja2Vu
ZCwgeyBVUkwoVVJMKCksICJodHRwOi8vd2Via2l0Lm9yZyIpLCBVUkwoVVJMKCksICJodHRwOi8v
bm90X3dlYmtpdC5vcmciKSwgVVJMKFVSTCgpLCAiaHR0cDovL25vdF93ZWJraXQub3JnIiksIFJl
c291cmNlVHlwZTo6SW1hZ2UgfSwgeyB2YXJpYW50SW5kZXg8Q29udGVudEV4dGVuc2lvbnM6OkJs
b2NrQ29va2llc0FjdGlvbj4sIHZhcmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tM
b2FkQWN0aW9uPiB9KTsKKyAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTCB7ICJodHRwOi8v
d2Via2l0Lm9yZyJfc3RyIH0sIFVSTCB7ICJodHRwOi8vbm90X3dlYmtpdC5vcmciX3N0ciB9LCBV
UkwgeyAiaHR0cDovL25vdF93ZWJraXQub3JnIl9zdHIgfSwgUmVzb3VyY2VUeXBlOjpEb2N1bWVu
dCB9LCB7IHZhcmlhbnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tDb29raWVzQWN0aW9u
PiB9KTsKKyAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7IFVSTCB7ICJodHRwOi8vd2Via2l0Lm9y
ZyJfc3RyIH0sIFVSTCB7ICJodHRwOi8vbm90X3dlYmtpdC5vcmciX3N0ciB9LCBVUkwgeyAiaHR0
cDovL25vdF93ZWJraXQub3JnIl9zdHIgfSwgUmVzb3VyY2VUeXBlOjpJbWFnZSB9LCB7IHZhcmlh
bnRJbmRleDxDb250ZW50RXh0ZW5zaW9uczo6QmxvY2tDb29raWVzQWN0aW9uPiwgdmFyaWFudElu
ZGV4PENvbnRlbnRFeHRlbnNpb25zOjpCbG9ja0xvYWRBY3Rpb24+IH0pOwogfQogICAgIAogVEVT
VF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBXaWRlTkZBKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dlZEluU3RhdHVzLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnZWRJblN0YXR1cy5jcHAKaW5kZXggMzU2NGU4OGRj
MWI1ZWE3Mjg2YmNiZjI5NzI4MGFmZGFlZDgyOGViZC4uOGVhNGU0M2VjNDQ2YjUyNmEzMThkZjQy
YzQ0Y2IyNDM5MmU4YThiNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0xvZ2dlZEluU3RhdHVzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvTG9nZ2VkSW5TdGF0dXMuY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKIAogVEVTVChMb2dnZWRJblN0YXR1cywgRGVmYXVsdEV4cGlyeVdlYkF1
dGhuKQogewotICAgIFJlZ2lzdHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgeyB9LCAi
aHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9IH07CisgICAgUmVnaXN0cmFibGVEb21haW4g
bG9naW5Eb21haW4geyBVUkwgeyAiaHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9IH07CiAK
ICAgICBhdXRvIGxvZ2dlZEluUmVzdWx0ID0gTG9nZ2VkSW5TdGF0dXM6OmNyZWF0ZShsb2dpbkRv
bWFpbiwgImFkbWluIl9zLCBMb2dnZWRJblN0YXR1czo6Q3JlZGVudGlhbFRva2VuVHlwZTo6SFRU
UFN0YXRlVG9rZW4sIExvZ2dlZEluU3RhdHVzOjpBdXRoZW50aWNhdGlvblR5cGU6OldlYkF1dGhu
KTsKICAgICBhdXRvJiBsb2dnZWRJbiA9IGxvZ2dlZEluUmVzdWx0LnJldHVyblZhbHVlKCkuZ2V0
KCk7CkBAIC01Niw3ICs1Niw3IEBAIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIERlZmF1bHRFeHBpcnlX
ZWJBdXRobikKIAogVEVTVChMb2dnZWRJblN0YXR1cywgRGVmYXVsdEV4cGlyeVBhc3N3b3JkTWFu
YWdlcikKIHsKLSAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7IHsgfSwg
Imh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OworICAgIFJlZ2lzdHJhYmxlRG9tYWlu
IGxvZ2luRG9tYWluIHsgVVJMIHsgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9Owog
CiAgICAgYXV0byBsb2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3RhdHVzOjpjcmVhdGUobG9naW5E
b21haW4sICJhZG1pbiJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5cGU6OkhU
VFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpQYXNzd29y
ZE1hbmFnZXIpOwogICAgIGF1dG8mIGxvZ2dlZEluID0gbG9nZ2VkSW5SZXN1bHQucmV0dXJuVmFs
dWUoKS5nZXQoKTsKQEAgLTY5LDcgKzY5LDcgQEAgVEVTVChMb2dnZWRJblN0YXR1cywgRGVmYXVs
dEV4cGlyeVBhc3N3b3JkTWFuYWdlcikKIAogVEVTVChMb2dnZWRJblN0YXR1cywgRGVmYXVsdEV4
cGlyeVVubWFuYWdlZCkKIHsKLSAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVS
TCB7IHsgfSwgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OworICAgIFJlZ2lzdHJh
YmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20i
X3MgfSB9OwogCiAgICAgYXV0byBsb2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3RhdHVzOjpjcmVh
dGUobG9naW5Eb21haW4sICJhZG1pbiJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tl
blR5cGU6OkhUVFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBl
OjpVbm1hbmFnZWQpOwogICAgIGF1dG8mIGxvZ2dlZEluID0gbG9nZ2VkSW5SZXN1bHQucmV0dXJu
VmFsdWUoKS5nZXQoKTsKQEAgLTgyLDcgKzgyLDcgQEAgVEVTVChMb2dnZWRJblN0YXR1cywgRGVm
YXVsdEV4cGlyeVVubWFuYWdlZCkKIAogVEVTVChMb2dnZWRJblN0YXR1cywgQ3VzdG9tRXhwaXJ5
QmVsb3dMb25nKQogewotICAgIFJlZ2lzdHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsg
eyB9LCAiaHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9IH07CisgICAgUmVnaXN0cmFibGVE
b21haW4gbG9naW5Eb21haW4geyBVUkwgeyAiaHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9
IH07CiAKICAgICBhdXRvIGN1c3RvbUV4cGlyeSA9IExvZ2dlZEluU3RhdHVzOjpUaW1lVG9MaXZl
TG9uZyAtIDQ4X2g7CiAgICAgYXV0byBsb2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3RhdHVzOjpj
cmVhdGUobG9naW5Eb21haW4sICJhZG1pbiJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxU
b2tlblR5cGU6OkhUVFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25U
eXBlOjpXZWJBdXRobiwgY3VzdG9tRXhwaXJ5KTsKQEAgLTk2LDcgKzk2LDcgQEAgVEVTVChMb2dn
ZWRJblN0YXR1cywgQ3VzdG9tRXhwaXJ5QmVsb3dMb25nKQogCiBURVNUKExvZ2dlZEluU3RhdHVz
LCBDdXN0b21FeHBpcnlCZWxvd1Nob3J0KQogewotICAgIFJlZ2lzdHJhYmxlRG9tYWluIGxvZ2lu
RG9tYWluIHsgVVJMIHsgeyB9LCAiaHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9IH07Cisg
ICAgUmVnaXN0cmFibGVEb21haW4gbG9naW5Eb21haW4geyBVUkwgeyAiaHR0cHM6Ly9sb2dpbi5l
eGFtcGxlLmNvbSJfcyB9IH07CiAKICAgICBhdXRvIGN1c3RvbUV4cGlyeSA9IExvZ2dlZEluU3Rh
dHVzOjpUaW1lVG9MaXZlU2hvcnQgLSA0OF9oOwogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBM
b2dnZWRJblN0YXR1czo6Y3JlYXRlKGxvZ2luRG9tYWluLCAiYWRtaW4iX3MsIExvZ2dlZEluU3Rh
dHVzOjpDcmVkZW50aWFsVG9rZW5UeXBlOjpIVFRQU3RhdGVUb2tlbiwgTG9nZ2VkSW5TdGF0dXM6
OkF1dGhlbnRpY2F0aW9uVHlwZTo6UGFzc3dvcmRNYW5hZ2VyLCBjdXN0b21FeHBpcnkpOwpAQCAt
MTEwLDcgKzExMCw3IEBAIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIEN1c3RvbUV4cGlyeUJlbG93U2hv
cnQpCiAKIFRFU1QoTG9nZ2VkSW5TdGF0dXMsIFJlbmV3ZWRFeHBpcnkpCiB7Ci0gICAgUmVnaXN0
cmFibGVEb21haW4gbG9naW5Eb21haW4geyBVUkwgeyB7IH0sICJodHRwczovL2xvZ2luLmV4YW1w
bGUuY29tIl9zIH0gfTsKKyAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7IFVSTCB7
ICJodHRwczovL2xvZ2luLmV4YW1wbGUuY29tIl9zIH0gfTsKIAogICAgIGF1dG8gY3VzdG9tRXhw
aXJ5ID0gTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVTaG9ydCAtIDQ4X2g7CiAgICAgYXV0byBs
b2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3RhdHVzOjpjcmVhdGUobG9naW5Eb21haW4sICJhZG1p
biJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5cGU6OkhUVFBTdGF0ZVRva2Vu
LCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpXZWJBdXRobiwgY3VzdG9tRXhw
aXJ5KTsKQEAgLTEzMiw3ICsxMzIsNyBAQCBURVNUKExvZ2dlZEluU3RhdHVzLCBSZW5ld2VkRXhw
aXJ5KQogCiBURVNUKExvZ2dlZEluU3RhdHVzLCBJbnZhbGlkVXNlcm5hbWVzKQogewotICAgIFJl
Z2lzdHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgeyB9LCAiaHR0cHM6Ly9sb2dpbi5l
eGFtcGxlLmNvbSJfcyB9IH07CisgICAgUmVnaXN0cmFibGVEb21haW4gbG9naW5Eb21haW4geyBV
UkwgeyAiaHR0cHM6Ly9sb2dpbi5leGFtcGxlLmNvbSJfcyB9IH07CiAKICAgICAvLyBXaGl0ZXNw
YWNlIGlzIG5vdCBhbGxvd2VkLgogICAgIGF1dG8gbG9nZ2VkSW5SZXN1bHQgPSBMb2dnZWRJblN0
YXR1czo6Y3JlYXRlKGxvZ2luRG9tYWluLCAiSSB1c2Ugc3BhY2VzIl9zLCBMb2dnZWRJblN0YXR1
czo6Q3JlZGVudGlhbFRva2VuVHlwZTo6SFRUUFN0YXRlVG9rZW4sIExvZ2dlZEluU3RhdHVzOjpB
dXRoZW50aWNhdGlvblR5cGU6OldlYkF1dGhuKTsKQEAgLTE1Miw3ICsxNTIsNyBAQCBURVNUKExv
Z2dlZEluU3RhdHVzLCBJbnZhbGlkVXNlcm5hbWVzKQogCiBURVNUKExvZ2dlZEluU3RhdHVzLCBD
bGFtcGVkRXhwaXJ5TG9uZykKIHsKLSAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2dpbkRvbWFpbiB7
IFVSTCB7IHsgfSwgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OworICAgIFJlZ2lz
dHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5j
b20iX3MgfSB9OwogCiAgICAgLy8gVG9vIGxvbmcgZXhwaXJpZXMgZm9yIG1hbmFnZWQgYXV0aCB0
eXBlcyBzaG91bGQgYmUgY2xhbXBlZCB0byBMb2dnZWRJblN0YXR1czo6VGltZVRvTGl2ZUxvbmcu
CiAgICAgYXV0byBsb2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3RhdHVzOjpjcmVhdGUobG9naW5E
b21haW4sICJhZG1pbiJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRlbnRpYWxUb2tlblR5cGU6OkhU
VFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGljYXRpb25UeXBlOjpXZWJBdXRo
biwgTG9nZ2VkSW5TdGF0dXM6OlRpbWVUb0xpdmVMb25nICsgMjRfaCk7CkBAIC0xNzQsNyArMTc0
LDcgQEAgVEVTVChMb2dnZWRJblN0YXR1cywgQ2xhbXBlZEV4cGlyeUxvbmcpCiAKIFRFU1QoTG9n
Z2VkSW5TdGF0dXMsIENsYW1wZWRFeHBpcnlTaG9ydCkKIHsKLSAgICBSZWdpc3RyYWJsZURvbWFp
biBsb2dpbkRvbWFpbiB7IFVSTCB7IHsgfSwgImh0dHBzOi8vbG9naW4uZXhhbXBsZS5jb20iX3Mg
fSB9OworICAgIFJlZ2lzdHJhYmxlRG9tYWluIGxvZ2luRG9tYWluIHsgVVJMIHsgImh0dHBzOi8v
bG9naW4uZXhhbXBsZS5jb20iX3MgfSB9OwogCiAgICAgLy8gVG9vIGxvbmcgZXhwaXJpZXMgZm9y
IHVubWFuYWdlZCBhdXRoIHR5cGVzIHNob3VsZCBiZSBjbGFtcGVkIHRvIExvZ2dlZEluU3RhdHVz
OjpUaW1lVG9MaXZlU2hvcnQuCiAgICAgYXV0byBsb2dnZWRJblJlc3VsdCA9IExvZ2dlZEluU3Rh
dHVzOjpjcmVhdGUobG9naW5Eb21haW4sICJhZG1pbiJfcywgTG9nZ2VkSW5TdGF0dXM6OkNyZWRl
bnRpYWxUb2tlblR5cGU6OkhUVFBTdGF0ZVRva2VuLCBMb2dnZWRJblN0YXR1czo6QXV0aGVudGlj
YXRpb25UeXBlOjpVbm1hbmFnZWQsIExvZ2dlZEluU3RhdHVzOjpUaW1lVG9MaXZlU2hvcnQgKyAy
NF9oKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDVlNzc3NjZiYWQ5YTcwNDI1YWFi
MzljY2NkMjFiMGE4MTg0ZmQ1ODcuLmUxYWNhYjczYWYzNGMzNGJhYjdjYjdkOTU3NmY5OTIwYmQ4
NDE3MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtMzYsOCArMzYsOCBAQCBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIGNvbnN0ZXhwciB1aW50MzJfdCBtaW42Qml0VmFsdWUg
eyAwIH07CiAKLWNvbnN0IFVSTCB3ZWJLaXRVUkwgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmci
X3MgfTsKLWNvbnN0IFVSTCBleGFtcGxlVVJMIHsgeyB9LCAiaHR0cHM6Ly9leGFtcGxlLmNvbSJf
cyB9OworY29uc3QgVVJMIHdlYktpdFVSTCB7ICJodHRwczovL3dlYmtpdC5vcmciX3MgfTsKK2Nv
bnN0IFVSTCBleGFtcGxlVVJMIHsgImh0dHBzOi8vZXhhbXBsZS5jb20iX3MgfTsKIGNvbnN0IFVS
TCBlbXB0eVVSTCB7IH07CiAKIC8vIFBvc2l0aXZlIHRlc3QgY2FzZXMuCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmNwcApp
bmRleCBiMjdkNTA4ZDk1ZGNhMzBkNWQyOTc1NTg2M2U4YTdlOWI4ZDM3ZjhiLi40NjI3NjVjYTE1
ZGU3NzBkNzlhNDNhM2I3ZTk2NGRkMDQ0OTI4ODc3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5jcHAKQEAgLTM0LDE5
ICszNCwxOSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoUmVnaXN0cmFibGVE
b21haW4sIFN0cmluZ1ZzVVJMKQogewotICAgIFVSTCB3ZWJraXRVUkwgeyBVUkwoKSwgImh0dHBz
Oi8vd2Via2l0Lm9yZyIgfTsKKyAgICBVUkwgd2Via2l0VVJMIHsgImh0dHBzOi8vd2Via2l0Lm9y
ZyJfc3RyIH07CiAgICAgUmVnaXN0cmFibGVEb21haW4gd2Via2l0RG9tYWluRnJvbVVSTCB7IHdl
YmtpdFVSTCB9OwogICAgIGF1dG8gd2Via2l0RG9tYWluRnJvbVN0cmluZyA9IFJlZ2lzdHJhYmxl
RG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoIndlYmtp
dC5vcmciKTsKIAogICAgIEFTU0VSVF9FUSh3ZWJraXREb21haW5Gcm9tVVJMLCB3ZWJraXREb21h
aW5Gcm9tU3RyaW5nKTsKIAotICAgIFVSTCBsb2NhbGhvc3RVUkwgeyBVUkwoKSwgImh0dHBzOi8v
bG9jYWxob3N0OjgwMDAiIH07CisgICAgVVJMIGxvY2FsaG9zdFVSTCB7ICJodHRwczovL2xvY2Fs
aG9zdDo4MDAwIl9zdHIgfTsKICAgICBSZWdpc3RyYWJsZURvbWFpbiBsb2NhbGhvc3REb21haW5G
cm9tVVJMIHsgbG9jYWxob3N0VVJMIH07CiAgICAgYXV0byBsb2NhbGhvc3REb21haW5Gcm9tU3Ry
aW5nID0gUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURv
bWFpblN0cmluZygibG9jYWxob3N0Iik7CiAKICAgICBBU1NFUlRfRVEobG9jYWxob3N0RG9tYWlu
RnJvbVVSTCwgbG9jYWxob3N0RG9tYWluRnJvbVN0cmluZyk7CiAKLSAgICBVUkwgZmlsZVVSTCB7
IFVSTCgpLCAiZmlsZTovLy9zb21lL2ZpbGUiIH07CisgICAgVVJMIGZpbGVVUkwgeyAiZmlsZTov
Ly9zb21lL2ZpbGUiX3N0ciB9OwogICAgIFJlZ2lzdHJhYmxlRG9tYWluIGZpbGVEb21haW5Gcm9t
VVJMIHsgZmlsZVVSTCB9OwogICAgIGF1dG8gZmlsZURvbWFpbkZyb21TdHJpbmcgPSBSZWdpc3Ry
YWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKCIi
KTsKICAgICAKQEAgLTU1LDEyICs1NSwxMiBAQCBURVNUKFJlZ2lzdHJhYmxlRG9tYWluLCBTdHJp
bmdWc1VSTCkKIAogVEVTVChSZWdpc3RyYWJsZURvbWFpbiwgTWF0Y2hlc1VSTHMpCiB7Ci0gICAg
VVJMIHdlYmtpdFVSTCB7IFVSTCgpLCAiaHR0cHM6Ly93ZWJraXQub3JnIiB9OwotICAgIFVSTCB3
ZWJraXRVUkxXaXRoUGF0aCB7IFVSTCgpLCAiaHR0cHM6Ly93ZWJraXQub3JnL3JvYWQvdG8vbm93
aGVyZS8iIH07Ci0gICAgVVJMIHdlYmtpdFN1YmRvbWFpblVSTCB7IFVSTCgpLCAiaHR0cHM6Ly9z
dWIuZG9tYWluLndlYmtpdC5vcmciIH07Ci0gICAgVVJMIHdlYmtpdE90aGVyU3ViZG9tYWluVVJM
IHsgVVJMKCksICJodHRwczovL3N1Yi5vdGhlci53ZWJraXQub3JnIiB9OwotICAgIFVSTCB3ZWJr
aXREdXBsaWNhdGVTdWJkb21haW5VUkwgeyBVUkwoKSwgImh0dHBzOi8vZG9tYWluLmRvbWFpbi53
ZWJraXQub3JnIiB9OwotICAgIFVSTCB3ZWJraXRTdWJkb21haW5VUkxXaXRoUGF0aCB7IFVSTCgp
LCAiaHR0cHM6Ly9zdWIuZG9tYWluLndlYmtpdC5vcmcvcm9hZC90by9ub3doZXJlLyIgfTsKKyAg
ICBVUkwgd2Via2l0VVJMIHsgImh0dHBzOi8vd2Via2l0Lm9yZyJfc3RyIH07CisgICAgVVJMIHdl
YmtpdFVSTFdpdGhQYXRoIHsgImh0dHBzOi8vd2Via2l0Lm9yZy9yb2FkL3RvL25vd2hlcmUvIl9z
dHIgfTsKKyAgICBVUkwgd2Via2l0U3ViZG9tYWluVVJMIHsgImh0dHBzOi8vc3ViLmRvbWFpbi53
ZWJraXQub3JnIl9zdHIgfTsKKyAgICBVUkwgd2Via2l0T3RoZXJTdWJkb21haW5VUkwgeyAiaHR0
cHM6Ly9zdWIub3RoZXIud2Via2l0Lm9yZyJfc3RyIH07CisgICAgVVJMIHdlYmtpdER1cGxpY2F0
ZVN1YmRvbWFpblVSTCB7ICJodHRwczovL2RvbWFpbi5kb21haW4ud2Via2l0Lm9yZyJfc3RyIH07
CisgICAgVVJMIHdlYmtpdFN1YmRvbWFpblVSTFdpdGhQYXRoIHsgImh0dHBzOi8vc3ViLmRvbWFp
bi53ZWJraXQub3JnL3JvYWQvdG8vbm93aGVyZS8iX3N0ciB9OwogICAgIFJlZ2lzdHJhYmxlRG9t
YWluIHdlYmtpdERvbWFpbiB7IHdlYmtpdFVSTCB9OwogICAgIFJlZ2lzdHJhYmxlRG9tYWluIHdl
YmtpdFN1YmRvbWFpbiB7IHdlYmtpdFN1YmRvbWFpblVSTCB9OwogCkBAIC03Miw4ICs3Miw4IEBA
IFRFU1QoUmVnaXN0cmFibGVEb21haW4sIE1hdGNoZXNVUkxzKQogICAgIEFTU0VSVF9UUlVFKHdl
YmtpdFN1YmRvbWFpbi5tYXRjaGVzKHdlYmtpdE90aGVyU3ViZG9tYWluVVJMKSk7CiAgICAgQVNT
RVJUX1RSVUUod2Via2l0U3ViZG9tYWluLm1hdGNoZXMod2Via2l0RHVwbGljYXRlU3ViZG9tYWlu
VVJMKSk7CiAKLSAgICBVUkwgbG9jYWxob3N0VVJMIHsgVVJMKCksICJodHRwOi8vbG9jYWxob3N0
IiB9OwotICAgIFVSTCBsb2NhbGhvc3RVUkxXaXRoUGF0aCB7IFVSTCgpLCAiaHR0cDovL2xvY2Fs
aG9zdC9yb2FkL3RvL25vd2hlcmUvIiB9OworICAgIFVSTCBsb2NhbGhvc3RVUkwgeyAiaHR0cDov
L2xvY2FsaG9zdCJfcyB9OworICAgIFVSTCBsb2NhbGhvc3RVUkxXaXRoUGF0aCB7ICJodHRwOi8v
bG9jYWxob3N0L3JvYWQvdG8vbm93aGVyZS8iX3MgfTsKICAgICBSZWdpc3RyYWJsZURvbWFpbiBs
b2NhbGhvc3REb21haW4geyBsb2NhbGhvc3RVUkwgfTsKIAogICAgIEFTU0VSVF9UUlVFKGxvY2Fs
aG9zdERvbWFpbi5tYXRjaGVzKGxvY2FsaG9zdFVSTCkpOwpAQCAtODQsNyArODQsNyBAQCBURVNU
KFJlZ2lzdHJhYmxlRG9tYWluLCBNYXRjaGVzVVJMcykKICAgICBBU1NFUlRfRkFMU0Uod2Via2l0
RG9tYWluLm1hdGNoZXMobG9jYWxob3N0VVJMKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHdlYmtpdERv
bWFpbi5tYXRjaGVzKGxvY2FsaG9zdFVSTFdpdGhQYXRoKSk7CiAKLSAgICBVUkwgZWJraXRVUkwg
eyBVUkwoKSwgImh0dHBzOi8vZWJraXQub3JnIiB9OworICAgIFVSTCBlYmtpdFVSTCB7ICJodHRw
czovL2Via2l0Lm9yZyJfcyB9OwogICAgIEFTU0VSVF9GQUxTRSh3ZWJraXREb21haW4ubWF0Y2hl
cyhlYmtpdFVSTCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2VjdXJpdHlPcmlnaW4uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmNwcAppbmRleCA2N2U0MGVjMzI4NmE4YmJkMWYyNDZiMmJl
Njk2YTJkZTU2MTE0NjkzLi40YzFkZGEzN2NhNmU3MzQ2NWI4N2I2ZTNiNWI3MjU5MWVkYWNkZjg2
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TZWN1cml0
eU9yaWdpbi5jcHAKQEAgLTgxLDggKzgxLDggQEAgVEVTVF9GKFNlY3VyaXR5T3JpZ2luVGVzdCwg
U2VjdXJpdHlPcmlnaW5Db25zdHJ1Y3RvcnMpCiAgICAgYXV0byBvMiA9IFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUoImh0dHAiLCAiZXhhbXBsZS5jb20iLCBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90Pigp
KTsKICAgICBhdXRvIG8zID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoImh0dHA6
Ly9leGFtcGxlLmNvbSIpOwogICAgIGF1dG8gbzQgPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJv
bVN0cmluZygiaHR0cDovL2V4YW1wbGUuY29tOjgwIik7Ci0gICAgYXV0byBvNSA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoVVJMKFVSTCgpLCAiaHR0cDovL2V4YW1wbGUuY29tIikpOwotICAgIGF1
dG8gbzYgPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwoKSwgImh0dHA6Ly9leGFtcGxl
LmNvbTo4MCIpKTsKKyAgICBhdXRvIG81ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwgeyAi
aHR0cDovL2V4YW1wbGUuY29tIl9zdHIgfSk7CisgICAgYXV0byBvNiA9IFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUoVVJMIHsgImh0dHA6Ly9leGFtcGxlLmNvbTo4MCJfc3RyIH0pOwogICAgIGF1dG8g
bzcgPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZygiaHR0cDovL2V4YW1wbGUuY29t
OjgxIik7CiAgICAgYXV0byBvOCA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKCJ1
bnJlY29nbml6ZWQ6Ly9ob3N0Iik7CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xNjMsMTAgKzE2
MywxMCBAQCBURVNUX0YoU2VjdXJpdHlPcmlnaW5UZXN0LCBTZWN1cml0eU9yaWdpbkNvbnN0cnVj
dG9ycykKIAogVEVTVF9GKFNlY3VyaXR5T3JpZ2luVGVzdCwgU2VjdXJpdHlPcmlnaW5GaWxlQmFz
ZWRDb25zdHJ1Y3RvcnMpCiB7Ci0gICAgYXV0byB0ZW1wRmlsZU9yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUoVVJMKFVSTCgpLCAiZmlsZTovLy8iICsgdGVtcEZpbGVQYXRoKCkpKTsKLSAg
ICBhdXRvIHNwYWNlQ29udGFpbmluZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJM
KFVSTCgpLCAiZmlsZTovLy8iICsgc3BhY2VDb250YWluaW5nRmlsZVBhdGgoKSkpOwotICAgIGF1
dG8gYmFuZ0NvbnRhaW5pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwo
KSwgImZpbGU6Ly8vIiArIGJhbmdDb250YWluaW5nRmlsZVBhdGgoKSkpOwotICAgIGF1dG8gcXVv
dGVDb250YWluaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwoVVJMKCksICJm
aWxlOi8vLyIgKyBxdW90ZUNvbnRhaW5pbmdGaWxlUGF0aCgpKSk7CisgICAgYXV0byB0ZW1wRmls
ZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMIHsgImZpbGU6Ly8vIiArIHRlbXBG
aWxlUGF0aCgpIH0pOworICAgIGF1dG8gc3BhY2VDb250YWluaW5nT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShVUkwgeyAiZmlsZTovLy8iICsgc3BhY2VDb250YWluaW5nRmlsZVBhdGgo
KSB9KTsKKyAgICBhdXRvIGJhbmdDb250YWluaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShVUkwgeyAiZmlsZTovLy8iICsgYmFuZ0NvbnRhaW5pbmdGaWxlUGF0aCgpIH0pOworICAg
IGF1dG8gcXVvdGVDb250YWluaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwg
eyAiZmlsZTovLy8iICsgcXVvdGVDb250YWluaW5nRmlsZVBhdGgoKSB9KTsKICAgICAKICAgICBF
WFBFQ1RfRVEoU3RyaW5nKCJmaWxlIiksIHRlbXBGaWxlT3JpZ2luLT5wcm90b2NvbCgpKTsKICAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlIiksIHNwYWNlQ29udGFpbmluZ09yaWdpbi0+cHJvdG9j
b2woKSk7CkBAIC0xODksNyArMTg5LDcgQEAgVEVTVF9GKFNlY3VyaXR5T3JpZ2luVGVzdCwgU2Vj
dXJpdHlPcmlnaW5GaWxlQmFzZWRDb25zdHJ1Y3RvcnMpCiBURVNUX0YoU2VjdXJpdHlPcmlnaW5U
ZXN0LCBJc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkpCiB7CiAgICAgLy8gUG90ZW50aWFsbHkgVHJ1
c3R3b3J0aHkKLSAgICBFWFBFQ1RfVFJVRShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwo
KSwgImZpbGU6Ly8vIiArIHRlbXBGaWxlUGF0aCgpKSktPmlzUG90ZW50aWFsbHlUcnVzdHdvcnRo
eSgpKTsKKyAgICBFWFBFQ1RfVFJVRShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTCB7ICJmaWxl
Oi8vLyIgKyB0ZW1wRmlsZVBhdGgoKSB9KS0+aXNQb3RlbnRpYWxseVRydXN0d29ydGh5KCkpOwog
ICAgIEVYUEVDVF9UUlVFKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKCJibG9iOmh0
dHA6Ly8xMjcuMC4wLjEvM0Q0NUYzNkYtQzEyNi00OTNBLUE4QUEtNDU3RkE0OTUyNDdCIiktPmlz
UG90ZW50aWFsbHlUcnVzdHdvcnRoeSgpKTsKICAgICBFWFBFQ1RfVFJVRShTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlRnJvbVN0cmluZygiYmxvYjpodHRwOi8vbG9jYWxob3N0LzNENDVGMzZGLUMxMjYt
NDkzQS1BOEFBLTQ1N0ZBNDk1MjQ3QiIpLT5pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoKSk7CiAg
ICAgRVhQRUNUX1RSVUUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoImJsb2I6aHR0
cDovL1s6OjFdLzNENDVGMzZGLUMxMjYtNDkzQS1BOEFBLTQ1N0ZBNDk1MjQ3QiIpLT5pc1BvdGVu
dGlhbGx5VHJ1c3R3b3J0aHkoKSk7CkBAIC0yMzYsNyArMjM2LDcgQEAgVEVTVF9GKFNlY3VyaXR5
T3JpZ2luVGVzdCwgSXNQb3RlbnRpYWxseVRydXN0d29ydGh5KQogCiBURVNUX0YoU2VjdXJpdHlP
cmlnaW5UZXN0LCBJc1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KQogewotICAgIGF1dG8gZXhhbXBs
ZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSIpKTsKKyAgICBhdXRvIGV4YW1wbGVPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKFVSTCB7ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfSk7CiAgICAgRVhQRUNU
X1RSVUUoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCJl
eGFtcGxlLmNvbSIpKTsKICAgICBFWFBFQ1RfVFJVRShleGFtcGxlT3JpZ2luLT5pc01hdGNoaW5n
UmVnaXN0cmFibGVEb21haW5TdWZmaXgoInd3dy5leGFtcGxlLmNvbSIpKTsKICNpZiAhRU5BQkxF
KFBVQkxJQ19TVUZGSVhfTElTVCkKQEAgLTI1MSw3ICsyNTEsNyBAQCBURVNUX0YoU2VjdXJpdHlP
cmlnaW5UZXN0LCBJc1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KQogICAgIEVYUEVDVF9GQUxTRShl
eGFtcGxlT3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImNvbSIpKTsK
ICNlbmRpZgogCi0gICAgYXV0byBleGFtcGxlRG90T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tLiIpKTsKKyAgICBhdXRvIGV4
YW1wbGVEb3RPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTCB7ICJodHRwOi8vd3d3
LmV4YW1wbGUuY29tLiJfc3RyIH0pOwogICAgIEVYUEVDVF9UUlVFKGV4YW1wbGVEb3RPcmlnaW4t
PmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCgiZXhhbXBsZS5jb20uIikpOwogICAg
IEVYUEVDVF9UUlVFKGV4YW1wbGVEb3RPcmlnaW4tPmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFp
blN1ZmZpeCgid3d3LmV4YW1wbGUuY29tLiIpKTsKICNpZiAhRU5BQkxFKFBVQkxJQ19TVUZGSVhf
TElTVCkKQEAgLTI2NiwxMSArMjY2LDExIEBAIFRFU1RfRihTZWN1cml0eU9yaWdpblRlc3QsIElz
UmVnaXN0cmFibGVEb21haW5TdWZmaXgpCiAgICAgRVhQRUNUX0ZBTFNFKGV4YW1wbGVEb3RPcmln
aW4tPmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCgiY29tIikpOwogI2VuZGlmCiAK
LSAgICBhdXRvIGlwT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwoVVJMKCksICJo
dHRwOi8vMTI3LjAuMC4xIikpOworICAgIGF1dG8gaXBPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKFVSTCB7ICJodHRwOi8vMTI3LjAuMC4xIl9zdHIgfSk7CiAgICAgRVhQRUNUX1RSVUUo
aXBPcmlnaW4tPmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCgiMTI3LjAuMC4xIiwg
dHJ1ZSkpOwogICAgIEVYUEVDVF9GQUxTRShpcE9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxl
RG9tYWluU3VmZml4KCIxMjcuMC4wLjIiLCB0cnVlKSk7CiAKLSAgICBhdXRvIGNvbU9yaWdpbiA9
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMKFVSTCgpLCAiaHR0cDovL2NvbSIpKTsKKyAgICBh
dXRvIGNvbU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMIHsgImh0dHA6Ly9jb20i
X3N0ciB9KTsKICAgICBFWFBFQ1RfVFJVRShjb21PcmlnaW4tPmlzTWF0Y2hpbmdSZWdpc3RyYWJs
ZURvbWFpblN1ZmZpeCgiY29tIikpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY3VybC9Db29raWVzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jdXJsL0Nvb2tpZXMuY3BwCmluZGV4IDIxOWU5NjZkYmViYWE4NGQzNjAy
NzIyZTk1OWUzMmY2NGZiNGRiMmUuLjdhM2VjYTU1NTgyZWVmODE1MjY2YTQ0YWQ2YzVlZTI1MzY2
Yjc1ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jdXJs
L0Nvb2tpZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jdXJs
L0Nvb2tpZXMuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHByb3RlY3RlZDoKIAogVEVTVF9GKEN1cmxD
b29raWVzLCBSZWplY3RUYWlsbWF0Y2hGYWlsdXJlRG9tYWluKQogewotICAgIFVSTCB1cmwoVVJM
KCksICJodHRwOi8vZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdXJsIHsgImh0dHA6Ly9leGFtcGxl
LmNvbSIgfTsKIAogICAgIC8vIHN1Y2Nlc3M6IGRvbWFpbiBtYXRjaAogICAgIEVYUEVDVF9UUlVF
KG1fY29va2llSmFyLT5zZXRDb29raWUodXJsLCB1cmwsICJmb289YmFyOyBEb21haW49ZXhhbXBs
ZS5jb20iLCBDb29raWVKYXJEQjo6U291cmNlOjpOZXR3b3JrKSk7CkBAIC03OCw3ICs3OCw3IEBA
IFRFU1RfRihDdXJsQ29va2llcywgUmVqZWN0VGFpbG1hdGNoRmFpbHVyZURvbWFpbikKIAogVEVT
VF9GKEN1cmxDb29raWVzLCBUZXN0SHR0cE9ubHlDYXNlKQogewotICAgIFVSTCB1cmwoVVJMKCks
ICJodHRwOi8vZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdXJsIHsgImh0dHA6Ly9leGFtcGxlLmNv
bSIgfTsKIAogICAgIC8vIHN1Y2Nlc3M6IGZyb20gbmV0d29yawogICAgIEVYUEVDVF9UUlVFKG1f
Y29va2llSmFyLT5zZXRDb29raWUodXJsLCB1cmwsICJmb289YmFyOyBIdHRwT25seSIsIENvb2tp
ZUphckRCOjpTb3VyY2U6Ok5ldHdvcmspKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25NYW5pZmVzdC5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25NYW5pZmVzdC5tbQppbmRleCBm
OTRiM2E5N2FmZDA5OTZiZjM1MWIxZGQ4MWEwMjRmYTk4ZTA3ZDgyLi4zZmFkZTVhOGU0ZWE1ZGZk
NDUwNDM3NWY2ZmUyM2Y2Yjg5MmUxMjQwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0FwcGxpY2F0aW9uTWFuaWZlc3QubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BcHBsaWNhdGlvbk1hbmlmZXN0Lm1tCkBAIC0z
NjYsNyArMzY2LDcgQEAgVEVTVChBcHBsaWNhdGlvbk1hbmlmZXN0LCBJY29uQ29kaW5nKQogewog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0ZXN0VVJMID0gImh0dHBzOi8vZXhhbXBsZS5jb20vaW1h
Z2VzL3RvdWNoL2hvbWVzY3JlZW4xMjguanBnIjsKIAotICAgIFdlYkNvcmU6OkFwcGxpY2F0aW9u
TWFuaWZlc3Q6Okljb24gaWNvbiA9IHsgVVJMKFVSTCgpLCB0ZXN0VVJMKSwgbWFrZVZlY3RvcjxT
dHJpbmc+KEBbQCI5Nng5NiIsIEAiMTI4eDEyOCJdKSwgImltYWdlL2pwZyIsIHsgV2ViQ29yZTo6
QXBwbGljYXRpb25NYW5pZmVzdDo6SWNvbjo6UHVycG9zZTo6TW9ub2Nocm9tZSwgV2ViQ29yZTo6
QXBwbGljYXRpb25NYW5pZmVzdDo6SWNvbjo6UHVycG9zZTo6TWFza2FibGUgfSB9OworICAgIFdl
YkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3Q6Okljb24gaWNvbiA9IHsgVVJMIHsgdGVzdFVSTCB9
LCBtYWtlVmVjdG9yPFN0cmluZz4oQFtAIjk2eDk2IiwgQCIxMjh4MTI4Il0pLCAiaW1hZ2UvanBn
IiwgeyBXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0OjpJY29uOjpQdXJwb3NlOjpNb25vY2hy
b21lLCBXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0OjpJY29uOjpQdXJwb3NlOjpNYXNrYWJs
ZSB9IH07CiAKICAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4oIm9iamMtbWV0aG9kLWFjY2VzcyIp
CiAgICAgYXV0byBtYW5pZmVzdEljb24gPSBhZG9wdE5TKFtbX1dLQXBwbGljYXRpb25NYW5pZmVz
dEljb24gYWxsb2NdIGluaXRXaXRoQ29yZUljb246Jmljb25dKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdFNPQXV0aG9yaXphdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdFNPQXV0aG9yaXphdGlv
bi5tbQppbmRleCBkNTE0MTE4OGNlODI1NmY2ODAzYzgxODI1YWYxZGQ1ZDlhYzQ3ZTUzLi4yNmNm
NjEyNTUzMDkyZTkwY2JiZjYyMGNkMTdlNDAyOWY4N2EzYzlkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Rlc3RTT0F1dGhvcml6YXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0U09BdXRob3JpemF0
aW9uLm1tCkBAIC01ODgsNyArNTg4LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwg
SW50ZXJjZXB0aW9uU3VjY2VlZDIpCiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKIAogICAgIC8vIEZvcmNlIEFwcCBMaW5rcyB3aXRoIGEgcmVxdWVz
dC5VUkwgdGhhdCBoYXMgYSBkaWZmZXJlbnQgaG9zdCB0aGFuIHRoZSBjdXJyZW50IG9uZSAoZW1w
dHkgaG9zdCkgYW5kIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93Lgot
ICAgIGF1dG8gdGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIik7
CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBbd2ViVmlldyBfbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMXSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzOllFU107CiAjZWxp
ZiBQTEFURk9STShJT1MpCkBAIC02MjUsNyArNjI1LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25S
ZWRpcmVjdCwgSW50ZXJjZXB0aW9uU3VjY2VlZDMpCiAgICAgRVhQRUNUX1RSVUUoZ0F1dGhvcml6
YXRpb24uZW5hYmxlRW1iZWRkZWRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXIpOwogCiAgICAg
Ly8gRm9yY2UgQXBwIExpbmtzIHdpdGggYSByZXF1ZXN0LlVSTCB0aGF0IGhhcyBhIGRpZmZlcmVu
dCBob3N0IHRoYW4gdGhlIGN1cnJlbnQgb25lIChlbXB0eSBob3N0KSBhbmQgU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cuCi0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVS
TCgpLCAiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVSTCB7ICJodHRw
czovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFt3ZWJW
aWV3IF9sb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkxdIHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHM6WUVTXTsKICNlbGlmIFBMQVRGT1JNKElPUykKQEAgLTc5Myw3
ICs3OTMsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblJlZGlyZWN0LCBJbnRlcmNlcHRpb25TdWNj
ZWVkV2l0aFJlZGlyZWN0aW9uQW5kQ29va2llKQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmln
dXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwg
T3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCi0gICAgYXV0byB0ZXN0VVJMID0g
VVJMKFVSTCgpLCAiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVSTCB7
ICJodHRwczovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVS
TF1dOwogI2VsaWYgUExBVEZPUk0oSU9TKQpAQCAtODQxLDcgKzg0MSw3IEBAIFRFU1QoU09BdXRo
b3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWRXaXRoRGlmZmVyZW50T3JpZ2lu
KQogICAgIGNoZWNrQXV0aG9yaXphdGlvbk9wdGlvbnMoZmFsc2UsICIiLCAwKTsKICAgICBFWFBF
Q1RfVFJVRShwb2xpY3lGb3JBcHBTU09QZXJmb3JtZWQpOwogCi0gICAgYXV0byByZWRpcmVjdFVS
TCA9IFVSTChVUkwoKSwgImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHJlZGly
ZWN0VVJMIHsgImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHJlc3Bv
bnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZWRp
cmVjdFVSTCBzdGF0dXNDb2RlOjMwMiBIVFRQVmVyc2lvbjpAIkhUVFAvMS4xIiBoZWFkZXJGaWVs
ZHM6QHsgQCJMb2NhdGlvbiIgOiByZWRpcmVjdFVSTC5zdHJpbmcoKSB9XSk7CiAgICAgW2dEZWxl
Z2F0ZSBhdXRob3JpemF0aW9uOmdBdXRob3JpemF0aW9uIGRpZENvbXBsZXRlV2l0aEhUVFBSZXNw
b25zZTpyZXNwb25zZS5nZXQoKSBodHRwQm9keTphZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0
XSkuZ2V0KCldOwogICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlZCk7CkBAIC0xMTEw
LDcgKzExMTAsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblJlZGlyZWN0LCBJbnRlcmNlcHRpb25T
dWNjZWVkU0FNTFdpdGhQU09OKQogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenpsZXI0
KFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdldEF1dGhvcml6YXRp
b25IaW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVpbnRlcnByZXRfY2Fz
dDxJTVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkpOwogCiAgICAgUmV0
YWluUHRyPE5TVVJMPiBiYXNlVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAInNpbXBsZTMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwotICAgIGF1dG8gdGVzdFVSTCA9IFVSTChVUkwoKSwgImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVSTCB7ICJodHRwOi8vd3d3LmV4
YW1wbGUuY29tIl9zdHIgfTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTExNTAsNyArMTE1MCw3IEBAIFRFU1QoU09BdXRob3JpemF0
aW9uUmVkaXJlY3QsIEF1dGhvcml6YXRpb25PcHRpb25zKQogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
Y29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5n
ZXQoKSk7CiAKLSAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIiIgYmFzZVVSTDooTlNVUkwg
KilVUkwoVVJMKCksICJodHRwOi8vd3d3LndlYmtpdC5vcmciKV07CisgICAgW3dlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6QCIiIGJhc2VVUkw6KE5TVVJMICopVVJMIHsgImh0dHA6Ly93d3cud2Via2l0
Lm9yZyJfc3RyIH1dOwogICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlZCk7CiAKICAg
ICBbZGVsZWdhdGUgc2V0U2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lczp0cnVlXTsKQEAgLTE4NDks
NyArMTg0OSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIEludGVyY2VwdGlvblN1Y2Nl
ZWRDbG9zZUJ5SXRzZWxmKQogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenpsZXI0KFBB
TDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdldEF1dGhvcml6YXRpb25I
aW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVpbnRlcnByZXRfY2FzdDxJ
TVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkpOwogCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiBiYXNlVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAInNpbXBsZTIiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwotICAgIGF1dG8gdGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHA6
Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVSTCB7ICJodHRwOi8vd3d3LmV4YW1w
bGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RIdG1sID0gZ2VuZXJhdGVIdG1sKG9wZW5lclRl
bXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAw
LCA0MDApXSk7CkBAIC0xODg3LDcgKzE4ODcsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblBvcFVw
LCBJbnRlcmNlcHRpb25TdWNjZWVkQ2xvc2VCeVBhcmVudCkKICAgICBJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyIHN3aXp6bGVyNChQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3Rv
cihnZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiks
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhV
UkwpKTsKIAogICAgIFJldGFpblB0cjxOU1VSTD4gYmFzZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBhdXRvIHRlc3RVUkwg
PSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwg
eyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdl
bmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSwgIiIsICJldmVudC5z
b3VyY2UuY2xvc2UoKTsiKTsgLy8gVGhlIHBhcmVudCBjbG9zZXMgdGhlIHBvcCB1cC4KIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApXSk7CkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBU
RVNUKFNPQXV0aG9yaXphdGlvblBvcFVwLCBJbnRlcmNlcHRpb25TdWNjZWVkQ2xvc2VCeVdlYktp
dCkKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChQQUw6OmdldFNPQXV0aG9y
aXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJl
c3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdl
dEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAogICAgIFJldGFpblB0cjxOU1VSTD4gYmFz
ZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tIik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07
CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVS
TC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwpAQCAt
MjAwNyw3ICsyMDA3LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgSW50ZXJjZXB0aW9u
U3VjY2VlZFdpdGhDb29raWUpCiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjQo
UEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlv
bkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9jYXN0
PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKICAgICBSZXRh
aW5QdHI8TlNVUkw+IGJhc2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07Ci0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0
cDovL3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhh
bXBsZS5jb20iX3N0ciB9OwogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVy
VGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0
MDAsIDQwMCldKTsKQEAgLTIwNDUsNyArMjA0NSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9w
VXAsIEludGVyY2VwdGlvblN1Y2NlZWRUd2ljZSkKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
IHN3aXp6bGVyNChQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRB
dXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50
ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsK
IAogICAgIFJldGFpblB0cjxOU1VSTD4gYmFzZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwo
VVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0
cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRl
SHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDQwMCwgNDAwKV0pOwpAQCAtMjA4OCw3ICsyMDg4LDcgQEAgVEVTVChTT0F1dGhv
cml6YXRpb25Qb3BVcCwgSW50ZXJjZXB0aW9uU3VjY2VlZFN1cHByZXNzQWN0aXZlU2Vzc2lvbikK
ICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNShQQUw6OmdldFNPQXV0aG9yaXph
dGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJlc3Bv
bnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1
dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAogICAgIFJldGFpblB0cjxOU1VSTD4gYmFzZVVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29t
Iik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAg
ICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5z
dHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwpAQCAtMjE1
Myw3ICsyMTUzLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgSW50ZXJjZXB0aW9uU3Vj
Y2VlZE5ld1dpbmRvd05hdmlnYXRpb24pCiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6
emxlcjQoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9y
aXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJl
dF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IGJhc2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Ci0gICAgYXV0byB0ZXN0VVJMID0gVVJMKFVSTCgp
LCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVSTCB0ZXN0VVJMIHsgImh0dHA6Ly93
d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwo
b3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCksIG1ha2VTdHJpbmcoIm5ld1dpbmRvdy5s
b2NhdGlvbiA9ICciLCBiYXNlVVJMLmdldCgpLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcsICIn
OyIpKTsgLy8gU3RhcnRzIGEgbmV3IG5hdmlnYXRpb24gb24gdGhlIG5ldyB3aW5kb3cuCiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwpAQCAtMjE5MCwxNCArMjE5MCwxNCBA
QCBURVNUKFNPQXV0aG9yaXphdGlvblBvcFVwLCBBdXRob3JpemF0aW9uT3B0aW9ucykKICAgICBJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyMyhQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNs
YXNzKCksIEBzZWxlY3RvcihiZWdpbkF1dGhvcml6YXRpb25XaXRoVVJMOmh0dHBIZWFkZXJzOmh0
dHBCb2R5OiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUJlZ2luQXV0aG9yaXphdGlv
bldpdGhVUkwpKTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChQQUw6Omdl
dFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9uSGludHNX
aXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihv
dmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAotICAgIGF1dG8gdGVzdFVS
TCA9IFVSTChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVS
TCB7ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RIdG1sID0g
Z2VuZXJhdGVIdG1sKG9wZW5lclRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25m
aWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgp
KTsKIAotICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJM
ICopVVJMKFVSTCgpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnIildOworICAgIFt3ZWJWaWV3IGxv
YWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJMICopVVJMIHsgImh0dHA6Ly93d3cu
d2Via2l0Lm9yZyJfc3RyIH1dOwogICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlZCk7
CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0yMjE2LDcgKzIyMTYsNyBAQCBURVNUKFNPQXV0aG9y
aXphdGlvblBvcFVwLCBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5SWdub3JlKQogICAgIENsYXNz
TWV0aG9kU3dpenpsZXIgc3dpenpsZXIxKFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwg
QHNlbGVjdG9yKGNhblBlcmZvcm1BdXRob3JpemF0aW9uV2l0aFVSTDpyZXNwb25zZUNvZGU6KSwg
cmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlQ2FuUGVyZm9ybUF1dGhvcml6YXRpb25XaXRo
VVJMKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlcjIoUEFMOjpnZXRTT0F1
dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVS
TDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJp
ZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKLSAgICBhdXRvIHRlc3RVUkwgPSBV
UkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwgeyAi
aHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVy
YXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwpAQCAtMjIyNCw3ICsyMjI0LDcgQEAgVEVTVChTT0F1
dGhvcml6YXRpb25Qb3BVcCwgU09BdXRob3JpemF0aW9uTG9hZFBvbGljeUlnbm9yZSkKICAgICBj
b25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdl
dCgpKTsKICAgICBbZGVsZWdhdGUgc2V0QWxsb3dTT0F1dGhvcml6YXRpb25Mb2FkOmZhbHNlXTsK
IAotICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJMICop
VVJMKFVSTCgpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnIildOworICAgIFt3ZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6KE5TVVJMICopVVJMIHsgImh0dHA6Ly93d3cud2Vi
a2l0Lm9yZyJfc3RyIH1dOwogICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlZCk7CiAK
ICNpZiBQTEFURk9STShNQUMpCkBAIC0yMjQ2LDcgKzIyNDYsNyBAQCBURVNUKFNPQXV0aG9yaXph
dGlvblBvcFVwLCBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5QWxsb3dBc3luYykKICAgICBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNz
KCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpj
b21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRp
b25IaW50c1dpdGhVUkwpKTsKIAogICAgIFJldGFpblB0cjxOU1VSTD4gYmFzZVVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBh
dXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAg
VVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0
ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwpAQCAtMjI4Myw3ICsyMjgz
LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgU09BdXRob3JpemF0aW9uTG9hZFBvbGlj
eUlnbm9yZUFzeW5jKQogICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIxKFBBTDo6Z2V0
U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGNhblBlcmZvcm1BdXRob3JpemF0aW9u
V2l0aFVSTDpyZXNwb25zZUNvZGU6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlQ2Fu
UGVyZm9ybUF1dGhvcml6YXRpb25XaXRoVVJMKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxl
ciBzd2l6emxlcjIoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0
QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWlu
dGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7
CiAKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29t
Iik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAg
ICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5z
dHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwpAQCAtMjI5
Miw3ICsyMjkyLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgU09BdXRob3JpemF0aW9u
TG9hZFBvbGljeUlnbm9yZUFzeW5jKQogICAgIFtkZWxlZ2F0ZSBzZXRBbGxvd1NPQXV0aG9yaXph
dGlvbkxvYWQ6ZmFsc2VdOwogICAgIFtkZWxlZ2F0ZSBzZXRJc0FzeW5jRXhlY3V0aW9uOnRydWVd
OwogCi0gICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDooTlNVUkwg
KilVUkwoVVJMKCksICJodHRwOi8vd3d3LndlYmtpdC5vcmciKV07CisgICAgW3dlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDooTlNVUkwgKilVUkwgeyAiaHR0cDovL3d3dy53
ZWJraXQub3JnIl9zdHIgfV07CiAgICAgVXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29tcGxldGVkKTsK
IAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTIzMjksMTMgKzIzMjksMTMgQEAgVEVTVChTT0F1dGhv
cml6YXRpb25TdWJGcmFtZSwgTm9JbnRlcmNlcHRpb25zTm9uQXBwbGVGaXJzdFBhcnR5TWFpbkZy
YW1lKQogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenpsZXIzKFBBTDo6Z2V0U09BdXRo
b3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGJlZ2luQXV0aG9yaXphdGlvbldpdGhVUkw6aHR0
cEhlYWRlcnM6aHR0cEJvZHk6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlQmVnaW5B
dXRob3JpemF0aW9uV2l0aFVSTCkpOwogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenps
ZXI1KFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdldEF1dGhvcml6
YXRpb25IaW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVpbnRlcnByZXRf
Y2FzdDxJTVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkpOwogCi0gICAg
YXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgVVJMKFVSTCgpLCAi
aHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLnN0cmluZygpKTsKKyAgICBhdXRvIHRlc3RIdG1sID0g
Z2VuZXJhdGVIdG1sKHBhcmVudFRlbXBsYXRlLCBVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNv
bSJfc3RyIH0uc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCld
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXco
d2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOwogCi0gICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6dGVzdEh0bWwgYmFzZVVSTDooTlNVUkwgKilVUkwoVVJMKCksICJodHRwOi8vd3d3Lndl
YmtpdC5vcmciKV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVS
TDooTlNVUkwgKilVUkwgeyAiaHR0cDovL3d3dy53ZWJraXQub3JnIl9zdHIgfV07CiAgICAgLy8g
VHJ5IHRvIHdhaXQgdW50aWwgdGhlIGlmcmFtZSBsb2FkIGlzIGZpbmlzaGVkLgogICAgIFV0aWw6
OnNsZWVwKDAuNSk7CiAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IGludGVyY2VwdCB0aGUgaWZy
YW1lLgpAQCAtMjQxOCw3ICsyNDE4LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwg
SW50ZXJjZXB0aW9uU3VjY2VzcykKICAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChb
QUtBdXRob3JpemF0aW9uQ29udHJvbGxlciBjbGFzc10sIEBzZWxlY3Rvcihpc1VSTEZyb21BcHBs
ZU93bmVkRG9tYWluOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzVVJMRnJvbUFw
cGxlT3duZWREb21haW4pKTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNShQ
QUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9u
SGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8
SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAotICAgIGF1dG8g
dGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwg
dGVzdFVSTCB7ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RI
dG1sID0gZ2VuZXJhdGVIdG1sKHBhcmVudFRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CkBAIC0yNDg0LDcgKzI0ODQsNyBA
QCBURVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBJbnRlcmNlcHRpb25TdWNjZWVkV2l0aENv
b2tpZSkKICAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChbQUtBdXRob3JpemF0aW9u
Q29udHJvbGxlciBjbGFzc10sIEBzZWxlY3Rvcihpc1VSTEZyb21BcHBsZU93bmVkRG9tYWluOiks
IHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzVVJMRnJvbUFwcGxlT3duZWREb21haW4p
KTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNShQQUw6OmdldFNPQXV0aG9y
aXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJl
c3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdl
dEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAotICAgIGF1dG8gdGVzdFVSTCA9IFVSTChV
UkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwgdGVzdFVSTCB7ICJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RIdG1sID0gZ2VuZXJhdGVI
dG1sKHBhcmVudFRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMzIwLCA1MDApXSk7CkBAIC0yNTEzLDcgKzI1MTMsNyBAQCBURVNUKFNPQXV0aG9y
aXphdGlvblN1YkZyYW1lLCBJbnRlcmNlcHRpb25TdWNjZXNzVHdpY2UpCiAgICAgQ2xhc3NNZXRo
b2RTd2l6emxlciBzd2l6emxlcjQoW0FLQXV0aG9yaXphdGlvbkNvbnRyb2xsZXIgY2xhc3NdLCBA
c2VsZWN0b3IoaXNVUkxGcm9tQXBwbGVPd25lZERvbWFpbjopLCByZWludGVycHJldF9jYXN0PElN
UD4ob3ZlcnJpZGVJc1VSTEZyb21BcHBsZU93bmVkRG9tYWluKSk7CiAgICAgSW5zdGFuY2VNZXRo
b2RTd2l6emxlciBzd2l6emxlcjUoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2Vs
ZWN0b3IoZ2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlv
bjopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNX
aXRoVVJMKSk7CiAKLSAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4
YW1wbGUuY29tIik7CisgICAgVVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJf
c3RyIH07CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwg
dGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0p
OwpAQCAtMjU0OCwxNCArMjU0OCwxNCBAQCBURVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBB
dXRob3JpemF0aW9uT3B0aW9ucykKICAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChb
QUtBdXRob3JpemF0aW9uQ29udHJvbGxlciBjbGFzc10sIEBzZWxlY3Rvcihpc1VSTEZyb21BcHBs
ZU93bmVkRG9tYWluOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzVVJMRnJvbUFw
cGxlT3duZWREb21haW4pKTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNShQ
QUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9u
SGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8
SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAotICAgIGF1dG8g
dGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwg
dGVzdFVSTCB7ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RI
dG1sID0gZ2VuZXJhdGVIdG1sKHBhcmVudFRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRl
LmdldCgpKTsKIAotICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1sIGJhc2VVUkw6
KE5TVVJMICopVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5hcHBsZS5jb20iKV07CisgICAgW3dlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDooTlNVUkwgKilVUkwgeyAiaHR0cDov
L3d3dy5hcHBsZS5jb20iX3N0ciB9XTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20iXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlNP
QXV0aG9yaXphdGlvbkRpZFN0YXJ0Il07CiAgICAgY2hlY2tBdXRob3JpemF0aW9uT3B0aW9ucyhm
YWxzZSwgImh0dHA6Ly93d3cuYXBwbGUuY29tIiwgMik7CkBAIC0yNTY3LDcgKzI1NjcsNyBAQCBU
RVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5SWdu
b3JlKQogICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIxKFBBTDo6Z2V0U09BdXRob3Jp
emF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGNhblBlcmZvcm1BdXRob3JpemF0aW9uV2l0aFVSTDpy
ZXNwb25zZUNvZGU6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlQ2FuUGVyZm9ybUF1
dGhvcml6YXRpb25XaXRoVVJMKSk7CiAgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxl
cjIoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoZ2V0QXV0aG9yaXph
dGlvbkhpbnRzV2l0aFVSTDpyZXNwb25zZUNvZGU6Y29tcGxldGlvbjopLCByZWludGVycHJldF9j
YXN0PElNUD4ob3ZlcnJpZGVHZXRBdXRob3JpemF0aW9uSGludHNXaXRoVVJMKSk7CiAKLSAgICBh
dXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAg
VVJMIHRlc3RVUkwgeyAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSJfc3RyIH07CiAgICAgYXV0byB0
ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwpAQCAtMjU3NSw3ICsyNTc1
LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwgU09BdXRob3JpemF0aW9uTG9hZFBv
bGljeUlnbm9yZSkKICAgICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcu
Z2V0KCksIGRlbGVnYXRlLmdldCgpKTsKICAgICBbZGVsZWdhdGUgc2V0QWxsb3dTT0F1dGhvcml6
YXRpb25Mb2FkOmZhbHNlXTsKIAotICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIdG1s
IGJhc2VVUkw6KE5TVVJMICopVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5hcHBsZS5jb20iKV07Cisg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDooTlNVUkwgKilVUkwg
eyAiaHR0cDovL3d3dy5hcHBsZS5jb20iX3N0ciB9XTsKICAgICAvLyBUcnkgdG8gd2FpdCB1bnRp
bCB0aGUgaWZyYW1lIGxvYWQgaXMgZmluaXNoZWQuCiAgICAgVXRpbDo6c2xlZXAoMC41KTsKICAg
ICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgaW50ZXJjZXB0IHRoZSBpZnJhbWUuCkBAIC0yNTkxLDcg
KzI1OTEsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBTT0F1dGhvcml6YXRpb25M
b2FkUG9saWN5QWxsb3dBc3luYykKICAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChb
QUtBdXRob3JpemF0aW9uQ29udHJvbGxlciBjbGFzc10sIEBzZWxlY3Rvcihpc1VSTEZyb21BcHBs
ZU93bmVkRG9tYWluOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzVVJMRnJvbUFw
cGxlT3duZWREb21haW4pKTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNShQ
QUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRBdXRob3JpemF0aW9u
SGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50ZXJwcmV0X2Nhc3Q8
SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsKIAotICAgIGF1dG8g
dGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKTsKKyAgICBVUkwg
dGVzdFVSTCB7ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAgICBhdXRvIHRlc3RI
dG1sID0gZ2VuZXJhdGVIdG1sKHBhcmVudFRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CkBAIC0yNjE4LDcgKzI2MTgsNyBA
QCBURVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5
SWdub3JlQXN5bmMpCiAgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6emxlcjEoUEFMOjpnZXRT
T0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3IoY2FuUGVyZm9ybUF1dGhvcml6YXRpb25X
aXRoVVJMOnJlc3BvbnNlQ29kZTopLCByZWludGVycHJldF9jYXN0PElNUD4ob3ZlcnJpZGVDYW5Q
ZXJmb3JtQXV0aG9yaXphdGlvbldpdGhVUkwpKTsKICAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
IHN3aXp6bGVyMihQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNzKCksIEBzZWxlY3RvcihnZXRB
dXRob3JpemF0aW9uSGludHNXaXRoVVJMOnJlc3BvbnNlQ29kZTpjb21wbGV0aW9uOiksIHJlaW50
ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUdldEF1dGhvcml6YXRpb25IaW50c1dpdGhVUkwpKTsK
IAotICAgIGF1dG8gdGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20i
KTsKKyAgICBVUkwgdGVzdFVSTCB7ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tIl9zdHIgfTsKICAg
ICBhdXRvIHRlc3RIdG1sID0gZ2VuZXJhdGVIdG1sKHBhcmVudFRlbXBsYXRlLCB0ZXN0VVJMLnN0
cmluZygpKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CkBAIC0yNzIx
LDcgKzI3MjEsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBJbnRlcmNlcHRpb25T
dWNjZXNzTWVzc2FnZU9yZGVyKQogICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXI0KFtB
S0F1dGhvcml6YXRpb25Db250cm9sbGVyIGNsYXNzXSwgQHNlbGVjdG9yKGlzVVJMRnJvbUFwcGxl
T3duZWREb21haW46KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlSXNVUkxGcm9tQXBw
bGVPd25lZERvbWFpbikpOwogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenpsZXI1KFBB
TDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGdldEF1dGhvcml6YXRpb25I
aW50c1dpdGhVUkw6cmVzcG9uc2VDb2RlOmNvbXBsZXRpb246KSwgcmVpbnRlcnByZXRfY2FzdDxJ
TVA+KG92ZXJyaWRlR2V0QXV0aG9yaXphdGlvbkhpbnRzV2l0aFVSTCkpOwogCi0gICAgYXV0byB0
ZXN0VVJMID0gVVJMKFVSTCgpLCAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpOworICAgIFVSTCB0
ZXN0VVJMIHsgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iX3N0ciB9OwogICAgIGF1dG8gdGVzdEh0
bWwgPSBnZW5lcmF0ZUh0bWwocGFyZW50VGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L1NTTEtleUdlbmVyYXRvci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1NTTEtl
eUdlbmVyYXRvci5tbQppbmRleCBiNmJiYjNiMTFjM2MwMzUxZDBiN2M4YzllZDU4NmY0YzE5MTQ4
OTIwLi4yMzBmN2JhMWMyNDc2MmRhZTY1YmExYWQzNzI2OTEwYTczMTMxYWU0IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TU0xLZXlHZW5lcmF0b3IubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU1NMS2V5R2VuZXJhdG9yLm1tCkBAIC02OSw3
ICs2OSw3IEBAIGNvbnN0IFNlY0FzbjFUZW1wbGF0ZSBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVu
Z2VUZW1wbGF0ZVtdIHsKICAgICB7IDAsIDAsIDAsIDAgfQogfTsKIAotY29uc3QgVVJMIHVybCA9
IFVSTChVUkwoKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZy8iKTsKK2NvbnN0IFVSTCB1cmwgeyAi
aHR0cDovL3d3dy53ZWJraXQub3JnLyJfc3RyIH07CiAKIGNsYXNzIFNTTEtleUdlbmVyYXRvclRl
c3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>