<?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>171508</bug_id>
          
          <creation_ts>2017-05-01 12:34:19 -0700</creation_ts>
          <short_desc>Update names in WKURLSchemeHandler/WKURLSchemeHandlerTask APIs</short_desc>
          <delta_ts>2017-05-01 15:41:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>aestes</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303336</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-05-01 12:34:19 -0700</bug_when>
    <thetext>Update names in WKURLSchemeHandler/WKURLSchemeHandlerTask APIs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303339</commentid>
    <comment_count>1</comment_count>
      <attachid>308750</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-05-01 12:38:58 -0700</bug_when>
    <thetext>Created attachment 308750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303341</commentid>
    <comment_count>2</comment_count>
      <attachid>308750</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-01 12:39:52 -0700</bug_when>
    <thetext>Comment on attachment 308750
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303350</commentid>
    <comment_count>3</comment_count>
      <attachid>308753</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-05-01 13:08:39 -0700</bug_when>
    <thetext>Created attachment 308753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303354</commentid>
    <comment_count>4</comment_count>
      <attachid>308755</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-05-01 13:13:33 -0700</bug_when>
    <thetext>Created attachment 308755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303362</commentid>
    <comment_count>5</comment_count>
      <attachid>308757</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-05-01 13:24:10 -0700</bug_when>
    <thetext>Created attachment 308757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303451</commentid>
    <comment_count>6</comment_count>
      <attachid>308757</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-01 15:41:30 -0700</bug_when>
    <thetext>Comment on attachment 308757
Patch

Clearing flags on attachment: 308757

Committed r216037: &lt;http://trac.webkit.org/changeset/216037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303452</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-01 15:41:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308750</attachid>
            <date>2017-05-01 12:38:58 -0700</date>
            <delta_ts>2017-05-01 13:08:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171508-20170501123857.patch</filename>
            <type>text/plain</type>
            <size>106928</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTIyNmZmMjY4YmIyMjZj
YzY5ZWU4MzRlMTYyNDA5NmYyNjgwOGM0Yy4uMTAwZmY3ODMwZThhNDcyYjdhN2YwY2FlNmY1YmVi
NmNhOWZlZDBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE3LTA1LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgbmFtZXMgaW4g
V0tVUkxTY2hlbWVIYW5kbGVyL1dLVVJMU2NoZW1lSGFuZGxlclRhc2sgQVBJcy4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMxODI0ODM4PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTUwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2g6CisgICAgICAgIC0gUmVuYW1lcyBXS1VSTFNjaGVtZUhh
bmRsZXJUYXNrIHRvIFdLVVJMU2NoZW1lVGFzaworICAgICAgICAtIFJlbmFtZXMgdGhlIG1ldGhv
ZCAic3RhcnRUYXNrIiB0byAic3RhcnRVUkxTY2hlbWVUYXNrIgorICAgICAgICAtIFJlbmFtZXMg
dGhlIG1ldGhvZCAic3RvcFRhc2siIHRvICJzdG9wVVJMU2NoZW1lVGFzayIKKworICAgICAgICBU
byB0aG9zZSBlZmZlY3RzIGl0J3MgYmFzaWNhbGx5IGEgZ2xvYmFsIHJlcGxhY2UuCisKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9BUElP
YmplY3QubW06CisgICAgICAgIChBUEk6Ok9iamVjdDo6bmV3T2JqZWN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZVRhc2suY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAuCisgICAgICAg
IChBUEk6OlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSk6CisgICAgICAgIChBUEk6OlVSTFNjaGVtZVRh
c2s6OlVSTFNjaGVtZVRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1l
VGFzay5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxT
Y2hlbWVIYW5kbGVyVGFzay5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxT
Y2hlbWVIYW5kbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZVRhc2suaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVUkxTY2hlbWVUYXNrLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXJUYXNrLm1tLgorICAgICAgICAocmFpc2VFeGNl
cHRpb25JZk5lY2Vzc2FyeSk6CisgICAgICAgICgtW1dLVVJMU2NoZW1lVGFza0ltcGwgcmVxdWVz
dF0pOgorICAgICAgICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIGRpZFJlY2VpdmVSZXNwb25zZTpd
KToKKyAgICAgICAgKC1bV0tVUkxTY2hlbWVUYXNrSW1wbCBkaWRSZWNlaXZlRGF0YTpdKToKKyAg
ICAgICAgKC1bV0tVUkxTY2hlbWVUYXNrSW1wbCBkaWRGaW5pc2hdKToKKyAgICAgICAgKC1bV0tV
UkxTY2hlbWVUYXNrSW1wbCBkaWRGYWlsV2l0aEVycm9yOl0pOgorICAgICAgICAoLVtXS1VSTFNj
aGVtZVRhc2tJbXBsIF9hcGlPYmplY3RdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLVVJMU2NoZW1lVGFza0ludGVybmFsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5hbC5oLgorICAg
ICAgICAoV2ViS2l0Ojp3cmFwcGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxl
ckNvY29hOjpwbGF0Zm9ybVN0YXJ0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZUhhbmRsZXJDb2NvYTo6cGxhdGZvcm1TdG9wVGFzayk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRVUkxT
Y2hlbWVUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wVVJMU2NoZW1l
VGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVIYW5k
bGVyVGFzayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFVS
TFNjaGVtZUhhbmRsZXJUYXNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2No
ZW1lVGFzay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJM
U2NoZW1lSGFuZGxlclRhc2suY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNr
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hl
bWVUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZURh
dGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpzdG9wKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lVGFzay5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmguCisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OmlkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpy
ZXF1ZXN0KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmFkZFVSTFNjaGVtZVRhc2tQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxTY2hlbWVUYXNrUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cmVtb3ZlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmFkZFVSTFNjaGVtZUhhbmRsZXJUYXNrUHJv
eHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cmVtb3Zl
VVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVUYXNr
RGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1l
VGFza0RpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1l
VGFza0RpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1lSGFu
ZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1lSGFuZGxlclRhc2tEaWRDb21wbGV0ZSk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OjpzdGFydE5ld1Rhc2spOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRDb21wbGV0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6dGFza0RpZFN0b3BMb2Fk
aW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclBy
b3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZVRhc2tQcm94
eS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNj
aGVtZVRhc2tQcm94eTo6V2ViVVJMU2NoZW1lVGFza1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVUkxTY2hlbWVUYXNrUHJveHk6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMU2NoZW1lVGFza1Byb3h5OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRDb21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6aGFzTG9hZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5oLgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrUHJveHk6OnJlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmlkZW50aWZpZXIpOgorCiAyMDE3LTA1
LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBBZGQgYXV0b21hdGlvbiBzZXNzaW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKaW5kZXggNzNkYThmOGY3OTA5NGEwYjZlNjliMzZkMmYxYmMyMWQ5YjM1M2Fl
NC4uYjgyNmFjZmUyNjJiNzVkNjRjZDc5MjBhMGVkODMyZGEyNzRiN2NlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHVibGljOgogICAg
ICAgICBSdW5KYXZhU2NyaXB0Q29uZmlybVJlc3VsdExpc3RlbmVyLAogICAgICAgICBSdW5KYXZh
U2NyaXB0UHJvbXB0UmVzdWx0TGlzdGVuZXIsCiAgICAgICAgIFRleHRDaGVja2VyLAotICAgICAg
ICBVUkxTY2hlbWVIYW5kbGVyVGFzaywKKyAgICAgICAgVVJMU2NoZW1lVGFzaywKICAgICAgICAg
VXNlckNvbnRlbnRDb250cm9sbGVyLAogICAgICAgICBVc2VyQ29udGVudFdvcmxkLAogICAgICAg
ICBVc2VySW5pdGlhdGVkQWN0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NvY29hL0FQSU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9BUElPYmpl
Y3QubW0KaW5kZXggMjU4ZjQyYmU1MmI2Mjc3MmQ2NWJkOTAwOTM3ZjNmZjJhNDNhZDI4Yi4uMTdk
N2UzNzQwMzI0YmVjMDVkNWRjMTdiNTdiNWU2ZTVlNmU2MjNhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCkBAIC01NCw3ICs1NCw3IEBACiAjaW1wb3J0ICJXS1By
ZWZlcmVuY2VzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vzc1Bvb2xJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV0tTZWN1cml0eU9yaWdpbkludGVybmFsLmgiCi0jaW1wb3J0ICJXS1VSTFNjaGVt
ZUhhbmRsZXJUYXNrSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLVVJMU2NoZW1lVGFza0ludGVybmFs
LmgiCiAjaW1wb3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1VzZXJTY3JpcHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKQEAgLTIzOCw4ICsyMzgsOCBAQCB2b2lk
KiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwZSB0eXBlKQogICAgICAgICB3cmFw
cGVyID0gTlNBbGxvY2F0ZU9iamVjdChbV0tOU1VSTFJlcXVlc3QgY2xhc3NdLCBzaXplLCBudWxs
cHRyKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFR5cGU6OlVSTFNjaGVtZUhhbmRsZXJU
YXNrOgotICAgICAgICB3cmFwcGVyID0gW1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsIGFsbG9j
XTsKKyAgICBjYXNlIFR5cGU6OlVSTFNjaGVtZVRhc2s6CisgICAgICAgIHdyYXBwZXIgPSBbV0tV
UkxTY2hlbWVUYXNrSW1wbCBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBUeXBl
OjpVc2VyQ29udGVudENvbnRyb2xsZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4YzQyMDFjOTE1MjA0MzNlZjE0ZjNmNzZkOTY4Y2U1NGE2NDgwYTJmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5oIgotCi0jaW5jbHVkZSAiV2ViVVJMU2No
ZW1lSGFuZGxlci5oIgotI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0KLW5h
bWVzcGFjZSBBUEkgewotCi1SZWY8VVJMU2NoZW1lSGFuZGxlclRhc2s+IFVSTFNjaGVtZUhhbmRs
ZXJUYXNrOjpjcmVhdGUoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYgd2ViVVJMU2No
ZW1lSGFuZGxlclRhc2spCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVVJMU2NoZW1lSGFu
ZGxlclRhc2sod2ViVVJMU2NoZW1lSGFuZGxlclRhc2spKTsKLX0KLQotVVJMU2NoZW1lSGFuZGxl
clRhc2s6OlVSTFNjaGVtZUhhbmRsZXJUYXNrKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRh
c2smIHdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrKQotICAgIDogbV93ZWJVUkxTY2hlbWVIYW5kbGVy
VGFzayh3ZWJVUkxTY2hlbWVIYW5kbGVyVGFzaykKLXsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTMxNTA4ZmQwOWUyNWE5NDNlY2I3YzQ0ZTkyMmFk
Njk2ZjA5YWMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suaAor
KysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrOwotfQotCi1uYW1lc3BhY2UgQVBJIHsKLQotY2xhc3MgVVJM
U2NoZW1lSGFuZGxlclRhc2sgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6
OlVSTFNjaGVtZUhhbmRsZXJUYXNrPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVUkxTY2hl
bWVIYW5kbGVyVGFzaz4gY3JlYXRlKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smKTsK
LQotICAgIFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smIHRhc2soKSB7IHJldHVybiBt
X3dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgVVJMU2No
ZW1lSGFuZGxlclRhc2soV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpOwotCi0gICAg
UmVmPFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s+IG1fd2ViVVJMU2NoZW1lSGFuZGxl
clRhc2s7Ci19OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSVVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
UkxTY2hlbWVUYXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTliOGM3NGZlZGZiNDRhNDM5Njc3ZTY3Mjc0
YWIzODU3N2NkNDg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElVUkxTY2hlbWVUYXNrLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSVVSTFNjaGVtZVRhc2suaCIKKworI2lu
Y2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNr
LmgiCisKK25hbWVzcGFjZSBBUEkgeworCitSZWY8VVJMU2NoZW1lVGFzaz4gVVJMU2NoZW1lVGFz
azo6Y3JlYXRlKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzayYgd2ViVVJMU2NoZW1lVGFzaykKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVUkxTY2hlbWVUYXNrKHdlYlVSTFNjaGVtZVRhc2sp
KTsKK30KKworVVJMU2NoZW1lVGFzazo6VVJMU2NoZW1lVGFzayhXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2smIHdlYlVSTFNjaGVtZVRhc2spCisgICAgOiBtX3dlYlVSTFNjaGVtZVRhc2sod2ViVVJM
U2NoZW1lVGFzaykKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSVVSTFNjaGVtZVRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODU2MGQ5YzEwYjNkMWRjMmVjODZjZmYw
YTM2NzE3MWRiNzgxNzdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVUkxTY2hlbWVUYXNrLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworY2xhc3MgV2ViVVJMU2NoZW1lVGFzazsKK30KKworbmFtZXNwYWNlIEFQSSB7CisKK2Ns
YXNzIFVSTFNjaGVtZVRhc2sgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6
OlVSTFNjaGVtZVRhc2s+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFVSTFNjaGVtZVRhc2s+
IGNyZWF0ZShXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2smKTsKKworICAgIFdlYktpdDo6V2ViVVJM
U2NoZW1lVGFzayYgdGFzaygpIHsgcmV0dXJuIG1fd2ViVVJMU2NoZW1lVGFzay5nZXQoKTsgfQor
Citwcml2YXRlOgorICAgIFVSTFNjaGVtZVRhc2soV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrJik7
CisKKyAgICBSZWY8V2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrPiBtX3dlYlVSTFNjaGVtZVRhc2s7
Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVVJMU2NoZW1lSGFuZGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VSTFNjaGVtZUhhbmRsZXIuaAppbmRleCBjNDMxYmM1MDU3YzUyZTBkOTkzZGYzNTgwNjM3
N2VlOTY4ZTMzZTE3Li45M2U3N2M3MTRmY2ZkOGFlNzNiMjYwZjZmNjdlYTI2MmE4MDBiNDExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1l
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxT
Y2hlbWVIYW5kbGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKIEBjbGFzcyBXS1dlYlZpZXc7Ci1AcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyVGFzazsK
K0Bwcm90b2NvbCBXS1VSTFNjaGVtZVRhc2s7CiAKIC8qISBBIGNsYXNzIGNvbmZvcm1pbmcgdG8g
dGhlIFdLVVJMU2NoZW1lSGFuZGxlciBwcm90b2NvbCBwcm92aWRlcyBtZXRob2RzIGZvcgogIGxv
YWRpbmcgcmVzb3VyY2VzIHdpdGggVVJMIHNjaGVtZXMgdGhhdCBXZWJLaXQgZG9lc24ndCBrbm93
IGhvdyB0byBoYW5kbGUgaXRzZWxmLgpAQCAtNDMsMTkgKzQzLDE5IEBAIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiAvKiEgQGFic3RyYWN0IE5v
dGlmaWVzIHlvdXIgYXBwIHRvIHN0YXJ0IGxvYWRpbmcgdGhlIGRhdGEgZm9yIGEgcGFydGljdWxh
ciByZXNvdXJjZSAKICByZXByZXNlbnRlZCBieSB0aGUgVVJMIHNjaGVtZSBoYW5kbGVyIHRhc2su
CiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBtZXRob2QuCi0gQHBh
cmFtIHVybFNjaGVtZUhhbmRsZXJUYXNrIFRoZSB0YXNrIHRoYXQgeW91ciBhcHAgc2hvdWxkIHN0
YXJ0IGxvYWRpbmcgZGF0YSBmb3IuCisgQHBhcmFtIHVybFNjaGVtZVRhc2sgVGhlIHRhc2sgdGhh
dCB5b3VyIGFwcCBzaG91bGQgc3RhcnQgbG9hZGluZyBkYXRhIGZvci4KICAqLwotLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VGFzazooaWQgPFdLVVJMU2NoZW1lSGFu
ZGxlclRhc2s+KXVybFNjaGVtZUhhbmRsZXJUYXNrOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJs
U2NoZW1lVGFzazsKIAogLyohIEBhYnN0cmFjdCBOb3RpZmllcyB5b3VyIGFwcCB0byBzdG9wIGhh
bmRsaW5nIGEgVVJMIHNjaGVtZSBoYW5kbGVyIHRhc2suCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdl
YiB2aWV3IGludm9raW5nIHRoZSBtZXRob2QuCi0gQHBhcmFtIHVybFNjaGVtZUhhbmRsZXJUYXNr
IFRoZSB0YXNrIHRoYXQgeW91ciBhcHAgc2hvdWxkIHN0b3AgaGFuZGxpbmcuCisgQHBhcmFtIHVy
bFNjaGVtZVRhc2sgVGhlIHRhc2sgdGhhdCB5b3VyIGFwcCBzaG91bGQgc3RvcCBoYW5kbGluZy4K
ICBAZGlzY3Vzc2lvbiBBZnRlciB5b3VyIGFwcCBpcyB0b2xkIHRvIHN0b3AgbG9hZGluZyBkYXRh
IGZvciBhIFVSTCBzY2hlbWUgaGFuZGxlciB0YXNrCiAgaXQgbXVzdCBub3QgcGVyZm9ybSBhbnkg
Y2FsbGJhY2tzIGZvciB0aGF0IHRhc2suCiAgQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlm
IGFueSBjYWxsYmFja3MgYXJlIG1hZGUgb24gdGhlIFVSTCBzY2hlbWUgaGFuZGxlciB0YXNrCiAg
YWZ0ZXIgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcgZm9yIGl0LgogICov
Ci0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RvcFRhc2s6KGlkIDxXS1VS
TFNjaGVtZUhhbmRsZXJUYXNrPil1cmxTY2hlbWVIYW5kbGVyVGFzazsKKy0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBzdG9wVVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1l
VGFzaz4pdXJsU2NoZW1lVGFzazsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2suaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOWZlMzk2NWU4YjM4ZTAwNzYyYzU5MzYwYjdlZWJm
ZmI1NmY1YTI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFz
ay5oCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
PFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1X
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQotQHBy
b3RvY29sIFdLVVJMU2NoZW1lSGFuZGxlclRhc2sgPE5TT2JqZWN0PgotCi0vKiEgQGFic3RyYWN0
IFRoZSByZXF1ZXN0IHRvIGxvYWQgZm9yIHRoaXMgdGFzay4KLSAqLwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7Ci0KLS8qISBAYWJz
dHJhY3QgU2V0IHRoZSBjdXJyZW50IHJlc3BvbnNlIG9iamVjdCBmb3IgdGhlIHRhc2suCi0gQHBh
cmFtIHJlc3BvbnNlIFRoZSByZXNwb25zZSB0byB1c2UuCi0gQGRpc2N1c3Npb24gVGhpcyBtZXRo
b2QgbXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBmb3IgZWFjaCBVUkwgc2NoZW1lIGhhbmRs
ZXIgdGFzay4KLSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5k
IGEgbmV3IHJlc3BvbnNlIG9iamVjdCBhZnRlciB0aGUgdGFzayBoYXMgYWxyZWFkeSBiZWVuIGNv
bXBsZXRlZC4KLSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJl
ZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VS
TFNjaGVtZUhhbmRsZXIgb2JqZWN0LgotICovCi0tICh2b2lkKWRpZFJlY2VpdmVSZXNwb25zZToo
TlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlOwotCi0vKiEgQGFic3RyYWN0IEFkZCByZWNlaXZlZCBk
YXRhIHRvIHRoZSB0YXNrLgotIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGFkZC4KLSBAZGlzY3Vz
c2lvbiBBZnRlciBhIFVSTCBzY2hlbWUgaGFuZGxlciB0YXNrJ3MgZmluYWwgcmVzcG9uc2Ugb2Jq
ZWN0IGlzIHJlY2VpdmVkIHlvdSBzaG91bGQKLSBzdGFydCBzZW5kaW5nIGl0IGRhdGEuCi0gRWFj
aCB0aW1lIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCB0aGUgZGF0YSB5b3Ugc2VuZCB3aWxsIGJlIGFw
cGVuZGVkIHRvIGFsbCBwcmV2aW91cyBkYXRhLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93
biBpZiB5b3UgdHJ5IHRvIHNlbmQgdGhlIHRhc2sgYW55IGRhdGEgYmVmb3JlIHNlbmRpbmcgaXQg
YSByZXNwb25zZS4KLSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBz
ZW5kIHRoZSB0YXNrIGFueSBkYXRhIGFmdGVyIHRoZSB0YXNrIGhhcyBhbHJlYWR5IGJlZW4gY29t
cGxldGVkLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVl
biB0b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJM
U2NoZW1lSGFuZGxlciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkUmVjZWl2ZURhdGE6KE5TRGF0
YSAqKWRhdGE7Ci0KLS8qISBAYWJzdHJhY3QgTWFyayB0aGUgdGFzayBhcyBzdWNjZXNzZnVsbHkg
Y29tcGxldGVkLgotIEBkaXNjdXNzaW9uIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5
b3UgdHJ5IHRvIGZpbmlzaCB0aGUgdGFzayBiZWZvcmUgc2VuZGluZyBpdCBhIHJlc3BvbnNlLgot
IEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIG1hcmsgYSB0YXNrIGNv
bXBsZXRlZCBhZnRlciBpdCBoYXMgYWxyZWFkeSBiZWVuIG1hcmtlZCBjb21wbGV0ZWQgb3IgZmFp
bGVkLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0
b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2No
ZW1lSGFuZGxlciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkRmluaXNoOwotCi0vKiEgQGFic3Ry
YWN0IE1hcmsgdGhlIHRhc2sgYXMgZmFpbGVkLgotIEBwYXJhbSBlcnJvciBBIGRlc2NyaXB0aW9u
IG9mIHRoZSBlcnJvciB0aGF0IGNhdXNlZCB0aGUgdGFzayB0byBmYWlsLgotIEBkaXNjdXNzaW9u
ICBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBtYXJrIGEgdGFzayBm
YWlsZWQgYWZ0ZXIgaXQgaGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgY29tcGxldGVkIG9yIGZhaWxl
ZC4KLSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9s
ZCB0byBzdG9wIGxvYWRpbmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVt
ZUhhbmRsZXIgb2JqZWN0LgotICovCi0tICh2b2lkKWRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3Ig
KillcnJvcjsKLQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFu
ZGxlclRhc2subW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lSGFuZGxlclRhc2subW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1MmYxMzFi
ZjZiYjZiNDBmOTI1M2NlOTg4ZmFkYzE4MWViODVmODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VSTFNjaGVtZUhhbmRsZXJUYXNrLm1tCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV0tVUkxTY2hlbWVI
YW5kbGVyVGFza0ludGVybmFsLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi0jaW5jbHVkZSAi
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJy
b3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotc3Rh
dGljIHZvaWQgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShXZWJLaXQ6OldlYlVSTFNjaGVtZUhh
bmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlIGV4Y2VwdGlvblR5cGUpCi17Ci0gICAgc3dpdGNoIChl
eGNlcHRpb25UeXBlKSB7Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
OjpFeGNlcHRpb25UeXBlOjpOb25lOgotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBXZWJLaXQ6
OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3Bw
ZWQ6Ci0gICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4
Y2VwdGlvbiBmb3JtYXQ6QCJUaGlzIHRhc2sgaGFzIGFscmVhZHkgYmVlbiBzdG9wcGVkIl07Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6
RXhjZXB0aW9uVHlwZTo6Q29tcGxldGVBbHJlYWR5Q2FsbGVkOgotICAgICAgICBbTlNFeGNlcHRp
b24gcmFpc2U6TlNJbnRlcm5hbEluY29uc2lzdGVuY3lFeGNlcHRpb24gZm9ybWF0OkAiW1dLVVJM
U2NoZW1lSGFuZGxlclRhc2sgdGFza0RpZENvbXBsZXRlV2l0aEVycm9yOl0gaGFzIGFscmVhZHkg
YmVlbiBjYWxsZWQgZm9yIHRoaXMgdGFzayJdOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdl
YktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5
U2VudDoKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNpc3RlbmN5
RXhjZXB0aW9uIGZvcm1hdDpAIltXS1VSTFNjaGVtZUhhbmRsZXJUYXNrIHRhc2tEaWRSZWNlaXZl
RGF0YTpdIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciB0aGlzIHRhc2siXTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRp
b25UeXBlOjpOb1Jlc3BvbnNlU2VudDoKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50
ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIk5vIHJlc3BvbnNlIGhhcyBiZWVu
IHNlbnQgZm9yIHRoaXMgdGFzayJdOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLUBpbXBs
ZW1lbnRhdGlvbiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW1wbAotCi0tIChOU1VSTFJlcXVlc3Qg
KilyZXF1ZXN0Ci17Ci0gICAgcmV0dXJuIF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLnJl
cXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSk7Ci19Ci0KLS0gKHZvaWQp
ZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UKLXsKLSAgICBhdXRv
IHJlc3VsdCA9IF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLmRpZFJlY2VpdmVSZXNwb25z
ZShyZXNwb25zZSk7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOwotfQot
Ci0tICh2b2lkKWRpZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhCi17Ci0gICAgYXV0byByZXN1
bHQgPSBfdXJsU2NoZW1lSGFuZGxlclRhc2stPnRhc2soKS5kaWRSZWNlaXZlRGF0YShXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKSk7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vz
c2FyeShyZXN1bHQpOwotfQotCi0tICh2b2lkKWRpZEZpbmlzaAotewotICAgIGF1dG8gcmVzdWx0
ID0gX3VybFNjaGVtZUhhbmRsZXJUYXNrLT50YXNrKCkuZGlkQ29tcGxldGUoeyB9KTsKLSAgICBy
YWlzZUV4Y2VwdGlvbklmTmVjZXNzYXJ5KHJlc3VsdCk7Ci19Ci0KLS0gKHZvaWQpZGlkRmFpbFdp
dGhFcnJvcjooTlNFcnJvciAqKWVycm9yCi17Ci0gICAgYXV0byByZXN1bHQgPSBfdXJsU2NoZW1l
SGFuZGxlclRhc2stPnRhc2soKS5kaWRDb21wbGV0ZShlcnJvcik7Ci0gICAgcmFpc2VFeGNlcHRp
b25JZk5lY2Vzc2FyeShyZXN1bHQpOwotfQotCi0jcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9j
b2wgaW1wbGVtZW50YXRpb24KLQotLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKLXsKLSAgICBy
ZXR1cm4gKl91cmxTY2hlbWVIYW5kbGVyVGFzazsKLX0KLQotQGVuZAotCi0jZW5kaWYgLy8gI2lm
IFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50ZXJuYWwuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI0NjgwMWY1ODM2NjZjYTMxNTgxNjA2YWQyODYw
OGY2MmE0OGRlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRh
c2tJbnRlcm5hbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgIldLVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVE
Ci0KLSNpbXBvcnQgIkFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0jaW1wb3J0ICJXS09iamVj
dC5oIgotCi1AaW50ZXJmYWNlIFdLVVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsIDogTlNPYmplY3Qg
PFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+Ci1AZW5kCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1p
bmxpbmUgaWQ8V0tVUkxTY2hlbWVIYW5kbGVyVGFzaz4gd3JhcHBlcihBUEk6OlVSTFNjaGVtZUhh
bmRsZXJUYXNrJiB1cmxTY2hlbWVIYW5kbGVyVGFzaykKLXsKLSAgICBBU1NFUlQoW3VybFNjaGVt
ZUhhbmRsZXJUYXNrLndyYXBwZXIoKSBpc0tpbmRPZkNsYXNzOltXS1VSTFNjaGVtZUhhbmRsZXJU
YXNrSW1wbCBjbGFzc11dKTsKLSAgICByZXR1cm4gKGlkPFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+
KXVybFNjaGVtZUhhbmRsZXJUYXNrLndyYXBwZXIoKTsKLX0KLQotfQotCi1AaW50ZXJmYWNlIFdL
VVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsICgpIDxXS09iamVjdD4gewotQHBhY2thZ2UKLSAgICBB
UEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpVUkxTY2hlbWVIYW5kbGVyVGFzaz4gX3VybFNjaGVtZUhh
bmRsZXJUYXNrOwotfQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZkMDA1YjQ3NzYwMjU0OTVkYWRlYWFhYzU1OGU1MmZkYjE0NGQ0YjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lVGFzay5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK0Bwcm90b2NvbCBX
S1VSTFNjaGVtZVRhc2sgPE5TT2JqZWN0PgorCisvKiEgQGFic3RyYWN0IFRoZSByZXF1ZXN0IHRv
IGxvYWQgZm9yIHRoaXMgdGFzay4KKyAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBjb3B5KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7CisKKy8qISBAYWJzdHJhY3QgU2V0IHRoZSBj
dXJyZW50IHJlc3BvbnNlIG9iamVjdCBmb3IgdGhlIHRhc2suCisgQHBhcmFtIHJlc3BvbnNlIFRo
ZSByZXNwb25zZSB0byB1c2UuCisgQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxs
ZWQgYXQgbGVhc3Qgb25jZSBmb3IgZWFjaCBVUkwgc2NoZW1lIGhhbmRsZXIgdGFzay4KKyBBbiBl
eGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIGEgbmV3IHJlc3BvbnNl
IG9iamVjdCBhZnRlciB0aGUgdGFzayBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyBBbiBl
eGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9w
IGxvYWRpbmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIg
b2JqZWN0LgorICovCistICh2b2lkKWRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAq
KXJlc3BvbnNlOworCisvKiEgQGFic3RyYWN0IEFkZCByZWNlaXZlZCBkYXRhIHRvIHRoZSB0YXNr
LgorIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGFkZC4KKyBAZGlzY3Vzc2lvbiBBZnRlciBhIFVS
TCBzY2hlbWUgaGFuZGxlciB0YXNrJ3MgZmluYWwgcmVzcG9uc2Ugb2JqZWN0IGlzIHJlY2VpdmVk
IHlvdSBzaG91bGQKKyBzdGFydCBzZW5kaW5nIGl0IGRhdGEuCisgRWFjaCB0aW1lIHRoaXMgbWV0
aG9kIGlzIGNhbGxlZCB0aGUgZGF0YSB5b3Ugc2VuZCB3aWxsIGJlIGFwcGVuZGVkIHRvIGFsbCBw
cmV2aW91cyBkYXRhLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRv
IHNlbmQgdGhlIHRhc2sgYW55IGRhdGEgYmVmb3JlIHNlbmRpbmcgaXQgYSByZXNwb25zZS4KKyBB
biBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIHRoZSB0YXNrIGFu
eSBkYXRhIGFmdGVyIHRoZSB0YXNrIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorIEFuIGV4
Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3Ag
bG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxlciBv
YmplY3QuCisgKi8KKy0gKHZvaWQpZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGE7CisKKy8q
ISBAYWJzdHJhY3QgTWFyayB0aGUgdGFzayBhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLgorIEBk
aXNjdXNzaW9uIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIGZpbmlz
aCB0aGUgdGFzayBiZWZvcmUgc2VuZGluZyBpdCBhIHJlc3BvbnNlLgorIEFuIGV4Y2VwdGlvbiB3
aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIG1hcmsgYSB0YXNrIGNvbXBsZXRlZCBhZnRlciBp
dCBoYXMgYWxyZWFkeSBiZWVuIG1hcmtlZCBjb21wbGV0ZWQgb3IgZmFpbGVkLgorIEFuIGV4Y2Vw
dGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9h
ZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmpl
Y3QuCisgKi8KKy0gKHZvaWQpZGlkRmluaXNoOworCisvKiEgQGFic3RyYWN0IE1hcmsgdGhlIHRh
c2sgYXMgZmFpbGVkLgorIEBwYXJhbSBlcnJvciBBIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciB0
aGF0IGNhdXNlZCB0aGUgdGFzayB0byBmYWlsLgorIEBkaXNjdXNzaW9uICBBbiBleGNlcHRpb24g
d2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBtYXJrIGEgdGFzayBmYWlsZWQgYWZ0ZXIgaXQg
aGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgY29tcGxldGVkIG9yIGZhaWxlZC4KKyBBbiBleGNlcHRp
b24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRp
bmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIgb2JqZWN0
LgorICovCistICh2b2lkKWRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKKworQGVu
ZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBmZWY2ODlkNzRlMWQwYWI1MmIxYmZmNjc1ZjZmZTBhZGRkMDYzMzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5t
bQpAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJXS1VSTFNjaGVtZVRhc2tJbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKwor
I2luY2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
c3RhdGljIHZvaWQgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OkV4Y2VwdGlvblR5cGUgZXhjZXB0aW9uVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGV4Y2Vw
dGlvblR5cGUpIHsKKyAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9u
VHlwZTo6Tm9uZToKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpFeGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ6CisgICAgICAgIFtOU0V4
Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJU
aGlzIHRhc2sgaGFzIGFscmVhZHkgYmVlbiBzdG9wcGVkIl07CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpDb21wbGV0ZUFs
cmVhZHlDYWxsZWQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25z
aXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJbV0tVUkxTY2hlbWVUYXNrIHRhc2tEaWRDb21wbGV0
ZVdpdGhFcnJvcjpdIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciB0aGlzIHRhc2siXTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlv
blR5cGU6OkRhdGFBbHJlYWR5U2VudDoKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50
ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIltXS1VSTFNjaGVtZVRhc2sgdGFz
a0RpZFJlY2VpdmVEYXRhOl0gaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgZm9yIHRoaXMgdGFzayJd
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6RXhj
ZXB0aW9uVHlwZTo6Tm9SZXNwb25zZVNlbnQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpO
U0ludGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJObyByZXNwb25zZSBoYXMg
YmVlbiBzZW50IGZvciB0aGlzIHRhc2siXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitA
aW1wbGVtZW50YXRpb24gV0tVUkxTY2hlbWVUYXNrSW1wbAorCistIChOU1VSTFJlcXVlc3QgKily
ZXF1ZXN0Cit7CisgICAgcmV0dXJuIF91cmxTY2hlbWVUYXNrLT50YXNrKCkucmVxdWVzdCgpLm5z
VVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KTsKK30KKworLSAodm9pZClkaWRSZWNlaXZl
UmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZQoreworICAgIGF1dG8gcmVzdWx0ID0g
X3VybFNjaGVtZVRhc2stPnRhc2soKS5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOworICAg
IHJhaXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKworLSAodm9pZClkaWRSZWNl
aXZlRGF0YTooTlNEYXRhICopZGF0YQoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRh
c2stPnRhc2soKS5kaWRSZWNlaXZlRGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhKSk7CisgICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOworfQorCistICh2
b2lkKWRpZEZpbmlzaAoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRhc2stPnRhc2so
KS5kaWRDb21wbGV0ZSh7IH0pOworICAgIHJhaXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0
KTsKK30KKworLSAodm9pZClkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IF91cmxTY2hlbWVUYXNrLT50YXNrKCkuZGlkQ29tcGxldGUoZXJyb3Ip
OworICAgIHJhaXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKworI3ByYWdtYSBt
YXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0Jilf
YXBpT2JqZWN0Cit7CisgICAgcmV0dXJuICpfdXJsU2NoZW1lVGFzazsKK30KKworQGVuZAorCisj
ZW5kaWYgLy8gI2lmIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza0ludGVybmFsLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza0ludGVybmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmZkNjFmZjUwN2ZiMTUzYWEzMzg1YjNkZDc0NzJiNTBmZjBiZDkwYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVU
YXNrSW50ZXJuYWwuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tV
UkxTY2hlbWVUYXNrLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJBUElVUkxT
Y2hlbWVUYXNrLmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgorCitAaW50ZXJmYWNlIFdLVVJMU2No
ZW1lVGFza0ltcGwgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVUYXNrPgorQGVuZAorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworaW5saW5lIGlkPFdLVVJMU2NoZW1lVGFzaz4gd3JhcHBlcihBUEk6OlVS
TFNjaGVtZVRhc2smIHVybFNjaGVtZVRhc2spCit7CisgICAgQVNTRVJUKFt1cmxTY2hlbWVUYXNr
LndyYXBwZXIoKSBpc0tpbmRPZkNsYXNzOltXS1VSTFNjaGVtZVRhc2tJbXBsIGNsYXNzXV0pOwor
ICAgIHJldHVybiAoaWQ8V0tVUkxTY2hlbWVUYXNrPil1cmxTY2hlbWVUYXNrLndyYXBwZXIoKTsK
K30KKworfQorCitAaW50ZXJmYWNlIFdLVVJMU2NoZW1lVGFza0ltcGwgKCkgPFdLT2JqZWN0PiB7
CitAcGFja2FnZQorICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OlVSTFNjaGVtZVRhc2s+IF91
cmxTY2hlbWVUYXNrOworfQorQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVy
Q29jb2EuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5k
bGVyQ29jb2EuaAppbmRleCBkYWVhYzQ1MDkxMDA4MDg5ZTEzM2I0NmQ4ZWVmYTc4NThkZDk0Mzc3
Li4yNTkwYWYzMzAxMzRhMGZjMGM3OTgwN2IyNTU5MDRiNjcwNGU5YzgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJD
b2NvYS5oCkBAIC0zMSw3ICszMSw3IEBACiBAcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyOwog
CiBuYW1lc3BhY2UgQVBJIHsKLWNsYXNzIFVSTFNjaGVtZUhhbmRsZXJUYXNrOworY2xhc3MgVVJM
U2NoZW1lVGFzazsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NSwxMSArNDUsMTEgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EoaWQgPFdLVVJM
U2NoZW1lSGFuZGxlcj4pOwogCi0gICAgdm9pZCBwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJv
eHkmLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpIGZpbmFsOwotICAgIHZvaWQgcGxhdGZvcm1T
dG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpIGZpbmFsOwor
ICAgIHZvaWQgcGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFz
ayYpIGZpbmFsOworICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJV
UkxTY2hlbWVUYXNrJikgZmluYWw7CiAKICAgICBSZXRhaW5QdHI8aWQgPFdLVVJMU2NoZW1lSGFu
ZGxlcj4+IG1fYXBpSGFuZGxlcjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8QVBJOjpVUkxT
Y2hlbWVIYW5kbGVyVGFzaz4+IG1fYXBpVGFza3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
PEFQSTo6VVJMU2NoZW1lVGFzaz4+IG1fYXBpVGFza3M7CiAKIH07IC8vIGNsYXNzIFdlYlVSTFNj
aGVtZUhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0KaW5kZXggNjM4MzkxNDU1MGRkYzE4NDY2
MzczMjU1ZDIzOGJiYmZiYzg1OGI0Mi4uYjg0Y2M2NDJkM2RkMzgwYzcxOTZiYjVjODFhYTg4ZDQ2
MjE5NzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tCkBAIC0yNiwxMiArMjYsMTIgQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgiCiAKLSNp
bXBvcnQgIkFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCisjaW1wb3J0ICJBUElVUkxTY2hlbWVU
YXNrLmgiCiAjaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKICNpbXBvcnQgIldLVVJMU2NoZW1lSGFu
ZGxlci5oIgotI2ltcG9ydCAiV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmgiCisjaW1w
b3J0ICJXS1VSTFNjaGVtZVRhc2tJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJu
YWwuaCIKLSNpbXBvcnQgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCisjaW1wb3J0ICJXZWJV
UkxTY2hlbWVUYXNrLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NywyNyAr
NDcsMjcgQEAgV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2EoaWQgPFdLVVJMU2NoZW1lSGFuZGxlcj4gYXBpSGEKIHsKIH0KIAotdm9pZCBXZWJVUkxTY2hl
bWVIYW5kbGVyQ29jb2E6OnBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2smIHRhc2spCit2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2Nv
YTo6cGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVUYXNr
JiB0YXNrKQogewogI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgYXV0byByZXN1bHQgPSBtX2FwaVRh
c2tzLmFkZCh0YXNrLmlkZW50aWZpZXIoKSwgQVBJOjpVUkxTY2hlbWVIYW5kbGVyVGFzazo6Y3Jl
YXRlKHRhc2spKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fYXBpVGFza3MuYWRkKHRhc2suaWRlbnRp
ZmllcigpLCBBUEk6OlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJl
c3VsdC5pc05ld0VudHJ5KTsKIAotICAgIFttX2FwaUhhbmRsZXIuZ2V0KCkgd2ViVmlldzpmcm9t
V2ViUGFnZVByb3h5KHBhZ2UpIHN0YXJ0VGFzazp3cmFwcGVyKHJlc3VsdC5pdGVyYXRvci0+dmFs
dWUuZ2V0KCkpXTsKKyAgICBbbV9hcGlIYW5kbGVyLmdldCgpIHdlYlZpZXc6ZnJvbVdlYlBhZ2VQ
cm94eShwYWdlKSBzdGFydFVSTFNjaGVtZVRhc2s6d3JhcHBlcihyZXN1bHQuaXRlcmF0b3ItPnZh
bHVlLmdldCgpKV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICBVTlVTRURf
UEFSQU0odGFzayk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2E6
OnBsYXRmb3JtU3RvcFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVIYW5kbGVy
VGFzayYgdGFzaykKK3ZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpwbGF0Zm9ybVN0b3BU
YXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViVVJMU2NoZW1lVGFzayYgdGFzaykKIHsKICNpZiBX
S19BUElfRU5BQkxFRAogICAgIGF1dG8gaXRlcmF0b3IgPSBtX2FwaVRhc2tzLmZpbmQodGFzay5p
ZGVudGlmaWVyKCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX2FwaVRhc2tzLmVuZCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBbbV9hcGlIYW5kbGVyLmdldCgpIHdlYlZpZXc6ZnJvbVdlYlBh
Z2VQcm94eShwYWdlKSBzdG9wVGFzazp3cmFwcGVyKGl0ZXJhdG9yLT52YWx1ZS5nZXQoKSldOwor
ICAgIFttX2FwaUhhbmRsZXIuZ2V0KCkgd2ViVmlldzpmcm9tV2ViUGFnZVByb3h5KHBhZ2UpIHN0
b3BVUkxTY2hlbWVUYXNrOndyYXBwZXIoaXRlcmF0b3ItPnZhbHVlLmdldCgpKV07CiAKICAgICBt
X2FwaVRhc2tzLnJlbW92ZShpdGVyYXRvcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3YzZiODZmZjU0MTJjNDNjYzZhMDgzZjI2MTJkMDYy
OTgyNDE2ODIxLi41ZGRhNzNiMTU1NjIwODYzYmMxZDliNmFjZGU0ZGQ1Y2QxMjAyNmYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjg4MCw3ICs2ODgw
LDcgQEAgV2ViVVJMU2NoZW1lSGFuZGxlciogV2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVIYW5kbGVy
Rm9yU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW0KICAgICByZXR1cm4gbV91cmxTY2hlbWVIYW5k
bGVyc0J5U2NoZW1lLmdldChzY2hlbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRV
UkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3Qg
cmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRs
ZXJJZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV91cmxT
Y2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5maW5kKGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBB
U1NFUlQoaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7
CkBAIC02ODg4LDcgKzY4ODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVI
YW5kbGVyVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0XwogICAgIGl0ZXJh
dG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlzLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3Qp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RvcFVSTFNjaGVtZUhhbmRsZXJUYXNrKHVpbnQ2
NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpCit2b2lk
IFdlYlBhZ2VQcm94eTo6c3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZp
ZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0g
bV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5maW5kKGhhbmRsZXJJZGVudGlmaWVyKTsK
ICAgICBBU1NFUlQoaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5l
bmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjcwMjNh
NDYwNWMwZDIyNWFkZGZkZDFmZDhjZTIzOTc3M2Y5MGM4MC4uYWQyNTAwODczYzBmZTI1ZjNkOTI4
MmUyMDZjMzhhOTQ4YzI0N2U2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTYwOCw4ICsxNjA4LDggQEAgcHJpdmF0ZToKICNlbmRpZgogI2VuZGlmCiAKLSAg
ICB2b2lkIHN0YXJ0VVJMU2NoZW1lSGFuZGxlclRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZp
ZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7Ci0gICAgdm9pZCBzdG9wVVJMU2NoZW1lSGFuZGxlclRhc2sodWludDY0X3QgaGFu
ZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBz
dGFydFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJl
c291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAg
dm9pZCBzdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0
X3QgcmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgaGFuZGxlQXV0b0ZpbGxCdXR0b25D
bGljayhjb25zdCBVc2VyRGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNGI5ODEwNWJjZTY4NDA4NDNmYjljMTE0
NDE4Njc4M2VmOThhNDgzLi5hYzVkYzgyNDc5ZDY4Yzg5ZGFiMWQxNmNhMDc3NGY5NGI5M2VjYmQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTQ5Miw4ICs0OTIsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAg
ICAgU2V0SXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3Jt
YW5jZVdlYkdMKQogCi0gICAgU3RhcnRVUkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRfdCBsb2Fk
ZXJJZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KQotICAgIFN0b3BVUkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRf
dCBsb2FkZXJJZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpCisgICAgU3Rh
cnRVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGxvYWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCisgICAgU3Rv
cFVSTFNjaGVtZVRhc2sodWludDY0X3QgbG9hZGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3Vy
Y2VJZGVudGlmaWVyKQogCiAgICAgU2V0Q2xpcFRvU2FmZUFyZWEoYm9vbCBjbGlwVG9TYWZlQXJl
YSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVy
LmNwcAppbmRleCBlNTk5ZWMyZjNlMWZmMjEyMWE3YmZmMzc1MDExNjllY2EzNmI2YzUyLi43NDBj
Mzk2NzRhM2Y4YTlmZDA5M2NkOTNiYThjOWQzZDc2ZWI1ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgog
Ci0jaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKKyNpbmNsdWRlICJXZWJVUkxT
Y2hlbWVUYXNrLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MCw3ICs1MCw3
IEBAIFdlYlVSTFNjaGVtZUhhbmRsZXI6On5XZWJVUkxTY2hlbWVIYW5kbGVyKCkKIAogdm9pZCBX
ZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRf
dCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKHJlc291cmNlSWRlbnRpZmllciwgV2ViVVJM
U2NoZW1lSGFuZGxlclRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcmVzb3VyY2VJZGVudGlmaWVy
LCByZXF1ZXN0KSk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZChyZXNvdXJjZUlkZW50
aWZpZXIsIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcmVzb3VyY2VJZGVu
dGlmaWVyLCByZXF1ZXN0KSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAg
IHBsYXRmb3JtU3RhcnRUYXNrKHBhZ2UsIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggMzRjZmQ1
ZGRmOTg2YjJlNjMxYjI0NzIzODE3NmY3YWVjZDA2NzYyMS4uM2Y0ZWFmYmEzNzllYjZlNzM4NDM5
OTJkYzQ5Y2FkYjc4Y2E1YjRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hl
bWVUYXNrLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDEyICs1MiwxMiBAQCBwcm90
ZWN0ZWQ6CiAgICAgV2ViVVJMU2NoZW1lSGFuZGxlcigpOwogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVIYW5k
bGVyVGFzayYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdl
UHJveHkmLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxT
Y2hlbWVUYXNrJikgPSAwOwogCiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwogCi0gICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrPj4gbV90YXNrczsKKyAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8V2ViVVJMU2NoZW1lVGFzaz4+IG1fdGFza3M7CiAKIH07
IC8vIGNsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDBkZWFiM2U1Nzc4NTI2MTY5NmMwZjkxY2UwMTkwZTY1NGU5YTg2MWIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0KLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCi0jaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCi0jaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxXZWJVUkxTY2hlbWVIYW5kbGVy
VGFzaz4gV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVy
JiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrKGhhbmRsZXIsIHBhZ2UsIHJlc291cmNlSWRl
bnRpZmllciwgcmVxdWVzdCkpOwotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6V2ViVVJM
U2NoZW1lSGFuZGxlclRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVBy
b3h5JiBwYWdlLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLSAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQotICAgICwg
bV9wYWdlKCZwYWdlKQotICAgICwgbV9pZGVudGlmaWVyKHJlc291cmNlSWRlbnRpZmllcikKLSAg
ICAsIG1fcmVxdWVzdChyZXF1ZXN0KQotewotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6
RXhjZXB0aW9uVHlwZSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlmIChtX3N0b3BwZWQp
Ci0gICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6
VGFza0FscmVhZHlTdG9wcGVkOwotCi0gICAgaWYgKG1fY29tcGxldGVkKQotICAgICAgICByZXR1
cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFk
eUNhbGxlZDsKLQotICAgIGlmIChtX2RhdGFTZW50KQotICAgICAgICByZXR1cm4gV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5U2VudDsKLQotICAgIG1f
cmVzcG9uc2VTZW50ID0gdHJ1ZTsKLQotICAgIHJlc3BvbnNlLmluY2x1ZGVDZXJ0aWZpY2F0ZUlu
Zm8oKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZUhhbmRs
ZXJUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigp
LCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlKSk7Ci0gICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRs
ZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpOb25lOwotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFz
azo6RXhjZXB0aW9uVHlwZSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6ZGlkUmVjZWl2ZURhdGEo
UmVmPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyKQotewotICAgIGlmIChtX3N0b3BwZWQpCi0gICAgICAg
IHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVh
ZHlTdG9wcGVkOwotCi0gICAgaWYgKG1fY29tcGxldGVkKQotICAgICAgICByZXR1cm4gV2ViVVJM
U2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsK
LQotICAgIGlmICghbV9yZXNwb25zZVNlbnQpCi0gICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVI
YW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9SZXNwb25zZVNlbnQ7Ci0KLSAgICBtX2RhdGFT
ZW50ID0gdHJ1ZTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZUhhbmRsZXJUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1faWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGJ1ZmZlci5w
dHIoKSkpKTsKLSAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5
cGU6Ok5vbmU7Ci19Ci0KLVdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKLXsKLSAgICBpZiAobV9zdG9wcGVkKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1l
SGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKLQotICAgIGlm
IChtX2NvbXBsZXRlZCkKLSAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpF
eGNlcHRpb25UeXBlOjpDb21wbGV0ZUFscmVhZHlDYWxsZWQ7Ci0KLSAgICBpZiAoIW1fcmVzcG9u
c2VTZW50ICYmIGVycm9yLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6Ok5vUmVzcG9uc2VTZW50OwotCi0gICAgbV9jb21wbGV0
ZWQgPSB0cnVlOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1l
SGFuZGxlclRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwg
bV9pZGVudGlmaWVyLCBlcnJvcikpOwotICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
azo6RXhjZXB0aW9uVHlwZTo6Tm9uZTsKLX0KLQotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
azo6cGFnZURlc3Ryb3llZCgpCi17Ci0gICAgQVNTRVJUKG1fcGFnZSk7Ci0gICAgbV9wYWdlID0g
bnVsbHB0cjsKLSAgICBtX3N0b3BwZWQgPSB0cnVlOwotfQotCi12b2lkIFdlYlVSTFNjaGVtZUhh
bmRsZXJUYXNrOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQoIW1fc3RvcHBlZCk7Ci0gICAgbV9zdG9w
cGVkID0gdHJ1ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3N2RiMzJkOTU1NjM1ZWJkZTIzZmZhZjU1YmExOTVjNDM2ZjBmMDU3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oCisrKyAvZGV2L251bGwK
QEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUmVz
b3VyY2VFcnJvcjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7
Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyOwot
Y2xhc3MgV2ViUGFnZVByb3h5OwotCi1jbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrPiB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1lSGFuZGxlclRhc2spOwotcHVibGljOgotICAgIHN0YXRp
YyBSZWY8V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s+IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVy
JiwgV2ViUGFnZVByb3h5JiwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Jik7Ci0KLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9Ci0KLSAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLQotICAgIGVudW0gY2xhc3Mg
RXhjZXB0aW9uVHlwZSB7Ci0gICAgICAgIERhdGFBbHJlYWR5U2VudCwKLSAgICAgICAgQ29tcGxl
dGVBbHJlYWR5Q2FsbGVkLAotICAgICAgICBUYXNrQWxyZWFkeVN0b3BwZWQsCi0gICAgICAgIE5v
UmVzcG9uc2VTZW50LAotICAgICAgICBOb25lLAotICAgIH07Ci0gICAgRXhjZXB0aW9uVHlwZSBk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAg
IEV4Y2VwdGlvblR5cGUgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4p
OwotICAgIEV4Y2VwdGlvblR5cGUgZGlkQ29tcGxldGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpOwotCi0gICAgdm9pZCBzdG9wKCk7Ci0gICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7Ci0K
LXByaXZhdGU6Ci0gICAgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2soV2ViVVJMU2NoZW1lSGFuZGxl
ciYsIFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwotCi0gICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2No
ZW1lSGFuZGxlcjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKLSAgICB1aW50NjRfdCBtX2lk
ZW50aWZpZXI7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKLSAgICBi
b29sIG1fc3RvcHBlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Jlc3BvbnNlU2VudCB7IGZhbHNl
IH07Ci0gICAgYm9vbCBtX2RhdGFTZW50IHsgZmFsc2UgfTsKLSAgICBib29sIG1fY29tcGxldGVk
IHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMzM1YmM0YTkw
YWQwNGJhZGJiNGRiMjY4NGUyOTVhYjc4YWIzMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAgLTAsMCArMSwxMTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1l
VGFzay5oIgorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlVSTFNj
aGVtZUhhbmRsZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitSZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRl
KFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0
X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1lVGFzayhoYW5kbGVyLCBwYWdl
LCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QpKTsKK30KKworV2ViVVJMU2NoZW1lVGFzazo6
V2ViVVJMU2NoZW1lVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJv
eHkmIHBhZ2UsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQorICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCisgICAgLCBt
X3BhZ2UoJnBhZ2UpCisgICAgLCBtX2lkZW50aWZpZXIocmVzb3VyY2VJZGVudGlmaWVyKQorICAg
ICwgbV9yZXF1ZXN0KHJlcXVlc3QpCit7Cit9CisKK1dlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlv
blR5cGUgV2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX3N0b3BwZWQpCisgICAgICAgIHJldHVy
biBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ7CisK
KyAgICBpZiAobV9jb21wbGV0ZWQpCisgICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpF
eGNlcHRpb25UeXBlOjpDb21wbGV0ZUFscmVhZHlDYWxsZWQ7CisKKyAgICBpZiAobV9kYXRhU2Vu
dCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFB
bHJlYWR5U2VudDsKKworICAgIG1fcmVzcG9uc2VTZW50ID0gdHJ1ZTsKKworICAgIHJlc3BvbnNl
LmluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVy
LT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpKTsKKyAgICByZXR1cm4gV2Vi
VVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9uZTsKK30KKworV2ViVVJMU2NoZW1lVGFz
azo6RXhjZXB0aW9uVHlwZSBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8U2hh
cmVkQnVmZmVyPiBidWZmZXIpCit7CisgICAgaWYgKG1fc3RvcHBlZCkKKyAgICAgICAgcmV0dXJu
IFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKKwor
ICAgIGlmIChtX2NvbXBsZXRlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4
Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKKworICAgIGlmICghbV9yZXNwb25z
ZVNlbnQpCisgICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpO
b1Jlc3BvbnNlU2VudDsKKworICAgIG1fZGF0YVNlbnQgPSB0cnVlOworICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2No
ZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIElQQzo6U2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZShidWZmZXIucHRyKCkpKSk7CisgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRh
c2s6OkV4Y2VwdGlvblR5cGU6Ok5vbmU7Cit9CisKK1dlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlv
blR5cGUgV2ViVVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgaWYgKG1fc3RvcHBlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVt
ZVRhc2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKKworICAgIGlmIChtX2Nv
bXBsZXRlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6
OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKKworICAgIGlmICghbV9yZXNwb25zZVNlbnQgJiYgZXJy
b3IuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25U
eXBlOjpOb1Jlc3BvbnNlU2VudDsKKworICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvcikpOworICAg
IHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb25lOworfQorCit2b2lk
IFdlYlVSTFNjaGVtZVRhc2s6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIEFTU0VSVChtX3BhZ2Up
OworICAgIG1fcGFnZSA9IG51bGxwdHI7CisgICAgbV9zdG9wcGVkID0gdHJ1ZTsKK30KKwordm9p
ZCBXZWJVUkxTY2hlbWVUYXNrOjpzdG9wKCkKK3sKKyAgICBBU1NFUlQoIW1fc3RvcHBlZCk7Cisg
ICAgbV9zdG9wcGVkID0gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTNjMTlk
NjgwOTlhZGViMDQzOGRhM2RjYjA2MWRjNGE0MWIxNTc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApAQCAtMCwwICsxLDc5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXI7CitjbGFzcyBXZWJQYWdlUHJv
eHk7CisKK2NsYXNzIFdlYlVSTFNjaGVtZVRhc2sgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJVUkxT
Y2hlbWVUYXNrPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1lVGFzayk7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJM
U2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCisgICAgdWludDY0X3QgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisKKyAg
ICBlbnVtIGNsYXNzIEV4Y2VwdGlvblR5cGUgeworICAgICAgICBEYXRhQWxyZWFkeVNlbnQsCisg
ICAgICAgIENvbXBsZXRlQWxyZWFkeUNhbGxlZCwKKyAgICAgICAgVGFza0FscmVhZHlTdG9wcGVk
LAorICAgICAgICBOb1Jlc3BvbnNlU2VudCwKKyAgICAgICAgTm9uZSwKKyAgICB9OworICAgIEV4
Y2VwdGlvblR5cGUgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKKyAgICBFeGNlcHRpb25UeXBlIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+KTsKKyAgICBFeGNlcHRpb25UeXBlIGRpZENvbXBsZXRlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKTsKKworICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgcGFnZURl
c3Ryb3llZCgpOworCitwcml2YXRlOgorICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1l
SGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOworCisgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1f
dXJsU2NoZW1lSGFuZGxlcjsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICB1aW50NjRf
dCBtX2lkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsK
KyAgICBib29sIG1fc3RvcHBlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Jlc3BvbnNlU2VudCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2RhdGFTZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1fY29t
cGxldGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNkMDg1
M2E1ODg5ZDM4N2FlOWU4MTg1ZWIwMTMzZWFkNTVmM2M3N2MuLjcyYjBjNWNkOTE1ZDI2ODk5Mzky
YTVkNjkwYTdlZTFhYTdmOTk2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNTYsMTQgKzEwNTYsMTQgQEAKIAkJNTFEMDJG
NkExMzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQwMkY2NzEzMkVDNzM3MDBC
RUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFEMDJGNkIxMzJF
QzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDAyRjY4MTMy
RUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTUxRDAyRjZDMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUQwMkY2OTEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdl
cy5oICovOyB9OwotCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2tQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRh
c2tQcm94eS5jcHAgKi87IH07CisJCTUxRDEyNDIzMUU2RDM0QTEwMDJCMjgyMCAvKiBXZWJVUkxT
Y2hlbWVUYXNrUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFEMTI0MjExRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZVRhc2tQcm94
eS5jcHAgKi87IH07CiAJCTUxRDEyNDI4MUU2RDNGNUQwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVI
YW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRDEyNDI0MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCAqLzsg
fTsKIAkJNTFEMTI0MkMxRTZENDFGRDAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQx
MjQyQTFFNkQ0MUJDMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcCAqLzsg
fTsKIAkJNTFEMTI0MzMxRTZERTZDQTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEy
NDMyMUU2REU1MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gKi87IH07
CiAJCTUxRDEyNDM0MUU2REY2NDMwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDJEMUU2RERE
RDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCTUxRDEyNDM1MUU2REY2NTIwMDJCMjgyMCAvKiBX
S1VSTFNjaGVtZUhhbmRsZXJUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5k
bGVyVGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
LQkJNTFEMTI0MzYxRTZERkIzOTAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlclRhc2subW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzMDFF
NkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSAqLzsgfTsKLQkJNTFE
MTI0M0ExRTZFMEFBQjAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDM4MUU2REZE
QjkwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi87IH07CisJCTUxRDEy
NDM1MUU2REY2NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDJGMUU2RERERDcwMDJCMjgyMCAv
KiBXS1VSTFNjaGVtZVRhc2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMs
ICk7IH07IH07CisJCTUxRDEyNDM2MUU2REZCMzkwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2su
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQz
MDFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrLm1tICovOyB9OworCQk1MUQxMjQz
QTFFNkUwQUFCMDAyQjI4MjAgLyogQVBJVVJMU2NoZW1lVGFzay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzODFFNkRGREI5MDAyQjI4MjAg
LyogQVBJVVJMU2NoZW1lVGFzay5jcHAgKi87IH07CiAJCTUxRDEyNDkxMUU3NEJGM0MwMDJCMjgy
MCAvKiBBUElIVFRQQ29va2llU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFEMTI0ODIxRTczNEFDODAwMkIyODIwIC8qIEFQSUhUVFBDb29r
aWVTdG9yZS5jcHAgKi87IH07CiAJCTUxRDEyNDkyMUU3NEJGNDgwMDJCMjgyMCAvKiBXS0hUVFBD
b29raWVTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRDEyNDg1MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLzsg
fTsKIAkJNTFEMTI0OTkxRTc2M0MwMTAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQ4NDFFNzM0
QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC0xMDgxLDcgKzEwODEsNyBAQAogCQk1MUUzNTIw
MjE4MEY1RDFFMDBFNTNCRTkgLyogRGF0YWJhc2VQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUyMDExODBGNUQxRTAwRTUzQkU5
IC8qIERhdGFiYXNlUHJvY2Vzc01hYy5tbSAqLzsgfTsKIAkJNTFFMzUyMDkxODBGNUQ2QjAwRTUz
QkU5IC8qIERhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogRGF0
YWJhc2VTZXJ2aWNlRW50cnlQb2ludC5tbSAqLzsgfTsKIAkJNTFFMzk5MDYxRDZGNTRDNzAwOUM4
ODMxIC8qIFVJR2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1l
cGFkUHJvdmlkZXJDb2NvYS5tbSAqLzsgfTsKLQkJNTFFOEI2OEUxRTcxMjg3NzAwMUI3MTMyIC8q
IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRThCNjhEMUU3MTI4NzMwMDFCNzEzMiAvKiBXZWJVUkxTY2hl
bWVIYW5kbGVyVGFzay5jcHAgKi87IH07CisJCTUxRThCNjhFMUU3MTI4NzcwMDFCNzEzMiAvKiBX
ZWJVUkxTY2hlbWVUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRThCNjhEMUU3MTI4NzMwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVUYXNrLmNw
cCAqLzsgfTsKIAkJNTFFOTQ5OTcxRDc2MjExMzAwRUM5RUI5IC8qIFVJR2FtZXBhZFByb3ZpZGVy
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
OTQ5OTYxRDc2MUNDNzAwRUM5RUI5IC8qIFVJR2FtZXBhZFByb3ZpZGVySU9TLm1tICovOyB9Owog
CQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDU0
MTUyMTExODYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2MEUwMTY1NDMx
N0YwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIg
LyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMzMwMSwyMSArMzMwMSwy
MSBAQAogCQk1MUQwMkY2NzEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjgxMzJFQzczNzAw
QkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjkxMzJF
QzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyog
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFEMTI0MjIxRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZVRhc2tQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDIyMUU2RDM0OUEw
MDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViVVJMU2NoZW1lVGFza1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxRDEyNDI0MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhh
bmRsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQyNTFFNkQzQ0Mz
MDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTUxRDEyNDI3MUU2RDNGMUYwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVy
VGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQxMjQyNzFFNkQzRjFGMDAy
QjI4MjAgLyogV2ViVVJMU2NoZW1lVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJVUkxTY2hlbWVUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RDEyNDJBMUU2RDQxQkMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVVJMU2NoZW1lSGFuZGxlclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMTI0MkIxRTZENDFCQzAw
MkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFEMTI0MkQxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFu
ZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZUhhbmRs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFEMTI0MkYxRTZERERENzAwMkIy
ODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlclRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1MUQxMjQzMDFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFz
ay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVVJMU2NoZW1l
SGFuZGxlclRhc2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDJGMUU2
RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tVUkxTY2hlbWVUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRDEyNDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1VSTFNjaGVtZVRhc2subW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRDEyNDMxMUU2REU1MjEwMDJCMjgyMCAvKiBX
ZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxRDEyNDMyMUU2REU1MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJVUkxTY2hlbWVI
YW5kbGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDM3MUU2
REZEMkEwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDM4MUU2REZEQjkwMDJCMjgy
MCAvKiBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTUxRDEyNDM5MUU2REZEQjkwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVI
YW5kbGVyVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElVUkxTY2hl
bWVIYW5kbGVyVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQxMjQzNzFF
NkRGRDJBMDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFEMTI0MzgxRTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNj
aGVtZVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJVVJM
U2NoZW1lVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDM5MUU2
REZEQjkwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFQSVVSTFNjaGVtZVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFEMTI0ODIxRTczNEFDODAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElIVFRQQ29va2llU3RvcmUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQ4MzFFNzM0QUM4MDAyQjI4
MjAgLyogQVBJSFRUUENvb2tpZVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSUhUVFBDb29raWVTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MUQxMjQ4NDFFNzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tIVFRQQ29va2llU3RvcmUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMzksNyArMzMzOSw3IEBACiAJCTUxRTM1MjA3MTgwRjVENjEw
MEU1M0JFOSAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJh
c2VTZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFk
UHJvdmlkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFOEI2OEQx
RTcxMjg3MzAwMUI3MTMyIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFOEI2OEQxRTcxMjg3MzAwMUI3MTMyIC8q
IFdlYlVSTFNjaGVtZVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViVVJMU2NoZW1lVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RTk0OTk2MUQ3NjFDQzcwMEVDOUVCOSAvKiBVSUdhbWVwYWRQcm92aWRlcklPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3ZpZGVySU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUIg
LyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJUQ1NvY2tldE1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjgyLDkgKzU2ODIs
OSBAQAogCQkJCTFBRDg3OTA5MThCNkMzOEEwMDZDQUZENyAvKiBXS1VJRGVsZWdhdGUuaCAqLywK
IAkJCQkzNzQzOTI1NzE4QkM0QzYwMDAxQzg2NzUgLyogV0tVSURlbGVnYXRlUHJpdmF0ZS5oICov
LAogCQkJCTUxRDEyNDJEMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCAq
LywKLQkJCQk1MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFz
ay5oICovLAotCQkJCTUxRDEyNDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRs
ZXJUYXNrLm1tICovLAotCQkJCTUxRDEyNDM3MUU2REZEMkEwMDJCMjgyMCAvKiBXS1VSTFNjaGVt
ZUhhbmRsZXJUYXNrSW50ZXJuYWwuaCAqLywKKwkJCQk1MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAg
LyogV0tVUkxTY2hlbWVUYXNrLmggKi8sCisJCQkJNTFEMTI0MzAxRTZERERENzAwMkIyODIwIC8q
IFdLVVJMU2NoZW1lVGFzay5tbSAqLywKKwkJCQk1MUQxMjQzNzFFNkRGRDJBMDAyQjI4MjAgLyog
V0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwuaCAqLywKIAkJCQkxQUZBM0FDNzE4RTYxQzYxMDAzQ0NC
QUUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaCAqLywKIAkJCQkxQUZBM0FDNjE4RTYxQzYx
MDAzQ0NCQUUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW0gKi8sCiAJCQkJMUFBRjA4QTMx
OTI2ODJEQTAwQjYzOTBDIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCAqLywK
QEAgLTY2NTQsOCArNjY1NCw4IEBACiAJCQkJQkNBMEVGN0QxMjMzMUU3ODAwN0QzQ0ZCIC8qIFdl
YlVuZG9TdGVwLmggKi8sCiAJCQkJNTFEMTI0MkExRTZENDFCQzAwMkIyODIwIC8qIFdlYlVSTFNj
aGVtZUhhbmRsZXJQcm94eS5jcHAgKi8sCiAJCQkJNTFEMTI0MkIxRTZENDFCQzAwMkIyODIwIC8q
IFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oICovLAotCQkJCTUxRDEyNDIxMUU2RDM0OUEwMDJC
MjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcCAqLywKLQkJCQk1MUQxMjQy
MjFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5oICovLAor
CQkJCTUxRDEyNDIxMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuY3Bw
ICovLAorCQkJCTUxRDEyNDIyMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrUHJv
eHkuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViUGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC02ODIxLDggKzY4MjEsOCBAQAogCQkJCTdBOUNEOEMyMUM3NzlBRDYwMEQ5RjZD
NyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
NTFEMTI0MjQxRTZEM0NDMzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXIuY3BwICovLAog
CQkJCTUxRDEyNDI1MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmggKi8s
Ci0JCQkJNTFFOEI2OEQxRTcxMjg3MzAwMUI3MTMyIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
LmNwcCAqLywKLQkJCQk1MUQxMjQyNzFFNkQzRjFGMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2suaCAqLywKKwkJCQk1MUU4QjY4RDFFNzEyODczMDAxQjcxMzIgLyogV2ViVVJMU2No
ZW1lVGFzay5jcHAgKi8sCisJCQkJNTFEMTI0MjcxRTZEM0YxRjAwMkIyODIwIC8qIFdlYlVSTFNj
aGVtZVRhc2suaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gVUlQcm9jZXNzOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTY4NzksOCArNjg3OSw4IEBACiAJCQkJMUFGREU2NUYxOTU0RTlC
MTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5jcHAgKi8sCiAJCQkJMUFGREU2NjAxOTU0RTlC
MTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5oICovLAogCQkJCTFBNEQ2NjQ3MThBMkQ5MUEw
MEQ4MkUyMSAvKiBBUElVSUNsaWVudC5oICovLAotCQkJCTUxRDEyNDM4MUU2REZEQjkwMDJCMjgy
MCAvKiBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi8sCi0JCQkJNTFEMTI0MzkxRTZERkRC
OTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmggKi8sCisJCQkJNTFEMTI0Mzgx
RTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2suY3BwICovLAorCQkJCTUxRDEyNDM5
MUU2REZEQjkwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmggKi8sCiAJCQkJN0M4ODJERkIx
QzdFOTlBNjAwNkJGNzMxIC8qIEFQSVVzZXJDb250ZW50V29ybGQuY3BwICovLAogCQkJCTdDODgy
REZDMUM3RTk5QTYwMDZCRjczMSAvKiBBUElVc2VyQ29udGVudFdvcmxkLmggKi8sCiAJCQkJN0NC
MzY1QUYxRDMxREQxRTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRBY3Rpb24uaCAqLywKQEAg
LTkwNTEsNyArOTA1MSw3IEBACiAJCQkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJM
UmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjJCMTI0RkYwNDAwMDY4RjIwQSAv
KiBXS1VSTFJlc3BvbnNlTlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDEyNDM0MUU2REY2NDMw
MDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxRDEy
NDM1MUU2REY2NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MUQxMjQzNTFFNkRGNjUyMDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUZBM0FDOTE4RTYxQzYxMDAzQ0NCQUUgLyogV0tVc2VyQ29u
dGVudENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwOEE0MTkyNjgyREEwMEI2
MzkwQyAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3Qzg5RDJCNjFBNkIwREQ5MDAzQTVGREUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTk3NjMsNyArOTc2Myw3IEBACiAJCQkJMUFGREU2
NjExOTU0RTlCMTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0UyMzE1RTEyMkMzMENBMDBENUMzNUEgLyogQVBJVVJMUmVxdWVzdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzkwQTFEMzEyMkRENTVFMDBDQzhDNTAgLyogQVBJVVJMUmVzcG9uc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFEMTI0M0ExRTZFMEFBQjAwMkIyODIwIC8qIEFQSVVS
TFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRDEyNDNBMUU2RTBB
QUIwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
RUZBOTYyMUFDMDk5OTMwMEI5MTBGRCAvKiBBUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlQ29j
b2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg4MkRGRTFDN0U5OUFDMDA2QkY3MzEgLyogQVBJ
VXNlckNvbnRlbnRXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDJBNjFBNjc4OUVB
MDAzQTVGREUgLyogQVBJVXNlclNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwMzgwLDgg
KzEwMzgwLDggQEAKIAkJCQk2M0MzMkMyNTFFOTgxMEQ5MDA2OTlCRDAgLyogX1dLR2VvbG9jYXRp
b25Qb3NpdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxRDEyNDMzMUU2REU2Q0EwMDJCMjgy
MCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUQx
MjQyQzFFNkQ0MUZEMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTUxRThCNjhFMUU3MTI4NzcwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVI
YW5kbGVyVGFzay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4
MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1MUU4QjY4RTFFNzEyODc3MDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFzay5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lVGFz
a1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwOEFEMTkyNjkzNjcwMEI2MzkwQyAv
KiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MwNjVG
MkIxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTA1NzUsNyArMTA1NzUsNyBAQAogCQkJCUJDNDA3NjJBMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VS
TFJlcXVlc3ROUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjBEMTI0RkYwMjcwMDY4RjIw
QSAvKiBXS1VSTFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjJDMTI0RkYw
NDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MUQx
MjQzNjFFNkRGQjM5MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTUxRDEyNDM2MUU2REZCMzkwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2su
bW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUZBM0FDODE4RTYxQzYxMDAzQ0NCQUUgLyogV0tVc2Vy
Q29udGVudENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDI5RjFBNjc4NTU0
MDAzQTVGREUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0MyNDEzMDgxQUFDRkNCNDAwQTU4QzE1IC8qIFdLVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZVJlZi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGQ1YTUxNWRhMjMx
MzhlMjI3NmIxMWU1ODg2YmM1ZDk1YjI4NzBjNWQuLjM3NjlmZjRiN2NkNjVmN2UxMDk1ZmMyNDBl
NDk1NjA3OTk2ODgzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNDMsNyArNDMsNyBAQAogI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oIgotI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhh
bmRsZXJUYXNrUHJveHkuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DYWNoZWRSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaD4KQEAgLTI2MywxNSArMjYzLDE1IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0
YXJ0TG9jYWxMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKICAg
ICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQocmVzb3VyY2VMb2FkZXIuaWRlbnRpZmllcigpLCBX
ZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB7IH0pKTsKIH0KIAotdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eShXZWJVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5JiB0YXNrKQordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6YWRk
VVJMU2NoZW1lVGFza1Byb3h5KFdlYlVSTFNjaGVtZVRhc2tQcm94eSYgdGFzaykKIHsKLSAgICBh
dXRvIHJlc3VsdCA9IG1fdXJsU2NoZW1lSGFuZGxlclRhc2tzLmFkZCh0YXNrLmlkZW50aWZpZXIo
KSwgJnRhc2spOworICAgIGF1dG8gcmVzdWx0ID0gbV91cmxTY2hlbWVUYXNrcy5hZGQodGFzay5p
ZGVudGlmaWVyKCksICZ0YXNrKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0Lmlz
TmV3RW50cnkpOwogfQogCi12b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxTY2hlbWVI
YW5kbGVyVGFza1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmIHRhc2spCit2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxTY2hlbWVUYXNrUHJveHkoV2ViVVJMU2NoZW1l
VGFza1Byb3h5JiB0YXNrKQogewotICAgIG1fdXJsU2NoZW1lSGFuZGxlclRhc2tzLnJlbW92ZSh0
YXNrLmlkZW50aWZpZXIoKSk7CisgICAgbV91cmxTY2hlbWVUYXNrcy5yZW1vdmUodGFzay5pZGVu
dGlmaWVyKCkpOwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmUoUmVzb3VyY2VM
b2FkZXIqIHJlc291cmNlTG9hZGVyKQpAQCAtMjc5LDcgKzI3OSw3IEBAIHZvaWQgV2ViTG9hZGVy
U3RyYXRlZ3k6OnJlbW92ZShSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCiAgICAgQVNT
RVJUKHJlc291cmNlTG9hZGVyKTsKICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJv
Y2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZSwgdXJsICclcyciLCByZXNvdXJjZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoYXV0byB0YXNrID0g
bV91cmxTY2hlbWVIYW5kbGVyVGFza3MudGFrZShyZXNvdXJjZUxvYWRlci0+aWRlbnRpZmllcigp
KSkgeworICAgIGlmIChhdXRvIHRhc2sgPSBtX3VybFNjaGVtZVRhc2tzLnRha2UocmVzb3VyY2VM
b2FkZXItPmlkZW50aWZpZXIoKSkpIHsKICAgICAgICAgQVNTRVJUKCFtX2ludGVybmFsbHlGYWls
ZWRSZXNvdXJjZUxvYWRlcnMuY29udGFpbnMocmVzb3VyY2VMb2FkZXIpKTsKICAgICAgICAgdGFz
ay0+c3RvcExvYWRpbmcoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA1MWIyYTgy
ZjU1OGI1Y2MwZjY2NGYyY2RiMmI4MzE0MmUyM2Q0N2ZhLi45NDc4NDNiNDBmNWQ3ZDU3MDEyYzU3
NWRiZjNkMTUwMmIxOTFlZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKLWNsYXNzIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk7CitjbGFzcyBXZWJVUkxTY2hlbWVUYXNrUHJveHk7
CiB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIFdlYkxv
YWRlclN0cmF0ZWd5IDogcHVibGljIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5IHsKQEAgLTY2LDgg
KzY2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAot
ICAgIHZvaWQgYWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eShXZWJVUkxTY2hlbWVIYW5kbGVy
VGFza1Byb3h5Jik7Ci0gICAgdm9pZCByZW1vdmVVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmKTsKKyAgICB2b2lkIGFkZFVSTFNjaGVtZVRhc2tQ
cm94eShXZWJVUkxTY2hlbWVUYXNrUHJveHkmKTsKKyAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVRh
c2tQcm94eShXZWJVUkxTY2hlbWVUYXNrUHJveHkmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNj
aGVkdWxlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlKiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKQEAg
LTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJMb2FkZXJTdHJh
dGVneT4gbV9pbnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyOwogICAgIAogICAgIEhhc2hNYXA8dW5z
aWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRl
cnM7Ci0gICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5Kj4gbV91cmxTY2hlbWVIYW5kbGVyVGFza3M7CisgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25n
LCBXZWJVUkxTY2hlbWVUYXNrUHJveHkqPiBtX3VybFNjaGVtZVRhc2tzOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggYjM5OTgwNDkyZGY3MTU2OTAyNzI2MzM4ZDQwYzViZDhhOGE0ZjZjYS4u
ZGI2MzgzYThjNzQ5MDFhOTBhY2ZiNjNmZjJjYWNmMTMyYjBhOGU4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTg1OCw3ICs1ODU4LDcg
QEAgdm9pZCBXZWJQYWdlOjpyZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaGFuZGxl
cklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYKICAgICBBU1NFUlRfVU5VU0VEKGlkZW50aWZpZXJS
ZXN1bHQsIGlkZW50aWZpZXJSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
dXJsU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklk
ZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKK3ZvaWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25z
ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBt
X2lkZW50aWZpZXJUb1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50aWZp
ZXIpOwogICAgIEFTU0VSVChoYW5kbGVyKTsKQEAgLTU4NjYsNyArNTg2Niw3IEBAIHZvaWQgV2Vi
UGFnZTo6dXJsU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFu
ZGxlcklkZW50aWZpZXIsCiAgICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVSZXNwb25zZSh0YXNr
SWRlbnRpZmllciwgcmVzcG9uc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRs
ZXJUYXNrRGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90
IHRhc2tJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFdl
YlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRp
ZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YSkKIHsKICAgICBhdXRvKiBoYW5kbGVyID0gbV9pZGVudGlmaWVyVG9VUkxTY2hlbWVIYW5k
bGVyUHJveHlNYXAuZ2V0KGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBBU1NFUlQoaGFuZGxlcik7
CkBAIC01ODc0LDcgKzU4NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRsZXJUYXNr
RGlkUmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbgogICAgIGhhbmRs
ZXItPnRhc2tEaWRSZWNlaXZlRGF0YSh0YXNrSWRlbnRpZmllciwgZGF0YS5zaXplKCksIGRhdGEu
ZGF0YSgpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBs
ZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tE
aWRDb21wbGV0ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGF1dG8qIGhhbmRsZXIg
PSBtX2lkZW50aWZpZXJUb1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50
aWZpZXIpOwogICAgIEFTU0VSVChoYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGIyMGRhNDJmMzBhYTBkMWQwNjUxNWYwMDcyYmQwOWQw
ODMwOTY1NmMuLjg4MmU1OGQ4OTM0MzhmOTlhNGYyNGI4YzlhNzFmMjczMWU5MTNkOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI3MCw5ICsx
MjcwLDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVp
bnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIAotICAgIHZvaWQgdXJs
U2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50
aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJik7Ci0gICAgdm9pZCB1cmxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVEYXRhKHVp
bnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCB1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENv
bXBsZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgdXJsU2NoZW1lVGFz
a0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2
b2lkIHVybFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmll
ciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwor
ICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpOwogCiAgICAgUmVmUHRyPFdlYkltYWdlPiBzbmFwc2hvdEF0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYml0bWFwU2l6ZSwgU25hcHNob3RP
cHRpb25zKTsKICAgICBSZWZQdHI8V2ViSW1hZ2U+IHNuYXBzaG90Tm9kZShXZWJDb3JlOjpOb2Rl
JiwgU25hcHNob3RPcHRpb25zLCB1bnNpZ25lZCBtYXhpbXVtUGl4ZWxDb3VudCA9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGM3MDFhZTljNWE1
MjY0Y2M2YjYyNzlmNDA2ZWM1NTU5MWFkZWVjZTEuLjM1MWJkMDlhNWZlYjJiNTQxYmJjOGI2ZWZk
MTNmMDA1ZTA0YTU5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00NzIsNyArNDcyLDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRs
ZXIodWludDY0X3QgaWRlbnRpZmllciwgU3RyaW5nIHNjaGVtZSkKIAotICAgIFVSTFNjaGVtZUhh
bmRsZXJUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IHByb3ZpZGVySWRlbnRpZmllciwg
dWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2UpCi0gICAgVVJMU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBwcm92
aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVu
Y2UgZGF0YSkKLSAgICBVUkxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IHBy
b3ZpZGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgZXJyb3IpCisgICAgVVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50
NjRfdCBwcm92aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIFVSTFNjaGVtZVRhc2tEaWRSZWNlaXZl
RGF0YSh1aW50NjRfdCBwcm92aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVy
LCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBVUkxTY2hlbWVUYXNrRGlkQ29tcGxldGUo
dWludDY0X3QgcHJvdmlkZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAK
aW5kZXggOTQxYjc5NzNmZWViMDhlYTM4MTNiY2M0MzA3ZDQ1MGU0YmQ1YWJmNi4uN2QwMjM2Nzll
YTRlOTBhM2JlMTBjZmY3NDE3NWMwMDhjNzhmZjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94
eS5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6On5XZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHkoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6
c3RhcnROZXdUYXNrKFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgYXV0byByZXN1bHQg
PSBtX3Rhc2tzLmFkZChsb2FkZXIuaWRlbnRpZmllcigpLCBzdGQ6Om1ha2VfdW5pcXVlPFdlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrUHJveHk+KCp0aGlzLCBsb2FkZXIpKTsKKyAgICBhdXRvIHJlc3Vs
dCA9IG1fdGFza3MuYWRkKGxvYWRlci5pZGVudGlmaWVyKCksIHN0ZDo6bWFrZV91bmlxdWU8V2Vi
VVJMU2NoZW1lVGFza1Byb3h5PigqdGhpcywgbG9hZGVyKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5p
c05ld0VudHJ5KTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0
ZWd5KCkuYWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSgqcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5hZGRV
UkxTY2hlbWVUYXNrUHJveHkoKnJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogICAgIHJlc3VsdC5p
dGVyYXRvci0+dmFsdWUtPnN0YXJ0TG9hZGluZygpOwogfQogCkBAIC04MCwxMSArODAsMTEgQEAg
dm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCB0
YXNrSWRlbnRpZmllciwgY29uc3QgUmUKICAgICBpZiAoIXRhc2spCiAgICAgICAgIHJldHVybjsK
IAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkucmVtb3Zl
VVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSgqdGFzayk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5yZW1vdmVVUkxTY2hlbWVUYXNrUHJveHkoKnRhc2sp
OwogICAgIHRhc2stPmRpZENvbXBsZXRlKGVycm9yKTsKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVI
YW5kbGVyUHJveHk6OnRhc2tEaWRTdG9wTG9hZGluZyhXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5JiB0YXNrKQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRTdG9wTG9h
ZGluZyhXZWJVUkxTY2hlbWVUYXNrUHJveHkmIHRhc2spCiB7CiAgICAgQVNTRVJUKG1fdGFza3Mu
Z2V0KHRhc2suaWRlbnRpZmllcigpKSA9PSAmdGFzayk7CiAgICAgbV90YXNrcy5yZW1vdmUodGFz
ay5pZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oCmluZGV4IGYyOTczMDAzMGJk
N2IxMWQyMTM0MTRiYWFlODAwOGNjOWYyMWI1MjcuLmEwMzE3NjNkMWMzYWQyYWI5YzQ2YzNjNDIz
YzUyMDE4ZTZiNDE4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmgKQEAgLTI1LDcgKzI1LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5LmgiCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFza1Byb3h5LmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsMTMgKzUyLDEzIEBAIHB1
YmxpYzoKICAgICB2b2lkIHRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgdGFza0lkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIHRhc2tE
aWRSZWNlaXZlRGF0YSh1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgc2l6ZV90LCBjb25zdCB1aW50
OF90KiBkYXRhKTsKICAgICB2b2lkIHRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCB0YXNrSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQgdGFza0RpZFN0
b3BMb2FkaW5nKFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmKTsKKyAgICB2b2lkIHRhc2tE
aWRTdG9wTG9hZGluZyhXZWJVUkxTY2hlbWVUYXNrUHJveHkmKTsKIAogcHJpdmF0ZToKICAgICBX
ZWJQYWdlJiBtX3dlYlBhZ2U7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OwogCi0g
ICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2tQcm94eT4+IG1fdGFza3M7CisgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViVVJMU2NoZW1lVGFza1Byb3h5Pj4gbV90YXNrczsKIH07IC8vIGNsYXNz
IFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJV
UkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTgxYmExNmI4M2FjODA0ZTc4ZTA2ODI4Nzk2YTlmOTQ2MDI4Njk0Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmgiCi0KLSNpbmNsdWRlICJXZWJQ
YWdlLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0
cmljcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLQot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KFdlYlVS
TFNjaGVtZUhhbmRsZXJQcm94eSYgaGFuZGxlciwgUmVzb3VyY2VMb2FkZXImIGxvYWRlcikKLSAg
ICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQotICAgICwgbV9jb3JlTG9hZGVyKCZsb2Fk
ZXIpCi0gICAgLCBtX3JlcXVlc3QobG9hZGVyLnJlcXVlc3QoKSkKLSAgICAsIG1faWRlbnRpZmll
cihsb2FkZXIuaWRlbnRpZmllcigpKQotewotfQotCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJU
YXNrUHJveHk6OnN0YXJ0TG9hZGluZygpCi17Ci0gICAgQVNTRVJUKG1fY29yZUxvYWRlcik7Ci0g
ICAgbV91cmxTY2hlbWVIYW5kbGVyLnBhZ2UoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlN0YXJ0VVJMU2NoZW1lSGFuZGxlclRhc2sobV91cmxTY2hlbWVIYW5kbGVyLmlkZW50aWZpZXIo
KSwgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCksIG1fcmVxdWVzdCkpOwotfQotCi12b2lkIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6OnN0b3BMb2FkaW5nKCkKLXsKLSAgICBBU1NFUlQo
bV9jb3JlTG9hZGVyKTsKLSAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U3RvcFVSTFNjaGVtZUhhbmRsZXJUYXNrKG1fdXJsU2NoZW1lSGFu
ZGxlci5pZGVudGlmaWVyKCksIG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpKSk7Ci0gICAgbV9j
b3JlTG9hZGVyID0gbnVsbHB0cjsKLQotICAgIC8vIFRoaXMgbGluZSB3aWxsIHJlc3VsdCBpbiB0
aGlzIGJlaW5nIGRlbGV0ZWQuCi0gICAgbV91cmxTY2hlbWVIYW5kbGVyLnRhc2tEaWRTdG9wTG9h
ZGluZygqdGhpcyk7Ci19Ci0KLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAg
IGlmICghaGFzTG9hZGVyKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29yZUxvYWRlci0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLX0KLQotdm9pZCBXZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5OjpkaWRSZWNlaXZlRGF0YShzaXplX3Qgc2l6ZSwgY29uc3QgdWludDhfdCog
ZGF0YSkKLXsKLSAgICBpZiAoIWhhc0xvYWRlcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KGRhdGEpLCBzaXplLCAwLCBEYXRhUGF5bG9hZFR5cGU6OkRhdGFQYXlsb2FkQnl0ZXMpOwotfQot
Ci12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6OmRpZENvbXBsZXRlKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQotewotICAgIGlmICghaGFzTG9hZGVyKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAgbV9jb3JlTG9hZGVyLT5k
aWRGaW5pc2hMb2FkaW5nKE5ldHdvcmtMb2FkTWV0cmljcygpKTsKLSAgICBlbHNlCi0gICAgICAg
IG1fY29yZUxvYWRlci0+ZGlkRmFpbChlcnJvcik7Ci0KLSAgICBtX2NvcmVMb2FkZXIgPSBudWxs
cHRyOwotfQotCi1ib29sIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6Omhhc0xvYWRlcigp
Ci17Ci0gICAgaWYgKG1fY29yZUxvYWRlciAmJiBtX2NvcmVMb2FkZXItPnJlYWNoZWRUZXJtaW5h
bFN0YXRlKCkpCi0gICAgICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7Ci0KLSAgICByZXR1cm4g
bV9jb3JlTG9hZGVyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2tQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWU5ZjE1MTJl
YTcwOTlmYWMyM2E5ODEwYzYwMDNkMmY4ODE5Nzg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSZXNvdXJjZUVycm9y
OwotY2xhc3MgUmVzb3VyY2VMb2FkZXI7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotfQotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OwotCi1j
bGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KTsKLXB1YmxpYzoKLSAgICBXZWJVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSYsIFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyJik7Ci0KLSAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLQotICAgIHZvaWQgc3RhcnRM
b2FkaW5nKCk7Ci0gICAgdm9pZCBzdG9wTG9hZGluZygpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlk
UmVjZWl2ZURhdGEoc2l6ZV90LCBjb25zdCB1aW50OF90KiBkYXRhKTsKLSAgICB2b2lkIGRpZENv
bXBsZXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLQotICAgIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotCi1wcml2YXRl
OgotICAgIGJvb2wgaGFzTG9hZGVyKCk7Ci0KLSAgICBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkm
IG1fdXJsU2NoZW1lSGFuZGxlcjsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+
IG1fY29yZUxvYWRlcjsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0Owot
ICAgIHVuc2lnbmVkIGxvbmcgbV9pZGVudGlmaWVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJM
U2NoZW1lVGFza1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJVUkxTY2hlbWVUYXNrUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNzY3YmNiOGY0MjcyYjgwOGQ2
YjUzMTY3MGRmODdhMjA2Y2YyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcApAQCAtMCwwICsxLDEw
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVUkxT
Y2hlbWVUYXNrUHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5o
PgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVSTFNjaGVtZVRhc2tQcm94eTo6V2ViVVJM
U2NoZW1lVGFza1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSYgaGFuZGxlciwgUmVzb3Vy
Y2VMb2FkZXImIGxvYWRlcikKKyAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQorICAg
ICwgbV9jb3JlTG9hZGVyKCZsb2FkZXIpCisgICAgLCBtX3JlcXVlc3QobG9hZGVyLnJlcXVlc3Qo
KSkKKyAgICAsIG1faWRlbnRpZmllcihsb2FkZXIuaWRlbnRpZmllcigpKQoreworfQorCit2b2lk
IFdlYlVSTFNjaGVtZVRhc2tQcm94eTo6c3RhcnRMb2FkaW5nKCkKK3sKKyAgICBBU1NFUlQobV9j
b3JlTG9hZGVyKTsKKyAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3RhcnRVUkxTY2hlbWVUYXNrKG1fdXJsU2NoZW1lSGFuZGxlci5pZGVu
dGlmaWVyKCksIG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpLCBtX3JlcXVlc3QpKTsKK30KKwor
dm9pZCBXZWJVUkxTY2hlbWVUYXNrUHJveHk6OnN0b3BMb2FkaW5nKCkKK3sKKyAgICBBU1NFUlQo
bV9jb3JlTG9hZGVyKTsKKyAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U3RvcFVSTFNjaGVtZVRhc2sobV91cmxTY2hlbWVIYW5kbGVyLmlk
ZW50aWZpZXIoKSwgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2NvcmVMb2Fk
ZXIgPSBudWxscHRyOworCisgICAgLy8gVGhpcyBsaW5lIHdpbGwgcmVzdWx0IGluIHRoaXMgYmVp
bmcgZGVsZXRlZC4KKyAgICBtX3VybFNjaGVtZUhhbmRsZXIudGFza0RpZFN0b3BMb2FkaW5nKCp0
aGlzKTsKK30KKwordm9pZCBXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAoIWhhc0xvYWRl
cigpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVSZXNw
b25zZShyZXNwb25zZSk7Cit9CisKK3ZvaWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRSZWNl
aXZlRGF0YShzaXplX3Qgc2l6ZSwgY29uc3QgdWludDhfdCogZGF0YSkKK3sKKyAgICBpZiAoIWhh
c0xvYWRlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2Vp
dmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplLCAwLCBEYXRh
UGF5bG9hZFR5cGU6OkRhdGFQYXlsb2FkQnl0ZXMpOworfQorCit2b2lkIFdlYlVSTFNjaGVtZVRh
c2tQcm94eTo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAg
aWYgKCFoYXNMb2FkZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGVycm9yLmlzTnVs
bCgpKQorICAgICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoTmV0d29ya0xvYWRN
ZXRyaWNzKCkpOworICAgIGVsc2UKKyAgICAgICAgbV9jb3JlTG9hZGVyLT5kaWRGYWlsKGVycm9y
KTsKKworICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7Cit9CisKK2Jvb2wgV2ViVVJMU2NoZW1l
VGFza1Byb3h5OjpoYXNMb2FkZXIoKQoreworICAgIGlmIChtX2NvcmVMb2FkZXIgJiYgbV9jb3Jl
TG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKQorICAgICAgICBtX2NvcmVMb2FkZXIgPSBu
dWxscHRyOworCisgICAgcmV0dXJuIG1fY29yZUxvYWRlcjsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
VVJMU2NoZW1lVGFza1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViVVJMU2NoZW1lVGFza1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJiNmQ2ZmVjYTE1Zjc5NDAwNzM1
NzkyNTU3MTUwYTdjNDZmYjEwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaApAQCAtMCwwICsxLDY1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOwor
Y2xhc3MgUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OworCitjbGFz
cyBXZWJVUkxTY2hlbWVUYXNrUHJveHkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlVS
TFNjaGVtZVRhc2tQcm94eSk7CitwdWJsaWM6CisgICAgV2ViVVJMU2NoZW1lVGFza1Byb3h5KFdl
YlVSTFNjaGVtZUhhbmRsZXJQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJik7CisKKyAg
ICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVy
biBtX3JlcXVlc3Q7IH0KKworICAgIHZvaWQgc3RhcnRMb2FkaW5nKCk7CisgICAgdm9pZCBzdG9w
TG9hZGluZygpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoc2l6ZV90LCBjb25z
dCB1aW50OF90KiBkYXRhKTsKKyAgICB2b2lkIGRpZENvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImKTsKKworICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFzTG9hZGVyKCk7
CisKKyAgICBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkmIG1fdXJsU2NoZW1lSGFuZGxlcjsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fY29yZUxvYWRlcjsKKyAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OworICAgIHVuc2lnbmVkIGxvbmcgbV9pZGVu
dGlmaWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2RhZmU4ZjdhYzY4Njg1Yzg0YWY5MzMy
ZGUzMWUwNDZjODNhMTBlYS4uY2FmMjA0NjhlZjYzMDY1YTExZGNhYzM2NWMxYjBmZDkxNmFjNmUy
NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE3LTA1LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgbmFtZXMgaW4gV0tVUkxTY2hlbWVIYW5kbGVyL1dLVVJMU2No
ZW1lSGFuZGxlclRhc2sgQVBJcy4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxODI0ODM4PiBh
bmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTUwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW06CisgICAgICAgICgt
W1NjaGVtZUhhbmRsZXIgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6XSk6CisgICAgICAgICgt
W1NjaGVtZUhhbmRsZXIgd2ViVmlldzpzdG9wVVJMU2NoZW1lVGFzazpdKToKKyAgICAgICAgKC1b
U2NoZW1lSGFuZGxlciB3ZWJWaWV3OnN0YXJ0VGFzazpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
U2NoZW1lSGFuZGxlciB3ZWJWaWV3OnN0b3BUYXNrOl0pOiBEZWxldGVkLgorCiAyMDE3LTA1LTAx
ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjIxNjAwMCk6IHRlc3Qtd2Via2l0cHkgZmFpbHMgYWZ0ZXIgYWRkaW5nIG5ldyBzb2Z0LWxp
bmtlZCBjbGFzcyBjaGVja2VyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tCmluZGV4IDU2Y2Nm
OWYwMjUxNWE0YWRiNzk2MDRlYTY2Mjk1NmFlOWUzMTI3YTIuLjJmOWVkM2VmYjJlZjU2ZWUyMWYw
MWQ0YjQwNDA4Y2ZiYjYzZjc5NzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tCkBAIC0y
OCw3ICsyOCw3IEBACiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVz
dC5oIgogI2ltcG9ydCA8V2ViS2l0L1dLVVJMU2NoZW1lSGFuZGxlci5oPgotI2ltcG9ydCA8V2Vi
S2l0L1dLVVJMU2NoZW1lSGFuZGxlclRhc2suaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VSTFNjaGVt
ZVRhc2suaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpA
QCAtNjksNyArNjksNyBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9
CiAKLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFRhc2s6KGlkIDxX
S1VSTFNjaGVtZUhhbmRsZXJUYXNrPil0YXNrCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YXNrCiB7
CiAgICAgW19zdGFydGVkVVJMcyBhZGRPYmplY3Q6dGFzay5yZXF1ZXN0LlVSTF07CiAKQEAgLTg2
LDcgKzg2LDcgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VGFz
azooaWQgPFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+KXRhc2sKICAgICBbdGFzayBkaWRGaW5pc2hd
OwogfQogCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RvcFRhc2s6KGlk
IDxXS1VSTFNjaGVtZUhhbmRsZXJUYXNrPil0YXNrCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgc3RvcFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhc2sK
IHsKICAgICBbX3N0b3BwZWRVUkxzIGFkZE9iamVjdDp0YXNrLnJlcXVlc3QuVVJMXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308753</attachid>
            <date>2017-05-01 13:08:39 -0700</date>
            <delta_ts>2017-05-01 13:13:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171508-20170501130839.patch</filename>
            <type>text/plain</type>
            <size>105330</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTIyNmZmMjY4YmIyMjZj
YzY5ZWU4MzRlMTYyNDA5NmYyNjgwOGM0Yy4uMTM4NTYxNWY3ZGQ3Y2FmM2YxZmZmMzNiYTM1NWIy
ZDUwOGI1YjZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE3LTA1LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgbmFtZXMgaW4g
V0tVUkxTY2hlbWVIYW5kbGVyL1dLVVJMU2NoZW1lSGFuZGxlclRhc2sgQVBJcy4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMxODI0ODM4PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTUwOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisK
KyAgICAgICAgVGhpcyBwYXRjaDoKKyAgICAgICAgLSBSZW5hbWVzIFdLVVJMU2NoZW1lSGFuZGxl
clRhc2sgdG8gV0tVUkxTY2hlbWVUYXNrCisgICAgICAgIC0gUmVuYW1lcyB0aGUgbWV0aG9kICJz
dGFydFRhc2siIHRvICJzdGFydFVSTFNjaGVtZVRhc2siCisgICAgICAgIC0gUmVuYW1lcyB0aGUg
bWV0aG9kICJzdG9wVGFzayIgdG8gInN0b3BVUkxTY2hlbWVUYXNrIgorCisgICAgICAgIFRvIHRo
b3NlIGVmZmVjdHMgaXQncyBiYXNpY2FsbHkgYSBnbG9iYWwgcmVwbGFjZS4KKworICAgICAgICAq
IFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVj
dC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJVVJMU2NoZW1lVGFzay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcC4KKyAgICAgICAgKEFQ
STo6VVJMU2NoZW1lVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6VVJMU2NoZW1lVGFzazo6
VVJMU2NoZW1lVGFzayk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVUYXNr
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVt
ZUhhbmRsZXJUYXNrLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZUhhbmRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFz
ay5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZUhhbmRsZXJUYXNrLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2subW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2subW0uCisgICAgICAgIChyYWlzZUV4Y2VwdGlv
bklmTmVjZXNzYXJ5KToKKyAgICAgICAgKC1bV0tVUkxTY2hlbWVUYXNrSW1wbCByZXF1ZXN0XSk6
CisgICAgICAgICgtW1dLVVJMU2NoZW1lVGFza0ltcGwgZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgor
ICAgICAgICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIGRpZFJlY2VpdmVEYXRhOl0pOgorICAgICAg
ICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIGRpZEZpbmlzaF0pOgorICAgICAgICAoLVtXS1VSTFNj
aGVtZVRhc2tJbXBsIGRpZEZhaWxXaXRoRXJyb3I6XSk6CisgICAgICAgICgtW1dLVVJMU2NoZW1l
VGFza0ltcGwgX2FwaU9iamVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
UkxTY2hlbWVUYXNrSW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmguCisgICAgICAg
IChXZWJLaXQ6OndyYXBwZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hl
bWVIYW5kbGVyQ29jb2EuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1l
SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2E6OnBsYXRmb3JtU3RhcnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFu
ZGxlckNvY29hOjpwbGF0Zm9ybVN0b3BUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVt
ZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BVUkxTY2hlbWVUYXNr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZUhhbmRsZXJU
YXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wVVJMU2No
ZW1lSGFuZGxlclRhc2spOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lSGFuZGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVIYW5kbGVyVGFzay5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRh
c2spOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnN0b3ApOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2suaC4KKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFz
azo6aWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnJlcXVl
c3QpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lVGFza1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZVVSTFNjaGVtZVRhc2tQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVUYXNr
RGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVUYXNr
RGlkQ29tcGxldGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVy
VGFza0RpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnVybFNjaGVtZUhhbmRsZXJUYXNrRGlkUmVjZWl2ZURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnN0YXJ0TmV3VGFzayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6dGFza0RpZENvbXBsZXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclByb3h5Ojp0YXNrRGlkU3RvcExvYWRpbmcp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1l
VGFza1Byb3h5OjpXZWJVUkxTY2hlbWVUYXNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
UkxTY2hlbWVUYXNrUHJveHk6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVS
TFNjaGVtZVRhc2tQcm94eTo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxT
Y2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVSTFNjaGVtZVRhc2tQcm94eTo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMU2NoZW1lVGFza1Byb3h5OjpoYXNMb2FkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmguCisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6cmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6aWRlbnRpZmllcik6CisKIDIwMTctMDUtMDEg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIEFkZCBhdXRvbWF0aW9uIHNlc3Npb24gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDRm
Y2VlMWI4M2M3MmQ5YzQzNGI5ZDBiYmRkYThjMDQ1OTQ3ODA2MTUuLjAwY2FiOTUwZjQ4NjFiNWNh
ODhkM2EyOGM0OTk2YzQwYTc3YjBlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0zMjcsNyAr
MzI3LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAotICAgIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVy
VGFzay5jcHAKKyAgICBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKICAgICBVSVByb2Nl
c3MvV2ViVmlicmF0aW9uUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlZpYnJhdGlvblBy
b3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAppbmRleCA3M2RhOGY4Zjc5MDk0YTBiNmU2OWIzNmQy
ZjFiYzIxZDliMzUzYWU0Li5iODI2YWNmZTI2MmI3NWQ2NGNkNzkyMGEwZWQ4MzJkYTI3NGI3Y2Vi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKQEAgLTE0Nyw3ICsxNDcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFJ1bkphdmFTY3JpcHRDb25maXJtUmVzdWx0TGlzdGVuZXIsCiAg
ICAgICAgIFJ1bkphdmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0ZW5lciwKICAgICAgICAgVGV4dENo
ZWNrZXIsCi0gICAgICAgIFVSTFNjaGVtZUhhbmRsZXJUYXNrLAorICAgICAgICBVUkxTY2hlbWVU
YXNrLAogICAgICAgICBVc2VyQ29udGVudENvbnRyb2xsZXIsCiAgICAgICAgIFVzZXJDb250ZW50
V29ybGQsCiAgICAgICAgIFVzZXJJbml0aWF0ZWRBY3Rpb24sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NvY29hL0FQSU9iamVjdC5tbQppbmRleCAyNThmNDJiZTUyYjYyNzcyZDY1YmQ5MDA5MzdmM2Zm
MmE0M2FkMjhiLi4xN2Q3ZTM3NDAzMjRiZWMwNWQ1ZGMxN2I1N2I1ZTZlNWU2ZTYyM2ExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KQEAgLTU0LDcgKzU0LDcgQEAK
ICNpbXBvcnQgIldLUHJlZmVyZW5jZXNJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9v
bEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1NlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCIKLSNpbXBv
cnQgIldLVVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tVUkxTY2hl
bWVUYXNrSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLVXNlclNjcmlwdEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgpAQCAtMjM4LDgg
KzIzOCw4IEBAIHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBlIHR5cGUp
CiAgICAgICAgIHdyYXBwZXIgPSBOU0FsbG9jYXRlT2JqZWN0KFtXS05TVVJMUmVxdWVzdCBjbGFz
c10sIHNpemUsIG51bGxwdHIpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgVHlwZTo6VVJM
U2NoZW1lSGFuZGxlclRhc2s6Ci0gICAgICAgIHdyYXBwZXIgPSBbV0tVUkxTY2hlbWVIYW5kbGVy
VGFza0ltcGwgYWxsb2NdOworICAgIGNhc2UgVHlwZTo6VVJMU2NoZW1lVGFzazoKKyAgICAgICAg
d3JhcHBlciA9IFtXS1VSTFNjaGVtZVRhc2tJbXBsIGFsbG9jXTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIFR5cGU6OlVzZXJDb250ZW50Q29udHJvbGxlcjoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjNDIwMWM5MTUyMDQzM2VmMTRmM2Y3NmQ5Njhj
ZTU0YTY0ODBhMmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0KLSNpbmNs
dWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCi0jaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxl
clRhc2suaCIKLQotbmFtZXNwYWNlIEFQSSB7Ci0KLVJlZjxVUkxTY2hlbWVIYW5kbGVyVGFzaz4g
VVJMU2NoZW1lSGFuZGxlclRhc2s6OmNyZWF0ZShXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJU
YXNrJiB3ZWJVUkxTY2hlbWVIYW5kbGVyVGFzaykKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBVUkxTY2hlbWVIYW5kbGVyVGFzayh3ZWJVUkxTY2hlbWVIYW5kbGVyVGFzaykpOwotfQotCi1V
UkxTY2hlbWVIYW5kbGVyVGFzazo6VVJMU2NoZW1lSGFuZGxlclRhc2soV2ViS2l0OjpXZWJVUkxT
Y2hlbWVIYW5kbGVyVGFzayYgd2ViVVJMU2NoZW1lSGFuZGxlclRhc2spCi0gICAgOiBtX3dlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrKHdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrKQotewotfQotCi19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRs
ZXJUYXNrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRs
ZXJUYXNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMzE1MDhmZDA5ZTI1YTk0
M2VjYjdjNDRlOTIyYWQ2OTZmMDlhYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVI
YW5kbGVyVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJL
aXQgewotY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s7Ci19Ci0KLW5hbWVzcGFjZSBBUEkg
ewotCi1jbGFzcyBVUkxTY2hlbWVIYW5kbGVyVGFzayBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBs
PE9iamVjdDo6VHlwZTo6VVJMU2NoZW1lSGFuZGxlclRhc2s+IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFVSTFNjaGVtZUhhbmRsZXJUYXNrPiBjcmVhdGUoV2ViS2l0OjpXZWJVUkxTY2hlbWVI
YW5kbGVyVGFzayYpOwotCi0gICAgV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYgdGFz
aygpIHsgcmV0dXJuIG1fd2ViVVJMU2NoZW1lSGFuZGxlclRhc2suZ2V0KCk7IH0KLQotcHJpdmF0
ZToKLSAgICBVUkxTY2hlbWVIYW5kbGVyVGFzayhXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJU
YXNrJik7Ci0KLSAgICBSZWY8V2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzaz4gbV93ZWJV
UkxTY2hlbWVIYW5kbGVyVGFzazsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0FQSVVSTFNjaGVtZVRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhOWI4Yzc0ZmVkZmI0
NGE0Mzk2NzdlNjcyNzRhYjM4NTc3Y2Q0ODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZVRhc2suY3BwCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVBJVVJMU2NoZW1l
VGFzay5oIgorCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgorI2luY2x1ZGUgIldl
YlVSTFNjaGVtZVRhc2suaCIKKworbmFtZXNwYWNlIEFQSSB7CisKK1JlZjxVUkxTY2hlbWVUYXNr
PiBVUkxTY2hlbWVUYXNrOjpjcmVhdGUoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrJiB3ZWJVUkxT
Y2hlbWVUYXNrKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVSTFNjaGVtZVRhc2sod2Vi
VVJMU2NoZW1lVGFzaykpOworfQorCitVUkxTY2hlbWVUYXNrOjpVUkxTY2hlbWVUYXNrKFdlYktp
dDo6V2ViVVJMU2NoZW1lVGFzayYgd2ViVVJMU2NoZW1lVGFzaykKKyAgICA6IG1fd2ViVVJMU2No
ZW1lVGFzayh3ZWJVUkxTY2hlbWVUYXNrKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZVRhc2suaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lVGFzay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NTYwZDljMTBi
M2QxZGMyZWM4NmNmZjBhMzY3MTcxZGI3ODE3N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZVRhc2suaApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJVUkxTY2hlbWVUYXNrOworfQorCituYW1lc3Bh
Y2UgQVBJIHsKKworY2xhc3MgVVJMU2NoZW1lVGFzayBmaW5hbCA6IHB1YmxpYyBPYmplY3RJbXBs
PE9iamVjdDo6VHlwZTo6VVJMU2NoZW1lVGFzaz4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
VVJMU2NoZW1lVGFzaz4gY3JlYXRlKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzayYpOworCisgICAg
V2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKCkgeyByZXR1cm4gbV93ZWJVUkxTY2hlbWVU
YXNrLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgVVJMU2NoZW1lVGFzayhXZWJLaXQ6OldlYlVS
TFNjaGVtZVRhc2smKTsKKworICAgIFJlZjxXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s+IG1fd2Vi
VVJMU2NoZW1lVGFzazsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlci5oCmluZGV4IGM0MzFiYzUwNTdjNTJl
MGQ5OTNkZjM1ODA2Mzc3ZWU5NjhlMzNlMTcuLjkzZTc3YzcxNGZjZmQ4YWU3M2IyNjBmNmY2N2Vh
MjYyYTgwMGI0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVUkxTY2hlbWVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXIuaApAQCAtMzIsNyArMzIsNyBAQAogTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIAogQGNsYXNzIFdLV2ViVmlldzsKLUBwcm90b2NvbCBXS1VSTFNjaGVt
ZUhhbmRsZXJUYXNrOworQHByb3RvY29sIFdLVVJMU2NoZW1lVGFzazsKIAogLyohIEEgY2xhc3Mg
Y29uZm9ybWluZyB0byB0aGUgV0tVUkxTY2hlbWVIYW5kbGVyIHByb3RvY29sIHByb3ZpZGVzIG1l
dGhvZHMgZm9yCiAgbG9hZGluZyByZXNvdXJjZXMgd2l0aCBVUkwgc2NoZW1lcyB0aGF0IFdlYktp
dCBkb2Vzbid0IGtub3cgaG93IHRvIGhhbmRsZSBpdHNlbGYuCkBAIC00MywxOSArNDMsMTkgQEAg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIC8q
ISBAYWJzdHJhY3QgTm90aWZpZXMgeW91ciBhcHAgdG8gc3RhcnQgbG9hZGluZyB0aGUgZGF0YSBm
b3IgYSBwYXJ0aWN1bGFyIHJlc291cmNlIAogIHJlcHJlc2VudGVkIGJ5IHRoZSBVUkwgc2NoZW1l
IGhhbmRsZXIgdGFzay4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhl
IG1ldGhvZC4KLSBAcGFyYW0gdXJsU2NoZW1lSGFuZGxlclRhc2sgVGhlIHRhc2sgdGhhdCB5b3Vy
IGFwcCBzaG91bGQgc3RhcnQgbG9hZGluZyBkYXRhIGZvci4KKyBAcGFyYW0gdXJsU2NoZW1lVGFz
ayBUaGUgdGFzayB0aGF0IHlvdXIgYXBwIHNob3VsZCBzdGFydCBsb2FkaW5nIGRhdGEgZm9yLgog
ICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRUYXNrOihpZCA8
V0tVUkxTY2hlbWVIYW5kbGVyVGFzaz4pdXJsU2NoZW1lSGFuZGxlclRhc2s7CistICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxT
Y2hlbWVUYXNrPil1cmxTY2hlbWVUYXNrOwogCiAvKiEgQGFic3RyYWN0IE5vdGlmaWVzIHlvdXIg
YXBwIHRvIHN0b3AgaGFuZGxpbmcgYSBVUkwgc2NoZW1lIGhhbmRsZXIgdGFzay4KICBAcGFyYW0g
d2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIG1ldGhvZC4KLSBAcGFyYW0gdXJsU2No
ZW1lSGFuZGxlclRhc2sgVGhlIHRhc2sgdGhhdCB5b3VyIGFwcCBzaG91bGQgc3RvcCBoYW5kbGlu
Zy4KKyBAcGFyYW0gdXJsU2NoZW1lVGFzayBUaGUgdGFzayB0aGF0IHlvdXIgYXBwIHNob3VsZCBz
dG9wIGhhbmRsaW5nLgogIEBkaXNjdXNzaW9uIEFmdGVyIHlvdXIgYXBwIGlzIHRvbGQgdG8gc3Rv
cCBsb2FkaW5nIGRhdGEgZm9yIGEgVVJMIHNjaGVtZSBoYW5kbGVyIHRhc2sKICBpdCBtdXN0IG5v
dCBwZXJmb3JtIGFueSBjYWxsYmFja3MgZm9yIHRoYXQgdGFzay4KICBBbiBleGNlcHRpb24gd2ls
bCBiZSB0aHJvd24gaWYgYW55IGNhbGxiYWNrcyBhcmUgbWFkZSBvbiB0aGUgVVJMIHNjaGVtZSBo
YW5kbGVyIHRhc2sKICBhZnRlciB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGlu
ZyBmb3IgaXQuCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdG9w
VGFzazooaWQgPFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+KXVybFNjaGVtZUhhbmRsZXJUYXNrOwor
LSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0b3BVUkxTY2hlbWVUYXNrOihp
ZCA8V0tVUkxTY2hlbWVUYXNrPil1cmxTY2hlbWVUYXNrOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFz
ay5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRs
ZXJUYXNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5ZmUzOTY1ZThiMzhlMDA3
NjJjNTkzNjBiN2VlYmZmYjU2ZjVhMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNj
aGVtZUhhbmRsZXJUYXNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfQVBJX0VOQUJM
RUQKLQotI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLU5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCi0KLVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpCi1AcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyVGFzayA8TlNPYmplY3Q+Ci0K
LS8qISBAYWJzdHJhY3QgVGhlIHJlcXVlc3QgdG8gbG9hZCBmb3IgdGhpcyB0YXNrLgotICovCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dDsKLQotLyohIEBhYnN0cmFjdCBTZXQgdGhlIGN1cnJlbnQgcmVzcG9uc2Ugb2JqZWN0IGZvciB0
aGUgdGFzay4KLSBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIHRvIHVzZS4KLSBAZGlzY3Vz
c2lvbiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBhdCBsZWFzdCBvbmNlIGZvciBlYWNoIFVS
TCBzY2hlbWUgaGFuZGxlciB0YXNrLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5
b3UgdHJ5IHRvIHNlbmQgYSBuZXcgcmVzcG9uc2Ugb2JqZWN0IGFmdGVyIHRoZSB0YXNrIGhhcyBh
bHJlYWR5IGJlZW4gY29tcGxldGVkLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5
b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSBy
ZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkUmVj
ZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2U7Ci0KLS8qISBAYWJzdHJhY3Qg
QWRkIHJlY2VpdmVkIGRhdGEgdG8gdGhlIHRhc2suCi0gQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8g
YWRkLgotIEBkaXNjdXNzaW9uIEFmdGVyIGEgVVJMIHNjaGVtZSBoYW5kbGVyIHRhc2sncyBmaW5h
bCByZXNwb25zZSBvYmplY3QgaXMgcmVjZWl2ZWQgeW91IHNob3VsZAotIHN0YXJ0IHNlbmRpbmcg
aXQgZGF0YS4KLSBFYWNoIHRpbWUgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHRoZSBkYXRhIHlvdSBz
ZW5kIHdpbGwgYmUgYXBwZW5kZWQgdG8gYWxsIHByZXZpb3VzIGRhdGEuCi0gQW4gZXhjZXB0aW9u
IHdpbGwgYmUgdGhyb3duIGlmIHlvdSB0cnkgdG8gc2VuZCB0aGUgdGFzayBhbnkgZGF0YSBiZWZv
cmUgc2VuZGluZyBpdCBhIHJlc3BvbnNlLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBp
ZiB5b3UgdHJ5IHRvIHNlbmQgdGhlIHRhc2sgYW55IGRhdGEgYWZ0ZXIgdGhlIHRhc2sgaGFzIGFs
cmVhZHkgYmVlbiBjb21wbGV0ZWQuCi0gQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlv
dXIgYXBwIGhhcyBiZWVuIHRvbGQgdG8gc3RvcCBsb2FkaW5nIHRoaXMgdGFzayB2aWEgdGhlIHJl
Z2lzdGVyZWQgV0tVUkxTY2hlbWVIYW5kbGVyIG9iamVjdC4KLSAqLwotLSAodm9pZClkaWRSZWNl
aXZlRGF0YTooTlNEYXRhICopZGF0YTsKLQotLyohIEBhYnN0cmFjdCBNYXJrIHRoZSB0YXNrIGFz
IHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuCi0gQGRpc2N1c3Npb24gQW4gZXhjZXB0aW9uIHdpbGwg
YmUgdGhyb3duIGlmIHlvdSB0cnkgdG8gZmluaXNoIHRoZSB0YXNrIGJlZm9yZSBzZW5kaW5nIGl0
IGEgcmVzcG9uc2UuCi0gQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlvdSB0cnkgdG8g
bWFyayBhIHRhc2sgY29tcGxldGVkIGFmdGVyIGl0IGhhcyBhbHJlYWR5IGJlZW4gbWFya2VkIGNv
bXBsZXRlZCBvciBmYWlsZWQuCi0gQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlvdXIg
YXBwIGhhcyBiZWVuIHRvbGQgdG8gc3RvcCBsb2FkaW5nIHRoaXMgdGFzayB2aWEgdGhlIHJlZ2lz
dGVyZWQgV0tVUkxTY2hlbWVIYW5kbGVyIG9iamVjdC4KLSAqLwotLSAodm9pZClkaWRGaW5pc2g7
Ci0KLS8qISBAYWJzdHJhY3QgTWFyayB0aGUgdGFzayBhcyBmYWlsZWQuCi0gQHBhcmFtIGVycm9y
IEEgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yIHRoYXQgY2F1c2VkIHRoZSB0YXNrIHRvIGZhaWwu
Ci0gQGRpc2N1c3Npb24gIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRv
IG1hcmsgYSB0YXNrIGZhaWxlZCBhZnRlciBpdCBoYXMgYWxyZWFkeSBiZWVuIG1hcmtlZCBjb21w
bGV0ZWQgb3IgZmFpbGVkLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFw
cCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3Rl
cmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkRmFpbFdpdGhF
cnJvcjooTlNFcnJvciAqKWVycm9yOwotCi1AZW5kCi0KLU5TX0FTU1VNRV9OT05OVUxMX0VORAot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTUyZjEzMWJmNmJiNmI0MGY5MjUzY2U5ODhmYWRjMTgxZWI4NWY4Ni4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2subW0KKysrIC9kZXYvbnVsbApA
QCAtMSw5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0
ICJXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50ZXJuYWwuaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVE
Ci0KLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1zdGF0aWMgdm9pZCByYWlzZUV4Y2VwdGlvbklmTmVjZXNzYXJ5KFdlYktpdDo6
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGUgZXhjZXB0aW9uVHlwZSkKLXsK
LSAgICBzd2l0Y2ggKGV4Y2VwdGlvblR5cGUpIHsKLSAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2No
ZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6Ok5vbmU6Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OlRh
c2tBbHJlYWR5U3RvcHBlZDoKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJ
bmNvbnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIlRoaXMgdGFzayBoYXMgYWxyZWFkeSBiZWVu
IHN0b3BwZWQiXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpDb21wbGV0ZUFscmVhZHlDYWxsZWQ6Ci0gICAg
ICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBm
b3JtYXQ6QCJbV0tVUkxTY2hlbWVIYW5kbGVyVGFzayB0YXNrRGlkQ29tcGxldGVXaXRoRXJyb3I6
XSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBmb3IgdGhpcyB0YXNrIl07Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlw
ZTo6RGF0YUFscmVhZHlTZW50OgotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnRlcm5h
bEluY29uc2lzdGVuY3lFeGNlcHRpb24gZm9ybWF0OkAiW1dLVVJMU2NoZW1lSGFuZGxlclRhc2sg
dGFza0RpZFJlY2VpdmVEYXRhOl0gaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgZm9yIHRoaXMgdGFz
ayJdOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxl
clRhc2s6OkV4Y2VwdGlvblR5cGU6Ok5vUmVzcG9uc2VTZW50OgotICAgICAgICBbTlNFeGNlcHRp
b24gcmFpc2U6TlNJbnRlcm5hbEluY29uc2lzdGVuY3lFeGNlcHRpb24gZm9ybWF0OkAiTm8gcmVz
cG9uc2UgaGFzIGJlZW4gc2VudCBmb3IgdGhpcyB0YXNrIl07Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KLX0KLQotQGltcGxlbWVudGF0aW9uIFdLVVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsCi0KLS0g
KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QKLXsKLSAgICByZXR1cm4gX3VybFNjaGVtZUhhbmRsZXJU
YXNrLT50YXNrKCkucmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KTsK
LX0KLQotLSAodm9pZClkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25z
ZQotewotICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZUhhbmRsZXJUYXNrLT50YXNrKCkuZGlk
UmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICByYWlzZUV4Y2VwdGlvbklmTmVjZXNzYXJ5
KHJlc3VsdCk7Ci19Ci0KLS0gKHZvaWQpZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEKLXsK
LSAgICBhdXRvIHJlc3VsdCA9IF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLmRpZFJlY2Vp
dmVEYXRhKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpKTsKLSAgICByYWlzZUV4
Y2VwdGlvbklmTmVjZXNzYXJ5KHJlc3VsdCk7Ci19Ci0KLS0gKHZvaWQpZGlkRmluaXNoCi17Ci0g
ICAgYXV0byByZXN1bHQgPSBfdXJsU2NoZW1lSGFuZGxlclRhc2stPnRhc2soKS5kaWRDb21wbGV0
ZSh7IH0pOwotICAgIHJhaXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKLX0KLQotLSAo
dm9pZClkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKLXsKLSAgICBhdXRvIHJlc3Vs
dCA9IF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLmRpZENvbXBsZXRlKGVycm9yKTsKLSAg
ICByYWlzZUV4Y2VwdGlvbklmTmVjZXNzYXJ5KHJlc3VsdCk7Ci19Ci0KLSNwcmFnbWEgbWFyayBX
S09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgotCi0tIChBUEk6Ok9iamVjdCYpX2FwaU9i
amVjdAotewotICAgIHJldHVybiAqX3VybFNjaGVtZUhhbmRsZXJUYXNrOwotfQotCi1AZW5kCi0K
LSNlbmRpZiAvLyAjaWYgV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJ
bnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjQ2ODAxZjU4MzY2NmNh
MzE1ODE2MDZhZDI4NjA4ZjYyYTQ4ZGU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxT
Y2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oIgotCi0jaWYg
V0tfQVBJX0VOQUJMRUQKLQotI2ltcG9ydCAiQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKLSNp
bXBvcnQgIldLT2JqZWN0LmgiCi0KLUBpbnRlcmZhY2UgV0tVUkxTY2hlbWVIYW5kbGVyVGFza0lt
cGwgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyVGFzaz4KLUBlbmQKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWlubGluZSBpZDxXS1VSTFNjaGVtZUhhbmRsZXJUYXNrPiB3cmFwcGVyKEFQ
STo6VVJMU2NoZW1lSGFuZGxlclRhc2smIHVybFNjaGVtZUhhbmRsZXJUYXNrKQotewotICAgIEFT
U0VSVChbdXJsU2NoZW1lSGFuZGxlclRhc2sud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W1dLVVJM
U2NoZW1lSGFuZGxlclRhc2tJbXBsIGNsYXNzXV0pOwotICAgIHJldHVybiAoaWQ8V0tVUkxTY2hl
bWVIYW5kbGVyVGFzaz4pdXJsU2NoZW1lSGFuZGxlclRhc2sud3JhcHBlcigpOwotfQotCi19Ci0K
LUBpbnRlcmZhY2UgV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ltcGwgKCkgPFdLT2JqZWN0PiB7Ci1A
cGFja2FnZQotICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OlVSTFNjaGVtZUhhbmRsZXJUYXNr
PiBfdXJsU2NoZW1lSGFuZGxlclRhc2s7Ci19Ci1AZW5kCi0KLSNlbmRpZiAvLyBXS19BUElfRU5B
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2suaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxT
Y2hlbWVUYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQwMDViNDc3NjAyNTQ5NWRhZGVhYWFjNTU4ZTUyZmRi
MTQ0ZDRiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVUkxTY2hlbWVUYXNrLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgorCitXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KQorQHByb3RvY29sIFdLVVJMU2NoZW1lVGFzayA8TlNPYmplY3Q+CisKKy8qISBAYWJzdHJhY3Qg
VGhlIHJlcXVlc3QgdG8gbG9hZCBmb3IgdGhpcyB0YXNrLgorICovCitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGNvcHkpIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDsKKworLyohIEBhYnN0
cmFjdCBTZXQgdGhlIGN1cnJlbnQgcmVzcG9uc2Ugb2JqZWN0IGZvciB0aGUgdGFzay4KKyBAcGFy
YW0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIHRvIHVzZS4KKyBAZGlzY3Vzc2lvbiBUaGlzIG1ldGhv
ZCBtdXN0IGJlIGNhbGxlZCBhdCBsZWFzdCBvbmNlIGZvciBlYWNoIFVSTCBzY2hlbWUgaGFuZGxl
ciB0YXNrLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIHNlbmQg
YSBuZXcgcmVzcG9uc2Ugb2JqZWN0IGFmdGVyIHRoZSB0YXNrIGhhcyBhbHJlYWR5IGJlZW4gY29t
cGxldGVkLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVl
biB0b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJM
U2NoZW1lSGFuZGxlciBvYmplY3QuCisgKi8KKy0gKHZvaWQpZGlkUmVjZWl2ZVJlc3BvbnNlOihO
U1VSTFJlc3BvbnNlICopcmVzcG9uc2U7CisKKy8qISBAYWJzdHJhY3QgQWRkIHJlY2VpdmVkIGRh
dGEgdG8gdGhlIHRhc2suCisgQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gYWRkLgorIEBkaXNjdXNz
aW9uIEFmdGVyIGEgVVJMIHNjaGVtZSBoYW5kbGVyIHRhc2sncyBmaW5hbCByZXNwb25zZSBvYmpl
Y3QgaXMgcmVjZWl2ZWQgeW91IHNob3VsZAorIHN0YXJ0IHNlbmRpbmcgaXQgZGF0YS4KKyBFYWNo
IHRpbWUgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHRoZSBkYXRhIHlvdSBzZW5kIHdpbGwgYmUgYXBw
ZW5kZWQgdG8gYWxsIHByZXZpb3VzIGRhdGEuCisgQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3du
IGlmIHlvdSB0cnkgdG8gc2VuZCB0aGUgdGFzayBhbnkgZGF0YSBiZWZvcmUgc2VuZGluZyBpdCBh
IHJlc3BvbnNlLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIHNl
bmQgdGhlIHRhc2sgYW55IGRhdGEgYWZ0ZXIgdGhlIHRhc2sgaGFzIGFscmVhZHkgYmVlbiBjb21w
bGV0ZWQuCisgQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlvdXIgYXBwIGhhcyBiZWVu
IHRvbGQgdG8gc3RvcCBsb2FkaW5nIHRoaXMgdGFzayB2aWEgdGhlIHJlZ2lzdGVyZWQgV0tVUkxT
Y2hlbWVIYW5kbGVyIG9iamVjdC4KKyAqLworLSAodm9pZClkaWRSZWNlaXZlRGF0YTooTlNEYXRh
ICopZGF0YTsKKworLyohIEBhYnN0cmFjdCBNYXJrIHRoZSB0YXNrIGFzIHN1Y2Nlc3NmdWxseSBj
b21wbGV0ZWQuCisgQGRpc2N1c3Npb24gQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlv
dSB0cnkgdG8gZmluaXNoIHRoZSB0YXNrIGJlZm9yZSBzZW5kaW5nIGl0IGEgcmVzcG9uc2UuCisg
QW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlvdSB0cnkgdG8gbWFyayBhIHRhc2sgY29t
cGxldGVkIGFmdGVyIGl0IGhhcyBhbHJlYWR5IGJlZW4gbWFya2VkIGNvbXBsZXRlZCBvciBmYWls
ZWQuCisgQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlvdXIgYXBwIGhhcyBiZWVuIHRv
bGQgdG8gc3RvcCBsb2FkaW5nIHRoaXMgdGFzayB2aWEgdGhlIHJlZ2lzdGVyZWQgV0tVUkxTY2hl
bWVIYW5kbGVyIG9iamVjdC4KKyAqLworLSAodm9pZClkaWRGaW5pc2g7CisKKy8qISBAYWJzdHJh
Y3QgTWFyayB0aGUgdGFzayBhcyBmYWlsZWQuCisgQHBhcmFtIGVycm9yIEEgZGVzY3JpcHRpb24g
b2YgdGhlIGVycm9yIHRoYXQgY2F1c2VkIHRoZSB0YXNrIHRvIGZhaWwuCisgQGRpc2N1c3Npb24g
IEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIG1hcmsgYSB0YXNrIGZh
aWxlZCBhZnRlciBpdCBoYXMgYWxyZWFkeSBiZWVuIG1hcmtlZCBjb21wbGV0ZWQgb3IgZmFpbGVk
LgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xk
IHRvIHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1l
SGFuZGxlciBvYmplY3QuCisgKi8KKy0gKHZvaWQpZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAq
KWVycm9yOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNr
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2su
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGZlZjY4OWQ3NGUxZDBhYjUyYjFiZmY2NzVmNmZlMGFkZGQwNjMzOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
UkxTY2hlbWVUYXNrLm1tCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIldLVVJMU2NoZW1lVGFza0ludGVybmFsLmgiCisKKyNpZiBXS19B
UElfRU5BQkxFRAorCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFzay5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VFcnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitzdGF0aWMgdm9pZCByYWlzZUV4Y2VwdGlvbklmTmVjZXNzYXJ5KFdlYktp
dDo6V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZSBleGNlcHRpb25UeXBlKQoreworICAg
IHN3aXRjaCAoZXhjZXB0aW9uVHlwZSkgeworICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVU
YXNrOjpFeGNlcHRpb25UeXBlOjpOb25lOgorICAgICAgICByZXR1cm47CisgICAgY2FzZSBXZWJL
aXQ6OldlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDoK
KyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0
aW9uIGZvcm1hdDpAIlRoaXMgdGFzayBoYXMgYWxyZWFkeSBiZWVuIHN0b3BwZWQiXTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5
cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDoKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW50ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIltXS1VSTFNjaGVtZVRhc2sg
dGFza0RpZENvbXBsZXRlV2l0aEVycm9yOl0gaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgZm9yIHRo
aXMgdGFzayJdOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1l
VGFzazo6RXhjZXB0aW9uVHlwZTo6RGF0YUFscmVhZHlTZW50OgorICAgICAgICBbTlNFeGNlcHRp
b24gcmFpc2U6TlNJbnRlcm5hbEluY29uc2lzdGVuY3lFeGNlcHRpb24gZm9ybWF0OkAiW1dLVVJM
U2NoZW1lVGFzayB0YXNrRGlkUmVjZWl2ZURhdGE6XSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBm
b3IgdGhpcyB0YXNrIl07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxT
Y2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb1Jlc3BvbnNlU2VudDoKKyAgICAgICAgW05TRXhj
ZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIk5v
IHJlc3BvbnNlIGhhcyBiZWVuIHNlbnQgZm9yIHRoaXMgdGFzayJdOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK0BpbXBsZW1lbnRhdGlvbiBXS1VSTFNjaGVtZVRhc2tJbXBsCisKKy0gKE5T
VVJMUmVxdWVzdCAqKXJlcXVlc3QKK3sKKyAgICByZXR1cm4gX3VybFNjaGVtZVRhc2stPnRhc2so
KS5yZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpOworfQorCistICh2
b2lkKWRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlCit7CisgICAg
YXV0byByZXN1bHQgPSBfdXJsU2NoZW1lVGFzay0+dGFzaygpLmRpZFJlY2VpdmVSZXNwb25zZShy
ZXNwb25zZSk7CisgICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOworfQorCist
ICh2b2lkKWRpZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhCit7CisgICAgYXV0byByZXN1bHQg
PSBfdXJsU2NoZW1lVGFzay0+dGFzaygpLmRpZFJlY2VpdmVEYXRhKFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGRhdGEpKTsKKyAgICByYWlzZUV4Y2VwdGlvbklmTmVjZXNzYXJ5KHJlc3Vs
dCk7Cit9CisKKy0gKHZvaWQpZGlkRmluaXNoCit7CisgICAgYXV0byByZXN1bHQgPSBfdXJsU2No
ZW1lVGFzay0+dGFzaygpLmRpZENvbXBsZXRlKHsgfSk7CisgICAgcmFpc2VFeGNlcHRpb25JZk5l
Y2Vzc2FyeShyZXN1bHQpOworfQorCistICh2b2lkKWRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3Ig
KillcnJvcgoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRhc2stPnRhc2soKS5kaWRD
b21wbGV0ZShlcnJvcik7CisgICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOwor
fQorCisjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KKworLSAo
QVBJOjpPYmplY3QmKV9hcGlPYmplY3QKK3sKKyAgICByZXR1cm4gKl91cmxTY2hlbWVUYXNrOwor
fQorCitAZW5kCisKKyNlbmRpZiAvLyAjaWYgV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrSW50
ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZmQ2MWZmNTA3ZmIxNTNhYTMzODViM2RkNzQ3MmI1MGZmMGJk
OTBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VSTFNjaGVtZVRhc2tJbnRlcm5hbC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJXS1VSTFNjaGVtZVRhc2suaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNp
bXBvcnQgIkFQSVVSTFNjaGVtZVRhc2suaCIKKyNpbXBvcnQgIldLT2JqZWN0LmgiCisKK0BpbnRl
cmZhY2UgV0tVUkxTY2hlbWVUYXNrSW1wbCA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZVRhc2s+CitA
ZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitpbmxpbmUgaWQ8V0tVUkxTY2hlbWVUYXNrPiB3
cmFwcGVyKEFQSTo6VVJMU2NoZW1lVGFzayYgdXJsU2NoZW1lVGFzaykKK3sKKyAgICBBU1NFUlQo
W3VybFNjaGVtZVRhc2sud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W1dLVVJMU2NoZW1lVGFza0lt
cGwgY2xhc3NdXSk7CisgICAgcmV0dXJuIChpZDxXS1VSTFNjaGVtZVRhc2s+KXVybFNjaGVtZVRh
c2sud3JhcHBlcigpOworfQorCit9CisKK0BpbnRlcmZhY2UgV0tVUkxTY2hlbWVUYXNrSW1wbCAo
KSA8V0tPYmplY3Q+IHsKK0BwYWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6VVJM
U2NoZW1lVGFzaz4gX3VybFNjaGVtZVRhc2s7Cit9CitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElf
RU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5oCmluZGV4IGRhZWFjNDUwOTEwMDgwODllMTMzYjQ2ZDhl
ZWZhNzg1OGRkOTQzNzcuLjI1OTBhZjMzMDEzNGEwZmMwYzc5ODA3YjI1NTkwNGI2NzA0ZTljODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVI
YW5kbGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hLmgKQEAgLTMxLDcgKzMxLDcgQEAKIEBwcm90b2NvbCBXS1VSTFNj
aGVtZUhhbmRsZXI7CiAKIG5hbWVzcGFjZSBBUEkgewotY2xhc3MgVVJMU2NoZW1lSGFuZGxlclRh
c2s7CitjbGFzcyBVUkxTY2hlbWVUYXNrOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ1
LDExICs0NSwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYlVSTFNjaGVtZUhhbmRsZXJD
b2NvYShpZCA8V0tVUkxTY2hlbWVIYW5kbGVyPik7CiAKLSAgICB2b2lkIHBsYXRmb3JtU3RhcnRU
YXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrJikgZmluYWw7Ci0gICAg
dm9pZCBwbGF0Zm9ybVN0b3BUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFNjaGVtZUhhbmRsZXJU
YXNrJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBX
ZWJVUkxTY2hlbWVUYXNrJikgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9ybVN0b3BUYXNrKFdlYlBh
Z2VQcm94eSYsIFdlYlVSTFNjaGVtZVRhc2smKSBmaW5hbDsKIAogICAgIFJldGFpblB0cjxpZCA8
V0tVUkxTY2hlbWVIYW5kbGVyPj4gbV9hcGlIYW5kbGVyOwotICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZjxBUEk6OlVSTFNjaGVtZUhhbmRsZXJUYXNrPj4gbV9hcGlUYXNrczsKKyAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWY8QVBJOjpVUkxTY2hlbWVUYXNrPj4gbV9hcGlUYXNrczsKIAogfTsgLy8g
Y2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbQppbmRleCA2Mzgz
OTE0NTUwZGRjMTg0NjYzNzMyNTVkMjM4YmJiZmJjODU4YjQyLi5iODRjYzY0MmQzZGQzODBjNzE5
NmJiNWM4MWFhODhkNDYyMTk3MThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0KQEAgLTI2LDEyICsy
NiwxMiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJVUkxTY2hlbWVIYW5kbGVy
Q29jb2EuaCIKIAotI2ltcG9ydCAiQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKKyNpbXBvcnQg
IkFQSVVSTFNjaGVtZVRhc2suaCIKICNpbXBvcnQgIldLRm91bmRhdGlvbi5oIgogI2ltcG9ydCAi
V0tVUkxTY2hlbWVIYW5kbGVyLmgiCi0jaW1wb3J0ICJXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIldLVVJMU2NoZW1lVGFza0ludGVybmFsLmgiCiAjaW1wb3J0ICJX
S1dlYlZpZXdJbnRlcm5hbC5oIgotI2ltcG9ydCAiV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIK
KyNpbXBvcnQgIldlYlVSTFNjaGVtZVRhc2suaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKQEAgLTQ3LDI3ICs0NywyNyBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2E6OldlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYShpZCA8V0tVUkxTY2hlbWVIYW5kbGVyPiBhcGlIYQogewogfQogCi12
b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYTo6cGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYgdGFzaykKK3ZvaWQgV2ViVVJMU2No
ZW1lSGFuZGxlckNvY29hOjpwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YlVSTFNjaGVtZVRhc2smIHRhc2spCiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQKLSAgICBhdXRvIHJl
c3VsdCA9IG1fYXBpVGFza3MuYWRkKHRhc2suaWRlbnRpZmllcigpLCBBUEk6OlVSTFNjaGVtZUhh
bmRsZXJUYXNrOjpjcmVhdGUodGFzaykpOworICAgIGF1dG8gcmVzdWx0ID0gbV9hcGlUYXNrcy5h
ZGQodGFzay5pZGVudGlmaWVyKCksIEFQSTo6VVJMU2NoZW1lVGFzazo6Y3JlYXRlKHRhc2spKTsK
ICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAgW21fYXBpSGFuZGxlci5nZXQo
KSB3ZWJWaWV3OmZyb21XZWJQYWdlUHJveHkocGFnZSkgc3RhcnRUYXNrOndyYXBwZXIocmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKSldOworICAgIFttX2FwaUhhbmRsZXIuZ2V0KCkgd2ViVmll
dzpmcm9tV2ViUGFnZVByb3h5KHBhZ2UpIHN0YXJ0VVJMU2NoZW1lVGFzazp3cmFwcGVyKHJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUuZ2V0KCkpXTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2Up
OwogICAgIFVOVVNFRF9QQVJBTSh0YXNrKTsKICNlbmRpZgogfQogCi12b2lkIFdlYlVSTFNjaGVt
ZUhhbmRsZXJDb2NvYTo6cGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrJiB0YXNrKQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2E6
OnBsYXRmb3JtU3RvcFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVUYXNrJiB0
YXNrKQogewogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgYXV0byBpdGVyYXRvciA9IG1fYXBpVGFz
a3MuZmluZCh0YXNrLmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fYXBpVGFz
a3MuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX2FwaUhhbmRsZXIuZ2V0KCkgd2Vi
Vmlldzpmcm9tV2ViUGFnZVByb3h5KHBhZ2UpIHN0b3BUYXNrOndyYXBwZXIoaXRlcmF0b3ItPnZh
bHVlLmdldCgpKV07CisgICAgW21fYXBpSGFuZGxlci5nZXQoKSB3ZWJWaWV3OmZyb21XZWJQYWdl
UHJveHkocGFnZSkgc3RvcFVSTFNjaGVtZVRhc2s6d3JhcHBlcihpdGVyYXRvci0+dmFsdWUuZ2V0
KCkpXTsKIAogICAgIG1fYXBpVGFza3MucmVtb3ZlKGl0ZXJhdG9yKTsKICNlbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdjNmI4NmZmNTQxMmM0M2Nj
NmEwODNmMjYxMmQwNjI5ODI0MTY4MjEuLjVkZGE3M2IxNTU2MjA4NjNiYzFkOWI2YWNkZTRkZDVj
ZDEyMDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC02ODgwLDcgKzY4ODAsNyBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyKiBXZWJQYWdlUHJveHk6OnVy
bFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbQogICAgIHJldHVybiBt
X3VybFNjaGVtZUhhbmRsZXJzQnlTY2hlbWUuZ2V0KHNjaGVtZSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpzdGFydFVSTFNjaGVtZUhhbmRsZXJUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2so
dWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGF1dG8gaXRl
cmF0b3IgPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmZpbmQoaGFuZGxlcklkZW50
aWZpZXIpOwogICAgIEFTU0VSVChpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVu
dGlmaWVyLmVuZCgpKTsKQEAgLTY4ODgsNyArNjg4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
dGFydFVSTFNjaGVtZUhhbmRsZXJUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50
NjRfCiAgICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIHJlc291cmNlSWRlbnRp
ZmllciwgcmVxdWVzdCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVVJMU2NoZW1lSGFu
ZGxlclRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRl
bnRpZmllcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBo
YW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyKQogewogICAgIGF1
dG8gaXRlcmF0b3IgPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmZpbmQoaGFuZGxl
cklkZW50aWZpZXIpOwogICAgIEFTU0VSVChpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhhbmRsZXJz
QnlJZGVudGlmaWVyLmVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCAyNzAyM2E0NjA1YzBkMjI1YWRkZmRkMWZkOGNlMjM5NzczZjkwYzgwLi5hZDI1MDA4
NzNjMGZlMjVmM2Q5MjgyZTIwNmMzOGE5NDhjMjQ3ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjA4LDggKzE2MDgsOCBAQCBwcml2YXRlOgogI2VuZGlm
CiAjZW5kaWYKIAotICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRfdCBo
YW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BVUkxTY2hlbWVIYW5kbGVyVGFz
ayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmll
ciwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKTsKKyAgICB2b2lkIHN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVu
dGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBoYW5kbGVB
dXRvRmlsbEJ1dHRvbkNsaWNrKGNvbnN0IFVzZXJEYXRhJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGI0Yjk4MTA1YmNl
Njg0MDg0M2ZiOWMxMTQ0MTg2NzgzZWY5OGE0ODMuLmFjNWRjODI0NzlkNjhjODlkYWIxZDE2Y2Ew
Nzc0Zjk0YjkzZWNiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDkyLDggKzQ5Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAKICAgICBTZXRJc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woYm9vbCBpc1Vz
aW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wpCiAKLSAgICBTdGFydFVSTFNjaGVtZUhhbmRsZXJUYXNr
KHVpbnQ2NF90IGxvYWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCi0gICAgU3RvcFVSTFNjaGVtZUhhbmRs
ZXJUYXNrKHVpbnQ2NF90IGxvYWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRp
ZmllcikKKyAgICBTdGFydFVSTFNjaGVtZVRhc2sodWludDY0X3QgbG9hZGVySWRlbnRpZmllciwg
dWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCkKKyAgICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBsb2FkZXJJZGVudGlmaWVyLCB1
aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpCiAKICAgICBTZXRDbGlwVG9TYWZlQXJlYShib29s
IGNsaXBUb1NhZmVBcmVhKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVS
TFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IGU1OTllYzJmM2UxZmYyMTIxYTdiZmYzNzUwMTE2OWVj
YTM2YjZjNTIuLjc0MGMzOTY3NGEzZjhhOWZkMDkzY2Q5M2JhOGM5ZDNkNzZlYjVkMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAg
LTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hl
bWVIYW5kbGVyLmgiCiAKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oIgorI2lu
Y2x1ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTUwLDcgKzUwLDcgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRs
ZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJveHkm
IHBhZ2UsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQogewotICAgIGF1dG8gcmVzdWx0ID0gbV90YXNrcy5hZGQocmVzb3VyY2VJZGVu
dGlmaWVyLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6Y3JlYXRlKCp0aGlzLCBwYWdlLCByZXNv
dXJjZUlkZW50aWZpZXIsIHJlcXVlc3QpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRk
KHJlc291cmNlSWRlbnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKCp0aGlzLCBwYWdl
LCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QpKTsKICAgICBBU1NFUlQocmVzdWx0LmlzTmV3
RW50cnkpOwogCiAgICAgcGxhdGZvcm1TdGFydFRhc2socGFnZSwgcmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIu
aAppbmRleCAzNGNmZDVkZGY5ODZiMmU2MzFiMjQ3MjM4MTc2ZjdhZWNkMDY3NjIxLi4zZjRlYWZi
YTM3OWViNmU3Mzg0Mzk5MmRjNDljYWRiNzhjYTViNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oIgorI2luY2x1
ZGUgIldlYlVSTFNjaGVtZVRhc2suaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsMTIg
KzUyLDEyIEBAIHByb3RlY3RlZDoKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVyKCk7CiAKIHByaXZh
dGU6Ci0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVN0
b3BUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hl
bWVUYXNrJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVN0b3BUYXNrKFdlYlBhZ2VQ
cm94eSYsIFdlYlVSTFNjaGVtZVRhc2smKSA9IDA7CiAKICAgICB1aW50NjRfdCBtX2lkZW50aWZp
ZXI7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s+
PiBtX3Rhc2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZjxXZWJVUkxTY2hlbWVUYXNrPj4g
bV90YXNrczsKIAogfTsgLy8gY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlcgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRlYWIzZTU3Nzg1MjYxNjk2YzBmOTFjZTAxOTBl
NjU0ZTlhODYxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKLQotI2luY2x1ZGUg
IkRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKLSNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCi0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVmPFdlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrPiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6Y3JlYXRlKFdlYlVS
TFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgcmVz
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2soaGFuZGxlciwgcGFn
ZSwgcmVzb3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0KSk7Ci19Ci0KLVdlYlVSTFNjaGVtZUhhbmRs
ZXJUYXNrOjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5k
bGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhh
bmRsZXIpCi0gICAgLCBtX3BhZ2UoJnBhZ2UpCi0gICAgLCBtX2lkZW50aWZpZXIocmVzb3VyY2VJ
ZGVudGlmaWVyKQotICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCi17Ci19Ci0KLVdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpkaWRS
ZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAg
aWYgKG1fc3RvcHBlZCkKLSAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpF
eGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ7Ci0KLSAgICBpZiAobV9jb21wbGV0ZWQp
Ci0gICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6
Q29tcGxldGVBbHJlYWR5Q2FsbGVkOwotCi0gICAgaWYgKG1fZGF0YVNlbnQpCi0gICAgICAgIHJl
dHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6RGF0YUFscmVhZHlT
ZW50OwotCi0gICAgbV9yZXNwb25zZVNlbnQgPSB0cnVlOwotCi0gICAgcmVzcG9uc2UuaW5jbHVk
ZUNlcnRpZmljYXRlSW5mbygpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
VVJMU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVy
LT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpKTsKLSAgICByZXR1cm4gV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6Ok5vbmU7Ci19Ci0KLVdlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpk
aWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiBidWZmZXIpCi17Ci0gICAgaWYgKG1fc3Rv
cHBlZCkKLSAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25U
eXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ7Ci0KLSAgICBpZiAobV9jb21wbGV0ZWQpCi0gICAgICAg
IHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6Q29tcGxldGVB
bHJlYWR5Q2FsbGVkOwotCi0gICAgaWYgKCFtX3Jlc3BvbnNlU2VudCkKLSAgICAgICAgcmV0dXJu
IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpOb1Jlc3BvbnNlU2VudDsK
LQotICAgIG1fZGF0YVNlbnQgPSB0cnVlOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VVJMU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRs
ZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UoYnVmZmVyLnB0cigpKSkpOwotICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
azo6RXhjZXB0aW9uVHlwZTo6Tm9uZTsKLX0KLQotV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4
Y2VwdGlvblR5cGUgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OmRpZENvbXBsZXRlKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQotewotICAgIGlmIChtX3N0b3BwZWQpCi0gICAgICAgIHJldHVy
biBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVhZHlTdG9w
cGVkOwotCi0gICAgaWYgKG1fY29tcGxldGVkKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1l
SGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKLQotICAg
IGlmICghbV9yZXNwb25zZVNlbnQgJiYgZXJyb3IuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9SZXNwb25zZVNlbnQ7Ci0K
LSAgICBtX2NvbXBsZXRlZCA9IHRydWU7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpVUkxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+
aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSk7Ci0gICAgcmV0dXJuIFdlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpOb25lOwotfQotCi12b2lkIFdlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrOjpwYWdlRGVzdHJveWVkKCkKLXsKLSAgICBBU1NFUlQobV9wYWdlKTsK
LSAgICBtX3BhZ2UgPSBudWxscHRyOwotICAgIG1fc3RvcHBlZCA9IHRydWU7Ci19Ci0KLXZvaWQg
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OnN0b3AoKQotewotICAgIEFTU0VSVCghbV9zdG9wcGVk
KTsKLSAgICBtX3N0b3BwZWQgPSB0cnVlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFz
ay5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3ZGIzMmQ5NTU2MzVlYmRlMjNmZmFmNTVi
YTE5NWM0MzZmMGYwNTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNz
IFNoYXJlZEJ1ZmZlcjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlVSTFNj
aGVtZUhhbmRsZXI7Ci1jbGFzcyBXZWJQYWdlUHJveHk7Ci0KLWNsYXNzIFdlYlVSTFNjaGVtZUhh
bmRsZXJUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s+IHsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayk7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyVGFzaz4gY3JlYXRlKFdlYlVS
TFNjaGVtZUhhbmRsZXImLCBXZWJQYWdlUHJveHkmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLQotICAgIHVpbnQ2NF90IGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLQotICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQotCi0g
ICAgZW51bSBjbGFzcyBFeGNlcHRpb25UeXBlIHsKLSAgICAgICAgRGF0YUFscmVhZHlTZW50LAot
ICAgICAgICBDb21wbGV0ZUFscmVhZHlDYWxsZWQsCi0gICAgICAgIFRhc2tBbHJlYWR5U3RvcHBl
ZCwKLSAgICAgICAgTm9SZXNwb25zZVNlbnQsCi0gICAgICAgIE5vbmUsCi0gICAgfTsKLSAgICBF
eGNlcHRpb25UeXBlIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJik7Ci0gICAgRXhjZXB0aW9uVHlwZSBkaWRSZWNlaXZlRGF0YShSZWY8V2ViQ29yZTo6
U2hhcmVkQnVmZmVyPik7Ci0gICAgRXhjZXB0aW9uVHlwZSBkaWRDb21wbGV0ZShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJik7Ci0KLSAgICB2b2lkIHN0b3AoKTsKLSAgICB2b2lkIHBhZ2VE
ZXN0cm95ZWQoKTsKLQotcHJpdmF0ZToKLSAgICBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayhXZWJV
UkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgdWludDY0X3QgaWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci0KLSAgICBSZWY8V2ViVVJMU2NoZW1lSGFu
ZGxlcj4gbV91cmxTY2hlbWVIYW5kbGVyOwotICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwotICAg
IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9y
ZXF1ZXN0OwotICAgIGJvb2wgbV9zdG9wcGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fcmVzcG9u
c2VTZW50IHsgZmFsc2UgfTsKLSAgICBib29sIG1fZGF0YVNlbnQgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9jb21wbGV0ZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2QzMzViYzRhOTBhZDA0YmFkYmI0ZGIyNjg0ZTI5NWFiNzhhYjMyMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcApAQCAt
MCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJVUkxTY2hlbWVUYXNrLmgiCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5j
bHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5j
bHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJVUkxTY2hlbWVUYXNrPiBXZWJVUkxTY2hl
bWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5
JiBwYWdlLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJVUkxTY2hlbWVUYXNr
KGhhbmRsZXIsIHBhZ2UsIHJlc291cmNlSWRlbnRpZmllciwgcmVxdWVzdCkpOworfQorCitXZWJV
UkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRs
ZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCisgICAgOiBtX3VybFNjaGVtZUhhbmRsZXIoaGFu
ZGxlcikKKyAgICAsIG1fcGFnZSgmcGFnZSkKKyAgICAsIG1faWRlbnRpZmllcihyZXNvdXJjZUlk
ZW50aWZpZXIpCisgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKK3sKK30KKworV2ViVVJMU2NoZW1l
VGFzazo6RXhjZXB0aW9uVHlwZSBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKG1fc3RvcHBlZCkK
KyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJl
YWR5U3RvcHBlZDsKKworICAgIGlmIChtX2NvbXBsZXRlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVS
TFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKKworICAg
IGlmIChtX2RhdGFTZW50KQorICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0
aW9uVHlwZTo6RGF0YUFscmVhZHlTZW50OworCisgICAgbV9yZXNwb25zZVNlbnQgPSB0cnVlOwor
CisgICAgcmVzcG9uc2UuaW5jbHVkZUNlcnRpZmljYXRlSW5mbygpOworICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZShtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSkpOwor
ICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb25lOworfQorCitX
ZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2Vp
dmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcikKK3sKKyAgICBpZiAobV9zdG9wcGVkKQor
ICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVh
ZHlTdG9wcGVkOworCisgICAgaWYgKG1fY29tcGxldGVkKQorICAgICAgICByZXR1cm4gV2ViVVJM
U2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZTo6Q29tcGxldGVBbHJlYWR5Q2FsbGVkOworCisgICAg
aWYgKCFtX3Jlc3BvbnNlU2VudCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4
Y2VwdGlvblR5cGU6Ok5vUmVzcG9uc2VTZW50OworCisgICAgbV9kYXRhU2VudCA9IHRydWU7Cisg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2
ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgSVBD
OjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGJ1ZmZlci5wdHIoKSkpKTsKKyAgICByZXR1cm4g
V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9uZTsKK30KKworV2ViVVJMU2NoZW1l
VGFzazo6RXhjZXB0aW9uVHlwZSBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAobV9zdG9wcGVkKQorICAgICAgICByZXR1
cm4gV2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVhZHlTdG9wcGVkOwor
CisgICAgaWYgKG1fY29tcGxldGVkKQorICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lVGFzazo6
RXhjZXB0aW9uVHlwZTo6Q29tcGxldGVBbHJlYWR5Q2FsbGVkOworCisgICAgaWYgKCFtX3Jlc3Bv
bnNlU2VudCAmJiBlcnJvci5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRh
c2s6OkV4Y2VwdGlvblR5cGU6Ok5vUmVzcG9uc2VTZW50OworCisgICAgbV9jb21wbGV0ZWQgPSB0
cnVlOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0Rp
ZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIs
IGVycm9yKSk7CisgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6Ok5v
bmU7Cit9CisKK3ZvaWQgV2ViVVJMU2NoZW1lVGFzazo6cGFnZURlc3Ryb3llZCgpCit7CisgICAg
QVNTRVJUKG1fcGFnZSk7CisgICAgbV9wYWdlID0gbnVsbHB0cjsKKyAgICBtX3N0b3BwZWQgPSB0
cnVlOworfQorCit2b2lkIFdlYlVSTFNjaGVtZVRhc2s6OnN0b3AoKQoreworICAgIEFTU0VSVCgh
bV9zdG9wcGVkKTsKKyAgICBtX3N0b3BwZWQgPSB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM1M2MxOWQ2ODA5OWFkZWIwNDM4ZGEzZGNiMDYxZGM0YTQxYjE1NzgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCkBA
IC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291
cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgU2hhcmVkQnVmZmVyOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlcjsKK2Ns
YXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2ViVVJMU2NoZW1lVGFzayA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYlVSTFNjaGVtZVRhc2s+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJV
UkxTY2hlbWVUYXNrKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlVSTFNjaGVtZVRhc2s+
IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgdWludDY0X3QgaWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisKKyAgICB1aW50NjRf
dCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jl
cXVlc3Q7IH0KKworICAgIGVudW0gY2xhc3MgRXhjZXB0aW9uVHlwZSB7CisgICAgICAgIERhdGFB
bHJlYWR5U2VudCwKKyAgICAgICAgQ29tcGxldGVBbHJlYWR5Q2FsbGVkLAorICAgICAgICBUYXNr
QWxyZWFkeVN0b3BwZWQsCisgICAgICAgIE5vUmVzcG9uc2VTZW50LAorICAgICAgICBOb25lLAor
ICAgIH07CisgICAgRXhjZXB0aW9uVHlwZSBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIEV4Y2VwdGlvblR5cGUgZGlkUmVjZWl2ZURhdGEo
UmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4pOworICAgIEV4Y2VwdGlvblR5cGUgZGlkQ29tcGxl
dGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworCisgICAgdm9pZCBzdG9wKCk7Cisg
ICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7CisKK3ByaXZhdGU6CisgICAgV2ViVVJMU2NoZW1lVGFz
ayhXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgdWludDY0X3QgaWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisKKyAgICBSZWY8V2ViVVJMU2No
ZW1lSGFuZGxlcj4gbV91cmxTY2hlbWVIYW5kbGVyOworICAgIFdlYlBhZ2VQcm94eSogbV9wYWdl
OworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgbV9yZXF1ZXN0OworICAgIGJvb2wgbV9zdG9wcGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
cmVzcG9uc2VTZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1fZGF0YVNlbnQgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9jb21wbGV0ZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggY2QwODUzYTU4ODlkMzg3YWU5ZTgxODVlYjAxMzNlYWQ1NWYzYzc3Yy4uNzJiMGM1
Y2Q5MTVkMjY4OTkzOTJhNWQ2OTBhN2VlMWFhN2Y5OTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA1NiwxNCArMTA1Niwx
NCBAQAogCQk1MUQwMkY2QTEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDAy
RjY3MTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VNZXNzYWdlcy5oICovOyB9Owog
CQk1MUQwMkY2QjEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFEMDJGNjgxMzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFEMDJGNkMxMzJFQzczNzAwQkVBQTk2IC8qIFdlYklj
b25EYXRhYmFzZVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxRDAyRjY5MTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJh
c2VQcm94eU1lc3NhZ2VzLmggKi87IH07Ci0JCTUxRDEyNDIzMUU2RDM0QTEwMDJCMjgyMCAvKiBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDIxMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcCAqLzsgfTsKKwkJNTFEMTI0MjMxRTZEMzRBMTAwMkIy
ODIwIC8qIFdlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJM
U2NoZW1lVGFza1Byb3h5LmNwcCAqLzsgfTsKIAkJNTFEMTI0MjgxRTZEM0Y1RDAwMkIyODIwIC8q
IFdlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFEMTI0MjQxRTZEM0NDMzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhh
bmRsZXIuY3BwICovOyB9OwogCQk1MUQxMjQyQzFFNkQ0MUZEMDAyQjI4MjAgLyogV2ViVVJMU2No
ZW1lSGFuZGxlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRDEyNDJBMUU2RDQxQkMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVy
UHJveHkuY3BwICovOyB9OwogCQk1MUQxMjQzMzFFNkRFNkNBMDAyQjI4MjAgLyogV2ViVVJMU2No
ZW1lSGFuZGxlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFEMTI0MzIxRTZERTUyMTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJD
b2NvYS5tbSAqLzsgfTsKIAkJNTFEMTI0MzQxRTZERjY0MzAwMkIyODIwIC8qIFdLVVJMU2NoZW1l
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFEMTI0MkQxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJNTFEMTI0MzUxRTZERjY1
MjAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlclRhc2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDJGMUU2RERERDcwMDJCMjgyMCAvKiBX
S1VSTFNjaGVtZUhhbmRsZXJUYXNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVi
bGljLCApOyB9OyB9OwotCQk1MUQxMjQzNjFFNkRGQjM5MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVI
YW5kbGVyVGFzay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRDEyNDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrLm1t
ICovOyB9OwotCQk1MUQxMjQzQTFFNkUwQUFCMDAyQjI4MjAgLyogQVBJVVJMU2NoZW1lSGFuZGxl
clRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFEMTI0MzgxRTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAq
LzsgfTsKKwkJNTFEMTI0MzUxRTZERjY1MjAwMkIyODIwIC8qIFdLVVJMU2NoZW1lVGFzay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFEMTI0MkYxRTZE
RERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lVGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNTFEMTI0MzYxRTZERkIzOTAwMkIyODIwIC8qIFdL
VVJMU2NoZW1lVGFzay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxRDEyNDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gKi87
IH07CisJCTUxRDEyNDNBMUU2RTBBQUIwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDM4MUU2
REZEQjkwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmNwcCAqLzsgfTsKIAkJNTFEMTI0OTEx
RTc0QkYzQzAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQ4MjFFNzM0QUM4MDAyQjI4MjAg
LyogQVBJSFRUUENvb2tpZVN0b3JlLmNwcCAqLzsgfTsKIAkJNTFEMTI0OTIxRTc0QkY0ODAwMkIy
ODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFEMTI0ODUxRTczNEFFMzAwMkIyODIwIC8qIFdLSFRUUENvb2tp
ZVN0b3JlLm1tICovOyB9OwogCQk1MUQxMjQ5OTFFNzYzQzAxMDAyQjI4MjAgLyogV0tIVFRQQ29v
a2llU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRDEyNDg0MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKQEAgLTEwODEsNyArMTA4MSw3
IEBACiAJCTUxRTM1MjAyMTgwRjVEMUUwMEU1M0JFOSAvKiBEYXRhYmFzZVByb2Nlc3NNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTIwMTE4
MEY1RDFFMDBFNTNCRTkgLyogRGF0YWJhc2VQcm9jZXNzTWFjLm1tICovOyB9OwogCQk1MUUzNTIw
OTE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM1MjA4MTgwRjVENkIw
MEU1M0JFOSAvKiBEYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tICovOyB9OwogCQk1MUUzOTkw
NjFENkY1NEM3MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlkZXJDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTM5OTA1MUQ2RjU0QzUwMDlD
ODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tICovOyB9OwotCQk1MUU4QjY4RTFFNzEy
ODc3MDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFOEI2OEQxRTcxMjg3MzAwMUI3MTMy
IC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLzsgfTsKKwkJNTFFOEI2OEUxRTcxMjg3
NzAwMUI3MTMyIC8qIFdlYlVSTFNjaGVtZVRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFOEI2OEQxRTcxMjg3MzAwMUI3MTMyIC8qIFdlYlVS
TFNjaGVtZVRhc2suY3BwICovOyB9OwogCQk1MUU5NDk5NzFENzYyMTEzMDBFQzlFQjkgLyogVUlH
YW1lcGFkUHJvdmlkZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUU5NDk5NjFENzYxQ0M3MDBFQzlFQjkgLyogVUlHYW1lcGFkUHJvdmlkZXJJ
T1MubW0gKi87IH07CiAJCTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdp
bmRvd0V4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1
NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CkBAIC0z
MzAxLDIxICszMzAxLDIxIEBACiAJCTUxRDAyRjY3MTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29u
RGF0YWJhc2VNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJ
Y29uRGF0YWJhc2VNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQw
MkY2ODEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSWNvbkRhdGFi
YXNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUQwMkY2OTEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJY29uRGF0YWJhc2VQcm94
eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDIxMUU2RDM0
OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUQxMjQyMjFFNkQzNDlBMDAyQjI4
MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDIxMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hl
bWVUYXNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
VVJMU2NoZW1lVGFza1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFE
MTI0MjIxRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZVRhc2tQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVUkxTY2hlbWVUYXNrUHJveHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMTI0MjQxRTZEM0NDMzAwMkIyODIwIC8qIFdlYlVS
TFNjaGVtZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViVVJMU2NoZW1lSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
RDEyNDI1MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFEMTI0MjcxRTZEM0YxRjAwMkIyODIwIC8qIFdlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEy
NDI3MUU2RDNGMUYwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVSTFNjaGVtZVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFEMTI0MkExRTZENDFCQzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRs
ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJVUkxT
Y2hlbWVIYW5kbGVyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQx
MjQyQjFFNkQ0MUJDMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQyRDFFNkREREQ3MDAyQjI4MjAgLyog
V0tVUkxTY2hlbWVIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
VVJMU2NoZW1lSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUQxMjQy
RjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNj
aGVtZUhhbmRsZXJUYXNrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTFEMTI0MkYxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lVGFzay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZVRhc2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTFEMTI0MzAxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1l
VGFzay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVVJMU2No
ZW1lVGFzay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMTI0MzExRTZERTUy
MTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMTI0MzIxRTZERTUyMTAwMkIyODIwIC8qIFdlYlVSTFNjaGVt
ZUhhbmRsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTFEMTI0MzcxRTZERkQyQTAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlclRhc2tJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZUhhbmRs
ZXJUYXNrSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFEMTI0Mzgx
RTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFEMTI0MzkxRTZERkRCOTAwMkIyODIwIC8q
IEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxRDEyNDM3MUU2REZEMkEwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2tJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZVRhc2tJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQxMjQzODFFNkRGREI5MDAyQjI4
MjAgLyogQVBJVVJMU2NoZW1lVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBUElVUkxTY2hlbWVUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTFEMTI0MzkxRTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJVVJMU2NoZW1lVGFzay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQ4MjFFNzM0QUM4MDAyQjI4MjAgLyogQVBJSFRUUENv
b2tpZVN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUhU
VFBDb29raWVTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRDEyNDgz
MUU3MzRBQzgwMDJCMjgyMCAvKiBBUElIVFRQQ29va2llU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQVBJSFRUUENvb2tpZVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxRDEyNDg0MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9y
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0hUVFBDb29raWVTdG9yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMzOSw3ICszMzM5LDcgQEAKIAkJNTFF
MzUyMDcxODBGNUQ2MTAwRTUzQkU5IC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8u
cGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTM1MjA4MTgwRjVENkIwMEU1
M0JFOSAvKiBEYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2ludC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFMzk5MDUxRDZGNTRDNTAwOUM4ODMxIC8qIFVJR2Ft
ZXBhZFByb3ZpZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1MUU4QjY4RDFFNzEyODczMDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUU4QjY4RDFFNzEy
ODczMDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJVUkxTY2hlbWVUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFFOTQ5OTYxRDc2MUNDNzAwRUM5RUI5IC8qIFVJR2FtZXBhZFByb3ZpZGVy
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFk
UHJvdmlkZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRjA2MEREMTY1
NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBX
ZWJSVENTb2NrZXRNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUlRD
U29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU2ODIsOSArNTY4Miw5IEBACiAJCQkJMUFEODc5MDkxOEI2QzM4QTAwNkNBRkQ3IC8qIFdLVUlE
ZWxlZ2F0ZS5oICovLAogCQkJCTM3NDM5MjU3MThCQzRDNjAwMDFDODY3NSAvKiBXS1VJRGVsZWdh
dGVQcml2YXRlLmggKi8sCiAJCQkJNTFEMTI0MkQxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2No
ZW1lSGFuZGxlci5oICovLAotCQkJCTUxRDEyNDJGMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNj
aGVtZUhhbmRsZXJUYXNrLmggKi8sCi0JCQkJNTFEMTI0MzAxRTZERERENzAwMkIyODIwIC8qIFdL
VVJMU2NoZW1lSGFuZGxlclRhc2subW0gKi8sCi0JCQkJNTFEMTI0MzcxRTZERkQyQTAwMkIyODIw
IC8qIFdLVVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5hbC5oICovLAorCQkJCTUxRDEyNDJGMUU2
RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2suaCAqLywKKwkJCQk1MUQxMjQzMDFFNkRE
REQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrLm1tICovLAorCQkJCTUxRDEyNDM3MUU2REZE
MkEwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2tJbnRlcm5hbC5oICovLAogCQkJCTFBRkEzQUM3
MThFNjFDNjEwMDNDQ0JBRSAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlci5oICovLAogCQkJCTFB
RkEzQUM2MThFNjFDNjEwMDNDQ0JBRSAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlci5tbSAqLywK
IAkJCQkxQUFGMDhBMzE5MjY4MkRBMDBCNjM5MEMgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJJ
bnRlcm5hbC5oICovLApAQCAtNjY1NCw4ICs2NjU0LDggQEAKIAkJCQlCQ0EwRUY3RDEyMzMxRTc4
MDA3RDNDRkIgLyogV2ViVW5kb1N0ZXAuaCAqLywKIAkJCQk1MUQxMjQyQTFFNkQ0MUJDMDAyQjI4
MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcCAqLywKIAkJCQk1MUQxMjQyQjFFNkQ0
MUJDMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmggKi8sCi0JCQkJNTFEMTI0
MjExRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkuY3BwICov
LAotCQkJCTUxRDEyNDIyMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
a1Byb3h5LmggKi8sCisJCQkJNTFEMTI0MjExRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVt
ZVRhc2tQcm94eS5jcHAgKi8sCisJCQkJNTFEMTI0MjIxRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVS
TFNjaGVtZVRhc2tQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJQYWdlOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY4MjEsOCArNjgyMSw4IEBACiAJCQkJN0E5Q0Q4QzIx
Qzc3OUFENjAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdl
cy5pbiAqLywKIAkJCQk1MUQxMjQyNDFFNkQzQ0MzMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFu
ZGxlci5jcHAgKi8sCiAJCQkJNTFEMTI0MjUxRTZEM0NDMzAwMkIyODIwIC8qIFdlYlVSTFNjaGVt
ZUhhbmRsZXIuaCAqLywKLQkJCQk1MUU4QjY4RDFFNzEyODczMDAxQjcxMzIgLyogV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2suY3BwICovLAotCQkJCTUxRDEyNDI3MUU2RDNGMUYwMDJCMjgyMCAvKiBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oICovLAorCQkJCTUxRThCNjhEMUU3MTI4NzMwMDFCNzEz
MiAvKiBXZWJVUkxTY2hlbWVUYXNrLmNwcCAqLywKKwkJCQk1MUQxMjQyNzFFNkQzRjFGMDAyQjI4
MjAgLyogV2ViVVJMU2NoZW1lVGFzay5oICovLAogCQkJKTsKIAkJCXBhdGggPSBVSVByb2Nlc3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjg3OSw4ICs2ODc5LDggQEAKIAkJCQkx
QUZERTY1RjE5NTRFOUIxMDBDNDhGRkEgLyogQVBJU2Vzc2lvblN0YXRlLmNwcCAqLywKIAkJCQkx
QUZERTY2MDE5NTRFOUIxMDBDNDhGRkEgLyogQVBJU2Vzc2lvblN0YXRlLmggKi8sCiAJCQkJMUE0
RDY2NDcxOEEyRDkxQTAwRDgyRTIxIC8qIEFQSVVJQ2xpZW50LmggKi8sCi0JCQkJNTFEMTI0Mzgx
RTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLywKLQkJCQk1
MUQxMjQzOTFFNkRGREI5MDAyQjI4MjAgLyogQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suaCAqLywK
KwkJCQk1MUQxMjQzODFFNkRGREI5MDAyQjI4MjAgLyogQVBJVVJMU2NoZW1lVGFzay5jcHAgKi8s
CisJCQkJNTFEMTI0MzkxRTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2suaCAqLywK
IAkJCQk3Qzg4MkRGQjFDN0U5OUE2MDA2QkY3MzEgLyogQVBJVXNlckNvbnRlbnRXb3JsZC5jcHAg
Ki8sCiAJCQkJN0M4ODJERkMxQzdFOTlBNjAwNkJGNzMxIC8qIEFQSVVzZXJDb250ZW50V29ybGQu
aCAqLywKIAkJCQk3Q0IzNjVBRjFEMzFERDFFMDA3MTU4Q0EgLyogQVBJVXNlckluaXRpYXRlZEFj
dGlvbi5oICovLApAQCAtOTA1MSw3ICs5MDUxLDcgQEAKIAkJCQlCQzQwNzYwRTEyNEZGMDI3MDA2
OEYyMEEgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MkIxMjRG
RjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFE
MTI0MzQxRTZERjY0MzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNTFEMTI0MzUxRTZERjY1MjAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlclRh
c2suaCBpbiBIZWFkZXJzICovLAorCQkJCTUxRDEyNDM1MUU2REY2NTIwMDJCMjgyMCAvKiBXS1VS
TFNjaGVtZVRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkEzQUM5MThFNjFDNjEwMDNDQ0JB
RSAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBRjA4
QTQxOTI2ODJEQTAwQjYzOTBDIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDODlEMkI2MUE2QjBERDkwMDNBNUZERSAvKiBXS1VzZXJDb250
ZW50Q29udHJvbGxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtOTc2Myw3ICs5NzYzLDcg
QEAKIAkJCQkxQUZERTY2MTE5NTRFOUIxMDBDNDhGRkEgLyogQVBJU2Vzc2lvblN0YXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDRTIzMTVFMTIyQzMwQ0EwMEQ1QzM1QSAvKiBBUElVUkxSZXF1
ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTBBMUQzMTIyREQ1NUUwMENDOEM1MCAvKiBB
UElVUkxSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MUQxMjQzQTFFNkUwQUFCMDAy
QjI4MjAgLyogQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTFEMTI0M0ExRTZFMEFBQjAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NFRkE5NjIxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSVVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODgyREZFMUM3RTk5QUMw
MDZCRjczMSAvKiBBUElVc2VyQ29udGVudFdvcmxkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
ODlEMkE2MUE2Nzg5RUEwMDNBNUZERSAvKiBBUElVc2VyU2NyaXB0LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTAzODAsOCArMTAzODAsOCBAQAogCQkJCTYzQzMyQzI1MUU5ODEwRDkwMDY5OUJEMCAv
KiBfV0tHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTI0MzMx
RTZERTZDQTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxRDEyNDJDMUU2RDQxRkQwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVy
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFFOEI2OEUxRTcxMjg3NzAwMUI3MTMyIC8q
IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxRDEyNDIz
MUU2RDM0QTEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUxRThCNjhFMUU3MTI4NzcwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVU
YXNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRDEyNDIzMUU2RDM0QTEwMDJCMjgyMCAvKiBX
ZWJVUkxTY2hlbWVUYXNrUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjA4QUQxOTI2
OTM2NzAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QzA2NUYyQjFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyRGF0YVR5cGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwOEI3MTkyNjlFNkQwMEI2
MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xMDU3NSw3ICsxMDU3NSw3IEBACiAJCQkJQkM0MDc2MkExMjRGRjA0MDAw
NjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MEQx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0MDc2MkMxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5tbSBpbiBTb3VyY2Vz
ICovLAotCQkJCTUxRDEyNDM2MUU2REZCMzkwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJU
YXNrLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTFEMTI0MzYxRTZERkIzOTAwMkIyODIwIC8qIFdL
VVJMU2NoZW1lVGFzay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBRkEzQUM4MThFNjFDNjEwMDND
Q0JBRSAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdD
ODlEMjlGMUE2Nzg1NTQwMDNBNUZERSAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QzI0MTMwODFBQUNGQ0I0MDBBNThDMTUgLyogV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlUmVmLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5k
ZXggZDVhNTE1ZGEyMzEzOGUyMjc2YjExZTU4ODZiYzVkOTViMjg3MGM1ZC4uMzc2OWZmNGI3Y2Q2
NWY3ZTEwOTVmYzI0MGU0OTU2MDc5OTY4ODNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC00Myw3ICs0
Myw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmgiCi0jaW5jbHVkZSAi
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZVRh
c2tQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZUhvc3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtMjYzLDE1ICsyNjMsMTUgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c3RhcnRMb2NhbExvYWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXImIHJlc291
cmNlTG9hZGVyKQogICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChyZXNvdXJjZUxvYWRlci5p
ZGVudGlmaWVyKCksIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIsIHsg
fSkpOwogfQogCi12b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjphZGRVUkxTY2hlbWVIYW5kbGVyVGFz
a1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmIHRhc2spCit2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjphZGRVUkxTY2hlbWVUYXNrUHJveHkoV2ViVVJMU2NoZW1lVGFza1Byb3h5JiB0
YXNrKQogewotICAgIGF1dG8gcmVzdWx0ID0gbV91cmxTY2hlbWVIYW5kbGVyVGFza3MuYWRkKHRh
c2suaWRlbnRpZmllcigpLCAmdGFzayk7CisgICAgYXV0byByZXN1bHQgPSBtX3VybFNjaGVtZVRh
c2tzLmFkZCh0YXNrLmlkZW50aWZpZXIoKSwgJnRhc2spOwogICAgIEFTU0VSVF9VTlVTRUQocmVz
dWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKLXZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnJl
bW92ZVVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkoV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94
eSYgdGFzaykKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZVVSTFNjaGVtZVRhc2tQcm94
eShXZWJVUkxTY2hlbWVUYXNrUHJveHkmIHRhc2spCiB7Ci0gICAgbV91cmxTY2hlbWVIYW5kbGVy
VGFza3MucmVtb3ZlKHRhc2suaWRlbnRpZmllcigpKTsKKyAgICBtX3VybFNjaGVtZVRhc2tzLnJl
bW92ZSh0YXNrLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnJl
bW92ZShSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCkBAIC0yNzksNyArMjc5LDcgQEAg
dm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cmVtb3ZlKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxv
YWRlcikKICAgICBBU1NFUlQocmVzb3VyY2VMb2FkZXIpOwogICAgIExPRyhOZXR3b3JrU2NoZWR1
bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6cmVtb3ZlLCB1cmwgJyVzJyIs
IHJlc291cmNlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIGlm
IChhdXRvIHRhc2sgPSBtX3VybFNjaGVtZUhhbmRsZXJUYXNrcy50YWtlKHJlc291cmNlTG9hZGVy
LT5pZGVudGlmaWVyKCkpKSB7CisgICAgaWYgKGF1dG8gdGFzayA9IG1fdXJsU2NoZW1lVGFza3Mu
dGFrZShyZXNvdXJjZUxvYWRlci0+aWRlbnRpZmllcigpKSkgewogICAgICAgICBBU1NFUlQoIW1f
aW50ZXJuYWxseUZhaWxlZFJlc291cmNlTG9hZGVycy5jb250YWlucyhyZXNvdXJjZUxvYWRlcikp
OwogICAgICAgICB0YXNrLT5zdG9wTG9hZGluZygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5o
CmluZGV4IDUxYjJhODJmNTU4YjVjYzBmNjY0ZjJjZGIyYjgzMTQyZTIzZDQ3ZmEuLjk0Nzg0M2I0
MGY1ZDdkNTcwMTJjNTc1ZGJmM2QxNTAyYjE5MWVkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC0zNCw3ICsz
NCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOwotY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eTsKK2NsYXNzIFdlYlVSTFNj
aGVtZVRhc2tQcm94eTsKIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsK
IAogY2xhc3MgV2ViTG9hZGVyU3RyYXRlZ3kgOiBwdWJsaWMgV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kgewpAQCAtNjYsOCArNjYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNz
Q3Jhc2hlZCgpOwogCi0gICAgdm9pZCBhZGRVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KFdlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmKTsKLSAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZUhhbmRs
ZXJUYXNrUHJveHkoV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSYpOworICAgIHZvaWQgYWRk
VVJMU2NoZW1lVGFza1Byb3h5KFdlYlVSTFNjaGVtZVRhc2tQcm94eSYpOworICAgIHZvaWQgcmVt
b3ZlVVJMU2NoZW1lVGFza1Byb3h5KFdlYlVSTFNjaGVtZVRhc2tQcm94eSYpOwogCiBwcml2YXRl
OgogICAgIHZvaWQgc2NoZWR1bGVMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiwgV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2UqLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpOwpAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIFJ1bkxvb3A6OlRpbWVy
PFdlYkxvYWRlclN0cmF0ZWd5PiBtX2ludGVybmFsbHlGYWlsZWRMb2FkVGltZXI7CiAgICAgCiAg
ICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+PiBtX3dl
YlJlc291cmNlTG9hZGVyczsKLSAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHkqPiBtX3VybFNjaGVtZUhhbmRsZXJUYXNrczsKKyAgICBIYXNoTWFw
PHVuc2lnbmVkIGxvbmcsIFdlYlVSTFNjaGVtZVRhc2tQcm94eSo+IG1fdXJsU2NoZW1lVGFza3M7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiMzk5ODA0OTJkZjcxNTY5MDI3MjYzMzhkNDBj
NWJkOGE4YTRmNmNhLi5kYjYzODNhOGM3NDkwMWE5MGFjZmI2M2ZmMmNhY2YxMzJiMGE4ZTgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01
ODU4LDcgKzU4NTgsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1
aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJgogICAgIEFTU0VSVF9VTlVT
RUQoaWRlbnRpZmllclJlc3VsdCwgaWRlbnRpZmllclJlc3VsdC5pc05ld0VudHJ5KTsKIH0KIAot
dm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50
NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVUYXNrRGlk
UmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNr
SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgYXV0
byogaGFuZGxlciA9IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwLmdldCho
YW5kbGVySWRlbnRpZmllcik7CiAgICAgQVNTRVJUKGhhbmRsZXIpOwpAQCAtNTg2Niw3ICs1ODY2
LDcgQEAgdm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVSZXNwb25z
ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwKICAgICBoYW5kbGVyLT50YXNrRGlkUmVjZWl2
ZVJlc3BvbnNlKHRhc2tJZGVudGlmaWVyLCByZXNwb25zZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
dXJsU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRp
ZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YSkKK3ZvaWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90
IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBkYXRhKQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBtX2lkZW50aWZpZXJU
b1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50aWZpZXIpOwogICAgIEFT
U0VSVChoYW5kbGVyKTsKQEAgLTU4NzQsNyArNTg3NCw3IEBAIHZvaWQgV2ViUGFnZTo6dXJsU2No
ZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwg
dWluCiAgICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVEYXRhKHRhc2tJZGVudGlmaWVyLCBkYXRh
LnNpemUoKSwgZGF0YS5kYXRhKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRs
ZXJUYXNrRGlkQ29tcGxldGUodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRh
c2tJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgV2ViUGFnZTo6
dXJsU2NoZW1lVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50
NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAg
YXV0byogaGFuZGxlciA9IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwLmdl
dChoYW5kbGVySWRlbnRpZmllcik7CiAgICAgQVNTRVJUKGhhbmRsZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjIwZGE0MmYzMGFhMGQxZDA2
NTE1ZjAwNzJiZDA5ZDA4MzA5NjU2Yy4uODgyZTU4ZDg5MzQzOGY5OWE0ZjI0YjhjOWE3MWYyNzMx
ZTkxM2Q5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xMjcwLDkgKzEyNzAsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWdpc3RlclVSTFNj
aGVtZUhhbmRsZXIodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY2hlbWUpOwog
Ci0gICAgdm9pZCB1cmxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRf
dCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVybFNjaGVtZUhhbmRsZXJUYXNrRGlk
UmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lkIHVybFNjaGVtZUhh
bmRsZXJUYXNrRGlkQ29tcGxldGUodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90
IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9p
ZCB1cmxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpOworICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhh
bmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJik7CisgICAgdm9pZCB1cmxTY2hlbWVUYXNrRGlkQ29tcGxldGUodWludDY0X3Qg
aGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJik7CiAKICAgICBSZWZQdHI8V2ViSW1hZ2U+IHNuYXBzaG90QXRTaXpl
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBiaXRtYXBT
aXplLCBTbmFwc2hvdE9wdGlvbnMpOwogICAgIFJlZlB0cjxXZWJJbWFnZT4gc25hcHNob3ROb2Rl
KFdlYkNvcmU6Ok5vZGUmLCBTbmFwc2hvdE9wdGlvbnMsIHVuc2lnbmVkIG1heGltdW1QaXhlbENv
dW50ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggYzcwMWFlOWM1YTUyNjRjYzZiNjI3OWY0MDZlYzU1NTkxYWRlZWNlMS4uMzUxYmQwOWE1ZmVi
MmI1NDFiYmM4YjZlZmQxM2YwMDVlMDRhNTllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ3Miw3ICs0NzIs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFJlZ2lzdGVy
VVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBTdHJpbmcgc2NoZW1lKQogCi0g
ICAgVVJMU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgcHJvdmlk
ZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSkKLSAgICBVUkxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVEYXRh
KHVpbnQ2NF90IHByb3ZpZGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIElQ
Qzo6RGF0YVJlZmVyZW5jZSBkYXRhKQotICAgIFVSTFNjaGVtZUhhbmRsZXJUYXNrRGlkQ29tcGxl
dGUodWludDY0X3QgcHJvdmlkZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBVUkxTY2hlbWVUYXNrRGlkUmVjZWl2
ZVJlc3BvbnNlKHVpbnQ2NF90IHByb3ZpZGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCisgICAgVVJMU2NoZW1l
VGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IHByb3ZpZGVySWRlbnRpZmllciwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIFVSTFNjaGVtZVRh
c2tEaWRDb21wbGV0ZSh1aW50NjRfdCBwcm92aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFu
ZGxlclByb3h5LmNwcAppbmRleCA5NDFiNzk3M2ZlZWIwOGVhMzgxM2JjYzQzMDdkNDUwZTRiZDVh
YmY2Li43ZDAyMzY3OWVhNGU5MGEzYmUxMGNmZjc0MTc1YzAwOGM3OGZmNmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2No
ZW1lSGFuZGxlclByb3h5LmNwcApAQCAtNDgsMTAgKzQ4LDEwIEBAIFdlYlVSTFNjaGVtZUhhbmRs
ZXJQcm94eTo6fldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSgpCiAKIHZvaWQgV2ViVVJMU2NoZW1l
SGFuZGxlclByb3h5OjpzdGFydE5ld1Rhc2soUmVzb3VyY2VMb2FkZXImIGxvYWRlcikKIHsKLSAg
ICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKGxvYWRlci5pZGVudGlmaWVyKCksIHN0ZDo6bWFr
ZV91bmlxdWU8V2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eT4oKnRoaXMsIGxvYWRlcikpOwor
ICAgIGF1dG8gcmVzdWx0ID0gbV90YXNrcy5hZGQobG9hZGVyLmlkZW50aWZpZXIoKSwgc3RkOjpt
YWtlX3VuaXF1ZTxXZWJVUkxTY2hlbWVUYXNrUHJveHk+KCp0aGlzLCBsb2FkZXIpKTsKICAgICBB
U1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViTG9hZGVyU3RyYXRlZ3koKS5hZGRVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KCpyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJT
dHJhdGVneSgpLmFkZFVSTFNjaGVtZVRhc2tQcm94eSgqcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7
CiAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+c3RhcnRMb2FkaW5nKCk7CiB9CiAKQEAgLTgw
LDExICs4MCwxMSBAQCB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6dGFza0RpZENvbXBs
ZXRlKHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBSZQogICAgIGlmICghdGFzaykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3Ry
YXRlZ3koKS5yZW1vdmVVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KCp0YXNrKTsKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLnJlbW92ZVVSTFNjaGVtZVRh
c2tQcm94eSgqdGFzayk7CiAgICAgdGFzay0+ZGlkQ29tcGxldGUoZXJyb3IpOwogfQogCi12b2lk
IFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6dGFza0RpZFN0b3BMb2FkaW5nKFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHkmIHRhc2spCit2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6
dGFza0RpZFN0b3BMb2FkaW5nKFdlYlVSTFNjaGVtZVRhc2tQcm94eSYgdGFzaykKIHsKICAgICBB
U1NFUlQobV90YXNrcy5nZXQodGFzay5pZGVudGlmaWVyKCkpID09ICZ0YXNrKTsKICAgICBtX3Rh
c2tzLnJlbW92ZSh0YXNrLmlkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmgKaW5k
ZXggZjI5NzMwMDMwYmQ3YjExZDIxMzQxNGJhYWU4MDA4Y2M5ZjIxYjUyNy4uYTAzMTc2M2QxYzNh
ZDJhYjljNDZjM2M0MjNjNTIwMThlNmI0MTg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaApA
QCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHkuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Miwx
MyArNTIsMTMgQEAgcHVibGljOgogICAgIHZvaWQgdGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50
NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIHZvaWQgdGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBzaXpl
X3QsIGNvbnN0IHVpbnQ4X3QqIGRhdGEpOwogICAgIHZvaWQgdGFza0RpZENvbXBsZXRlKHVpbnQ2
NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0gICAg
dm9pZCB0YXNrRGlkU3RvcExvYWRpbmcoV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSYpOwor
ICAgIHZvaWQgdGFza0RpZFN0b3BMb2FkaW5nKFdlYlVSTFNjaGVtZVRhc2tQcm94eSYpOwogCiBw
cml2YXRlOgogICAgIFdlYlBhZ2UmIG1fd2ViUGFnZTsKICAgICB1aW50NjRfdCBtX2lkZW50aWZp
ZXIgeyAwIH07CiAKLSAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5Pj4gbV90YXNrczsKKyAgICBIYXNoTWFwPHVuc2ln
bmVkIGxvbmcsIHN0ZDo6dW5pcXVlX3B0cjxXZWJVUkxTY2hlbWVUYXNrUHJveHk+PiBtX3Rhc2tz
OwogfTsgLy8gY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxODFiYTE2YjgzYWM4MDRlNzhlMDY4Mjg3OTZhOWY5NDYwMjg2OTQ2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkuaCIKLQot
I2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya0xvYWRNZXRyaWNzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgotI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLVdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6OldlYlVSTFNjaGVtZUhhbmRsZXJU
YXNrUHJveHkoV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5JiBoYW5kbGVyLCBSZXNvdXJjZUxvYWRl
ciYgbG9hZGVyKQotICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCi0gICAgLCBtX2Nv
cmVMb2FkZXIoJmxvYWRlcikKLSAgICAsIG1fcmVxdWVzdChsb2FkZXIucmVxdWVzdCgpKQotICAg
ICwgbV9pZGVudGlmaWVyKGxvYWRlci5pZGVudGlmaWVyKCkpCi17Ci19Ci0KLXZvaWQgV2ViVVJM
U2NoZW1lSGFuZGxlclRhc2tQcm94eTo6c3RhcnRMb2FkaW5nKCkKLXsKLSAgICBBU1NFUlQobV9j
b3JlTG9hZGVyKTsKLSAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3RhcnRVUkxTY2hlbWVIYW5kbGVyVGFzayhtX3VybFNjaGVtZUhhbmRs
ZXIuaWRlbnRpZmllcigpLCBtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9yZXF1ZXN0KSk7
Ci19Ci0KLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eTo6c3RvcExvYWRpbmcoKQot
ewotICAgIEFTU0VSVChtX2NvcmVMb2FkZXIpOwotICAgIG1fdXJsU2NoZW1lSGFuZGxlci5wYWdl
KCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wVVJMU2NoZW1lSGFuZGxlclRhc2so
bV91cmxTY2hlbWVIYW5kbGVyLmlkZW50aWZpZXIoKSwgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVy
KCkpKTsKLSAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwotCi0gICAgLy8gVGhpcyBsaW5lIHdp
bGwgcmVzdWx0IGluIHRoaXMgYmVpbmcgZGVsZXRlZC4KLSAgICBtX3VybFNjaGVtZUhhbmRsZXIu
dGFza0RpZFN0b3BMb2FkaW5nKCp0aGlzKTsKLX0KLQotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVy
VGFza1Byb3h5OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCi17Ci0gICAgaWYgKCFoYXNMb2FkZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwotfQotCi12b2lkIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6OmRpZFJlY2VpdmVEYXRhKHNpemVfdCBzaXplLCBj
b25zdCB1aW50OF90KiBkYXRhKQotewotICAgIGlmICghaGFzTG9hZGVyKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YSksIHNpemUsIDAsIERhdGFQYXlsb2FkVHlwZTo6RGF0YVBheWxv
YWRCeXRlcyk7Ci19Ci0KLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eTo6ZGlkQ29t
cGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgaWYgKCFoYXNMb2FkZXIo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGVycm9yLmlzTnVsbCgpKQotICAgICAgICBt
X2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoTmV0d29ya0xvYWRNZXRyaWNzKCkpOwotICAg
IGVsc2UKLSAgICAgICAgbV9jb3JlTG9hZGVyLT5kaWRGYWlsKGVycm9yKTsKLQotICAgIG1fY29y
ZUxvYWRlciA9IG51bGxwdHI7Ci19Ci0KLWJvb2wgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94
eTo6aGFzTG9hZGVyKCkKLXsKLSAgICBpZiAobV9jb3JlTG9hZGVyICYmIG1fY29yZUxvYWRlci0+
cmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKLSAgICAgICAgbV9jb3JlTG9hZGVyID0gbnVsbHB0cjsK
LQotICAgIHJldHVybiBtX2NvcmVMb2FkZXI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDE5ZTlmMTUxMmVhNzA5OWZhYzIzYTk4MTBjNjAwM2QyZjg4MTk3ODQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkuaAorKysgL2Rldi9udWxs
CkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNz
IFJlc291cmNlRXJyb3I7Ci1jbGFzcyBSZXNvdXJjZUxvYWRlcjsKLWNsYXNzIFJlc291cmNlUmVz
cG9uc2U7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJVUkxTY2hlbWVIYW5k
bGVyUHJveHk7Ci0KLWNsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkpOwotcHVibGlj
OgotICAgIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkoV2ViVVJMU2NoZW1lSGFuZGxlclBy
b3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXImKTsKLQotICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQotCi0g
ICAgdm9pZCBzdGFydExvYWRpbmcoKTsKLSAgICB2b2lkIHN0b3BMb2FkaW5nKCk7Ci0KLSAgICB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YShzaXplX3QsIGNvbnN0IHVpbnQ4X3QqIGRhdGEpOwot
ICAgIHZvaWQgZGlkQ29tcGxldGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotCi0g
ICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBoYXNMb2FkZXIoKTsKLQotICAgIFdlYlVSTFNjaGVt
ZUhhbmRsZXJQcm94eSYgbV91cmxTY2hlbWVIYW5kbGVyOwotICAgIFJlZlB0cjxXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlcj4gbV9jb3JlTG9hZGVyOwotICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCBtX3JlcXVlc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXI7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE3Njdi
Y2I4ZjQyNzJiODA4ZDZiNTMxNjcwZGY4N2EyMDZjZjIwMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuY3Bw
CkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYlVSTFNjaGVtZVRhc2tQcm94eS5oIgorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgor
I2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1l
SGFuZGxlclByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVVJMU2NoZW1lVGFz
a1Byb3h5OjpXZWJVUkxTY2hlbWVUYXNrUHJveHkoV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5JiBo
YW5kbGVyLCBSZXNvdXJjZUxvYWRlciYgbG9hZGVyKQorICAgIDogbV91cmxTY2hlbWVIYW5kbGVy
KGhhbmRsZXIpCisgICAgLCBtX2NvcmVMb2FkZXIoJmxvYWRlcikKKyAgICAsIG1fcmVxdWVzdChs
b2FkZXIucmVxdWVzdCgpKQorICAgICwgbV9pZGVudGlmaWVyKGxvYWRlci5pZGVudGlmaWVyKCkp
Cit7Cit9CisKK3ZvaWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcoKQorewor
ICAgIEFTU0VSVChtX2NvcmVMb2FkZXIpOworICAgIG1fdXJsU2NoZW1lSGFuZGxlci5wYWdlKCku
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydFVSTFNjaGVtZVRhc2sobV91cmxTY2hl
bWVIYW5kbGVyLmlkZW50aWZpZXIoKSwgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCksIG1fcmVx
dWVzdCkpOworfQorCit2b2lkIFdlYlVSTFNjaGVtZVRhc2tQcm94eTo6c3RvcExvYWRpbmcoKQor
eworICAgIEFTU0VSVChtX2NvcmVMb2FkZXIpOworICAgIG1fdXJsU2NoZW1lSGFuZGxlci5wYWdl
KCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wVVJMU2NoZW1lVGFzayhtX3VybFNj
aGVtZUhhbmRsZXIuaWRlbnRpZmllcigpLCBtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkpOwor
ICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7CisKKyAgICAvLyBUaGlzIGxpbmUgd2lsbCByZXN1
bHQgaW4gdGhpcyBiZWluZyBkZWxldGVkLgorICAgIG1fdXJsU2NoZW1lSGFuZGxlci50YXNrRGlk
U3RvcExvYWRpbmcoKnRoaXMpOworfQorCit2b2lkIFdlYlVSTFNjaGVtZVRhc2tQcm94eTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAg
IGlmICghaGFzTG9hZGVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29yZUxvYWRlci0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKK30KKwordm9pZCBXZWJVUkxTY2hlbWVUYXNr
UHJveHk6OmRpZFJlY2VpdmVEYXRhKHNpemVfdCBzaXplLCBjb25zdCB1aW50OF90KiBkYXRhKQor
eworICAgIGlmICghaGFzTG9hZGVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29yZUxv
YWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSks
IHNpemUsIDAsIERhdGFQYXlsb2FkVHlwZTo6RGF0YVBheWxvYWRCeXRlcyk7Cit9CisKK3ZvaWQg
V2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKK3sKKyAgICBpZiAoIWhhc0xvYWRlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIG1fY29yZUxvYWRlci0+ZGlkRmluaXNoTG9hZGlu
ZyhOZXR3b3JrTG9hZE1ldHJpY3MoKSk7CisgICAgZWxzZQorICAgICAgICBtX2NvcmVMb2FkZXIt
PmRpZEZhaWwoZXJyb3IpOworCisgICAgbV9jb3JlTG9hZGVyID0gbnVsbHB0cjsKK30KKworYm9v
bCBXZWJVUkxTY2hlbWVUYXNrUHJveHk6Omhhc0xvYWRlcigpCit7CisgICAgaWYgKG1fY29yZUxv
YWRlciAmJiBtX2NvcmVMb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCisgICAgICAgIG1f
Y29yZUxvYWRlciA9IG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9jb3JlTG9hZGVyOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MmI2ZDZm
ZWNhMTVmNzk0MDA3MzU3OTI1NTcxNTBhN2M0NmZiMTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZVRhc2tQcm94eS5oCkBA
IC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJl
c291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFJlc291cmNlUmVzcG9u
c2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVy
UHJveHk7CisKK2NsYXNzIFdlYlVSTFNjaGVtZVRhc2tQcm94eSB7CisgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoV2ViVVJMU2NoZW1lVGFza1Byb3h5KTsKK3B1YmxpYzoKKyAgICBXZWJVUkxTY2hl
bWVUYXNrUHJveHkoV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXImKTsKKworICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQorCisgICAgdm9pZCBzdGFydExvYWRpbmcoKTsK
KyAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0
YShzaXplX3QsIGNvbnN0IHVpbnQ4X3QqIGRhdGEpOworICAgIHZvaWQgZGlkQ29tcGxldGUoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworCisgICAgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6CisgICAgYm9v
bCBoYXNMb2FkZXIoKTsKKworICAgIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSYgbV91cmxTY2hl
bWVIYW5kbGVyOworICAgIFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4gbV9jb3JlTG9h
ZGVyOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgdW5zaWdu
ZWQgbG9uZyBtX2lkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308755</attachid>
            <date>2017-05-01 13:13:33 -0700</date>
            <delta_ts>2017-05-01 13:24:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171508-20170501131332.patch</filename>
            <type>text/plain</type>
            <size>106048</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTIyNmZmMjY4YmIyMjZj
YzY5ZWU4MzRlMTYyNDA5NmYyNjgwOGM0Yy4uMTM4NTYxNWY3ZGQ3Y2FmM2YxZmZmMzNiYTM1NWIy
ZDUwOGI1YjZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE3LTA1LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgbmFtZXMgaW4g
V0tVUkxTY2hlbWVIYW5kbGVyL1dLVVJMU2NoZW1lSGFuZGxlclRhc2sgQVBJcy4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMxODI0ODM4PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTUwOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisK
KyAgICAgICAgVGhpcyBwYXRjaDoKKyAgICAgICAgLSBSZW5hbWVzIFdLVVJMU2NoZW1lSGFuZGxl
clRhc2sgdG8gV0tVUkxTY2hlbWVUYXNrCisgICAgICAgIC0gUmVuYW1lcyB0aGUgbWV0aG9kICJz
dGFydFRhc2siIHRvICJzdGFydFVSTFNjaGVtZVRhc2siCisgICAgICAgIC0gUmVuYW1lcyB0aGUg
bWV0aG9kICJzdG9wVGFzayIgdG8gInN0b3BVUkxTY2hlbWVUYXNrIgorCisgICAgICAgIFRvIHRo
b3NlIGVmZmVjdHMgaXQncyBiYXNpY2FsbHkgYSBnbG9iYWwgcmVwbGFjZS4KKworICAgICAgICAq
IFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVj
dC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJVVJMU2NoZW1lVGFzay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcC4KKyAgICAgICAgKEFQ
STo6VVJMU2NoZW1lVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6VVJMU2NoZW1lVGFzazo6
VVJMU2NoZW1lVGFzayk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVUYXNr
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVt
ZUhhbmRsZXJUYXNrLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZUhhbmRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFz
ay5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZUhhbmRsZXJUYXNrLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2subW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2subW0uCisgICAgICAgIChyYWlzZUV4Y2VwdGlv
bklmTmVjZXNzYXJ5KToKKyAgICAgICAgKC1bV0tVUkxTY2hlbWVUYXNrSW1wbCByZXF1ZXN0XSk6
CisgICAgICAgICgtW1dLVVJMU2NoZW1lVGFza0ltcGwgZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgor
ICAgICAgICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIGRpZFJlY2VpdmVEYXRhOl0pOgorICAgICAg
ICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIGRpZEZpbmlzaF0pOgorICAgICAgICAoLVtXS1VSTFNj
aGVtZVRhc2tJbXBsIGRpZEZhaWxXaXRoRXJyb3I6XSk6CisgICAgICAgICgtW1dLVVJMU2NoZW1l
VGFza0ltcGwgX2FwaU9iamVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
UkxTY2hlbWVUYXNrSW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmguCisgICAgICAg
IChXZWJLaXQ6OndyYXBwZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hl
bWVIYW5kbGVyQ29jb2EuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1l
SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2E6OnBsYXRmb3JtU3RhcnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFu
ZGxlckNvY29hOjpwbGF0Zm9ybVN0b3BUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVt
ZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BVUkxTY2hlbWVUYXNr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZUhhbmRsZXJU
YXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wVVJMU2No
ZW1lSGFuZGxlclRhc2spOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lSGFuZGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVIYW5kbGVyVGFzay5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRh
c2spOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnN0b3ApOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2suaC4KKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFz
azo6aWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnJlcXVl
c3QpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lVGFza1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZVVSTFNjaGVtZVRhc2tQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVUYXNr
RGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVUYXNr
RGlkQ29tcGxldGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVy
VGFza0RpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnVybFNjaGVtZUhhbmRsZXJUYXNrRGlkUmVjZWl2ZURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnN0YXJ0TmV3VGFzayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6dGFza0RpZENvbXBsZXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclByb3h5Ojp0YXNrRGlkU3RvcExvYWRpbmcp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1l
VGFza1Byb3h5OjpXZWJVUkxTY2hlbWVUYXNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
UkxTY2hlbWVUYXNrUHJveHk6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVS
TFNjaGVtZVRhc2tQcm94eTo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxT
Y2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVSTFNjaGVtZVRhc2tQcm94eTo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMU2NoZW1lVGFza1Byb3h5OjpoYXNMb2FkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmguCisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6cmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6aWRlbnRpZmllcik6CisKIDIwMTctMDUtMDEg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIEFkZCBhdXRvbWF0aW9uIHNlc3Npb24gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDRm
Y2VlMWI4M2M3MmQ5YzQzNGI5ZDBiYmRkYThjMDQ1OTQ3ODA2MTUuLjk3N2I0NzM4M2FlZmE2NzE1
OGViOWEzYWUxN2Q5MTgwMDIyMjEyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0zMjcsNyAr
MzI3LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAotICAgIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVy
VGFzay5jcHAKKyAgICBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKICAgICBVSVByb2Nl
c3MvV2ViVmlicmF0aW9uUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlZpYnJhdGlvblBy
b3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCkBAIC0zNDQs
NyArMzQ0LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQVBJT3BlblBhbmVs
UGFyYW1ldGVycy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0FQSVNlc3Npb25TdGF0ZS5jcHAKLSAg
ICBVSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQVBJVVJMU2NoZW1lVGFzay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250
ZW50V29ybGQuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwCkBAIC01ODUsNyArNTg1LDcgQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuY3BwCiAgICAgV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKLSAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcAogICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJVbmRvU3RlcC5jcHAKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0
LmgKaW5kZXggNzNkYThmOGY3OTA5NGEwYjZlNjliMzZkMmYxYmMyMWQ5YjM1M2FlNC4uYjgyNmFj
ZmUyNjJiNzVkNjRjZDc5MjBhMGVkODMyZGEyNzRiN2NlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0FQSU9iamVjdC5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHVibGljOgogICAgICAgICBSdW5K
YXZhU2NyaXB0Q29uZmlybVJlc3VsdExpc3RlbmVyLAogICAgICAgICBSdW5KYXZhU2NyaXB0UHJv
bXB0UmVzdWx0TGlzdGVuZXIsCiAgICAgICAgIFRleHRDaGVja2VyLAotICAgICAgICBVUkxTY2hl
bWVIYW5kbGVyVGFzaywKKyAgICAgICAgVVJMU2NoZW1lVGFzaywKICAgICAgICAgVXNlckNvbnRl
bnRDb250cm9sbGVyLAogICAgICAgICBVc2VyQ29udGVudFdvcmxkLAogICAgICAgICBVc2VySW5p
dGlhdGVkQWN0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0FQ
SU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KaW5k
ZXggMjU4ZjQyYmU1MmI2Mjc3MmQ2NWJkOTAwOTM3ZjNmZjJhNDNhZDI4Yi4uMTdkN2UzNzQwMzI0
YmVjMDVkNWRjMTdiNTdiNWU2ZTVlNmU2MjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29j
b2EvQVBJT2JqZWN0Lm1tCkBAIC01NCw3ICs1NCw3IEBACiAjaW1wb3J0ICJXS1ByZWZlcmVuY2Vz
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vzc1Bvb2xJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tTZWN1cml0eU9yaWdpbkludGVybmFsLmgiCi0jaW1wb3J0ICJXS1VSTFNjaGVtZUhhbmRsZXJU
YXNrSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLVVJMU2NoZW1lVGFza0ludGVybmFsLmgiCiAjaW1w
b3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS1VzZXJT
Y3JpcHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVySW50ZXJuYWwuaCIKQEAgLTIzOCw4ICsyMzgsOCBAQCB2b2lkKiBPYmplY3Q6
Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwZSB0eXBlKQogICAgICAgICB3cmFwcGVyID0gTlNB
bGxvY2F0ZU9iamVjdChbV0tOU1VSTFJlcXVlc3QgY2xhc3NdLCBzaXplLCBudWxscHRyKTsKICAg
ICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFR5cGU6OlVSTFNjaGVtZUhhbmRsZXJUYXNrOgotICAg
ICAgICB3cmFwcGVyID0gW1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsIGFsbG9jXTsKKyAgICBj
YXNlIFR5cGU6OlVSTFNjaGVtZVRhc2s6CisgICAgICAgIHdyYXBwZXIgPSBbV0tVUkxTY2hlbWVU
YXNrSW1wbCBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBUeXBlOjpVc2VyQ29u
dGVudENvbnRyb2xsZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4YzQyMDFjOTE1MjA0MzNlZjE0ZjNmNzZkOTY4Y2U1NGE2NDgwYTJmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJB
UElVUkxTY2hlbWVIYW5kbGVyVGFzay5oIgotCi0jaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxl
ci5oIgotI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0KLW5hbWVzcGFjZSBB
UEkgewotCi1SZWY8VVJMU2NoZW1lSGFuZGxlclRhc2s+IFVSTFNjaGVtZUhhbmRsZXJUYXNrOjpj
cmVhdGUoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYgd2ViVVJMU2NoZW1lSGFuZGxl
clRhc2spCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVVJMU2NoZW1lSGFuZGxlclRhc2so
d2ViVVJMU2NoZW1lSGFuZGxlclRhc2spKTsKLX0KLQotVVJMU2NoZW1lSGFuZGxlclRhc2s6OlVS
TFNjaGVtZUhhbmRsZXJUYXNrKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smIHdlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrKQotICAgIDogbV93ZWJVUkxTY2hlbWVIYW5kbGVyVGFzayh3ZWJV
UkxTY2hlbWVIYW5kbGVyVGFzaykKLXsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZTMxNTA4ZmQwOWUyNWE5NDNlY2I3YzQ0ZTkyMmFkNjk2ZjA5YWMz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suaAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrOwotfQotCi1uYW1lc3BhY2UgQVBJIHsKLQotY2xhc3MgVVJMU2NoZW1lSGFu
ZGxlclRhc2sgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlVSTFNjaGVt
ZUhhbmRsZXJUYXNrPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVUkxTY2hlbWVIYW5kbGVy
VGFzaz4gY3JlYXRlKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smKTsKLQotICAgIFdl
YktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smIHRhc2soKSB7IHJldHVybiBtX3dlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgVVJMU2NoZW1lSGFuZGxl
clRhc2soV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpOwotCi0gICAgUmVmPFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s+IG1fd2ViVVJMU2NoZW1lSGFuZGxlclRhc2s7Ci19
OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNj
aGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVU
YXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYTliOGM3NGZlZGZiNDRhNDM5Njc3ZTY3Mjc0YWIzODU3N2Nk
NDg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
UkxTY2hlbWVUYXNrLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSVVSTFNjaGVtZVRhc2suaCIKKworI2luY2x1ZGUgIldl
YlVSTFNjaGVtZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrLmgiCisKK25h
bWVzcGFjZSBBUEkgeworCitSZWY8VVJMU2NoZW1lVGFzaz4gVVJMU2NoZW1lVGFzazo6Y3JlYXRl
KFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzayYgd2ViVVJMU2NoZW1lVGFzaykKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBVUkxTY2hlbWVUYXNrKHdlYlVSTFNjaGVtZVRhc2spKTsKK30KKwor
VVJMU2NoZW1lVGFzazo6VVJMU2NoZW1lVGFzayhXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2smIHdl
YlVSTFNjaGVtZVRhc2spCisgICAgOiBtX3dlYlVSTFNjaGVtZVRhc2sod2ViVVJMU2NoZW1lVGFz
aykKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNj
aGVtZVRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODU2MGQ5YzEwYjNkMWRjMmVjODZjZmYwYTM2NzE3MWRi
NzgxNzdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVUkxTY2hlbWVUYXNrLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xh
c3MgV2ViVVJMU2NoZW1lVGFzazsKK30KKworbmFtZXNwYWNlIEFQSSB7CisKK2NsYXNzIFVSTFNj
aGVtZVRhc2sgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlVSTFNjaGVt
ZVRhc2s+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFVSTFNjaGVtZVRhc2s+IGNyZWF0ZShX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2smKTsKKworICAgIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFz
ayYgdGFzaygpIHsgcmV0dXJuIG1fd2ViVVJMU2NoZW1lVGFzay5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFVSTFNjaGVtZVRhc2soV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrJik7CisKKyAgICBS
ZWY8V2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrPiBtX3dlYlVSTFNjaGVtZVRhc2s7Cit9OworCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lSGFuZGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNj
aGVtZUhhbmRsZXIuaAppbmRleCBjNDMxYmM1MDU3YzUyZTBkOTkzZGYzNTgwNjM3N2VlOTY4ZTMz
ZTE3Li45M2U3N2M3MTRmY2ZkOGFlNzNiMjYwZjZmNjdlYTI2MmE4MDBiNDExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5k
bGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBjbGFz
cyBXS1dlYlZpZXc7Ci1AcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyVGFzazsKK0Bwcm90b2Nv
bCBXS1VSTFNjaGVtZVRhc2s7CiAKIC8qISBBIGNsYXNzIGNvbmZvcm1pbmcgdG8gdGhlIFdLVVJM
U2NoZW1lSGFuZGxlciBwcm90b2NvbCBwcm92aWRlcyBtZXRob2RzIGZvcgogIGxvYWRpbmcgcmVz
b3VyY2VzIHdpdGggVVJMIHNjaGVtZXMgdGhhdCBXZWJLaXQgZG9lc24ndCBrbm93IGhvdyB0byBo
YW5kbGUgaXRzZWxmLgpAQCAtNDMsMTkgKzQzLDE5IEBAIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiAvKiEgQGFic3RyYWN0IE5vdGlmaWVzIHlv
dXIgYXBwIHRvIHN0YXJ0IGxvYWRpbmcgdGhlIGRhdGEgZm9yIGEgcGFydGljdWxhciByZXNvdXJj
ZSAKICByZXByZXNlbnRlZCBieSB0aGUgVVJMIHNjaGVtZSBoYW5kbGVyIHRhc2suCiAgQHBhcmFt
IHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBtZXRob2QuCi0gQHBhcmFtIHVybFNj
aGVtZUhhbmRsZXJUYXNrIFRoZSB0YXNrIHRoYXQgeW91ciBhcHAgc2hvdWxkIHN0YXJ0IGxvYWRp
bmcgZGF0YSBmb3IuCisgQHBhcmFtIHVybFNjaGVtZVRhc2sgVGhlIHRhc2sgdGhhdCB5b3VyIGFw
cCBzaG91bGQgc3RhcnQgbG9hZGluZyBkYXRhIGZvci4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VGFzazooaWQgPFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+
KXVybFNjaGVtZUhhbmRsZXJUYXNrOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJsU2NoZW1lVGFz
azsKIAogLyohIEBhYnN0cmFjdCBOb3RpZmllcyB5b3VyIGFwcCB0byBzdG9wIGhhbmRsaW5nIGEg
VVJMIHNjaGVtZSBoYW5kbGVyIHRhc2suCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGlu
dm9raW5nIHRoZSBtZXRob2QuCi0gQHBhcmFtIHVybFNjaGVtZUhhbmRsZXJUYXNrIFRoZSB0YXNr
IHRoYXQgeW91ciBhcHAgc2hvdWxkIHN0b3AgaGFuZGxpbmcuCisgQHBhcmFtIHVybFNjaGVtZVRh
c2sgVGhlIHRhc2sgdGhhdCB5b3VyIGFwcCBzaG91bGQgc3RvcCBoYW5kbGluZy4KICBAZGlzY3Vz
c2lvbiBBZnRlciB5b3VyIGFwcCBpcyB0b2xkIHRvIHN0b3AgbG9hZGluZyBkYXRhIGZvciBhIFVS
TCBzY2hlbWUgaGFuZGxlciB0YXNrCiAgaXQgbXVzdCBub3QgcGVyZm9ybSBhbnkgY2FsbGJhY2tz
IGZvciB0aGF0IHRhc2suCiAgQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIGFueSBjYWxs
YmFja3MgYXJlIG1hZGUgb24gdGhlIFVSTCBzY2hlbWUgaGFuZGxlciB0YXNrCiAgYWZ0ZXIgeW91
ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcgZm9yIGl0LgogICovCi0tICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RvcFRhc2s6KGlkIDxXS1VSTFNjaGVtZUhh
bmRsZXJUYXNrPil1cmxTY2hlbWVIYW5kbGVyVGFzazsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBzdG9wVVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJs
U2NoZW1lVGFzazsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2suaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyOWZlMzk2NWU4YjM4ZTAwNzYyYzU5MzYwYjdlZWJmZmI1NmY1YTI4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdlYktpdC9X
S0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1XS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQotQHByb3RvY29sIFdL
VVJMU2NoZW1lSGFuZGxlclRhc2sgPE5TT2JqZWN0PgotCi0vKiEgQGFic3RyYWN0IFRoZSByZXF1
ZXN0IHRvIGxvYWQgZm9yIHRoaXMgdGFzay4KLSAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBjb3B5KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7Ci0KLS8qISBAYWJzdHJhY3QgU2V0
IHRoZSBjdXJyZW50IHJlc3BvbnNlIG9iamVjdCBmb3IgdGhlIHRhc2suCi0gQHBhcmFtIHJlc3Bv
bnNlIFRoZSByZXNwb25zZSB0byB1c2UuCi0gQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgbXVzdCBi
ZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBmb3IgZWFjaCBVUkwgc2NoZW1lIGhhbmRsZXIgdGFzay4K
LSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIGEgbmV3IHJl
c3BvbnNlIG9iamVjdCBhZnRlciB0aGUgdGFzayBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4K
LSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0
byBzdG9wIGxvYWRpbmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhh
bmRsZXIgb2JqZWN0LgotICovCi0tICh2b2lkKWRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNw
b25zZSAqKXJlc3BvbnNlOwotCi0vKiEgQGFic3RyYWN0IEFkZCByZWNlaXZlZCBkYXRhIHRvIHRo
ZSB0YXNrLgotIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGFkZC4KLSBAZGlzY3Vzc2lvbiBBZnRl
ciBhIFVSTCBzY2hlbWUgaGFuZGxlciB0YXNrJ3MgZmluYWwgcmVzcG9uc2Ugb2JqZWN0IGlzIHJl
Y2VpdmVkIHlvdSBzaG91bGQKLSBzdGFydCBzZW5kaW5nIGl0IGRhdGEuCi0gRWFjaCB0aW1lIHRo
aXMgbWV0aG9kIGlzIGNhbGxlZCB0aGUgZGF0YSB5b3Ugc2VuZCB3aWxsIGJlIGFwcGVuZGVkIHRv
IGFsbCBwcmV2aW91cyBkYXRhLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3Ug
dHJ5IHRvIHNlbmQgdGhlIHRhc2sgYW55IGRhdGEgYmVmb3JlIHNlbmRpbmcgaXQgYSByZXNwb25z
ZS4KLSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIHRoZSB0
YXNrIGFueSBkYXRhIGFmdGVyIHRoZSB0YXNrIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgot
IEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRv
IHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFu
ZGxlciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGE7
Ci0KLS8qISBAYWJzdHJhY3QgTWFyayB0aGUgdGFzayBhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVk
LgotIEBkaXNjdXNzaW9uIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRv
IGZpbmlzaCB0aGUgdGFzayBiZWZvcmUgc2VuZGluZyBpdCBhIHJlc3BvbnNlLgotIEFuIGV4Y2Vw
dGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIG1hcmsgYSB0YXNrIGNvbXBsZXRlZCBh
ZnRlciBpdCBoYXMgYWxyZWFkeSBiZWVuIG1hcmtlZCBjb21wbGV0ZWQgb3IgZmFpbGVkLgotIEFu
IGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0
b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxl
ciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkRmluaXNoOwotCi0vKiEgQGFic3RyYWN0IE1hcmsg
dGhlIHRhc2sgYXMgZmFpbGVkLgotIEBwYXJhbSBlcnJvciBBIGRlc2NyaXB0aW9uIG9mIHRoZSBl
cnJvciB0aGF0IGNhdXNlZCB0aGUgdGFzayB0byBmYWlsLgotIEBkaXNjdXNzaW9uICBBbiBleGNl
cHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBtYXJrIGEgdGFzayBmYWlsZWQgYWZ0
ZXIgaXQgaGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgY29tcGxldGVkIG9yIGZhaWxlZC4KLSBBbiBl
eGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9w
IGxvYWRpbmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIg
b2JqZWN0LgotICovCi0tICh2b2lkKWRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsK
LQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2su
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxl
clRhc2subW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1MmYxMzFiZjZiYjZiNDBm
OTI1M2NlOTg4ZmFkYzE4MWViODVmODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNj
aGVtZUhhbmRsZXJUYXNrLm1tCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV0tVUkxTY2hlbWVIYW5kbGVyVGFz
a0ludGVybmFsLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi0jaW5jbHVkZSAiV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2suaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotc3RhdGljIHZvaWQg
cmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
OjpFeGNlcHRpb25UeXBlIGV4Y2VwdGlvblR5cGUpCi17Ci0gICAgc3dpdGNoIChleGNlcHRpb25U
eXBlKSB7Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRp
b25UeXBlOjpOb25lOgotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ6Ci0gICAg
ICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBm
b3JtYXQ6QCJUaGlzIHRhc2sgaGFzIGFscmVhZHkgYmVlbiBzdG9wcGVkIl07Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9u
VHlwZTo6Q29tcGxldGVBbHJlYWR5Q2FsbGVkOgotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6
TlNJbnRlcm5hbEluY29uc2lzdGVuY3lFeGNlcHRpb24gZm9ybWF0OkAiW1dLVVJMU2NoZW1lSGFu
ZGxlclRhc2sgdGFza0RpZENvbXBsZXRlV2l0aEVycm9yOl0gaGFzIGFscmVhZHkgYmVlbiBjYWxs
ZWQgZm9yIHRoaXMgdGFzayJdOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYktpdDo6V2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5U2VudDoKLSAg
ICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0aW9u
IGZvcm1hdDpAIltXS1VSTFNjaGVtZUhhbmRsZXJUYXNrIHRhc2tEaWRSZWNlaXZlRGF0YTpdIGhh
cyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciB0aGlzIHRhc2siXTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpO
b1Jlc3BvbnNlU2VudDoKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNv
bnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIk5vIHJlc3BvbnNlIGhhcyBiZWVuIHNlbnQgZm9y
IHRoaXMgdGFzayJdOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLUBpbXBsZW1lbnRhdGlv
biBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW1wbAotCi0tIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0
Ci17Ci0gICAgcmV0dXJuIF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLnJlcXVlc3QoKS5u
c1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSk7Ci19Ci0KLS0gKHZvaWQpZGlkUmVjZWl2
ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UKLXsKLSAgICBhdXRvIHJlc3VsdCA9
IF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25z
ZSk7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOwotfQotCi0tICh2b2lk
KWRpZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhCi17Ci0gICAgYXV0byByZXN1bHQgPSBfdXJs
U2NoZW1lSGFuZGxlclRhc2stPnRhc2soKS5kaWRSZWNlaXZlRGF0YShXZWJDb3JlOjpTaGFyZWRC
dWZmZXI6OmNyZWF0ZShkYXRhKSk7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1
bHQpOwotfQotCi0tICh2b2lkKWRpZEZpbmlzaAotewotICAgIGF1dG8gcmVzdWx0ID0gX3VybFNj
aGVtZUhhbmRsZXJUYXNrLT50YXNrKCkuZGlkQ29tcGxldGUoeyB9KTsKLSAgICByYWlzZUV4Y2Vw
dGlvbklmTmVjZXNzYXJ5KHJlc3VsdCk7Ci19Ci0KLS0gKHZvaWQpZGlkRmFpbFdpdGhFcnJvcjoo
TlNFcnJvciAqKWVycm9yCi17Ci0gICAgYXV0byByZXN1bHQgPSBfdXJsU2NoZW1lSGFuZGxlclRh
c2stPnRhc2soKS5kaWRDb21wbGV0ZShlcnJvcik7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vz
c2FyeShyZXN1bHQpOwotfQotCi0jcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVt
ZW50YXRpb24KLQotLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKLXsKLSAgICByZXR1cm4gKl91
cmxTY2hlbWVIYW5kbGVyVGFzazsKLX0KLQotQGVuZAotCi0jZW5kaWYgLy8gI2lmIFdLX0FQSV9F
TkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50ZXJuYWwuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjI0NjgwMWY1ODM2NjZjYTMxNTgxNjA2YWQyODYwOGY2MmE0OGRl
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5h
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
IldLVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBv
cnQgIkFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0jaW1wb3J0ICJXS09iamVjdC5oIgotCi1A
aW50ZXJmYWNlIFdLVVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsIDogTlNPYmplY3QgPFdLVVJMU2No
ZW1lSGFuZGxlclRhc2s+Ci1AZW5kCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1pbmxpbmUgaWQ8
V0tVUkxTY2hlbWVIYW5kbGVyVGFzaz4gd3JhcHBlcihBUEk6OlVSTFNjaGVtZUhhbmRsZXJUYXNr
JiB1cmxTY2hlbWVIYW5kbGVyVGFzaykKLXsKLSAgICBBU1NFUlQoW3VybFNjaGVtZUhhbmRsZXJU
YXNrLndyYXBwZXIoKSBpc0tpbmRPZkNsYXNzOltXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW1wbCBj
bGFzc11dKTsKLSAgICByZXR1cm4gKGlkPFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+KXVybFNjaGVt
ZUhhbmRsZXJUYXNrLndyYXBwZXIoKTsKLX0KLQotfQotCi1AaW50ZXJmYWNlIFdLVVJMU2NoZW1l
SGFuZGxlclRhc2tJbXBsICgpIDxXS09iamVjdD4gewotQHBhY2thZ2UKLSAgICBBUEk6Ok9iamVj
dFN0b3JhZ2U8QVBJOjpVUkxTY2hlbWVIYW5kbGVyVGFzaz4gX3VybFNjaGVtZUhhbmRsZXJUYXNr
OwotfQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZkMDA1YjQ3NzYwMjU0OTVkYWRlYWFhYzU1OGU1MmZkYjE0NGQ0YjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5o
CkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK0Bwcm90b2NvbCBXS1VSTFNjaGVt
ZVRhc2sgPE5TT2JqZWN0PgorCisvKiEgQGFic3RyYWN0IFRoZSByZXF1ZXN0IHRvIGxvYWQgZm9y
IHRoaXMgdGFzay4KKyAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBO
U1VSTFJlcXVlc3QgKnJlcXVlc3Q7CisKKy8qISBAYWJzdHJhY3QgU2V0IHRoZSBjdXJyZW50IHJl
c3BvbnNlIG9iamVjdCBmb3IgdGhlIHRhc2suCisgQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNwb25z
ZSB0byB1c2UuCisgQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYXQgbGVh
c3Qgb25jZSBmb3IgZWFjaCBVUkwgc2NoZW1lIGhhbmRsZXIgdGFzay4KKyBBbiBleGNlcHRpb24g
d2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIGEgbmV3IHJlc3BvbnNlIG9iamVjdCBh
ZnRlciB0aGUgdGFzayBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyBBbiBleGNlcHRpb24g
d2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcg
dGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIgb2JqZWN0Lgor
ICovCistICh2b2lkKWRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNl
OworCisvKiEgQGFic3RyYWN0IEFkZCByZWNlaXZlZCBkYXRhIHRvIHRoZSB0YXNrLgorIEBwYXJh
bSBkYXRhIFRoZSBkYXRhIHRvIGFkZC4KKyBAZGlzY3Vzc2lvbiBBZnRlciBhIFVSTCBzY2hlbWUg
aGFuZGxlciB0YXNrJ3MgZmluYWwgcmVzcG9uc2Ugb2JqZWN0IGlzIHJlY2VpdmVkIHlvdSBzaG91
bGQKKyBzdGFydCBzZW5kaW5nIGl0IGRhdGEuCisgRWFjaCB0aW1lIHRoaXMgbWV0aG9kIGlzIGNh
bGxlZCB0aGUgZGF0YSB5b3Ugc2VuZCB3aWxsIGJlIGFwcGVuZGVkIHRvIGFsbCBwcmV2aW91cyBk
YXRhLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIHNlbmQgdGhl
IHRhc2sgYW55IGRhdGEgYmVmb3JlIHNlbmRpbmcgaXQgYSByZXNwb25zZS4KKyBBbiBleGNlcHRp
b24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIHRoZSB0YXNrIGFueSBkYXRhIGFm
dGVyIHRoZSB0YXNrIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorIEFuIGV4Y2VwdGlvbiB3
aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGluZyB0
aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmplY3QuCisg
Ki8KKy0gKHZvaWQpZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGE7CisKKy8qISBAYWJzdHJh
Y3QgTWFyayB0aGUgdGFzayBhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLgorIEBkaXNjdXNzaW9u
IEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIGZpbmlzaCB0aGUgdGFz
ayBiZWZvcmUgc2VuZGluZyBpdCBhIHJlc3BvbnNlLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRo
cm93biBpZiB5b3UgdHJ5IHRvIG1hcmsgYSB0YXNrIGNvbXBsZXRlZCBhZnRlciBpdCBoYXMgYWxy
ZWFkeSBiZWVuIG1hcmtlZCBjb21wbGV0ZWQgb3IgZmFpbGVkLgorIEFuIGV4Y2VwdGlvbiB3aWxs
IGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlz
IHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmplY3QuCisgKi8K
Ky0gKHZvaWQpZGlkRmluaXNoOworCisvKiEgQGFic3RyYWN0IE1hcmsgdGhlIHRhc2sgYXMgZmFp
bGVkLgorIEBwYXJhbSBlcnJvciBBIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciB0aGF0IGNhdXNl
ZCB0aGUgdGFzayB0byBmYWlsLgorIEBkaXNjdXNzaW9uICBBbiBleGNlcHRpb24gd2lsbCBiZSB0
aHJvd24gaWYgeW91IHRyeSB0byBtYXJrIGEgdGFzayBmYWlsZWQgYWZ0ZXIgaXQgaGFzIGFscmVh
ZHkgYmVlbiBtYXJrZWQgY29tcGxldGVkIG9yIGZhaWxlZC4KKyBBbiBleGNlcHRpb24gd2lsbCBi
ZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcgdGhpcyB0
YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIgb2JqZWN0LgorICovCist
ICh2b2lkKWRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKKworQGVuZAorCitOU19B
U1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZWY2ODlk
NzRlMWQwYWI1MmIxYmZmNjc1ZjZmZTBhZGRkMDYzMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbQpAQCAtMCww
ICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1VS
TFNjaGVtZVRhc2tJbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2luY2x1ZGUg
IldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIHZv
aWQgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OkV4
Y2VwdGlvblR5cGUgZXhjZXB0aW9uVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGV4Y2VwdGlvblR5cGUp
IHsKKyAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9u
ZToKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpF
eGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJUaGlzIHRhc2sg
aGFzIGFscmVhZHkgYmVlbiBzdG9wcGVkIl07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
S2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpDb21wbGV0ZUFscmVhZHlDYWxs
ZWQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4
Y2VwdGlvbiBmb3JtYXQ6QCJbV0tVUkxTY2hlbWVUYXNrIHRhc2tEaWRDb21wbGV0ZVdpdGhFcnJv
cjpdIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciB0aGlzIHRhc2siXTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkRh
dGFBbHJlYWR5U2VudDoKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNv
bnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIltXS1VSTFNjaGVtZVRhc2sgdGFza0RpZFJlY2Vp
dmVEYXRhOl0gaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgZm9yIHRoaXMgdGFzayJdOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlw
ZTo6Tm9SZXNwb25zZVNlbnQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFs
SW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJObyByZXNwb25zZSBoYXMgYmVlbiBzZW50
IGZvciB0aGlzIHRhc2siXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitAaW1wbGVtZW50
YXRpb24gV0tVUkxTY2hlbWVUYXNrSW1wbAorCistIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0Cit7
CisgICAgcmV0dXJuIF91cmxTY2hlbWVUYXNrLT50YXNrKCkucmVxdWVzdCgpLm5zVVJMUmVxdWVz
dChEb05vdFVwZGF0ZUhUVFBCb2R5KTsKK30KKworLSAodm9pZClkaWRSZWNlaXZlUmVzcG9uc2U6
KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZQoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVt
ZVRhc2stPnRhc2soKS5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOworICAgIHJhaXNlRXhj
ZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKworLSAodm9pZClkaWRSZWNlaXZlRGF0YToo
TlNEYXRhICopZGF0YQoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRhc2stPnRhc2so
KS5kaWRSZWNlaXZlRGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKSk7Cisg
ICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOworfQorCistICh2b2lkKWRpZEZp
bmlzaAoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRhc2stPnRhc2soKS5kaWRDb21w
bGV0ZSh7IH0pOworICAgIHJhaXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKwor
LSAodm9pZClkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAgICBhdXRvIHJl
c3VsdCA9IF91cmxTY2hlbWVUYXNrLT50YXNrKCkuZGlkQ29tcGxldGUoZXJyb3IpOworICAgIHJh
aXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKworI3ByYWdtYSBtYXJrIFdLT2Jq
ZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0
Cit7CisgICAgcmV0dXJuICpfdXJsU2NoZW1lVGFzazsKK30KKworQGVuZAorCisjZW5kaWYgLy8g
I2lmIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza0ludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZk
NjFmZjUwN2ZiMTUzYWEzMzg1YjNkZDc0NzJiNTBmZjBiZDkwYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrSW50ZXJu
YWwuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tVUkxTY2hlbWVU
YXNrLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJBUElVUkxTY2hlbWVUYXNr
LmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgorCitAaW50ZXJmYWNlIFdLVVJMU2NoZW1lVGFza0lt
cGwgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVUYXNrPgorQGVuZAorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworaW5saW5lIGlkPFdLVVJMU2NoZW1lVGFzaz4gd3JhcHBlcihBUEk6OlVSTFNjaGVtZVRh
c2smIHVybFNjaGVtZVRhc2spCit7CisgICAgQVNTRVJUKFt1cmxTY2hlbWVUYXNrLndyYXBwZXIo
KSBpc0tpbmRPZkNsYXNzOltXS1VSTFNjaGVtZVRhc2tJbXBsIGNsYXNzXV0pOworICAgIHJldHVy
biAoaWQ8V0tVUkxTY2hlbWVUYXNrPil1cmxTY2hlbWVUYXNrLndyYXBwZXIoKTsKK30KKworfQor
CitAaW50ZXJmYWNlIFdLVVJMU2NoZW1lVGFza0ltcGwgKCkgPFdLT2JqZWN0PiB7CitAcGFja2Fn
ZQorICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OlVSTFNjaGVtZVRhc2s+IF91cmxTY2hlbWVU
YXNrOworfQorQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2Eu
aAppbmRleCBkYWVhYzQ1MDkxMDA4MDg5ZTEzM2I0NmQ4ZWVmYTc4NThkZDk0Mzc3Li4yNTkwYWYz
MzAxMzRhMGZjMGM3OTgwN2IyNTU5MDRiNjcwNGU5YzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5oCkBA
IC0zMSw3ICszMSw3IEBACiBAcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyOwogCiBuYW1lc3Bh
Y2UgQVBJIHsKLWNsYXNzIFVSTFNjaGVtZUhhbmRsZXJUYXNrOworY2xhc3MgVVJMU2NoZW1lVGFz
azsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NSwxMSArNDUsMTEgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EoaWQgPFdLVVJMU2NoZW1lSGFu
ZGxlcj4pOwogCi0gICAgdm9pZCBwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJV
UkxTY2hlbWVIYW5kbGVyVGFzayYpIGZpbmFsOwotICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhX
ZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpIGZpbmFsOworICAgIHZvaWQg
cGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpIGZpbmFs
OworICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVU
YXNrJikgZmluYWw7CiAKICAgICBSZXRhaW5QdHI8aWQgPFdLVVJMU2NoZW1lSGFuZGxlcj4+IG1f
YXBpSGFuZGxlcjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8QVBJOjpVUkxTY2hlbWVIYW5k
bGVyVGFzaz4+IG1fYXBpVGFza3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmPEFQSTo6VVJM
U2NoZW1lVGFzaz4+IG1fYXBpVGFza3M7CiAKIH07IC8vIGNsYXNzIFdlYlVSTFNjaGVtZUhhbmRs
ZXIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJV
UkxTY2hlbWVIYW5kbGVyQ29jb2EubW0KaW5kZXggNjM4MzkxNDU1MGRkYzE4NDY2MzczMjU1ZDIz
OGJiYmZiYzg1OGI0Mi4uYjg0Y2M2NDJkM2RkMzgwYzcxOTZiYjVjODFhYTg4ZDQ2MjE5NzE4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhh
bmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hLm1tCkBAIC0yNiwxMiArMjYsMTIgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgiCiAKLSNpbXBvcnQgIkFQ
SVVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCisjaW1wb3J0ICJBUElVUkxTY2hlbWVUYXNrLmgiCiAj
aW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKICNpbXBvcnQgIldLVVJMU2NoZW1lSGFuZGxlci5oIgot
I2ltcG9ydCAiV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmgiCisjaW1wb3J0ICJXS1VS
TFNjaGVtZVRhc2tJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKLSNp
bXBvcnQgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCisjaW1wb3J0ICJXZWJVUkxTY2hlbWVU
YXNrLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NywyNyArNDcsMjcgQEAg
V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EoaWQgPFdL
VVJMU2NoZW1lSGFuZGxlcj4gYXBpSGEKIHsKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVy
Q29jb2E6OnBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViVVJMU2NoZW1l
SGFuZGxlclRhc2smIHRhc2spCit2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYTo6cGxhdGZv
cm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQog
ewogI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgYXV0byByZXN1bHQgPSBtX2FwaVRhc2tzLmFkZCh0
YXNrLmlkZW50aWZpZXIoKSwgQVBJOjpVUkxTY2hlbWVIYW5kbGVyVGFzazo6Y3JlYXRlKHRhc2sp
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fYXBpVGFza3MuYWRkKHRhc2suaWRlbnRpZmllcigpLCBB
UEk6OlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05l
d0VudHJ5KTsKIAotICAgIFttX2FwaUhhbmRsZXIuZ2V0KCkgd2ViVmlldzpmcm9tV2ViUGFnZVBy
b3h5KHBhZ2UpIHN0YXJ0VGFzazp3cmFwcGVyKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCkp
XTsKKyAgICBbbV9hcGlIYW5kbGVyLmdldCgpIHdlYlZpZXc6ZnJvbVdlYlBhZ2VQcm94eShwYWdl
KSBzdGFydFVSTFNjaGVtZVRhc2s6d3JhcHBlcihyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgp
KV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICBVTlVTRURfUEFSQU0odGFz
ayk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2E6OnBsYXRmb3Jt
U3RvcFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYgdGFz
aykKK3ZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpwbGF0Zm9ybVN0b3BUYXNrKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViVVJMU2NoZW1lVGFzayYgdGFzaykKIHsKICNpZiBXS19BUElfRU5B
QkxFRAogICAgIGF1dG8gaXRlcmF0b3IgPSBtX2FwaVRhc2tzLmZpbmQodGFzay5pZGVudGlmaWVy
KCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX2FwaVRhc2tzLmVuZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBbbV9hcGlIYW5kbGVyLmdldCgpIHdlYlZpZXc6ZnJvbVdlYlBhZ2VQcm94eShw
YWdlKSBzdG9wVGFzazp3cmFwcGVyKGl0ZXJhdG9yLT52YWx1ZS5nZXQoKSldOworICAgIFttX2Fw
aUhhbmRsZXIuZ2V0KCkgd2ViVmlldzpmcm9tV2ViUGFnZVByb3h5KHBhZ2UpIHN0b3BVUkxTY2hl
bWVUYXNrOndyYXBwZXIoaXRlcmF0b3ItPnZhbHVlLmdldCgpKV07CiAKICAgICBtX2FwaVRhc2tz
LnJlbW92ZShpdGVyYXRvcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA3YzZiODZmZjU0MTJjNDNjYzZhMDgzZjI2MTJkMDYyOTgyNDE2ODIx
Li41ZGRhNzNiMTU1NjIwODYzYmMxZDliNmFjZGU0ZGQ1Y2QxMjAyNmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjg4MCw3ICs2ODgwLDcgQEAgV2Vi
VVJMU2NoZW1lSGFuZGxlciogV2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1l
KGNvbnN0IFN0cmluZyYgc2NoZW0KICAgICByZXR1cm4gbV91cmxTY2hlbWVIYW5kbGVyc0J5U2No
ZW1lLmdldChzY2hlbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVI
YW5kbGVyVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lk
IFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV91cmxTY2hlbWVIYW5k
bGVyc0J5SWRlbnRpZmllci5maW5kKGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBBU1NFUlQoaXRl
cmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CkBAIC02ODg4
LDcgKzY4ODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVIYW5kbGVyVGFz
ayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0XwogICAgIGl0ZXJhdG9yLT52YWx1
ZS0+c3RhcnRUYXNrKCp0aGlzLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6c3RvcFVSTFNjaGVtZUhhbmRsZXJUYXNrKHVpbnQ2NF90IGhhbmRs
ZXJJZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2
NF90IHJlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV91cmxTY2hl
bWVIYW5kbGVyc0J5SWRlbnRpZmllci5maW5kKGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBBU1NF
UlQoaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjcwMjNhNDYwNWMwZDIy
NWFkZGZkZDFmZDhjZTIzOTc3M2Y5MGM4MC4uYWQyNTAwODczYzBmZTI1ZjNkOTI4MmUyMDZjMzhh
OTQ4YzI0N2U2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTYwOCw4ICsxNjA4LDggQEAgcHJpdmF0ZToKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIHN0
YXJ0VVJMU2NoZW1lSGFuZGxlclRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2
NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7
Ci0gICAgdm9pZCBzdG9wVVJMU2NoZW1lSGFuZGxlclRhc2sodWludDY0X3QgaGFuZGxlcklkZW50
aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdGFydFVSTFNj
aGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBzdG9w
VVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3Vy
Y2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgaGFuZGxlQXV0b0ZpbGxCdXR0b25DbGljayhjb25z
dCBVc2VyRGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCBiNGI5ODEwNWJjZTY4NDA4NDNmYjljMTE0NDE4Njc4M2Vm
OThhNDgzLi5hYzVkYzgyNDc5ZDY4Yzg5ZGFiMWQxNmNhMDc3NGY5NGI5M2VjYmQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTQ5Miw4ICs0OTIsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgU2V0SXNV
c2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdM
KQogCi0gICAgU3RhcnRVUkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRfdCBsb2FkZXJJZGVudGlm
aWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KQotICAgIFN0b3BVUkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRfdCBsb2FkZXJJ
ZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpCisgICAgU3RhcnRVUkxTY2hl
bWVUYXNrKHVpbnQ2NF90IGxvYWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCisgICAgU3RvcFVSTFNjaGVt
ZVRhc2sodWludDY0X3QgbG9hZGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlm
aWVyKQogCiAgICAgU2V0Q2xpcFRvU2FmZUFyZWEoYm9vbCBjbGlwVG9TYWZlQXJlYSkKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAppbmRl
eCBlNTk5ZWMyZjNlMWZmMjEyMWE3YmZmMzc1MDExNjllY2EzNmI2YzUyLi43NDBjMzk2NzRhM2Y4
YTlmZDA5M2NkOTNiYThjOWQzZDc2ZWI1ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgogCi0jaW5jbHVk
ZSAiV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNr
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MCw3ICs1MCw3IEBAIFdlYlVS
TFNjaGVtZUhhbmRsZXI6On5XZWJVUkxTY2hlbWVIYW5kbGVyKCkKIAogdm9pZCBXZWJVUkxTY2hl
bWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCByZXNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBhdXRv
IHJlc3VsdCA9IG1fdGFza3MuYWRkKHJlc291cmNlSWRlbnRpZmllciwgV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcmVzb3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0
KSk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZChyZXNvdXJjZUlkZW50aWZpZXIsIFdl
YlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcmVzb3VyY2VJZGVudGlmaWVyLCBy
ZXF1ZXN0KSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIHBsYXRmb3Jt
U3RhcnRUYXNrKHBhZ2UsIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggMzRjZmQ1ZGRmOTg2YjJl
NjMxYjI0NzIzODE3NmY3YWVjZDA2NzYyMS4uM2Y0ZWFmYmEzNzllYjZlNzM4NDM5OTJkYzQ5Y2Fk
Yjc4Y2E1YjRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNj
aGVtZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDEyICs1MiwxMiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgV2ViVVJMU2NoZW1lSGFuZGxlcigpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1T
dGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVUYXNr
JikgPSAwOwogCiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwogCi0gICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrPj4gbV90YXNrczsKKyAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWY8V2ViVVJMU2NoZW1lVGFzaz4+IG1fdGFza3M7CiAKIH07IC8vIGNsYXNz
IFdlYlVSTFNjaGVtZUhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDBkZWFiM2U1Nzc4NTI2MTY5NmMwZjkxY2UwMTkwZTY1NGU5YTg2MWIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExNCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0KLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5j
bHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5j
bHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyVGFzaz4gV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVy
LCBXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrKGhhbmRsZXIsIHBhZ2UsIHJlc291cmNlSWRlbnRpZmllciwg
cmVxdWVzdCkpOwotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6V2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdl
LCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLSAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQotICAgICwgbV9wYWdlKCZw
YWdlKQotICAgICwgbV9pZGVudGlmaWVyKHJlc291cmNlSWRlbnRpZmllcikKLSAgICAsIG1fcmVx
dWVzdChyZXF1ZXN0KQotewotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9u
VHlwZSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlmIChtX3N0b3BwZWQpCi0gICAgICAg
IHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVh
ZHlTdG9wcGVkOwotCi0gICAgaWYgKG1fY29tcGxldGVkKQotICAgICAgICByZXR1cm4gV2ViVVJM
U2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsK
LQotICAgIGlmIChtX2RhdGFTZW50KQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxl
clRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5U2VudDsKLQotICAgIG1fcmVzcG9uc2VT
ZW50ID0gdHJ1ZTsKLQotICAgIHJlc3BvbnNlLmluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8oKTsKLSAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZUhhbmRsZXJUYXNrRGlk
UmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50
aWZpZXIsIHJlc3BvbnNlKSk7Ci0gICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpF
eGNlcHRpb25UeXBlOjpOb25lOwotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0
aW9uVHlwZSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyKQotewotICAgIGlmIChtX3N0b3BwZWQpCi0gICAgICAgIHJldHVybiBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVhZHlTdG9wcGVk
OwotCi0gICAgaWYgKG1fY29tcGxldGVkKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKLQotICAgIGlm
ICghbV9yZXNwb25zZVNlbnQpCi0gICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
azo6RXhjZXB0aW9uVHlwZTo6Tm9SZXNwb25zZVNlbnQ7Ci0KLSAgICBtX2RhdGFTZW50ID0gdHJ1
ZTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZUhhbmRsZXJU
YXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRl
bnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGJ1ZmZlci5wdHIoKSkpKTsK
LSAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6Ok5vbmU7
Ci19Ci0KLVdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsK
LSAgICBpZiAobV9zdG9wcGVkKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRh
c2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKLQotICAgIGlmIChtX2NvbXBs
ZXRlZCkKLSAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25U
eXBlOjpDb21wbGV0ZUFscmVhZHlDYWxsZWQ7Ci0KLSAgICBpZiAoIW1fcmVzcG9uc2VTZW50ICYm
IGVycm9yLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6
OkV4Y2VwdGlvblR5cGU6Ok5vUmVzcG9uc2VTZW50OwotCi0gICAgbV9jb21wbGV0ZWQgPSB0cnVl
OwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lSGFuZGxlclRh
c2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlm
aWVyLCBlcnJvcikpOwotICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0
aW9uVHlwZTo6Tm9uZTsKLX0KLQotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6cGFnZURl
c3Ryb3llZCgpCi17Ci0gICAgQVNTRVJUKG1fcGFnZSk7Ci0gICAgbV9wYWdlID0gbnVsbHB0cjsK
LSAgICBtX3N0b3BwZWQgPSB0cnVlOwotfQotCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
OjpzdG9wKCkKLXsKLSAgICBBU1NFUlQoIW1fc3RvcHBlZCk7Ci0gICAgbV9zdG9wcGVkID0gdHJ1
ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3N2RiMzJkOTU1NjM1ZWJkZTIzZmZhZjU1YmExOTVjNDM2ZjBmMDU3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEsNzkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUmVzb3VyY2VFcnJv
cjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyOwotY2xhc3MgV2Vi
UGFnZVByb3h5OwotCi1jbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoV2ViVVJMU2NoZW1lSGFuZGxlclRhc2spOwotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2s+IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFn
ZVByb3h5JiwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik7Ci0KLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9Ci0KLSAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qo
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLQotICAgIGVudW0gY2xhc3MgRXhjZXB0aW9u
VHlwZSB7Ci0gICAgICAgIERhdGFBbHJlYWR5U2VudCwKLSAgICAgICAgQ29tcGxldGVBbHJlYWR5
Q2FsbGVkLAotICAgICAgICBUYXNrQWxyZWFkeVN0b3BwZWQsCi0gICAgICAgIE5vUmVzcG9uc2VT
ZW50LAotICAgICAgICBOb25lLAotICAgIH07Ci0gICAgRXhjZXB0aW9uVHlwZSBkaWRSZWNlaXZl
UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIEV4Y2VwdGlv
blR5cGUgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4pOwotICAgIEV4
Y2VwdGlvblR5cGUgZGlkQ29tcGxldGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwot
Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7Ci0KLXByaXZhdGU6
Ci0gICAgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBh
Z2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOwotCi0gICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxl
cjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKLSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKLSAgICBib29sIG1fc3Rv
cHBlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Jlc3BvbnNlU2VudCB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2RhdGFTZW50IHsgZmFsc2UgfTsKLSAgICBib29sIG1fY29tcGxldGVkIHsgZmFsc2Ug
fTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMzM1YmM0YTkwYWQwNGJhZGJi
NGRiMjY4NGUyOTVhYjc4YWIzMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFzay5oIgor
CisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRs
ZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKFdlYlVSTFNj
aGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgcmVzb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1lVGFzayhoYW5kbGVyLCBwYWdlLCByZXNvdXJj
ZUlkZW50aWZpZXIsIHJlcXVlc3QpKTsKK30KKworV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2No
ZW1lVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2Us
IHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQorICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCisgICAgLCBtX3BhZ2UoJnBh
Z2UpCisgICAgLCBtX2lkZW50aWZpZXIocmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9yZXF1
ZXN0KHJlcXVlc3QpCit7Cit9CisKK1dlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGUgV2Vi
VVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQoreworICAgIGlmIChtX3N0b3BwZWQpCisgICAgICAgIHJldHVybiBXZWJVUkxT
Y2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ7CisKKyAgICBpZiAo
bV9jb21wbGV0ZWQpCisgICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25U
eXBlOjpDb21wbGV0ZUFscmVhZHlDYWxsZWQ7CisKKyAgICBpZiAobV9kYXRhU2VudCkKKyAgICAg
ICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5U2Vu
dDsKKworICAgIG1fcmVzcG9uc2VTZW50ID0gdHJ1ZTsKKworICAgIHJlc3BvbnNlLmluY2x1ZGVD
ZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVS
TFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlm
aWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpKTsKKyAgICByZXR1cm4gV2ViVVJMU2NoZW1l
VGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9uZTsKK30KKworV2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0
aW9uVHlwZSBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVy
PiBidWZmZXIpCit7CisgICAgaWYgKG1fc3RvcHBlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNj
aGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKKworICAgIGlmICht
X2NvbXBsZXRlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5
cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKKworICAgIGlmICghbV9yZXNwb25zZVNlbnQpCisg
ICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb1Jlc3BvbnNl
U2VudDsKKworICAgIG1fZGF0YVNlbnQgPSB0cnVlOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZShidWZmZXIucHRyKCkpKSk7CisgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2Vw
dGlvblR5cGU6Ok5vbmU7Cit9CisKK1dlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGUgV2Vi
VVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7
CisgICAgaWYgKG1fc3RvcHBlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4
Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKKworICAgIGlmIChtX2NvbXBsZXRlZCkK
KyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRl
QWxyZWFkeUNhbGxlZDsKKworICAgIGlmICghbV9yZXNwb25zZVNlbnQgJiYgZXJyb3IuaXNOdWxs
KCkpCisgICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb1Jl
c3BvbnNlU2VudDsKKworICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhh
bmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvcikpOworICAgIHJldHVybiBX
ZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb25lOworfQorCit2b2lkIFdlYlVSTFNj
aGVtZVRhc2s6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIEFTU0VSVChtX3BhZ2UpOworICAgIG1f
cGFnZSA9IG51bGxwdHI7CisgICAgbV9zdG9wcGVkID0gdHJ1ZTsKK30KKwordm9pZCBXZWJVUkxT
Y2hlbWVUYXNrOjpzdG9wKCkKK3sKKyAgICBBU1NFUlQoIW1fc3RvcHBlZCk7CisgICAgbV9zdG9w
cGVkID0gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTNjMTlkNjgwOTlhZGVi
MDQzOGRhM2RjYjA2MWRjNGE0MWIxNTc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApAQCAtMCwwICsxLDc5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXI7CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2Ns
YXNzIFdlYlVSTFNjaGVtZVRhc2sgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNr
PiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1lVGFzayk7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFu
ZGxlciYsIFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOworCisgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisKKyAgICBlbnVtIGNs
YXNzIEV4Y2VwdGlvblR5cGUgeworICAgICAgICBEYXRhQWxyZWFkeVNlbnQsCisgICAgICAgIENv
bXBsZXRlQWxyZWFkeUNhbGxlZCwKKyAgICAgICAgVGFza0FscmVhZHlTdG9wcGVkLAorICAgICAg
ICBOb1Jlc3BvbnNlU2VudCwKKyAgICAgICAgTm9uZSwKKyAgICB9OworICAgIEV4Y2VwdGlvblR5
cGUgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsK
KyAgICBFeGNlcHRpb25UeXBlIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+KTsKKyAgICBFeGNlcHRpb25UeXBlIGRpZENvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKTsKKworICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgcGFnZURlc3Ryb3llZCgp
OworCitwcml2YXRlOgorICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYs
IFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOworCisgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1l
SGFuZGxlcjsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICB1aW50NjRfdCBtX2lkZW50
aWZpZXI7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICBib29s
IG1fc3RvcHBlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Jlc3BvbnNlU2VudCB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2RhdGFTZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1fY29tcGxldGVkIHsg
ZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNkMDg1M2E1ODg5ZDM4
N2FlOWU4MTg1ZWIwMTMzZWFkNTVmM2M3N2MuLjcyYjBjNWNkOTE1ZDI2ODk5MzkyYTVkNjkwYTdl
ZTFhYTdmOTk2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwNTYsMTQgKzEwNTYsMTQgQEAKIAkJNTFEMDJGNkExMzJFQzcz
NzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQwMkY2NzEzMkVDNzM3MDBCRUFBOTYgLyog
V2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFEMDJGNkIxMzJFQzczNzAwQkVB
QTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDAyRjY4MTMyRUM3MzcwMEJF
QUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTUxRDAyRjZDMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQwMkY2
OTEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlcy5oICovOyB9
OwotCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5j
cHAgKi87IH07CisJCTUxRDEyNDIzMUU2RDM0QTEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNr
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFEMTI0MjExRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHAgKi87
IH07CiAJCTUxRDEyNDI4MUU2RDNGNUQwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDI0
MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCAqLzsgfTsKIAkJNTFE
MTI0MkMxRTZENDFGRDAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQyQTFFNkQ0
MUJDMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcCAqLzsgfTsKIAkJNTFE
MTI0MzMxRTZERTZDQTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDMyMUU2REU1
MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gKi87IH07CiAJCTUxRDEy
NDM0MUU2REY2NDMwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDJEMUU2RERERDcwMDJCMjgy
MCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07Ci0JCTUxRDEyNDM1MUU2REY2NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVt
ZUhhbmRsZXJUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJNTFEMTI0
MzYxRTZERkIzOTAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlclRhc2subW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzMDFFNkREREQ3MDAy
QjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSAqLzsgfTsKLQkJNTFEMTI0M0ExRTZF
MEFBQjAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDM4MUU2REZEQjkwMDJCMjgy
MCAvKiBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi87IH07CisJCTUxRDEyNDM1MUU2REY2
NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDJGMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNj
aGVtZVRhc2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07
CisJCTUxRDEyNDM2MUU2REZCMzkwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzMDFFNkREREQ3
MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrLm1tICovOyB9OworCQk1MUQxMjQzQTFFNkUwQUFC
MDAyQjI4MjAgLyogQVBJVVJMU2NoZW1lVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzODFFNkRGREI5MDAyQjI4MjAgLyogQVBJVVJM
U2NoZW1lVGFzay5jcHAgKi87IH07CiAJCTUxRDEyNDkxMUU3NEJGM0MwMDJCMjgyMCAvKiBBUElI
VFRQQ29va2llU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFEMTI0ODIxRTczNEFDODAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5j
cHAgKi87IH07CiAJCTUxRDEyNDkyMUU3NEJGNDgwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9y
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEy
NDg1MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLzsgfTsKIAkJNTFE
MTI0OTkxRTc2M0MwMTAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQ4NDFFNzM0QUUzMDAyQjI4
MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07CkBAIC0xMDgxLDcgKzEwODEsNyBAQAogCQk1MUUzNTIwMjE4MEY1RDFF
MDBFNTNCRTkgLyogRGF0YWJhc2VQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUyMDExODBGNUQxRTAwRTUzQkU5IC8qIERhdGFi
YXNlUHJvY2Vzc01hYy5tbSAqLzsgfTsKIAkJNTFFMzUyMDkxODBGNUQ2QjAwRTUzQkU5IC8qIERh
dGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJhc2VTZXJ2
aWNlRW50cnlQb2ludC5tbSAqLzsgfTsKIAkJNTFFMzk5MDYxRDZGNTRDNzAwOUM4ODMxIC8qIFVJ
R2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlk
ZXJDb2NvYS5tbSAqLzsgfTsKLQkJNTFFOEI2OEUxRTcxMjg3NzAwMUI3MTMyIC8qIFdlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRThCNjhEMUU3MTI4NzMwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVIYW5kbGVy
VGFzay5jcHAgKi87IH07CisJCTUxRThCNjhFMUU3MTI4NzcwMDFCNzEzMiAvKiBXZWJVUkxTY2hl
bWVUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRThCNjhEMUU3MTI4NzMwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVUYXNrLmNwcCAqLzsgfTsK
IAkJNTFFOTQ5OTcxRDc2MjExMzAwRUM5RUI5IC8qIFVJR2FtZXBhZFByb3ZpZGVySU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFOTQ5OTYxRDc2
MUNDNzAwRUM5RUI5IC8qIFVJR2FtZXBhZFByb3ZpZGVySU9TLm1tICovOyB9OwogCQk1MUVGQzFD
RjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDU0MTUyMTExODYw
MEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2MEUwMTY1NDMxN0YwMEYzMjgx
QiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVz
b3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMzMwMSwyMSArMzMwMSwyMSBAQAogCQk1
MUQwMkY2NzEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjgxMzJFQzczNzAwQkVBQTk2IC8q
IFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjkxMzJFQzczNzAwQkVB
QTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTFEMTI0MjIxRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRs
ZXJUYXNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQx
MjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDIyMUU2RDM0OUEwMDJCMjgyMCAv
KiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViVVJMU2NoZW1lVGFza1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxRDEyNDI0MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQyNTFFNkQzQ0MzMDAyQjI4MjAg
LyogV2ViVVJMU2NoZW1lSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJVUkxTY2hlbWVIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUx
RDEyNDI3MUU2RDNGMUYwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQxMjQyNzFFNkQzRjFGMDAyQjI4MjAgLyog
V2ViVVJMU2NoZW1lVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJV
UkxTY2hlbWVUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRDEyNDJBMUU2
RDQxQkMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMTI0MkIxRTZENDFCQzAwMkIyODIwIC8q
IFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFEMTI0MkQxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZUhhbmRsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFEMTI0MkYxRTZERERENzAwMkIyODIwIC8qIFdL
VVJMU2NoZW1lSGFuZGxlclRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MUQxMjQzMDFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVVJMU2NoZW1lSGFuZGxlclRh
c2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDJGMUU2RERERDcwMDJC
MjgyMCAvKiBXS1VSTFNjaGVtZVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tVUkxTY2hlbWVUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEy
NDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1VSTFNjaGVtZVRhc2subW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxRDEyNDMxMUU2REU1MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hl
bWVIYW5kbGVyQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRDEy
NDMyMUU2REU1MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDM3MUU2REZEMkEwMDJC
MjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDM4MUU2REZEQjkwMDJCMjgyMCAvKiBBUElV
UkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTUxRDEyNDM5MUU2REZEQjkwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVIYW5kbGVyVGFz
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElVUkxTY2hlbWVIYW5kbGVy
VGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQxMjQzNzFFNkRGRDJBMDAy
QjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTFEMTI0MzgxRTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJVVJMU2NoZW1lVGFz
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDM5MUU2REZEQjkwMDJC
MjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSVVSTFNjaGVtZVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFE
MTI0ODIxRTczNEFDODAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElIVFRQQ29va2llU3RvcmUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQ4MzFFNzM0QUM4MDAyQjI4MjAgLyogQVBJ
SFRUUENvb2tpZVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhU
VFBDb29raWVTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQ4NDFF
NzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tIVFRQQ29va2llU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMzksNyArMzMzOSw3IEBACiAJCTUxRTM1MjA3MTgwRjVENjEwMEU1M0JFOSAv
KiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJhc2VTZXJ2aWNl
RW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERh
dGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJvdmlkZXJD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFOEI2OEQxRTcxMjg3MzAw
MUI3MTMyIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFOEI2OEQxRTcxMjg3MzAwMUI3MTMyIC8qIFdlYlVSTFNj
aGVtZVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVVJM
U2NoZW1lVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTk0OTk2MUQ3
NjFDQzcwMEVDOUVCOSAvKiBVSUdhbWVwYWRQcm92aWRlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3ZpZGVySU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVz
b3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVz
b3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjgyLDkgKzU2ODIsOSBAQAogCQkJ
CTFBRDg3OTA5MThCNkMzOEEwMDZDQUZENyAvKiBXS1VJRGVsZWdhdGUuaCAqLywKIAkJCQkzNzQz
OTI1NzE4QkM0QzYwMDAxQzg2NzUgLyogV0tVSURlbGVnYXRlUHJpdmF0ZS5oICovLAogCQkJCTUx
RDEyNDJEMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCAqLywKLQkJCQk1
MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oICovLAot
CQkJCTUxRDEyNDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrLm1t
ICovLAotCQkJCTUxRDEyNDM3MUU2REZEMkEwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJU
YXNrSW50ZXJuYWwuaCAqLywKKwkJCQk1MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxT
Y2hlbWVUYXNrLmggKi8sCisJCQkJNTFEMTI0MzAxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2No
ZW1lVGFzay5tbSAqLywKKwkJCQk1MUQxMjQzNzFFNkRGRDJBMDAyQjI4MjAgLyogV0tVUkxTY2hl
bWVUYXNrSW50ZXJuYWwuaCAqLywKIAkJCQkxQUZBM0FDNzE4RTYxQzYxMDAzQ0NCQUUgLyogV0tV
c2VyQ29udGVudENvbnRyb2xsZXIuaCAqLywKIAkJCQkxQUZBM0FDNjE4RTYxQzYxMDAzQ0NCQUUg
LyogV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW0gKi8sCiAJCQkJMUFBRjA4QTMxOTI2ODJEQTAw
QjYzOTBDIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCAqLywKQEAgLTY2NTQs
OCArNjY1NCw4IEBACiAJCQkJQkNBMEVGN0QxMjMzMUU3ODAwN0QzQ0ZCIC8qIFdlYlVuZG9TdGVw
LmggKi8sCiAJCQkJNTFEMTI0MkExRTZENDFCQzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRs
ZXJQcm94eS5jcHAgKi8sCiAJCQkJNTFEMTI0MkIxRTZENDFCQzAwMkIyODIwIC8qIFdlYlVSTFNj
aGVtZUhhbmRsZXJQcm94eS5oICovLAotCQkJCTUxRDEyNDIxMUU2RDM0OUEwMDJCMjgyMCAvKiBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcCAqLywKLQkJCQk1MUQxMjQyMjFFNkQzNDlB
MDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5oICovLAorCQkJCTUxRDEy
NDIxMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuY3BwICovLAorCQkJ
CTUxRDEyNDIyMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gV2ViUGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC02ODIxLDggKzY4MjEsOCBAQAogCQkJCTdBOUNEOEMyMUM3NzlBRDYwMEQ5RjZDNyAvKiBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTFEMTI0MjQx
RTZEM0NDMzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXIuY3BwICovLAogCQkJCTUxRDEy
NDI1MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmggKi8sCi0JCQkJNTFF
OEI2OEQxRTcxMjg3MzAwMUI3MTMyIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLywK
LQkJCQk1MUQxMjQyNzFFNkQzRjFGMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2su
aCAqLywKKwkJCQk1MUU4QjY4RDFFNzEyODczMDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFzay5j
cHAgKi8sCisJCQkJNTFEMTI0MjcxRTZEM0YxRjAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZVRhc2su
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gVUlQcm9jZXNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTY4NzksOCArNjg3OSw4IEBACiAJCQkJMUFGREU2NUYxOTU0RTlCMTAwQzQ4RkZB
IC8qIEFQSVNlc3Npb25TdGF0ZS5jcHAgKi8sCiAJCQkJMUFGREU2NjAxOTU0RTlCMTAwQzQ4RkZB
IC8qIEFQSVNlc3Npb25TdGF0ZS5oICovLAogCQkJCTFBNEQ2NjQ3MThBMkQ5MUEwMEQ4MkUyMSAv
KiBBUElVSUNsaWVudC5oICovLAotCQkJCTUxRDEyNDM4MUU2REZEQjkwMDJCMjgyMCAvKiBBUElV
UkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi8sCi0JCQkJNTFEMTI0MzkxRTZERkRCOTAwMkIyODIw
IC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmggKi8sCisJCQkJNTFEMTI0MzgxRTZERkRCOTAw
MkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2suY3BwICovLAorCQkJCTUxRDEyNDM5MUU2REZEQjkw
MDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmggKi8sCiAJCQkJN0M4ODJERkIxQzdFOTlBNjAw
NkJGNzMxIC8qIEFQSVVzZXJDb250ZW50V29ybGQuY3BwICovLAogCQkJCTdDODgyREZDMUM3RTk5
QTYwMDZCRjczMSAvKiBBUElVc2VyQ29udGVudFdvcmxkLmggKi8sCiAJCQkJN0NCMzY1QUYxRDMx
REQxRTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRBY3Rpb24uaCAqLywKQEAgLTkwNTEsNyAr
OTA1MSw3IEBACiAJCQkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjJCMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJl
c3BvbnNlTlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDEyNDM0MUU2REY2NDMwMDJCMjgyMCAv
KiBXS1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxRDEyNDM1MUU2REY2
NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MUQxMjQzNTFFNkRGNjUyMDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUZBM0FDOTE4RTYxQzYxMDAzQ0NCQUUgLyogV0tVc2VyQ29udGVudENvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwOEE0MTkyNjgyREEwMEI2MzkwQyAvKiBX
S1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5
RDJCNjFBNkIwREQ5MDAzQTVGREUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTk3NjMsNyArOTc2Myw3IEBACiAJCQkJMUFGREU2NjExOTU0RTlC
MTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Uy
MzE1RTEyMkMzMENBMDBENUMzNUEgLyogQVBJVVJMUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzkwQTFEMzEyMkRENTVFMDBDQzhDNTAgLyogQVBJVVJMUmVzcG9uc2UuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTFEMTI0M0ExRTZFMEFBQjAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhh
bmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRDEyNDNBMUU2RTBBQUIwMDJCMjgy
MCAvKiBBUElVUkxTY2hlbWVUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRUZBOTYyMUFD
MDk5OTMwMEI5MTBGRCAvKiBBUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlQ29jb2EubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Qzg4MkRGRTFDN0U5OUFDMDA2QkY3MzEgLyogQVBJVXNlckNvbnRl
bnRXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDJBNjFBNjc4OUVBMDAzQTVGREUg
LyogQVBJVXNlclNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwMzgwLDggKzEwMzgwLDgg
QEAKIAkJCQk2M0MzMkMyNTFFOTgxMEQ5MDA2OTlCRDAgLyogX1dLR2VvbG9jYXRpb25Qb3NpdGlv
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxRDEyNDMzMUU2REU2Q0EwMDJCMjgyMCAvKiBXZWJV
UkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUQxMjQyQzFFNkQ0
MUZEMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTUxRThCNjhFMUU3MTI4NzcwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
ay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUU4QjY4
RTFFNzEyODc3MDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFzay5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwOEFEMTkyNjkzNjcwMEI2MzkwQyAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MwNjVGMkIxQzhDRDk1
RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTA1NzUsNyAr
MTA1NzUsNyBAQAogCQkJCUJDNDA3NjJBMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3RO
Uy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjBEMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VS
TFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjJDMTI0RkYwNDAwMDY4RjIw
QSAvKiBXS1VSTFJlc3BvbnNlTlMubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MUQxMjQzNjFFNkRG
QjM5MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTUxRDEyNDM2MUU2REZCMzkwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQUZBM0FDODE4RTYxQzYxMDAzQ0NCQUUgLyogV0tVc2VyQ29udGVudENv
bnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDI5RjFBNjc4NTU0MDAzQTVGREUg
LyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0My
NDEzMDgxQUFDRkNCNDAwQTU4QzE1IC8qIFdLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlZi5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGQ1YTUxNWRhMjMxMzhlMjI3NmIx
MWU1ODg2YmM1ZDk1YjI4NzBjNWQuLjM3NjlmZjRiN2NkNjVmN2UxMDk1ZmMyNDBlNDk1NjA3OTk2
ODgzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNDMsNyArNDMsNyBAQAogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYlVS
TFNjaGVtZUhhbmRsZXJQcm94eS5oIgotI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRS
ZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4K
QEAgLTI2MywxNSArMjYzLDE1IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0TG9jYWxM
b2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKICAgICBtX3dlYlJl
c291cmNlTG9hZGVycy5zZXQocmVzb3VyY2VMb2FkZXIuaWRlbnRpZmllcigpLCBXZWJSZXNvdXJj
ZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB7IH0pKTsKIH0KIAotdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eShXZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5JiB0YXNrKQordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1l
VGFza1Byb3h5KFdlYlVSTFNjaGVtZVRhc2tQcm94eSYgdGFzaykKIHsKLSAgICBhdXRvIHJlc3Vs
dCA9IG1fdXJsU2NoZW1lSGFuZGxlclRhc2tzLmFkZCh0YXNrLmlkZW50aWZpZXIoKSwgJnRhc2sp
OworICAgIGF1dG8gcmVzdWx0ID0gbV91cmxTY2hlbWVUYXNrcy5hZGQodGFzay5pZGVudGlmaWVy
KCksICZ0YXNrKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkp
OwogfQogCi12b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxTY2hlbWVIYW5kbGVyVGFz
a1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmIHRhc2spCit2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpyZW1vdmVVUkxTY2hlbWVUYXNrUHJveHkoV2ViVVJMU2NoZW1lVGFza1Byb3h5
JiB0YXNrKQogewotICAgIG1fdXJsU2NoZW1lSGFuZGxlclRhc2tzLnJlbW92ZSh0YXNrLmlkZW50
aWZpZXIoKSk7CisgICAgbV91cmxTY2hlbWVUYXNrcy5yZW1vdmUodGFzay5pZGVudGlmaWVyKCkp
OwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmUoUmVzb3VyY2VMb2FkZXIqIHJl
c291cmNlTG9hZGVyKQpAQCAtMjc5LDcgKzI3OSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnJlbW92ZShSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCiAgICAgQVNTRVJUKHJlc291
cmNlTG9hZGVyKTsKICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnJlbW92ZSwgdXJsICclcyciLCByZXNvdXJjZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoYXV0byB0YXNrID0gbV91cmxTY2hl
bWVIYW5kbGVyVGFza3MudGFrZShyZXNvdXJjZUxvYWRlci0+aWRlbnRpZmllcigpKSkgeworICAg
IGlmIChhdXRvIHRhc2sgPSBtX3VybFNjaGVtZVRhc2tzLnRha2UocmVzb3VyY2VMb2FkZXItPmlk
ZW50aWZpZXIoKSkpIHsKICAgICAgICAgQVNTRVJUKCFtX2ludGVybmFsbHlGYWlsZWRSZXNvdXJj
ZUxvYWRlcnMuY29udGFpbnMocmVzb3VyY2VMb2FkZXIpKTsKICAgICAgICAgdGFzay0+c3RvcExv
YWRpbmcoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA1MWIyYTgyZjU1OGI1Y2Mw
ZjY2NGYyY2RiMmI4MzE0MmUyM2Q0N2ZhLi45NDc4NDNiNDBmNWQ3ZDU3MDEyYzU3NWRiZjNkMTUw
MmIxOTFlZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKLWNsYXNzIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHk7CitjbGFzcyBXZWJVUkxTY2hlbWVUYXNrUHJveHk7CiB0eXBlZGVm
IHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIFdlYkxvYWRlclN0cmF0
ZWd5IDogcHVibGljIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5IHsKQEAgLTY2LDggKzY2LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAotICAgIHZvaWQg
YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eShXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5
Jik7Ci0gICAgdm9pZCByZW1vdmVVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHkmKTsKKyAgICB2b2lkIGFkZFVSTFNjaGVtZVRhc2tQcm94eShXZWJV
UkxTY2hlbWVUYXNrUHJveHkmKTsKKyAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVRhc2tQcm94eShX
ZWJVUkxTY2hlbWVUYXNrUHJveHkmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlTG9h
ZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKQEAgLTc5LDcgKzc5
LDcgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJMb2FkZXJTdHJhdGVneT4gbV9p
bnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyOwogICAgIAogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9u
ZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRlcnM7Ci0gICAg
SGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5Kj4gbV91
cmxTY2hlbWVIYW5kbGVyVGFza3M7CisgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxT
Y2hlbWVUYXNrUHJveHkqPiBtX3VybFNjaGVtZVRhc2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggYjM5OTgwNDkyZGY3MTU2OTAyNzI2MzM4ZDQwYzViZDhhOGE0ZjZjYS4uZGI2MzgzYThj
NzQ5MDFhOTBhY2ZiNjNmZjJjYWNmMTMyYjBhOGU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTg1OCw3ICs1ODU4LDcgQEAgdm9pZCBX
ZWJQYWdlOjpyZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaGFuZGxlcklkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYKICAgICBBU1NFUlRfVU5VU0VEKGlkZW50aWZpZXJSZXN1bHQsIGlk
ZW50aWZpZXJSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXJsU2NoZW1l
SGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIs
IHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3ZvaWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRf
dCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBtX2lkZW50aWZp
ZXJUb1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50aWZpZXIpOwogICAg
IEFTU0VSVChoYW5kbGVyKTsKQEAgLTU4NjYsNyArNTg2Niw3IEBAIHZvaWQgV2ViUGFnZTo6dXJs
U2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50
aWZpZXIsCiAgICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVSZXNwb25zZSh0YXNrSWRlbnRpZmll
ciwgcmVzcG9uc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRsZXJUYXNrRGlk
UmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFdlYlBhZ2U6OnVy
bFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWlu
dDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsK
ICAgICBhdXRvKiBoYW5kbGVyID0gbV9pZGVudGlmaWVyVG9VUkxTY2hlbWVIYW5kbGVyUHJveHlN
YXAuZ2V0KGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBBU1NFUlQoaGFuZGxlcik7CkBAIC01ODc0
LDcgKzU4NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRsZXJUYXNrRGlkUmVjZWl2
ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbgogICAgIGhhbmRsZXItPnRhc2tE
aWRSZWNlaXZlRGF0YSh0YXNrSWRlbnRpZmllciwgZGF0YS5zaXplKCksIGRhdGEuZGF0YSgpKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKHVpbnQ2
NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRDb21wbGV0
ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBtX2lkZW50
aWZpZXJUb1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50aWZpZXIpOwog
ICAgIEFTU0VSVChoYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IGIyMGRhNDJmMzBhYTBkMWQwNjUxNWYwMDcyYmQwOWQwODMwOTY1NmMu
Ljg4MmU1OGQ4OTM0MzhmOTlhNGYyNGI4YzlhNzFmMjczMWU5MTNkOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI3MCw5ICsxMjcwLDkgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIAotICAgIHZvaWQgdXJsU2NoZW1lSGFu
ZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVp
bnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgdm9pZCB1cmxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhh
bmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJik7Ci0gICAgdm9pZCB1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKHVp
bnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2Vp
dmVSZXNwb25zZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIHVybFNj
aGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0
X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQg
dXJsU2NoZW1lVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50
NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogCiAg
ICAgUmVmUHRyPFdlYkltYWdlPiBzbmFwc2hvdEF0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYml0bWFwU2l6ZSwgU25hcHNob3RPcHRpb25zKTsK
ICAgICBSZWZQdHI8V2ViSW1hZ2U+IHNuYXBzaG90Tm9kZShXZWJDb3JlOjpOb2RlJiwgU25hcHNo
b3RPcHRpb25zLCB1bnNpZ25lZCBtYXhpbXVtUGl4ZWxDb3VudCA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGM3MDFhZTljNWE1MjY0Y2M2YjYy
NzlmNDA2ZWM1NTU5MWFkZWVjZTEuLjM1MWJkMDlhNWZlYjJiNTQxYmJjOGI2ZWZkMTNmMDA1ZTA0
YTU5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00NzIsNyArNDcyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0
X3QgaWRlbnRpZmllciwgU3RyaW5nIHNjaGVtZSkKIAotICAgIFVSTFNjaGVtZUhhbmRsZXJUYXNr
RGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IHByb3ZpZGVySWRlbnRpZmllciwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCi0gICAg
VVJMU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBwcm92aWRlcklkZW50
aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkK
LSAgICBVUkxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IHByb3ZpZGVySWRl
bnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IpCisgICAgVVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBwcm92
aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIFVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50
NjRfdCBwcm92aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YSkKKyAgICBVUkxTY2hlbWVUYXNrRGlkQ29tcGxldGUodWludDY0X3Qg
cHJvdmlkZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKaW5kZXggOTQx
Yjc5NzNmZWViMDhlYTM4MTNiY2M0MzA3ZDQ1MGU0YmQ1YWJmNi4uN2QwMjM2NzllYTRlOTBhM2Jl
MTBjZmY3NDE3NWMwMDhjNzhmZjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKQEAg
LTQ4LDEwICs0OCwxMCBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6On5XZWJVUkxTY2hlbWVI
YW5kbGVyUHJveHkoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6c3RhcnROZXdU
YXNrKFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX3Rhc2tz
LmFkZChsb2FkZXIuaWRlbnRpZmllcigpLCBzdGQ6Om1ha2VfdW5pcXVlPFdlYlVSTFNjaGVtZUhh
bmRsZXJUYXNrUHJveHk+KCp0aGlzLCBsb2FkZXIpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGFz
a3MuYWRkKGxvYWRlci5pZGVudGlmaWVyKCksIHN0ZDo6bWFrZV91bmlxdWU8V2ViVVJMU2NoZW1l
VGFza1Byb3h5PigqdGhpcywgbG9hZGVyKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5
KTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuYWRk
VVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSgqcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5hZGRVUkxTY2hlbWVU
YXNrUHJveHkoKnJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogICAgIHJlc3VsdC5pdGVyYXRvci0+
dmFsdWUtPnN0YXJ0TG9hZGluZygpOwogfQogCkBAIC04MCwxMSArODAsMTEgQEAgdm9pZCBXZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCB0YXNrSWRlbnRp
ZmllciwgY29uc3QgUmUKICAgICBpZiAoIXRhc2spCiAgICAgICAgIHJldHVybjsKIAotICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkucmVtb3ZlVVJMU2NoZW1l
SGFuZGxlclRhc2tQcm94eSgqdGFzayk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
TG9hZGVyU3RyYXRlZ3koKS5yZW1vdmVVUkxTY2hlbWVUYXNrUHJveHkoKnRhc2spOwogICAgIHRh
c2stPmRpZENvbXBsZXRlKGVycm9yKTsKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJv
eHk6OnRhc2tEaWRTdG9wTG9hZGluZyhXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5JiB0YXNr
KQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRTdG9wTG9hZGluZyhXZWJV
UkxTY2hlbWVUYXNrUHJveHkmIHRhc2spCiB7CiAgICAgQVNTRVJUKG1fdGFza3MuZ2V0KHRhc2su
aWRlbnRpZmllcigpKSA9PSAmdGFzayk7CiAgICAgbV90YXNrcy5yZW1vdmUodGFzay5pZGVudGlm
aWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oCmluZGV4IGYyOTczMDAzMGJkN2IxMWQyMTM0
MTRiYWFlODAwOGNjOWYyMWI1MjcuLmEwMzE3NjNkMWMzYWQyYWI5YzQ2YzNjNDIzYzUyMDE4ZTZi
NDE4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmgiCisj
aW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFza1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsMTMgKzUyLDEzIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIHRhc2tEaWRSZWNlaXZl
RGF0YSh1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgc2l6ZV90LCBjb25zdCB1aW50OF90KiBkYXRh
KTsKICAgICB2b2lkIHRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQgdGFza0RpZFN0b3BMb2FkaW5n
KFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmKTsKKyAgICB2b2lkIHRhc2tEaWRTdG9wTG9h
ZGluZyhXZWJVUkxTY2hlbWVUYXNrUHJveHkmKTsKIAogcHJpdmF0ZToKICAgICBXZWJQYWdlJiBt
X3dlYlBhZ2U7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OwogCi0gICAgSGFzaE1h
cDx1bnNpZ25lZCBsb25nLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQ
cm94eT4+IG1fdGFza3M7CisgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViVVJMU2NoZW1lVGFza1Byb3h5Pj4gbV90YXNrczsKIH07IC8vIGNsYXNzIFdlYlVSTFNj
aGVtZUhhbmRsZXJQcm94eQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVI
YW5kbGVyVGFza1Byb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgxYmEx
NmI4M2FjODA0ZTc4ZTA2ODI4Nzk2YTlmOTQ2MDI4Njk0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmgiCi0KLSNpbmNsdWRlICJXZWJQYWdlLmgiCi0j
aW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVI
YW5kbGVyUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VMb2FkZXIuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KFdlYlVSTFNjaGVtZUhh
bmRsZXJQcm94eSYgaGFuZGxlciwgUmVzb3VyY2VMb2FkZXImIGxvYWRlcikKLSAgICA6IG1fdXJs
U2NoZW1lSGFuZGxlcihoYW5kbGVyKQotICAgICwgbV9jb3JlTG9hZGVyKCZsb2FkZXIpCi0gICAg
LCBtX3JlcXVlc3QobG9hZGVyLnJlcXVlc3QoKSkKLSAgICAsIG1faWRlbnRpZmllcihsb2FkZXIu
aWRlbnRpZmllcigpKQotewotfQotCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6
OnN0YXJ0TG9hZGluZygpCi17Ci0gICAgQVNTRVJUKG1fY29yZUxvYWRlcik7Ci0gICAgbV91cmxT
Y2hlbWVIYW5kbGVyLnBhZ2UoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0VVJM
U2NoZW1lSGFuZGxlclRhc2sobV91cmxTY2hlbWVIYW5kbGVyLmlkZW50aWZpZXIoKSwgbV9jb3Jl
TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fcmVxdWVzdCkpOwotfQotCi12b2lkIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHk6OnN0b3BMb2FkaW5nKCkKLXsKLSAgICBBU1NFUlQobV9jb3JlTG9h
ZGVyKTsKLSAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U3RvcFVSTFNjaGVtZUhhbmRsZXJUYXNrKG1fdXJsU2NoZW1lSGFuZGxlci5pZGVu
dGlmaWVyKCksIG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpKSk7Ci0gICAgbV9jb3JlTG9hZGVy
ID0gbnVsbHB0cjsKLQotICAgIC8vIFRoaXMgbGluZSB3aWxsIHJlc3VsdCBpbiB0aGlzIGJlaW5n
IGRlbGV0ZWQuCi0gICAgbV91cmxTY2hlbWVIYW5kbGVyLnRhc2tEaWRTdG9wTG9hZGluZygqdGhp
cyk7Ci19Ci0KLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eTo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlmICghaGFz
TG9hZGVyKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2
ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLX0KLQotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5OjpkaWRSZWNlaXZlRGF0YShzaXplX3Qgc2l6ZSwgY29uc3QgdWludDhfdCogZGF0YSkKLXsK
LSAgICBpZiAoIWhhc0xvYWRlcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NvcmVMb2Fk
ZXItPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBz
aXplLCAwLCBEYXRhUGF5bG9hZFR5cGU6OkRhdGFQYXlsb2FkQnl0ZXMpOwotfQotCi12b2lkIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQotewotICAgIGlmICghaGFzTG9hZGVyKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hM
b2FkaW5nKE5ldHdvcmtMb2FkTWV0cmljcygpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fY29yZUxv
YWRlci0+ZGlkRmFpbChlcnJvcik7Ci0KLSAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwotfQot
Ci1ib29sIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6Omhhc0xvYWRlcigpCi17Ci0gICAg
aWYgKG1fY29yZUxvYWRlciAmJiBtX2NvcmVMb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkp
Ci0gICAgICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7Ci0KLSAgICByZXR1cm4gbV9jb3JlTG9h
ZGVyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQ
cm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWU5ZjE1MTJlYTcwOTlmYWMy
M2E5ODEwYzYwMDNkMmY4ODE5Nzg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hl
bWVIYW5kbGVyVGFza1Byb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3Mg
UmVzb3VyY2VMb2FkZXI7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotfQotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OwotCi1jbGFzcyBXZWJV
UkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJV
UkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KTsKLXB1YmxpYzoKLSAgICBXZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSYsIFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyJik7Ci0KLSAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qo
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLQotICAgIHZvaWQgc3RhcnRMb2FkaW5nKCk7
Ci0gICAgdm9pZCBzdG9wTG9hZGluZygpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZURh
dGEoc2l6ZV90LCBjb25zdCB1aW50OF90KiBkYXRhKTsKLSAgICB2b2lkIGRpZENvbXBsZXRlKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLQotICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotCi1wcml2YXRlOgotICAgIGJv
b2wgaGFzTG9hZGVyKCk7Ci0KLSAgICBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkmIG1fdXJsU2No
ZW1lSGFuZGxlcjsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fY29yZUxv
YWRlcjsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwotICAgIHVuc2ln
bmVkIGxvbmcgbV9pZGVudGlmaWVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFz
a1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hl
bWVUYXNrUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNzY3YmNiOGY0MjcyYjgwOGQ2YjUzMTY3MGRm
ODdhMjA2Y2YyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNr
UHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYlVSTFNjaGVtZVRhc2tQcm94eTo6V2ViVVJMU2NoZW1lVGFz
a1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSYgaGFuZGxlciwgUmVzb3VyY2VMb2FkZXIm
IGxvYWRlcikKKyAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQorICAgICwgbV9jb3Jl
TG9hZGVyKCZsb2FkZXIpCisgICAgLCBtX3JlcXVlc3QobG9hZGVyLnJlcXVlc3QoKSkKKyAgICAs
IG1faWRlbnRpZmllcihsb2FkZXIuaWRlbnRpZmllcigpKQoreworfQorCit2b2lkIFdlYlVSTFNj
aGVtZVRhc2tQcm94eTo6c3RhcnRMb2FkaW5nKCkKK3sKKyAgICBBU1NFUlQobV9jb3JlTG9hZGVy
KTsKKyAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U3RhcnRVUkxTY2hlbWVUYXNrKG1fdXJsU2NoZW1lSGFuZGxlci5pZGVudGlmaWVyKCks
IG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpLCBtX3JlcXVlc3QpKTsKK30KKwordm9pZCBXZWJV
UkxTY2hlbWVUYXNrUHJveHk6OnN0b3BMb2FkaW5nKCkKK3sKKyAgICBBU1NFUlQobV9jb3JlTG9h
ZGVyKTsKKyAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U3RvcFVSTFNjaGVtZVRhc2sobV91cmxTY2hlbWVIYW5kbGVyLmlkZW50aWZpZXIo
KSwgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2NvcmVMb2FkZXIgPSBudWxs
cHRyOworCisgICAgLy8gVGhpcyBsaW5lIHdpbGwgcmVzdWx0IGluIHRoaXMgYmVpbmcgZGVsZXRl
ZC4KKyAgICBtX3VybFNjaGVtZUhhbmRsZXIudGFza0RpZFN0b3BMb2FkaW5nKCp0aGlzKTsKK30K
Kwordm9pZCBXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAoIWhhc0xvYWRlcigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNw
b25zZSk7Cit9CisKK3ZvaWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRSZWNlaXZlRGF0YShz
aXplX3Qgc2l6ZSwgY29uc3QgdWludDhfdCogZGF0YSkKK3sKKyAgICBpZiAoIWhhc0xvYWRlcigp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplLCAwLCBEYXRhUGF5bG9hZFR5
cGU6OkRhdGFQYXlsb2FkQnl0ZXMpOworfQorCit2b2lkIFdlYlVSTFNjaGVtZVRhc2tQcm94eTo6
ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKCFoYXNM
b2FkZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGVycm9yLmlzTnVsbCgpKQorICAg
ICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoTmV0d29ya0xvYWRNZXRyaWNzKCkp
OworICAgIGVsc2UKKyAgICAgICAgbV9jb3JlTG9hZGVyLT5kaWRGYWlsKGVycm9yKTsKKworICAg
IG1fY29yZUxvYWRlciA9IG51bGxwdHI7Cit9CisKK2Jvb2wgV2ViVVJMU2NoZW1lVGFza1Byb3h5
OjpoYXNMb2FkZXIoKQoreworICAgIGlmIChtX2NvcmVMb2FkZXIgJiYgbV9jb3JlTG9hZGVyLT5y
ZWFjaGVkVGVybWluYWxTdGF0ZSgpKQorICAgICAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwor
CisgICAgcmV0dXJuIG1fY29yZUxvYWRlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1l
VGFza1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2No
ZW1lVGFza1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJiNmQ2ZmVjYTE1Zjc5NDAwNzM1NzkyNTU3MTUw
YTdjNDZmYjEwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVz
b3VyY2VMb2FkZXI7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OworCitjbGFzcyBXZWJVUkxT
Y2hlbWVUYXNrUHJveHkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlVSTFNjaGVtZVRh
c2tQcm94eSk7CitwdWJsaWM6CisgICAgV2ViVVJMU2NoZW1lVGFza1Byb3h5KFdlYlVSTFNjaGVt
ZUhhbmRsZXJQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJik7CisKKyAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVl
c3Q7IH0KKworICAgIHZvaWQgc3RhcnRMb2FkaW5nKCk7CisgICAgdm9pZCBzdG9wTG9hZGluZygp
OworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoc2l6ZV90LCBjb25zdCB1aW50OF90
KiBkYXRhKTsKKyAgICB2b2lkIGRpZENvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKKworICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFzTG9hZGVyKCk7CisKKyAgICBX
ZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkmIG1fdXJsU2NoZW1lSGFuZGxlcjsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fY29yZUxvYWRlcjsKKyAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9yZXF1ZXN0OworICAgIHVuc2lnbmVkIGxvbmcgbV9pZGVudGlmaWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308757</attachid>
            <date>2017-05-01 13:24:10 -0700</date>
            <delta_ts>2017-05-01 15:41:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171508-20170501132409.patch</filename>
            <type>text/plain</type>
            <size>108226</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTIyNmZmMjY4YmIyMjZj
YzY5ZWU4MzRlMTYyNDA5NmYyNjgwOGM0Yy4uMTM4NTYxNWY3ZGQ3Y2FmM2YxZmZmMzNiYTM1NWIy
ZDUwOGI1YjZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE3LTA1LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgbmFtZXMgaW4g
V0tVUkxTY2hlbWVIYW5kbGVyL1dLVVJMU2NoZW1lSGFuZGxlclRhc2sgQVBJcy4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMxODI0ODM4PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTUwOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisK
KyAgICAgICAgVGhpcyBwYXRjaDoKKyAgICAgICAgLSBSZW5hbWVzIFdLVVJMU2NoZW1lSGFuZGxl
clRhc2sgdG8gV0tVUkxTY2hlbWVUYXNrCisgICAgICAgIC0gUmVuYW1lcyB0aGUgbWV0aG9kICJz
dGFydFRhc2siIHRvICJzdGFydFVSTFNjaGVtZVRhc2siCisgICAgICAgIC0gUmVuYW1lcyB0aGUg
bWV0aG9kICJzdG9wVGFzayIgdG8gInN0b3BVUkxTY2hlbWVUYXNrIgorCisgICAgICAgIFRvIHRo
b3NlIGVmZmVjdHMgaXQncyBiYXNpY2FsbHkgYSBnbG9iYWwgcmVwbGFjZS4KKworICAgICAgICAq
IFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVj
dC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJVVJMU2NoZW1lVGFzay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcC4KKyAgICAgICAgKEFQ
STo6VVJMU2NoZW1lVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6VVJMU2NoZW1lVGFzazo6
VVJMU2NoZW1lVGFzayk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVUYXNr
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVt
ZUhhbmRsZXJUYXNrLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZUhhbmRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFz
ay5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZUhhbmRsZXJUYXNrLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2subW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2subW0uCisgICAgICAgIChyYWlzZUV4Y2VwdGlv
bklmTmVjZXNzYXJ5KToKKyAgICAgICAgKC1bV0tVUkxTY2hlbWVUYXNrSW1wbCByZXF1ZXN0XSk6
CisgICAgICAgICgtW1dLVVJMU2NoZW1lVGFza0ltcGwgZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgor
ICAgICAgICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIGRpZFJlY2VpdmVEYXRhOl0pOgorICAgICAg
ICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIGRpZEZpbmlzaF0pOgorICAgICAgICAoLVtXS1VSTFNj
aGVtZVRhc2tJbXBsIGRpZEZhaWxXaXRoRXJyb3I6XSk6CisgICAgICAgICgtW1dLVVJMU2NoZW1l
VGFza0ltcGwgX2FwaU9iamVjdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
UkxTY2hlbWVUYXNrSW50ZXJuYWwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmguCisgICAgICAg
IChXZWJLaXQ6OndyYXBwZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hl
bWVIYW5kbGVyQ29jb2EuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1l
SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2E6OnBsYXRmb3JtU3RhcnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFu
ZGxlckNvY29hOjpwbGF0Zm9ybVN0b3BUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVt
ZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BVUkxTY2hlbWVUYXNr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZUhhbmRsZXJU
YXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wVVJMU2No
ZW1lSGFuZGxlclRhc2spOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lSGFuZGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVIYW5kbGVyVGFzay5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRh
c2spOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnN0b3ApOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2suaC4KKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFz
azo6aWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnJlcXVl
c3QpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lVGFza1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZVVSTFNjaGVtZVRhc2tQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVUYXNr
RGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVUYXNr
RGlkQ29tcGxldGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVy
VGFza0RpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnVybFNjaGVtZUhhbmRsZXJUYXNrRGlkUmVjZWl2ZURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnN0YXJ0TmV3VGFzayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6dGFza0RpZENvbXBsZXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclByb3h5Ojp0YXNrRGlkU3RvcExvYWRpbmcp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxT
Y2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1l
VGFza1Byb3h5OjpXZWJVUkxTY2hlbWVUYXNrUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJV
UkxTY2hlbWVUYXNrUHJveHk6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVS
TFNjaGVtZVRhc2tQcm94eTo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxT
Y2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVSTFNjaGVtZVRhc2tQcm94eTo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMU2NoZW1lVGFza1Byb3h5OjpoYXNMb2FkZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmguCisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6cmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6aWRlbnRpZmllcik6CisKIDIwMTctMDUtMDEg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIEFkZCBhdXRvbWF0aW9uIHNlc3Npb24gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDRm
Y2VlMWI4M2M3MmQ5YzQzNGI5ZDBiYmRkYThjMDQ1OTQ3ODA2MTUuLjk3N2I0NzM4M2FlZmE2NzE1
OGViOWEzYWUxN2Q5MTgwMDIyMjEyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0zMjcsNyAr
MzI3LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAotICAgIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVy
VGFzay5jcHAKKyAgICBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKICAgICBVSVByb2Nl
c3MvV2ViVmlicmF0aW9uUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlZpYnJhdGlvblBy
b3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJWaWV3cG9ydEF0dHJpYnV0ZXMuY3BwCkBAIC0zNDQs
NyArMzQ0LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQVBJT3BlblBhbmVs
UGFyYW1ldGVycy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0FQSVNlc3Npb25TdGF0ZS5jcHAKLSAg
ICBVSVByb2Nlc3MvQVBJL0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQVBJVVJMU2NoZW1lVGFzay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250
ZW50V29ybGQuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9BUElVc2VyU2NyaXB0LmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQVBJVXNlclN0eWxlU2hlZXQuY3BwCkBAIC01ODUsNyArNTg1LDcgQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuY3BwCiAgICAgV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKLSAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcAogICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJVbmRvU3RlcC5jcHAKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0
LmgKaW5kZXggNzNkYThmOGY3OTA5NGEwYjZlNjliMzZkMmYxYmMyMWQ5YjM1M2FlNC4uYjgyNmFj
ZmUyNjJiNzVkNjRjZDc5MjBhMGVkODMyZGEyNzRiN2NlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0FQSU9iamVjdC5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHVibGljOgogICAgICAgICBSdW5K
YXZhU2NyaXB0Q29uZmlybVJlc3VsdExpc3RlbmVyLAogICAgICAgICBSdW5KYXZhU2NyaXB0UHJv
bXB0UmVzdWx0TGlzdGVuZXIsCiAgICAgICAgIFRleHRDaGVja2VyLAotICAgICAgICBVUkxTY2hl
bWVIYW5kbGVyVGFzaywKKyAgICAgICAgVVJMU2NoZW1lVGFzaywKICAgICAgICAgVXNlckNvbnRl
bnRDb250cm9sbGVyLAogICAgICAgICBVc2VyQ29udGVudFdvcmxkLAogICAgICAgICBVc2VySW5p
dGlhdGVkQWN0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0FQ
SU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KaW5k
ZXggMjU4ZjQyYmU1MmI2Mjc3MmQ2NWJkOTAwOTM3ZjNmZjJhNDNhZDI4Yi4uMTdkN2UzNzQwMzI0
YmVjMDVkNWRjMTdiNTdiNWU2ZTVlNmU2MjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29j
b2EvQVBJT2JqZWN0Lm1tCkBAIC01NCw3ICs1NCw3IEBACiAjaW1wb3J0ICJXS1ByZWZlcmVuY2Vz
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vzc1Bvb2xJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tTZWN1cml0eU9yaWdpbkludGVybmFsLmgiCi0jaW1wb3J0ICJXS1VSTFNjaGVtZUhhbmRsZXJU
YXNrSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLVVJMU2NoZW1lVGFza0ludGVybmFsLmgiCiAjaW1w
b3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS1VzZXJT
Y3JpcHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVySW50ZXJuYWwuaCIKQEAgLTIzOCw4ICsyMzgsOCBAQCB2b2lkKiBPYmplY3Q6
Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwZSB0eXBlKQogICAgICAgICB3cmFwcGVyID0gTlNB
bGxvY2F0ZU9iamVjdChbV0tOU1VSTFJlcXVlc3QgY2xhc3NdLCBzaXplLCBudWxscHRyKTsKICAg
ICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFR5cGU6OlVSTFNjaGVtZUhhbmRsZXJUYXNrOgotICAg
ICAgICB3cmFwcGVyID0gW1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsIGFsbG9jXTsKKyAgICBj
YXNlIFR5cGU6OlVSTFNjaGVtZVRhc2s6CisgICAgICAgIHdyYXBwZXIgPSBbV0tVUkxTY2hlbWVU
YXNrSW1wbCBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBUeXBlOjpVc2VyQ29u
dGVudENvbnRyb2xsZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4YzQyMDFjOTE1MjA0MzNlZjE0ZjNmNzZkOTY4Y2U1NGE2NDgwYTJmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJB
UElVUkxTY2hlbWVIYW5kbGVyVGFzay5oIgotCi0jaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxl
ci5oIgotI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0KLW5hbWVzcGFjZSBB
UEkgewotCi1SZWY8VVJMU2NoZW1lSGFuZGxlclRhc2s+IFVSTFNjaGVtZUhhbmRsZXJUYXNrOjpj
cmVhdGUoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYgd2ViVVJMU2NoZW1lSGFuZGxl
clRhc2spCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVVJMU2NoZW1lSGFuZGxlclRhc2so
d2ViVVJMU2NoZW1lSGFuZGxlclRhc2spKTsKLX0KLQotVVJMU2NoZW1lSGFuZGxlclRhc2s6OlVS
TFNjaGVtZUhhbmRsZXJUYXNrKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smIHdlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrKQotICAgIDogbV93ZWJVUkxTY2hlbWVIYW5kbGVyVGFzayh3ZWJV
UkxTY2hlbWVIYW5kbGVyVGFzaykKLXsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZTMxNTA4ZmQwOWUyNWE5NDNlY2I3YzQ0ZTkyMmFkNjk2ZjA5YWMz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVVJMU2NoZW1lSGFuZGxlclRhc2suaAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrOwotfQotCi1uYW1lc3BhY2UgQVBJIHsKLQotY2xhc3MgVVJMU2NoZW1lSGFu
ZGxlclRhc2sgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlVSTFNjaGVt
ZUhhbmRsZXJUYXNrPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVUkxTY2hlbWVIYW5kbGVy
VGFzaz4gY3JlYXRlKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smKTsKLQotICAgIFdl
YktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2smIHRhc2soKSB7IHJldHVybiBtX3dlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgVVJMU2NoZW1lSGFuZGxl
clRhc2soV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpOwotCi0gICAgUmVmPFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlclRhc2s+IG1fd2ViVVJMU2NoZW1lSGFuZGxlclRhc2s7Ci19
OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNj
aGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVUkxTY2hlbWVU
YXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYTliOGM3NGZlZGZiNDRhNDM5Njc3ZTY3Mjc0YWIzODU3N2Nk
NDg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
UkxTY2hlbWVUYXNrLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSVVSTFNjaGVtZVRhc2suaCIKKworI2luY2x1ZGUgIldl
YlVSTFNjaGVtZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrLmgiCisKK25h
bWVzcGFjZSBBUEkgeworCitSZWY8VVJMU2NoZW1lVGFzaz4gVVJMU2NoZW1lVGFzazo6Y3JlYXRl
KFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzayYgd2ViVVJMU2NoZW1lVGFzaykKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBVUkxTY2hlbWVUYXNrKHdlYlVSTFNjaGVtZVRhc2spKTsKK30KKwor
VVJMU2NoZW1lVGFzazo6VVJMU2NoZW1lVGFzayhXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2smIHdl
YlVSTFNjaGVtZVRhc2spCisgICAgOiBtX3dlYlVSTFNjaGVtZVRhc2sod2ViVVJMU2NoZW1lVGFz
aykKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVSTFNj
aGVtZVRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODU2MGQ5YzEwYjNkMWRjMmVjODZjZmYwYTM2NzE3MWRi
NzgxNzdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVUkxTY2hlbWVUYXNrLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xh
c3MgV2ViVVJMU2NoZW1lVGFzazsKK30KKworbmFtZXNwYWNlIEFQSSB7CisKK2NsYXNzIFVSTFNj
aGVtZVRhc2sgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlVSTFNjaGVt
ZVRhc2s+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFVSTFNjaGVtZVRhc2s+IGNyZWF0ZShX
ZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2smKTsKKworICAgIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFz
ayYgdGFzaygpIHsgcmV0dXJuIG1fd2ViVVJMU2NoZW1lVGFzay5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFVSTFNjaGVtZVRhc2soV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrJik7CisKKyAgICBS
ZWY8V2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrPiBtX3dlYlVSTFNjaGVtZVRhc2s7Cit9OworCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lSGFuZGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNj
aGVtZUhhbmRsZXIuaAppbmRleCBjNDMxYmM1MDU3YzUyZTBkOTkzZGYzNTgwNjM3N2VlOTY4ZTMz
ZTE3Li45M2U3N2M3MTRmY2ZkOGFlNzNiMjYwZjZmNjdlYTI2MmE4MDBiNDExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5k
bGVyLmgKQEAgLTMyLDcgKzMyLDcgQEAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBjbGFz
cyBXS1dlYlZpZXc7Ci1AcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyVGFzazsKK0Bwcm90b2Nv
bCBXS1VSTFNjaGVtZVRhc2s7CiAKIC8qISBBIGNsYXNzIGNvbmZvcm1pbmcgdG8gdGhlIFdLVVJM
U2NoZW1lSGFuZGxlciBwcm90b2NvbCBwcm92aWRlcyBtZXRob2RzIGZvcgogIGxvYWRpbmcgcmVz
b3VyY2VzIHdpdGggVVJMIHNjaGVtZXMgdGhhdCBXZWJLaXQgZG9lc24ndCBrbm93IGhvdyB0byBo
YW5kbGUgaXRzZWxmLgpAQCAtNDMsMTkgKzQzLDE5IEBAIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiAvKiEgQGFic3RyYWN0IE5vdGlmaWVzIHlv
dXIgYXBwIHRvIHN0YXJ0IGxvYWRpbmcgdGhlIGRhdGEgZm9yIGEgcGFydGljdWxhciByZXNvdXJj
ZSAKICByZXByZXNlbnRlZCBieSB0aGUgVVJMIHNjaGVtZSBoYW5kbGVyIHRhc2suCiAgQHBhcmFt
IHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBtZXRob2QuCi0gQHBhcmFtIHVybFNj
aGVtZUhhbmRsZXJUYXNrIFRoZSB0YXNrIHRoYXQgeW91ciBhcHAgc2hvdWxkIHN0YXJ0IGxvYWRp
bmcgZGF0YSBmb3IuCisgQHBhcmFtIHVybFNjaGVtZVRhc2sgVGhlIHRhc2sgdGhhdCB5b3VyIGFw
cCBzaG91bGQgc3RhcnQgbG9hZGluZyBkYXRhIGZvci4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VGFzazooaWQgPFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+
KXVybFNjaGVtZUhhbmRsZXJUYXNrOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJsU2NoZW1lVGFz
azsKIAogLyohIEBhYnN0cmFjdCBOb3RpZmllcyB5b3VyIGFwcCB0byBzdG9wIGhhbmRsaW5nIGEg
VVJMIHNjaGVtZSBoYW5kbGVyIHRhc2suCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGlu
dm9raW5nIHRoZSBtZXRob2QuCi0gQHBhcmFtIHVybFNjaGVtZUhhbmRsZXJUYXNrIFRoZSB0YXNr
IHRoYXQgeW91ciBhcHAgc2hvdWxkIHN0b3AgaGFuZGxpbmcuCisgQHBhcmFtIHVybFNjaGVtZVRh
c2sgVGhlIHRhc2sgdGhhdCB5b3VyIGFwcCBzaG91bGQgc3RvcCBoYW5kbGluZy4KICBAZGlzY3Vz
c2lvbiBBZnRlciB5b3VyIGFwcCBpcyB0b2xkIHRvIHN0b3AgbG9hZGluZyBkYXRhIGZvciBhIFVS
TCBzY2hlbWUgaGFuZGxlciB0YXNrCiAgaXQgbXVzdCBub3QgcGVyZm9ybSBhbnkgY2FsbGJhY2tz
IGZvciB0aGF0IHRhc2suCiAgQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIGFueSBjYWxs
YmFja3MgYXJlIG1hZGUgb24gdGhlIFVSTCBzY2hlbWUgaGFuZGxlciB0YXNrCiAgYWZ0ZXIgeW91
ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcgZm9yIGl0LgogICovCi0tICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RvcFRhc2s6KGlkIDxXS1VSTFNjaGVtZUhh
bmRsZXJUYXNrPil1cmxTY2hlbWVIYW5kbGVyVGFzazsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBzdG9wVVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJs
U2NoZW1lVGFzazsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2suaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyOWZlMzk2NWU4YjM4ZTAwNzYyYzU5MzYwYjdlZWJmZmI1NmY1YTI4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdlYktpdC9X
S0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1XS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQotQHByb3RvY29sIFdL
VVJMU2NoZW1lSGFuZGxlclRhc2sgPE5TT2JqZWN0PgotCi0vKiEgQGFic3RyYWN0IFRoZSByZXF1
ZXN0IHRvIGxvYWQgZm9yIHRoaXMgdGFzay4KLSAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBjb3B5KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7Ci0KLS8qISBAYWJzdHJhY3QgU2V0
IHRoZSBjdXJyZW50IHJlc3BvbnNlIG9iamVjdCBmb3IgdGhlIHRhc2suCi0gQHBhcmFtIHJlc3Bv
bnNlIFRoZSByZXNwb25zZSB0byB1c2UuCi0gQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgbXVzdCBi
ZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBmb3IgZWFjaCBVUkwgc2NoZW1lIGhhbmRsZXIgdGFzay4K
LSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIGEgbmV3IHJl
c3BvbnNlIG9iamVjdCBhZnRlciB0aGUgdGFzayBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4K
LSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0
byBzdG9wIGxvYWRpbmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhh
bmRsZXIgb2JqZWN0LgotICovCi0tICh2b2lkKWRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNw
b25zZSAqKXJlc3BvbnNlOwotCi0vKiEgQGFic3RyYWN0IEFkZCByZWNlaXZlZCBkYXRhIHRvIHRo
ZSB0YXNrLgotIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGFkZC4KLSBAZGlzY3Vzc2lvbiBBZnRl
ciBhIFVSTCBzY2hlbWUgaGFuZGxlciB0YXNrJ3MgZmluYWwgcmVzcG9uc2Ugb2JqZWN0IGlzIHJl
Y2VpdmVkIHlvdSBzaG91bGQKLSBzdGFydCBzZW5kaW5nIGl0IGRhdGEuCi0gRWFjaCB0aW1lIHRo
aXMgbWV0aG9kIGlzIGNhbGxlZCB0aGUgZGF0YSB5b3Ugc2VuZCB3aWxsIGJlIGFwcGVuZGVkIHRv
IGFsbCBwcmV2aW91cyBkYXRhLgotIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3Ug
dHJ5IHRvIHNlbmQgdGhlIHRhc2sgYW55IGRhdGEgYmVmb3JlIHNlbmRpbmcgaXQgYSByZXNwb25z
ZS4KLSBBbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIHRoZSB0
YXNrIGFueSBkYXRhIGFmdGVyIHRoZSB0YXNrIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgot
IEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRv
IHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFu
ZGxlciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGE7
Ci0KLS8qISBAYWJzdHJhY3QgTWFyayB0aGUgdGFzayBhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVk
LgotIEBkaXNjdXNzaW9uIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRv
IGZpbmlzaCB0aGUgdGFzayBiZWZvcmUgc2VuZGluZyBpdCBhIHJlc3BvbnNlLgotIEFuIGV4Y2Vw
dGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIG1hcmsgYSB0YXNrIGNvbXBsZXRlZCBh
ZnRlciBpdCBoYXMgYWxyZWFkeSBiZWVuIG1hcmtlZCBjb21wbGV0ZWQgb3IgZmFpbGVkLgotIEFu
IGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0
b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxl
ciBvYmplY3QuCi0gKi8KLS0gKHZvaWQpZGlkRmluaXNoOwotCi0vKiEgQGFic3RyYWN0IE1hcmsg
dGhlIHRhc2sgYXMgZmFpbGVkLgotIEBwYXJhbSBlcnJvciBBIGRlc2NyaXB0aW9uIG9mIHRoZSBl
cnJvciB0aGF0IGNhdXNlZCB0aGUgdGFzayB0byBmYWlsLgotIEBkaXNjdXNzaW9uICBBbiBleGNl
cHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBtYXJrIGEgdGFzayBmYWlsZWQgYWZ0
ZXIgaXQgaGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgY29tcGxldGVkIG9yIGZhaWxlZC4KLSBBbiBl
eGNlcHRpb24gd2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9w
IGxvYWRpbmcgdGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIg
b2JqZWN0LgotICovCi0tICh2b2lkKWRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsK
LQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2su
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxl
clRhc2subW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1MmYxMzFiZjZiYjZiNDBm
OTI1M2NlOTg4ZmFkYzE4MWViODVmODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNj
aGVtZUhhbmRsZXJUYXNrLm1tCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV0tVUkxTY2hlbWVIYW5kbGVyVGFz
a0ludGVybmFsLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi0jaW5jbHVkZSAiV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2suaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotc3RhdGljIHZvaWQg
cmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
OjpFeGNlcHRpb25UeXBlIGV4Y2VwdGlvblR5cGUpCi17Ci0gICAgc3dpdGNoIChleGNlcHRpb25U
eXBlKSB7Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRp
b25UeXBlOjpOb25lOgotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ6Ci0gICAg
ICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBm
b3JtYXQ6QCJUaGlzIHRhc2sgaGFzIGFscmVhZHkgYmVlbiBzdG9wcGVkIl07Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9u
VHlwZTo6Q29tcGxldGVBbHJlYWR5Q2FsbGVkOgotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6
TlNJbnRlcm5hbEluY29uc2lzdGVuY3lFeGNlcHRpb24gZm9ybWF0OkAiW1dLVVJMU2NoZW1lSGFu
ZGxlclRhc2sgdGFza0RpZENvbXBsZXRlV2l0aEVycm9yOl0gaGFzIGFscmVhZHkgYmVlbiBjYWxs
ZWQgZm9yIHRoaXMgdGFzayJdOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYktpdDo6V2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5U2VudDoKLSAg
ICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0aW9u
IGZvcm1hdDpAIltXS1VSTFNjaGVtZUhhbmRsZXJUYXNrIHRhc2tEaWRSZWNlaXZlRGF0YTpdIGhh
cyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciB0aGlzIHRhc2siXTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlOjpO
b1Jlc3BvbnNlU2VudDoKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNv
bnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIk5vIHJlc3BvbnNlIGhhcyBiZWVuIHNlbnQgZm9y
IHRoaXMgdGFzayJdOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLUBpbXBsZW1lbnRhdGlv
biBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW1wbAotCi0tIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0
Ci17Ci0gICAgcmV0dXJuIF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLnJlcXVlc3QoKS5u
c1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSk7Ci19Ci0KLS0gKHZvaWQpZGlkUmVjZWl2
ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UKLXsKLSAgICBhdXRvIHJlc3VsdCA9
IF91cmxTY2hlbWVIYW5kbGVyVGFzay0+dGFzaygpLmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25z
ZSk7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOwotfQotCi0tICh2b2lk
KWRpZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhCi17Ci0gICAgYXV0byByZXN1bHQgPSBfdXJs
U2NoZW1lSGFuZGxlclRhc2stPnRhc2soKS5kaWRSZWNlaXZlRGF0YShXZWJDb3JlOjpTaGFyZWRC
dWZmZXI6OmNyZWF0ZShkYXRhKSk7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1
bHQpOwotfQotCi0tICh2b2lkKWRpZEZpbmlzaAotewotICAgIGF1dG8gcmVzdWx0ID0gX3VybFNj
aGVtZUhhbmRsZXJUYXNrLT50YXNrKCkuZGlkQ29tcGxldGUoeyB9KTsKLSAgICByYWlzZUV4Y2Vw
dGlvbklmTmVjZXNzYXJ5KHJlc3VsdCk7Ci19Ci0KLS0gKHZvaWQpZGlkRmFpbFdpdGhFcnJvcjoo
TlNFcnJvciAqKWVycm9yCi17Ci0gICAgYXV0byByZXN1bHQgPSBfdXJsU2NoZW1lSGFuZGxlclRh
c2stPnRhc2soKS5kaWRDb21wbGV0ZShlcnJvcik7Ci0gICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vz
c2FyeShyZXN1bHQpOwotfQotCi0jcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVt
ZW50YXRpb24KLQotLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKLXsKLSAgICByZXR1cm4gKl91
cmxTY2hlbWVIYW5kbGVyVGFzazsKLX0KLQotQGVuZAotCi0jZW5kaWYgLy8gI2lmIFdLX0FQSV9F
TkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50ZXJuYWwuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjI0NjgwMWY1ODM2NjZjYTMxNTgxNjA2YWQyODYwOGY2MmE0OGRl
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlclRhc2tJbnRlcm5h
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
IldLVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBv
cnQgIkFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0jaW1wb3J0ICJXS09iamVjdC5oIgotCi1A
aW50ZXJmYWNlIFdLVVJMU2NoZW1lSGFuZGxlclRhc2tJbXBsIDogTlNPYmplY3QgPFdLVVJMU2No
ZW1lSGFuZGxlclRhc2s+Ci1AZW5kCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1pbmxpbmUgaWQ8
V0tVUkxTY2hlbWVIYW5kbGVyVGFzaz4gd3JhcHBlcihBUEk6OlVSTFNjaGVtZUhhbmRsZXJUYXNr
JiB1cmxTY2hlbWVIYW5kbGVyVGFzaykKLXsKLSAgICBBU1NFUlQoW3VybFNjaGVtZUhhbmRsZXJU
YXNrLndyYXBwZXIoKSBpc0tpbmRPZkNsYXNzOltXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW1wbCBj
bGFzc11dKTsKLSAgICByZXR1cm4gKGlkPFdLVVJMU2NoZW1lSGFuZGxlclRhc2s+KXVybFNjaGVt
ZUhhbmRsZXJUYXNrLndyYXBwZXIoKTsKLX0KLQotfQotCi1AaW50ZXJmYWNlIFdLVVJMU2NoZW1l
SGFuZGxlclRhc2tJbXBsICgpIDxXS09iamVjdD4gewotQHBhY2thZ2UKLSAgICBBUEk6Ok9iamVj
dFN0b3JhZ2U8QVBJOjpVUkxTY2hlbWVIYW5kbGVyVGFzaz4gX3VybFNjaGVtZUhhbmRsZXJUYXNr
OwotfQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZkMDA1YjQ3NzYwMjU0OTVkYWRlYWFhYzU1OGU1MmZkYjE0NGQ0YjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5o
CkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK0Bwcm90b2NvbCBXS1VSTFNjaGVt
ZVRhc2sgPE5TT2JqZWN0PgorCisvKiEgQGFic3RyYWN0IFRoZSByZXF1ZXN0IHRvIGxvYWQgZm9y
IHRoaXMgdGFzay4KKyAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBO
U1VSTFJlcXVlc3QgKnJlcXVlc3Q7CisKKy8qISBAYWJzdHJhY3QgU2V0IHRoZSBjdXJyZW50IHJl
c3BvbnNlIG9iamVjdCBmb3IgdGhlIHRhc2suCisgQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNwb25z
ZSB0byB1c2UuCisgQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYXQgbGVh
c3Qgb25jZSBmb3IgZWFjaCBVUkwgc2NoZW1lIGhhbmRsZXIgdGFzay4KKyBBbiBleGNlcHRpb24g
d2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIGEgbmV3IHJlc3BvbnNlIG9iamVjdCBh
ZnRlciB0aGUgdGFzayBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyBBbiBleGNlcHRpb24g
d2lsbCBiZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcg
dGhpcyB0YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIgb2JqZWN0Lgor
ICovCistICh2b2lkKWRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNl
OworCisvKiEgQGFic3RyYWN0IEFkZCByZWNlaXZlZCBkYXRhIHRvIHRoZSB0YXNrLgorIEBwYXJh
bSBkYXRhIFRoZSBkYXRhIHRvIGFkZC4KKyBAZGlzY3Vzc2lvbiBBZnRlciBhIFVSTCBzY2hlbWUg
aGFuZGxlciB0YXNrJ3MgZmluYWwgcmVzcG9uc2Ugb2JqZWN0IGlzIHJlY2VpdmVkIHlvdSBzaG91
bGQKKyBzdGFydCBzZW5kaW5nIGl0IGRhdGEuCisgRWFjaCB0aW1lIHRoaXMgbWV0aG9kIGlzIGNh
bGxlZCB0aGUgZGF0YSB5b3Ugc2VuZCB3aWxsIGJlIGFwcGVuZGVkIHRvIGFsbCBwcmV2aW91cyBk
YXRhLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIHNlbmQgdGhl
IHRhc2sgYW55IGRhdGEgYmVmb3JlIHNlbmRpbmcgaXQgYSByZXNwb25zZS4KKyBBbiBleGNlcHRp
b24gd2lsbCBiZSB0aHJvd24gaWYgeW91IHRyeSB0byBzZW5kIHRoZSB0YXNrIGFueSBkYXRhIGFm
dGVyIHRoZSB0YXNrIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorIEFuIGV4Y2VwdGlvbiB3
aWxsIGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGluZyB0
aGlzIHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmplY3QuCisg
Ki8KKy0gKHZvaWQpZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGE7CisKKy8qISBAYWJzdHJh
Y3QgTWFyayB0aGUgdGFzayBhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLgorIEBkaXNjdXNzaW9u
IEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIGZpbmlzaCB0aGUgdGFz
ayBiZWZvcmUgc2VuZGluZyBpdCBhIHJlc3BvbnNlLgorIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRo
cm93biBpZiB5b3UgdHJ5IHRvIG1hcmsgYSB0YXNrIGNvbXBsZXRlZCBhZnRlciBpdCBoYXMgYWxy
ZWFkeSBiZWVuIG1hcmtlZCBjb21wbGV0ZWQgb3IgZmFpbGVkLgorIEFuIGV4Y2VwdGlvbiB3aWxs
IGJlIHRocm93biBpZiB5b3VyIGFwcCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlz
IHRhc2sgdmlhIHRoZSByZWdpc3RlcmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmplY3QuCisgKi8K
Ky0gKHZvaWQpZGlkRmluaXNoOworCisvKiEgQGFic3RyYWN0IE1hcmsgdGhlIHRhc2sgYXMgZmFp
bGVkLgorIEBwYXJhbSBlcnJvciBBIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvciB0aGF0IGNhdXNl
ZCB0aGUgdGFzayB0byBmYWlsLgorIEBkaXNjdXNzaW9uICBBbiBleGNlcHRpb24gd2lsbCBiZSB0
aHJvd24gaWYgeW91IHRyeSB0byBtYXJrIGEgdGFzayBmYWlsZWQgYWZ0ZXIgaXQgaGFzIGFscmVh
ZHkgYmVlbiBtYXJrZWQgY29tcGxldGVkIG9yIGZhaWxlZC4KKyBBbiBleGNlcHRpb24gd2lsbCBi
ZSB0aHJvd24gaWYgeW91ciBhcHAgaGFzIGJlZW4gdG9sZCB0byBzdG9wIGxvYWRpbmcgdGhpcyB0
YXNrIHZpYSB0aGUgcmVnaXN0ZXJlZCBXS1VSTFNjaGVtZUhhbmRsZXIgb2JqZWN0LgorICovCist
ICh2b2lkKWRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKKworQGVuZAorCitOU19B
U1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZWY2ODlk
NzRlMWQwYWI1MmIxYmZmNjc1ZjZmZTBhZGRkMDYzMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbQpAQCAtMCww
ICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1VS
TFNjaGVtZVRhc2tJbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2luY2x1ZGUg
IldlYlVSTFNjaGVtZVRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIHZv
aWQgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OkV4
Y2VwdGlvblR5cGUgZXhjZXB0aW9uVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGV4Y2VwdGlvblR5cGUp
IHsKKyAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9u
ZToKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpF
eGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJUaGlzIHRhc2sg
aGFzIGFscmVhZHkgYmVlbiBzdG9wcGVkIl07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
S2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpDb21wbGV0ZUFscmVhZHlDYWxs
ZWQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFsSW5jb25zaXN0ZW5jeUV4
Y2VwdGlvbiBmb3JtYXQ6QCJbV0tVUkxTY2hlbWVUYXNrIHRhc2tEaWRDb21wbGV0ZVdpdGhFcnJv
cjpdIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciB0aGlzIHRhc2siXTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkRh
dGFBbHJlYWR5U2VudDoKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNv
bnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIltXS1VSTFNjaGVtZVRhc2sgdGFza0RpZFJlY2Vp
dmVEYXRhOl0gaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgZm9yIHRoaXMgdGFzayJdOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0aW9uVHlw
ZTo6Tm9SZXNwb25zZVNlbnQ6CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludGVybmFs
SW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJObyByZXNwb25zZSBoYXMgYmVlbiBzZW50
IGZvciB0aGlzIHRhc2siXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitAaW1wbGVtZW50
YXRpb24gV0tVUkxTY2hlbWVUYXNrSW1wbAorCistIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0Cit7
CisgICAgcmV0dXJuIF91cmxTY2hlbWVUYXNrLT50YXNrKCkucmVxdWVzdCgpLm5zVVJMUmVxdWVz
dChEb05vdFVwZGF0ZUhUVFBCb2R5KTsKK30KKworLSAodm9pZClkaWRSZWNlaXZlUmVzcG9uc2U6
KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZQoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVt
ZVRhc2stPnRhc2soKS5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOworICAgIHJhaXNlRXhj
ZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKworLSAodm9pZClkaWRSZWNlaXZlRGF0YToo
TlNEYXRhICopZGF0YQoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRhc2stPnRhc2so
KS5kaWRSZWNlaXZlRGF0YShXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKSk7Cisg
ICAgcmFpc2VFeGNlcHRpb25JZk5lY2Vzc2FyeShyZXN1bHQpOworfQorCistICh2b2lkKWRpZEZp
bmlzaAoreworICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRhc2stPnRhc2soKS5kaWRDb21w
bGV0ZSh7IH0pOworICAgIHJhaXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKwor
LSAodm9pZClkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAgICBhdXRvIHJl
c3VsdCA9IF91cmxTY2hlbWVUYXNrLT50YXNrKCkuZGlkQ29tcGxldGUoZXJyb3IpOworICAgIHJh
aXNlRXhjZXB0aW9uSWZOZWNlc3NhcnkocmVzdWx0KTsKK30KKworI3ByYWdtYSBtYXJrIFdLT2Jq
ZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0
Cit7CisgICAgcmV0dXJuICpfdXJsU2NoZW1lVGFzazsKK30KKworQGVuZAorCisjZW5kaWYgLy8g
I2lmIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza0ludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZk
NjFmZjUwN2ZiMTUzYWEzMzg1YjNkZDc0NzJiNTBmZjBiZDkwYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrSW50ZXJu
YWwuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tVUkxTY2hlbWVU
YXNrLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJBUElVUkxTY2hlbWVUYXNr
LmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgorCitAaW50ZXJmYWNlIFdLVVJMU2NoZW1lVGFza0lt
cGwgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVUYXNrPgorQGVuZAorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworaW5saW5lIGlkPFdLVVJMU2NoZW1lVGFzaz4gd3JhcHBlcihBUEk6OlVSTFNjaGVtZVRh
c2smIHVybFNjaGVtZVRhc2spCit7CisgICAgQVNTRVJUKFt1cmxTY2hlbWVUYXNrLndyYXBwZXIo
KSBpc0tpbmRPZkNsYXNzOltXS1VSTFNjaGVtZVRhc2tJbXBsIGNsYXNzXV0pOworICAgIHJldHVy
biAoaWQ8V0tVUkxTY2hlbWVUYXNrPil1cmxTY2hlbWVUYXNrLndyYXBwZXIoKTsKK30KKworfQor
CitAaW50ZXJmYWNlIFdLVVJMU2NoZW1lVGFza0ltcGwgKCkgPFdLT2JqZWN0PiB7CitAcGFja2Fn
ZQorICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OlVSTFNjaGVtZVRhc2s+IF91cmxTY2hlbWVU
YXNrOworfQorQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2Eu
aAppbmRleCBkYWVhYzQ1MDkxMDA4MDg5ZTEzM2I0NmQ4ZWVmYTc4NThkZDk0Mzc3Li4yNTkwYWYz
MzAxMzRhMGZjMGM3OTgwN2IyNTU5MDRiNjcwNGU5YzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5oCkBA
IC0zMSw3ICszMSw3IEBACiBAcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyOwogCiBuYW1lc3Bh
Y2UgQVBJIHsKLWNsYXNzIFVSTFNjaGVtZUhhbmRsZXJUYXNrOworY2xhc3MgVVJMU2NoZW1lVGFz
azsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NSwxMSArNDUsMTEgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EoaWQgPFdLVVJMU2NoZW1lSGFu
ZGxlcj4pOwogCi0gICAgdm9pZCBwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJV
UkxTY2hlbWVIYW5kbGVyVGFzayYpIGZpbmFsOwotICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhX
ZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpIGZpbmFsOworICAgIHZvaWQg
cGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpIGZpbmFs
OworICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVU
YXNrJikgZmluYWw7CiAKICAgICBSZXRhaW5QdHI8aWQgPFdLVVJMU2NoZW1lSGFuZGxlcj4+IG1f
YXBpSGFuZGxlcjsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8QVBJOjpVUkxTY2hlbWVIYW5k
bGVyVGFzaz4+IG1fYXBpVGFza3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmPEFQSTo6VVJM
U2NoZW1lVGFzaz4+IG1fYXBpVGFza3M7CiAKIH07IC8vIGNsYXNzIFdlYlVSTFNjaGVtZUhhbmRs
ZXIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJV
UkxTY2hlbWVIYW5kbGVyQ29jb2EubW0KaW5kZXggNjM4MzkxNDU1MGRkYzE4NDY2MzczMjU1ZDIz
OGJiYmZiYzg1OGI0Mi4uYjg0Y2M2NDJkM2RkMzgwYzcxOTZiYjVjODFhYTg4ZDQ2MjE5NzE4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlVSTFNjaGVtZUhh
bmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hLm1tCkBAIC0yNiwxMiArMjYsMTIgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgiCiAKLSNpbXBvcnQgIkFQ
SVVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCisjaW1wb3J0ICJBUElVUkxTY2hlbWVUYXNrLmgiCiAj
aW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKICNpbXBvcnQgIldLVVJMU2NoZW1lSGFuZGxlci5oIgot
I2ltcG9ydCAiV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmgiCisjaW1wb3J0ICJXS1VS
TFNjaGVtZVRhc2tJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKLSNp
bXBvcnQgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmgiCisjaW1wb3J0ICJXZWJVUkxTY2hlbWVU
YXNrLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NywyNyArNDcsMjcgQEAg
V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EoaWQgPFdL
VVJMU2NoZW1lSGFuZGxlcj4gYXBpSGEKIHsKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVy
Q29jb2E6OnBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViVVJMU2NoZW1l
SGFuZGxlclRhc2smIHRhc2spCit2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYTo6cGxhdGZv
cm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQog
ewogI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgYXV0byByZXN1bHQgPSBtX2FwaVRhc2tzLmFkZCh0
YXNrLmlkZW50aWZpZXIoKSwgQVBJOjpVUkxTY2hlbWVIYW5kbGVyVGFzazo6Y3JlYXRlKHRhc2sp
KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fYXBpVGFza3MuYWRkKHRhc2suaWRlbnRpZmllcigpLCBB
UEk6OlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05l
d0VudHJ5KTsKIAotICAgIFttX2FwaUhhbmRsZXIuZ2V0KCkgd2ViVmlldzpmcm9tV2ViUGFnZVBy
b3h5KHBhZ2UpIHN0YXJ0VGFzazp3cmFwcGVyKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCkp
XTsKKyAgICBbbV9hcGlIYW5kbGVyLmdldCgpIHdlYlZpZXc6ZnJvbVdlYlBhZ2VQcm94eShwYWdl
KSBzdGFydFVSTFNjaGVtZVRhc2s6d3JhcHBlcihyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgp
KV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICBVTlVTRURfUEFSQU0odGFz
ayk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2E6OnBsYXRmb3Jt
U3RvcFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYgdGFz
aykKK3ZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpwbGF0Zm9ybVN0b3BUYXNrKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViVVJMU2NoZW1lVGFzayYgdGFzaykKIHsKICNpZiBXS19BUElfRU5B
QkxFRAogICAgIGF1dG8gaXRlcmF0b3IgPSBtX2FwaVRhc2tzLmZpbmQodGFzay5pZGVudGlmaWVy
KCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX2FwaVRhc2tzLmVuZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBbbV9hcGlIYW5kbGVyLmdldCgpIHdlYlZpZXc6ZnJvbVdlYlBhZ2VQcm94eShw
YWdlKSBzdG9wVGFzazp3cmFwcGVyKGl0ZXJhdG9yLT52YWx1ZS5nZXQoKSldOworICAgIFttX2Fw
aUhhbmRsZXIuZ2V0KCkgd2ViVmlldzpmcm9tV2ViUGFnZVByb3h5KHBhZ2UpIHN0b3BVUkxTY2hl
bWVUYXNrOndyYXBwZXIoaXRlcmF0b3ItPnZhbHVlLmdldCgpKV07CiAKICAgICBtX2FwaVRhc2tz
LnJlbW92ZShpdGVyYXRvcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA3YzZiODZmZjU0MTJjNDNjYzZhMDgzZjI2MTJkMDYyOTgyNDE2ODIx
Li41ZGRhNzNiMTU1NjIwODYzYmMxZDliNmFjZGU0ZGQ1Y2QxMjAyNmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjg4MCw3ICs2ODgwLDcgQEAgV2Vi
VVJMU2NoZW1lSGFuZGxlciogV2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1l
KGNvbnN0IFN0cmluZyYgc2NoZW0KICAgICByZXR1cm4gbV91cmxTY2hlbWVIYW5kbGVyc0J5U2No
ZW1lLmdldChzY2hlbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVI
YW5kbGVyVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lk
IFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlm
aWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV91cmxTY2hlbWVIYW5k
bGVyc0J5SWRlbnRpZmllci5maW5kKGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBBU1NFUlQoaXRl
cmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CkBAIC02ODg4
LDcgKzY4ODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVIYW5kbGVyVGFz
ayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0XwogICAgIGl0ZXJhdG9yLT52YWx1
ZS0+c3RhcnRUYXNrKCp0aGlzLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6c3RvcFVSTFNjaGVtZUhhbmRsZXJUYXNrKHVpbnQ2NF90IGhhbmRs
ZXJJZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2
NF90IHJlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV91cmxTY2hl
bWVIYW5kbGVyc0J5SWRlbnRpZmllci5maW5kKGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBBU1NF
UlQoaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjcwMjNhNDYwNWMwZDIy
NWFkZGZkZDFmZDhjZTIzOTc3M2Y5MGM4MC4uYWQyNTAwODczYzBmZTI1ZjNkOTI4MmUyMDZjMzhh
OTQ4YzI0N2U2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTYwOCw4ICsxNjA4LDggQEAgcHJpdmF0ZToKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIHN0
YXJ0VVJMU2NoZW1lSGFuZGxlclRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2
NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7
Ci0gICAgdm9pZCBzdG9wVVJMU2NoZW1lSGFuZGxlclRhc2sodWludDY0X3QgaGFuZGxlcklkZW50
aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBzdGFydFVSTFNj
aGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBzdG9w
VVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3Vy
Y2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgaGFuZGxlQXV0b0ZpbGxCdXR0b25DbGljayhjb25z
dCBVc2VyRGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCBiNGI5ODEwNWJjZTY4NDA4NDNmYjljMTE0NDE4Njc4M2Vm
OThhNDgzLi5hYzVkYzgyNDc5ZDY4Yzg5ZGFiMWQxNmNhMDc3NGY5NGI5M2VjYmQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTQ5Miw4ICs0OTIsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgU2V0SXNV
c2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdM
KQogCi0gICAgU3RhcnRVUkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRfdCBsb2FkZXJJZGVudGlm
aWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KQotICAgIFN0b3BVUkxTY2hlbWVIYW5kbGVyVGFzayh1aW50NjRfdCBsb2FkZXJJ
ZGVudGlmaWVyLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpCisgICAgU3RhcnRVUkxTY2hl
bWVUYXNrKHVpbnQ2NF90IGxvYWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCisgICAgU3RvcFVSTFNjaGVt
ZVRhc2sodWludDY0X3QgbG9hZGVySWRlbnRpZmllciwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlm
aWVyKQogCiAgICAgU2V0Q2xpcFRvU2FmZUFyZWEoYm9vbCBjbGlwVG9TYWZlQXJlYSkKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAppbmRl
eCBlNTk5ZWMyZjNlMWZmMjEyMWE3YmZmMzc1MDExNjllY2EzNmI2YzUyLi43NDBjMzk2NzRhM2Y4
YTlmZDA5M2NkOTNiYThjOWQzZDc2ZWI1ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgogCi0jaW5jbHVk
ZSAiV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNr
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MCw3ICs1MCw3IEBAIFdlYlVS
TFNjaGVtZUhhbmRsZXI6On5XZWJVUkxTY2hlbWVIYW5kbGVyKCkKIAogdm9pZCBXZWJVUkxTY2hl
bWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCByZXNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBhdXRv
IHJlc3VsdCA9IG1fdGFza3MuYWRkKHJlc291cmNlSWRlbnRpZmllciwgV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcmVzb3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0
KSk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZChyZXNvdXJjZUlkZW50aWZpZXIsIFdl
YlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcmVzb3VyY2VJZGVudGlmaWVyLCBy
ZXF1ZXN0KSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIHBsYXRmb3Jt
U3RhcnRUYXNrKHBhZ2UsIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggMzRjZmQ1ZGRmOTg2YjJl
NjMxYjI0NzIzODE3NmY3YWVjZDA2NzYyMS4uM2Y0ZWFmYmEzNzllYjZlNzM4NDM5OTJkYzQ5Y2Fk
Yjc4Y2E1YjRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVSTFNj
aGVtZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
V2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDEyICs1MiwxMiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgV2ViVVJMU2NoZW1lSGFuZGxlcigpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFzayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1T
dGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVUYXNr
JikgPSAwOwogCiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwogCi0gICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrPj4gbV90YXNrczsKKyAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWY8V2ViVVJMU2NoZW1lVGFzaz4+IG1fdGFza3M7CiAKIH07IC8vIGNsYXNz
IFdlYlVSTFNjaGVtZUhhbmRsZXIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDBkZWFiM2U1Nzc4NTI2MTY5NmMwZjkxY2UwMTkwZTY1NGU5YTg2MWIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExNCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlVS
TFNjaGVtZUhhbmRsZXJUYXNrLmgiCi0KLSNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5j
bHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5j
bHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyVGFzaz4gV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVy
LCBXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrKGhhbmRsZXIsIHBhZ2UsIHJlc291cmNlSWRlbnRpZmllciwg
cmVxdWVzdCkpOwotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6V2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdl
LCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKLSAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQotICAgICwgbV9wYWdlKCZw
YWdlKQotICAgICwgbV9pZGVudGlmaWVyKHJlc291cmNlSWRlbnRpZmllcikKLSAgICAsIG1fcmVx
dWVzdChyZXF1ZXN0KQotewotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9u
VHlwZSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlmIChtX3N0b3BwZWQpCi0gICAgICAg
IHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVh
ZHlTdG9wcGVkOwotCi0gICAgaWYgKG1fY29tcGxldGVkKQotICAgICAgICByZXR1cm4gV2ViVVJM
U2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsK
LQotICAgIGlmIChtX2RhdGFTZW50KQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxl
clRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5U2VudDsKLQotICAgIG1fcmVzcG9uc2VT
ZW50ID0gdHJ1ZTsKLQotICAgIHJlc3BvbnNlLmluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8oKTsKLSAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZUhhbmRsZXJUYXNrRGlk
UmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50
aWZpZXIsIHJlc3BvbnNlKSk7Ci0gICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpF
eGNlcHRpb25UeXBlOjpOb25lOwotfQotCi1XZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0
aW9uVHlwZSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyKQotewotICAgIGlmIChtX3N0b3BwZWQpCi0gICAgICAgIHJldHVybiBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0aW9uVHlwZTo6VGFza0FscmVhZHlTdG9wcGVk
OwotCi0gICAgaWYgKG1fY29tcGxldGVkKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFu
ZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKLQotICAgIGlm
ICghbV9yZXNwb25zZVNlbnQpCi0gICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
azo6RXhjZXB0aW9uVHlwZTo6Tm9SZXNwb25zZVNlbnQ7Ci0KLSAgICBtX2RhdGFTZW50ID0gdHJ1
ZTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZUhhbmRsZXJU
YXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRl
bnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlKGJ1ZmZlci5wdHIoKSkpKTsK
LSAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6OkV4Y2VwdGlvblR5cGU6Ok5vbmU7
Ci19Ci0KLVdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25UeXBlIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsK
LSAgICBpZiAobV9zdG9wcGVkKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRh
c2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKLQotICAgIGlmIChtX2NvbXBs
ZXRlZCkKLSAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrOjpFeGNlcHRpb25U
eXBlOjpDb21wbGV0ZUFscmVhZHlDYWxsZWQ7Ci0KLSAgICBpZiAoIW1fcmVzcG9uc2VTZW50ICYm
IGVycm9yLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gV2ViVVJMU2NoZW1lSGFuZGxlclRhc2s6
OkV4Y2VwdGlvblR5cGU6Ok5vUmVzcG9uc2VTZW50OwotCi0gICAgbV9jb21wbGV0ZWQgPSB0cnVl
OwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lSGFuZGxlclRh
c2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlm
aWVyLCBlcnJvcikpOwotICAgIHJldHVybiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6RXhjZXB0
aW9uVHlwZTo6Tm9uZTsKLX0KLQotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzazo6cGFnZURl
c3Ryb3llZCgpCi17Ci0gICAgQVNTRVJUKG1fcGFnZSk7Ci0gICAgbV9wYWdlID0gbnVsbHB0cjsK
LSAgICBtX3N0b3BwZWQgPSB0cnVlOwotfQotCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
OjpzdG9wKCkKLXsKLSAgICBBU1NFUlQoIW1fc3RvcHBlZCk7Ci0gICAgbV9zdG9wcGVkID0gdHJ1
ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2suaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3N2RiMzJkOTU1NjM1ZWJkZTIzZmZhZjU1YmExOTVjNDM2ZjBmMDU3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEsNzkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUmVzb3VyY2VFcnJv
cjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyOwotY2xhc3MgV2Vi
UGFnZVByb3h5OwotCi1jbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzayA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoV2ViVVJMU2NoZW1lSGFuZGxlclRhc2spOwotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2s+IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFn
ZVByb3h5JiwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik7Ci0KLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9Ci0KLSAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qo
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLQotICAgIGVudW0gY2xhc3MgRXhjZXB0aW9u
VHlwZSB7Ci0gICAgICAgIERhdGFBbHJlYWR5U2VudCwKLSAgICAgICAgQ29tcGxldGVBbHJlYWR5
Q2FsbGVkLAotICAgICAgICBUYXNrQWxyZWFkeVN0b3BwZWQsCi0gICAgICAgIE5vUmVzcG9uc2VT
ZW50LAotICAgICAgICBOb25lLAotICAgIH07Ci0gICAgRXhjZXB0aW9uVHlwZSBkaWRSZWNlaXZl
UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIEV4Y2VwdGlv
blR5cGUgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4pOwotICAgIEV4
Y2VwdGlvblR5cGUgZGlkQ29tcGxldGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwot
Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7Ci0KLXByaXZhdGU6
Ci0gICAgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBh
Z2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOwotCi0gICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxl
cjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKLSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7
Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKLSAgICBib29sIG1fc3Rv
cHBlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Jlc3BvbnNlU2VudCB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2RhdGFTZW50IHsgZmFsc2UgfTsKLSAgICBib29sIG1fY29tcGxldGVkIHsgZmFsc2Ug
fTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMzM1YmM0YTkwYWQwNGJhZGJi
NGRiMjY4NGUyOTVhYjc4YWIzMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFzay5oIgor
CisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRs
ZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitSZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKFdlYlVSTFNj
aGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgcmVzb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1lVGFzayhoYW5kbGVyLCBwYWdlLCByZXNvdXJj
ZUlkZW50aWZpZXIsIHJlcXVlc3QpKTsKK30KKworV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2No
ZW1lVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2Us
IHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQorICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCisgICAgLCBtX3BhZ2UoJnBh
Z2UpCisgICAgLCBtX2lkZW50aWZpZXIocmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9yZXF1
ZXN0KHJlcXVlc3QpCit7Cit9CisKK1dlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGUgV2Vi
VVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQoreworICAgIGlmIChtX3N0b3BwZWQpCisgICAgICAgIHJldHVybiBXZWJVUkxT
Y2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpUYXNrQWxyZWFkeVN0b3BwZWQ7CisKKyAgICBpZiAo
bV9jb21wbGV0ZWQpCisgICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25U
eXBlOjpDb21wbGV0ZUFscmVhZHlDYWxsZWQ7CisKKyAgICBpZiAobV9kYXRhU2VudCkKKyAgICAg
ICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkRhdGFBbHJlYWR5U2Vu
dDsKKworICAgIG1fcmVzcG9uc2VTZW50ID0gdHJ1ZTsKKworICAgIHJlc3BvbnNlLmluY2x1ZGVD
ZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVS
TFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlm
aWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpKTsKKyAgICByZXR1cm4gV2ViVVJMU2NoZW1l
VGFzazo6RXhjZXB0aW9uVHlwZTo6Tm9uZTsKK30KKworV2ViVVJMU2NoZW1lVGFzazo6RXhjZXB0
aW9uVHlwZSBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVy
PiBidWZmZXIpCit7CisgICAgaWYgKG1fc3RvcHBlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNj
aGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKKworICAgIGlmICht
X2NvbXBsZXRlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5
cGU6OkNvbXBsZXRlQWxyZWFkeUNhbGxlZDsKKworICAgIGlmICghbV9yZXNwb25zZVNlbnQpCisg
ICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb1Jlc3BvbnNl
U2VudDsKKworICAgIG1fZGF0YVNlbnQgPSB0cnVlOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZShidWZmZXIucHRyKCkpKSk7CisgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2Vw
dGlvblR5cGU6Ok5vbmU7Cit9CisKK1dlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGUgV2Vi
VVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7
CisgICAgaWYgKG1fc3RvcHBlZCkKKyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4
Y2VwdGlvblR5cGU6OlRhc2tBbHJlYWR5U3RvcHBlZDsKKworICAgIGlmIChtX2NvbXBsZXRlZCkK
KyAgICAgICAgcmV0dXJuIFdlYlVSTFNjaGVtZVRhc2s6OkV4Y2VwdGlvblR5cGU6OkNvbXBsZXRl
QWxyZWFkeUNhbGxlZDsKKworICAgIGlmICghbV9yZXNwb25zZVNlbnQgJiYgZXJyb3IuaXNOdWxs
KCkpCisgICAgICAgIHJldHVybiBXZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb1Jl
c3BvbnNlU2VudDsKKworICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhh
bmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvcikpOworICAgIHJldHVybiBX
ZWJVUkxTY2hlbWVUYXNrOjpFeGNlcHRpb25UeXBlOjpOb25lOworfQorCit2b2lkIFdlYlVSTFNj
aGVtZVRhc2s6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIEFTU0VSVChtX3BhZ2UpOworICAgIG1f
cGFnZSA9IG51bGxwdHI7CisgICAgbV9zdG9wcGVkID0gdHJ1ZTsKK30KKwordm9pZCBXZWJVUkxT
Y2hlbWVUYXNrOjpzdG9wKCkKK3sKKyAgICBBU1NFUlQoIW1fc3RvcHBlZCk7CisgICAgbV9zdG9w
cGVkID0gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTNjMTlkNjgwOTlhZGVi
MDQzOGRhM2RjYjA2MWRjNGE0MWIxNTc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApAQCAtMCwwICsxLDc5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXI7CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2Ns
YXNzIFdlYlVSTFNjaGVtZVRhc2sgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNr
PiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1lVGFzayk7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFu
ZGxlciYsIFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOworCisgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisKKyAgICBlbnVtIGNs
YXNzIEV4Y2VwdGlvblR5cGUgeworICAgICAgICBEYXRhQWxyZWFkeVNlbnQsCisgICAgICAgIENv
bXBsZXRlQWxyZWFkeUNhbGxlZCwKKyAgICAgICAgVGFza0FscmVhZHlTdG9wcGVkLAorICAgICAg
ICBOb1Jlc3BvbnNlU2VudCwKKyAgICAgICAgTm9uZSwKKyAgICB9OworICAgIEV4Y2VwdGlvblR5
cGUgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsK
KyAgICBFeGNlcHRpb25UeXBlIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+KTsKKyAgICBFeGNlcHRpb25UeXBlIGRpZENvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKTsKKworICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgcGFnZURlc3Ryb3llZCgp
OworCitwcml2YXRlOgorICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYs
IFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOworCisgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1l
SGFuZGxlcjsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICB1aW50NjRfdCBtX2lkZW50
aWZpZXI7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICBib29s
IG1fc3RvcHBlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Jlc3BvbnNlU2VudCB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2RhdGFTZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1fY29tcGxldGVkIHsg
ZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNkMDg1M2E1ODg5ZDM4
N2FlOWU4MTg1ZWIwMTMzZWFkNTVmM2M3N2MuLjcyYjBjNWNkOTE1ZDI2ODk5MzkyYTVkNjkwYTdl
ZTFhYTdmOTk2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwNTYsMTQgKzEwNTYsMTQgQEAKIAkJNTFEMDJGNkExMzJFQzcz
NzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQwMkY2NzEzMkVDNzM3MDBCRUFBOTYgLyog
V2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCAqLzsgfTsKIAkJNTFEMDJGNkIxMzJFQzczNzAwQkVB
QTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDAyRjY4MTMyRUM3MzcwMEJF
QUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTUxRDAyRjZDMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQwMkY2
OTEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlcy5oICovOyB9
OwotCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5j
cHAgKi87IH07CisJCTUxRDEyNDIzMUU2RDM0QTEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNr
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFEMTI0MjExRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHAgKi87
IH07CiAJCTUxRDEyNDI4MUU2RDNGNUQwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDI0
MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCAqLzsgfTsKIAkJNTFE
MTI0MkMxRTZENDFGRDAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQyQTFFNkQ0
MUJDMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcCAqLzsgfTsKIAkJNTFE
MTI0MzMxRTZERTZDQTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDMyMUU2REU1
MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gKi87IH07CiAJCTUxRDEy
NDM0MUU2REY2NDMwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDJEMUU2RERERDcwMDJCMjgy
MCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07Ci0JCTUxRDEyNDM1MUU2REY2NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVt
ZUhhbmRsZXJUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJNTFEMTI0
MzYxRTZERkIzOTAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlclRhc2subW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzMDFFNkREREQ3MDAy
QjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSAqLzsgfTsKLQkJNTFEMTI0M0ExRTZF
MEFBQjAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDM4MUU2REZEQjkwMDJCMjgy
MCAvKiBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi87IH07CisJCTUxRDEyNDM1MUU2REY2
NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEyNDJGMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNj
aGVtZVRhc2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07
CisJCTUxRDEyNDM2MUU2REZCMzkwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzMDFFNkREREQ3
MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrLm1tICovOyB9OworCQk1MUQxMjQzQTFFNkUwQUFC
MDAyQjI4MjAgLyogQVBJVVJMU2NoZW1lVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQzODFFNkRGREI5MDAyQjI4MjAgLyogQVBJVVJM
U2NoZW1lVGFzay5jcHAgKi87IH07CiAJCTUxRDEyNDkxMUU3NEJGM0MwMDJCMjgyMCAvKiBBUElI
VFRQQ29va2llU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFEMTI0ODIxRTczNEFDODAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5j
cHAgKi87IH07CiAJCTUxRDEyNDkyMUU3NEJGNDgwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9y
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEy
NDg1MUU3MzRBRTMwMDJCMjgyMCAvKiBXS0hUVFBDb29raWVTdG9yZS5tbSAqLzsgfTsKIAkJNTFE
MTI0OTkxRTc2M0MwMTAwMkIyODIwIC8qIFdLSFRUUENvb2tpZVN0b3JlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUQxMjQ4NDFFNzM0QUUzMDAyQjI4
MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07CkBAIC0xMDgxLDcgKzEwODEsNyBAQAogCQk1MUUzNTIwMjE4MEY1RDFF
MDBFNTNCRTkgLyogRGF0YWJhc2VQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFMzUyMDExODBGNUQxRTAwRTUzQkU5IC8qIERhdGFi
YXNlUHJvY2Vzc01hYy5tbSAqLzsgfTsKIAkJNTFFMzUyMDkxODBGNUQ2QjAwRTUzQkU5IC8qIERh
dGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJhc2VTZXJ2
aWNlRW50cnlQb2ludC5tbSAqLzsgfTsKIAkJNTFFMzk5MDYxRDZGNTRDNzAwOUM4ODMxIC8qIFVJ
R2FtZXBhZFByb3ZpZGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUUzOTkwNTFENkY1NEM1MDA5Qzg4MzEgLyogVUlHYW1lcGFkUHJvdmlk
ZXJDb2NvYS5tbSAqLzsgfTsKLQkJNTFFOEI2OEUxRTcxMjg3NzAwMUI3MTMyIC8qIFdlYlVSTFNj
aGVtZUhhbmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRThCNjhEMUU3MTI4NzMwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVIYW5kbGVy
VGFzay5jcHAgKi87IH07CisJCTUxRThCNjhFMUU3MTI4NzcwMDFCNzEzMiAvKiBXZWJVUkxTY2hl
bWVUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRThCNjhEMUU3MTI4NzMwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVUYXNrLmNwcCAqLzsgfTsK
IAkJNTFFOTQ5OTcxRDc2MjExMzAwRUM5RUI5IC8qIFVJR2FtZXBhZFByb3ZpZGVySU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFOTQ5OTYxRDc2
MUNDNzAwRUM5RUI5IC8qIFVJR2FtZXBhZFByb3ZpZGVySU9TLm1tICovOyB9OwogCQk1MUVGQzFD
RjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDU0MTUyMTExODYw
MEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRjA2MEUwMTY1NDMxN0YwMEYzMjgx
QiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVz
b3VyY2VMb2FkZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMzMwMSwyMSArMzMwMSwyMSBAQAogCQk1
MUQwMkY2NzEzMkVDNzM3MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjgxMzJFQzczNzAwQkVBQTk2IC8q
IFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjkxMzJFQzczNzAwQkVB
QTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MUQxMjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTFEMTI0MjIxRTZEMzQ5QTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRs
ZXJUYXNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVVJMU2No
ZW1lSGFuZGxlclRhc2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQx
MjQyMTFFNkQzNDlBMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDIyMUU2RDM0OUEwMDJCMjgyMCAv
KiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViVVJMU2NoZW1lVGFza1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxRDEyNDI0MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQyNTFFNkQzQ0MzMDAyQjI4MjAg
LyogV2ViVVJMU2NoZW1lSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJVUkxTY2hlbWVIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUx
RDEyNDI3MUU2RDNGMUYwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyVGFzay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQxMjQyNzFFNkQzRjFGMDAyQjI4MjAgLyog
V2ViVVJMU2NoZW1lVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJV
UkxTY2hlbWVUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRDEyNDJBMUU2
RDQxQkMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMTI0MkIxRTZENDFCQzAwMkIyODIwIC8q
IFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFEMTI0MkQxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2NoZW1lSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFNjaGVtZUhhbmRsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFEMTI0MkYxRTZERERENzAwMkIyODIwIC8qIFdL
VVJMU2NoZW1lSGFuZGxlclRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MUQxMjQzMDFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVVJMU2NoZW1lSGFuZGxlclRh
c2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDJGMUU2RERERDcwMDJC
MjgyMCAvKiBXS1VSTFNjaGVtZVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tVUkxTY2hlbWVUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEy
NDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1VSTFNjaGVtZVRhc2subW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxRDEyNDMxMUU2REU1MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hl
bWVIYW5kbGVyQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVVJM
U2NoZW1lSGFuZGxlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRDEy
NDMyMUU2REU1MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDM3MUU2REZEMkEwMDJC
MjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tVUkxTY2hlbWVIYW5kbGVyVGFza0ludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxRDEyNDM4MUU2REZEQjkwMDJCMjgyMCAvKiBBUElV
UkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBUElVUkxTY2hlbWVIYW5kbGVyVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTUxRDEyNDM5MUU2REZEQjkwMDJCMjgyMCAvKiBBUElVUkxTY2hlbWVIYW5kbGVyVGFz
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElVUkxTY2hlbWVIYW5kbGVy
VGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUQxMjQzNzFFNkRGRDJBMDAy
QjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tVUkxTY2hlbWVUYXNrSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTFEMTI0MzgxRTZERkRCOTAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJVVJMU2NoZW1lVGFz
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRDEyNDM5MUU2REZEQjkwMDJC
MjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSVVSTFNjaGVtZVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFE
MTI0ODIxRTczNEFDODAwMkIyODIwIC8qIEFQSUhUVFBDb29raWVTdG9yZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElIVFRQQ29va2llU3RvcmUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQ4MzFFNzM0QUM4MDAyQjI4MjAgLyogQVBJ
SFRUUENvb2tpZVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUhU
VFBDb29raWVTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMjQ4NDFF
NzM0QUUzMDAyQjI4MjAgLyogV0tIVFRQQ29va2llU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tIVFRQQ29va2llU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMzksNyArMzMzOSw3IEBACiAJCTUxRTM1MjA3MTgwRjVENjEwMEU1M0JFOSAv
KiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MUUzNTIwODE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJhc2VTZXJ2aWNl
RW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERh
dGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxRTM5OTA1MUQ2RjU0QzUwMDlDODgzMSAvKiBVSUdhbWVwYWRQcm92aWRlckNvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVUlHYW1lcGFkUHJvdmlkZXJD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFOEI2OEQxRTcxMjg3MzAw
MUI3MTMyIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFFOEI2OEQxRTcxMjg3MzAwMUI3MTMyIC8qIFdlYlVSTFNj
aGVtZVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVVJM
U2NoZW1lVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTk0OTk2MUQ3
NjFDQzcwMEVDOUVCOSAvKiBVSUdhbWVwYWRQcm92aWRlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJR2FtZXBhZFByb3ZpZGVySU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVz
b3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVz
b3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjgyLDkgKzU2ODIsOSBAQAogCQkJ
CTFBRDg3OTA5MThCNkMzOEEwMDZDQUZENyAvKiBXS1VJRGVsZWdhdGUuaCAqLywKIAkJCQkzNzQz
OTI1NzE4QkM0QzYwMDAxQzg2NzUgLyogV0tVSURlbGVnYXRlUHJpdmF0ZS5oICovLAogCQkJCTUx
RDEyNDJEMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXIuaCAqLywKLQkJCQk1
MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5oICovLAot
CQkJCTUxRDEyNDMwMUU2RERERDcwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrLm1t
ICovLAotCQkJCTUxRDEyNDM3MUU2REZEMkEwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJU
YXNrSW50ZXJuYWwuaCAqLywKKwkJCQk1MUQxMjQyRjFFNkREREQ3MDAyQjI4MjAgLyogV0tVUkxT
Y2hlbWVUYXNrLmggKi8sCisJCQkJNTFEMTI0MzAxRTZERERENzAwMkIyODIwIC8qIFdLVVJMU2No
ZW1lVGFzay5tbSAqLywKKwkJCQk1MUQxMjQzNzFFNkRGRDJBMDAyQjI4MjAgLyogV0tVUkxTY2hl
bWVUYXNrSW50ZXJuYWwuaCAqLywKIAkJCQkxQUZBM0FDNzE4RTYxQzYxMDAzQ0NCQUUgLyogV0tV
c2VyQ29udGVudENvbnRyb2xsZXIuaCAqLywKIAkJCQkxQUZBM0FDNjE4RTYxQzYxMDAzQ0NCQUUg
LyogV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW0gKi8sCiAJCQkJMUFBRjA4QTMxOTI2ODJEQTAw
QjYzOTBDIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCAqLywKQEAgLTY2NTQs
OCArNjY1NCw4IEBACiAJCQkJQkNBMEVGN0QxMjMzMUU3ODAwN0QzQ0ZCIC8qIFdlYlVuZG9TdGVw
LmggKi8sCiAJCQkJNTFEMTI0MkExRTZENDFCQzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRs
ZXJQcm94eS5jcHAgKi8sCiAJCQkJNTFEMTI0MkIxRTZENDFCQzAwMkIyODIwIC8qIFdlYlVSTFNj
aGVtZUhhbmRsZXJQcm94eS5oICovLAotCQkJCTUxRDEyNDIxMUU2RDM0OUEwMDJCMjgyMCAvKiBX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmNwcCAqLywKLQkJCQk1MUQxMjQyMjFFNkQzNDlB
MDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5oICovLAorCQkJCTUxRDEy
NDIxMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuY3BwICovLAorCQkJ
CTUxRDEyNDIyMUU2RDM0OUEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gV2ViUGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC02ODIxLDggKzY4MjEsOCBAQAogCQkJCTdBOUNEOEMyMUM3NzlBRDYwMEQ5RjZDNyAvKiBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTFEMTI0MjQx
RTZEM0NDMzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXIuY3BwICovLAogCQkJCTUxRDEy
NDI1MUU2RDNDQzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmggKi8sCi0JCQkJNTFF
OEI2OEQxRTcxMjg3MzAwMUI3MTMyIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrLmNwcCAqLywK
LQkJCQk1MUQxMjQyNzFFNkQzRjFGMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclRhc2su
aCAqLywKKwkJCQk1MUU4QjY4RDFFNzEyODczMDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFzay5j
cHAgKi8sCisJCQkJNTFEMTI0MjcxRTZEM0YxRjAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZVRhc2su
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gVUlQcm9jZXNzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTY4NzksOCArNjg3OSw4IEBACiAJCQkJMUFGREU2NUYxOTU0RTlCMTAwQzQ4RkZB
IC8qIEFQSVNlc3Npb25TdGF0ZS5jcHAgKi8sCiAJCQkJMUFGREU2NjAxOTU0RTlCMTAwQzQ4RkZB
IC8qIEFQSVNlc3Npb25TdGF0ZS5oICovLAogCQkJCTFBNEQ2NjQ3MThBMkQ5MUEwMEQ4MkUyMSAv
KiBBUElVSUNsaWVudC5oICovLAotCQkJCTUxRDEyNDM4MUU2REZEQjkwMDJCMjgyMCAvKiBBUElV
UkxTY2hlbWVIYW5kbGVyVGFzay5jcHAgKi8sCi0JCQkJNTFEMTI0MzkxRTZERkRCOTAwMkIyODIw
IC8qIEFQSVVSTFNjaGVtZUhhbmRsZXJUYXNrLmggKi8sCisJCQkJNTFEMTI0MzgxRTZERkRCOTAw
MkIyODIwIC8qIEFQSVVSTFNjaGVtZVRhc2suY3BwICovLAorCQkJCTUxRDEyNDM5MUU2REZEQjkw
MDJCMjgyMCAvKiBBUElVUkxTY2hlbWVUYXNrLmggKi8sCiAJCQkJN0M4ODJERkIxQzdFOTlBNjAw
NkJGNzMxIC8qIEFQSVVzZXJDb250ZW50V29ybGQuY3BwICovLAogCQkJCTdDODgyREZDMUM3RTk5
QTYwMDZCRjczMSAvKiBBUElVc2VyQ29udGVudFdvcmxkLmggKi8sCiAJCQkJN0NCMzY1QUYxRDMx
REQxRTAwNzE1OENBIC8qIEFQSVVzZXJJbml0aWF0ZWRBY3Rpb24uaCAqLywKQEAgLTkwNTEsNyAr
OTA1MSw3IEBACiAJCQkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjJCMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJl
c3BvbnNlTlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDEyNDM0MUU2REY2NDMwMDJCMjgyMCAv
KiBXS1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxRDEyNDM1MUU2REY2
NTIwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZUhhbmRsZXJUYXNrLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MUQxMjQzNTFFNkRGNjUyMDAyQjI4MjAgLyogV0tVUkxTY2hlbWVUYXNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUZBM0FDOTE4RTYxQzYxMDAzQ0NCQUUgLyogV0tVc2VyQ29udGVudENvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwOEE0MTkyNjgyREEwMEI2MzkwQyAvKiBX
S1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5
RDJCNjFBNkIwREQ5MDAzQTVGREUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTk3NjMsNyArOTc2Myw3IEBACiAJCQkJMUFGREU2NjExOTU0RTlC
MTAwQzQ4RkZBIC8qIEFQSVNlc3Npb25TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Uy
MzE1RTEyMkMzMENBMDBENUMzNUEgLyogQVBJVVJMUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzkwQTFEMzEyMkRENTVFMDBDQzhDNTAgLyogQVBJVVJMUmVzcG9uc2UuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTFEMTI0M0ExRTZFMEFBQjAwMkIyODIwIC8qIEFQSVVSTFNjaGVtZUhh
bmRsZXJUYXNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxRDEyNDNBMUU2RTBBQUIwMDJCMjgy
MCAvKiBBUElVUkxTY2hlbWVUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRUZBOTYyMUFD
MDk5OTMwMEI5MTBGRCAvKiBBUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlQ29jb2EubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Qzg4MkRGRTFDN0U5OUFDMDA2QkY3MzEgLyogQVBJVXNlckNvbnRl
bnRXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDJBNjFBNjc4OUVBMDAzQTVGREUg
LyogQVBJVXNlclNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwMzgwLDggKzEwMzgwLDgg
QEAKIAkJCQk2M0MzMkMyNTFFOTgxMEQ5MDA2OTlCRDAgLyogX1dLR2VvbG9jYXRpb25Qb3NpdGlv
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxRDEyNDMzMUU2REU2Q0EwMDJCMjgyMCAvKiBXZWJV
UkxTY2hlbWVIYW5kbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUQxMjQyQzFFNkQ0
MUZEMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTUxRThCNjhFMUU3MTI4NzcwMDFCNzEzMiAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyVGFz
ay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2Vi
VVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MUU4QjY4
RTFFNzEyODc3MDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFzay5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MUQxMjQyMzFFNkQzNEExMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwOEFEMTkyNjkzNjcwMEI2MzkwQyAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MwNjVGMkIxQzhDRDk1
RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUFGMDhCNzE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTA1NzUsNyAr
MTA1NzUsNyBAQAogCQkJCUJDNDA3NjJBMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3RO
Uy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjBEMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VS
TFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjJDMTI0RkYwNDAwMDY4RjIw
QSAvKiBXS1VSTFJlc3BvbnNlTlMubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MUQxMjQzNjFFNkRG
QjM5MDAyQjI4MjAgLyogV0tVUkxTY2hlbWVIYW5kbGVyVGFzay5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTUxRDEyNDM2MUU2REZCMzkwMDJCMjgyMCAvKiBXS1VSTFNjaGVtZVRhc2subW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQUZBM0FDODE4RTYxQzYxMDAzQ0NCQUUgLyogV0tVc2VyQ29udGVudENv
bnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Qzg5RDI5RjFBNjc4NTU0MDAzQTVGREUg
LyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0My
NDEzMDgxQUFDRkNCNDAwQTU4QzE1IC8qIFdLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlZi5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGQ1YTUxNWRhMjMxMzhlMjI3NmIx
MWU1ODg2YmM1ZDk1YjI4NzBjNWQuLjM3NjlmZjRiN2NkNjVmN2UxMDk1ZmMyNDBlNDk1NjA3OTk2
ODgzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNDMsNyArNDMsNyBAQAogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYlVS
TFNjaGVtZUhhbmRsZXJQcm94eS5oIgotI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJUYXNr
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNrUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZWRS
ZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4K
QEAgLTI2MywxNSArMjYzLDE1IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0TG9jYWxM
b2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlcikKICAgICBtX3dlYlJl
c291cmNlTG9hZGVycy5zZXQocmVzb3VyY2VMb2FkZXIuaWRlbnRpZmllcigpLCBXZWJSZXNvdXJj
ZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB7IH0pKTsKIH0KIAotdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eShXZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5JiB0YXNrKQordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6YWRkVVJMU2NoZW1l
VGFza1Byb3h5KFdlYlVSTFNjaGVtZVRhc2tQcm94eSYgdGFzaykKIHsKLSAgICBhdXRvIHJlc3Vs
dCA9IG1fdXJsU2NoZW1lSGFuZGxlclRhc2tzLmFkZCh0YXNrLmlkZW50aWZpZXIoKSwgJnRhc2sp
OworICAgIGF1dG8gcmVzdWx0ID0gbV91cmxTY2hlbWVUYXNrcy5hZGQodGFzay5pZGVudGlmaWVy
KCksICZ0YXNrKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkp
OwogfQogCi12b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmVVUkxTY2hlbWVIYW5kbGVyVGFz
a1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmIHRhc2spCit2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpyZW1vdmVVUkxTY2hlbWVUYXNrUHJveHkoV2ViVVJMU2NoZW1lVGFza1Byb3h5
JiB0YXNrKQogewotICAgIG1fdXJsU2NoZW1lSGFuZGxlclRhc2tzLnJlbW92ZSh0YXNrLmlkZW50
aWZpZXIoKSk7CisgICAgbV91cmxTY2hlbWVUYXNrcy5yZW1vdmUodGFzay5pZGVudGlmaWVyKCkp
OwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpyZW1vdmUoUmVzb3VyY2VMb2FkZXIqIHJl
c291cmNlTG9hZGVyKQpAQCAtMjc5LDcgKzI3OSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnJlbW92ZShSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCiAgICAgQVNTRVJUKHJlc291
cmNlTG9hZGVyKTsKICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnJlbW92ZSwgdXJsICclcyciLCByZXNvdXJjZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoYXV0byB0YXNrID0gbV91cmxTY2hl
bWVIYW5kbGVyVGFza3MudGFrZShyZXNvdXJjZUxvYWRlci0+aWRlbnRpZmllcigpKSkgeworICAg
IGlmIChhdXRvIHRhc2sgPSBtX3VybFNjaGVtZVRhc2tzLnRha2UocmVzb3VyY2VMb2FkZXItPmlk
ZW50aWZpZXIoKSkpIHsKICAgICAgICAgQVNTRVJUKCFtX2ludGVybmFsbHlGYWlsZWRSZXNvdXJj
ZUxvYWRlcnMuY29udGFpbnMocmVzb3VyY2VMb2FkZXIpKTsKICAgICAgICAgdGFzay0+c3RvcExv
YWRpbmcoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA1MWIyYTgyZjU1OGI1Y2Mw
ZjY2NGYyY2RiMmI4MzE0MmUyM2Q0N2ZhLi45NDc4NDNiNDBmNWQ3ZDU3MDEyYzU3NWRiZjNkMTUw
MmIxOTFlZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKLWNsYXNzIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHk7CitjbGFzcyBXZWJVUkxTY2hlbWVUYXNrUHJveHk7CiB0eXBlZGVm
IHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIFdlYkxvYWRlclN0cmF0
ZWd5IDogcHVibGljIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5IHsKQEAgLTY2LDggKzY2LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAotICAgIHZvaWQg
YWRkVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eShXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5
Jik7Ci0gICAgdm9pZCByZW1vdmVVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHkmKTsKKyAgICB2b2lkIGFkZFVSTFNjaGVtZVRhc2tQcm94eShXZWJV
UkxTY2hlbWVUYXNrUHJveHkmKTsKKyAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVRhc2tQcm94eShX
ZWJVUkxTY2hlbWVUYXNrUHJveHkmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlTG9h
ZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciYsIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKQEAgLTc5LDcgKzc5
LDcgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJMb2FkZXJTdHJhdGVneT4gbV9p
bnRlcm5hbGx5RmFpbGVkTG9hZFRpbWVyOwogICAgIAogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9u
ZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRlcnM7Ci0gICAg
SGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5Kj4gbV91
cmxTY2hlbWVIYW5kbGVyVGFza3M7CisgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxT
Y2hlbWVUYXNrUHJveHkqPiBtX3VybFNjaGVtZVRhc2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggYjM5OTgwNDkyZGY3MTU2OTAyNzI2MzM4ZDQwYzViZDhhOGE0ZjZjYS4uZGI2MzgzYThj
NzQ5MDFhOTBhY2ZiNjNmZjJjYWNmMTMyYjBhOGU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTg1OCw3ICs1ODU4LDcgQEAgdm9pZCBX
ZWJQYWdlOjpyZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaGFuZGxlcklkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYKICAgICBBU1NFUlRfVU5VU0VEKGlkZW50aWZpZXJSZXN1bHQsIGlk
ZW50aWZpZXJSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXJsU2NoZW1l
SGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIs
IHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3ZvaWQgV2ViUGFnZTo6dXJsU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRf
dCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBtX2lkZW50aWZp
ZXJUb1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50aWZpZXIpOwogICAg
IEFTU0VSVChoYW5kbGVyKTsKQEAgLTU4NjYsNyArNTg2Niw3IEBAIHZvaWQgV2ViUGFnZTo6dXJs
U2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50
aWZpZXIsCiAgICAgaGFuZGxlci0+dGFza0RpZFJlY2VpdmVSZXNwb25zZSh0YXNrSWRlbnRpZmll
ciwgcmVzcG9uc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRsZXJUYXNrRGlk
UmVjZWl2ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit2b2lkIFdlYlBhZ2U6OnVy
bFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWlu
dDY0X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsK
ICAgICBhdXRvKiBoYW5kbGVyID0gbV9pZGVudGlmaWVyVG9VUkxTY2hlbWVIYW5kbGVyUHJveHlN
YXAuZ2V0KGhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBBU1NFUlQoaGFuZGxlcik7CkBAIC01ODc0
LDcgKzU4NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRsZXJUYXNrRGlkUmVjZWl2
ZURhdGEodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbgogICAgIGhhbmRsZXItPnRhc2tE
aWRSZWNlaXZlRGF0YSh0YXNrSWRlbnRpZmllciwgZGF0YS5zaXplKCksIGRhdGEuZGF0YSgpKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKHVpbnQ2
NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIFdlYlBhZ2U6OnVybFNjaGVtZVRhc2tEaWRDb21wbGV0
ZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBtX2lkZW50
aWZpZXJUb1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcC5nZXQoaGFuZGxlcklkZW50aWZpZXIpOwog
ICAgIEFTU0VSVChoYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IGIyMGRhNDJmMzBhYTBkMWQwNjUxNWYwMDcyYmQwOWQwODMwOTY1NmMu
Ljg4MmU1OGQ4OTM0MzhmOTlhNGYyNGI4YzlhNzFmMjczMWU5MTNkOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI3MCw5ICsxMjcwLDkgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIAotICAgIHZvaWQgdXJsU2NoZW1lSGFu
ZGxlclRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVp
bnQ2NF90IHRhc2tJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgdm9pZCB1cmxTY2hlbWVIYW5kbGVyVGFza0RpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGhh
bmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJik7Ci0gICAgdm9pZCB1cmxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKHVp
bnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgdXJsU2NoZW1lVGFza0RpZFJlY2Vp
dmVSZXNwb25zZSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIHVybFNj
aGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0
X3QgdGFza0lkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQg
dXJsU2NoZW1lVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50
NjRfdCB0YXNrSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogCiAg
ICAgUmVmUHRyPFdlYkltYWdlPiBzbmFwc2hvdEF0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYml0bWFwU2l6ZSwgU25hcHNob3RPcHRpb25zKTsK
ICAgICBSZWZQdHI8V2ViSW1hZ2U+IHNuYXBzaG90Tm9kZShXZWJDb3JlOjpOb2RlJiwgU25hcHNo
b3RPcHRpb25zLCB1bnNpZ25lZCBtYXhpbXVtUGl4ZWxDb3VudCA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGM3MDFhZTljNWE1MjY0Y2M2YjYy
NzlmNDA2ZWM1NTU5MWFkZWVjZTEuLjM1MWJkMDlhNWZlYjJiNTQxYmJjOGI2ZWZkMTNmMDA1ZTA0
YTU5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00NzIsNyArNDcyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0
X3QgaWRlbnRpZmllciwgU3RyaW5nIHNjaGVtZSkKIAotICAgIFVSTFNjaGVtZUhhbmRsZXJUYXNr
RGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IHByb3ZpZGVySWRlbnRpZmllciwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCi0gICAg
VVJMU2NoZW1lSGFuZGxlclRhc2tEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBwcm92aWRlcklkZW50
aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkK
LSAgICBVUkxTY2hlbWVIYW5kbGVyVGFza0RpZENvbXBsZXRlKHVpbnQ2NF90IHByb3ZpZGVySWRl
bnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IpCisgICAgVVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCBwcm92
aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIFVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YSh1aW50
NjRfdCBwcm92aWRlcklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YSkKKyAgICBVUkxTY2hlbWVUYXNrRGlkQ29tcGxldGUodWludDY0X3Qg
cHJvdmlkZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvcikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKaW5kZXggOTQx
Yjc5NzNmZWViMDhlYTM4MTNiY2M0MzA3ZDQ1MGU0YmQ1YWJmNi4uN2QwMjM2NzllYTRlOTBhM2Jl
MTBjZmY3NDE3NWMwMDhjNzhmZjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5jcHAKQEAg
LTQ4LDEwICs0OCwxMCBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6On5XZWJVUkxTY2hlbWVI
YW5kbGVyUHJveHkoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTo6c3RhcnROZXdU
YXNrKFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX3Rhc2tz
LmFkZChsb2FkZXIuaWRlbnRpZmllcigpLCBzdGQ6Om1ha2VfdW5pcXVlPFdlYlVSTFNjaGVtZUhh
bmRsZXJUYXNrUHJveHk+KCp0aGlzLCBsb2FkZXIpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGFz
a3MuYWRkKGxvYWRlci5pZGVudGlmaWVyKCksIHN0ZDo6bWFrZV91bmlxdWU8V2ViVVJMU2NoZW1l
VGFza1Byb3h5PigqdGhpcywgbG9hZGVyKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5
KTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuYWRk
VVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eSgqcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5hZGRVUkxTY2hlbWVU
YXNrUHJveHkoKnJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogICAgIHJlc3VsdC5pdGVyYXRvci0+
dmFsdWUtPnN0YXJ0TG9hZGluZygpOwogfQogCkBAIC04MCwxMSArODAsMTEgQEAgdm9pZCBXZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCB0YXNrSWRlbnRp
ZmllciwgY29uc3QgUmUKICAgICBpZiAoIXRhc2spCiAgICAgICAgIHJldHVybjsKIAotICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkucmVtb3ZlVVJMU2NoZW1l
SGFuZGxlclRhc2tQcm94eSgqdGFzayk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
TG9hZGVyU3RyYXRlZ3koKS5yZW1vdmVVUkxTY2hlbWVUYXNrUHJveHkoKnRhc2spOwogICAgIHRh
c2stPmRpZENvbXBsZXRlKGVycm9yKTsKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJv
eHk6OnRhc2tEaWRTdG9wTG9hZGluZyhXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5JiB0YXNr
KQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk6OnRhc2tEaWRTdG9wTG9hZGluZyhXZWJV
UkxTY2hlbWVUYXNrUHJveHkmIHRhc2spCiB7CiAgICAgQVNTRVJUKG1fdGFza3MuZ2V0KHRhc2su
aWRlbnRpZmllcigpKSA9PSAmdGFzayk7CiAgICAgbV90YXNrcy5yZW1vdmUodGFzay5pZGVudGlm
aWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oCmluZGV4IGYyOTczMDAzMGJkN2IxMWQyMTM0
MTRiYWFlODAwOGNjOWYyMWI1MjcuLmEwMzE3NjNkMWMzYWQyYWI5YzQ2YzNjNDIzYzUyMDE4ZTZi
NDE4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJV
UkxTY2hlbWVIYW5kbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmgiCisj
aW5jbHVkZSAiV2ViVVJMU2NoZW1lVGFza1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsMTMgKzUyLDEzIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHRhc2tEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgdGFza0lkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIHRhc2tEaWRSZWNlaXZl
RGF0YSh1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgc2l6ZV90LCBjb25zdCB1aW50OF90KiBkYXRh
KTsKICAgICB2b2lkIHRhc2tEaWRDb21wbGV0ZSh1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQgdGFza0RpZFN0b3BMb2FkaW5n
KFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHkmKTsKKyAgICB2b2lkIHRhc2tEaWRTdG9wTG9h
ZGluZyhXZWJVUkxTY2hlbWVUYXNrUHJveHkmKTsKIAogcHJpdmF0ZToKICAgICBXZWJQYWdlJiBt
X3dlYlBhZ2U7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OwogCi0gICAgSGFzaE1h
cDx1bnNpZ25lZCBsb25nLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQ
cm94eT4+IG1fdGFza3M7CisgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViVVJMU2NoZW1lVGFza1Byb3h5Pj4gbV90YXNrczsKIH07IC8vIGNsYXNzIFdlYlVSTFNj
aGVtZUhhbmRsZXJQcm94eQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVI
YW5kbGVyVGFza1Byb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgxYmEx
NmI4M2FjODA0ZTc4ZTA2ODI4Nzk2YTlmOTQ2MDI4Njk0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
ZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmgiCi0KLSNpbmNsdWRlICJXZWJQYWdlLmgiCi0j
aW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJVUkxTY2hlbWVI
YW5kbGVyUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VMb2FkZXIuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5OjpXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KFdlYlVSTFNjaGVtZUhh
bmRsZXJQcm94eSYgaGFuZGxlciwgUmVzb3VyY2VMb2FkZXImIGxvYWRlcikKLSAgICA6IG1fdXJs
U2NoZW1lSGFuZGxlcihoYW5kbGVyKQotICAgICwgbV9jb3JlTG9hZGVyKCZsb2FkZXIpCi0gICAg
LCBtX3JlcXVlc3QobG9hZGVyLnJlcXVlc3QoKSkKLSAgICAsIG1faWRlbnRpZmllcihsb2FkZXIu
aWRlbnRpZmllcigpKQotewotfQotCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6
OnN0YXJ0TG9hZGluZygpCi17Ci0gICAgQVNTRVJUKG1fY29yZUxvYWRlcik7Ci0gICAgbV91cmxT
Y2hlbWVIYW5kbGVyLnBhZ2UoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0VVJM
U2NoZW1lSGFuZGxlclRhc2sobV91cmxTY2hlbWVIYW5kbGVyLmlkZW50aWZpZXIoKSwgbV9jb3Jl
TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fcmVxdWVzdCkpOwotfQotCi12b2lkIFdlYlVSTFNjaGVt
ZUhhbmRsZXJUYXNrUHJveHk6OnN0b3BMb2FkaW5nKCkKLXsKLSAgICBBU1NFUlQobV9jb3JlTG9h
ZGVyKTsKLSAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U3RvcFVSTFNjaGVtZUhhbmRsZXJUYXNrKG1fdXJsU2NoZW1lSGFuZGxlci5pZGVu
dGlmaWVyKCksIG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpKSk7Ci0gICAgbV9jb3JlTG9hZGVy
ID0gbnVsbHB0cjsKLQotICAgIC8vIFRoaXMgbGluZSB3aWxsIHJlc3VsdCBpbiB0aGlzIGJlaW5n
IGRlbGV0ZWQuCi0gICAgbV91cmxTY2hlbWVIYW5kbGVyLnRhc2tEaWRTdG9wTG9hZGluZygqdGhp
cyk7Ci19Ci0KLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQcm94eTo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlmICghaGFz
TG9hZGVyKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2
ZVJlc3BvbnNlKHJlc3BvbnNlKTsKLX0KLQotdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyVGFza1By
b3h5OjpkaWRSZWNlaXZlRGF0YShzaXplX3Qgc2l6ZSwgY29uc3QgdWludDhfdCogZGF0YSkKLXsK
LSAgICBpZiAoIWhhc0xvYWRlcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NvcmVMb2Fk
ZXItPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBz
aXplLCAwLCBEYXRhUGF5bG9hZFR5cGU6OkRhdGFQYXlsb2FkQnl0ZXMpOwotfQotCi12b2lkIFdl
YlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQotewotICAgIGlmICghaGFzTG9hZGVyKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hM
b2FkaW5nKE5ldHdvcmtMb2FkTWV0cmljcygpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fY29yZUxv
YWRlci0+ZGlkRmFpbChlcnJvcik7Ci0KLSAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwotfQot
Ci1ib29sIFdlYlVSTFNjaGVtZUhhbmRsZXJUYXNrUHJveHk6Omhhc0xvYWRlcigpCi17Ci0gICAg
aWYgKG1fY29yZUxvYWRlciAmJiBtX2NvcmVMb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkp
Ci0gICAgICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7Ci0KLSAgICByZXR1cm4gbV9jb3JlTG9h
ZGVyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lSGFuZGxlclRhc2tQ
cm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWU5ZjE1MTJlYTcwOTlmYWMy
M2E5ODEwYzYwMDNkMmY4ODE5Nzg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hl
bWVIYW5kbGVyVGFza1Byb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3Mg
UmVzb3VyY2VMb2FkZXI7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotfQotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OwotCi1jbGFzcyBXZWJV
UkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJV
UkxTY2hlbWVIYW5kbGVyVGFza1Byb3h5KTsKLXB1YmxpYzoKLSAgICBXZWJVUkxTY2hlbWVIYW5k
bGVyVGFza1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSYsIFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyJik7Ci0KLSAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qo
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLQotICAgIHZvaWQgc3RhcnRMb2FkaW5nKCk7
Ci0gICAgdm9pZCBzdG9wTG9hZGluZygpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZURh
dGEoc2l6ZV90LCBjb25zdCB1aW50OF90KiBkYXRhKTsKLSAgICB2b2lkIGRpZENvbXBsZXRlKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLQotICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotCi1wcml2YXRlOgotICAgIGJv
b2wgaGFzTG9hZGVyKCk7Ci0KLSAgICBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkmIG1fdXJsU2No
ZW1lSGFuZGxlcjsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fY29yZUxv
YWRlcjsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwotICAgIHVuc2ln
bmVkIGxvbmcgbV9pZGVudGlmaWVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFz
a1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hl
bWVUYXNrUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNzY3YmNiOGY0MjcyYjgwOGQ2YjUzMTY3MGRm
ODdhMjA2Y2YyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJVUkxTY2hlbWVUYXNr
UHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlVSTFNjaGVtZUhhbmRsZXJQcm94eS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYlVSTFNjaGVtZVRhc2tQcm94eTo6V2ViVVJMU2NoZW1lVGFz
a1Byb3h5KFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSYgaGFuZGxlciwgUmVzb3VyY2VMb2FkZXIm
IGxvYWRlcikKKyAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQorICAgICwgbV9jb3Jl
TG9hZGVyKCZsb2FkZXIpCisgICAgLCBtX3JlcXVlc3QobG9hZGVyLnJlcXVlc3QoKSkKKyAgICAs
IG1faWRlbnRpZmllcihsb2FkZXIuaWRlbnRpZmllcigpKQoreworfQorCit2b2lkIFdlYlVSTFNj
aGVtZVRhc2tQcm94eTo6c3RhcnRMb2FkaW5nKCkKK3sKKyAgICBBU1NFUlQobV9jb3JlTG9hZGVy
KTsKKyAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U3RhcnRVUkxTY2hlbWVUYXNrKG1fdXJsU2NoZW1lSGFuZGxlci5pZGVudGlmaWVyKCks
IG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpLCBtX3JlcXVlc3QpKTsKK30KKwordm9pZCBXZWJV
UkxTY2hlbWVUYXNrUHJveHk6OnN0b3BMb2FkaW5nKCkKK3sKKyAgICBBU1NFUlQobV9jb3JlTG9h
ZGVyKTsKKyAgICBtX3VybFNjaGVtZUhhbmRsZXIucGFnZSgpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U3RvcFVSTFNjaGVtZVRhc2sobV91cmxTY2hlbWVIYW5kbGVyLmlkZW50aWZpZXIo
KSwgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpKTsKKyAgICBtX2NvcmVMb2FkZXIgPSBudWxs
cHRyOworCisgICAgLy8gVGhpcyBsaW5lIHdpbGwgcmVzdWx0IGluIHRoaXMgYmVpbmcgZGVsZXRl
ZC4KKyAgICBtX3VybFNjaGVtZUhhbmRsZXIudGFza0RpZFN0b3BMb2FkaW5nKCp0aGlzKTsKK30K
Kwordm9pZCBXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAoIWhhc0xvYWRlcigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNw
b25zZSk7Cit9CisKK3ZvaWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRSZWNlaXZlRGF0YShz
aXplX3Qgc2l6ZSwgY29uc3QgdWludDhfdCogZGF0YSkKK3sKKyAgICBpZiAoIWhhc0xvYWRlcigp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplLCAwLCBEYXRhUGF5bG9hZFR5
cGU6OkRhdGFQYXlsb2FkQnl0ZXMpOworfQorCit2b2lkIFdlYlVSTFNjaGVtZVRhc2tQcm94eTo6
ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKCFoYXNM
b2FkZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGVycm9yLmlzTnVsbCgpKQorICAg
ICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoTmV0d29ya0xvYWRNZXRyaWNzKCkp
OworICAgIGVsc2UKKyAgICAgICAgbV9jb3JlTG9hZGVyLT5kaWRGYWlsKGVycm9yKTsKKworICAg
IG1fY29yZUxvYWRlciA9IG51bGxwdHI7Cit9CisKK2Jvb2wgV2ViVVJMU2NoZW1lVGFza1Byb3h5
OjpoYXNMb2FkZXIoKQoreworICAgIGlmIChtX2NvcmVMb2FkZXIgJiYgbV9jb3JlTG9hZGVyLT5y
ZWFjaGVkVGVybWluYWxTdGF0ZSgpKQorICAgICAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwor
CisgICAgcmV0dXJuIG1fY29yZUxvYWRlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1l
VGFza1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2No
ZW1lVGFza1Byb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJiNmQ2ZmVjYTE1Zjc5NDAwNzM1NzkyNTU3MTUw
YTdjNDZmYjEwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuaApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVz
b3VyY2VMb2FkZXI7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5OworCitjbGFzcyBXZWJVUkxT
Y2hlbWVUYXNrUHJveHkgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlVSTFNjaGVtZVRh
c2tQcm94eSk7CitwdWJsaWM6CisgICAgV2ViVVJMU2NoZW1lVGFza1Byb3h5KFdlYlVSTFNjaGVt
ZUhhbmRsZXJQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVyJik7CisKKyAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVl
c3Q7IH0KKworICAgIHZvaWQgc3RhcnRMb2FkaW5nKCk7CisgICAgdm9pZCBzdG9wTG9hZGluZygp
OworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoc2l6ZV90LCBjb25zdCB1aW50OF90
KiBkYXRhKTsKKyAgICB2b2lkIGRpZENvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKKworICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFzTG9hZGVyKCk7CisKKyAgICBX
ZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkmIG1fdXJsU2NoZW1lSGFuZGxlcjsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fY29yZUxvYWRlcjsKKyAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9yZXF1ZXN0OworICAgIHVuc2lnbmVkIGxvbmcgbV9pZGVudGlmaWVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2RhZmU4ZjdhYzY4Njg1Yzg0YWY5MzMyZGUzMWUwNDZj
ODNhMTBlYS4uM2ZkNmRlMTFlMjdlMmM3Mjc3YjQwYTNjZjNiYzA1NzFhNTgzY2VkOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE3LTA1LTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBVcGRhdGUgbmFtZXMgaW4gV0tVUkxTY2hlbWVIYW5kbGVyL1dLVVJMU2NoZW1lSGFuZGxl
clRhc2sgQVBJcy4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxODI0ODM4PiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTUwOAorCisgICAgICAgIFJldmll
d2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbToKKyAgICAgICAgKC1bU2NoZW1lSGFuZGxl
ciB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKyAgICAgICAgKC1bU2NoZW1lSGFuZGxl
ciB3ZWJWaWV3OnN0b3BVUkxTY2hlbWVUYXNrOl0pOgorICAgICAgICAoLVtTY2hlbWVIYW5kbGVy
IHdlYlZpZXc6c3RhcnRUYXNrOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtTY2hlbWVIYW5kbGVy
IHdlYlZpZXc6c3RvcFRhc2s6XSk6IERlbGV0ZWQuCisKIDIwMTctMDUtMDEgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjE2MDAwKTog
dGVzdC13ZWJraXRweSBmYWlscyBhZnRlciBhZGRpbmcgbmV3IHNvZnQtbGlua2VkIGNsYXNzIGNo
ZWNrZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0KaW5kZXggNTZjY2Y5ZjAyNTE1YTRhZGI3
OTYwNGVhNjYyOTU2YWU5ZTMxMjdhMi4uMmY5ZWQzZWZiMmVmNTZlZTIxZjAxZDRiNDA0MDhjZmJi
NjNmNzk3NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0KQEAgLTI4LDcgKzI4LDcgQEAK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0
IDxXZWJLaXQvV0tVUkxTY2hlbWVIYW5kbGVyLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tVUkxTY2hl
bWVIYW5kbGVyVGFzay5oPgorI2ltcG9ydCA8V2ViS2l0L1dLVVJMU2NoZW1lVGFzay5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV2ViS2l0Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC02OSw3ICs2OSw3
IEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VGFzazooaWQgPFdLVVJMU2NoZW1lSGFu
ZGxlclRhc2s+KXRhc2sKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFy
dFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhc2sKIHsKICAgICBbX3N0YXJ0
ZWRVUkxzIGFkZE9iamVjdDp0YXNrLnJlcXVlc3QuVVJMXTsKIApAQCAtODYsNyArODYsNyBAQCAt
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRUYXNrOihpZCA8V0tVUkxT
Y2hlbWVIYW5kbGVyVGFzaz4pdGFzawogICAgIFt0YXNrIGRpZEZpbmlzaF07CiB9CiAKLS0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdG9wVGFzazooaWQgPFdLVVJMU2NoZW1l
SGFuZGxlclRhc2s+KXRhc2sKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBz
dG9wVVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGFzawogewogICAgIFtfc3Rv
cHBlZFVSTHMgYWRkT2JqZWN0OnRhc2sucmVxdWVzdC5VUkxdOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>