<?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>231680</bug_id>
          
          <creation_ts>2021-10-13 09:25:52 -0700</creation_ts>
          <short_desc>Prepare adattributiond Connection and IPC code for reuse with webpushd</short_desc>
          <delta_ts>2021-10-13 15:17:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803802</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 09:25:52 -0700</bug_when>
    <thetext>Prepare adattributiond Connection and IPC code for reuse with webpushd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803804</commentid>
    <comment_count>1</comment_count>
      <attachid>441091</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 09:29:22 -0700</bug_when>
    <thetext>Created attachment 441091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803819</commentid>
    <comment_count>2</comment_count>
      <attachid>441091</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-13 09:56:17 -0700</bug_when>
    <thetext>Comment on attachment 441091
Patch

99.9% a code move. RS=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803867</commentid>
    <comment_count>3</comment_count>
      <attachid>441109</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 11:05:04 -0700</bug_when>
    <thetext>Created attachment 441109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803869</commentid>
    <comment_count>4</comment_count>
      <attachid>441110</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 11:06:04 -0700</bug_when>
    <thetext>Created attachment 441110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803908</commentid>
    <comment_count>5</comment_count>
      <attachid>441118</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 12:14:49 -0700</bug_when>
    <thetext>Created attachment 441118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803965</commentid>
    <comment_count>6</comment_count>
      <attachid>441134</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-13 14:21:22 -0700</bug_when>
    <thetext>Created attachment 441134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803998</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-13 15:16:43 -0700</bug_when>
    <thetext>Committed r284129 (242949@main): &lt;https://commits.webkit.org/242949@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441134.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803999</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 15:17:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84219491&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441091</attachid>
            <date>2021-10-13 09:29:22 -0700</date>
            <delta_ts>2021-10-13 11:47:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231680-20211013102921.patch</filename>
            <type>text/plain</type>
            <size>82665</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMDczYjkzYWJjMzY3NTc1
OTY1NDU3NDZiNzc0NjU4YmIwYmIwY2EuLjMwMzFkMDg0ZjFhZGNkMjExMWI5NThkMmI0NDIwMDAz
MjNkZDFhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMTAtMTMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmVwYXJlIGFk
YXR0cmlidXRpb25kIENvbm5lY3Rpb24gYW5kIElQQyBjb2RlIGZvciByZXVzZSB3aXRoIHdlYnB1
c2hkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIG1v
dmUgQ29ubmVjdGlvbiwgRW5jb2RlciwgYW5kIERlY29kZXIgb3V0IG9mIG5hbWVzcGFjZSBQQ00g
YW5kIGludG8gbmFtZXNwYWNlIERhZW1vbiBhbmQga2VlcCB0aGUgUENNIHBhcnRzIGluIFBDTTo6
Q29ubmVjdGlvbi4KKyAgICAgICAgSSByZW1vdmUgYW4gdW5uZWNlc3NhcnkgbWVtb3J5IGNvcHkg
YnkgdXNpbmcgYSBTcGFuIGluc3RlYWQgb2YgYSBWZWN0b3IgZm9yIGRlY29kaW5nLgorICAgICAg
ICBJIG1ha2UgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2UgYSB0ZW1wbGF0ZSB0byBiZSB1c2VkIHdp
dGggYSBkaWZmZXJlbnQgY29tbXVuaWNhdGlvbiBwcm90b2NvbCBmb3IgY29tbXVuaWNhdGluZyB3
aXRoIHdlYnB1c2hkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UENNOjpDb25uZWN0aW9uOjpDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2UpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpz
ZW5kIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9N
YWNoU2VydmljZTo6c2VuZFdpdGhSZXBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6Q29ubmVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6Z2V0IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQQ006Ok1lc3NhZ2VJbmZvOjp0b1N0cmluZ0ZvclRlc3Rpbmc6OmVuY29k
ZVJlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpoYW5kbGVQQ01NZXNzYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6UENNOjpoYW5kbGVQQ01NZXNzYWdlU2V0RGVidWdNb2RlSXNFbmFibGVkKToK
KyAgICAgICAgKFdlYktpdDo6UENNOjpoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5KToKKyAgICAg
ICAgKFdlYktpdDo6UENNOjpkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcik6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6c2VuZE1lc3NhZ2UgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006OlJlcGx5Q2FsbGVyPD46OmNhbGxSZXBseSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6UmVwbHlDYWxsZXI8U3RyaW5nPjo6Y2FsbFJlcGx5KToKKyAg
ICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJveHk6OnNlbmRNZXNzYWdlV2l0aFJlcGx5IGNv
bnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246
Om5ld0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvblJlY2VpdmVkRXZlbnQgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OmRpY3Rpb25hcnlGcm9tTWVzc2FnZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OmluaXRpYWxpemVD
b25uZWN0aW9uSWZOZWVkZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpzZW5kRGVidWdNb2RlSXNFbmFibGVkTWVzc2FnZUlm
TmVjZXNzYXJ5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTo6Y2hlY2tGb3JEZWJ1Z01lc3NhZ2VCcm9hZGNhc3QgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OmRpY3Rpb25hcnlGcm9tTWVzc2FnZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6c2VuZCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvblRvTWFjaFNl
cnZpY2U6OnNlbmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5l
Y3Rpb25Ub01hY2hTZXJ2aWNlOjpzZW5kV2l0aFJlcGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9EYWVtb25Db25uZWN0aW9uLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEVuY29kZXIuY3BwLgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5lY3Rpb25Ub01hY2hT
ZXJ2aWNlPFRyYWl0cz46OnNlbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNv
bm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmRXaXRoUmVwbHkgY29uc3QpOgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9EYWVtb25Db25uZWN0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmguCisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29u
bmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlv
bjo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uVG9NYWNo
U2VydmljZTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2UpOgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9EYWVtb25EZWNvZGVyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNv
ZGVyLmNwcC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRGFlbW9uRGVjb2Rlci5oOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaC4KKyAgICAgICAgKFdlYktpdDo6RGFl
bW9uOjpEZWNvZGVyOjpEZWNvZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRGFlbW9uRW5j
b2Rlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAuCisg
ICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmNvZGVyLmguCisgICAgICAgICogUGxhdGZvcm0vSVBDL2NvY29hL0Rh
ZW1vbkNvbm5lY3Rpb25Db2NvYS5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb25Db2NvYS5tbS4KKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0
aW9uOjpzZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uOjpz
ZW5kV2l0aFJlcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9u
VG9NYWNoU2VydmljZTxUcmFpdHM+Ojppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTxUcmFp
dHM+OjpzZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uVG9N
YWNoU2VydmljZTxUcmFpdHM+OjpzZW5kV2l0aFJlcGx5IGNvbnN0KToKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVjdGlvblNl
dC5oOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9Q
Q01EYWVtb25Db25uZWN0aW9uU2V0Lm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhZW1vbkNv
bm5lY3Rpb25TZXQ6OnNldENvbm5lY3RlZE5ldHdvcmtQcm9jZXNzSGFzRGVidWdNb2RlRW5hYmxl
ZCk6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BD
TURhZW1vbkVudHJ5UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OmNvbm5lY3Rpb25FdmVudEhh
bmRsZXIpOgorICAgICAgICAqIFNoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcDoKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmRlY29k
ZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0xMC0x
MiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVpbGQtdGlt
ZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGE2ZTVmM2VmOGYxNjg2YjA0MTA2YjRlZTUxM2IxZGJl
MDg5MmYzNzUuLjZlNDVkZGFjNTEwYmI1YTI0NmZkNTYzMzY4MTdhZmJmNjhjY2YyNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI2LDMyICsyNiwxNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgog
Ci0jaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENNIHsKIAotQ29u
bmVjdGlvblRvTWFjaFNlcnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBt
YWNoU2VydmljZU5hbWUsIE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbikKLSAgICA6IG1f
bWFjaFNlcnZpY2VOYW1lKFdURk1vdmUobWFjaFNlcnZpY2VOYW1lKSkKLSAgICAsIG1fbmV0d29y
a1Nlc3Npb24obWFrZVdlYWtQdHIobmV0d29ya1Nlc3Npb24pKSB7IH0KLQotI2lmICFQTEFURk9S
TShDT0NPQSkKLQotdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZChNZXNzYWdlVHlw
ZSwgRW5jb2RlZE1lc3NhZ2UmJikgY29uc3QKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmlu
ZyYmIG1hY2hTZXJ2aWNlTmFtZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQorICAg
IDogRGFlbW9uOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJhaXRzPihXVEZN
b3ZlKG1hY2hTZXJ2aWNlTmFtZSkpCisgICAgLCBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNz
aW9uKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvblRvTWFj
aFNlcnZpY2U6OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBjb21wbGV0aW9uSGFuZGxl
cih7IH0pOwotfQotCi0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgKaW5kZXggMDMwMjY3MmFjOGIyYWM4YTRi
ZjZhZTJhOTZhMjNlOTVkYzQxOTgwYy4uMDlkZWM0NTU3NGE5YWJmZmVmM2UwZjNhNWZmMDU1MGY2
YTFmZmRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oCkBAIC0yNSwxNSArMjUsOCBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLSNlbmRpZgor
I2luY2x1ZGUgIkRhZW1vbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQy
LDM3ICszNSwyNiBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIG5hbWVzcGFjZSBQQ00gewogCiBl
bnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDogdWludDhfdDsKLXVzaW5nIEVuY29kZWRNZXNzYWdlID0g
VmVjdG9yPHVpbnQ4X3Q+OwogCi1jbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPENvbm5lY3Rpb24+IHsKLXB1YmxpYzoKLSAgICBDb25uZWN0aW9uKCkgPSBkZWZhdWx0Owot
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGV4cGxpY2l0IENvbm5lY3Rpb24oUmV0YWluUHRyPHhw
Y19jb25uZWN0aW9uX3Q+JiYgY29ubmVjdGlvbikKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb24oV1RG
TW92ZShjb25uZWN0aW9uKSkgeyB9Ci0gICAgeHBjX2Nvbm5lY3Rpb25fdCBnZXQoKSBjb25zdCB7
IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KLSAgICB2b2lkIHNlbmQoeHBjX29iamVjdF90
KSBjb25zdDsKLSAgICB2b2lkIHNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHhwY19vYmplY3RfdCk+JiYpIGNvbnN0OwotcHJvdGVjdGVkOgotICAgIG11
dGFibGUgUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKLSNlbmRpZgor
c3RydWN0IENvbm5lY3Rpb25UcmFpdHMgeworICAgIHVzaW5nIE1lc3NhZ2VUeXBlID0gTWVzc2Fn
ZVR5cGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbFZlcnNpb25L
ZXkgeyBQQ006OnByb3RvY29sVmVyc2lvbktleSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDY0X3QgcHJvdG9jb2xWZXJzaW9uVmFsdWUgeyBQQ006OnByb3RvY29sVmVyc2lvblZhbHVlIH07
CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdl
S2V5IHsgUENNOjpwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5IH07CiB9OwogCi1jbGFzcyBDb25u
ZWN0aW9uVG9NYWNoU2VydmljZSA6IHB1YmxpYyBDb25uZWN0aW9uIHsKK2NsYXNzIENvbm5lY3Rp
b24gOiBwdWJsaWMgRGFlbW9uOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJh
aXRzPiB7CiBwdWJsaWM6Ci0gICAgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2UoQ1N0cmluZyYmIG1h
Y2hTZXJ2aWNlTmFtZSwgTmV0d29ya1Nlc3Npb24mKTsKLQotICAgIHZvaWQgc2VuZChNZXNzYWdl
VHlwZSwgRW5jb2RlZE1lc3NhZ2UmJikgY29uc3Q7Ci0gICAgdm9pZCBzZW5kV2l0aFJlcGx5KE1l
c3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29k
ZWRNZXNzYWdlJiYpPiYmKSBjb25zdDsKKyAgICBDb25uZWN0aW9uKENTdHJpbmcmJiBtYWNoU2Vy
dmljZU5hbWUsIE5ldHdvcmtTZXNzaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0aWFs
aXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3Q7CisgICAgdm9pZCBuZXdDb25uZWN0aW9uV2Fz
SW5pdGlhbGl6ZWQoKSBjb25zdCBmaW5hbDsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lk
IGNoZWNrRm9yRGVidWdNZXNzYWdlQnJvYWRjYXN0KHhwY19vYmplY3RfdCkgY29uc3Q7CisgICAg
UmV0YWluUHRyPHhwY19vYmplY3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3NhZ2VUeXBl
LCBEYWVtb246OkVuY29kZWRNZXNzYWdlJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29ubmVj
dGlvblJlY2VpdmVkRXZlbnQoeHBjX29iamVjdF90KSBjb25zdCBmaW5hbDsKICNlbmRpZgogICAg
IHZvaWQgc2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJZk5lY2Vzc2FyeSgpIGNvbnN0Owog
Ci0gICAgY29uc3QgQ1N0cmluZyBtX21hY2hTZXJ2aWNlTmFtZTsKICAgICBXZWFrUHRyPE5ldHdv
cmtTZXNzaW9uPiBtX25ldHdvcmtTZXNzaW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTNjMmNhN2Q5M2MzYWY1ZjY1NzlhMTVhNjI3
ZDI1NjE1NWZkYmU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYz
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1u
YW1lc3BhY2UgUENNIHsKLQotRGVjb2Rlcjo6fkRlY29kZXIoKQotewotICAgIEFTU0VSVChtX2J1
ZmZlclBvc2l0aW9uID09IG1fYnVmZmVyLnNpemUoKSk7Ci19Ci0KLWJvb2wgRGVjb2Rlcjo6YnVm
ZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QKLXsKLSAg
ICByZXR1cm4gYnl0ZXMgPD0gbV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlvbjsKLX0K
LQotYm9vbCBEZWNvZGVyOjpkZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6
ZV90IHNpemUsIHNpemVfdCkKLXsKLSAgICBpZiAoIWJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRh
aW5CeXRlcyhzaXplKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1lbWNweShkYXRhLCBt
X2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uLCBzaXplKTsKLSAgICBtX2J1ZmZlclBv
c2l0aW9uICs9IHNpemU7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWNvbnN0IHVpbnQ4X3QqIERl
Y29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCBzaXplLCBzaXplX3QpCi17
Ci0gICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZSkpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEgPSBtX2J1ZmZlci5k
YXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uOwotICAgIG1fYnVmZmVyUG9zaXRpb24gKz0gc2l6ZTsK
LSAgICByZXR1cm4gZGF0YTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgUENNCi0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDJkM2E2NzBiYzViMGM0YzE4YjQzOTJjNDIwYWI0MTI2M2Q0NzdjYTUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1uYW1lc3BhY2UgUENNIHsKLQotY2xhc3MgRGVjb2RlciB7Ci1wdWJsaWM6Ci0gICAgRGVj
b2RlcihWZWN0b3I8dWludDhfdD4mJiBidWZmZXIpCi0gICAgICAgIDogbV9idWZmZXIoV1RGTW92
ZShidWZmZXIpKSB7IH0KLSAgICB+RGVjb2RlcigpOwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLSAgICBEZWNvZGVyJiBvcGVyYXRvcj4+KHN0ZDo6b3B0aW9uYWw8VD4mIHQpCi0gICAgewot
ICAgICAgICB0ID0gSVBDOjpBcmd1bWVudENvZGVyPHN0ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpy
ZW1vdmVfcmVmZXJlbmNlX3Q8VD4+LCB2b2lkPjo6ZGVjb2RlKCp0aGlzKTsKLSAgICAgICAgcmV0
dXJuICp0aGlzOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihzaXplX3QgbnVt
RWxlbWVudHMpIGNvbnN0Ci0gICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYXJp
dGhtZXRpYzxUPjo6dmFsdWUsICJUeXBlIFQgbXVzdCBoYXZlIGEgZml4ZWQsIGtub3duIGVuY29k
ZWQgc2l6ZSEiKTsKLQotICAgICAgICBpZiAobnVtRWxlbWVudHMgPiBzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpIC8gc2l6ZW9mKFQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgICAgIHJldHVybiBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMobnVt
RWxlbWVudHMgKiBzaXplb2YoVCkpOwotICAgIH0KLQotICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGRlY29kZUZpeGVkTGVuZ3RoRGF0YSh1aW50OF90KiBkYXRhLCBzaXplX3QsIHNpemVfdCBh
bGlnbm1lbnQpOwotICAgIGNvbnN0IHVpbnQ4X3QqIGRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNl
KHNpemVfdCwgc2l6ZV90KTsKLQotcHJpdmF0ZToKLSAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZV90KSBjb25zdDsKLQotICAg
IFZlY3Rvcjx1aW50OF90PiBtX2J1ZmZlcjsKLSAgICBzaXplX3QgbV9idWZmZXJQb3NpdGlvbiB7
IDAgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFBDTQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFbmNvZGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjk4YjE1
ZTUxMGU1OTkzNzQzZmU3ZTU2M2VmMDFkZDc4YjkyNGZmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotbmFtZXNwYWNlIFBDTSB7Ci0KLXZvaWQgRW5jb2Rlcjo6ZW5j
b2RlRml4ZWRMZW5ndGhEYXRhKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzaXpl
X3QpCi17Ci0gICAgbV9idWZmZXIuYXBwZW5kKGRhdGEsIHNpemUpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBQQ00KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50RW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThhODNjNjU5MjVkMjYyYWRkMjBiYTVhOGIxOTAzNjVl
NTkzMmNiMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLW5hbWVzcGFjZSBQQ00gewotCi1jbGFzcyBFbmNv
ZGVyIHsKLXB1YmxpYzoKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIEVuY29kZXImIG9w
ZXJhdG9yPDwoVCYmIHQpCi0gICAgewotICAgICAgICBJUEM6OkFyZ3VtZW50Q29kZXI8c3RkOjpy
ZW1vdmVfY29uc3RfdDxzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxUPj4+OjplbmNvZGUoKnRoaXMs
IHN0ZDo6Zm9yd2FyZDxUPih0KSk7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgdm9pZCBlbmNv
ZGUoQXJnJiYgYXJnLCBBcmdzJiYuLi4gYXJncykKLSAgICB7Ci0gICAgICAgICp0aGlzIDw8IHN0
ZDo6Zm9yd2FyZDxBcmc+KGFyZyk7Ci0gICAgICAgIGVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4o
YXJncykuLi4pOwotICAgIH0KLSAgICB2b2lkIGVuY29kZSgpIHsgfQotCi0gICAgVmVjdG9yPHVp
bnQ4X3Q+IHRha2VCdWZmZXIoKSB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fYnVmZmVyLCB7IH0p
OyB9Ci0KLSAgICB2b2lkIGVuY29kZUZpeGVkTGVuZ3RoRGF0YShjb25zdCB1aW50OF90Kiwgc2l6
ZV90LCBzaXplX3QgYWxpZ25tZW50KTsKLQotcHJpdmF0ZToKLSAgICBWZWN0b3I8dWludDhfdD4g
bV9idWZmZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBQQ00KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKaW5kZXggMWY5NzQwNWE3
OTg3MTM0ZGE5NWZjMTlkYmU5MjJkNWY1ZGRlMzFjNy4uNjlkY2FkZTcxMmRlMGViYWQ2MDc2MTQ2
ZGQwOGQxNjY5YjkxZGUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJ
bnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNw
cApAQCAtMjYsMTEgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgiCiAKKyNpbmNsdWRlICJEYWVt
b25EZWNvZGVyLmgiCisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkhhbmRs
ZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5oIgotI2lu
Y2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIlByaXZh
dGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBA
IC0xNDMsNyArMTQzLDcgQEAgRU1QVFlfUkVQTFkoc3RvcmVVbmF0dHJpYnV0ZWQpOwogCiBQQ006
OkVuY29kZWRNZXNzYWdlIHRvU3RyaW5nRm9yVGVzdGluZzo6ZW5jb2RlUmVwbHkoU3RyaW5nIHJl
cGx5KQogewotICAgIFBDTTo6RW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBl
bmNvZGVyOwogICAgIGVuY29kZXIgPDwgcmVwbHk7CiAgICAgcmV0dXJuIGVuY29kZXIudGFrZUJ1
ZmZlcigpOwogfQpAQCAtMTk3LDkgKzE5Nyw5IEBAIHN0YXRpYyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXImIGRhZW1vbk1hbmFnZXIoKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZv
Pgotdm9pZCBoYW5kbGVQQ01NZXNzYWdlKFBDTTo6RW5jb2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVz
c2FnZSkKK3ZvaWQgaGFuZGxlUENNTWVzc2FnZShTcGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRN
ZXNzYWdlKQogewotICAgIFBDTTo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUoZW5jb2RlZE1lc3Nh
Z2UpKTsKKyAgICBEYWVtb246OkRlY29kZXIgZGVjb2RlcihlbmNvZGVkTWVzc2FnZSk7CiAKICAg
ICBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEluZm86OkFyZ3NUdXBsZT4gYXJndW1lbnRzOwogICAg
IGRlY29kZXIgPj4gYXJndW1lbnRzOwpAQCAtMjA5LDEwICsyMDksMTAgQEAgdm9pZCBoYW5kbGVQ
Q01NZXNzYWdlKFBDTTo6RW5jb2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSkKICAgICBJUEM6
OmNhbGxNZW1iZXJGdW5jdGlvbihXVEZNb3ZlKCphcmd1bWVudHMpLCAmZGFlbW9uTWFuYWdlcigp
LCBJbmZvOjpNZW1iZXJGdW5jdGlvbik7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRsZVBDTU1lc3Nh
Z2VTZXREZWJ1Z01vZGVJc0VuYWJsZWQoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUENN
OjpFbmNvZGVkTWVzc2FnZSYmIGVuY29kZWRNZXNzYWdlKQorc3RhdGljIHZvaWQgaGFuZGxlUENN
TWVzc2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZChjb25zdCBEYWVtb246OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UpCiB7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgUENNOjpEZWNvZGVyIGRlY29kZXIoV1RGTW92ZShlbmNvZGVkTWVz
c2FnZSkpOworICAgIERhZW1vbjo6RGVjb2RlciBkZWNvZGVyKGVuY29kZWRNZXNzYWdlKTsKICAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGVuYWJsZWQ7CiAgICAgZGVjb2RlciA+PiBlbmFibGVkOwog
ICAgIGlmIChVTkxJS0VMWSghZW5hYmxlZCkpCkBAIC0yMzAsOSArMjMwLDkgQEAgc3RhdGljIHZv
aWQgaGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZChjb25zdCBDb25uZWN0aW9u
JiBjb25uZWN0aW9uLAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZvPgotdm9pZCBoYW5kbGVQ
Q01NZXNzYWdlV2l0aFJlcGx5KFBDTTo6RW5jb2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChQQ006OkVuY29kZWRNZXNzYWdlJiYpPiYmIHJlcGx5U2Vu
ZGVyKQordm9pZCBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5KFNwYW48Y29uc3QgdWludDhfdD4g
ZW5jb2RlZE1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUENNOjpFbmNvZGVkTWVzc2Fn
ZSYmKT4mJiByZXBseVNlbmRlcikKIHsKLSAgICBQQ006OkRlY29kZXIgZGVjb2RlcihXVEZNb3Zl
KGVuY29kZWRNZXNzYWdlKSk7CisgICAgRGFlbW9uOjpEZWNvZGVyIGRlY29kZXIoZW5jb2RlZE1l
c3NhZ2UpOwogCiAgICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBJbmZvOjpBcmdzVHVwbGU+IGFy
Z3VtZW50czsKICAgICBkZWNvZGVyID4+IGFyZ3VtZW50czsKQEAgLTI1MSw2MyArMjUxLDYzIEBA
IHZvaWQgZG9EYWlseUFjdGl2aXR5SW5NYW5hZ2VyKCkKICAgICBkYWVtb25NYW5hZ2VyKCkuZmly
ZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzKCk7CiB9CiAKLXZvaWQgZGVjb2RlTWVzc2FnZUFu
ZFNlbmRUb01hbmFnZXIoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVzc2FnZVR5cGUg
bWVzc2FnZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYmIGVuY29kZWRNZXNzYWdlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJiByZXBseVNlbmRlcikKK3ZvaWQgZGVj
b2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgU3Bhbjxjb25zdCB1aW50OF90PiBlbmNv
ZGVkTWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYg
cmVwbHlTZW5kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VUeXBlU2VuZHNSZXBseShtZXNzYWdl
VHlwZSkgPT0gISFyZXBseVNlbmRlcik7CiAgICAgc3dpdGNoIChtZXNzYWdlVHlwZSkgewogICAg
IGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ6Ci0gICAgICAgIGhhbmRs
ZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OnN0b3JlVW5hdHRyaWJ1dGVkPihXVEZN
b3ZlKGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBoYW5k
bGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpzdG9yZVVuYXR0cmlidXRlZD4oZW5j
b2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpIYW5kbGVBdHRyaWJ1dGlvbjoKLSAgICAgICAgaGFuZGxl
UENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6aGFuZGxlQXR0cmlidXRpb24+KFdURk1vdmUoZW5jb2Rl
ZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6aGFuZGxl
QXR0cmlidXRpb24+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQ
Q006Ok1lc3NhZ2VUeXBlOjpDbGVhcjoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBs
eTxNZXNzYWdlSW5mbzo6Y2xlYXI+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJl
cGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUlu
Zm86OmNsZWFyPihlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OkNsZWFyRm9yUmVnaXN0cmFibGVE
b21haW46Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmNs
ZWFyRm9yUmVnaXN0cmFibGVEb21haW4+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3Zl
KHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2Fn
ZUluZm86OmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4+KGVuY29kZWRNZXNzYWdlLCBXVEZNb3Zl
KHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlw
ZTo6U2V0RGVidWdNb2RlSXNFbmFibGVkOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlU2V0RGVi
dWdNb2RlSXNFbmFibGVkKGNvbm5lY3Rpb24sIFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAg
ICAgICAgaGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZChjb25uZWN0aW9uLCBl
bmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlw
ZTo6TWlncmF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2U6Ci0gICAg
ICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEZyb21MZWdhY3lTdG9yYWdlPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAg
ICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEZyb21MZWdhY3lTdG9yYWdlPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6VG9TdHJpbmdGb3JUZXN0aW5nOgotICAgICAg
ICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjp0b1N0cmluZ0ZvclRlc3Rp
bmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAg
ICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OnRvU3RyaW5nRm9yVGVz
dGluZz4oZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRPdmVycmlkZVRpbWVyRm9yVGVzdGlu
ZzoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0T3ZlcnJpZGVUaW1l
ckZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENN
TWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc+KGVuY29kZWRN
ZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRU
b2tlblB1YmxpY0tleVVSTEZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVz
c2FnZUluZm86OnNldFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVk
TWVzc2FnZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRUb2tl
blB1YmxpY0tleVVSTEZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rp
bmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldFRva2VuU2lnbmF0
dXJlVVJMRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBoYW5k
bGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc+
KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VU
eXBlOjpTZXRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5n
PihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVz
c2FnZUluZm86OnNldEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc+KGVuY29kZWRNZXNz
YWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpNYXJrQWxs
VW5hdHRyaWJ1dGVkQXNFeHBpcmVkRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENNTWVzc2Fn
ZTxNZXNzYWdlSW5mbzo6bWFya0FsbFVuYXR0cmlidXRlZEFzRXhwaXJlZEZvclRlc3Rpbmc+KFdU
Rk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdl
SW5mbzo6bWFya0FsbFVuYXR0cmlidXRlZEFzRXhwaXJlZEZvclRlc3Rpbmc+KGVuY29kZWRNZXNz
YWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpNYXJrQXR0
cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmc6Ci0gICAg
ICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86Om1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZz4oV1RGTW92ZShlbmNv
ZGVkTWVzc2FnZSksIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgaGFuZGxlUENNTWVz
c2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBs
eVNlbmRlcikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1l
c3NhZ2U8TWVzc2FnZUluZm86OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmc+
KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNz
YWdlSW5mbzo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZz4oZW5jb2RlZE1l
c3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0
VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVz
c2FnZUluZm86OnN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2Rl
ZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c3RhcnRU
aW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXBwQnVuZGxlSURGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJ
bmZvOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4oV1RG
TW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJ
bmZvOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4oZW5j
b2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6
OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVw
bHk8TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1l
c3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VX
aXRoUmVwbHk8TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KGVuY29kZWRNZXNz
YWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENN
OjpNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
OgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAg
ICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNo
YWluRm9yTG9jYWxQQ01UZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCmluZGV4IDhmY2ZiNGI3
NTQ1YWRhYTZlMGFhMGQ0NmIyYzIxYzY5ZDk0OGNiZmEuLjE0NzlhZjNkYThmMWVkNTJhZWRkYTg0
MTdhNzk1OTQxOTg3NDRmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaApA
QCAtMzUsMTQgKzM1LDE2IEBAIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK25hbWVzcGFjZSBEYWVtb24geworY2xhc3MgQ29ubmVjdGlvbjsKK30KKwogZW51
bSBjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSA6IGJvb2wgeyBV
bmF0dHJpYnV0ZWQsIEF0dHJpYnV0ZWQgfTsKIAogY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOwogCiBuYW1lc3BhY2UgUENNIHsKIAotY2xhc3MgQ29ubmVjdGlvbjsKLQogY2xh
c3MgTWFuYWdlckludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWFuYWdlckludGVy
ZmFjZSgpIHsgfTsKQEAgLTEwNiw3ICsxMDgsNyBAQCBlbnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDog
dWludDhfdCB7CiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtl
eSB7ICJlbmNvZGVkIG1lc3NhZ2UiIH07CiB1c2luZyBFbmNvZGVkTWVzc2FnZSA9IFZlY3Rvcjx1
aW50OF90PjsKIAotdm9pZCBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihjb25zdCBDb25u
ZWN0aW9uJiwgTWVzc2FnZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYmIG1lc3NhZ2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsKK3ZvaWQgZGVjb2RlTWVzc2Fn
ZUFuZFNlbmRUb01hbmFnZXIoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiwgTWVzc2FnZVR5cGUs
IFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmKTsKIHZvaWQgZG9EYWlseUFjdGl2aXR5SW5NYW5hZ2Vy
KCk7CiBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYTE4Nzc4NGQ4NmZhMTM5MDIwNjM5MWFmZGQwOTdk
MjBiN2MxZmZhYS4uNGJiNjQ0ZTNjZGYwMjA5MzMxNjA3NmRiNjQ5NGYyODQ1NWI4ZTI0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94
eS5oIgogCisjaW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29k
ZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOCwyMCArMzgsMjAgQEAgbmFtZXNw
YWNlIFBDTSB7CiB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlwZW5hbWUuLi4g
QXJncz4KIHZvaWQgTWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZShBcmdzJiYuLi4gYXJncykgY29u
c3QKIHsKLSAgICBFbmNvZGVyIGVuY29kZXI7CisgICAgRGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7
CiAgICAgZW5jb2Rlci5lbmNvZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICBt
X2Nvbm5lY3Rpb24uc2VuZChtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBzdHJ1Y3QgUmVwbHlDYWxsZXI7CiB0ZW1wbGF0
ZTw+IHN0cnVjdCBSZXBseUNhbGxlcjw+IHsKLSAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGVj
b2RlciYmIGRlY29kZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2Rl
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9CiB9OwogdGVtcGxhdGU8PiBzdHJ1
Y3QgUmVwbHlDYWxsZXI8U3RyaW5nPiB7Ci0gICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERlY29k
ZXImJiBkZWNvZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYg
ZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gc3RyaW5nOwogICAg
ICAgICBkZWNvZGVyID4+IHN0cmluZzsKQEAgLTY0LDEwICs2NCwxMCBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBSZXBseUNhbGxlcjxTdHJpbmc+IHsKIHRlbXBsYXRlPE1lc3NhZ2VUeXBlIG1lc3NhZ2VU
eXBlLCB0eXBlbmFtZS4uLiBBcmdzLCB0eXBlbmFtZS4uLiBSZXBseUFyZ3M+CiB2b2lkIE1hbmFn
ZXJQcm94eTo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXBs
eUFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBcmdzJiYuLi4gYXJncykgY29uc3QKIHsK
LSAgICBFbmNvZGVyIGVuY29kZXI7CisgICAgRGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CiAgICAg
ZW5jb2Rlci5lbmNvZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICBtX2Nvbm5l
Y3Rpb24uc2VuZFdpdGhSZXBseShtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCksIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byByZXBs
eUJ1ZmZlcikgbXV0YWJsZSB7Ci0gICAgICAgIERlY29kZXIgZGVjb2RlcihXVEZNb3ZlKHJlcGx5
QnVmZmVyKSk7CisgICAgICAgIERhZW1vbjo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUocmVwbHlC
dWZmZXIpKTsKICAgICAgICAgUmVwbHlDYWxsZXI8UmVwbHlBcmdzLi4uPjo6Y2FsbFJlcGx5KFdU
Rk1vdmUoZGVjb2RlciksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaAppbmRleCBmOTExNjE1YjUyYzllOGEyODBkMjdhMTll
NmY3MzJjODdkNGMxMTM5Li5kNGEyNzlhYjllMTIyMjhkZWUwNzA1YjhmZDgyZTJmOGU1MzlhM2M4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3Ms
IHR5cGVuYW1lLi4uIFJlcGx5QXJncz4KICAgICB2b2lkIHNlbmRNZXNzYWdlV2l0aFJlcGx5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVwbHlBcmdzLi4uKT4mJiwgQXJncyYmLi4uKSBjb25zdDsK
IAotICAgIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlIG1fY29ubmVjdGlvbjsKKyAgICBDb25uZWN0
aW9uIG1fY29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0KaW5kZXggNzM1NWJmMjAzMDEwNTNhZjEz
YWQ5MjBjODg3ZTlmMzA3YmJhNWRiOC4uNjI5ZjRiY2Q4OGQzMjYwOGMwYWJjZWM5YjMyM2JhM2Mw
YWM0YWViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25D
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1t
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogCi0jaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVuY29kZXIuaCIKKyNpbXBvcnQgIkRhZW1vbkVuY29kZXIuaCIKICNpbXBvcnQgIlBy
aXZhdGVDbGlja01lYXN1cmVtZW50WFBDVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtMzQsMjggKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIG5h
bWVzcGFjZSBQQ00gewogCi12b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjppbml0aWFsaXpl
Q29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3QKLXsKLSAgICBpZiAobV9jb25uZWN0aW9uKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9jb25uZWN0aW9uID0gYWRvcHROUyh4cGNfY29ubmVjdGlvbl9j
cmVhdGVfbWFjaF9zZXJ2aWNlKG1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgMCkpOwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVy
KG1fY29ubmVjdGlvbi5nZXQoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSh4cGNf
b2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVkFMSUQp
Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBjb25uZWN0IHRvIG1hY2ggc2Vy
dmljZSAlcywgbGlrZWx5IGJlY2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hk
Iiwgd2Vha1RoaXMtPm1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSk7Ci0gICAgICAgIGlmIChldmVu
dCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlRFUlJVUFRFRCkgewotICAgICAgICAgICAgLy8g
RGFlbW9uIGNyYXNoZWQsIHdlIHdpbGwgbmVlZCB0byBtYWtlIGEgbmV3IGNvbm5lY3Rpb24gdG8g
YSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhZW1vbi4KLSAgICAgICAgICAgIHdlYWtUaGlzLT5tX2Nv
bm5lY3Rpb24gPSBudWxscHRyOwotICAgICAgICB9Ci0gICAgICAgIHdlYWtUaGlzLT5jaGVja0Zv
ckRlYnVnTWVzc2FnZUJyb2FkY2FzdChldmVudCk7Ci0gICAgfSk7Ci0gICAgeHBjX2Nvbm5lY3Rp
b25fYWN0aXZhdGUobV9jb25uZWN0aW9uLmdldCgpKTsKLQotICAgIHNlbmREZWJ1Z01vZGVJc0Vu
YWJsZWRNZXNzYWdlSWZOZWNlc3NhcnkoKTsKLX0KLQotdm9pZCBDb25uZWN0aW9uVG9NYWNoU2Vy
dmljZTo6c2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJZk5lY2Vzc2FyeSgpIGNvbnN0Cit2
b2lkIENvbm5lY3Rpb246Om5ld0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKG1fY29ubmVjdGlvbik7CiAgICAgaWYgKCFtX25ldHdvcmtTZXNzaW9uCkBAIC02
MywxMiArNDIsMTIgQEAgdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9k
ZUlzRW5hYmxlZE1lc3NhZ2VJZk5lY2Vzc2FyeSgpIGNvbnN0CiAgICAgICAgIHx8ICFtX25ldHdv
cmtTZXNzaW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgRW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2Rl
ciBlbmNvZGVyOwogICAgIGVuY29kZXIuZW5jb2RlKHRydWUpOwogICAgIHNlbmQoTWVzc2FnZVR5
cGU6OlNldERlYnVnTW9kZUlzRW5hYmxlZCwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCi12
b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpjaGVja0ZvckRlYnVnTWVzc2FnZUJyb2FkY2Fz
dCh4cGNfb2JqZWN0X3QgcmVxdWVzdCkgY29uc3QKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdGlv
blJlY2VpdmVkRXZlbnQoeHBjX29iamVjdF90IHJlcXVlc3QpIGNvbnN0CiB7CiAgICAgaWYgKHhw
Y19nZXRfdHlwZShyZXF1ZXN0KSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQogICAgICAgICByZXR1
cm47CkBAIC04Miw1OSArNjEsMTQgQEAgdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Y2hl
Y2tGb3JEZWJ1Z01lc3NhZ2VCcm9hZGNhc3QoeHBjX29iamVjdF90IHJlcXVlc3QKICAgICBtX25l
dHdvcmtTZXNzaW9uLT5uZXR3b3JrUHJvY2VzcygpLmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1f
bmV0d29ya1Nlc3Npb24tPnNlc3Npb25JRCgpLCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgbWVzc2FnZUxldmVsLCBTdHJpbmc6OmZyb21VVEY4KGRlYnVnTWVzc2FnZSkp
OwogfQogCi1zdGF0aWMgT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiBkaWN0aW9uYXJ5RnJvbU1l
c3NhZ2UoTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkK
K1JldGFpblB0cjx4cGNfb2JqZWN0X3Q+IENvbm5lY3Rpb246OmRpY3Rpb25hcnlGcm9tTWVzc2Fn
ZShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKSBjb25z
dAogewotICAgIGF1dG8gZGljdGlvbmFyeSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlf
Y3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9w
dE5TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CiAgICAgYWRk
VmVyc2lvbkFuZEVuY29kZWRNZXNzYWdlVG9EaWN0aW9uYXJ5KFdURk1vdmUobWVzc2FnZSksIGRp
Y3Rpb25hcnkuZ2V0KCkpOwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFy
eS5nZXQoKSwgcHJvdG9jb2xNZXNzYWdlVHlwZUtleSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1l
c3NhZ2VUeXBlKSk7CiAgICAgcmV0dXJuIGRpY3Rpb25hcnk7CiB9CiAKLXZvaWQgQ29ubmVjdGlv
bjo6c2VuZCh4cGNfb2JqZWN0X3QgbWVzc2FnZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChtX2Nvbm5lY3Rpb24uZ2V0KCkpOwotICAgIEFTU0VS
VCh4cGNfZ2V0X3R5cGUobWVzc2FnZSkgPT0gWFBDX1RZUEVfRElDVElPTkFSWSk7Ci0gICAgeHBj
X2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZSk7Ci19
Ci0KLXZvaWQgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseSh4cGNfb2JqZWN0X3QgbWVzc2FnZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh4cGNfb2JqZWN0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBjb25zdAotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNTRVJUKG1f
Y29ubmVjdGlvbi5nZXQoKSk7Ci0gICAgQVNTRVJUKHhwY19nZXRfdHlwZShtZXNzYWdlKSA9PSBY
UENfVFlQRV9ESUNUSU9OQVJZKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0
aF9yZXBseShtX2Nvbm5lY3Rpb24uZ2V0KCksIG1lc3NhZ2UsIGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0gKHhwY19vYmplY3RfdCByZXBseSkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlcGx5KTsK
LSAgICB9KS5nZXQoKSk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmQo
TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkgY29uc3QK
LXsKLSAgICBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCk7Ci0gICAgQ29ubmVjdGlvbjo6
c2VuZChkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkp
LmdldCgpKTsKLX0KLQotdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZFdpdGhSZXBs
eShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBjb25zdAotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgaW5pdGlhbGl6
ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOwotCi0gICAgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShk
aWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgp
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19v
YmplY3RfdCByZXBseSkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICh4cGNfZ2V0X3R5cGUocmVwbHkp
ICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF91aW50NjQocmVwbHksIHByb3RvY29s
VmVyc2lvbktleSkgIT0gcHJvdG9jb2xWZXJzaW9uVmFsdWUpIHsKLSAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsg
fSk7Ci0gICAgICAgIH0KLSAgICAgICAgc2l6ZV90IGRhdGFTaXplIHsgMCB9OwotICAgICAgICBj
b25zdCB2b2lkKiBkYXRhID0geHBjX2RpY3Rpb25hcnlfZ2V0X2RhdGEocmVwbHksIHByb3RvY29s
RW5jb2RlZE1lc3NhZ2VLZXksICZkYXRhU2l6ZSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBkYXRhU2l6ZSB9KTsKLSAgICB9
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZjI3
ODAzNjJkZDIwMzc0MzRjYTFjYjM5MGRkZTZlZjc5MTU5MzQuLmUxZTZiMTYzYzAyMDAxMTZmZmY1
NzZiMTU5ZTFiNzhjYmNhY2JkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogCisjaW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5o
IgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgi
Ci0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAi
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVj
dGlvbkVuY29kZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNDQsNyArNDQsNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRp
bWUpCiB0ZW1wbGF0ZQogdm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPEVuY29k
ZXI+KEVuY29kZXImLCBjb25zdCBXYWxsVGltZSYpOwogdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRD
b2RlcjxXYWxsVGltZT46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006
OkVuY29kZXImLCBjb25zdCBXYWxsVGltZSYpOwordm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1l
Pjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5jb2Rl
ciYsIGNvbnN0IFdhbGxUaW1lJik7CiAKIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50
Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2FsbFRpbWUmIHRpbWUp
CiB7CkBAIC02OCw3ICs2OCw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPFdh
bGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kCiB0ZW1wbGF0ZQog
c3RkOjpvcHRpb25hbDxXYWxsVGltZT4gQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZTxE
ZWNvZGVyPihEZWNvZGVyJik7CiB0ZW1wbGF0ZQotc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gQXJn
dW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0
OjpQQ006OkRlY29kZXImKTsKK3N0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8
V2FsbFRpbWU+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9u
OjpEZWNvZGVyJik7CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IEF0b21TdHJpbmcmIGF0b21TdHJpbmcpCiB7CkBAIC05OSw3
ICs5OSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IENTdHJpbmcmIHN0cmluZykKICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVu
Z3RoRGF0YShzdHJpbmcuZGF0YUFzVUludDhQdHIoKSwgbGVuZ3RoLCAxKTsKIH0KIHRlbXBsYXRl
IHZvaWQgQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBj
b25zdCBDU3RyaW5nJik7Ci10ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVu
Y29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBD
U3RyaW5nJik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxX
ZWJLaXQ6OkRhZW1vbjo6RW5jb2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBjb25zdCBD
U3RyaW5nJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPENT
dHJpbmc+IEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpA
QCAtMTI4LDcgKzEyOCw3IEBAIHN0ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxD
U3RyaW5nPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB0ZW1wbGF0ZQogc3RkOjpvcHRpb25h
bDxDU3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2Rl
ciYpOwogdGVtcGxhdGUKLXN0ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3Ry
aW5nPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYp
Oworc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGU8
V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMTU0LDcgKzE1
NCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2Rl
ciYsIGNvbnN0IFN0cmluZyYpOwogdGVtcGxhdGUKIHZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+
OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVy
JiwgY29uc3QgU3RyaW5nJik7CiB0ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46
OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25z
dCBTdHJpbmcmKTsKK3ZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8V2ViS2l0OjpE
YWVtb246OkVuY29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIHR5cGVuYW1lIERlY29kZXI+CiBz
dGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVTdHJpbmdUZXh0KERlY29k
ZXImIGRlY29kZXIsIHVpbnQzMl90IGxlbmd0aCkKQEAgLTE5Niw3ICsxOTYsNyBAQCBXQVJOX1VO
VVNFRF9SRVRVUk4gc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6
ZGVjb2RlKERlY29kZXImCiB0ZW1wbGF0ZQogc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50
Q29kZXI8U3RyaW5nPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKIHRlbXBsYXRlCi1zdGQ6
Om9wdGlvbmFsPFN0cmluZz4gQXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpQ
Q006OkRlY29kZXI+KFdlYktpdDo6UENNOjpEZWNvZGVyJik7CitzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gQXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRlY29kZXI+
KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFy
Z3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVz
dWx0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25Db25uZWN0aW9u
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NDc4NTRjYjIxYjNkYWJmODMxNWFkNDZmMmI5NGNmNjQxMDY3ZWMx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29u
bmVjdGlvbi5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEYWVtb25Db25uZWN0aW9uLmgiCisKKyNpbXBvcnQgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFt
ZXNwYWNlIERhZW1vbiB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK3RlbXBsYXRlPHR5cGVu
YW1lIFRyYWl0cz4KK3ZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRzPjo6c2VuZCh0
eXBlbmFtZSBUcmFpdHM6Ok1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdAorewor
fQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHM+Cit2b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2
aWNlPFRyYWl0cz46OnNlbmRXaXRoUmVwbHkodHlwZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSwg
RW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0pOworfQorCit0ZW1wbGF0ZSBjbGFzcyBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxQQ006OkNv
bm5lY3Rpb25UcmFpdHM+OworCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvRGFlbW9uQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9u
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YjEwNGY4MzMyZDU3N2UwZDc3MTFlMDYwOGY5NTU5
YzE4OWJlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9E
YWVtb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgorI2VuZGlmCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKwordXNpbmcgRW5jb2RlZE1lc3Nh
Z2UgPSBWZWN0b3I8dWludDhfdD47CisKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8Q29ubmVjdGlvbj4geworcHVibGljOgorICAgIENvbm5lY3Rpb24oKSA9IGRlZmF1
bHQ7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgZXhwbGljaXQgQ29ubmVjdGlvbihSZXRhaW5Q
dHI8eHBjX2Nvbm5lY3Rpb25fdD4mJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1fY29ubmVjdGlv
bihXVEZNb3ZlKGNvbm5lY3Rpb24pKSB7IH0KKyAgICB4cGNfY29ubmVjdGlvbl90IGdldCgpIGNv
bnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQorICAgIHZvaWQgc2VuZCh4cGNfb2Jq
ZWN0X3QpIGNvbnN0OworICAgIHZvaWQgc2VuZFdpdGhSZXBseSh4cGNfb2JqZWN0X3QsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoeHBjX29iamVjdF90KT4mJikgY29uc3Q7Citwcm90ZWN0ZWQ6Cisg
ICAgbXV0YWJsZSBSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9uOworI2Vu
ZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHM+CitjbGFzcyBDb25uZWN0aW9uVG9N
YWNoU2VydmljZSA6IHB1YmxpYyBDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBDb25uZWN0aW9u
VG9NYWNoU2VydmljZShDU3RyaW5nJiYgbWFjaFNlcnZpY2VOYW1lKQorICAgICAgICA6IG1fbWFj
aFNlcnZpY2VOYW1lKFdURk1vdmUobWFjaFNlcnZpY2VOYW1lKSkgeyB9CisgICAgdmlydHVhbCB+
Q29ubmVjdGlvblRvTWFjaFNlcnZpY2UoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHNlbmQodHlw
ZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJikgY29uc3Q7CisgICAg
dm9pZCBzZW5kV2l0aFJlcGx5KHR5cGVuYW1lIFRyYWl0czo6TWVzc2FnZVR5cGUsIEVuY29kZWRN
ZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYpIGNv
bnN0OworCisgICAgdmlydHVhbCB2b2lkIG5ld0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCgpIGNv
bnN0ID0gMDsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIFJldGFpblB0cjx4cGNf
b2JqZWN0X3Q+IGRpY3Rpb25hcnlGcm9tTWVzc2FnZSh0eXBlbmFtZSBUcmFpdHM6Ok1lc3NhZ2VU
eXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbm5l
Y3Rpb25SZWNlaXZlZEV2ZW50KHhwY19vYmplY3RfdCkgY29uc3QgPSAwOworI2VuZGlmCisKK3By
aXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3Q7CisK
KyAgICBjb25zdCBDU3RyaW5nIG1fbWFjaFNlcnZpY2VOYW1lOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9EYWVtb25EZWNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOGMyMGQyYWJlZTg4NDMxNmM1
ZjkwNmUzMmMwOTdjYzkzN2Q4YzQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvRGFlbW9uRGVjb2Rlci5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKworRGVjb2Rlcjo6fkRlY29k
ZXIoKQoreworICAgIEFTU0VSVChtX2J1ZmZlclBvc2l0aW9uID09IG1fYnVmZmVyLnNpemUoKSk7
Cit9CisKK2Jvb2wgRGVjb2Rlcjo6YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNp
emVfdCBieXRlcykgY29uc3QKK3sKKyAgICByZXR1cm4gYnl0ZXMgPD0gbV9idWZmZXIuc2l6ZSgp
IC0gbV9idWZmZXJQb3NpdGlvbjsKK30KKworYm9vbCBEZWNvZGVyOjpkZWNvZGVGaXhlZExlbmd0
aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHNpemVfdCkKK3sKKyAgICBpZiAoIWJ1
ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRlcyhzaXplKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIG1lbWNweShkYXRhLCBtX2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9u
LCBzaXplKTsKKyAgICBtX2J1ZmZlclBvc2l0aW9uICs9IHNpemU7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2NvbnN0IHVpbnQ4X3QqIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNl
KHNpemVfdCBzaXplLCBzaXplX3QpCit7CisgICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9D
b250YWluQnl0ZXMoc2l6ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNvbnN0IHVp
bnQ4X3QqIGRhdGEgPSBtX2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uOworICAgIG1f
YnVmZmVyUG9zaXRpb24gKz0gc2l6ZTsKKyAgICByZXR1cm4gZGF0YTsKK30KKworfSAvLyBuYW1l
c3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRGVjb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvRGFlbW9uRGVjb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMDZjNDdiOGE1OTEyNTUxODBl
NDFmZGI3YWFjYTIwZjllZjI0N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9EYWVtb25EZWNvZGVyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK25hbWVzcGFjZSBEYWVtb24geworCitjbGFzcyBEZWNvZGVyIHsKK3B1Ymxp
YzoKKyAgICBEZWNvZGVyKFNwYW48Y29uc3QgdWludDhfdD4gYnVmZmVyKQorICAgICAgICA6IG1f
YnVmZmVyKGJ1ZmZlcikgeyB9CisgICAgfkRlY29kZXIoKTsKKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CisgICAgRGVjb2RlciYgb3BlcmF0b3I+PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQorICAg
IHsKKyAgICAgICAgdCA9IElQQzo6QXJndW1lbnRDb2RlcjxzdGQ6OnJlbW92ZV9jb25zdF90PHN0
ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+Piwgdm9pZD46OmRlY29kZSgqdGhpcyk7CisgICAgICAg
IHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIFdB
Uk5fVU5VU0VEX1JFVFVSTiBib29sIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4oc2l6ZV90
IG51bUVsZW1lbnRzKSBjb25zdAorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X2FyaXRobWV0aWM8VD46OnZhbHVlLCAiVHlwZSBUIG11c3QgaGF2ZSBhIGZpeGVkLCBrbm93biBl
bmNvZGVkIHNpemUhIik7CisKKyAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gc3RkOjpudW1lcmlj
X2xpbWl0czxzaXplX3Q+OjptYXgoKSAvIHNpemVvZihUKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICByZXR1cm4gYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVz
KG51bUVsZW1lbnRzICogc2l6ZW9mKFQpKTsKKyAgICB9CisKKyAgICBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90LCBzaXpl
X3QgYWxpZ25tZW50KTsKKyAgICBjb25zdCB1aW50OF90KiBkZWNvZGVGaXhlZExlbmd0aFJlZmVy
ZW5jZShzaXplX3QsIHNpemVfdCk7CisKK3ByaXZhdGU6CisgICAgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCkgY29uc3Q7CisK
KyAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IG1fYnVmZmVyOworICAgIHNpemVfdCBtX2J1ZmZlclBv
c2l0aW9uIHsgMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9u
RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NTE4NjI1ODFhMGY3NDNlZjZhNjliMDU5ZWIxZDY1NDZjZWIzNmE1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rl
ci5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1l
c3BhY2UgRGFlbW9uIHsKKwordm9pZCBFbmNvZGVyOjplbmNvZGVGaXhlZExlbmd0aERhdGEoY29u
c3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHNpemVfdCkKK3sKKyAgICBtX2J1ZmZlci5h
cHBlbmQoZGF0YSwgc2l6ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIERhZW1vbgorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Rh
ZW1vbkVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMWI0N2QxNjY3NGVhMzFlNDE5NWZhYzkzOTcyNjU5NjExOTY0ODI4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rl
ci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2Ug
RGFlbW9uIHsKKworY2xhc3MgRW5jb2RlciB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4KKyAgICBFbmNvZGVyJiBvcGVyYXRvcjw8KFQmJiB0KQorICAgIHsKKyAgICAgICAgSVBD
OjpBcmd1bWVudENvZGVyPHN0ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNl
X3Q8VD4+Pjo6ZW5jb2RlKCp0aGlzLCBzdGQ6OmZvcndhcmQ8VD4odCkpOworICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4u
LiBBcmdzPgorICAgIHZvaWQgZW5jb2RlKEFyZyYmIGFyZywgQXJncyYmLi4uIGFyZ3MpCisgICAg
eworICAgICAgICAqdGhpcyA8PCBzdGQ6OmZvcndhcmQ8QXJnPihhcmcpOworICAgICAgICBlbmNv
ZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICB9CisgICAgdm9pZCBlbmNvZGUo
KSB7IH0KKworICAgIFZlY3Rvcjx1aW50OF90PiB0YWtlQnVmZmVyKCkgeyByZXR1cm4gc3RkOjpl
eGNoYW5nZShtX2J1ZmZlciwgeyB9KTsgfQorCisgICAgdm9pZCBlbmNvZGVGaXhlZExlbmd0aERh
dGEoY29uc3QgdWludDhfdCosIHNpemVfdCwgc2l6ZV90IGFsaWdubWVudCk7CisKK3ByaXZhdGU6
CisgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fYnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgRGFl
bW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvY29jb2EvRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvY29jb2EvRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM1YmFiMzJlMjhjYTYxYzZhM2Q5NDYwYjBmNmM4YjFmNDFjOTZhN2EKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9EYWVtb25Db25uZWN0aW9uQ29j
b2EubW0KQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIkRhZW1vbkNvbm5lY3Rpb24uaCIKKworI2ltcG9ydCAiRGFlbW9uRW5jb2Rlci5o
IgorI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCisjaW1wb3J0
IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKwordm9pZCBDb25uZWN0aW9uOjpzZW5kKHhw
Y19vYmplY3RfdCBtZXNzYWdlKSBjb25zdAoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CisgICAgQVNTRVJUKG1fY29ubmVjdGlvbi5nZXQoKSk7CisgICAgQVNTRVJUKHhwY19nZXRf
dHlwZShtZXNzYWdlKSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZKTsKKyAgICB4cGNfY29ubmVjdGlv
bl9zZW5kX21lc3NhZ2UobV9jb25uZWN0aW9uLmdldCgpLCBtZXNzYWdlKTsKK30KKwordm9pZCBD
b25uZWN0aW9uOjpzZW5kV2l0aFJlcGx5KHhwY19vYmplY3RfdCBtZXNzYWdlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHhwY19vYmplY3RfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Cit7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBBU1NFUlQobV9jb25uZWN0aW9u
LmdldCgpKTsKKyAgICBBU1NFUlQoeHBjX2dldF90eXBlKG1lc3NhZ2UpID09IFhQQ19UWVBFX0RJ
Q1RJT05BUlkpOworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV93aXRoX3JlcGx5KG1f
Y29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbWFr
ZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoeHBjX29iamVjdF90IHJlcGx5KSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVwbHkpOworICAgIH0pLmdl
dCgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRzPgordm9pZCBDb25uZWN0aW9uVG9N
YWNoU2VydmljZTxUcmFpdHM+Ojppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3QK
K3sKKyAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgbV9jb25uZWN0
aW9uID0gYWRvcHROUyh4cGNfY29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNlKG1fbWFjaFNl
cnZpY2VOYW1lLmRhdGEoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkpOworICAgIHhw
Y19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVjdGlvbi5nZXQoKSwgW3dlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXZlbnQgPT0g
WFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygi
RmFpbGVkIHRvIGNvbm5lY3QgdG8gbWFjaCBzZXJ2aWNlICVzLCBsaWtlbHkgYmVjYXVzZSBpdCBp
cyBub3QgcmVnaXN0ZXJlZCB3aXRoIGxhdW5jaGQiLCB3ZWFrVGhpcy0+bV9tYWNoU2VydmljZU5h
bWUuZGF0YSgpKTsKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lO
VEVSUlVQVEVEKSB7CisgICAgICAgICAgICAvLyBEYWVtb24gY3Jhc2hlZCwgd2Ugd2lsbCBuZWVk
IHRvIG1ha2UgYSBuZXcgY29ubmVjdGlvbiB0byBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZGFlbW9u
LgorICAgICAgICAgICAgd2Vha1RoaXMtPm1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAg
IH0KKyAgICAgICAgd2Vha1RoaXMtPmNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50KGV2ZW50KTsKKyAg
ICB9KTsKKyAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwor
ICAgIAorICAgIG5ld0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCgpOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUcmFpdHM+Cit2b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNl
bmQodHlwZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3Nh
Z2UmJiBtZXNzYWdlKSBjb25zdAoreworICAgIGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQo
KTsKKyAgICBDb25uZWN0aW9uOjpzZW5kKGRpY3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdlVHlw
ZSwgV1RGTW92ZShtZXNzYWdlKSkuZ2V0KCkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFp
dHM+Cit2b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmRXaXRoUmVwbHko
dHlwZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSBjb25zdAoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CisgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOworCisgICAgQ29ubmVjdGlvbjo6
c2VuZFdpdGhSZXBseShkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUo
bWVzc2FnZSkpLmdldCgpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKHhwY19vYmplY3RfdCByZXBseSkgbXV0YWJsZSB7CisgICAgICAgIGlmICh4cGNf
Z2V0X3R5cGUocmVwbHkpICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpIHsKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KHsgfSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF91aW50NjQo
cmVwbHksIFRyYWl0czo6cHJvdG9jb2xWZXJzaW9uS2V5KSAhPSBUcmFpdHM6OnByb3RvY29sVmVy
c2lvblZhbHVlKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAgICB9CisgICAgICAgIHNp
emVfdCBkYXRhU2l6ZSB7IDAgfTsKKyAgICAgICAgY29uc3Qgdm9pZCogZGF0YSA9IHhwY19kaWN0
aW9uYXJ5X2dldF9kYXRhKHJlcGx5LCBUcmFpdHM6OnByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXks
ICZkYXRhU2l6ZSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGRhdGEpLCBkYXRhU2l6ZSB9KTsKKyAgICB9KTsKK30KKwordGVtcGxhdGUg
Y2xhc3MgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U8UENNOjpDb25uZWN0aW9uVHJhaXRzPjsKKwor
fSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24v
UENNRGFlbW9uQ29ubmVjdGlvblNldC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVjdGlvblNldC5oCmluZGV4IDhl
MTM0MjcwOGNjYWJmNWJkOTlkOTQxNDUyNWZkMDg0MjdmOWU5ZWMuLjlhMmU4OGQ3M2JmMzE3MGRl
ZTUyNDVmMTUxMWQzMjJhM2MwMTRlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0Rh
ZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0LmgKQEAgLTM0LDkgKzM0LDEwIEBAIGVudW0gY2xh
c3MgTWVzc2FnZUxldmVsIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1uYW1l
c3BhY2UgUENNIHsKLQorbmFtZXNwYWNlIERhZW1vbiB7CiBjbGFzcyBDb25uZWN0aW9uOworfQor
bmFtZXNwYWNlIFBDTSB7CiAKIGNsYXNzIERhZW1vbkNvbm5lY3Rpb25TZXQgewogcHVibGljOgpA
QCAtNDUsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGQoeHBjX2Nvbm5lY3Rpb25fdCk7
CiAgICAgdm9pZCByZW1vdmUoeHBjX2Nvbm5lY3Rpb25fdCk7CiAKLSAgICB2b2lkIHNldENvbm5l
Y3RlZE5ldHdvcmtQcm9jZXNzSGFzRGVidWdNb2RlRW5hYmxlZChjb25zdCBDb25uZWN0aW9uJiwg
Ym9vbCk7CisgICAgdm9pZCBzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVu
YWJsZWQoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiwgYm9vbCk7CiAgICAgYm9vbCBkZWJ1Z01v
ZGVFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6
Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25D
b25uZWN0aW9uU2V0Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVjdGlvblNldC5tbQppbmRleCA1NDVlMGQ5NmE3
MjIwYjNkM2UzMDliMWVlM2ZkMjEyZDcyZTFmM2M5Li5lZjgwMWZhYTM5NzM5MGVlNTRjY2U4MTll
OGFlOTQ5NmM3NGZlYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BD
TURhZW1vbkNvbm5lY3Rpb25TZXQubW0KQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBEYWVtb25Db25u
ZWN0aW9uU2V0OjpyZW1vdmUoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uKQogICAgIH0KIH0K
IAotdm9pZCBEYWVtb25Db25uZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hh
c0RlYnVnTW9kZUVuYWJsZWQoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgYm9vbCBlbmFi
bGVkKQordm9pZCBEYWVtb25Db25uZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vz
c0hhc0RlYnVnTW9kZUVuYWJsZWQoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBib29sIGVuYWJsZWQpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fY29ubmVjdGlvbnMuZmlu
ZChjb25uZWN0aW9uLmdldCgpKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9jb25uZWN0aW9ucy5l
bmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9p
bnQubW0KaW5kZXggZWQyMzAwNTMzMWI5NThkNWU0NjEwNjQ5ODlmNWFkODU5MGIwZTNkYS4uMWRh
NjhlYzUzNjkzYTBhNjlhNTc5NmVjZDVkNmE3YjEzODg2Zjc3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9u
RW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tCkBAIC0yNiw5ICsyNiw5IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlBDTURhZW1vbkVudHJ5UG9pbnQuaCIKIAor
I2ltcG9ydCAiRGFlbW9uRGVjb2Rlci5oIgogI2ltcG9ydCAiUENNRGFlbW9uQ29ubmVjdGlvblNl
dC5oIgogI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCi0jaW1w
b3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKICNpbXBvcnQgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgogI2ltcG9ydCAiUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRYUENVdGlsaXRpZXMuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgpAQCAtNjksOCArNjksOCBAQCBzdGF0aWMgdm9pZCBjb25uZWN0aW9uRXZlbnRIYW5kbGVy
KHhwY19vYmplY3RfdCByZXF1ZXN0KQogICAgIGF1dG8gbWVzc2FnZVR5cGUgeyBzdGF0aWNfY2Fz
dDxQQ006Ok1lc3NhZ2VUeXBlPih4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHJlcXVlc3QsIFBD
TTo6cHJvdG9jb2xNZXNzYWdlVHlwZUtleSkpIH07CiAgICAgc2l6ZV90IGRhdGFTaXplIHsgMCB9
OwogICAgIGNvbnN0IHZvaWQqIGRhdGEgPSB4cGNfZGljdGlvbmFyeV9nZXRfZGF0YShyZXF1ZXN0
LCBQQ006OnByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXksICZkYXRhU2l6ZSk7Ci0gICAgUENNOjpF
bmNvZGVkTWVzc2FnZSBlbmNvZGVkTWVzc2FnZSB7IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihkYXRhKSwgZGF0YVNpemUgfTsKLSAgICBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihQ
Q006OkNvbm5lY3Rpb24oeHBjX2RpY3Rpb25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKHJlcXVl
c3QpKSwgbWVzc2FnZVR5cGUsIFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCByZXBseVNlbmRlciht
ZXNzYWdlVHlwZSwgcmVxdWVzdCkpOworICAgIFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1l
c3NhZ2UgeyBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGRhdGFTaXplIH07Cisg
ICAgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoRGFlbW9uOjpDb25uZWN0aW9uKHhwY19k
aWN0aW9uYXJ5X2dldF9yZW1vdGVfY29ubmVjdGlvbihyZXF1ZXN0KSksIG1lc3NhZ2VUeXBlLCBl
bmNvZGVkTWVzc2FnZSwgcmVwbHlTZW5kZXIobWVzc2FnZVR5cGUsIHJlcXVlc3QpKTsKIH0KIAog
c3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKGNvbnN0
IGNoYXIqIHNlcnZpY2VOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2Yv
QXJndW1lbnRDb2RlcnNDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENv
ZGVyc0NGLmNwcAppbmRleCBlMzI4N2NmYTZhY2E1Mzk5OTk2MTIyNGNmOThmMjdmOGY2ZDE3ZjIy
Li4yNjc3NmRmNWZkMzZkNjE1MTg0NDZmMDliYWNiMTBkNmE3MDdlYzE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApAQCAtMjksMTEgKzI5LDExIEBA
CiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgiCisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rl
ci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAj
aW5jbHVkZSAiRW5jb2Rlci5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVj
b2Rlci5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2lu
Y2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNz
L0NvcmVHcmFwaGljcy5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CkBAIC00MTksNyAr
NDE5LDcgQEAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2Rl
cjxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj46OmRlY29kZSgKIH0KIAogdGVtcGxhdGUgc3RkOjpvcHRp
b25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRh
UmVmPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFs
PFJldGFpblB0cjxDRkRhdGFSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkRhdGFSZWY+
Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwor
dGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2Rl
cjxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj46OmRlY29kZTxXZWJLaXQ6OkRhZW1vbjo6RGVjb2Rlcj4o
V2ViS2l0OjpEYWVtb246OkRlY29kZXImKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4K
IHZvaWQgQXJndW1lbnRDb2RlcjxDRkRhdGVSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Q0ZEYXRlUmVmIGRhdGUpCkBAIC04NDAsNyArODQwLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNl
Y1RydXN0UmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIFNlY1RydXN0UmVmIHRydXN0KQog
fQogCiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+OjplbmNvZGU8RW5j
b2Rlcj4oRW5jb2RlciYsIFNlY1RydXN0UmVmKTsKLXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2Rl
cjxTZWNUcnVzdFJlZj46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006
OkVuY29kZXImLCBTZWNUcnVzdFJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2Vj
VHJ1c3RSZWY+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVuY29kZXI+KFdlYktpdDo6RGFlbW9u
OjpFbmNvZGVyJiwgU2VjVHJ1c3RSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNl
Y1RydXN0UmVmPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0
aW9uRW5jb2RlciYsIFNlY1RydXN0UmVmKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
QEAgLTg2Nyw3ICs4NjcsNyBAQCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+
IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVmPj46OmRlYwogfQogCiB0ZW1wbGF0
ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPFNlY1RydXN0UmVmPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0
ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPFNlY1RydXN0UmVmPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0
OjpQQ006OkRlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1Ry
dXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Pjo6ZGVjb2RlPFdl
YktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggNmE0MzQwNjcxNDYzZDk0NzA3MTky
MzEwYjFmN2JhMGJkMDNhNzZmNi4uYTRjYjhjOWQ2NjQwM2YzMDRiNWUwNmY3MjljY2U2OTRmNzQz
NjkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzTWFjLm1tCkBAIC0yOSw5ICsyOSw5IEBACiAKICNpbXBvcnQgIkFyZ3VtZW50Q29k
ZXJzQ0YuaCIKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKKyNpbXBvcnQgIkRhZW1v
bkRlY29kZXIuaCIKKyNpbXBvcnQgIkRhZW1vbkVuY29kZXIuaCIKICNpbXBvcnQgIkRhdGFSZWZl
cmVuY2UuaCIKLSNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2lt
cG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0NlcnRpZmljYXRlSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgpAQCAtNjcsNyArNjcs
NyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYgogfQogCiB0ZW1wbGF0ZTw+Ci12b2lkIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKFdlYktpdDo6UENNOjpF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+Ojpl
bmNvZGUoV2ViS2l0OjpEYWVtb246OkVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIEFTU0VSVChjZXJ0aWZpY2F0
ZUluZm8udHlwZSgpID09IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbzo6VHlwZTo6VHJ1c3QpOwog
ICAgIGVuY29kZXIgPDwgY2VydGlmaWNhdGVJbmZvLnRydXN0KCk7CkBAIC0xMDksNyArMTA5LDcg
QEAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjoKIH0KIAogdGVtcGxhdGU8Pgotc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvPjo6ZGVjb2RlKFdlYktpdDo6UENNOjpEZWNvZGVyJiBkZWNvZGVyKQorc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gdHJ1c3Q7CiAg
ICAgZGVjb2RlciA+PiB0cnVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGE0NTBhZDUzM2FkNjljMWU4MWZk
NTdhNjVlNmMzNzY4N2NjZDY4YzcuLjU1MzE5Y2JiNTdhZTRhYmFkM2UzMmRmYmZkYjVmZjJhOGM3
NDE1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTA2LDggKzEwNiw2IEBAIE5ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRl
ci5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50U3RvcmUuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwCiBOZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNs
aWVudC5jcHAKLU5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5jcHAKLU5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAKIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
clByb3h5LmNwcAogCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwIEBuby11bmlmeQpAQCAtMTYyLDYgKzE2MCw5IEBAIFBsYXRmb3JtL1NoYXJl
ZE1lbW9yeS5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwIEBu
by11bmlmeQogUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuY3BwIEBuby11bmlmeQogUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwIEBuby11bmlmeQorUGxhdGZvcm0vSVBDL0RhZW1vbkNvbm5lY3Rp
b24uY3BwCitQbGF0Zm9ybS9JUEMvRGFlbW9uRGVjb2Rlci5jcHAKK1BsYXRmb3JtL0lQQy9EYWVt
b25FbmNvZGVyLmNwcAogUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwIEBuby11bmlmeQogUGxhdGZv
cm0vSVBDL0VuY29kZXIuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0pTSVBDQmluZGluZy5j
cHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYzVkNjM2MWRiYzE4YTEwNjNm
M2FmZThkYWIzMzZhNTBhMDYxMzk2MC4uMDU3ODgzYWIwMGNmZDcwMGIyZTQxMzZhMmM3M2VmMGQ5
NDIwYmY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtOTYsNiArOTYsNyBAQCBQbGF0Zm9y
bS9pb3MvQWNjZXNzaWJpbGl0eUlPUy5tbQogUGxhdGZvcm0vaW9zL1BheW1lbnRBdXRob3JpemF0
aW9uQ29udHJvbGxlci5tbQogCiBQbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1t
CitQbGF0Zm9ybS9JUEMvY29jb2EvRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tCiBQbGF0Zm9ybS9J
UEMvY29jb2EvTWFjaE1lc3NhZ2UuY3BwCiAKIFBsYXRmb3JtL0lQQy9kYXJ3aW4vSVBDU2VtYXBo
b3JlRGFyd2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZjQ3MWQ5MzE4ZjQ1OWIwYjQxY2RkMWUyNTBiNzdkYTdlMTA5MTQwMS4u
ZTA1NzIzODc1NGNhYzNmMTIzMmJlZjE5Y2JhMjJlMDRlOTQ4MjcwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjU2LDYgKzEyNTYs
OCBAQAogCQk1QzE0MjcwNzFDMjNGODRDMDBENDExODMgLyogRG93bmxvYWRNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE0MjZGOTFDMjNG
ODQzMDBENDExODMgLyogRG93bmxvYWRNYW5hZ2VyLmggKi87IH07CiAJCTVDMTQyNzE4MUMyM0Y4
QjcwMEQ0MTE4MyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTQyNzE0MUMyM0Y4QjAwMEQ0MTE4
MyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCAqLzsgfTsKIAkJNUMxNTc5REMyNzE2
NUI4MjAwRUQ1MjgwIC8qIHdlYnB1c2hkLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1QzE1NzlEQjI3MTY1Qjc1MDBFRDUyODAgLyogd2VicHVzaGQuYyAq
LzsgfTsKKwkJNUMxNTc5RUUyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTU3OUVBMjcxNzJB
OEIwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVyLmggKi87IH07CisJCTVDMTU3OUVGMjcxNzJBOEIw
MEVENTI4MCAvKiBEYWVtb25EZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1QzE1NzlFQjI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rl
ci5oICovOyB9OwogCQk1QzE5QTUyMDFGRDBCMjk1MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMTlBNTFGMUZEMEIxNDcwMEVFQTMyMyAvKiBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5oICov
OyB9OwogCQk1QzIwQ0JBMDFCQjFFQ0Q4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjBDQjlFMUJCMERE
MTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovOyB9OwogCQk1QzI2OTU4NTIwMDQzMjEy
MDA1QzQzOUIgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyNjk1ODQyMDA0MkYxMjAwNUM0MzlC
IC8qIFdLT3BlblBhbmVsUGFyYW1ldGVyc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDUzNSw2ICs0NTM3LDEzIEBACiAJCTVDMTU3
OURBMjcxNjVCMkYwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5j
bHVkZUluSW5kZXggPSAwOyBwYXRoID0gd2VicHVzaGQ7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTVDMTU3OURCMjcxNjVCNzUwMEVENTI4MCAvKiB3ZWJwdXNoZC5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IHBhdGggPSB3ZWJwdXNoZC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzE1NzlERDI3MTY1QkU1MDBFRDUyODAgLyogd2VicHVzaGQueGNjb25maWcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gd2VicHVzaGQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDMTU3
OUUyMjcxNzJBNDkwMEVENTI4MCAvKiBEYWVtb25Db25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhZW1vbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlFMzI3MTcyQTQ5MDBFRDUyODAgLyogRGFlbW9uQ29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYWVtb25Db25uZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDMTU3OUU2MjcxNzJBNTEwMEVE
NTI4MCAvKiBEYWVtb25Db25uZWN0aW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBEYWVtb25Db25uZWN0aW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTVDMTU3OUU4MjcxNzJBOEEwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhZW1vbkVuY29kZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlFOTI3MTcyQThCMDBFRDUy
ODAgLyogRGFlbW9uRGVjb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEYWVtb25EZWNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMx
NTc5RUEyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGFlbW9uRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1QzE1NzlFQjI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYWVtb25EZWNvZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDMTlBNTFFMUZEMEIxNDYwMEVFQTMyMyAvKiBVUkxTY2hlbWVU
YXNrUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBV
UkxTY2hlbWVUYXNrUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDMTlBNTFGMUZEMEIxNDcwMEVFQTMyMyAvKiBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzFCMzhERjI2NjcxNDA3MDBCMTU0NUIg
LyogV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VOZXR3
b3JrUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDYzOSwxNCAr
NDY0OCwxMCBAQAogCQk1Q0I5MzBGNTI2RTgwMjE1MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUNCOTMwRjYyNkU4MDIxNTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50RGFlbW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDQjkzMEY3MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERhZW1vbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTVDQjkzMEY4MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNUNCOTMwRjkyNkU4MDIxNTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50RW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1Q0I5MzBGQTI2RTgwMjE1MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1Q0I5MzBGQjI2RTgwMjE1MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGQzI2RTgwMjE2MDAzMkIxQzAgLyogUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjkzMEZEMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDQjkzMEZFMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTVDQjkzMEZGMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVu
Y29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMTA0
MjZFODM3RkMwMDMyQjFDMCAvKiBQQ01EYWVtb25FbnRyeVBvaW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBDTURhZW1vbkVudHJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUNCOTMxMDUyNkU4MzdGRDAwMzJCMUMwIC8qIFBDTURhZW1vbkVudHJ5
UG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQQ01EYWVt
b25FbnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzEwNjI2
RTgzOUE5MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03MzY5LDYgKzczNzQsMTIgQEAKIAkJCQlCQ0VFOTY2QjExMkZBRjU3MDA2QkNDMjQgLyog
QXR0YWNobWVudC5oICovLAogCQkJCUJDMDMyREEyMTBGNDM3RDEwMDU4QzE1QSAvKiBDb25uZWN0
aW9uLmNwcCAqLywKIAkJCQlCQzAzMkRBMzEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5o
ICovLAorCQkJCTVDMTU3OUUyMjcxNzJBNDkwMEVENTI4MCAvKiBEYWVtb25Db25uZWN0aW9uLmNw
cCAqLywKKwkJCQk1QzE1NzlFMzI3MTcyQTQ5MDBFRDUyODAgLyogRGFlbW9uQ29ubmVjdGlvbi5o
ICovLAorCQkJCTVDMTU3OUU5MjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25EZWNvZGVyLmNwcCAq
LywKKwkJCQk1QzE1NzlFQjI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5oICovLAor
CQkJCTVDMTU3OUU4MjcxNzJBOEEwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVyLmNwcCAqLywKKwkJ
CQk1QzE1NzlFQTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRW5jb2Rlci5oICovLAogCQkJCTFB
Qzc1MzdFMTgzQkU1MEYwMDcyQ0IxNSAvKiBEYXRhUmVmZXJlbmNlLmggKi8sCiAJCQkJQkMwMzJE
OUQxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuY3BwICovLAogCQkJCUJDMDMyRDlFMTBGNDM3
RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggKi8sCkBAIC05NDM3LDEwICs5NDQ4LDYgQEAKIAkJCQk1
QzgyNkQ2OTI2RDQ4MkVBMDA4QUVDOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFz
ZS5oICovLAogCQkJCTVDQkU5MDkwMjZEN0ZCN0MwMDVBMkU5NSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERlYnVnSW5mby5jcHAgKi8sCiAJCQkJNUNCRTkwOEYyNkQ3RkI2MjAwNUEyRTk1IC8q
IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdJbmZvLmggKi8sCi0JCQkJNUNCOTMwRjgyNkU4
MDIxNTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5jcHAgKi8sCi0J
CQkJNUNCOTMwRkQyNkU4MDIxNjAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVj
b2Rlci5oICovLAotCQkJCTVDQjkzMEY5MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVuY29kZXIuY3BwICovLAotCQkJCTVDQjkzMEZGMjZFODAyMTYwMDMyQjFDMCAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCAqLywKIAkJCQk2QkQwNTg2NDIyMENF
OEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCAqLywKIAkJ
CQk2QkQwNTg2MzIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyLmggKi8sCiAJCQkJNUNCOTMxMDYyNkU4MzlBOTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAgKi8sCkBAIC0xMTE3MSw2ICsxMTE3OCw3IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBMzBFQUM1MTE1RDdE
QTMwMDUzRTkzNyAvKiBDb25uZWN0aW9uQ29jb2EubW0gKi8sCisJCQkJNUMxNTc5RTYyNzE3MkE1
MTAwRUQ1MjgwIC8qIERhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbSAqLywKIAkJCQkxQTFFQzY5RDE4
NzIwOTIxMDBCOTUxRjAgLyogSW1wb3J0YW5jZUFzc2VydGlvbi5oICovLAogCQkJCTFBNkQ4NkJG
MURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5jcHAgKi8sCiAJCQkJMUE2RDg2QzAxREY3
NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmggKi8sCkBAIC0xMjMxMSw2ICsxMjMxOSw4IEBA
CiAJCQkJNTc1OTdFQkQyMTgxODQ5MDAwMzdGOTI0IC8qIEN0YXBBdXRoZW50aWNhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1NzU5N0VCOTIxODExRDlBMDAzN0Y5MjQgLyogQ3RhcEhpZERyaXZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcwREFBQ0EyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBO
ZmNEcml2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDMTU3OUVGMjcxNzJBOEIwMEVENTI4MCAv
KiBEYWVtb25EZWNvZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzE1NzlFRTI3MTcyQThCMDBF
RDUyODAgLyogRGFlbW9uRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU1RjkxNzExQzU5
Njc2RTAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQzc1MzgwMTgzQkU1MEYwMDcyQ0IxNSAvKiBEYXRhUmVmZXJlbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5OTAzNkFFOTIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmgg
aW4gSGVhZGVycyAqLywK
</data>
<flag name="commit-queue"
          id="465253"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441109</attachid>
            <date>2021-10-13 11:05:04 -0700</date>
            <delta_ts>2021-10-13 11:05:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231680-20211013120503.patch</filename>
            <type>text/plain</type>
            <size>88549</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NDg2NWU4NjRmMDNlMDcz
ZjQ3ZDQwOTc4MTE1ODlkM2MzN2JkZTUuLjk4NDFjNmIyZmEyYWE0NTcyMzBiM2U4MmYwZDM2Nzg1
MzkwYjhlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMTAtMTMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmVwYXJlIGFk
YXR0cmlidXRpb25kIENvbm5lY3Rpb24gYW5kIElQQyBjb2RlIGZvciByZXVzZSB3aXRoIHdlYnB1
c2hkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgSSBtb3Zl
IENvbm5lY3Rpb24sIEVuY29kZXIsIGFuZCBEZWNvZGVyIG91dCBvZiBuYW1lc3BhY2UgUENNIGFu
ZCBpbnRvIG5hbWVzcGFjZSBEYWVtb24gYW5kIGtlZXAgdGhlIFBDTSBwYXJ0cyBpbiBQQ006OkNv
bm5lY3Rpb24uCisgICAgICAgIEkgcmVtb3ZlIGFuIHVubmVjZXNzYXJ5IG1lbW9yeSBjb3B5IGJ5
IHVzaW5nIGEgU3BhbiBpbnN0ZWFkIG9mIGEgVmVjdG9yIGZvciBkZWNvZGluZy4KKyAgICAgICAg
SSBtYWtlIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlIGEgdGVtcGxhdGUgdG8gYmUgdXNlZCB3aXRo
IGEgZGlmZmVyZW50IGNvbW11bmljYXRpb24gcHJvdG9jb2wgZm9yIGNvbW11bmljYXRpbmcgd2l0
aCB3ZWJwdXNoZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2Vu
ZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U6OnNlbmRXaXRoUmVwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OmdldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UENNOjpNZXNzYWdlSW5mbzo6dG9TdHJpbmdGb3JUZXN0aW5nOjplbmNvZGVS
ZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJveHk6OnNlbmRNZXNzYWdlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpSZXBseUNhbGxlcjw+OjpjYWxsUmVwbHkpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OlJlcGx5Q2FsbGVyPFN0cmluZz46OmNhbGxSZXBseSk6CisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6TWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZVdpdGhSZXBseSBjb25z
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uOjpu
ZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UENNOjpDb25uZWN0aW9uOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjppbml0aWFsaXplQ29u
bmVjdGlvbklmTmVlZGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJZk5l
Y2Vzc2FyeSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
blRvTWFjaFNlcnZpY2U6OmNoZWNrRm9yRGVidWdNZXNzYWdlQnJvYWRjYXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2
aWNlOjpzZW5kIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTo6c2VuZFdpdGhSZXBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvRGFlbW9uQ29ubmVjdGlvbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRF
bmNvZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uVG9NYWNoU2Vy
dmljZTxUcmFpdHM+OjpzZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25u
ZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+OjpzZW5kV2l0aFJlcGx5IGNvbnN0KToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29ubmVjdGlvbi5oLgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5l
Y3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5lY3Rpb246
OmdldCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNl
cnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
RGFlbW9uRGVjb2Rlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rl
ci5jcHAuCisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmguCisgICAgICAgIChXZWJLaXQ6OkRhZW1v
bjo6RGVjb2Rlcjo6RGVjb2Rlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29k
ZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwLgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RW5jb2Rlci5oLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9EYWVt
b25Db25uZWN0aW9uQ29jb2EubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uQ29jb2EubW0uCisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlv
bjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvbjo6c2Vu
ZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRv
TWFjaFNlcnZpY2U8VHJhaXRzPjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRz
Pjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U8VHJhaXRzPjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgICogU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQu
aDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENN
RGFlbW9uQ29ubmVjdGlvblNldC5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpEYWVtb25Db25u
ZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQp
OgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01E
YWVtb25FbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0aW9uRXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAg
ICogU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUp
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTAtMTMg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgV1RGOjpWYXJpYW50IGFuZCBXVEY6OmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3Bw
CmluZGV4IGE2ZTVmM2VmOGYxNjg2YjA0MTA2YjRlZTUxM2IxZGJlMDg5MmYzNzUuLjZlNDVkZGFj
NTEwYmI1YTI0NmZkNTYzMzY4MTdhZmJmNjhjY2YyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAKQEAgLTI2LDMyICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENNIHsKIAotQ29ubmVjdGlvblRvTWFjaFNlcnZp
Y2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUsIE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbikKLSAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdU
Rk1vdmUobWFjaFNlcnZpY2VOYW1lKSkKLSAgICAsIG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQ
dHIobmV0d29ya1Nlc3Npb24pKSB7IH0KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQotdm9pZCBD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3QKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQorICAgIDogRGFlbW9uOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJhaXRzPihXVEZNb3ZlKG1hY2hTZXJ2aWNlTmFt
ZSkpCisgICAgLCBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9uKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmRXaXRo
UmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotfQotCi0jZW5k
aWYKLQogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uLmgKaW5kZXggMDMwMjY3MmFjOGIyYWM4YTRiZjZhZTJhOTZhMjNlOTVkYzQx
OTgwYy4uMDlkZWM0NTU3NGE5YWJmZmVmM2UwZjNhNWZmMDU1MGY2YTFmZmRjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbi5oCkBAIC0yNSwxNSArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
LSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNs
dWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLSNlbmRpZgorI2luY2x1ZGUgIkRhZW1vbkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRl
cmZhY2UuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQyLDM3ICszNSwyNiBAQCBjbGFz
cyBOZXR3b3JrU2Vzc2lvbjsKIG5hbWVzcGFjZSBQQ00gewogCiBlbnVtIGNsYXNzIE1lc3NhZ2VU
eXBlIDogdWludDhfdDsKLXVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+Owog
Ci1jbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvbm5lY3Rpb24+IHsK
LXB1YmxpYzoKLSAgICBDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIGV4cGxpY2l0IENvbm5lY3Rpb24oUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+JiYg
Y29ubmVjdGlvbikKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkg
eyB9Ci0gICAgeHBjX2Nvbm5lY3Rpb25fdCBnZXQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KLSAgICB2b2lkIHNlbmQoeHBjX29iamVjdF90KSBjb25zdDsKLSAgICB2b2lk
IHNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHhwY19v
YmplY3RfdCk+JiYpIGNvbnN0OwotcHJvdGVjdGVkOgotICAgIG11dGFibGUgUmV0YWluUHRyPHhw
Y19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKLSNlbmRpZgorc3RydWN0IENvbm5lY3Rpb25U
cmFpdHMgeworICAgIHVzaW5nIE1lc3NhZ2VUeXBlID0gTWVzc2FnZVR5cGU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbFZlcnNpb25LZXkgeyBQQ006OnByb3RvY29s
VmVyc2lvbktleSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDY0X3QgcHJvdG9jb2xWZXJz
aW9uVmFsdWUgeyBQQ006OnByb3RvY29sVmVyc2lvblZhbHVlIH07CisgICAgc3RhdGljIGNvbnN0
ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5IHsgUENNOjpwcm90b2Nv
bEVuY29kZWRNZXNzYWdlS2V5IH07CiB9OwogCi1jbGFzcyBDb25uZWN0aW9uVG9NYWNoU2Vydmlj
ZSA6IHB1YmxpYyBDb25uZWN0aW9uIHsKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgRGFlbW9u
OjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJhaXRzPiB7CiBwdWJsaWM6Ci0g
ICAgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2UoQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFtZSwgTmV0
d29ya1Nlc3Npb24mKTsKLQotICAgIHZvaWQgc2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3Nh
Z2UmJikgY29uc3Q7Ci0gICAgdm9pZCBzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlLCBFbmNvZGVk
TWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmKSBj
b25zdDsKKyAgICBDb25uZWN0aW9uKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUsIE5ldHdvcmtT
ZXNzaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVl
ZGVkKCkgY29uc3Q7CisgICAgdm9pZCBuZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQoKSBjb25z
dCBmaW5hbDsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGNoZWNrRm9yRGVidWdNZXNz
YWdlQnJvYWRjYXN0KHhwY19vYmplY3RfdCkgY29uc3Q7CisgICAgUmV0YWluUHRyPHhwY19vYmpl
Y3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3NhZ2VUeXBlLCBEYWVtb246OkVuY29kZWRN
ZXNzYWdlJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29ubmVjdGlvblJlY2VpdmVkRXZlbnQo
eHBjX29iamVjdF90KSBjb25zdCBmaW5hbDsKICNlbmRpZgogICAgIHZvaWQgc2VuZERlYnVnTW9k
ZUlzRW5hYmxlZE1lc3NhZ2VJZk5lY2Vzc2FyeSgpIGNvbnN0OwogCi0gICAgY29uc3QgQ1N0cmlu
ZyBtX21hY2hTZXJ2aWNlTmFtZTsKICAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiBtX25ldHdv
cmtTZXNzaW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0OTNjMmNhN2Q5M2MzYWY1ZjY1NzlhMTVhNjI3ZDI1NjE1NWZkYmU5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWNvZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWNvZGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1uYW1lc3BhY2UgUENNIHsKLQot
RGVjb2Rlcjo6fkRlY29kZXIoKQotewotICAgIEFTU0VSVChtX2J1ZmZlclBvc2l0aW9uID09IG1f
YnVmZmVyLnNpemUoKSk7Ci19Ci0KLWJvb2wgRGVjb2Rlcjo6YnVmZmVySXNMYXJnZUVub3VnaFRv
Q29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QKLXsKLSAgICByZXR1cm4gYnl0ZXMgPD0g
bV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlvbjsKLX0KLQotYm9vbCBEZWNvZGVyOjpk
ZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHNpemVfdCkK
LXsKLSAgICBpZiAoIWJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRlcyhzaXplKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1lbWNweShkYXRhLCBtX2J1ZmZlci5kYXRhKCkgKyBt
X2J1ZmZlclBvc2l0aW9uLCBzaXplKTsKLSAgICBtX2J1ZmZlclBvc2l0aW9uICs9IHNpemU7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLWNvbnN0IHVpbnQ4X3QqIERlY29kZXI6OmRlY29kZUZpeGVk
TGVuZ3RoUmVmZXJlbmNlKHNpemVfdCBzaXplLCBzaXplX3QpCi17Ci0gICAgaWYgKCFidWZmZXJJ
c0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZSkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEgPSBtX2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBv
c2l0aW9uOwotICAgIG1fYnVmZmVyUG9zaXRpb24gKz0gc2l6ZTsKLSAgICByZXR1cm4gZGF0YTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgUENNCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWNvZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkM2E2NzBiYzViMGM0YzE4
YjQzOTJjNDIwYWI0MTI2M2Q0NzdjYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1uYW1lc3BhY2UgUENN
IHsKLQotY2xhc3MgRGVjb2RlciB7Ci1wdWJsaWM6Ci0gICAgRGVjb2RlcihWZWN0b3I8dWludDhf
dD4mJiBidWZmZXIpCi0gICAgICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKSB7IH0KLSAg
ICB+RGVjb2RlcigpOwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBEZWNvZGVyJiBv
cGVyYXRvcj4+KHN0ZDo6b3B0aW9uYWw8VD4mIHQpCi0gICAgewotICAgICAgICB0ID0gSVBDOjpB
cmd1bWVudENvZGVyPHN0ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8
VD4+LCB2b2lkPjo6ZGVjb2RlKCp0aGlzKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0K
LQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihzaXplX3QgbnVtRWxlbWVudHMpIGNvbnN0Ci0g
ICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYXJpdGhtZXRpYzxUPjo6dmFsdWUs
ICJUeXBlIFQgbXVzdCBoYXZlIGEgZml4ZWQsIGtub3duIGVuY29kZWQgc2l6ZSEiKTsKLQotICAg
ICAgICBpZiAobnVtRWxlbWVudHMgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgp
IC8gc2l6ZW9mKFQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVy
biBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMobnVtRWxlbWVudHMgKiBzaXplb2Yo
VCkpOwotICAgIH0KLQotICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZUZpeGVkTGVu
Z3RoRGF0YSh1aW50OF90KiBkYXRhLCBzaXplX3QsIHNpemVfdCBhbGlnbm1lbnQpOwotICAgIGNv
bnN0IHVpbnQ4X3QqIGRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCwgc2l6ZV90KTsK
LQotcHJpdmF0ZToKLSAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBidWZmZXJJc0xhcmdlRW5v
dWdoVG9Db250YWluQnl0ZXMoc2l6ZV90KSBjb25zdDsKLQotICAgIFZlY3Rvcjx1aW50OF90PiBt
X2J1ZmZlcjsKLSAgICBzaXplX3QgbV9idWZmZXJQb3NpdGlvbiB7IDAgfTsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFBDTQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjk4YjE1ZTUxMGU1OTkzNzQzZmU3ZTU2
M2VmMDFkZDc4YjkyNGZmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotbmFtZXNwYWNlIFBDTSB7Ci0KLXZvaWQgRW5jb2Rlcjo6ZW5jb2RlRml4ZWRMZW5ndGhEYXRh
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzaXplX3QpCi17Ci0gICAgbV9idWZm
ZXIuYXBwZW5kKGRhdGEsIHNpemUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBQQ00KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYThhODNjNjU5MjVkMjYyYWRkMjBiYTVhOGIxOTAzNjVlNTkzMmNiMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RW5jb2Rlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLW5hbWVzcGFjZSBQQ00gewotCi1jbGFzcyBFbmNvZGVyIHsKLXB1YmxpYzoKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIEVuY29kZXImIG9wZXJhdG9yPDwoVCYmIHQpCi0g
ICAgewotICAgICAgICBJUEM6OkFyZ3VtZW50Q29kZXI8c3RkOjpyZW1vdmVfY29uc3RfdDxzdGQ6
OnJlbW92ZV9yZWZlcmVuY2VfdDxUPj4+OjplbmNvZGUoKnRoaXMsIHN0ZDo6Zm9yd2FyZDxUPih0
KSk7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgdm9pZCBlbmNvZGUoQXJnJiYgYXJnLCBBcmdz
JiYuLi4gYXJncykKLSAgICB7Ci0gICAgICAgICp0aGlzIDw8IHN0ZDo6Zm9yd2FyZDxBcmc+KGFy
Zyk7Ci0gICAgICAgIGVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAgIH0K
LSAgICB2b2lkIGVuY29kZSgpIHsgfQotCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHRha2VCdWZmZXIo
KSB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fYnVmZmVyLCB7IH0pOyB9Ci0KLSAgICB2b2lkIGVu
Y29kZUZpeGVkTGVuZ3RoRGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBzaXplX3QgYWxpZ25t
ZW50KTsKLQotcHJpdmF0ZToKLSAgICBWZWN0b3I8dWludDhfdD4gbV9idWZmZXI7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBQQ00KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5jcHAKaW5kZXggMWY5NzQwNWE3OTg3MTM0ZGE5NWZjMTlkYmU5
MjJkNWY1ZGRlMzFjNy4uNjlkY2FkZTcxMmRlMGViYWQ2MDc2MTQ2ZGQwOGQxNjY5YjkxZGUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcApAQCAtMjYsMTEgKzI2LDEx
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmgiCiAKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgiCisjaW5j
bHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkhhbmRsZU1lc3NhZ2UuaCIKICNpbmNs
dWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50
RW5jb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0xNDMsNyArMTQzLDcgQEAg
RU1QVFlfUkVQTFkoc3RvcmVVbmF0dHJpYnV0ZWQpOwogCiBQQ006OkVuY29kZWRNZXNzYWdlIHRv
U3RyaW5nRm9yVGVzdGluZzo6ZW5jb2RlUmVwbHkoU3RyaW5nIHJlcGx5KQogewotICAgIFBDTTo6
RW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAgIGVuY29k
ZXIgPDwgcmVwbHk7CiAgICAgcmV0dXJuIGVuY29kZXIudGFrZUJ1ZmZlcigpOwogfQpAQCAtMTk3
LDkgKzE5Nyw5IEBAIHN0YXRpYyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXImIGRhZW1v
bk1hbmFnZXIoKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZvPgotdm9pZCBoYW5kbGVQQ01N
ZXNzYWdlKFBDTTo6RW5jb2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSkKK3ZvaWQgaGFuZGxl
UENNTWVzc2FnZShTcGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdlKQogewotICAgIFBD
TTo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICBEYWVtb246
OkRlY29kZXIgZGVjb2RlcihlbmNvZGVkTWVzc2FnZSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHR5
cGVuYW1lIEluZm86OkFyZ3NUdXBsZT4gYXJndW1lbnRzOwogICAgIGRlY29kZXIgPj4gYXJndW1l
bnRzOwpAQCAtMjA5LDEwICsyMDksMTAgQEAgdm9pZCBoYW5kbGVQQ01NZXNzYWdlKFBDTTo6RW5j
b2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSkKICAgICBJUEM6OmNhbGxNZW1iZXJGdW5jdGlv
bihXVEZNb3ZlKCphcmd1bWVudHMpLCAmZGFlbW9uTWFuYWdlcigpLCBJbmZvOjpNZW1iZXJGdW5j
dGlvbik7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRsZVBDTU1lc3NhZ2VTZXREZWJ1Z01vZGVJc0Vu
YWJsZWQoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUENNOjpFbmNvZGVkTWVzc2FnZSYm
IGVuY29kZWRNZXNzYWdlKQorc3RhdGljIHZvaWQgaGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9k
ZUlzRW5hYmxlZChjb25zdCBEYWVtb246OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNwYW48Y29u
c3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
UENNOjpEZWNvZGVyIGRlY29kZXIoV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgIERhZW1v
bjo6RGVjb2RlciBkZWNvZGVyKGVuY29kZWRNZXNzYWdlKTsKICAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGVuYWJsZWQ7CiAgICAgZGVjb2RlciA+PiBlbmFibGVkOwogICAgIGlmIChVTkxJS0VMWSgh
ZW5hYmxlZCkpCkBAIC0yMzAsOSArMjMwLDkgQEAgc3RhdGljIHZvaWQgaGFuZGxlUENNTWVzc2Fn
ZVNldERlYnVnTW9kZUlzRW5hYmxlZChjb25zdCBDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZvPgotdm9pZCBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5
KFBDTTo6RW5jb2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQQ006OkVuY29kZWRNZXNzYWdlJiYpPiYmIHJlcGx5U2VuZGVyKQordm9pZCBoYW5kbGVQ
Q01NZXNzYWdlV2l0aFJlcGx5KFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUENNOjpFbmNvZGVkTWVzc2FnZSYmKT4mJiByZXBseVNlbmRl
cikKIHsKLSAgICBQQ006OkRlY29kZXIgZGVjb2RlcihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7
CisgICAgRGFlbW9uOjpEZWNvZGVyIGRlY29kZXIoZW5jb2RlZE1lc3NhZ2UpOwogCiAgICAgc3Rk
OjpvcHRpb25hbDx0eXBlbmFtZSBJbmZvOjpBcmdzVHVwbGU+IGFyZ3VtZW50czsKICAgICBkZWNv
ZGVyID4+IGFyZ3VtZW50czsKQEAgLTI1MSw2MyArMjUxLDYzIEBAIHZvaWQgZG9EYWlseUFjdGl2
aXR5SW5NYW5hZ2VyKCkKICAgICBkYWVtb25NYW5hZ2VyKCkuZmlyZVBlbmRpbmdBdHRyaWJ1dGlv
blJlcXVlc3RzKCk7CiB9CiAKLXZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoY29u
c3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIFZlY3Rv
cjx1aW50OF90PiYmIGVuY29kZWRNZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjx1aW50OF90PiYmKT4mJiByZXBseVNlbmRlcikKK3ZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRU
b01hbmFnZXIoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBNZXNzYWdlVHlw
ZSBtZXNzYWdlVHlwZSwgU3Bhbjxjb25zdCB1aW50OF90PiBlbmNvZGVkTWVzc2FnZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYgcmVwbHlTZW5kZXIpCiB7CiAg
ICAgQVNTRVJUKG1lc3NhZ2VUeXBlU2VuZHNSZXBseShtZXNzYWdlVHlwZSkgPT0gISFyZXBseVNl
bmRlcik7CiAgICAgc3dpdGNoIChtZXNzYWdlVHlwZSkgewogICAgIGNhc2UgUENNOjpNZXNzYWdl
VHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVw
bHk8TWVzc2FnZUluZm86OnN0b3JlVW5hdHRyaWJ1dGVkPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdl
KSwgV1RGTW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJl
cGx5PE1lc3NhZ2VJbmZvOjpzdG9yZVVuYXR0cmlidXRlZD4oZW5jb2RlZE1lc3NhZ2UsIFdURk1v
dmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VU
eXBlOjpIYW5kbGVBdHRyaWJ1dGlvbjoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdl
SW5mbzo6aGFuZGxlQXR0cmlidXRpb24+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAg
ICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6aGFuZGxlQXR0cmlidXRpb24+KGVuY29k
ZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpD
bGVhcjoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6Y2xl
YXI+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAg
ICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmNsZWFyPihlbmNvZGVk
TWVzc2FnZSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFBDTTo6TWVzc2FnZVR5cGU6OkNsZWFyRm9yUmVnaXN0cmFibGVEb21haW46Ci0gICAgICAgIGhh
bmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmNsZWFyRm9yUmVnaXN0cmFibGVE
b21haW4+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7Cisg
ICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmNsZWFyRm9yUmVn
aXN0cmFibGVEb21haW4+KGVuY29kZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0RGVidWdNb2RlSXNF
bmFibGVkOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlU2V0RGVidWdNb2RlSXNFbmFibGVkKGNv
bm5lY3Rpb24sIFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVz
c2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZChjb25uZWN0aW9uLCBlbmNvZGVkTWVzc2FnZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6TWlncmF0ZVByaXZhdGVD
bGlja01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2U6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2U8TWVzc2FnZUluZm86Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lT
dG9yYWdlPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2U8TWVzc2FnZUluZm86Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lT
dG9yYWdlPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpN
ZXNzYWdlVHlwZTo6VG9TdHJpbmdGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdl
V2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjp0b1N0cmluZ0ZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2Rl
ZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OnRvU3RyaW5nRm9yVGVzdGluZz4oZW5jb2RlZE1lc3Nh
Z2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006
Ok1lc3NhZ2VUeXBlOjpTZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxl
UENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc+KFdURk1v
dmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5m
bzo6c2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRUb2tlblB1YmxpY0tleVVSTEZv
clRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldFRva2Vu
UHVibGljS2V5VVJMRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAg
ICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRUb2tlblB1YmxpY0tleVVSTEZvclRl
c3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1l
c3NhZ2VUeXBlOjpTZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRs
ZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZz4o
V1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3Nh
Z2VJbmZvOjpzZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRBdHRyaWJ1dGlv
blJlcG9ydFVSTHNGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJ
bmZvOjpzZXRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRN
ZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldEF0dHJp
YnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpNYXJrQWxsVW5hdHRyaWJ1dGVkQXNFeHBp
cmVkRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6bWFy
a0FsbFVuYXR0cmlidXRlZEFzRXhwaXJlZEZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3Nh
Z2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6bWFya0FsbFVuYXR0
cmlidXRlZEFzRXhwaXJlZEZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2VXaXRoUmVwbHk8TWVzc2FnZUluZm86Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSksIFdURk1v
dmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseTxNZXNz
YWdlSW5mbzo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlNldFBDTUZyYXVkUHJldmVudGlv
blZhbHVlc0ZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86
OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1l
c3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZv
clRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnN0YXJ0VGlt
ZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAg
ICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9y
VGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6
TWVzc2FnZVR5cGU6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2Fn
ZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRl
c3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmRl
c3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJl
cGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUlu
Zm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5
U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6QWxs
b3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgotICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlPE1lc3NhZ2VJbmZvOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBD
TVRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVz
c2FnZTxNZXNzYWdlSW5mbzo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0
aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlckludGVyZmFjZS5oCmluZGV4IDhmY2ZiNGI3NTQ1YWRhYTZlMGFhMGQ0NmIy
YzIxYzY5ZDk0OGNiZmEuLjE0NzlhZjNkYThmMWVkNTJhZWRkYTg0MTdhNzk1OTQxOTg3NDRmYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaApAQCAtMzUsMTQgKzM1LDE2IEBA
IGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK25hbWVzcGFj
ZSBEYWVtb24geworY2xhc3MgQ29ubmVjdGlvbjsKK30KKwogZW51bSBjbGFzcyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSA6IGJvb2wgeyBVbmF0dHJpYnV0ZWQsIEF0dHJp
YnV0ZWQgfTsKIAogY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOwogCiBuYW1l
c3BhY2UgUENNIHsKIAotY2xhc3MgQ29ubmVjdGlvbjsKLQogY2xhc3MgTWFuYWdlckludGVyZmFj
ZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWFuYWdlckludGVyZmFjZSgpIHsgfTsKQEAgLTEw
Niw3ICsxMDgsNyBAQCBlbnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDogdWludDhfdCB7CiBjb25zdGV4
cHIgY29uc3QgY2hhciogcHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB7ICJlbmNvZGVkIG1lc3Nh
Z2UiIH07CiB1c2luZyBFbmNvZGVkTWVzc2FnZSA9IFZlY3Rvcjx1aW50OF90PjsKIAotdm9pZCBk
ZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihjb25zdCBDb25uZWN0aW9uJiwgTWVzc2FnZVR5
cGUsIFZlY3Rvcjx1aW50OF90PiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPHVpbnQ4X3Q+JiYpPiYmKTsKK3ZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIo
Y29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiwgTWVzc2FnZVR5cGUsIFNwYW48Y29uc3QgdWludDhf
dD4gZW5jb2RlZE1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpPiYmKTsKIHZvaWQgZG9EYWlseUFjdGl2aXR5SW5NYW5hZ2VyKCk7CiBib29sIG1lc3NhZ2VU
eXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5j
cHAKaW5kZXggYTE4Nzc4NGQ4NmZhMTM5MDIwNjM5MWFmZGQwOTdkMjBiN2MxZmZhYS4uNGJiNjQ0
ZTNjZGYwMjA5MzMxNjA3NmRiNjQ5NGYyODQ1NWI4ZTI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJQcm94eS5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oIgogCisjaW5jbHVkZSAi
RGFlbW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEVuY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC0zOCwyMCArMzgsMjAgQEAgbmFtZXNwYWNlIFBDTSB7CiB0ZW1wbGF0
ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KIHZvaWQgTWFuYWdl
clByb3h5OjpzZW5kTWVzc2FnZShBcmdzJiYuLi4gYXJncykgY29uc3QKIHsKLSAgICBFbmNvZGVy
IGVuY29kZXI7CisgICAgRGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CiAgICAgZW5jb2Rlci5lbmNv
ZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICBtX2Nvbm5lY3Rpb24uc2VuZCht
ZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBBcmdzPiBzdHJ1Y3QgUmVwbHlDYWxsZXI7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBSZXBseUNh
bGxlcjw+IHsKLSAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGVjb2RlciYmIGRlY29kZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBzdGF0aWMg
dm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKICAgICB9CiB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgUmVwbHlDYWxsZXI8U3Ry
aW5nPiB7Ci0gICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERlY29kZXImJiBkZWNvZGVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBz
dGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gc3RyaW5nOwogICAgICAgICBkZWNvZGVyID4+IHN0
cmluZzsKQEAgLTY0LDEwICs2NCwxMCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBSZXBseUNhbGxlcjxT
dHJpbmc+IHsKIHRlbXBsYXRlPE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBB
cmdzLCB0eXBlbmFtZS4uLiBSZXBseUFyZ3M+CiB2b2lkIE1hbmFnZXJQcm94eTo6c2VuZE1lc3Nh
Z2VXaXRoUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyLCBBcmdzJiYuLi4gYXJncykgY29uc3QKIHsKLSAgICBFbmNvZGVyIGVuY29k
ZXI7CisgICAgRGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CiAgICAgZW5jb2Rlci5lbmNvZGUoc3Rk
Ojpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICBtX2Nvbm5lY3Rpb24uc2VuZFdpdGhSZXBs
eShtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byByZXBseUJ1ZmZlcikgbXV0YWJsZSB7
Ci0gICAgICAgIERlY29kZXIgZGVjb2RlcihXVEZNb3ZlKHJlcGx5QnVmZmVyKSk7CisgICAgICAg
IERhZW1vbjo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUocmVwbHlCdWZmZXIpKTsKICAgICAgICAg
UmVwbHlDYWxsZXI8UmVwbHlBcmdzLi4uPjo6Y2FsbFJlcGx5KFdURk1vdmUoZGVjb2RlciksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
UHJveHkuaAppbmRleCBmOTExNjE1YjUyYzllOGEyODBkMjdhMTllNmY3MzJjODdkNGMxMTM5Li5k
NGEyNzlhYjllMTIyMjhkZWUwNzA1YjhmZDgyZTJmOGU1MzlhM2M4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXJQcm94eS5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8TWVz
c2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3MsIHR5cGVuYW1lLi4uIFJlcGx5
QXJncz4KICAgICB2b2lkIHNlbmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVwbHlBcmdzLi4uKT4mJiwgQXJncyYmLi4uKSBjb25zdDsKIAotICAgIENvbm5lY3Rpb25U
b01hY2hTZXJ2aWNlIG1fY29ubmVjdGlvbjsKKyAgICBDb25uZWN0aW9uIG1fY29ubmVjdGlvbjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25u
ZWN0aW9uQ29jb2EubW0KaW5kZXggNzM1NWJmMjAzMDEwNTNhZjEzYWQ5MjBjODg3ZTlmMzA3YmJh
NWRiOC4uNjI5ZjRiY2Q4OGQzMjYwOGMwYWJjZWM5YjMyM2JhM2MwYWM0YWViNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
b2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5oIgogCi0jaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIK
KyNpbXBvcnQgIkRhZW1vbkVuY29kZXIuaCIKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50WFBDVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAt
MzQsMjggKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIG5hbWVzcGFjZSBQQ00gewogCi12
b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVk
KCkgY29uc3QKLXsKLSAgICBpZiAobV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0gICAg
bV9jb25uZWN0aW9uID0gYWRvcHROUyh4cGNfY29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNl
KG1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkp
OwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVjdGlvbi5nZXQo
KSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSh4cGNfb2JqZWN0X3QgZXZlbnQpIHsK
LSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVkFMSUQpCi0gICAgICAgICAgICBXVEZM
b2dBbHdheXMoIkZhaWxlZCB0byBjb25uZWN0IHRvIG1hY2ggc2VydmljZSAlcywgbGlrZWx5IGJl
Y2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hkIiwgd2Vha1RoaXMtPm1fbWFj
aFNlcnZpY2VOYW1lLmRhdGEoKSk7Ci0gICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09O
TkVDVElPTl9JTlRFUlJVUFRFRCkgewotICAgICAgICAgICAgLy8gRGFlbW9uIGNyYXNoZWQsIHdl
IHdpbGwgbmVlZCB0byBtYWtlIGEgbmV3IGNvbm5lY3Rpb24gdG8gYSBuZXcgaW5zdGFuY2Ugb2Yg
dGhlIGRhZW1vbi4KLSAgICAgICAgICAgIHdlYWtUaGlzLT5tX2Nvbm5lY3Rpb24gPSBudWxscHRy
OwotICAgICAgICB9Ci0gICAgICAgIHdlYWtUaGlzLT5jaGVja0ZvckRlYnVnTWVzc2FnZUJyb2Fk
Y2FzdChldmVudCk7Ci0gICAgfSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZhdGUobV9jb25u
ZWN0aW9uLmdldCgpKTsKLQotICAgIHNlbmREZWJ1Z01vZGVJc0VuYWJsZWRNZXNzYWdlSWZOZWNl
c3NhcnkoKTsKLX0KLQotdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9k
ZUlzRW5hYmxlZE1lc3NhZ2VJZk5lY2Vzc2FyeSgpIGNvbnN0Cit2b2lkIENvbm5lY3Rpb246Om5l
d0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fY29ubmVj
dGlvbik7CiAgICAgaWYgKCFtX25ldHdvcmtTZXNzaW9uCkBAIC02MywxMiArNDIsMTIgQEAgdm9p
ZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJ
Zk5lY2Vzc2FyeSgpIGNvbnN0CiAgICAgICAgIHx8ICFtX25ldHdvcmtTZXNzaW9uLT5wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgRW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAgIGVu
Y29kZXIuZW5jb2RlKHRydWUpOwogICAgIHNlbmQoTWVzc2FnZVR5cGU6OlNldERlYnVnTW9kZUlz
RW5hYmxlZCwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCi12b2lkIENvbm5lY3Rpb25Ub01h
Y2hTZXJ2aWNlOjpjaGVja0ZvckRlYnVnTWVzc2FnZUJyb2FkY2FzdCh4cGNfb2JqZWN0X3QgcmVx
dWVzdCkgY29uc3QKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdGlvblJlY2VpdmVkRXZlbnQoeHBj
X29iamVjdF90IHJlcXVlc3QpIGNvbnN0CiB7CiAgICAgaWYgKHhwY19nZXRfdHlwZShyZXF1ZXN0
KSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQogICAgICAgICByZXR1cm47CkBAIC04Miw1OSArNjEs
MTQgQEAgdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Y2hlY2tGb3JEZWJ1Z01lc3NhZ2VC
cm9hZGNhc3QoeHBjX29iamVjdF90IHJlcXVlc3QKICAgICBtX25ldHdvcmtTZXNzaW9uLT5uZXR3
b3JrUHJvY2VzcygpLmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fbmV0d29ya1Nlc3Npb24tPnNl
c3Npb25JRCgpLCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgbWVzc2Fn
ZUxldmVsLCBTdHJpbmc6OmZyb21VVEY4KGRlYnVnTWVzc2FnZSkpOwogfQogCi1zdGF0aWMgT1NP
YmplY3RQdHI8eHBjX29iamVjdF90PiBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UoTWVzc2FnZVR5cGUg
bWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkKK1JldGFpblB0cjx4cGNfb2Jq
ZWN0X3Q+IENvbm5lY3Rpb246OmRpY3Rpb25hcnlGcm9tTWVzc2FnZShNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKSBjb25zdAogewotICAgIGF1dG8gZGlj
dGlvbmFyeSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51
bGxwdHIsIDApKTsKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CiAgICAgYWRkVmVyc2lvbkFuZEVuY29kZWRN
ZXNzYWdlVG9EaWN0aW9uYXJ5KFdURk1vdmUobWVzc2FnZSksIGRpY3Rpb25hcnkuZ2V0KCkpOwog
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgcHJvdG9jb2xN
ZXNzYWdlVHlwZUtleSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1lc3NhZ2VUeXBlKSk7CiAgICAg
cmV0dXJuIGRpY3Rpb25hcnk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZCh4cGNfb2JqZWN0
X3QgbWVzc2FnZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAg
IEFTU0VSVChtX2Nvbm5lY3Rpb24uZ2V0KCkpOwotICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUobWVz
c2FnZSkgPT0gWFBDX1RZUEVfRElDVElPTkFSWSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9t
ZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZSk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlv
bjo6c2VuZFdpdGhSZXBseSh4cGNfb2JqZWN0X3QgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCh4cGNfb2JqZWN0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAotewotICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNTRVJUKG1fY29ubmVjdGlvbi5nZXQoKSk7
Ci0gICAgQVNTRVJUKHhwY19nZXRfdHlwZShtZXNzYWdlKSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZ
KTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0aF9yZXBseShtX2Nvbm5lY3Rp
b24uZ2V0KCksIG1lc3NhZ2UsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG1ha2VCbG9ja1B0
cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19v
YmplY3RfdCByZXBseSkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlcGx5KTsKLSAgICB9KS5nZXQoKSk7Ci19
Ci0KLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmQoTWVzc2FnZVR5cGUgbWVzc2Fn
ZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkgY29uc3QKLXsKLSAgICBpbml0aWFsaXpl
Q29ubmVjdGlvbklmTmVlZGVkKCk7Ci0gICAgQ29ubmVjdGlvbjo6c2VuZChkaWN0aW9uYXJ5RnJv
bU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpKTsKLX0KLQotdm9p
ZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAotewotICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRl
ZCgpOwotCi0gICAgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShkaWN0aW9uYXJ5RnJvbU1lc3Nh
Z2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19vYmplY3RfdCByZXBseSkgbXV0
YWJsZSB7Ci0gICAgICAgIGlmICh4cGNfZ2V0X3R5cGUocmVwbHkpICE9IFhQQ19UWVBFX0RJQ1RJ
T05BUlkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHhw
Y19kaWN0aW9uYXJ5X2dldF91aW50NjQocmVwbHksIHByb3RvY29sVmVyc2lvbktleSkgIT0gcHJv
dG9jb2xWZXJzaW9uVmFsdWUpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgc2l6ZV90IGRhdGFTaXplIHsgMCB9OwotICAgICAgICBjb25zdCB2b2lkKiBkYXRhID0g
eHBjX2RpY3Rpb25hcnlfZ2V0X2RhdGEocmVwbHksIHByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXks
ICZkYXRhU2l6ZSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGRhdGEpLCBkYXRhU2l6ZSB9KTsKLSAgICB9KTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZjI3ODAzNjJkZDIwMzc0MzRjYTFj
YjM5MGRkZTZlZjc5MTU5MzQuLmUxZTZiMTYzYzAyMDAxMTZmZmY1NzZiMTU5ZTFiNzhjYmNhY2Jk
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAK
QEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcmd1bWVu
dENvZGVycy5oIgogCisjaW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1v
bkVuY29kZXIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgpAQCAtNDQsNyArNDQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCiB0ZW1wbGF0ZQogdm9p
ZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25z
dCBXYWxsVGltZSYpOwogdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVu
Y29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBX
YWxsVGltZSYpOwordm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktpdDo6
RGFlbW9uOjpFbmNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1l
Jik7CiAKIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2FsbFRpbWUmIHRpbWUpCiB7CkBAIC02OCw3ICs2OCw3
IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENv
ZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kCiB0ZW1wbGF0ZQogc3RkOjpvcHRpb25hbDxXYWxs
VGltZT4gQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7
CiB0ZW1wbGF0ZQotc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gQXJndW1lbnRDb2RlcjxXYWxsVGlt
ZT46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsK
K3N0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8
V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHZv
aWQgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEF0b21TdHJpbmcmIGF0b21TdHJpbmcpCiB7CkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxDU3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENTdHJp
bmcmIHN0cmluZykKICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdHJpbmcuZGF0
YUFzVUludDhQdHIoKSwgbGVuZ3RoLCAxKTsKIH0KIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2Rl
cjxDU3RyaW5nPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7Ci10
ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6
RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7Cit0ZW1wbGF0
ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxXZWJLaXQ6OkRhZW1vbjo6RW5j
b2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPENTdHJpbmc+IEFyZ3VtZW50Q29k
ZXI8Q1N0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTI4LDcgKzEyOCw3IEBA
IHN0ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiB0ZW1wbGF0ZQogc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBBcmd1bWVu
dENvZGVyPENTdHJpbmc+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwogdGVtcGxhdGUKLXN0
ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPFdlYktp
dDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOworc3RkOjpvcHRpb25hbDxD
U3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRl
Y29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFN0cmluZyYp
OwogdGVtcGxhdGUKIHZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8U3RyZWFtQ29u
bmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7
CiB0ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZTxXZWJLaXQ6OlBD
TTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBTdHJpbmcmKTsKK3ZvaWQg
QXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVuY29kZXI+KFdl
YktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGUsIHR5cGVuYW1lIERlY29kZXI+CiBzdGF0aWMgaW5saW5lIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVTdHJpbmdUZXh0KERlY29kZXImIGRlY29kZXIsIHVpbnQz
Ml90IGxlbmd0aCkKQEAgLTE5Niw3ICsxOTYsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpv
cHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKERlY29kZXImCiB0
ZW1wbGF0ZQogc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVj
b2RlPERlY29kZXI+KERlY29kZXImKTsKIHRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFN0cmluZz4g
QXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktp
dDo6UENNOjpEZWNvZGVyJik7CitzdGQ6Om9wdGlvbmFsPFN0cmluZz4gQXJndW1lbnRDb2RlcjxT
dHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpE
ZWNvZGVyJik7CiAKIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U3RyaW5n
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NDc4NTRjYjIxYjNkYWJmODMxNWFkNDZmMmI5NGNmNjQxMDY3ZWMxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAs
MCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
YWVtb25Db25uZWN0aW9uLmgiCisKKyNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIERhZW1vbiB7CisK
KyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK3RlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4KK3ZvaWQg
Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRzPjo6c2VuZCh0eXBlbmFtZSBUcmFpdHM6Ok1l
c3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdAoreworfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUcmFpdHM+Cit2b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmRX
aXRoUmVwbHkodHlwZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgY29uc3QKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworfQorCit0ZW1wbGF0
ZSBjbGFzcyBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxQQ006OkNvbm5lY3Rpb25UcmFpdHM+Owor
CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc1YjEwNGY4MzMyZDU3N2UwZDc3MTFlMDYwOGY5NTU5YzE4OWJlOTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25Db25uZWN0aW9uLmgK
QEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgRGFlbW9uIHsKKwordXNpbmcgRW5jb2RlZE1lc3NhZ2UgPSBWZWN0b3I8dWludDhf
dD47CisKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlv
bj4geworcHVibGljOgorICAgIENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgZXhwbGljaXQgQ29ubmVjdGlvbihSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25f
dD4mJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKSB7IH0KKyAgICB4cGNfY29ubmVjdGlvbl90IGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQorICAgIHZvaWQgc2VuZCh4cGNfb2JqZWN0X3QpIGNvbnN0OworICAg
IHZvaWQgc2VuZFdpdGhSZXBseSh4cGNfb2JqZWN0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
eHBjX29iamVjdF90KT4mJikgY29uc3Q7Citwcm90ZWN0ZWQ6CisgICAgbXV0YWJsZSBSZXRhaW5Q
dHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9uOworI2VuZGlmCit9OworCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUcmFpdHM+CitjbGFzcyBDb25uZWN0aW9uVG9NYWNoU2VydmljZSA6IHB1Ymxp
YyBDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBDb25uZWN0aW9uVG9NYWNoU2VydmljZShDU3Ry
aW5nJiYgbWFjaFNlcnZpY2VOYW1lKQorICAgICAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdURk1v
dmUobWFjaFNlcnZpY2VOYW1lKSkgeyB9CisgICAgdmlydHVhbCB+Q29ubmVjdGlvblRvTWFjaFNl
cnZpY2UoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHNlbmQodHlwZW5hbWUgVHJhaXRzOjpNZXNz
YWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJikgY29uc3Q7CisgICAgdm9pZCBzZW5kV2l0aFJlcGx5
KHR5cGVuYW1lIFRyYWl0czo6TWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYpIGNvbnN0OworCisgICAgdmlydHVh
bCB2b2lkIG5ld0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCgpIGNvbnN0ID0gMDsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIFJldGFpblB0cjx4cGNfb2JqZWN0X3Q+IGRpY3Rpb25h
cnlGcm9tTWVzc2FnZSh0eXBlbmFtZSBUcmFpdHM6Ok1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2Fn
ZSYmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50
KHhwY19vYmplY3RfdCkgY29uc3QgPSAwOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3Q7CisKKyAgICBjb25zdCBDU3RyaW5n
IG1fbWFjaFNlcnZpY2VOYW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
RGFlbW9uRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25EZWNv
ZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOGMyMGQyYWJlZTg4NDMxNmM1ZjkwNmUzMmMwOTdjYzkzN2Q4
YzQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9u
RGVjb2Rlci5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgRGFlbW9uIHsKKworRGVjb2Rlcjo6fkRlY29kZXIoKQoreworICAgIEFTU0VS
VChtX2J1ZmZlclBvc2l0aW9uID09IG1fYnVmZmVyLnNpemUoKSk7Cit9CisKK2Jvb2wgRGVjb2Rl
cjo6YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QK
K3sKKyAgICByZXR1cm4gYnl0ZXMgPD0gbV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlv
bjsKK30KKworYm9vbCBEZWNvZGVyOjpkZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCogZGF0
YSwgc2l6ZV90IHNpemUsIHNpemVfdCkKK3sKKyAgICBpZiAoIWJ1ZmZlcklzTGFyZ2VFbm91Z2hU
b0NvbnRhaW5CeXRlcyhzaXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1lbWNweShk
YXRhLCBtX2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uLCBzaXplKTsKKyAgICBtX2J1
ZmZlclBvc2l0aW9uICs9IHNpemU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IHVpbnQ4
X3QqIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCBzaXplLCBzaXpl
X3QpCit7CisgICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEgPSBtX2J1
ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uOworICAgIG1fYnVmZmVyUG9zaXRpb24gKz0g
c2l6ZTsKKyAgICByZXR1cm4gZGF0YTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvRGFlbW9uRGVjb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRGVj
b2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZkMDZjNDdiOGE1OTEyNTUxODBlNDFmZGI3YWFjYTIwZjllZjI0
N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25E
ZWNvZGVyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVz
cGFjZSBEYWVtb24geworCitjbGFzcyBEZWNvZGVyIHsKK3B1YmxpYzoKKyAgICBEZWNvZGVyKFNw
YW48Y29uc3QgdWludDhfdD4gYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyKGJ1ZmZlcikgeyB9
CisgICAgfkRlY29kZXIoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgRGVjb2Rl
ciYgb3BlcmF0b3I+PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQorICAgIHsKKyAgICAgICAgdCA9IElQ
Qzo6QXJndW1lbnRDb2RlcjxzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5j
ZV90PFQ+Piwgdm9pZD46OmRlY29kZSgqdGhpcyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4oc2l6ZV90IG51bUVsZW1lbnRzKSBjb25z
dAorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2FyaXRobWV0aWM8VD46OnZh
bHVlLCAiVHlwZSBUIG11c3QgaGF2ZSBhIGZpeGVkLCBrbm93biBlbmNvZGVkIHNpemUhIik7CisK
KyAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSAvIHNpemVvZihUKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBy
ZXR1cm4gYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKG51bUVsZW1lbnRzICogc2l6
ZW9mKFQpKTsKKyAgICB9CisKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVGaXhl
ZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90LCBzaXplX3QgYWxpZ25tZW50KTsKKyAg
ICBjb25zdCB1aW50OF90KiBkZWNvZGVGaXhlZExlbmd0aFJlZmVyZW5jZShzaXplX3QsIHNpemVf
dCk7CisKK3ByaXZhdGU6CisgICAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgYnVmZmVySXNMYXJn
ZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCkgY29uc3Q7CisKKyAgICBTcGFuPGNvbnN0IHVp
bnQ4X3Q+IG1fYnVmZmVyOworICAgIHNpemVfdCBtX2J1ZmZlclBvc2l0aW9uIHsgMCB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTE4
NjI1ODFhMGY3NDNlZjZhNjliMDU5ZWIxZDY1NDZjZWIzNmE1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5jcHAKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYWVtb25F
bmNvZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKwor
dm9pZCBFbmNvZGVyOjplbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCogZGF0YSwg
c2l6ZV90IHNpemUsIHNpemVfdCkKK3sKKyAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSwgc2l6ZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIERhZW1vbgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWI0
N2QxNjY3NGVhMzFlNDE5NWZhYzkzOTcyNjU5NjExOTY0ODI4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJz
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKworY2xhc3Mg
RW5jb2RlciB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBFbmNvZGVy
JiBvcGVyYXRvcjw8KFQmJiB0KQorICAgIHsKKyAgICAgICAgSVBDOjpBcmd1bWVudENvZGVyPHN0
ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4+Pjo6ZW5jb2RlKCp0
aGlzLCBzdGQ6OmZvcndhcmQ8VD4odCkpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIHZvaWQg
ZW5jb2RlKEFyZyYmIGFyZywgQXJncyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICAqdGhpcyA8
PCBzdGQ6OmZvcndhcmQ8QXJnPihhcmcpOworICAgICAgICBlbmNvZGUoc3RkOjpmb3J3YXJkPEFy
Z3M+KGFyZ3MpLi4uKTsKKyAgICB9CisgICAgdm9pZCBlbmNvZGUoKSB7IH0KKworICAgIFZlY3Rv
cjx1aW50OF90PiB0YWtlQnVmZmVyKCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2J1ZmZlciwg
eyB9KTsgfQorCisgICAgdm9pZCBlbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCos
IHNpemVfdCwgc2l6ZV90IGFsaWdubWVudCk7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPHVpbnQ4
X3Q+IG1fYnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2Ev
RGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29j
b2EvRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1YmFiMzJlMjhjYTYxYzZh
M2Q5NDYwYjBmNmM4YjFmNDFjOTZhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9jb2NvYS9EYWVtb25Db25uZWN0aW9uQ29jb2EubW0KQEAgLTAsMCArMSwx
MTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRhZW1vbkNv
bm5lY3Rpb24uaCIKKworI2ltcG9ydCAiRGFlbW9uRW5jb2Rlci5oIgorI2ltcG9ydCAiUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4K
KyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3Bh
Y2UgRGFlbW9uIHsKKwordm9pZCBDb25uZWN0aW9uOjpzZW5kKHhwY19vYmplY3RfdCBtZXNzYWdl
KSBjb25zdAoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgQVNTRVJUKG1f
Y29ubmVjdGlvbi5nZXQoKSk7CisgICAgQVNTRVJUKHhwY19nZXRfdHlwZShtZXNzYWdlKSA9PSBY
UENfVFlQRV9ESUNUSU9OQVJZKTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UobV9j
b25uZWN0aW9uLmdldCgpLCBtZXNzYWdlKTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzZW5kV2l0
aFJlcGx5KHhwY19vYmplY3RfdCBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHhwY19v
YmplY3RfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKKyAgICBBU1NFUlQobV9jb25uZWN0aW9uLmdldCgpKTsKKyAgICBBU1NF
UlQoeHBjX2dldF90eXBlKG1lc3NhZ2UpID09IFhQQ19UWVBFX0RJQ1RJT05BUlkpOworICAgIHhw
Y19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV93aXRoX3JlcGx5KG1fY29ubmVjdGlvbi5nZXQoKSwg
bWVzc2FnZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbWFrZUJsb2NrUHRyKFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoeHBjX29iamVjdF90IHJl
cGx5KSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIocmVwbHkpOworICAgIH0pLmdldCgpKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVHJhaXRzPgordm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+
Ojppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV9jb25u
ZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgbV9jb25uZWN0aW9uID0gYWRvcHROUyh4cGNf
Y29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNlKG1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSwg
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkpOworICAgIHhwY19jb25uZWN0aW9uX3NldF9l
dmVudF9oYW5kbGVyKG1fY29ubmVjdGlvbi5nZXQoKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH1dKHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJ
T05fSU5WQUxJRCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGNvbm5lY3Qg
dG8gbWFjaCBzZXJ2aWNlICVzLCBsaWtlbHkgYmVjYXVzZSBpdCBpcyBub3QgcmVnaXN0ZXJlZCB3
aXRoIGxhdW5jaGQiLCB3ZWFrVGhpcy0+bV9tYWNoU2VydmljZU5hbWUuZGF0YSgpKTsKKyAgICAg
ICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7CisgICAg
ICAgICAgICAvLyBEYWVtb24gY3Jhc2hlZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2UgYSBuZXcgY29u
bmVjdGlvbiB0byBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZGFlbW9uLgorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgd2Vha1Ro
aXMtPmNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50KGV2ZW50KTsKKyAgICB9KTsKKyAgICB4cGNfY29u
bmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIAorICAgIG5ld0Nvbm5l
Y3Rpb25XYXNJbml0aWFsaXplZCgpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHM+Cit2
b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmQodHlwZW5hbWUgVHJhaXRz
OjpNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKSBjb25z
dAoreworICAgIGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKKyAgICBDb25uZWN0aW9u
OjpzZW5kKGRpY3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdlVHlwZSwgV1RGTW92ZShtZXNzYWdl
KSkuZ2V0KCkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHM+Cit2b2lkIENvbm5lY3Rp
b25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmRXaXRoUmVwbHkodHlwZW5hbWUgVHJhaXRzOjpN
ZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBj
b25zdAoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgaW5pdGlhbGl6ZUNv
bm5lY3Rpb25JZk5lZWRlZCgpOworCisgICAgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShkaWN0
aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19vYmpl
Y3RfdCByZXBseSkgbXV0YWJsZSB7CisgICAgICAgIGlmICh4cGNfZ2V0X3R5cGUocmVwbHkpICE9
IFhQQ19UWVBFX0RJQ1RJT05BUlkpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF91aW50NjQocmVwbHksIFRyYWl0czo6cHJv
dG9jb2xWZXJzaW9uS2V5KSAhPSBUcmFpdHM6OnByb3RvY29sVmVyc2lvblZhbHVlKSB7CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcih7IH0pOworICAgICAgICB9CisgICAgICAgIHNpemVfdCBkYXRhU2l6ZSB7IDAg
fTsKKyAgICAgICAgY29uc3Qgdm9pZCogZGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKHJl
cGx5LCBUcmFpdHM6OnByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXksICZkYXRhU2l6ZSk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEp
LCBkYXRhU2l6ZSB9KTsKKyAgICB9KTsKK30KKwordGVtcGxhdGUgY2xhc3MgQ29ubmVjdGlvblRv
TWFjaFNlcnZpY2U8UENNOjpDb25uZWN0aW9uVHJhaXRzPjsKKworfSAvLyBuYW1lc3BhY2UgRGFl
bW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVjdGlv
blNldC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9E
YWVtb24vUENNRGFlbW9uQ29ubmVjdGlvblNldC5oCmluZGV4IDhlMTM0MjcwOGNjYWJmNWJkOTlk
OTQxNDUyNWZkMDg0MjdmOWU5ZWMuLjlhMmU4OGQ3M2JmMzE3MGRlZTUyNDVmMTUxMWQzMjJhM2Mw
MTRlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25Db25u
ZWN0aW9uU2V0LmgKQEAgLTM0LDkgKzM0LDEwIEBAIGVudW0gY2xhc3MgTWVzc2FnZUxldmVsIDog
dWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1uYW1lc3BhY2UgUENNIHsKLQorbmFt
ZXNwYWNlIERhZW1vbiB7CiBjbGFzcyBDb25uZWN0aW9uOworfQorbmFtZXNwYWNlIFBDTSB7CiAK
IGNsYXNzIERhZW1vbkNvbm5lY3Rpb25TZXQgewogcHVibGljOgpAQCAtNDUsNyArNDYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGQoeHBjX2Nvbm5lY3Rpb25fdCk7CiAgICAgdm9pZCByZW1vdmUo
eHBjX2Nvbm5lY3Rpb25fdCk7CiAKLSAgICB2b2lkIHNldENvbm5lY3RlZE5ldHdvcmtQcm9jZXNz
SGFzRGVidWdNb2RlRW5hYmxlZChjb25zdCBDb25uZWN0aW9uJiwgYm9vbCk7CisgICAgdm9pZCBz
ZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQoY29uc3QgRGFlbW9u
OjpDb25uZWN0aW9uJiwgYm9vbCk7CiAgICAgYm9vbCBkZWJ1Z01vZGVFbmFibGVkKCkgY29uc3Q7
CiAgICAgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0Lm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENN
RGFlbW9uQ29ubmVjdGlvblNldC5tbQppbmRleCA1NDVlMGQ5NmE3MjIwYjNkM2UzMDliMWVlM2Zk
MjEyZDcyZTFmM2M5Li5lZjgwMWZhYTM5NzM5MGVlNTRjY2U4MTllOGFlOTQ5NmM3NGZlYzZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L0RhZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25T
ZXQubW0KQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBEYWVtb25Db25uZWN0aW9uU2V0OjpyZW1vdmUo
eHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uKQogICAgIH0KIH0KIAotdm9pZCBEYWVtb25Db25u
ZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQo
Y29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgYm9vbCBlbmFibGVkKQordm9pZCBEYWVtb25D
b25uZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJs
ZWQoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBib29sIGVuYWJsZWQpCiB7
CiAgICAgYXV0byBpdGVyYXRvciA9IG1fY29ubmVjdGlvbnMuZmluZChjb25uZWN0aW9uLmdldCgp
KTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9jb25uZWN0aW9ucy5lbmQoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24v
UENNRGFlbW9uRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KaW5kZXggZWQyMzAw
NTMzMWI5NThkNWU0NjEwNjQ5ODlmNWFkODU5MGIwZTNkYS4uMWRhNjhlYzUzNjkzYTBhNjlhNTc5
NmVjZDVkNmE3YjEzODg2Zjc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9Q
Q01EYWVtb25FbnRyeVBvaW50Lm1tCkBAIC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIlBDTURhZW1vbkVudHJ5UG9pbnQuaCIKIAorI2ltcG9ydCAiRGFlbW9uRGVj
b2Rlci5oIgogI2ltcG9ydCAiUENNRGFlbW9uQ29ubmVjdGlvblNldC5oIgogI2ltcG9ydCAiUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCi0jaW1wb3J0ICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlY29kZXIuaCIKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5oIgogI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRYUENVdGls
aXRpZXMuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgpAQCAtNjksOCArNjks
OCBAQCBzdGF0aWMgdm9pZCBjb25uZWN0aW9uRXZlbnRIYW5kbGVyKHhwY19vYmplY3RfdCByZXF1
ZXN0KQogICAgIGF1dG8gbWVzc2FnZVR5cGUgeyBzdGF0aWNfY2FzdDxQQ006Ok1lc3NhZ2VUeXBl
Pih4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHJlcXVlc3QsIFBDTTo6cHJvdG9jb2xNZXNzYWdl
VHlwZUtleSkpIH07CiAgICAgc2l6ZV90IGRhdGFTaXplIHsgMCB9OwogICAgIGNvbnN0IHZvaWQq
IGRhdGEgPSB4cGNfZGljdGlvbmFyeV9nZXRfZGF0YShyZXF1ZXN0LCBQQ006OnByb3RvY29sRW5j
b2RlZE1lc3NhZ2VLZXksICZkYXRhU2l6ZSk7Ci0gICAgUENNOjpFbmNvZGVkTWVzc2FnZSBlbmNv
ZGVkTWVzc2FnZSB7IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgZGF0YVNpemUg
fTsKLSAgICBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihQQ006OkNvbm5lY3Rpb24oeHBj
X2RpY3Rpb25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKHJlcXVlc3QpKSwgbWVzc2FnZVR5cGUs
IFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCByZXBseVNlbmRlcihtZXNzYWdlVHlwZSwgcmVxdWVz
dCkpOworICAgIFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UgeyBzdGF0aWNfY2Fz
dDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGRhdGFTaXplIH07CisgICAgZGVjb2RlTWVzc2FnZUFu
ZFNlbmRUb01hbmFnZXIoRGFlbW9uOjpDb25uZWN0aW9uKHhwY19kaWN0aW9uYXJ5X2dldF9yZW1v
dGVfY29ubmVjdGlvbihyZXF1ZXN0KSksIG1lc3NhZ2VUeXBlLCBlbmNvZGVkTWVzc2FnZSwgcmVw
bHlTZW5kZXIobWVzc2FnZVR5cGUsIHJlcXVlc3QpKTsKIH0KIAogc3RhdGljIHZvaWQgc3RhcnRM
aXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAppbmRleCBl
MzI4N2NmYTZhY2E1Mzk5OTk2MTIyNGNmOThmMjdmOGY2ZDE3ZjIyLi4yNjc3NmRmNWZkMzZkNjE1
MTg0NDZmMDliYWNiMTBkNmE3MDdlYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9B
cmd1bWVudENvZGVyc0NGLmNwcApAQCAtMjksMTEgKzI5LDExIEBACiAjaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnNDRi5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJE
YWVtb25EZWNvZGVyLmgiCisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5o
IgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5l
Y3Rpb25FbmNvZGVyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgog
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CkBAIC00MTksNyArNDE5LDcgQEAgc3RkOjpvcHRp
b25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRh
UmVmPj46OmRlY29kZSgKIH0KIAogdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZE
YXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj46OmRlY29kZTxEZWNv
ZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFS
ZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkRhdGFSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6
UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRp
b25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRh
UmVmPj46OmRlY29kZTxXZWJLaXQ6OkRhZW1vbjo6RGVjb2Rlcj4oV2ViS2l0OjpEYWVtb246OkRl
Y29kZXImKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2Rl
cjxDRkRhdGVSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZEYXRlUmVmIGRhdGUpCkBA
IC04NDAsNyArODQwLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIFNlY1RydXN0UmVmIHRydXN0KQogfQogCiB0ZW1wbGF0ZSB2b2lk
IEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIFNl
Y1RydXN0UmVmKTsKLXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj46OmVu
Y29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBTZWNUcnVz
dFJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+OjplbmNvZGU8
V2ViS2l0OjpEYWVtb246OkVuY29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgU2VjVHJ1
c3RSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6ZW5jb2Rl
PFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIFNlY1Ry
dXN0UmVmKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KQEAgLTg2Nyw3ICs4NjcsNyBA
QCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPFNlY1RydXN0UmVmPj46OmRlYwogfQogCiB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJl
dGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVm
Pj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJl
dGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVm
Pj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsK
K3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRD
b2RlcjxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNv
ZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ3VybC5jcHAKaW5kZXggZDU0YmFmNGM1ZjkxY2MxYzAyNTMzOTQ3MGI3OTEyMjEy
NmU3ZWQ1Ni4uNmZjNTQ0MzQ4MjUzZjEwODUyYWFkYjU3ZWUyYmJlNGExMGE5YmY3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVy
c0N1cmwuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgi
CisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
LSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRp
ZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3VybFByb3h5U2V0dGluZ3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KQEAgLTYyLDcgKzYyLDcgQEAg
dm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUkKICAgICAgICAgZW5jb2RlciA8PCBjZXJ0aWZpY2F0ZTsK
IH0KIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+
OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYpOwotdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
bz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVu
Y29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPENl
cnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKQEAgLTkwLDcgKzkwLDcgQEAgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0
ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGQK
ICAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvIHsgKnZlcmlmaWNhdGlvbkVycm9yLCBXVEZNb3Zl
KGNlcnRpZmljYXRlQ2hhaW4pIH07CiB9CiB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+
OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwotdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYp
OwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9u
OjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogCiB2b2lkIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwCmluZGV4IDlmNDQyMzk4ZGZlNTlk
ZjA2YjRlZTZiMDQyZDE3ZDY5ZGI4ZjljNTQuLjkwMWMwMzEyNGI4MjNiNTQ0YzYxZWI4MDZlNjA0
MDRkNzVhY2JkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1l
bnRDb2RlcnNHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50
Q29kZXJzR0xpYi5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJBcmd1bWVudENvZGVyc0dMaWIuaCIKIAorI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIu
aCIKKyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgPGdpby9naW8uaD4K
ICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdU
bHNDZXJ0aWZpY2F0ZT4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgR1JlZlB0cjxHCiAgICAg
fQogfQogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRl
Pj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsK
LXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+Ojpl
bmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgR1JlZlB0
cjxHVGxzQ2VydGlmaWNhdGU+KTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRy
PEdUbHNDZXJ0aWZpY2F0ZT4+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVuY29kZXI+KFdlYktp
dDo6RGFlbW9uOjpFbmNvZGVyJiwgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNh
dGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQpAQCAtMTY0LDYgKzE2NCw2IEBAIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxH
VGxzQ2VydGlmaWNhdGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46
CiAgICAgcmV0dXJuIGNlcnRpZmljYXRlOwogfQogdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxHUmVm
UHRyPEdUbHNDZXJ0aWZpY2F0ZT4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNh
dGU+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8
R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRp
ZmljYXRlPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29k
ZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBB
cmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmRlY29kZTxXZWJLaXQ6OkRh
ZW1vbjo6RGVjb2Rlcj4oV2ViS2l0OjpEYWVtb246OkRlY29kZXImKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbQppbmRleCA2YTQzNDA2NzE0NjNkOTQ3MDcxOTIzMTBiMWY3YmEwYmQwM2E3
NmY2Li5hNGNiOGM5ZDY2NDAzZjMwNGI1ZTA2ZjcyOWNjZTY5NGY3NDM2OTNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
QEAgLTI5LDkgKzI5LDkgQEAKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2ltcG9y
dCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgorI2ltcG9ydCAiRGFlbW9uRGVjb2Rlci5oIgorI2lt
cG9ydCAiRGFlbW9uRW5jb2Rlci5oIgogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgotI2ltcG9y
dCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0jaW1wb3J0ICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZv
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgV2ViCiB9CiAKIHRlbXBsYXRlPD4KLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoV2ViS2l0OjpQQ006OkVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQordm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZShXZWJLaXQ6OkRh
ZW1vbjo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgQVNTRVJUKGNlcnRpZmljYXRlSW5mby50eXBlKCkgPT0g
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvOjpUeXBlOjpUcnVzdCk7CiAgICAgZW5jb2RlciA8PCBj
ZXJ0aWZpY2F0ZUluZm8udHJ1c3QoKTsKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8+OgogfQogCiB0ZW1wbGF0ZTw+Ci1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNv
ZGUoV2ViS2l0OjpQQ006OkRlY29kZXImIGRlY29kZXIpCitzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+
OjpkZWNvZGUoV2ViS2l0OjpEYWVtb246OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgc3RkOjpv
cHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiB0cnVzdDsKICAgICBkZWNvZGVyID4+IHRy
dXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzU291cC5jcHAKaW5kZXggMDQzYjMwODg3ZjAwODFkZjdmMTNhNWZiNzlmMzBhNDhj
OGFmMWY4OS4uMjk3M2EyYmFiNmNhOGIwMjMzMjVjYjAwMWUyMDczYWRmMWYwNDA2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVy
c1NvdXAuY3BwCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0dMaWIuaCIKKyNpbmNsdWRlICJEYWVt
b25EZWNvZGVyLmgiCisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIK
LSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3JlZGVudGlhbC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgpAQCAtNjcsNyArNjcs
NyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRlSQogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGNlcnRpZmljYXRlSW5mby50bHNFcnJvcnMoKSk7CiB9CiB0ZW1wbGF0ZSB2b2lk
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXIm
LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKLXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxD
ZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENN
OjpFbmNvZGVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3Vt
ZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNvZGVy
PihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CkBAIC05MSw3ICs5MSw3IEBAIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVu
dENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkCiAgICAgcmV0dXJuIGNl
cnRpZmljYXRlSW5mbzsKIH0KIHRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZv
PiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVy
Jik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2Rl
cjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6
UENNOjpEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4g
QXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRl
Y29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBhNDUwYWQ1
MzNhZDY5YzFlODFmZDU3YTY1ZTZjMzc2ODdjY2Q2OGM3Li41NTMxOWNiYjU3YWU0YWJhZDNlMzJk
ZmJmZGI1ZmYyYThjNzQxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEwNiw4ICsxMDYsNiBAQCBOZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREYWVtb25DbGllbnQuY3BwCi1OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwCi1OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3Bw
CiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5jcHAKIAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBAbm8tdW5pZnkKQEAgLTE2Miw2ICsxNjAsOSBAQCBQ
bGF0Zm9ybS9TaGFyZWRNZW1vcnkuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcCBAbm8tdW5p
ZnkKIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKK1BsYXRmb3JtL0lQQy9E
YWVtb25Db25uZWN0aW9uLmNwcAorUGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuY3BwCitQbGF0
Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5jcHAKIFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcCBAbm8t
dW5pZnkKIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9K
U0lQQ0JpbmRpbmcuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGM1ZDYz
NjFkYmMxOGExMDYzZjNhZmU4ZGFiMzM2YTUwYTA2MTM5NjAuLjA1Nzg4M2FiMDBjZmQ3MDBiMmU0
MTM2YTJjNzNlZjBkOTQyMGJmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTk2LDYgKzk2
LDcgQEAgUGxhdGZvcm0vaW9zL0FjY2Vzc2liaWxpdHlJT1MubW0KIFBsYXRmb3JtL2lvcy9QYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIubW0KIAogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5l
Y3Rpb25Db2NvYS5tbQorUGxhdGZvcm0vSVBDL2NvY29hL0RhZW1vbkNvbm5lY3Rpb25Db2NvYS5t
bQogUGxhdGZvcm0vSVBDL2NvY29hL01hY2hNZXNzYWdlLmNwcAogCiBQbGF0Zm9ybS9JUEMvZGFy
d2luL0lQQ1NlbWFwaG9yZURhcndpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY0NzFkOTMxOGY0NTliMGI0MWNkZDFlMjUwYjc3
ZGE3ZTEwOTE0MDEuLmUwNTcyMzg3NTRjYWMzZjEyMzJiZWYxOWNiYTIyZTA0ZTk0ODI3MDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTI1Niw2ICsxMjU2LDggQEAKIAkJNUMxNDI3MDcxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2Fk
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUMxNDI2RjkxQzIzRjg0MzAwRDQxMTgzIC8qIERvd25sb2FkTWFuYWdlci5oICovOyB9OwogCQk1
QzE0MjcxODFDMjNGOEI3MDBENDExODMgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE0MjcxNDFD
MjNGOEIwMDBENDExODMgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmggKi87IH07CiAJ
CTVDMTU3OURDMjcxNjVCODIwMEVENTI4MCAvKiB3ZWJwdXNoZC5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNTc5REIyNzE2NUI3NTAwRUQ1MjgwIC8q
IHdlYnB1c2hkLmMgKi87IH07CisJCTVDMTU3OUVFMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25F
bmNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzE1NzlFQTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRW5jb2Rlci5oICovOyB9OworCQk1QzE1
NzlFRjI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNTc5RUIyNzE3MkE4QjAwRUQ1MjgwIC8q
IERhZW1vbkRlY29kZXIuaCAqLzsgfTsKIAkJNUMxOUE1MjAxRkQwQjI5NTAwRUVBMzIzIC8qIFVS
TFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzE5QTUxRjFGRDBCMTQ3MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMuaCAqLzsgfTsKIAkJNUMyMENCQTAxQkIxRUNEODAwODk1QkIxIC8qIE5ldHdvcmtT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAqLzsgfTsKIAkJNUMy
Njk1ODUyMDA0MzIxMjAwNUM0MzlCIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVyc1ByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjY5NTg0MjAw
NDJGMTIwMDVDNDM5QiAvKiBXS09wZW5QYW5lbFBhcmFtZXRlcnNQcml2YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ1MzUsNiArNDUzNywx
MyBAQAogCQk1QzE1NzlEQTI3MTY1QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhl
Y3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHdlYnB1c2hkOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1QzE1NzlEQjI3MTY1Qjc1MDBFRDUyODAgLyog
d2VicHVzaGQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gd2VicHVzaGQuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8qIHdlYnB1c2hkLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IHdlYnB1c2hkLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1QzE1NzlFMjI3MTcyQTQ5MDBFRDUyODAgLyogRGFlbW9uQ29ubmVjdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYWVtb25Db25uZWN0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RTMyNzE3MkE0OTAwRUQ1Mjgw
IC8qIERhZW1vbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGFlbW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlF
NjI3MTcyQTUxMDBFRDUyODAgLyogRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlFODI3MTcyQThBMDBFRDUyODAgLyog
RGFlbW9uRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
YWVtb25FbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RTky
NzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRlY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGFlbW9uRGVjb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTVDMTU3OUVBMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhZW1vbkVuY29kZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RUIyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRl
Y29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGFlbW9uRGVjb2Rlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzE5QTUxRTFGRDBCMTQ2MDBFRUEzMjMg
LyogVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1QzE5QTUxRjFGRDBCMTQ3MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxQjM4REYyNjY3
MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQ2MzksMTQgKzQ2NDgsMTAgQEAKIAkJNUNCOTMwRjUyNkU4MDIxNTAwMzJCMUMwIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEY2MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGNzI2RTgwMjE1MDAzMkIxQzAgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1Q0I5MzBGODI2RTgwMjE1MDAzMkIxQzAgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjkzMEY5MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRkEyNkU4MDIxNTAwMzJCMUMwIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRkIyNkU4MDIxNTAwMzJCMUMwIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRkMyNkU4MDIxNjAwMzJCMUMw
IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1Q0I5MzBGRDI2RTgwMjE2MDAzMkIx
QzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGRTI2RTgwMjE2MDAzMkIxQzAgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk1Q0I5MzBGRjI2RTgwMjE2MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1Q0I5MzEwNDI2RTgzN0ZDMDAzMkIxQzAgLyogUENNRGFlbW9uRW50cnlQb2ludC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQQ01EYWVtb25FbnRyeVBvaW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMTA1MjZFODM3RkQwMDMyQjFDMCAvKiBQ
Q01EYWVtb25FbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUENNRGFlbW9uRW50cnlQb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUNCOTMxMDYyNkU4MzlBOTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzM2OSw2ICs3Mzc0LDEyIEBACiAJCQkJQkNFRTk2NkIxMTJGQUY1
NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuaCAqLywKIAkJCQlCQzAzMkRBMjEwRjQzN0QxMDA1OEMx
NUEgLyogQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJQkMwMzJEQTMxMEY0MzdEMTAwNThDMTVBIC8q
IENvbm5lY3Rpb24uaCAqLywKKwkJCQk1QzE1NzlFMjI3MTcyQTQ5MDBFRDUyODAgLyogRGFlbW9u
Q29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNUMxNTc5RTMyNzE3MkE0OTAwRUQ1MjgwIC8qIERhZW1v
bkNvbm5lY3Rpb24uaCAqLywKKwkJCQk1QzE1NzlFOTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9u
RGVjb2Rlci5jcHAgKi8sCisJCQkJNUMxNTc5RUIyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRl
Y29kZXIuaCAqLywKKwkJCQk1QzE1NzlFODI3MTcyQThBMDBFRDUyODAgLyogRGFlbW9uRW5jb2Rl
ci5jcHAgKi8sCisJCQkJNUMxNTc5RUEyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIu
aCAqLywKIAkJCQkxQUM3NTM3RTE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5oICov
LAogCQkJCUJDMDMyRDlEMTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmNwcCAqLywKIAkJCQlC
QzAzMkQ5RTEwRjQzN0QxMDA1OEMxNUEgLyogRGVjb2Rlci5oICovLApAQCAtOTQzNywxMCArOTQ0
OCw2IEBACiAJCQkJNUM4MjZENjkyNkQ0ODJFQTAwOEFFQzkxIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50RGF0YWJhc2UuaCAqLywKIAkJCQk1Q0JFOTA5MDI2RDdGQjdDMDA1QTJFOTUgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uY3BwICovLAogCQkJCTVDQkU5MDhGMjZEN0ZC
NjIwMDVBMkU5NSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnSW5mby5oICovLAotCQkJ
CTVDQjkzMEY4MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuY3BwICovLAotCQkJCTVDQjkzMEZEMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlY29kZXIuaCAqLywKLQkJCQk1Q0I5MzBGOTI2RTgwMjE1MDAzMkIxQzAgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcCAqLywKLQkJCQk1Q0I5MzBGRjI2RTgw
MjE2MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmggKi8sCiAJCQkJ
NkJEMDU4NjQyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAgKi8sCiAJCQkJNkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlci5oICovLAogCQkJCTVDQjkzMTA2MjZFODM5QTkwMDMyQjFDMCAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwICovLApAQCAtMTExNzEs
NiArMTExNzgsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkx
QTMwRUFDNTExNUQ3REEzMDA1M0U5MzcgLyogQ29ubmVjdGlvbkNvY29hLm1tICovLAorCQkJCTVD
MTU3OUU2MjcxNzJBNTEwMEVENTI4MCAvKiBEYWVtb25Db25uZWN0aW9uQ29jb2EubW0gKi8sCiAJ
CQkJMUExRUM2OUQxODcyMDkyMTAwQjk1MUYwIC8qIEltcG9ydGFuY2VBc3NlcnRpb24uaCAqLywK
IAkJCQkxQTZEODZCRjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2UuY3BwICovLAogCQkJ
CTFBNkQ4NkMwMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5oICovLApAQCAtMTIzMTEs
NiArMTIzMTksOCBAQAogCQkJCTU3NTk3RUJEMjE4MTg0OTAwMDM3RjkyNCAvKiBDdGFwQXV0aGVu
dGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc1OTdFQjkyMTgxMUQ5QTAwMzdGOTI0IC8q
IEN0YXBIaWREcml2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MERBQUNBMjMwMzg1RkQwMEU4
RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzE1NzlFRjI3MTcy
QThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUMxNTc5
RUUyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUM1NUY5MTcxMUM1OTY3NkUwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUM3NTM4MDE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwMzZBRTkyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2Fi
bGVJbmZvRGF0YS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441110</attachid>
            <date>2021-10-13 11:06:04 -0700</date>
            <delta_ts>2021-10-13 12:18:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231680-20211013120602.patch</filename>
            <type>text/plain</type>
            <size>88549</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NDg2NWU4NjRmMDNlMDcz
ZjQ3ZDQwOTc4MTE1ODlkM2MzN2JkZTUuLjk4NDFjNmIyZmEyYWE0NTcyMzBiM2U4MmYwZDM2Nzg1
MzkwYjhlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMTAtMTMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmVwYXJlIGFk
YXR0cmlidXRpb25kIENvbm5lY3Rpb24gYW5kIElQQyBjb2RlIGZvciByZXVzZSB3aXRoIHdlYnB1
c2hkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgSSBtb3Zl
IENvbm5lY3Rpb24sIEVuY29kZXIsIGFuZCBEZWNvZGVyIG91dCBvZiBuYW1lc3BhY2UgUENNIGFu
ZCBpbnRvIG5hbWVzcGFjZSBEYWVtb24gYW5kIGtlZXAgdGhlIFBDTSBwYXJ0cyBpbiBQQ006OkNv
bm5lY3Rpb24uCisgICAgICAgIEkgcmVtb3ZlIGFuIHVubmVjZXNzYXJ5IG1lbW9yeSBjb3B5IGJ5
IHVzaW5nIGEgU3BhbiBpbnN0ZWFkIG9mIGEgVmVjdG9yIGZvciBkZWNvZGluZy4KKyAgICAgICAg
SSBtYWtlIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlIGEgdGVtcGxhdGUgdG8gYmUgdXNlZCB3aXRo
IGEgZGlmZmVyZW50IGNvbW11bmljYXRpb24gcHJvdG9jb2wgZm9yIGNvbW11bmljYXRpbmcgd2l0
aCB3ZWJwdXNoZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2Vu
ZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U6OnNlbmRXaXRoUmVwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OmdldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UENNOjpNZXNzYWdlSW5mbzo6dG9TdHJpbmdGb3JUZXN0aW5nOjplbmNvZGVS
ZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJveHk6OnNlbmRNZXNzYWdlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpSZXBseUNhbGxlcjw+OjpjYWxsUmVwbHkpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OlJlcGx5Q2FsbGVyPFN0cmluZz46OmNhbGxSZXBseSk6CisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6TWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZVdpdGhSZXBseSBjb25z
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uOjpu
ZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UENNOjpDb25uZWN0aW9uOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjppbml0aWFsaXplQ29u
bmVjdGlvbklmTmVlZGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJZk5l
Y2Vzc2FyeSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
blRvTWFjaFNlcnZpY2U6OmNoZWNrRm9yRGVidWdNZXNzYWdlQnJvYWRjYXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2
aWNlOjpzZW5kIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTo6c2VuZFdpdGhSZXBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvRGFlbW9uQ29ubmVjdGlvbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRF
bmNvZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uVG9NYWNoU2Vy
dmljZTxUcmFpdHM+OjpzZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25u
ZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+OjpzZW5kV2l0aFJlcGx5IGNvbnN0KToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29ubmVjdGlvbi5oLgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5l
Y3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5lY3Rpb246
OmdldCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNl
cnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
RGFlbW9uRGVjb2Rlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rl
ci5jcHAuCisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmguCisgICAgICAgIChXZWJLaXQ6OkRhZW1v
bjo6RGVjb2Rlcjo6RGVjb2Rlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29k
ZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwLgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RW5jb2Rlci5oLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9EYWVt
b25Db25uZWN0aW9uQ29jb2EubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uQ29jb2EubW0uCisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlv
bjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvbjo6c2Vu
ZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRv
TWFjaFNlcnZpY2U8VHJhaXRzPjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRz
Pjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U8VHJhaXRzPjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgICogU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQu
aDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENN
RGFlbW9uQ29ubmVjdGlvblNldC5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpEYWVtb25Db25u
ZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQp
OgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01E
YWVtb25FbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0aW9uRXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAg
ICogU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUp
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTAtMTMg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgV1RGOjpWYXJpYW50IGFuZCBXVEY6OmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3Bw
CmluZGV4IGE2ZTVmM2VmOGYxNjg2YjA0MTA2YjRlZTUxM2IxZGJlMDg5MmYzNzUuLjZlNDVkZGFj
NTEwYmI1YTI0NmZkNTYzMzY4MTdhZmJmNjhjY2YyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAKQEAgLTI2LDMyICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENNIHsKIAotQ29ubmVjdGlvblRvTWFjaFNlcnZp
Y2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUsIE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbikKLSAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdU
Rk1vdmUobWFjaFNlcnZpY2VOYW1lKSkKLSAgICAsIG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQ
dHIobmV0d29ya1Nlc3Npb24pKSB7IH0KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQotdm9pZCBD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3QKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQorICAgIDogRGFlbW9uOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJhaXRzPihXVEZNb3ZlKG1hY2hTZXJ2aWNlTmFt
ZSkpCisgICAgLCBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9uKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmRXaXRo
UmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotfQotCi0jZW5k
aWYKLQogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uLmgKaW5kZXggMDMwMjY3MmFjOGIyYWM4YTRiZjZhZTJhOTZhMjNlOTVkYzQx
OTgwYy4uMDlkZWM0NTU3NGE5YWJmZmVmM2UwZjNhNWZmMDU1MGY2YTFmZmRjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbi5oCkBAIC0yNSwxNSArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
LSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNs
dWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLSNlbmRpZgorI2luY2x1ZGUgIkRhZW1vbkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRl
cmZhY2UuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQyLDM3ICszNSwyNiBAQCBjbGFz
cyBOZXR3b3JrU2Vzc2lvbjsKIG5hbWVzcGFjZSBQQ00gewogCiBlbnVtIGNsYXNzIE1lc3NhZ2VU
eXBlIDogdWludDhfdDsKLXVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+Owog
Ci1jbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvbm5lY3Rpb24+IHsK
LXB1YmxpYzoKLSAgICBDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIGV4cGxpY2l0IENvbm5lY3Rpb24oUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+JiYg
Y29ubmVjdGlvbikKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkg
eyB9Ci0gICAgeHBjX2Nvbm5lY3Rpb25fdCBnZXQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KLSAgICB2b2lkIHNlbmQoeHBjX29iamVjdF90KSBjb25zdDsKLSAgICB2b2lk
IHNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHhwY19v
YmplY3RfdCk+JiYpIGNvbnN0OwotcHJvdGVjdGVkOgotICAgIG11dGFibGUgUmV0YWluUHRyPHhw
Y19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKLSNlbmRpZgorc3RydWN0IENvbm5lY3Rpb25U
cmFpdHMgeworICAgIHVzaW5nIE1lc3NhZ2VUeXBlID0gTWVzc2FnZVR5cGU7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbFZlcnNpb25LZXkgeyBQQ006OnByb3RvY29s
VmVyc2lvbktleSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDY0X3QgcHJvdG9jb2xWZXJz
aW9uVmFsdWUgeyBQQ006OnByb3RvY29sVmVyc2lvblZhbHVlIH07CisgICAgc3RhdGljIGNvbnN0
ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5IHsgUENNOjpwcm90b2Nv
bEVuY29kZWRNZXNzYWdlS2V5IH07CiB9OwogCi1jbGFzcyBDb25uZWN0aW9uVG9NYWNoU2Vydmlj
ZSA6IHB1YmxpYyBDb25uZWN0aW9uIHsKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgRGFlbW9u
OjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJhaXRzPiB7CiBwdWJsaWM6Ci0g
ICAgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2UoQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFtZSwgTmV0
d29ya1Nlc3Npb24mKTsKLQotICAgIHZvaWQgc2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3Nh
Z2UmJikgY29uc3Q7Ci0gICAgdm9pZCBzZW5kV2l0aFJlcGx5KE1lc3NhZ2VUeXBlLCBFbmNvZGVk
TWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmKSBj
b25zdDsKKyAgICBDb25uZWN0aW9uKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUsIE5ldHdvcmtT
ZXNzaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVl
ZGVkKCkgY29uc3Q7CisgICAgdm9pZCBuZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQoKSBjb25z
dCBmaW5hbDsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGNoZWNrRm9yRGVidWdNZXNz
YWdlQnJvYWRjYXN0KHhwY19vYmplY3RfdCkgY29uc3Q7CisgICAgUmV0YWluUHRyPHhwY19vYmpl
Y3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3NhZ2VUeXBlLCBEYWVtb246OkVuY29kZWRN
ZXNzYWdlJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29ubmVjdGlvblJlY2VpdmVkRXZlbnQo
eHBjX29iamVjdF90KSBjb25zdCBmaW5hbDsKICNlbmRpZgogICAgIHZvaWQgc2VuZERlYnVnTW9k
ZUlzRW5hYmxlZE1lc3NhZ2VJZk5lY2Vzc2FyeSgpIGNvbnN0OwogCi0gICAgY29uc3QgQ1N0cmlu
ZyBtX21hY2hTZXJ2aWNlTmFtZTsKICAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiBtX25ldHdv
cmtTZXNzaW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0OTNjMmNhN2Q5M2MzYWY1ZjY1NzlhMTVhNjI3ZDI1NjE1NWZkYmU5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWNvZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWNvZGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1uYW1lc3BhY2UgUENNIHsKLQot
RGVjb2Rlcjo6fkRlY29kZXIoKQotewotICAgIEFTU0VSVChtX2J1ZmZlclBvc2l0aW9uID09IG1f
YnVmZmVyLnNpemUoKSk7Ci19Ci0KLWJvb2wgRGVjb2Rlcjo6YnVmZmVySXNMYXJnZUVub3VnaFRv
Q29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QKLXsKLSAgICByZXR1cm4gYnl0ZXMgPD0g
bV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlvbjsKLX0KLQotYm9vbCBEZWNvZGVyOjpk
ZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHNpemVfdCkK
LXsKLSAgICBpZiAoIWJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRlcyhzaXplKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1lbWNweShkYXRhLCBtX2J1ZmZlci5kYXRhKCkgKyBt
X2J1ZmZlclBvc2l0aW9uLCBzaXplKTsKLSAgICBtX2J1ZmZlclBvc2l0aW9uICs9IHNpemU7Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLWNvbnN0IHVpbnQ4X3QqIERlY29kZXI6OmRlY29kZUZpeGVk
TGVuZ3RoUmVmZXJlbmNlKHNpemVfdCBzaXplLCBzaXplX3QpCi17Ci0gICAgaWYgKCFidWZmZXJJ
c0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZSkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEgPSBtX2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBv
c2l0aW9uOwotICAgIG1fYnVmZmVyUG9zaXRpb24gKz0gc2l6ZTsKLSAgICByZXR1cm4gZGF0YTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgUENNCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWNvZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkM2E2NzBiYzViMGM0YzE4
YjQzOTJjNDIwYWI0MTI2M2Q0NzdjYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
IkFyZ3VtZW50Q29kZXJzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1uYW1lc3BhY2UgUENN
IHsKLQotY2xhc3MgRGVjb2RlciB7Ci1wdWJsaWM6Ci0gICAgRGVjb2RlcihWZWN0b3I8dWludDhf
dD4mJiBidWZmZXIpCi0gICAgICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKSB7IH0KLSAg
ICB+RGVjb2RlcigpOwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBEZWNvZGVyJiBv
cGVyYXRvcj4+KHN0ZDo6b3B0aW9uYWw8VD4mIHQpCi0gICAgewotICAgICAgICB0ID0gSVBDOjpB
cmd1bWVudENvZGVyPHN0ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8
VD4+LCB2b2lkPjo6ZGVjb2RlKCp0aGlzKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0K
LQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihzaXplX3QgbnVtRWxlbWVudHMpIGNvbnN0Ci0g
ICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYXJpdGhtZXRpYzxUPjo6dmFsdWUs
ICJUeXBlIFQgbXVzdCBoYXZlIGEgZml4ZWQsIGtub3duIGVuY29kZWQgc2l6ZSEiKTsKLQotICAg
ICAgICBpZiAobnVtRWxlbWVudHMgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgp
IC8gc2l6ZW9mKFQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVy
biBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMobnVtRWxlbWVudHMgKiBzaXplb2Yo
VCkpOwotICAgIH0KLQotICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZUZpeGVkTGVu
Z3RoRGF0YSh1aW50OF90KiBkYXRhLCBzaXplX3QsIHNpemVfdCBhbGlnbm1lbnQpOwotICAgIGNv
bnN0IHVpbnQ4X3QqIGRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCwgc2l6ZV90KTsK
LQotcHJpdmF0ZToKLSAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBidWZmZXJJc0xhcmdlRW5v
dWdoVG9Db250YWluQnl0ZXMoc2l6ZV90KSBjb25zdDsKLQotICAgIFZlY3Rvcjx1aW50OF90PiBt
X2J1ZmZlcjsKLSAgICBzaXplX3QgbV9idWZmZXJQb3NpdGlvbiB7IDAgfTsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFBDTQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjk4YjE1ZTUxMGU1OTkzNzQzZmU3ZTU2
M2VmMDFkZDc4YjkyNGZmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotbmFtZXNwYWNlIFBDTSB7Ci0KLXZvaWQgRW5jb2Rlcjo6ZW5jb2RlRml4ZWRMZW5ndGhEYXRh
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzaXplX3QpCi17Ci0gICAgbV9idWZm
ZXIuYXBwZW5kKGRhdGEsIHNpemUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBQQ00KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYThhODNjNjU5MjVkMjYyYWRkMjBiYTVhOGIxOTAzNjVlNTkzMmNiMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
RW5jb2Rlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLW5hbWVzcGFjZSBQQ00gewotCi1jbGFzcyBFbmNvZGVyIHsKLXB1YmxpYzoKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIEVuY29kZXImIG9wZXJhdG9yPDwoVCYmIHQpCi0g
ICAgewotICAgICAgICBJUEM6OkFyZ3VtZW50Q29kZXI8c3RkOjpyZW1vdmVfY29uc3RfdDxzdGQ6
OnJlbW92ZV9yZWZlcmVuY2VfdDxUPj4+OjplbmNvZGUoKnRoaXMsIHN0ZDo6Zm9yd2FyZDxUPih0
KSk7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgdm9pZCBlbmNvZGUoQXJnJiYgYXJnLCBBcmdz
JiYuLi4gYXJncykKLSAgICB7Ci0gICAgICAgICp0aGlzIDw8IHN0ZDo6Zm9yd2FyZDxBcmc+KGFy
Zyk7Ci0gICAgICAgIGVuY29kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAgIH0K
LSAgICB2b2lkIGVuY29kZSgpIHsgfQotCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHRha2VCdWZmZXIo
KSB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fYnVmZmVyLCB7IH0pOyB9Ci0KLSAgICB2b2lkIGVu
Y29kZUZpeGVkTGVuZ3RoRGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBzaXplX3QgYWxpZ25t
ZW50KTsKLQotcHJpdmF0ZToKLSAgICBWZWN0b3I8dWludDhfdD4gbV9idWZmZXI7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBQQ00KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5jcHAKaW5kZXggMWY5NzQwNWE3OTg3MTM0ZGE5NWZjMTlkYmU5
MjJkNWY1ZGRlMzFjNy4uNjlkY2FkZTcxMmRlMGViYWQ2MDc2MTQ2ZGQwOGQxNjY5YjkxZGUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcApAQCAtMjYsMTEgKzI2LDEx
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmgiCiAKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgiCisjaW5j
bHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkhhbmRsZU1lc3NhZ2UuaCIKICNpbmNs
dWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50
RW5jb2Rlci5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0xNDMsNyArMTQzLDcgQEAg
RU1QVFlfUkVQTFkoc3RvcmVVbmF0dHJpYnV0ZWQpOwogCiBQQ006OkVuY29kZWRNZXNzYWdlIHRv
U3RyaW5nRm9yVGVzdGluZzo6ZW5jb2RlUmVwbHkoU3RyaW5nIHJlcGx5KQogewotICAgIFBDTTo6
RW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAgIGVuY29k
ZXIgPDwgcmVwbHk7CiAgICAgcmV0dXJuIGVuY29kZXIudGFrZUJ1ZmZlcigpOwogfQpAQCAtMTk3
LDkgKzE5Nyw5IEBAIHN0YXRpYyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXImIGRhZW1v
bk1hbmFnZXIoKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZvPgotdm9pZCBoYW5kbGVQQ01N
ZXNzYWdlKFBDTTo6RW5jb2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSkKK3ZvaWQgaGFuZGxl
UENNTWVzc2FnZShTcGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdlKQogewotICAgIFBD
TTo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICBEYWVtb246
OkRlY29kZXIgZGVjb2RlcihlbmNvZGVkTWVzc2FnZSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHR5
cGVuYW1lIEluZm86OkFyZ3NUdXBsZT4gYXJndW1lbnRzOwogICAgIGRlY29kZXIgPj4gYXJndW1l
bnRzOwpAQCAtMjA5LDEwICsyMDksMTAgQEAgdm9pZCBoYW5kbGVQQ01NZXNzYWdlKFBDTTo6RW5j
b2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSkKICAgICBJUEM6OmNhbGxNZW1iZXJGdW5jdGlv
bihXVEZNb3ZlKCphcmd1bWVudHMpLCAmZGFlbW9uTWFuYWdlcigpLCBJbmZvOjpNZW1iZXJGdW5j
dGlvbik7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRsZVBDTU1lc3NhZ2VTZXREZWJ1Z01vZGVJc0Vu
YWJsZWQoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUENNOjpFbmNvZGVkTWVzc2FnZSYm
IGVuY29kZWRNZXNzYWdlKQorc3RhdGljIHZvaWQgaGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9k
ZUlzRW5hYmxlZChjb25zdCBEYWVtb246OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNwYW48Y29u
c3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
UENNOjpEZWNvZGVyIGRlY29kZXIoV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgIERhZW1v
bjo6RGVjb2RlciBkZWNvZGVyKGVuY29kZWRNZXNzYWdlKTsKICAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGVuYWJsZWQ7CiAgICAgZGVjb2RlciA+PiBlbmFibGVkOwogICAgIGlmIChVTkxJS0VMWSgh
ZW5hYmxlZCkpCkBAIC0yMzAsOSArMjMwLDkgQEAgc3RhdGljIHZvaWQgaGFuZGxlUENNTWVzc2Fn
ZVNldERlYnVnTW9kZUlzRW5hYmxlZChjb25zdCBDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbmZvPgotdm9pZCBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5
KFBDTTo6RW5jb2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQQ006OkVuY29kZWRNZXNzYWdlJiYpPiYmIHJlcGx5U2VuZGVyKQordm9pZCBoYW5kbGVQ
Q01NZXNzYWdlV2l0aFJlcGx5KFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUENNOjpFbmNvZGVkTWVzc2FnZSYmKT4mJiByZXBseVNlbmRl
cikKIHsKLSAgICBQQ006OkRlY29kZXIgZGVjb2RlcihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7
CisgICAgRGFlbW9uOjpEZWNvZGVyIGRlY29kZXIoZW5jb2RlZE1lc3NhZ2UpOwogCiAgICAgc3Rk
OjpvcHRpb25hbDx0eXBlbmFtZSBJbmZvOjpBcmdzVHVwbGU+IGFyZ3VtZW50czsKICAgICBkZWNv
ZGVyID4+IGFyZ3VtZW50czsKQEAgLTI1MSw2MyArMjUxLDYzIEBAIHZvaWQgZG9EYWlseUFjdGl2
aXR5SW5NYW5hZ2VyKCkKICAgICBkYWVtb25NYW5hZ2VyKCkuZmlyZVBlbmRpbmdBdHRyaWJ1dGlv
blJlcXVlc3RzKCk7CiB9CiAKLXZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoY29u
c3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIFZlY3Rv
cjx1aW50OF90PiYmIGVuY29kZWRNZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjx1aW50OF90PiYmKT4mJiByZXBseVNlbmRlcikKK3ZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRU
b01hbmFnZXIoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBNZXNzYWdlVHlw
ZSBtZXNzYWdlVHlwZSwgU3Bhbjxjb25zdCB1aW50OF90PiBlbmNvZGVkTWVzc2FnZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYgcmVwbHlTZW5kZXIpCiB7CiAg
ICAgQVNTRVJUKG1lc3NhZ2VUeXBlU2VuZHNSZXBseShtZXNzYWdlVHlwZSkgPT0gISFyZXBseVNl
bmRlcik7CiAgICAgc3dpdGNoIChtZXNzYWdlVHlwZSkgewogICAgIGNhc2UgUENNOjpNZXNzYWdl
VHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVw
bHk8TWVzc2FnZUluZm86OnN0b3JlVW5hdHRyaWJ1dGVkPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdl
KSwgV1RGTW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJl
cGx5PE1lc3NhZ2VJbmZvOjpzdG9yZVVuYXR0cmlidXRlZD4oZW5jb2RlZE1lc3NhZ2UsIFdURk1v
dmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VU
eXBlOjpIYW5kbGVBdHRyaWJ1dGlvbjoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdl
SW5mbzo6aGFuZGxlQXR0cmlidXRpb24+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAg
ICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6aGFuZGxlQXR0cmlidXRpb24+KGVuY29k
ZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpD
bGVhcjoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6Y2xl
YXI+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAg
ICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmNsZWFyPihlbmNvZGVk
TWVzc2FnZSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFBDTTo6TWVzc2FnZVR5cGU6OkNsZWFyRm9yUmVnaXN0cmFibGVEb21haW46Ci0gICAgICAgIGhh
bmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmNsZWFyRm9yUmVnaXN0cmFibGVE
b21haW4+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7Cisg
ICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmNsZWFyRm9yUmVn
aXN0cmFibGVEb21haW4+KGVuY29kZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0RGVidWdNb2RlSXNF
bmFibGVkOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlU2V0RGVidWdNb2RlSXNFbmFibGVkKGNv
bm5lY3Rpb24sIFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVz
c2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZChjb25uZWN0aW9uLCBlbmNvZGVkTWVzc2FnZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6TWlncmF0ZVByaXZhdGVD
bGlja01lYXN1cmVtZW50RnJvbUxlZ2FjeVN0b3JhZ2U6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2U8TWVzc2FnZUluZm86Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lT
dG9yYWdlPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2U8TWVzc2FnZUluZm86Om1pZ3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lT
dG9yYWdlPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpN
ZXNzYWdlVHlwZTo6VG9TdHJpbmdGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdl
V2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjp0b1N0cmluZ0ZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2Rl
ZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OnRvU3RyaW5nRm9yVGVzdGluZz4oZW5jb2RlZE1lc3Nh
Z2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006
Ok1lc3NhZ2VUeXBlOjpTZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxl
UENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc+KFdURk1v
dmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5m
bzo6c2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRUb2tlblB1YmxpY0tleVVSTEZv
clRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldFRva2Vu
UHVibGljS2V5VVJMRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAg
ICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRUb2tlblB1YmxpY0tleVVSTEZvclRl
c3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1l
c3NhZ2VUeXBlOjpTZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRs
ZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZz4o
V1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3Nh
Z2VJbmZvOjpzZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRBdHRyaWJ1dGlv
blJlcG9ydFVSTHNGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJ
bmZvOjpzZXRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRN
ZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldEF0dHJp
YnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpNYXJrQWxsVW5hdHRyaWJ1dGVkQXNFeHBp
cmVkRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6bWFy
a0FsbFVuYXR0cmlidXRlZEFzRXhwaXJlZEZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3Nh
Z2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6bWFya0FsbFVuYXR0
cmlidXRlZEFzRXhwaXJlZEZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2VXaXRoUmVwbHk8TWVzc2FnZUluZm86Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSksIFdURk1v
dmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseTxNZXNz
YWdlSW5mbzo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlNldFBDTUZyYXVkUHJldmVudGlv
blZhbHVlc0ZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86
OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1l
c3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZv
clRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnN0YXJ0VGlt
ZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAg
ICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9y
VGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6
TWVzc2FnZVR5cGU6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0
aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkTWVzc2Fn
ZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRl
c3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmRl
c3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJl
cGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUlu
Zm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5
U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6QWxs
b3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgotICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlPE1lc3NhZ2VJbmZvOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBD
TVRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVz
c2FnZTxNZXNzYWdlSW5mbzo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0
aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlckludGVyZmFjZS5oCmluZGV4IDhmY2ZiNGI3NTQ1YWRhYTZlMGFhMGQ0NmIy
YzIxYzY5ZDk0OGNiZmEuLjE0NzlhZjNkYThmMWVkNTJhZWRkYTg0MTdhNzk1OTQxOTg3NDRmYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaApAQCAtMzUsMTQgKzM1LDE2IEBA
IGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK25hbWVzcGFj
ZSBEYWVtb24geworY2xhc3MgQ29ubmVjdGlvbjsKK30KKwogZW51bSBjbGFzcyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSA6IGJvb2wgeyBVbmF0dHJpYnV0ZWQsIEF0dHJp
YnV0ZWQgfTsKIAogY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOwogCiBuYW1l
c3BhY2UgUENNIHsKIAotY2xhc3MgQ29ubmVjdGlvbjsKLQogY2xhc3MgTWFuYWdlckludGVyZmFj
ZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWFuYWdlckludGVyZmFjZSgpIHsgfTsKQEAgLTEw
Niw3ICsxMDgsNyBAQCBlbnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDogdWludDhfdCB7CiBjb25zdGV4
cHIgY29uc3QgY2hhciogcHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB7ICJlbmNvZGVkIG1lc3Nh
Z2UiIH07CiB1c2luZyBFbmNvZGVkTWVzc2FnZSA9IFZlY3Rvcjx1aW50OF90PjsKIAotdm9pZCBk
ZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihjb25zdCBDb25uZWN0aW9uJiwgTWVzc2FnZVR5
cGUsIFZlY3Rvcjx1aW50OF90PiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPHVpbnQ4X3Q+JiYpPiYmKTsKK3ZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIo
Y29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiwgTWVzc2FnZVR5cGUsIFNwYW48Y29uc3QgdWludDhf
dD4gZW5jb2RlZE1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+
JiYpPiYmKTsKIHZvaWQgZG9EYWlseUFjdGl2aXR5SW5NYW5hZ2VyKCk7CiBib29sIG1lc3NhZ2VU
eXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5j
cHAKaW5kZXggYTE4Nzc4NGQ4NmZhMTM5MDIwNjM5MWFmZGQwOTdkMjBiN2MxZmZhYS4uNGJiNjQ0
ZTNjZGYwMjA5MzMxNjA3NmRiNjQ5NGYyODQ1NWI4ZTI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJQcm94eS5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oIgogCisjaW5jbHVkZSAi
RGFlbW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEVuY29kZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC0zOCwyMCArMzgsMjAgQEAgbmFtZXNwYWNlIFBDTSB7CiB0ZW1wbGF0
ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KIHZvaWQgTWFuYWdl
clByb3h5OjpzZW5kTWVzc2FnZShBcmdzJiYuLi4gYXJncykgY29uc3QKIHsKLSAgICBFbmNvZGVy
IGVuY29kZXI7CisgICAgRGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CiAgICAgZW5jb2Rlci5lbmNv
ZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICBtX2Nvbm5lY3Rpb24uc2VuZCht
ZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBBcmdzPiBzdHJ1Y3QgUmVwbHlDYWxsZXI7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBSZXBseUNh
bGxlcjw+IHsKLSAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGVjb2RlciYmIGRlY29kZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBzdGF0aWMg
dm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKICAgICB9CiB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgUmVwbHlDYWxsZXI8U3Ry
aW5nPiB7Ci0gICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERlY29kZXImJiBkZWNvZGVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBz
dGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAg
ICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gc3RyaW5nOwogICAgICAgICBkZWNvZGVyID4+IHN0
cmluZzsKQEAgLTY0LDEwICs2NCwxMCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBSZXBseUNhbGxlcjxT
dHJpbmc+IHsKIHRlbXBsYXRlPE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBB
cmdzLCB0eXBlbmFtZS4uLiBSZXBseUFyZ3M+CiB2b2lkIE1hbmFnZXJQcm94eTo6c2VuZE1lc3Nh
Z2VXaXRoUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyLCBBcmdzJiYuLi4gYXJncykgY29uc3QKIHsKLSAgICBFbmNvZGVyIGVuY29k
ZXI7CisgICAgRGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CiAgICAgZW5jb2Rlci5lbmNvZGUoc3Rk
Ojpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKICAgICBtX2Nvbm5lY3Rpb24uc2VuZFdpdGhSZXBs
eShtZXNzYWdlVHlwZSwgZW5jb2Rlci50YWtlQnVmZmVyKCksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byByZXBseUJ1ZmZlcikgbXV0YWJsZSB7
Ci0gICAgICAgIERlY29kZXIgZGVjb2RlcihXVEZNb3ZlKHJlcGx5QnVmZmVyKSk7CisgICAgICAg
IERhZW1vbjo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUocmVwbHlCdWZmZXIpKTsKICAgICAgICAg
UmVwbHlDYWxsZXI8UmVwbHlBcmdzLi4uPjo6Y2FsbFJlcGx5KFdURk1vdmUoZGVjb2RlciksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
UHJveHkuaAppbmRleCBmOTExNjE1YjUyYzllOGEyODBkMjdhMTllNmY3MzJjODdkNGMxMTM5Li5k
NGEyNzlhYjllMTIyMjhkZWUwNzA1YjhmZDgyZTJmOGU1MzlhM2M4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXJQcm94eS5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8TWVz
c2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3MsIHR5cGVuYW1lLi4uIFJlcGx5
QXJncz4KICAgICB2b2lkIHNlbmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVwbHlBcmdzLi4uKT4mJiwgQXJncyYmLi4uKSBjb25zdDsKIAotICAgIENvbm5lY3Rpb25U
b01hY2hTZXJ2aWNlIG1fY29ubmVjdGlvbjsKKyAgICBDb25uZWN0aW9uIG1fY29ubmVjdGlvbjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25u
ZWN0aW9uQ29jb2EubW0KaW5kZXggNzM1NWJmMjAzMDEwNTNhZjEzYWQ5MjBjODg3ZTlmMzA3YmJh
NWRiOC4uNjI5ZjRiY2Q4OGQzMjYwOGMwYWJjZWM5YjMyM2JhM2MwYWM0YWViNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
b2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1By
aXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5oIgogCi0jaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIK
KyNpbXBvcnQgIkRhZW1vbkVuY29kZXIuaCIKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50WFBDVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAt
MzQsMjggKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIG5hbWVzcGFjZSBQQ00gewogCi12
b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVk
KCkgY29uc3QKLXsKLSAgICBpZiAobV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0gICAg
bV9jb25uZWN0aW9uID0gYWRvcHROUyh4cGNfY29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNl
KG1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkp
OwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVjdGlvbi5nZXQo
KSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSh4cGNfb2JqZWN0X3QgZXZlbnQpIHsK
LSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVkFMSUQpCi0gICAgICAgICAgICBXVEZM
b2dBbHdheXMoIkZhaWxlZCB0byBjb25uZWN0IHRvIG1hY2ggc2VydmljZSAlcywgbGlrZWx5IGJl
Y2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hkIiwgd2Vha1RoaXMtPm1fbWFj
aFNlcnZpY2VOYW1lLmRhdGEoKSk7Ci0gICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09O
TkVDVElPTl9JTlRFUlJVUFRFRCkgewotICAgICAgICAgICAgLy8gRGFlbW9uIGNyYXNoZWQsIHdl
IHdpbGwgbmVlZCB0byBtYWtlIGEgbmV3IGNvbm5lY3Rpb24gdG8gYSBuZXcgaW5zdGFuY2Ugb2Yg
dGhlIGRhZW1vbi4KLSAgICAgICAgICAgIHdlYWtUaGlzLT5tX2Nvbm5lY3Rpb24gPSBudWxscHRy
OwotICAgICAgICB9Ci0gICAgICAgIHdlYWtUaGlzLT5jaGVja0ZvckRlYnVnTWVzc2FnZUJyb2Fk
Y2FzdChldmVudCk7Ci0gICAgfSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZhdGUobV9jb25u
ZWN0aW9uLmdldCgpKTsKLQotICAgIHNlbmREZWJ1Z01vZGVJc0VuYWJsZWRNZXNzYWdlSWZOZWNl
c3NhcnkoKTsKLX0KLQotdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9k
ZUlzRW5hYmxlZE1lc3NhZ2VJZk5lY2Vzc2FyeSgpIGNvbnN0Cit2b2lkIENvbm5lY3Rpb246Om5l
d0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fY29ubmVj
dGlvbik7CiAgICAgaWYgKCFtX25ldHdvcmtTZXNzaW9uCkBAIC02MywxMiArNDIsMTIgQEAgdm9p
ZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJ
Zk5lY2Vzc2FyeSgpIGNvbnN0CiAgICAgICAgIHx8ICFtX25ldHdvcmtTZXNzaW9uLT5wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgRW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAgIGVu
Y29kZXIuZW5jb2RlKHRydWUpOwogICAgIHNlbmQoTWVzc2FnZVR5cGU6OlNldERlYnVnTW9kZUlz
RW5hYmxlZCwgZW5jb2Rlci50YWtlQnVmZmVyKCkpOwogfQogCi12b2lkIENvbm5lY3Rpb25Ub01h
Y2hTZXJ2aWNlOjpjaGVja0ZvckRlYnVnTWVzc2FnZUJyb2FkY2FzdCh4cGNfb2JqZWN0X3QgcmVx
dWVzdCkgY29uc3QKK3ZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdGlvblJlY2VpdmVkRXZlbnQoeHBj
X29iamVjdF90IHJlcXVlc3QpIGNvbnN0CiB7CiAgICAgaWYgKHhwY19nZXRfdHlwZShyZXF1ZXN0
KSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQogICAgICAgICByZXR1cm47CkBAIC04Miw1OSArNjEs
MTQgQEAgdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6Y2hlY2tGb3JEZWJ1Z01lc3NhZ2VC
cm9hZGNhc3QoeHBjX29iamVjdF90IHJlcXVlc3QKICAgICBtX25ldHdvcmtTZXNzaW9uLT5uZXR3
b3JrUHJvY2VzcygpLmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fbmV0d29ya1Nlc3Npb24tPnNl
c3Npb25JRCgpLCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgbWVzc2Fn
ZUxldmVsLCBTdHJpbmc6OmZyb21VVEY4KGRlYnVnTWVzc2FnZSkpOwogfQogCi1zdGF0aWMgT1NP
YmplY3RQdHI8eHBjX29iamVjdF90PiBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UoTWVzc2FnZVR5cGUg
bWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkKK1JldGFpblB0cjx4cGNfb2Jq
ZWN0X3Q+IENvbm5lY3Rpb246OmRpY3Rpb25hcnlGcm9tTWVzc2FnZShNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKSBjb25zdAogewotICAgIGF1dG8gZGlj
dGlvbmFyeSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51
bGxwdHIsIDApKTsKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CiAgICAgYWRkVmVyc2lvbkFuZEVuY29kZWRN
ZXNzYWdlVG9EaWN0aW9uYXJ5KFdURk1vdmUobWVzc2FnZSksIGRpY3Rpb25hcnkuZ2V0KCkpOwog
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoZGljdGlvbmFyeS5nZXQoKSwgcHJvdG9jb2xN
ZXNzYWdlVHlwZUtleSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1lc3NhZ2VUeXBlKSk7CiAgICAg
cmV0dXJuIGRpY3Rpb25hcnk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6c2VuZCh4cGNfb2JqZWN0
X3QgbWVzc2FnZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAg
IEFTU0VSVChtX2Nvbm5lY3Rpb24uZ2V0KCkpOwotICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUobWVz
c2FnZSkgPT0gWFBDX1RZUEVfRElDVElPTkFSWSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9t
ZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZSk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlv
bjo6c2VuZFdpdGhSZXBseSh4cGNfb2JqZWN0X3QgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCh4cGNfb2JqZWN0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAotewotICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNTRVJUKG1fY29ubmVjdGlvbi5nZXQoKSk7
Ci0gICAgQVNTRVJUKHhwY19nZXRfdHlwZShtZXNzYWdlKSA9PSBYUENfVFlQRV9ESUNUSU9OQVJZ
KTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0aF9yZXBseShtX2Nvbm5lY3Rp
b24uZ2V0KCksIG1lc3NhZ2UsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG1ha2VCbG9ja1B0
cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19v
YmplY3RfdCByZXBseSkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlcGx5KTsKLSAgICB9KS5nZXQoKSk7Ci19
Ci0KLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmQoTWVzc2FnZVR5cGUgbWVzc2Fn
ZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkgY29uc3QKLXsKLSAgICBpbml0aWFsaXpl
Q29ubmVjdGlvbklmTmVlZGVkKCk7Ci0gICAgQ29ubmVjdGlvbjo6c2VuZChkaWN0aW9uYXJ5RnJv
bU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpKTsKLX0KLQotdm9p
ZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAotewotICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRl
ZCgpOwotCi0gICAgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShkaWN0aW9uYXJ5RnJvbU1lc3Nh
Z2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19vYmplY3RfdCByZXBseSkgbXV0
YWJsZSB7Ci0gICAgICAgIGlmICh4cGNfZ2V0X3R5cGUocmVwbHkpICE9IFhQQ19UWVBFX0RJQ1RJ
T05BUlkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHhw
Y19kaWN0aW9uYXJ5X2dldF91aW50NjQocmVwbHksIHByb3RvY29sVmVyc2lvbktleSkgIT0gcHJv
dG9jb2xWZXJzaW9uVmFsdWUpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgc2l6ZV90IGRhdGFTaXplIHsgMCB9OwotICAgICAgICBjb25zdCB2b2lkKiBkYXRhID0g
eHBjX2RpY3Rpb25hcnlfZ2V0X2RhdGEocmVwbHksIHByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXks
ICZkYXRhU2l6ZSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgc3RhdGljX2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGRhdGEpLCBkYXRhU2l6ZSB9KTsKLSAgICB9KTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZjI3ODAzNjJkZDIwMzc0MzRjYTFj
YjM5MGRkZTZlZjc5MTU5MzQuLmUxZTZiMTYzYzAyMDAxMTZmZmY1NzZiMTU5ZTFiNzhjYmNhY2Jk
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAK
QEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcmd1bWVu
dENvZGVycy5oIgogCisjaW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1v
bkVuY29kZXIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgpAQCAtNDQsNyArNDQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCiB0ZW1wbGF0ZQogdm9p
ZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25z
dCBXYWxsVGltZSYpOwogdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVu
Y29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBX
YWxsVGltZSYpOwordm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlPFdlYktpdDo6
RGFlbW9uOjpFbmNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IFdhbGxUaW1l
Jik7CiAKIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2FsbFRpbWUmIHRpbWUpCiB7CkBAIC02OCw3ICs2OCw3
IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENv
ZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kCiB0ZW1wbGF0ZQogc3RkOjpvcHRpb25hbDxXYWxs
VGltZT4gQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7
CiB0ZW1wbGF0ZQotc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gQXJndW1lbnRDb2RlcjxXYWxsVGlt
ZT46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsK
K3N0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8
V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHZv
aWQgQXJndW1lbnRDb2RlcjxBdG9tU3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEF0b21TdHJpbmcmIGF0b21TdHJpbmcpCiB7CkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxDU3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENTdHJp
bmcmIHN0cmluZykKICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdHJpbmcuZGF0
YUFzVUludDhQdHIoKSwgbGVuZ3RoLCAxKTsKIH0KIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2Rl
cjxDU3RyaW5nPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7Ci10
ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6
RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7Cit0ZW1wbGF0
ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxXZWJLaXQ6OkRhZW1vbjo6RW5j
b2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPENTdHJpbmc+IEFyZ3VtZW50Q29k
ZXI8Q1N0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTI4LDcgKzEyOCw3IEBA
IHN0ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiB0ZW1wbGF0ZQogc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBBcmd1bWVu
dENvZGVyPENTdHJpbmc+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwogdGVtcGxhdGUKLXN0
ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPFdlYktp
dDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOworc3RkOjpvcHRpb25hbDxD
U3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRl
Y29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFN0cmluZyYp
OwogdGVtcGxhdGUKIHZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8U3RyZWFtQ29u
bmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7
CiB0ZW1wbGF0ZQotdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZTxXZWJLaXQ6OlBD
TTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBTdHJpbmcmKTsKK3ZvaWQg
QXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVuY29kZXI+KFdl
YktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGUsIHR5cGVuYW1lIERlY29kZXI+CiBzdGF0aWMgaW5saW5lIHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVTdHJpbmdUZXh0KERlY29kZXImIGRlY29kZXIsIHVpbnQz
Ml90IGxlbmd0aCkKQEAgLTE5Niw3ICsxOTYsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpv
cHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlKERlY29kZXImCiB0
ZW1wbGF0ZQogc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVj
b2RlPERlY29kZXI+KERlY29kZXImKTsKIHRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPFN0cmluZz4g
QXJndW1lbnRDb2RlcjxTdHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktp
dDo6UENNOjpEZWNvZGVyJik7CitzdGQ6Om9wdGlvbmFsPFN0cmluZz4gQXJndW1lbnRDb2RlcjxT
dHJpbmc+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpE
ZWNvZGVyJik7CiAKIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIEFyZ3VtZW50Q29kZXI8U3RyaW5n
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NDc4NTRjYjIxYjNkYWJmODMxNWFkNDZmMmI5NGNmNjQxMDY3ZWMxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5jcHAKQEAgLTAs
MCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
YWVtb25Db25uZWN0aW9uLmgiCisKKyNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIERhZW1vbiB7CisK
KyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK3RlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4KK3ZvaWQg
Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRzPjo6c2VuZCh0eXBlbmFtZSBUcmFpdHM6Ok1l
c3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdAoreworfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUcmFpdHM+Cit2b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmRX
aXRoUmVwbHkodHlwZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgY29uc3QKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworfQorCit0ZW1wbGF0
ZSBjbGFzcyBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxQQ006OkNvbm5lY3Rpb25UcmFpdHM+Owor
CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc1YjEwNGY4MzMyZDU3N2UwZDc3MTFlMDYwOGY5NTU5YzE4OWJlOTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25Db25uZWN0aW9uLmgK
QEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitu
YW1lc3BhY2UgRGFlbW9uIHsKKwordXNpbmcgRW5jb2RlZE1lc3NhZ2UgPSBWZWN0b3I8dWludDhf
dD47CisKK2NsYXNzIENvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q29ubmVjdGlv
bj4geworcHVibGljOgorICAgIENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgZXhwbGljaXQgQ29ubmVjdGlvbihSZXRhaW5QdHI8eHBjX2Nvbm5lY3Rpb25f
dD4mJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKSB7IH0KKyAgICB4cGNfY29ubmVjdGlvbl90IGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQorICAgIHZvaWQgc2VuZCh4cGNfb2JqZWN0X3QpIGNvbnN0OworICAg
IHZvaWQgc2VuZFdpdGhSZXBseSh4cGNfb2JqZWN0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
eHBjX29iamVjdF90KT4mJikgY29uc3Q7Citwcm90ZWN0ZWQ6CisgICAgbXV0YWJsZSBSZXRhaW5Q
dHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9uOworI2VuZGlmCit9OworCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUcmFpdHM+CitjbGFzcyBDb25uZWN0aW9uVG9NYWNoU2VydmljZSA6IHB1Ymxp
YyBDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBDb25uZWN0aW9uVG9NYWNoU2VydmljZShDU3Ry
aW5nJiYgbWFjaFNlcnZpY2VOYW1lKQorICAgICAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdURk1v
dmUobWFjaFNlcnZpY2VOYW1lKSkgeyB9CisgICAgdmlydHVhbCB+Q29ubmVjdGlvblRvTWFjaFNl
cnZpY2UoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHNlbmQodHlwZW5hbWUgVHJhaXRzOjpNZXNz
YWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJikgY29uc3Q7CisgICAgdm9pZCBzZW5kV2l0aFJlcGx5
KHR5cGVuYW1lIFRyYWl0czo6TWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYpIGNvbnN0OworCisgICAgdmlydHVh
bCB2b2lkIG5ld0Nvbm5lY3Rpb25XYXNJbml0aWFsaXplZCgpIGNvbnN0ID0gMDsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIFJldGFpblB0cjx4cGNfb2JqZWN0X3Q+IGRpY3Rpb25h
cnlGcm9tTWVzc2FnZSh0eXBlbmFtZSBUcmFpdHM6Ok1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2Fn
ZSYmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50
KHhwY19vYmplY3RfdCkgY29uc3QgPSAwOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9pZCBp
bml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3Q7CisKKyAgICBjb25zdCBDU3RyaW5n
IG1fbWFjaFNlcnZpY2VOYW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
RGFlbW9uRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25EZWNv
ZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOGMyMGQyYWJlZTg4NDMxNmM1ZjkwNmUzMmMwOTdjYzkzN2Q4
YzQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9u
RGVjb2Rlci5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CituYW1lc3BhY2UgRGFlbW9uIHsKKworRGVjb2Rlcjo6fkRlY29kZXIoKQoreworICAgIEFTU0VS
VChtX2J1ZmZlclBvc2l0aW9uID09IG1fYnVmZmVyLnNpemUoKSk7Cit9CisKK2Jvb2wgRGVjb2Rl
cjo6YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QK
K3sKKyAgICByZXR1cm4gYnl0ZXMgPD0gbV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlv
bjsKK30KKworYm9vbCBEZWNvZGVyOjpkZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCogZGF0
YSwgc2l6ZV90IHNpemUsIHNpemVfdCkKK3sKKyAgICBpZiAoIWJ1ZmZlcklzTGFyZ2VFbm91Z2hU
b0NvbnRhaW5CeXRlcyhzaXplKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1lbWNweShk
YXRhLCBtX2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uLCBzaXplKTsKKyAgICBtX2J1
ZmZlclBvc2l0aW9uICs9IHNpemU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IHVpbnQ4
X3QqIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCBzaXplLCBzaXpl
X3QpCit7CisgICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEgPSBtX2J1
ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uOworICAgIG1fYnVmZmVyUG9zaXRpb24gKz0g
c2l6ZTsKKyAgICByZXR1cm4gZGF0YTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvRGFlbW9uRGVjb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRGVj
b2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZkMDZjNDdiOGE1OTEyNTUxODBlNDFmZGI3YWFjYTIwZjllZjI0
N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25E
ZWNvZGVyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVz
cGFjZSBEYWVtb24geworCitjbGFzcyBEZWNvZGVyIHsKK3B1YmxpYzoKKyAgICBEZWNvZGVyKFNw
YW48Y29uc3QgdWludDhfdD4gYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyKGJ1ZmZlcikgeyB9
CisgICAgfkRlY29kZXIoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgRGVjb2Rl
ciYgb3BlcmF0b3I+PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQorICAgIHsKKyAgICAgICAgdCA9IElQ
Qzo6QXJndW1lbnRDb2RlcjxzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5j
ZV90PFQ+Piwgdm9pZD46OmRlY29kZSgqdGhpcyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBi
b29sIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4oc2l6ZV90IG51bUVsZW1lbnRzKSBjb25z
dAorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2FyaXRobWV0aWM8VD46OnZh
bHVlLCAiVHlwZSBUIG11c3QgaGF2ZSBhIGZpeGVkLCBrbm93biBlbmNvZGVkIHNpemUhIik7CisK
KyAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSAvIHNpemVvZihUKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBy
ZXR1cm4gYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKG51bUVsZW1lbnRzICogc2l6
ZW9mKFQpKTsKKyAgICB9CisKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVGaXhl
ZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90LCBzaXplX3QgYWxpZ25tZW50KTsKKyAg
ICBjb25zdCB1aW50OF90KiBkZWNvZGVGaXhlZExlbmd0aFJlZmVyZW5jZShzaXplX3QsIHNpemVf
dCk7CisKK3ByaXZhdGU6CisgICAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgYnVmZmVySXNMYXJn
ZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCkgY29uc3Q7CisKKyAgICBTcGFuPGNvbnN0IHVp
bnQ4X3Q+IG1fYnVmZmVyOworICAgIHNpemVfdCBtX2J1ZmZlclBvc2l0aW9uIHsgMCB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTE4
NjI1ODFhMGY3NDNlZjZhNjliMDU5ZWIxZDY1NDZjZWIzNmE1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5jcHAKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYWVtb25F
bmNvZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKwor
dm9pZCBFbmNvZGVyOjplbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCogZGF0YSwg
c2l6ZV90IHNpemUsIHNpemVfdCkKK3sKKyAgICBtX2J1ZmZlci5hcHBlbmQoZGF0YSwgc2l6ZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIERhZW1vbgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWI0
N2QxNjY3NGVhMzFlNDE5NWZhYzkzOTcyNjU5NjExOTY0ODI4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJz
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKworY2xhc3Mg
RW5jb2RlciB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBFbmNvZGVy
JiBvcGVyYXRvcjw8KFQmJiB0KQorICAgIHsKKyAgICAgICAgSVBDOjpBcmd1bWVudENvZGVyPHN0
ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4+Pjo6ZW5jb2RlKCp0
aGlzLCBzdGQ6OmZvcndhcmQ8VD4odCkpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIHZvaWQg
ZW5jb2RlKEFyZyYmIGFyZywgQXJncyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICAqdGhpcyA8
PCBzdGQ6OmZvcndhcmQ8QXJnPihhcmcpOworICAgICAgICBlbmNvZGUoc3RkOjpmb3J3YXJkPEFy
Z3M+KGFyZ3MpLi4uKTsKKyAgICB9CisgICAgdm9pZCBlbmNvZGUoKSB7IH0KKworICAgIFZlY3Rv
cjx1aW50OF90PiB0YWtlQnVmZmVyKCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2J1ZmZlciwg
eyB9KTsgfQorCisgICAgdm9pZCBlbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCos
IHNpemVfdCwgc2l6ZV90IGFsaWdubWVudCk7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPHVpbnQ4
X3Q+IG1fYnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2Ev
RGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29j
b2EvRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1YmFiMzJlMjhjYTYxYzZh
M2Q5NDYwYjBmNmM4YjFmNDFjOTZhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9jb2NvYS9EYWVtb25Db25uZWN0aW9uQ29jb2EubW0KQEAgLTAsMCArMSwx
MTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRhZW1vbkNv
bm5lY3Rpb24uaCIKKworI2ltcG9ydCAiRGFlbW9uRW5jb2Rlci5oIgorI2ltcG9ydCAiUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4K
KyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3Bh
Y2UgRGFlbW9uIHsKKwordm9pZCBDb25uZWN0aW9uOjpzZW5kKHhwY19vYmplY3RfdCBtZXNzYWdl
KSBjb25zdAoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgQVNTRVJUKG1f
Y29ubmVjdGlvbi5nZXQoKSk7CisgICAgQVNTRVJUKHhwY19nZXRfdHlwZShtZXNzYWdlKSA9PSBY
UENfVFlQRV9ESUNUSU9OQVJZKTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UobV9j
b25uZWN0aW9uLmdldCgpLCBtZXNzYWdlKTsKK30KKwordm9pZCBDb25uZWN0aW9uOjpzZW5kV2l0
aFJlcGx5KHhwY19vYmplY3RfdCBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHhwY19v
YmplY3RfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKKyAgICBBU1NFUlQobV9jb25uZWN0aW9uLmdldCgpKTsKKyAgICBBU1NF
UlQoeHBjX2dldF90eXBlKG1lc3NhZ2UpID09IFhQQ19UWVBFX0RJQ1RJT05BUlkpOworICAgIHhw
Y19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV93aXRoX3JlcGx5KG1fY29ubmVjdGlvbi5nZXQoKSwg
bWVzc2FnZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgbWFrZUJsb2NrUHRyKFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoeHBjX29iamVjdF90IHJl
cGx5KSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIocmVwbHkpOworICAgIH0pLmdldCgpKTsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVHJhaXRzPgordm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+
Ojppbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV9jb25u
ZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgbV9jb25uZWN0aW9uID0gYWRvcHROUyh4cGNf
Y29ubmVjdGlvbl9jcmVhdGVfbWFjaF9zZXJ2aWNlKG1fbWFjaFNlcnZpY2VOYW1lLmRhdGEoKSwg
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgMCkpOworICAgIHhwY19jb25uZWN0aW9uX3NldF9l
dmVudF9oYW5kbGVyKG1fY29ubmVjdGlvbi5nZXQoKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH1dKHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJ
T05fSU5WQUxJRCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGNvbm5lY3Qg
dG8gbWFjaCBzZXJ2aWNlICVzLCBsaWtlbHkgYmVjYXVzZSBpdCBpcyBub3QgcmVnaXN0ZXJlZCB3
aXRoIGxhdW5jaGQiLCB3ZWFrVGhpcy0+bV9tYWNoU2VydmljZU5hbWUuZGF0YSgpKTsKKyAgICAg
ICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7CisgICAg
ICAgICAgICAvLyBEYWVtb24gY3Jhc2hlZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2UgYSBuZXcgY29u
bmVjdGlvbiB0byBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZGFlbW9uLgorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgd2Vha1Ro
aXMtPmNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50KGV2ZW50KTsKKyAgICB9KTsKKyAgICB4cGNfY29u
bmVjdGlvbl9hY3RpdmF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIAorICAgIG5ld0Nvbm5l
Y3Rpb25XYXNJbml0aWFsaXplZCgpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHM+Cit2
b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmQodHlwZW5hbWUgVHJhaXRz
OjpNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlKSBjb25z
dAoreworICAgIGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKKyAgICBDb25uZWN0aW9u
OjpzZW5kKGRpY3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdlVHlwZSwgV1RGTW92ZShtZXNzYWdl
KSkuZ2V0KCkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHM+Cit2b2lkIENvbm5lY3Rp
b25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmRXaXRoUmVwbHkodHlwZW5hbWUgVHJhaXRzOjpN
ZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiBtZXNzYWdlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBj
b25zdAoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgaW5pdGlhbGl6ZUNv
bm5lY3Rpb25JZk5lZWRlZCgpOworCisgICAgQ29ubmVjdGlvbjo6c2VuZFdpdGhSZXBseShkaWN0
aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdURk1vdmUobWVzc2FnZSkpLmdldCgpLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhwY19vYmpl
Y3RfdCByZXBseSkgbXV0YWJsZSB7CisgICAgICAgIGlmICh4cGNfZ2V0X3R5cGUocmVwbHkpICE9
IFhQQ19UWVBFX0RJQ1RJT05BUlkpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKHhwY19kaWN0aW9uYXJ5X2dldF91aW50NjQocmVwbHksIFRyYWl0czo6cHJv
dG9jb2xWZXJzaW9uS2V5KSAhPSBUcmFpdHM6OnByb3RvY29sVmVyc2lvblZhbHVlKSB7CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcih7IH0pOworICAgICAgICB9CisgICAgICAgIHNpemVfdCBkYXRhU2l6ZSB7IDAg
fTsKKyAgICAgICAgY29uc3Qgdm9pZCogZGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKHJl
cGx5LCBUcmFpdHM6OnByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXksICZkYXRhU2l6ZSk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEp
LCBkYXRhU2l6ZSB9KTsKKyAgICB9KTsKK30KKwordGVtcGxhdGUgY2xhc3MgQ29ubmVjdGlvblRv
TWFjaFNlcnZpY2U8UENNOjpDb25uZWN0aW9uVHJhaXRzPjsKKworfSAvLyBuYW1lc3BhY2UgRGFl
bW9uCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVjdGlv
blNldC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9E
YWVtb24vUENNRGFlbW9uQ29ubmVjdGlvblNldC5oCmluZGV4IDhlMTM0MjcwOGNjYWJmNWJkOTlk
OTQxNDUyNWZkMDg0MjdmOWU5ZWMuLjlhMmU4OGQ3M2JmMzE3MGRlZTUyNDVmMTUxMWQzMjJhM2Mw
MTRlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25Db25u
ZWN0aW9uU2V0LmgKQEAgLTM0LDkgKzM0LDEwIEBAIGVudW0gY2xhc3MgTWVzc2FnZUxldmVsIDog
dWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1uYW1lc3BhY2UgUENNIHsKLQorbmFt
ZXNwYWNlIERhZW1vbiB7CiBjbGFzcyBDb25uZWN0aW9uOworfQorbmFtZXNwYWNlIFBDTSB7CiAK
IGNsYXNzIERhZW1vbkNvbm5lY3Rpb25TZXQgewogcHVibGljOgpAQCAtNDUsNyArNDYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGQoeHBjX2Nvbm5lY3Rpb25fdCk7CiAgICAgdm9pZCByZW1vdmUo
eHBjX2Nvbm5lY3Rpb25fdCk7CiAKLSAgICB2b2lkIHNldENvbm5lY3RlZE5ldHdvcmtQcm9jZXNz
SGFzRGVidWdNb2RlRW5hYmxlZChjb25zdCBDb25uZWN0aW9uJiwgYm9vbCk7CisgICAgdm9pZCBz
ZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQoY29uc3QgRGFlbW9u
OjpDb25uZWN0aW9uJiwgYm9vbCk7CiAgICAgYm9vbCBkZWJ1Z01vZGVFbmFibGVkKCkgY29uc3Q7
CiAgICAgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0Lm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENN
RGFlbW9uQ29ubmVjdGlvblNldC5tbQppbmRleCA1NDVlMGQ5NmE3MjIwYjNkM2UzMDliMWVlM2Zk
MjEyZDcyZTFmM2M5Li5lZjgwMWZhYTM5NzM5MGVlNTRjY2U4MTllOGFlOTQ5NmM3NGZlYzZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L0RhZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25T
ZXQubW0KQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBEYWVtb25Db25uZWN0aW9uU2V0OjpyZW1vdmUo
eHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uKQogICAgIH0KIH0KIAotdm9pZCBEYWVtb25Db25u
ZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQo
Y29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgYm9vbCBlbmFibGVkKQordm9pZCBEYWVtb25D
b25uZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJs
ZWQoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBib29sIGVuYWJsZWQpCiB7
CiAgICAgYXV0byBpdGVyYXRvciA9IG1fY29ubmVjdGlvbnMuZmluZChjb25uZWN0aW9uLmdldCgp
KTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9jb25uZWN0aW9ucy5lbmQoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24v
UENNRGFlbW9uRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KaW5kZXggZWQyMzAw
NTMzMWI5NThkNWU0NjEwNjQ5ODlmNWFkODU5MGIwZTNkYS4uMWRhNjhlYzUzNjkzYTBhNjlhNTc5
NmVjZDVkNmE3YjEzODg2Zjc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9Q
Q01EYWVtb25FbnRyeVBvaW50Lm1tCkBAIC0yNiw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIlBDTURhZW1vbkVudHJ5UG9pbnQuaCIKIAorI2ltcG9ydCAiRGFlbW9uRGVj
b2Rlci5oIgogI2ltcG9ydCAiUENNRGFlbW9uQ29ubmVjdGlvblNldC5oIgogI2ltcG9ydCAiUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCi0jaW1wb3J0ICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlY29kZXIuaCIKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5oIgogI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRYUENVdGls
aXRpZXMuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgpAQCAtNjksOCArNjks
OCBAQCBzdGF0aWMgdm9pZCBjb25uZWN0aW9uRXZlbnRIYW5kbGVyKHhwY19vYmplY3RfdCByZXF1
ZXN0KQogICAgIGF1dG8gbWVzc2FnZVR5cGUgeyBzdGF0aWNfY2FzdDxQQ006Ok1lc3NhZ2VUeXBl
Pih4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHJlcXVlc3QsIFBDTTo6cHJvdG9jb2xNZXNzYWdl
VHlwZUtleSkpIH07CiAgICAgc2l6ZV90IGRhdGFTaXplIHsgMCB9OwogICAgIGNvbnN0IHZvaWQq
IGRhdGEgPSB4cGNfZGljdGlvbmFyeV9nZXRfZGF0YShyZXF1ZXN0LCBQQ006OnByb3RvY29sRW5j
b2RlZE1lc3NhZ2VLZXksICZkYXRhU2l6ZSk7Ci0gICAgUENNOjpFbmNvZGVkTWVzc2FnZSBlbmNv
ZGVkTWVzc2FnZSB7IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgZGF0YVNpemUg
fTsKLSAgICBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihQQ006OkNvbm5lY3Rpb24oeHBj
X2RpY3Rpb25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKHJlcXVlc3QpKSwgbWVzc2FnZVR5cGUs
IFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCByZXBseVNlbmRlcihtZXNzYWdlVHlwZSwgcmVxdWVz
dCkpOworICAgIFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2UgeyBzdGF0aWNfY2Fz
dDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGRhdGFTaXplIH07CisgICAgZGVjb2RlTWVzc2FnZUFu
ZFNlbmRUb01hbmFnZXIoRGFlbW9uOjpDb25uZWN0aW9uKHhwY19kaWN0aW9uYXJ5X2dldF9yZW1v
dGVfY29ubmVjdGlvbihyZXF1ZXN0KSksIG1lc3NhZ2VUeXBlLCBlbmNvZGVkTWVzc2FnZSwgcmVw
bHlTZW5kZXIobWVzc2FnZVR5cGUsIHJlcXVlc3QpKTsKIH0KIAogc3RhdGljIHZvaWQgc3RhcnRM
aXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAppbmRleCBl
MzI4N2NmYTZhY2E1Mzk5OTk2MTIyNGNmOThmMjdmOGY2ZDE3ZjIyLi4yNjc3NmRmNWZkMzZkNjE1
MTg0NDZmMDliYWNiMTBkNmE3MDdlYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9B
cmd1bWVudENvZGVyc0NGLmNwcApAQCAtMjksMTEgKzI5LDExIEBACiAjaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnNDRi5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJE
YWVtb25EZWNvZGVyLmgiCisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5o
IgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5l
Y3Rpb25FbmNvZGVyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgog
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CkBAIC00MTksNyArNDE5LDcgQEAgc3RkOjpvcHRp
b25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRh
UmVmPj46OmRlY29kZSgKIH0KIAogdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZE
YXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj46OmRlY29kZTxEZWNv
ZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFS
ZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkRhdGFSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6
UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRp
b25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRh
UmVmPj46OmRlY29kZTxXZWJLaXQ6OkRhZW1vbjo6RGVjb2Rlcj4oV2ViS2l0OjpEYWVtb246OkRl
Y29kZXImKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2Rl
cjxDRkRhdGVSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZEYXRlUmVmIGRhdGUpCkBA
IC04NDAsNyArODQwLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIFNlY1RydXN0UmVmIHRydXN0KQogfQogCiB0ZW1wbGF0ZSB2b2lk
IEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIFNl
Y1RydXN0UmVmKTsKLXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj46OmVu
Y29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBTZWNUcnVz
dFJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+OjplbmNvZGU8
V2ViS2l0OjpEYWVtb246OkVuY29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgU2VjVHJ1
c3RSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6ZW5jb2Rl
PFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIFNlY1Ry
dXN0UmVmKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KQEAgLTg2Nyw3ICs4NjcsNyBA
QCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPFNlY1RydXN0UmVmPj46OmRlYwogfQogCiB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJl
dGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVm
Pj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJl
dGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVm
Pj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsK
K3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRD
b2RlcjxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNv
ZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ3VybC5jcHAKaW5kZXggZDU0YmFmNGM1ZjkxY2MxYzAyNTMzOTQ3MGI3OTEyMjEy
NmU3ZWQ1Ni4uNmZjNTQ0MzQ4MjUzZjEwODUyYWFkYjU3ZWUyYmJlNGExMGE5YmY3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVy
c0N1cmwuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKKyNpbmNsdWRlICJEYWVtb25EZWNvZGVyLmgi
CisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
LSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRp
ZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3VybFByb3h5U2V0dGluZ3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KQEAgLTYyLDcgKzYyLDcgQEAg
dm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUkKICAgICAgICAgZW5jb2RlciA8PCBjZXJ0aWZpY2F0ZTsK
IH0KIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+
OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYpOwotdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
bz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVu
Y29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPENl
cnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKQEAgLTkwLDcgKzkwLDcgQEAgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0
ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGQK
ICAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvIHsgKnZlcmlmaWNhdGlvbkVycm9yLCBXVEZNb3Zl
KGNlcnRpZmljYXRlQ2hhaW4pIH07CiB9CiB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+
OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwotdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYp
OwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9u
OjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogCiB2b2lkIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwCmluZGV4IDlmNDQyMzk4ZGZlNTlk
ZjA2YjRlZTZiMDQyZDE3ZDY5ZGI4ZjljNTQuLjkwMWMwMzEyNGI4MjNiNTQ0YzYxZWI4MDZlNjA0
MDRkNzVhY2JkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1l
bnRDb2RlcnNHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50
Q29kZXJzR0xpYi5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJBcmd1bWVudENvZGVyc0dMaWIuaCIKIAorI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIu
aCIKKyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgPGdpby9naW8uaD4K
ICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdU
bHNDZXJ0aWZpY2F0ZT4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgR1JlZlB0cjxHCiAgICAg
fQogfQogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRl
Pj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsK
LXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+Ojpl
bmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgR1JlZlB0
cjxHVGxzQ2VydGlmaWNhdGU+KTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRy
PEdUbHNDZXJ0aWZpY2F0ZT4+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246OkVuY29kZXI+KFdlYktp
dDo6RGFlbW9uOjpFbmNvZGVyJiwgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNh
dGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQpAQCAtMTY0LDYgKzE2NCw2IEBAIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxH
VGxzQ2VydGlmaWNhdGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46
CiAgICAgcmV0dXJuIGNlcnRpZmljYXRlOwogfQogdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxHUmVm
UHRyPEdUbHNDZXJ0aWZpY2F0ZT4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNh
dGU+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8
R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRp
ZmljYXRlPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29k
ZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBB
cmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmRlY29kZTxXZWJLaXQ6OkRh
ZW1vbjo6RGVjb2Rlcj4oV2ViS2l0OjpEYWVtb246OkRlY29kZXImKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbQppbmRleCA2YTQzNDA2NzE0NjNkOTQ3MDcxOTIzMTBiMWY3YmEwYmQwM2E3
NmY2Li5hNGNiOGM5ZDY2NDAzZjMwNGI1ZTA2ZjcyOWNjZTY5NGY3NDM2OTNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0K
QEAgLTI5LDkgKzI5LDkgQEAKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2ltcG9y
dCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgorI2ltcG9ydCAiRGFlbW9uRGVjb2Rlci5oIgorI2lt
cG9ydCAiRGFlbW9uRW5jb2Rlci5oIgogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgotI2ltcG9y
dCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0jaW1wb3J0ICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZv
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgV2ViCiB9CiAKIHRlbXBsYXRlPD4KLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoV2ViS2l0OjpQQ006OkVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQordm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZShXZWJLaXQ6OkRh
ZW1vbjo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgQVNTRVJUKGNlcnRpZmljYXRlSW5mby50eXBlKCkgPT0g
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvOjpUeXBlOjpUcnVzdCk7CiAgICAgZW5jb2RlciA8PCBj
ZXJ0aWZpY2F0ZUluZm8udHJ1c3QoKTsKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8+OgogfQogCiB0ZW1wbGF0ZTw+Ci1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNv
ZGUoV2ViS2l0OjpQQ006OkRlY29kZXImIGRlY29kZXIpCitzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+
OjpkZWNvZGUoV2ViS2l0OjpEYWVtb246OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgc3RkOjpv
cHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiB0cnVzdDsKICAgICBkZWNvZGVyID4+IHRy
dXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzU291cC5jcHAKaW5kZXggMDQzYjMwODg3ZjAwODFkZjdmMTNhNWZiNzlmMzBhNDhj
OGFmMWY4OS4uMjk3M2EyYmFiNmNhOGIwMjMzMjVjYjAwMWUyMDczYWRmMWYwNDA2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVy
c1NvdXAuY3BwCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0dMaWIuaCIKKyNpbmNsdWRlICJEYWVt
b25EZWNvZGVyLmgiCisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIK
LSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3JlZGVudGlhbC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgpAQCAtNjcsNyArNjcs
NyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRlSQogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGNlcnRpZmljYXRlSW5mby50bHNFcnJvcnMoKSk7CiB9CiB0ZW1wbGF0ZSB2b2lk
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXIm
LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKLXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxD
ZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENN
OjpFbmNvZGVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3Vt
ZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNvZGVy
PihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CkBAIC05MSw3ICs5MSw3IEBAIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVu
dENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkCiAgICAgcmV0dXJuIGNl
cnRpZmljYXRlSW5mbzsKIH0KIHRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZv
PiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVy
Jik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2Rl
cjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6
UENNOjpEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4g
QXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRl
Y29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxS
ZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBhNDUwYWQ1
MzNhZDY5YzFlODFmZDU3YTY1ZTZjMzc2ODdjY2Q2OGM3Li41NTMxOWNiYjU3YWU0YWJhZDNlMzJk
ZmJmZGI1ZmYyYThjNzQxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEwNiw4ICsxMDYsNiBAQCBOZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcAog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREYWVtb25DbGllbnQuY3BwCi1OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwCi1OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3Bw
CiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJQcm94eS5jcHAKIAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBAbm8tdW5pZnkKQEAgLTE2Miw2ICsxNjAsOSBAQCBQ
bGF0Zm9ybS9TaGFyZWRNZW1vcnkuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcCBAbm8tdW5p
ZnkKIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKK1BsYXRmb3JtL0lQQy9E
YWVtb25Db25uZWN0aW9uLmNwcAorUGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuY3BwCitQbGF0
Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5jcHAKIFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcCBAbm8t
dW5pZnkKIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9K
U0lQQ0JpbmRpbmcuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGM1ZDYz
NjFkYmMxOGExMDYzZjNhZmU4ZGFiMzM2YTUwYTA2MTM5NjAuLjA1Nzg4M2FiMDBjZmQ3MDBiMmU0
MTM2YTJjNzNlZjBkOTQyMGJmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTk2LDYgKzk2
LDcgQEAgUGxhdGZvcm0vaW9zL0FjY2Vzc2liaWxpdHlJT1MubW0KIFBsYXRmb3JtL2lvcy9QYXlt
ZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIubW0KIAogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5l
Y3Rpb25Db2NvYS5tbQorUGxhdGZvcm0vSVBDL2NvY29hL0RhZW1vbkNvbm5lY3Rpb25Db2NvYS5t
bQogUGxhdGZvcm0vSVBDL2NvY29hL01hY2hNZXNzYWdlLmNwcAogCiBQbGF0Zm9ybS9JUEMvZGFy
d2luL0lQQ1NlbWFwaG9yZURhcndpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY0NzFkOTMxOGY0NTliMGI0MWNkZDFlMjUwYjc3
ZGE3ZTEwOTE0MDEuLmUwNTcyMzg3NTRjYWMzZjEyMzJiZWYxOWNiYTIyZTA0ZTk0ODI3MDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTI1Niw2ICsxMjU2LDggQEAKIAkJNUMxNDI3MDcxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2Fk
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUMxNDI2RjkxQzIzRjg0MzAwRDQxMTgzIC8qIERvd25sb2FkTWFuYWdlci5oICovOyB9OwogCQk1
QzE0MjcxODFDMjNGOEI3MDBENDExODMgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE0MjcxNDFD
MjNGOEIwMDBENDExODMgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmggKi87IH07CiAJ
CTVDMTU3OURDMjcxNjVCODIwMEVENTI4MCAvKiB3ZWJwdXNoZC5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNTc5REIyNzE2NUI3NTAwRUQ1MjgwIC8q
IHdlYnB1c2hkLmMgKi87IH07CisJCTVDMTU3OUVFMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25F
bmNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzE1NzlFQTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRW5jb2Rlci5oICovOyB9OworCQk1QzE1
NzlFRjI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNTc5RUIyNzE3MkE4QjAwRUQ1MjgwIC8q
IERhZW1vbkRlY29kZXIuaCAqLzsgfTsKIAkJNUMxOUE1MjAxRkQwQjI5NTAwRUVBMzIzIC8qIFVS
TFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzE5QTUxRjFGRDBCMTQ3MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMuaCAqLzsgfTsKIAkJNUMyMENCQTAxQkIxRUNEODAwODk1QkIxIC8qIE5ldHdvcmtT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAqLzsgfTsKIAkJNUMy
Njk1ODUyMDA0MzIxMjAwNUM0MzlCIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVyc1ByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjY5NTg0MjAw
NDJGMTIwMDVDNDM5QiAvKiBXS09wZW5QYW5lbFBhcmFtZXRlcnNQcml2YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ1MzUsNiArNDUzNywx
MyBAQAogCQk1QzE1NzlEQTI3MTY1QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhl
Y3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IHdlYnB1c2hkOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1QzE1NzlEQjI3MTY1Qjc1MDBFRDUyODAgLyog
d2VicHVzaGQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gd2VicHVzaGQuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8qIHdlYnB1c2hkLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IHdlYnB1c2hkLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1QzE1NzlFMjI3MTcyQTQ5MDBFRDUyODAgLyogRGFlbW9uQ29ubmVjdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYWVtb25Db25uZWN0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RTMyNzE3MkE0OTAwRUQ1Mjgw
IC8qIERhZW1vbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGFlbW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlF
NjI3MTcyQTUxMDBFRDUyODAgLyogRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlFODI3MTcyQThBMDBFRDUyODAgLyog
RGFlbW9uRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
YWVtb25FbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RTky
NzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRlY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGFlbW9uRGVjb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTVDMTU3OUVBMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhZW1vbkVuY29kZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RUIyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRl
Y29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGFlbW9uRGVjb2Rlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzE5QTUxRTFGRDBCMTQ2MDBFRUEzMjMg
LyogVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1QzE5QTUxRjFGRDBCMTQ3MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxQjM4REYyNjY3
MTQwNzAwQjE1NDVCIC8qIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQ2MzksMTQgKzQ2NDgsMTAgQEAKIAkJNUNCOTMwRjUyNkU4MDIxNTAwMzJCMUMwIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEY2MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGNzI2RTgwMjE1MDAzMkIxQzAgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1Q0I5MzBGODI2RTgwMjE1MDAzMkIxQzAgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjkzMEY5MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRkEyNkU4MDIxNTAwMzJCMUMwIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRkIyNkU4MDIxNTAwMzJCMUMwIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRkMyNkU4MDIxNjAwMzJCMUMw
IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1Q0I5MzBGRDI2RTgwMjE2MDAzMkIx
QzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGRTI2RTgwMjE2MDAzMkIxQzAgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk1Q0I5MzBGRjI2RTgwMjE2MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1Q0I5MzEwNDI2RTgzN0ZDMDAzMkIxQzAgLyogUENNRGFlbW9uRW50cnlQb2ludC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQQ01EYWVtb25FbnRyeVBvaW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMTA1MjZFODM3RkQwMDMyQjFDMCAvKiBQ
Q01EYWVtb25FbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUENNRGFlbW9uRW50cnlQb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUNCOTMxMDYyNkU4MzlBOTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzM2OSw2ICs3Mzc0LDEyIEBACiAJCQkJQkNFRTk2NkIxMTJGQUY1
NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuaCAqLywKIAkJCQlCQzAzMkRBMjEwRjQzN0QxMDA1OEMx
NUEgLyogQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJQkMwMzJEQTMxMEY0MzdEMTAwNThDMTVBIC8q
IENvbm5lY3Rpb24uaCAqLywKKwkJCQk1QzE1NzlFMjI3MTcyQTQ5MDBFRDUyODAgLyogRGFlbW9u
Q29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNUMxNTc5RTMyNzE3MkE0OTAwRUQ1MjgwIC8qIERhZW1v
bkNvbm5lY3Rpb24uaCAqLywKKwkJCQk1QzE1NzlFOTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9u
RGVjb2Rlci5jcHAgKi8sCisJCQkJNUMxNTc5RUIyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRl
Y29kZXIuaCAqLywKKwkJCQk1QzE1NzlFODI3MTcyQThBMDBFRDUyODAgLyogRGFlbW9uRW5jb2Rl
ci5jcHAgKi8sCisJCQkJNUMxNTc5RUEyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIu
aCAqLywKIAkJCQkxQUM3NTM3RTE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5oICov
LAogCQkJCUJDMDMyRDlEMTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmNwcCAqLywKIAkJCQlC
QzAzMkQ5RTEwRjQzN0QxMDA1OEMxNUEgLyogRGVjb2Rlci5oICovLApAQCAtOTQzNywxMCArOTQ0
OCw2IEBACiAJCQkJNUM4MjZENjkyNkQ0ODJFQTAwOEFFQzkxIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50RGF0YWJhc2UuaCAqLywKIAkJCQk1Q0JFOTA5MDI2RDdGQjdDMDA1QTJFOTUgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uY3BwICovLAogCQkJCTVDQkU5MDhGMjZEN0ZC
NjIwMDVBMkU5NSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnSW5mby5oICovLAotCQkJ
CTVDQjkzMEY4MjZFODAyMTUwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuY3BwICovLAotCQkJCTVDQjkzMEZEMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlY29kZXIuaCAqLywKLQkJCQk1Q0I5MzBGOTI2RTgwMjE1MDAzMkIxQzAgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcCAqLywKLQkJCQk1Q0I5MzBGRjI2RTgw
MjE2MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmggKi8sCiAJCQkJ
NkJEMDU4NjQyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAgKi8sCiAJCQkJNkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlci5oICovLAogCQkJCTVDQjkzMTA2MjZFODM5QTkwMDMyQjFDMCAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwICovLApAQCAtMTExNzEs
NiArMTExNzgsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkx
QTMwRUFDNTExNUQ3REEzMDA1M0U5MzcgLyogQ29ubmVjdGlvbkNvY29hLm1tICovLAorCQkJCTVD
MTU3OUU2MjcxNzJBNTEwMEVENTI4MCAvKiBEYWVtb25Db25uZWN0aW9uQ29jb2EubW0gKi8sCiAJ
CQkJMUExRUM2OUQxODcyMDkyMTAwQjk1MUYwIC8qIEltcG9ydGFuY2VBc3NlcnRpb24uaCAqLywK
IAkJCQkxQTZEODZCRjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2UuY3BwICovLAogCQkJ
CTFBNkQ4NkMwMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5oICovLApAQCAtMTIzMTEs
NiArMTIzMTksOCBAQAogCQkJCTU3NTk3RUJEMjE4MTg0OTAwMDM3RjkyNCAvKiBDdGFwQXV0aGVu
dGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc1OTdFQjkyMTgxMUQ5QTAwMzdGOTI0IC8q
IEN0YXBIaWREcml2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MERBQUNBMjMwMzg1RkQwMEU4
RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzE1NzlFRjI3MTcy
QThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUMxNTc5
RUUyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUM1NUY5MTcxMUM1OTY3NkUwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUM3NTM4MDE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwMzZBRTkyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2Fi
bGVJbmZvRGF0YS5oIGluIEhlYWRlcnMgKi8sCg==
</data>
<flag name="commit-queue"
          id="465256"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441118</attachid>
            <date>2021-10-13 12:14:49 -0700</date>
            <delta_ts>2021-10-13 14:21:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231680-20211013131447.patch</filename>
            <type>text/plain</type>
            <size>88562</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NDg2NWU4NjRmMDNlMDcz
ZjQ3ZDQwOTc4MTE1ODlkM2MzN2JkZTUuLjk4NDFjNmIyZmEyYWE0NTcyMzBiM2U4MmYwZDM2Nzg1
MzkwYjhlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMTAtMTMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmVwYXJlIGFk
YXR0cmlidXRpb25kIENvbm5lY3Rpb24gYW5kIElQQyBjb2RlIGZvciByZXVzZSB3aXRoIHdlYnB1
c2hkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgSSBtb3Zl
IENvbm5lY3Rpb24sIEVuY29kZXIsIGFuZCBEZWNvZGVyIG91dCBvZiBuYW1lc3BhY2UgUENNIGFu
ZCBpbnRvIG5hbWVzcGFjZSBEYWVtb24gYW5kIGtlZXAgdGhlIFBDTSBwYXJ0cyBpbiBQQ006OkNv
bm5lY3Rpb24uCisgICAgICAgIEkgcmVtb3ZlIGFuIHVubmVjZXNzYXJ5IG1lbW9yeSBjb3B5IGJ5
IHVzaW5nIGEgU3BhbiBpbnN0ZWFkIG9mIGEgVmVjdG9yIGZvciBkZWNvZGluZy4KKyAgICAgICAg
SSBtYWtlIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlIGEgdGVtcGxhdGUgdG8gYmUgdXNlZCB3aXRo
IGEgZGlmZmVyZW50IGNvbW11bmljYXRpb24gcHJvdG9jb2wgZm9yIGNvbW11bmljYXRpbmcgd2l0
aCB3ZWJwdXNoZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2Vu
ZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U6OnNlbmRXaXRoUmVwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OmdldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UENNOjpNZXNzYWdlSW5mbzo6dG9TdHJpbmdGb3JUZXN0aW5nOjplbmNvZGVS
ZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJveHk6OnNlbmRNZXNzYWdlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpSZXBseUNhbGxlcjw+OjpjYWxsUmVwbHkpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OlJlcGx5Q2FsbGVyPFN0cmluZz46OmNhbGxSZXBseSk6CisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6TWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZVdpdGhSZXBseSBjb25z
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uOjpu
ZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UENNOjpDb25uZWN0aW9uOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjppbml0aWFsaXplQ29u
bmVjdGlvbklmTmVlZGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJZk5l
Y2Vzc2FyeSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
blRvTWFjaFNlcnZpY2U6OmNoZWNrRm9yRGVidWdNZXNzYWdlQnJvYWRjYXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2
aWNlOjpzZW5kIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTo6c2VuZFdpdGhSZXBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvRGFlbW9uQ29ubmVjdGlvbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRF
bmNvZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uVG9NYWNoU2Vy
dmljZTxUcmFpdHM+OjpzZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25u
ZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+OjpzZW5kV2l0aFJlcGx5IGNvbnN0KToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29ubmVjdGlvbi5oLgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5l
Y3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5lY3Rpb246
OmdldCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNl
cnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
RGFlbW9uRGVjb2Rlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rl
ci5jcHAuCisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmguCisgICAgICAgIChXZWJLaXQ6OkRhZW1v
bjo6RGVjb2Rlcjo6RGVjb2Rlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29k
ZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwLgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RW5jb2Rlci5oLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9EYWVt
b25Db25uZWN0aW9uQ29jb2EubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uQ29jb2EubW0uCisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlv
bjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvbjo6c2Vu
ZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRv
TWFjaFNlcnZpY2U8VHJhaXRzPjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRz
Pjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U8VHJhaXRzPjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgICogU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQu
aDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENN
RGFlbW9uQ29ubmVjdGlvblNldC5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpEYWVtb25Db25u
ZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQp
OgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01E
YWVtb25FbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0aW9uRXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAg
ICogU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUp
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTAtMTMg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgV1RGOjpWYXJpYW50IGFuZCBXVEY6OmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3Bw
CmluZGV4IGE2ZTVmM2VmOGYxNjg2YjA0MTA2YjRlZTUxM2IxZGJlMDg5MmYzNzUuLjZlNDVkZGFj
NTEwYmI1YTI0NmZkNTYzMzY4MTdhZmJmNjhjY2YyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAKQEAgLTI2LDMyICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENNIHsKIAotQ29ubmVjdGlvblRvTWFjaFNlcnZp
Y2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUsIE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbikKLSAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdU
Rk1vdmUobWFjaFNlcnZpY2VOYW1lKSkKLSAgICAsIG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQ
dHIobmV0d29ya1Nlc3Npb24pKSB7IH0KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQotdm9pZCBD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3QKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQorICAgIDogRGFlbW9uOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJhaXRzPihXVEZNb3ZlKG1hY2hTZXJ2aWNlTmFt
ZSkpCisgICAgLCBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9uKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmRXaXRo
UmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotfQotCi0jZW5k
aWYKLQogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uLmgKaW5kZXggMDMwMjY3MmFjOGIyYWM4YTRiZjZhZTJhOTZhMjNlOTVkYzQx
OTgwYy4uMzU2OTljYzdmZTg1OTU4MmE1ZjkzNDcyODJmMDgzZDQ2MzNmYzFhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbi5oCkBAIC0yNSwxNSArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
LSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNs
dWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLSNlbmRpZgorI2luY2x1ZGUgIkRhZW1vbkNv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRl
cmZhY2UuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQyLDM3ICszNSwyNiBAQCBjbGFz
cyBOZXR3b3JrU2Vzc2lvbjsKIG5hbWVzcGFjZSBQQ00gewogCiBlbnVtIGNsYXNzIE1lc3NhZ2VU
eXBlIDogdWludDhfdDsKLXVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+Owog
Ci1jbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvbm5lY3Rpb24+IHsK
LXB1YmxpYzoKLSAgICBDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIGV4cGxpY2l0IENvbm5lY3Rpb24oUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+JiYg
Y29ubmVjdGlvbikKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkg
eyB9Ci0gICAgeHBjX2Nvbm5lY3Rpb25fdCBnZXQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KLSAgICB2b2lkIHNlbmQoeHBjX29iamVjdF90KSBjb25zdDsKLSAgICB2b2lk
IHNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHhwY19v
YmplY3RfdCk+JiYpIGNvbnN0OwotcHJvdGVjdGVkOgotICAgIG11dGFibGUgUmV0YWluUHRyPHhw
Y19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKLSNlbmRpZgorc3RydWN0IENvbm5lY3Rpb25U
cmFpdHMgeworICAgIHVzaW5nIE1lc3NhZ2VUeXBlID0gV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xWZXJzaW9uS2V5IHsg
UENNOjpwcm90b2NvbFZlcnNpb25LZXkgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ2NF90
IHByb3RvY29sVmVyc2lvblZhbHVlIHsgUENNOjpwcm90b2NvbFZlcnNpb25WYWx1ZSB9OworICAg
IHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB7
IFBDTTo6cHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB9OwogfTsKIAotY2xhc3MgQ29ubmVjdGlv
blRvTWFjaFNlcnZpY2UgOiBwdWJsaWMgQ29ubmVjdGlvbiB7CitjbGFzcyBDb25uZWN0aW9uIDog
cHVibGljIERhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8Q29ubmVjdGlvblRyYWl0cz4g
ewogcHVibGljOgotICAgIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBtYWNoU2Vy
dmljZU5hbWUsIE5ldHdvcmtTZXNzaW9uJik7Ci0KLSAgICB2b2lkIHNlbmQoTWVzc2FnZVR5cGUs
IEVuY29kZWRNZXNzYWdlJiYpIGNvbnN0OwotICAgIHZvaWQgc2VuZFdpdGhSZXBseShNZXNzYWdl
VHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVz
c2FnZSYmKT4mJikgY29uc3Q7CisgICAgQ29ubmVjdGlvbihDU3RyaW5nJiYgbWFjaFNlcnZpY2VO
YW1lLCBOZXR3b3JrU2Vzc2lvbiYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgaW5pdGlhbGl6ZUNv
bm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0OworICAgIHZvaWQgbmV3Q29ubmVjdGlvbldhc0luaXRp
YWxpemVkKCkgY29uc3QgZmluYWw7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBjaGVj
a0ZvckRlYnVnTWVzc2FnZUJyb2FkY2FzdCh4cGNfb2JqZWN0X3QpIGNvbnN0OworICAgIFJldGFp
blB0cjx4cGNfb2JqZWN0X3Q+IGRpY3Rpb25hcnlGcm9tTWVzc2FnZShNZXNzYWdlVHlwZSwgRGFl
bW9uOjpFbmNvZGVkTWVzc2FnZSYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbm5lY3Rpb25S
ZWNlaXZlZEV2ZW50KHhwY19vYmplY3RfdCkgY29uc3QgZmluYWw7CiAjZW5kaWYKICAgICB2b2lk
IHNlbmREZWJ1Z01vZGVJc0VuYWJsZWRNZXNzYWdlSWZOZWNlc3NhcnkoKSBjb25zdDsKIAotICAg
IGNvbnN0IENTdHJpbmcgbV9tYWNoU2VydmljZU5hbWU7CiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vz
c2lvbj4gbV9uZXR3b3JrU2Vzc2lvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDkzYzJjYTdkOTNjM2FmNWY2NTc5YTE1YTYyN2QyNTYx
NTVmZGJlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotbmFtZXNw
YWNlIFBDTSB7Ci0KLURlY29kZXI6On5EZWNvZGVyKCkKLXsKLSAgICBBU1NFUlQobV9idWZmZXJQ
b3NpdGlvbiA9PSBtX2J1ZmZlci5zaXplKCkpOwotfQotCi1ib29sIERlY29kZXI6OmJ1ZmZlcklz
TGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRlcyhzaXplX3QgYnl0ZXMpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGJ5dGVzIDw9IG1fYnVmZmVyLnNpemUoKSAtIG1fYnVmZmVyUG9zaXRpb247Ci19Ci0KLWJv
b2wgRGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBz
aXplLCBzaXplX3QpCi17Ci0gICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0
ZXMoc2l6ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtZW1jcHkoZGF0YSwgbV9idWZm
ZXIuZGF0YSgpICsgbV9idWZmZXJQb3NpdGlvbiwgc2l6ZSk7Ci0gICAgbV9idWZmZXJQb3NpdGlv
biArPSBzaXplOwotICAgIHJldHVybiB0cnVlOwotfQotCi1jb25zdCB1aW50OF90KiBEZWNvZGVy
OjpkZWNvZGVGaXhlZExlbmd0aFJlZmVyZW5jZShzaXplX3Qgc2l6ZSwgc2l6ZV90KQotewotICAg
IGlmICghYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemUpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICBjb25zdCB1aW50OF90KiBkYXRhID0gbV9idWZmZXIuZGF0YSgp
ICsgbV9idWZmZXJQb3NpdGlvbjsKLSAgICBtX2J1ZmZlclBvc2l0aW9uICs9IHNpemU7Ci0gICAg
cmV0dXJuIGRhdGE7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFBDTQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVjb2Rlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDNh
NjcwYmM1YjBjNGMxOGI0MzkyYzQyMGFiNDEyNjNkNDc3Y2E1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
bmFtZXNwYWNlIFBDTSB7Ci0KLWNsYXNzIERlY29kZXIgewotcHVibGljOgotICAgIERlY29kZXIo
VmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQotICAgICAgICA6IG1fYnVmZmVyKFdURk1vdmUoYnVm
ZmVyKSkgeyB9Ci0gICAgfkRlY29kZXIoKTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0g
ICAgRGVjb2RlciYgb3BlcmF0b3I+PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQotICAgIHsKLSAgICAg
ICAgdCA9IElQQzo6QXJndW1lbnRDb2RlcjxzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6cmVtb3Zl
X3JlZmVyZW5jZV90PFQ+Piwgdm9pZD46OmRlY29kZSgqdGhpcyk7Ci0gICAgICAgIHJldHVybiAq
dGhpczsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4oc2l6ZV90IG51bUVsZW1l
bnRzKSBjb25zdAotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2FyaXRobWV0
aWM8VD46OnZhbHVlLCAiVHlwZSBUIG11c3QgaGF2ZSBhIGZpeGVkLCBrbm93biBlbmNvZGVkIHNp
emUhIik7Ci0KLSAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gc3RkOjpudW1lcmljX2xpbWl0czxz
aXplX3Q+OjptYXgoKSAvIHNpemVvZihUKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgICAgICByZXR1cm4gYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKG51bUVsZW1l
bnRzICogc2l6ZW9mKFQpKTsKLSAgICB9Ci0KLSAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGVGaXhlZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90LCBzaXplX3QgYWxpZ25t
ZW50KTsKLSAgICBjb25zdCB1aW50OF90KiBkZWNvZGVGaXhlZExlbmd0aFJlZmVyZW5jZShzaXpl
X3QsIHNpemVfdCk7Ci0KLXByaXZhdGU6Ci0gICAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgYnVm
ZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCkgY29uc3Q7Ci0KLSAgICBWZWN0
b3I8dWludDhfdD4gbV9idWZmZXI7Ci0gICAgc2l6ZV90IG1fYnVmZmVyUG9zaXRpb24geyAwIH07
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBQQ00KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5jb2Rlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5OGIxNWU1MTBl
NTk5Mzc0M2ZlN2U1NjNlZjAxZGQ3OGI5MjRmZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLW5hbWVzcGFjZSBQQ00gewotCi12b2lkIEVuY29kZXI6OmVuY29kZUZp
eGVkTGVuZ3RoRGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc2l6ZV90KQot
ewotICAgIG1fYnVmZmVyLmFwcGVuZChkYXRhLCBzaXplKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
UENNCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE4YTgzYzY1OTI1ZDI2MmFkZDIwYmE1YThiMTkwMzY1ZTU5MzJj
YjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1uYW1lc3BhY2UgUENNIHsKLQotY2xhc3MgRW5jb2RlciB7
Ci1wdWJsaWM6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBFbmNvZGVyJiBvcGVyYXRv
cjw8KFQmJiB0KQotICAgIHsKLSAgICAgICAgSVBDOjpBcmd1bWVudENvZGVyPHN0ZDo6cmVtb3Zl
X2NvbnN0X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4+Pjo6ZW5jb2RlKCp0aGlzLCBzdGQ6
OmZvcndhcmQ8VD4odCkpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIHZvaWQgZW5jb2RlKEFy
ZyYmIGFyZywgQXJncyYmLi4uIGFyZ3MpCi0gICAgewotICAgICAgICAqdGhpcyA8PCBzdGQ6OmZv
cndhcmQ8QXJnPihhcmcpOwotICAgICAgICBlbmNvZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3Mp
Li4uKTsKLSAgICB9Ci0gICAgdm9pZCBlbmNvZGUoKSB7IH0KLQotICAgIFZlY3Rvcjx1aW50OF90
PiB0YWtlQnVmZmVyKCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2J1ZmZlciwgeyB9KTsgfQot
Ci0gICAgdm9pZCBlbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCosIHNpemVfdCwg
c2l6ZV90IGFsaWdubWVudCk7Ci0KLXByaXZhdGU6Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IG1fYnVm
ZmVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgUENNCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCmluZGV4IDFmOTc0MDVhNzk4NzEz
NGRhOTVmYzE5ZGJlOTIyZDVmNWRkZTMxYzcuLjY5ZGNhZGU3MTJkZTBlYmFkNjA3NjE0NmRkMDhk
MTY2OWI5MWRlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJm
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKQEAg
LTI2LDExICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgogCisjaW5jbHVkZSAiRGFlbW9uRGVj
b2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNpbmNsdWRlICJIYW5kbGVNZXNz
YWdlLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuaCIKLSNpbmNsdWRl
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIApAQCAtMTQz
LDcgKzE0Myw3IEBAIEVNUFRZX1JFUExZKHN0b3JlVW5hdHRyaWJ1dGVkKTsKIAogUENNOjpFbmNv
ZGVkTWVzc2FnZSB0b1N0cmluZ0ZvclRlc3Rpbmc6OmVuY29kZVJlcGx5KFN0cmluZyByZXBseSkK
IHsKLSAgICBQQ006OkVuY29kZXIgZW5jb2RlcjsKKyAgICBEYWVtb246OkVuY29kZXIgZW5jb2Rl
cjsKICAgICBlbmNvZGVyIDw8IHJlcGx5OwogICAgIHJldHVybiBlbmNvZGVyLnRha2VCdWZmZXIo
KTsKIH0KQEAgLTE5Nyw5ICsxOTcsOSBAQCBzdGF0aWMgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyJiBkYWVtb25NYW5hZ2VyKCkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSW5mbz4KLXZv
aWQgaGFuZGxlUENNTWVzc2FnZShQQ006OkVuY29kZWRNZXNzYWdlJiYgZW5jb2RlZE1lc3NhZ2Up
Cit2b2lkIGhhbmRsZVBDTU1lc3NhZ2UoU3Bhbjxjb25zdCB1aW50OF90PiBlbmNvZGVkTWVzc2Fn
ZSkKIHsKLSAgICBQQ006OkRlY29kZXIgZGVjb2RlcihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7
CisgICAgRGFlbW9uOjpEZWNvZGVyIGRlY29kZXIoZW5jb2RlZE1lc3NhZ2UpOwogCiAgICAgc3Rk
OjpvcHRpb25hbDx0eXBlbmFtZSBJbmZvOjpBcmdzVHVwbGU+IGFyZ3VtZW50czsKICAgICBkZWNv
ZGVyID4+IGFyZ3VtZW50czsKQEAgLTIwOSwxMCArMjA5LDEwIEBAIHZvaWQgaGFuZGxlUENNTWVz
c2FnZShQQ006OkVuY29kZWRNZXNzYWdlJiYgZW5jb2RlZE1lc3NhZ2UpCiAgICAgSVBDOjpjYWxs
TWVtYmVyRnVuY3Rpb24oV1RGTW92ZSgqYXJndW1lbnRzKSwgJmRhZW1vbk1hbmFnZXIoKSwgSW5m
bzo6TWVtYmVyRnVuY3Rpb24pOwogfQogCi1zdGF0aWMgdm9pZCBoYW5kbGVQQ01NZXNzYWdlU2V0
RGVidWdNb2RlSXNFbmFibGVkKGNvbnN0IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBDTTo6RW5j
b2RlZE1lc3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSkKK3N0YXRpYyB2b2lkIGhhbmRsZVBDTU1lc3Nh
Z2VTZXREZWJ1Z01vZGVJc0VuYWJsZWQoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdlKQogewogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIFBDTTo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUoZW5jb2RlZE1lc3NhZ2Up
KTsKKyAgICBEYWVtb246OkRlY29kZXIgZGVjb2RlcihlbmNvZGVkTWVzc2FnZSk7CiAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBlbmFibGVkOwogICAgIGRlY29kZXIgPj4gZW5hYmxlZDsKICAgICBp
ZiAoVU5MSUtFTFkoIWVuYWJsZWQpKQpAQCAtMjMwLDkgKzIzMCw5IEBAIHN0YXRpYyB2b2lkIGhh
bmRsZVBDTU1lc3NhZ2VTZXREZWJ1Z01vZGVJc0VuYWJsZWQoY29uc3QgQ29ubmVjdGlvbiYgY29u
bmVjdGlvbiwKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSW5mbz4KLXZvaWQgaGFuZGxlUENNTWVz
c2FnZVdpdGhSZXBseShQQ006OkVuY29kZWRNZXNzYWdlJiYgZW5jb2RlZE1lc3NhZ2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUENNOjpFbmNvZGVkTWVzc2FnZSYmKT4mJiByZXBseVNlbmRlcikK
K3ZvaWQgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseShTcGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29k
ZWRNZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBDTTo6RW5jb2RlZE1lc3NhZ2UmJik+
JiYgcmVwbHlTZW5kZXIpCiB7Ci0gICAgUENNOjpEZWNvZGVyIGRlY29kZXIoV1RGTW92ZShlbmNv
ZGVkTWVzc2FnZSkpOworICAgIERhZW1vbjo6RGVjb2RlciBkZWNvZGVyKGVuY29kZWRNZXNzYWdl
KTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgSW5mbzo6QXJnc1R1cGxlPiBhcmd1bWVu
dHM7CiAgICAgZGVjb2RlciA+PiBhcmd1bWVudHM7CkBAIC0yNTEsNjMgKzI1MSw2MyBAQCB2b2lk
IGRvRGFpbHlBY3Rpdml0eUluTWFuYWdlcigpCiAgICAgZGFlbW9uTWFuYWdlcigpLmZpcmVQZW5k
aW5nQXR0cmlidXRpb25SZXF1ZXN0cygpOwogfQogCi12b2lkIGRlY29kZU1lc3NhZ2VBbmRTZW5k
VG9NYW5hZ2VyKGNvbnN0IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VUeXBlIG1lc3Nh
Z2VUeXBlLCBWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkTWVzc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYgcmVwbHlTZW5kZXIpCit2b2lkIGRlY29kZU1l
c3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKGNvbnN0IERhZW1vbjo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgTWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1l
c3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmIHJlcGx5
U2VuZGVyKQogewogICAgIEFTU0VSVChtZXNzYWdlVHlwZVNlbmRzUmVwbHkobWVzc2FnZVR5cGUp
ID09ICEhcmVwbHlTZW5kZXIpOwogICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHsKICAgICBjYXNl
IFBDTTo6TWVzc2FnZVR5cGU6OlN0b3JlVW5hdHRyaWJ1dGVkOgotICAgICAgICBoYW5kbGVQQ01N
ZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpzdG9yZVVuYXR0cmlidXRlZD4oV1RGTW92ZShl
bmNvZGVkTWVzc2FnZSksIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgaGFuZGxlUENN
TWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6c3RvcmVVbmF0dHJpYnV0ZWQ+KGVuY29kZWRN
ZXNzYWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UENNOjpNZXNzYWdlVHlwZTo6SGFuZGxlQXR0cmlidXRpb246Ci0gICAgICAgIGhhbmRsZVBDTU1l
c3NhZ2U8TWVzc2FnZUluZm86OmhhbmRsZUF0dHJpYnV0aW9uPihXVEZNb3ZlKGVuY29kZWRNZXNz
YWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OmhhbmRsZUF0dHJp
YnV0aW9uPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpN
ZXNzYWdlVHlwZTo6Q2xlYXI6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVz
c2FnZUluZm86OmNsZWFyPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBseVNl
bmRlcikpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpj
bGVhcj4oZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpDbGVhckZvclJlZ2lzdHJhYmxlRG9tYWlu
OgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpjbGVhckZv
clJlZ2lzdHJhYmxlRG9tYWluPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBs
eVNlbmRlcikpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZv
OjpjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluPihlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBs
eVNlbmRlcikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlNl
dERlYnVnTW9kZUlzRW5hYmxlZDoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9k
ZUlzRW5hYmxlZChjb25uZWN0aW9uLCBXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAg
IGhhbmRsZVBDTU1lc3NhZ2VTZXREZWJ1Z01vZGVJc0VuYWJsZWQoY29ubmVjdGlvbiwgZW5jb2Rl
ZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6Ok1p
Z3JhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lTdG9yYWdlOgotICAgICAgICBo
YW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjptaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRGcm9tTGVnYWN5U3RvcmFnZT4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBo
YW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjptaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRGcm9tTGVnYWN5U3RvcmFnZT4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlRvU3RyaW5nRm9yVGVzdGluZzoKLSAgICAgICAgaGFu
ZGxlUENNTWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6dG9TdHJpbmdGb3JUZXN0aW5nPihX
VEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBo
YW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjp0b1N0cmluZ0ZvclRlc3Rpbmc+
KGVuY29kZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6Ci0g
ICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3Nh
Z2U8TWVzc2FnZUluZm86OnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2Fn
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0VG9rZW5Q
dWJsaWNLZXlVUkxGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJ
bmZvOjpzZXRUb2tlblB1YmxpY0tleVVSTEZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3Nh
Z2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0VG9rZW5QdWJs
aWNLZXlVUkxGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nOgot
ICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRUb2tlblNpZ25hdHVyZVVS
TEZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENN
TWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nPihlbmNv
ZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6
U2V0QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENNTWVz
c2FnZTxNZXNzYWdlSW5mbzo6c2V0QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZz4oV1RG
TW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJ
bmZvOjpzZXRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6TWFya0FsbFVuYXR0
cmlidXRlZEFzRXhwaXJlZEZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVz
c2FnZUluZm86Om1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nPihXVEZNb3Zl
KGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86
Om1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6TWFya0F0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nOgotICAgICAgICBo
YW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjptYXJrQXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1l
c3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VX
aXRoUmVwbHk8TWVzc2FnZUluZm86Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5k
ZXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01G
cmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdl
PE1lc3NhZ2VJbmZvOjpzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nPihXVEZN
b3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUlu
Zm86OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVy
SW1tZWRpYXRlbHlGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJ
bmZvOjpzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNz
YWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnN0YXJ0VGltZXJJ
bW1lZGlhdGVseUZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1
bmRsZUlERm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KFdURk1vdmUo
ZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KGVuY29kZWRN
ZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpEZXN0
cm95U3RvcmVGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1l
c3NhZ2VJbmZvOjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdl
KSwgV1RGTW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJl
cGx5PE1lc3NhZ2VJbmZvOjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSwg
V1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVz
c2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzoKLSAg
ICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNo
YWluRm9yTG9jYWxQQ01UZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAg
IGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZv
ckxvY2FsUENNVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCA4ZmNmYjRiNzU0NWFk
YWE2ZTBhYTBkNDZiMmMyMWM2OWQ5NDhjYmZhLi4xNDc5YWYzZGE4ZjFlZDUyYWVkZGE4NDE3YTc5
NTk0MTk4NzQ0ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVy
ZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTM1
LDE0ICszNSwxNiBAQCBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCituYW1lc3BhY2UgRGFlbW9uIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKIGVudW0gY2xh
c3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgOiBib29sIHsgVW5hdHRy
aWJ1dGVkLCBBdHRyaWJ1dGVkIH07CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjsKIAogbmFtZXNwYWNlIFBDTSB7CiAKLWNsYXNzIENvbm5lY3Rpb247Ci0KIGNsYXNzIE1h
bmFnZXJJbnRlcmZhY2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfk1hbmFnZXJJbnRlcmZhY2Uo
KSB7IH07CkBAIC0xMDYsNyArMTA4LDcgQEAgZW51bSBjbGFzcyBNZXNzYWdlVHlwZSA6IHVpbnQ4
X3QgewogY29uc3RleHByIGNvbnN0IGNoYXIqIHByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXkgeyAi
ZW5jb2RlZCBtZXNzYWdlIiB9OwogdXNpbmcgRW5jb2RlZE1lc3NhZ2UgPSBWZWN0b3I8dWludDhf
dD47CiAKLXZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoY29uc3QgQ29ubmVjdGlv
biYsIE1lc3NhZ2VUeXBlLCBWZWN0b3I8dWludDhfdD4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7Cit2b2lkIGRlY29kZU1lc3NhZ2VBbmRT
ZW5kVG9NYW5hZ2VyKGNvbnN0IERhZW1vbjo6Q29ubmVjdGlvbiYsIE1lc3NhZ2VUeXBlLCBTcGFu
PGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZl
Y3Rvcjx1aW50OF90PiYmKT4mJik7CiB2b2lkIGRvRGFpbHlBY3Rpdml0eUluTWFuYWdlcigpOwog
Ym9vbCBtZXNzYWdlVHlwZVNlbmRzUmVwbHkoTWVzc2FnZVR5cGUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IGExODc3ODRkODZmYTEzOTAyMDYzOTFhZmRkMDk3ZDIwYjdj
MWZmYWEuLjRiYjY0NGUzY2RmMDIwOTMzMTYwNzZkYjY0OTRmMjg0NTViOGUyNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCIK
IAorI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIKKyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgi
CiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzgsMjAgKzM4LDIwIEBAIG5hbWVzcGFjZSBQ
Q00gewogdGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+
CiB2b2lkIE1hbmFnZXJQcm94eTo6c2VuZE1lc3NhZ2UoQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7
Ci0gICAgRW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAg
IGVuY29kZXIuZW5jb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAgbV9jb25u
ZWN0aW9uLnNlbmQobWVzc2FnZVR5cGUsIGVuY29kZXIudGFrZUJ1ZmZlcigpKTsKIH0KIAogdGVt
cGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RydWN0IFJlcGx5Q2FsbGVyOwogdGVtcGxhdGU8PiBz
dHJ1Y3QgUmVwbHlDYWxsZXI8PiB7Ci0gICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERlY29kZXIm
JiBkZWNvZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CisgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfQogfTsKIHRlbXBsYXRlPD4gc3RydWN0IFJl
cGx5Q2FsbGVyPFN0cmluZz4gewotICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShEZWNvZGVyJiYg
ZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCisgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29k
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHN0cmluZzsKICAgICAgICAg
ZGVjb2RlciA+PiBzdHJpbmc7CkBAIC02NCwxMCArNjQsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
UmVwbHlDYWxsZXI8U3RyaW5nPiB7CiB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwg
dHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgogdm9pZCBNYW5hZ2VyUHJv
eHk6OnNlbmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVwbHlBcmdz
Li4uKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7Ci0gICAg
RW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAgIGVuY29k
ZXIuZW5jb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAgbV9jb25uZWN0aW9u
LnNlbmRXaXRoUmVwbHkobWVzc2FnZVR5cGUsIGVuY29kZXIudGFrZUJ1ZmZlcigpLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8gcmVwbHlCdWZm
ZXIpIG11dGFibGUgewotICAgICAgICBEZWNvZGVyIGRlY29kZXIoV1RGTW92ZShyZXBseUJ1ZmZl
cikpOworICAgICAgICBEYWVtb246OkRlY29kZXIgZGVjb2RlcihXVEZNb3ZlKHJlcGx5QnVmZmVy
KSk7CiAgICAgICAgIFJlcGx5Q2FsbGVyPFJlcGx5QXJncy4uLj46OmNhbGxSZXBseShXVEZNb3Zl
KGRlY29kZXIpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmgKaW5kZXggZjkxMTYxNWI1MmM5ZThhMjgwZDI3YTE5ZTZmNzMy
Yzg3ZDRjMTEzOS4uZDRhMjc5YWI5ZTEyMjI4ZGVlMDcwNWI4ZmQ4MmUyZjhlNTM5YTNjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAg
IHRlbXBsYXRlPE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzLCB0eXBl
bmFtZS4uLiBSZXBseUFyZ3M+CiAgICAgdm9pZCBzZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlcGx5QXJncy4uLik+JiYsIEFyZ3MmJi4uLikgY29uc3Q7CiAKLSAg
ICBDb25uZWN0aW9uVG9NYWNoU2VydmljZSBtX2Nvbm5lY3Rpb247CisgICAgQ29ubmVjdGlvbiBt
X2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29ubmVjdGlvbkNvY29hLm1tCmluZGV4IDczNTViZjIwMzAxMDUzYWYxM2FkOTIw
Yzg4N2U5ZjMwN2JiYTVkYjguLjYyOWY0YmNkODhkMzI2MDhjMGFiY2VjOWIzMjNiYTNjMGFjNGFl
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbQpAQCAt
MjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKIAotI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRFbmNvZGVyLmgiCisjaW1wb3J0ICJEYWVtb25FbmNvZGVyLmgiCiAjaW1wb3J0ICJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFhQQ1V0aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKQEAgLTM0LDI4ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3Bh
Y2UgUENNIHsKIAotdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb25JZk5lZWRlZCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAg
cmV0dXJuOwotICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRl
X21hY2hfc2VydmljZShtX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCksIGRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCksIDApKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nv
bm5lY3Rpb24uZ2V0KCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oeHBjX29iamVj
dF90IGV2ZW50KSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEKQotICAg
ICAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8gY29ubmVjdCB0byBtYWNoIHNlcnZpY2Ug
JXMsIGxpa2VseSBiZWNhdXNlIGl0IGlzIG5vdCByZWdpc3RlcmVkIHdpdGggbGF1bmNoZCIsIHdl
YWtUaGlzLT5tX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCkpOwotICAgICAgICBpZiAoZXZlbnQgPT0g
WFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKLSAgICAgICAgICAgIC8vIERhZW1v
biBjcmFzaGVkLCB3ZSB3aWxsIG5lZWQgdG8gbWFrZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgbmV3
IGluc3RhbmNlIG9mIHRoZSBkYWVtb24uCi0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9jb25uZWN0
aW9uID0gbnVsbHB0cjsKLSAgICAgICAgfQotICAgICAgICB3ZWFrVGhpcy0+Y2hlY2tGb3JEZWJ1
Z01lc3NhZ2VCcm9hZGNhc3QoZXZlbnQpOwotICAgIH0pOwotICAgIHhwY19jb25uZWN0aW9uX2Fj
dGl2YXRlKG1fY29ubmVjdGlvbi5nZXQoKSk7Ci0KLSAgICBzZW5kRGVidWdNb2RlSXNFbmFibGVk
TWVzc2FnZUlmTmVjZXNzYXJ5KCk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6
OnNlbmREZWJ1Z01vZGVJc0VuYWJsZWRNZXNzYWdlSWZOZWNlc3NhcnkoKSBjb25zdAordm9pZCBD
b25uZWN0aW9uOjpuZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQoKSBjb25zdAogewogICAgIEFT
U0VSVChtX2Nvbm5lY3Rpb24pOwogICAgIGlmICghbV9uZXR3b3JrU2Vzc2lvbgpAQCAtNjMsMTIg
KzQyLDEyIEBAIHZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmREZWJ1Z01vZGVJc0Vu
YWJsZWRNZXNzYWdlSWZOZWNlc3NhcnkoKSBjb25zdAogICAgICAgICB8fCAhbV9uZXR3b3JrU2Vz
c2lvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEVuY29kZXIgZW5jb2RlcjsKKyAgICBEYWVtb246OkVuY29kZXIgZW5j
b2RlcjsKICAgICBlbmNvZGVyLmVuY29kZSh0cnVlKTsKICAgICBzZW5kKE1lc3NhZ2VUeXBlOjpT
ZXREZWJ1Z01vZGVJc0VuYWJsZWQsIGVuY29kZXIudGFrZUJ1ZmZlcigpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6Y2hlY2tGb3JEZWJ1Z01lc3NhZ2VCcm9hZGNhc3QoeHBj
X29iamVjdF90IHJlcXVlc3QpIGNvbnN0Cit2b2lkIENvbm5lY3Rpb246OmNvbm5lY3Rpb25SZWNl
aXZlZEV2ZW50KHhwY19vYmplY3RfdCByZXF1ZXN0KSBjb25zdAogewogICAgIGlmICh4cGNfZ2V0
X3R5cGUocmVxdWVzdCkgIT0gWFBDX1RZUEVfRElDVElPTkFSWSkKICAgICAgICAgcmV0dXJuOwpA
QCAtODIsNTkgKzYxLDE0IEBAIHZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OmNoZWNrRm9y
RGVidWdNZXNzYWdlQnJvYWRjYXN0KHhwY19vYmplY3RfdCByZXF1ZXN0CiAgICAgbV9uZXR3b3Jr
U2Vzc2lvbi0+bmV0d29ya1Byb2Nlc3MoKS5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX25ldHdv
cmtTZXNzaW9uLT5zZXNzaW9uSUQoKSwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nOjpmcm9tVVRGOChkZWJ1Z01lc3NhZ2UpKTsKIH0K
IAotc3RhdGljIE9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdl
KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpCitSZXRh
aW5QdHI8eHBjX29iamVjdF90PiBDb25uZWN0aW9uOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UoTWVz
c2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkgY29uc3QKIHsK
LSAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0
ZShudWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRvcHROUyh4
cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOwogICAgIGFkZFZlcnNp
b25BbmRFbmNvZGVkTWVzc2FnZVRvRGljdGlvbmFyeShXVEZNb3ZlKG1lc3NhZ2UpLCBkaWN0aW9u
YXJ5LmdldCgpKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0
KCksIHByb3RvY29sTWVzc2FnZVR5cGVLZXksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtZXNzYWdl
VHlwZSkpOwogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi12b2lkIENvbm5lY3Rpb246OnNl
bmQoeHBjX29iamVjdF90IG1lc3NhZ2UpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICBBU1NFUlQobV9jb25uZWN0aW9uLmdldCgpKTsKLSAgICBBU1NFUlQoeHBj
X2dldF90eXBlKG1lc3NhZ2UpID09IFhQQ19UWVBFX0RJQ1RJT05BUlkpOwotICAgIHhwY19jb25u
ZWN0aW9uX3NlbmRfbWVzc2FnZShtX2Nvbm5lY3Rpb24uZ2V0KCksIG1lc3NhZ2UpOwotfQotCi12
b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90IG1lc3NhZ2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoeHBjX29iamVjdF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29u
c3QKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChtX2Nvbm5l
Y3Rpb24uZ2V0KCkpOwotICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUobWVzc2FnZSkgPT0gWFBDX1RZ
UEVfRElDVElPTkFSWSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVw
bHkobV9jb25uZWN0aW9uLmdldCgpLCBtZXNzYWdlLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildICh4cGNfb2JqZWN0X3QgcmVwbHkpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXBseSk7Ci0gICAg
fSkuZ2V0KCkpOwotfQotCi12b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpzZW5kKE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpIGNvbnN0Ci17Ci0g
ICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOwotICAgIENvbm5lY3Rpb246OnNlbmQo
ZGljdGlvbmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKG1lc3NhZ2UpKS5nZXQo
KSk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmRXaXRoUmVwbHkoTWVz
c2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29u
c3QKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIGluaXRpYWxpemVDb25u
ZWN0aW9uSWZOZWVkZWQoKTsKLQotICAgIENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoZGljdGlv
bmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKG1lc3NhZ2UpKS5nZXQoKSwgW2Nv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICh4cGNfb2JqZWN0
X3QgcmVwbHkpIG11dGFibGUgewotICAgICAgICBpZiAoeHBjX2dldF90eXBlKHJlcGx5KSAhPSBY
UENfVFlQRV9ESUNUSU9OQVJZKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICh4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHJlcGx5LCBwcm90b2NvbFZlcnNp
b25LZXkpICE9IHByb3RvY29sVmVyc2lvblZhbHVlKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwot
ICAgICAgICB9Ci0gICAgICAgIHNpemVfdCBkYXRhU2l6ZSB7IDAgfTsKLSAgICAgICAgY29uc3Qg
dm9pZCogZGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKHJlcGx5LCBwcm90b2NvbEVuY29k
ZWRNZXNzYWdlS2V5LCAmZGF0YVNpemUpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgZGF0YVNpemUgfSk7Ci0gICAgfSk7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFBDTQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlN2YyNzgwMzYy
ZGQyMDM3NDM0Y2ExY2IzOTBkZGU2ZWY3OTE1OTM0Li5lMWU2YjE2M2MwMjAwMTE2ZmZmNTc2YjE1
OWUxYjc4Y2JjYWNiZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKIAorI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIKKyNp
bmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2lu
Y2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIlByaXZh
dGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25F
bmNvZGVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdh
bGxUaW1lPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdhbGxUaW1lJiB0aW1lKQog
dGVtcGxhdGUKIHZvaWQgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZTxFbmNvZGVyPihF
bmNvZGVyJiwgY29uc3QgV2FsbFRpbWUmKTsKIHRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8
V2FsbFRpbWU+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNv
ZGVyJiwgY29uc3QgV2FsbFRpbWUmKTsKK3ZvaWQgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVu
Y29kZTxXZWJLaXQ6OkRhZW1vbjo6RW5jb2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBj
b25zdCBXYWxsVGltZSYpOwogCiBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVy
PFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQogewpA
QCAtNjgsNyArNjgsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpvcHRpb25hbDxXYWxsVGlt
ZT4gQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZShEZWNvZAogdGVtcGxhdGUKIHN0ZDo6
b3B0aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8RGVjb2Rl
cj4oRGVjb2RlciYpOwogdGVtcGxhdGUKLXN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50
Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6UENN
OjpEZWNvZGVyJik7CitzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxU
aW1lPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVj
b2RlciYpOwogCiB2b2lkIEFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9tU3RyaW5nKQogewpAQCAtOTksNyArOTks
NyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERh
dGEoc3RyaW5nLmRhdGFBc1VJbnQ4UHRyKCksIGxlbmd0aCwgMSk7CiB9CiB0ZW1wbGF0ZSB2b2lk
IEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3Qg
Q1N0cmluZyYpOwotdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENTdHJpbmc+OjplbmNvZGU8
V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgY29uc3QgQ1N0cmlu
ZyYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENTdHJpbmc+OjplbmNvZGU8V2ViS2l0
OjpEYWVtb246OkVuY29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgQ1N0cmlu
ZyYpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxDU3RyaW5n
PiBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKQEAgLTEy
OCw3ICsxMjgsNyBAQCBzdGQ6Om9wdGlvbmFsPENTdHJpbmc+IEFyZ3VtZW50Q29kZXI8Q1N0cmlu
Zz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogdGVtcGxhdGUKIHN0ZDo6b3B0aW9uYWw8Q1N0
cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsK
IHRlbXBsYXRlCi1zdGQ6Om9wdGlvbmFsPENTdHJpbmc+IEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46
OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsKK3N0
ZDo6b3B0aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPFdlYktp
dDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTE1NCw3ICsxNTQsNyBA
QCB2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBj
b25zdCBTdHJpbmcmKTsKIHRlbXBsYXRlCiB2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5j
b2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNv
bnN0IFN0cmluZyYpOwogdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNv
ZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgY29uc3QgU3Ry
aW5nJik7Cit2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9u
OjpFbmNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IFN0cmluZyYpOwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlLCB0eXBlbmFtZSBEZWNvZGVyPgogc3RhdGlj
IGlubGluZSBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlU3RyaW5nVGV4dChEZWNvZGVyJiBk
ZWNvZGVyLCB1aW50MzJfdCBsZW5ndGgpCkBAIC0xOTYsNyArMTk2LDcgQEAgV0FSTl9VTlVTRURf
UkVUVVJOIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBBcmd1bWVudENvZGVyPFN0cmluZz46OmRlY29k
ZShEZWNvZGVyJgogdGVtcGxhdGUKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBBcmd1bWVudENvZGVy
PFN0cmluZz46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7CiB0ZW1wbGF0ZQotc3RkOjpvcHRp
b25hbDxTdHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpE
ZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOworc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFy
Z3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJL
aXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogCiBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVu
dENvZGVyPFN0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcmIHJlc3VsdCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDQ3ODU0Y2IyMWIzZGFiZjgzMTVhZDQ2ZjJiOTRjZjY0MTA2N2VjMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkNvbm5lY3Rp
b24uY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGFlbW9uQ29ubmVjdGlvbi5oIgorCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFj
ZSBEYWVtb24geworCisjaWYgIVBMQVRGT1JNKENPQ09BKQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
cmFpdHM+Cit2b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFRyYWl0cz46OnNlbmQodHlwZW5h
bWUgVHJhaXRzOjpNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJikgY29uc3QKK3sKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRzPgordm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxU
cmFpdHM+OjpzZW5kV2l0aFJlcGx5KHR5cGVuYW1lIFRyYWl0czo6TWVzc2FnZVR5cGUsIEVuY29k
ZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Cit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsK
K30KKwordGVtcGxhdGUgY2xhc3MgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U8UENNOjpDb25uZWN0
aW9uVHJhaXRzPjsKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIERhZW1vbgorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Rh
ZW1vbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkNvbm5l
Y3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NWIxMDRmODMzMmQ1NzdlMGQ3NzExZTA2MDhmOTU1OWMxODli
ZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9u
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworbmFtZXNwYWNlIERhZW1vbiB7CisKK3VzaW5nIEVuY29kZWRNZXNzYWdlID0g
VmVjdG9yPHVpbnQ4X3Q+OworCitjbGFzcyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPENvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICBDb25uZWN0aW9uKCkgPSBkZWZhdWx0Owor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGV4cGxpY2l0IENvbm5lY3Rpb24oUmV0YWluUHRyPHhw
Y19jb25uZWN0aW9uX3Q+JiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2Nvbm5lY3Rpb24oV1RG
TW92ZShjb25uZWN0aW9uKSkgeyB9CisgICAgeHBjX2Nvbm5lY3Rpb25fdCBnZXQoKSBjb25zdCB7
IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICB2b2lkIHNlbmQoeHBjX29iamVjdF90
KSBjb25zdDsKKyAgICB2b2lkIHNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHhwY19vYmplY3RfdCk+JiYpIGNvbnN0OworcHJvdGVjdGVkOgorICAgIG11
dGFibGUgUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKKyNlbmRpZgor
fTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRzPgorY2xhc3MgQ29ubmVjdGlvblRvTWFjaFNl
cnZpY2UgOiBwdWJsaWMgQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgQ29ubmVjdGlvblRvTWFj
aFNlcnZpY2UoQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFtZSkKKyAgICAgICAgOiBtX21hY2hTZXJ2
aWNlTmFtZShXVEZNb3ZlKG1hY2hTZXJ2aWNlTmFtZSkpIHsgfQorICAgIHZpcnR1YWwgfkNvbm5l
Y3Rpb25Ub01hY2hTZXJ2aWNlKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBzZW5kKHR5cGVuYW1l
IFRyYWl0czo6TWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpIGNvbnN0OworICAgIHZvaWQg
c2VuZFdpdGhSZXBseSh0eXBlbmFtZSBUcmFpdHM6Ok1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2Fn
ZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmKSBjb25zdDsK
KworICAgIHZpcnR1YWwgdm9pZCBuZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQoKSBjb25zdCA9
IDA7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBSZXRhaW5QdHI8eHBjX29iamVj
dF90PiBkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UodHlwZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSwg
RW5jb2RlZE1lc3NhZ2UmJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9u
UmVjZWl2ZWRFdmVudCh4cGNfb2JqZWN0X3QpIGNvbnN0ID0gMDsKKyNlbmRpZgorCitwcml2YXRl
OgorICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0OworCisgICAg
Y29uc3QgQ1N0cmluZyBtX21hY2hTZXJ2aWNlTmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIERh
ZW1vbgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvRGFlbW9uRGVjb2Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThjMjBkMmFiZWU4ODQzMTZjNWY5MDZl
MzJjMDk3Y2M5MzdkOGM0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0RhZW1vbkRlY29kZXIuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIERhZW1vbiB7CisKK0RlY29kZXI6On5EZWNvZGVyKCkK
K3sKKyAgICBBU1NFUlQobV9idWZmZXJQb3NpdGlvbiA9PSBtX2J1ZmZlci5zaXplKCkpOworfQor
Citib29sIERlY29kZXI6OmJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRlcyhzaXplX3Qg
Ynl0ZXMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGJ5dGVzIDw9IG1fYnVmZmVyLnNpemUoKSAtIG1f
YnVmZmVyUG9zaXRpb247Cit9CisKK2Jvb2wgRGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhEYXRh
KHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzaXplX3QpCit7CisgICAgaWYgKCFidWZmZXJJ
c0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBtZW1jcHkoZGF0YSwgbV9idWZmZXIuZGF0YSgpICsgbV9idWZmZXJQb3NpdGlvbiwgc2l6
ZSk7CisgICAgbV9idWZmZXJQb3NpdGlvbiArPSBzaXplOworICAgIHJldHVybiB0cnVlOworfQor
Citjb25zdCB1aW50OF90KiBEZWNvZGVyOjpkZWNvZGVGaXhlZExlbmd0aFJlZmVyZW5jZShzaXpl
X3Qgc2l6ZSwgc2l6ZV90KQoreworICAgIGlmICghYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFp
bkJ5dGVzKHNpemUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBjb25zdCB1aW50OF90
KiBkYXRhID0gbV9idWZmZXIuZGF0YSgpICsgbV9idWZmZXJQb3NpdGlvbjsKKyAgICBtX2J1ZmZl
clBvc2l0aW9uICs9IHNpemU7CisgICAgcmV0dXJuIGRhdGE7Cit9CisKK30gLy8gbmFtZXNwYWNl
IERhZW1vbgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0RhZW1vbkRlY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDA2YzQ3YjhhNTkxMjU1MTgwZTQxZmRi
N2FhY2EyMGY5ZWYyNDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvRGFlbW9uRGVjb2Rlci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCituYW1lc3BhY2UgRGFlbW9uIHsKKworY2xhc3MgRGVjb2RlciB7CitwdWJsaWM6Cisg
ICAgRGVjb2RlcihTcGFuPGNvbnN0IHVpbnQ4X3Q+IGJ1ZmZlcikKKyAgICAgICAgOiBtX2J1ZmZl
cihidWZmZXIpIHsgfQorICAgIH5EZWNvZGVyKCk7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgorICAgIERlY29kZXImIG9wZXJhdG9yPj4oc3RkOjpvcHRpb25hbDxUPiYgdCkKKyAgICB7Cisg
ICAgICAgIHQgPSBJUEM6OkFyZ3VtZW50Q29kZXI8c3RkOjpyZW1vdmVfY29uc3RfdDxzdGQ6OnJl
bW92ZV9yZWZlcmVuY2VfdDxUPj4sIHZvaWQ+OjpkZWNvZGUoKnRoaXMpOworICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBXQVJOX1VO
VVNFRF9SRVRVUk4gYm9vbCBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluKHNpemVfdCBudW1F
bGVtZW50cykgY29uc3QKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19hcml0
aG1ldGljPFQ+Ojp2YWx1ZSwgIlR5cGUgVCBtdXN0IGhhdmUgYSBmaXhlZCwga25vd24gZW5jb2Rl
ZCBzaXplISIpOworCisgICAgICAgIGlmIChudW1FbGVtZW50cyA+IHN0ZDo6bnVtZXJpY19saW1p
dHM8c2l6ZV90Pjo6bWF4KCkgLyBzaXplb2YoVCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgcmV0dXJuIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRlcyhudW1F
bGVtZW50cyAqIHNpemVvZihUKSk7CisgICAgfQorCisgICAgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVpbnQ4X3QqIGRhdGEsIHNpemVfdCwgc2l6ZV90IGFs
aWdubWVudCk7CisgICAgY29uc3QgdWludDhfdCogZGVjb2RlRml4ZWRMZW5ndGhSZWZlcmVuY2Uo
c2l6ZV90LCBzaXplX3QpOworCitwcml2YXRlOgorICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29s
IGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRlcyhzaXplX3QpIGNvbnN0OworCisgICAg
U3Bhbjxjb25zdCB1aW50OF90PiBtX2J1ZmZlcjsKKyAgICBzaXplX3QgbV9idWZmZXJQb3NpdGlv
biB7IDAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIERhZW1vbgorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29k
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTUxODYyNTgxYTBmNzQzZWY2YTY5YjA1OWViMWQ2NTQ2Y2ViMzZhNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuY3Bw
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGFlbW9uRW5jb2Rlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNl
IERhZW1vbiB7CisKK3ZvaWQgRW5jb2Rlcjo6ZW5jb2RlRml4ZWRMZW5ndGhEYXRhKGNvbnN0IHVp
bnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzaXplX3QpCit7CisgICAgbV9idWZmZXIuYXBwZW5k
KGRhdGEsIHNpemUpOworfQorCit9IC8vIG5hbWVzcGFjZSBEYWVtb24KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25F
bmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDFiNDdkMTY2NzRlYTMxZTQxOTVmYWM5Mzk3MjY1OTYxMTk2NDgyOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuaApA
QCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJB
cmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIERhZW1v
biB7CisKK2NsYXNzIEVuY29kZXIgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CisgICAgRW5jb2RlciYgb3BlcmF0b3I8PChUJiYgdCkKKyAgICB7CisgICAgICAgIElQQzo6QXJn
dW1lbnRDb2RlcjxzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+
Pj46OmVuY29kZSgqdGhpcywgc3RkOjpmb3J3YXJkPFQ+KHQpKTsKKyAgICAgICAgcmV0dXJuICp0
aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZywgdHlwZW5hbWUuLi4gQXJn
cz4KKyAgICB2b2lkIGVuY29kZShBcmcmJiBhcmcsIEFyZ3MmJi4uLiBhcmdzKQorICAgIHsKKyAg
ICAgICAgKnRoaXMgPDwgc3RkOjpmb3J3YXJkPEFyZz4oYXJnKTsKKyAgICAgICAgZW5jb2RlKHN0
ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgfQorICAgIHZvaWQgZW5jb2RlKCkgeyB9
CisKKyAgICBWZWN0b3I8dWludDhfdD4gdGFrZUJ1ZmZlcigpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFu
Z2UobV9idWZmZXIsIHsgfSk7IH0KKworICAgIHZvaWQgZW5jb2RlRml4ZWRMZW5ndGhEYXRhKGNv
bnN0IHVpbnQ4X3QqLCBzaXplX3QsIHNpemVfdCBhbGlnbm1lbnQpOworCitwcml2YXRlOgorICAg
IFZlY3Rvcjx1aW50OF90PiBtX2J1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIERhZW1vbgor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL2NvY29hL0RhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL2NvY29hL0RhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWJh
YjMyZTI4Y2E2MWM2YTNkOTQ2MGIwZjZjOGIxZjQxYzk2YTdhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvRGFlbW9uQ29ubmVjdGlvbkNvY29hLm1t
CkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJEYWVtb25Db25uZWN0aW9uLmgiCisKKyNpbXBvcnQgIkRhZW1vbkVuY29kZXIuaCIKKyNp
bXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgorI2ltcG9ydCA8d3Rm
L0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworbmFtZXNwYWNlIERhZW1vbiB7CisKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZCh4cGNfb2Jq
ZWN0X3QgbWVzc2FnZSkgY29uc3QKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwor
ICAgIEFTU0VSVChtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUo
bWVzc2FnZSkgPT0gWFBDX1RZUEVfRElDVElPTkFSWSk7CisgICAgeHBjX2Nvbm5lY3Rpb25fc2Vu
ZF9tZXNzYWdlKG1fY29ubmVjdGlvbi5nZXQoKSwgbWVzc2FnZSk7Cit9CisKK3ZvaWQgQ29ubmVj
dGlvbjo6c2VuZFdpdGhSZXBseSh4cGNfb2JqZWN0X3QgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCh4cGNfb2JqZWN0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAoreworICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgQVNTRVJUKG1fY29ubmVjdGlvbi5nZXQo
KSk7CisgICAgQVNTRVJUKHhwY19nZXRfdHlwZShtZXNzYWdlKSA9PSBYUENfVFlQRV9ESUNUSU9O
QVJZKTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0aF9yZXBseShtX2Nvbm5l
Y3Rpb24uZ2V0KCksIG1lc3NhZ2UsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIG1ha2VCbG9j
a1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKHhw
Y19vYmplY3RfdCByZXBseSkgbXV0YWJsZSB7CisgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlcGx5KTsKKyAgICB9KS5nZXQoKSk7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4KK3ZvaWQgQ29ubmVjdGlvblRvTWFjaFNl
cnZpY2U8VHJhaXRzPjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIG1fY29ubmVjdGlvbiA9
IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZShtX21hY2hTZXJ2aWNl
TmFtZS5kYXRhKCksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIDApKTsKKyAgICB4cGNfY29u
bmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCksIFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9XSh4cGNfb2JqZWN0X3QgZXZlbnQpIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19F
UlJPUl9DT05ORUNUSU9OX0lOVkFMSUQpCisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxl
ZCB0byBjb25uZWN0IHRvIG1hY2ggc2VydmljZSAlcywgbGlrZWx5IGJlY2F1c2UgaXQgaXMgbm90
IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hkIiwgd2Vha1RoaXMtPm1fbWFjaFNlcnZpY2VOYW1lLmRh
dGEoKSk7CisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlRFUlJV
UFRFRCkgeworICAgICAgICAgICAgLy8gRGFlbW9uIGNyYXNoZWQsIHdlIHdpbGwgbmVlZCB0byBt
YWtlIGEgbmV3IGNvbm5lY3Rpb24gdG8gYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhZW1vbi4KKyAg
ICAgICAgICAgIHdlYWtUaGlzLT5tX2Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgICAgICB9Cisg
ICAgICAgIHdlYWtUaGlzLT5jb25uZWN0aW9uUmVjZWl2ZWRFdmVudChldmVudCk7CisgICAgfSk7
CisgICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZhdGUobV9jb25uZWN0aW9uLmdldCgpKTsKKyAgICAK
KyAgICBuZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQoKTsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVHJhaXRzPgordm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+OjpzZW5kKHR5
cGVuYW1lIFRyYWl0czo6TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYg
bWVzc2FnZSkgY29uc3QKK3sKKyAgICBpbml0aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCk7Cisg
ICAgQ29ubmVjdGlvbjo6c2VuZChkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIFdU
Rk1vdmUobWVzc2FnZSkpLmdldCgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRzPgor
dm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+OjpzZW5kV2l0aFJlcGx5KHR5cGVu
YW1lIFRyYWl0czo6TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVz
c2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgY29uc3QKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAg
IGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKTsKKworICAgIENvbm5lY3Rpb246OnNlbmRX
aXRoUmVwbHkoZGljdGlvbmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKG1lc3Nh
Z2UpKS5nZXQoKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICh4cGNfb2JqZWN0X3QgcmVwbHkpIG11dGFibGUgeworICAgICAgICBpZiAoeHBjX2dldF90
eXBlKHJlcGx5KSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKSB7CisgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0p
OworICAgICAgICB9CisgICAgICAgIGlmICh4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHJlcGx5
LCBUcmFpdHM6OnByb3RvY29sVmVyc2lvbktleSkgIT0gVHJhaXRzOjpwcm90b2NvbFZlcnNpb25W
YWx1ZSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgfQorICAgICAgICBzaXplX3Qg
ZGF0YVNpemUgeyAwIH07CisgICAgICAgIGNvbnN0IHZvaWQqIGRhdGEgPSB4cGNfZGljdGlvbmFy
eV9nZXRfZGF0YShyZXBseSwgVHJhaXRzOjpwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5LCAmZGF0
YVNpemUpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQ4X3QqPihkYXRhKSwgZGF0YVNpemUgfSk7CisgICAgfSk7Cit9CisKK3RlbXBsYXRlIGNsYXNz
IENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFBDTTo6Q29ubmVjdGlvblRyYWl0cz47CisKK30gLy8g
bmFtZXNwYWNlIERhZW1vbgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURh
ZW1vbkNvbm5lY3Rpb25TZXQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQuaAppbmRleCA4ZTEzNDI3
MDhjY2FiZjViZDk5ZDk0MTQ1MjVmZDA4NDI3ZjllOWVjLi45YTJlODhkNzNiZjMxNzBkZWU1MjQ1
ZjE1MTFkMzIyYTNjMDE0ZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24v
UENNRGFlbW9uQ29ubmVjdGlvblNldC5oCkBAIC0zNCw5ICszNCwxMCBAQCBlbnVtIGNsYXNzIE1l
c3NhZ2VMZXZlbCA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotbmFtZXNwYWNl
IFBDTSB7Ci0KK25hbWVzcGFjZSBEYWVtb24gewogY2xhc3MgQ29ubmVjdGlvbjsKK30KK25hbWVz
cGFjZSBQQ00gewogCiBjbGFzcyBEYWVtb25Db25uZWN0aW9uU2V0IHsKIHB1YmxpYzoKQEAgLTQ1
LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkKHhwY19jb25uZWN0aW9uX3QpOwogICAg
IHZvaWQgcmVtb3ZlKHhwY19jb25uZWN0aW9uX3QpOwogCi0gICAgdm9pZCBzZXRDb25uZWN0ZWRO
ZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQoY29uc3QgQ29ubmVjdGlvbiYsIGJvb2wp
OworICAgIHZvaWQgc2V0Q29ubmVjdGVkTmV0d29ya1Byb2Nlc3NIYXNEZWJ1Z01vZGVFbmFibGVk
KGNvbnN0IERhZW1vbjo6Q29ubmVjdGlvbiYsIGJvb2wpOwogICAgIGJvb2wgZGVidWdNb2RlRW5h
YmxlZCgpIGNvbnN0OwogICAgIHZvaWQgYnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVj
dGlvblNldC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQubW0KaW5kZXggNTQ1ZTBkOTZhNzIyMGIz
ZDNlMzA5YjFlZTNmZDIxMmQ3MmUxZjNjOS4uZWY4MDFmYWEzOTczOTBlZTU0Y2NlODE5ZThhZTk0
OTZjNzRmZWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVjdGlvblNldC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVt
b25Db25uZWN0aW9uU2V0Lm1tCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgRGFlbW9uQ29ubmVjdGlv
blNldDo6cmVtb3ZlKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbikKICAgICB9CiB9CiAKLXZv
aWQgRGFlbW9uQ29ubmVjdGlvblNldDo6c2V0Q29ubmVjdGVkTmV0d29ya1Byb2Nlc3NIYXNEZWJ1
Z01vZGVFbmFibGVkKGNvbnN0IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGJvb2wgZW5hYmxlZCkK
K3ZvaWQgRGFlbW9uQ29ubmVjdGlvblNldDo6c2V0Q29ubmVjdGVkTmV0d29ya1Byb2Nlc3NIYXNE
ZWJ1Z01vZGVFbmFibGVkKGNvbnN0IERhZW1vbjo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgYm9v
bCBlbmFibGVkKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX2Nvbm5lY3Rpb25zLmZpbmQoY29u
bmVjdGlvbi5nZXQoKSk7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fY29ubmVjdGlvbnMuZW5kKCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1t
CmluZGV4IGVkMjMwMDUzMzFiOTU4ZDVlNDYxMDY0OTg5ZjVhZDg1OTBiMGUzZGEuLjFkYTY4ZWM1
MzY5M2EwYTY5YTU3OTZlY2Q1ZDZhN2IxMzg4NmY3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5
UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQpAQCAtMjYsOSArMjYsOSBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJQQ01EYWVtb25FbnRyeVBvaW50LmgiCiAKKyNpbXBv
cnQgIkRhZW1vbkRlY29kZXIuaCIKICNpbXBvcnQgIlBDTURhZW1vbkNvbm5lY3Rpb25TZXQuaCIK
ICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgotI2ltcG9ydCAi
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCiAjaW1wb3J0ICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaCIKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1
cmVtZW50WFBDVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
QEAgLTY5LDggKzY5LDggQEAgc3RhdGljIHZvaWQgY29ubmVjdGlvbkV2ZW50SGFuZGxlcih4cGNf
b2JqZWN0X3QgcmVxdWVzdCkKICAgICBhdXRvIG1lc3NhZ2VUeXBlIHsgc3RhdGljX2Nhc3Q8UENN
OjpNZXNzYWdlVHlwZT4oeHBjX2RpY3Rpb25hcnlfZ2V0X3VpbnQ2NChyZXF1ZXN0LCBQQ006OnBy
b3RvY29sTWVzc2FnZVR5cGVLZXkpKSB9OwogICAgIHNpemVfdCBkYXRhU2l6ZSB7IDAgfTsKICAg
ICBjb25zdCB2b2lkKiBkYXRhID0geHBjX2RpY3Rpb25hcnlfZ2V0X2RhdGEocmVxdWVzdCwgUENN
Ojpwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5LCAmZGF0YVNpemUpOwotICAgIFBDTTo6RW5jb2Rl
ZE1lc3NhZ2UgZW5jb2RlZE1lc3NhZ2UgeyBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0
YSksIGRhdGFTaXplIH07Ci0gICAgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoUENNOjpD
b25uZWN0aW9uKHhwY19kaWN0aW9uYXJ5X2dldF9yZW1vdGVfY29ubmVjdGlvbihyZXF1ZXN0KSks
IG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgcmVwbHlTZW5kZXIobWVzc2Fn
ZVR5cGUsIHJlcXVlc3QpKTsKKyAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdl
IHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBkYXRhU2l6ZSB9OworICAgIGRl
Y29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKERhZW1vbjo6Q29ubmVjdGlvbih4cGNfZGljdGlv
bmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24ocmVxdWVzdCkpLCBtZXNzYWdlVHlwZSwgZW5jb2Rl
ZE1lc3NhZ2UsIHJlcGx5U2VuZGVyKG1lc3NhZ2VUeXBlLCByZXF1ZXN0KSk7CiB9CiAKIHN0YXRp
YyB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyhjb25zdCBjaGFy
KiBzZXJ2aWNlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3Vt
ZW50Q29kZXJzQ0YuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnND
Ri5jcHAKaW5kZXggZTMyODdjZmE2YWNhNTM5OTk5NjEyMjRjZjk4ZjI3ZjhmNmQxN2YyMi4uMjY3
NzZkZjVmZDM2ZDYxNTE4NDQ2ZjA5YmFjYjEwZDZhNzA3ZWMxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKQEAgLTI5LDExICsyOSwxMSBAQAogI2lu
Y2x1ZGUgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgi
CisjaW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIK
ICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1
ZGUgIkVuY29kZXIuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIu
aCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRl
ICJTdHJlYW1Db25uZWN0aW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3Jl
R3JhcGhpY3MuaD4KICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgpAQCAtNDE5LDcgKzQxOSw3
IEBAIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPENGRGF0YVJlZj4+OjpkZWNvZGUoCiB9CiAKIHRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8
UmV0YWluUHRyPENGRGF0YVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGRGF0YVJlZj4+
OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwotdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRh
aW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj46OmRl
Y29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsKK3RlbXBs
YXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPENGRGF0YVJlZj4+OjpkZWNvZGU8V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktp
dDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lk
IEFyZ3VtZW50Q29kZXI8Q0ZEYXRlUmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGRGF0
ZVJlZiBkYXRlKQpAQCAtODQwLDcgKzg0MCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVz
dFJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBTZWNUcnVzdFJlZiB0cnVzdCkKIH0KIAog
dGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6ZW5jb2RlPEVuY29kZXI+
KEVuY29kZXImLCBTZWNUcnVzdFJlZik7Ci10ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2Vj
VHJ1c3RSZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNv
ZGVyJiwgU2VjVHJ1c3RSZWYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0
UmVmPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5j
b2RlciYsIFNlY1RydXN0UmVmKTsKIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVz
dFJlZj46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVu
Y29kZXImLCBTZWNUcnVzdFJlZik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CkBAIC04
NjcsNyArODY3LDcgQEAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiBBcmd1
bWVudENvZGVyPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+OjpkZWMKIH0KIAogdGVtcGxhdGUgc3Rk
OjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0
cjxTZWNUcnVzdFJlZj4+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwotdGVtcGxhdGUgc3Rk
OjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0
cjxTZWNUcnVzdFJlZj4+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6UENN
OjpEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJl
Zj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVmPj46OmRlY29kZTxXZWJLaXQ6
OkRhZW1vbjo6RGVjb2Rlcj4oV2ViS2l0OjpEYWVtb246OkRlY29kZXImKTsKICNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJs
L1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCmluZGV4IGQ1NGJhZjRjNWY5MWNjMWMwMjUz
Mzk0NzBiNzkxMjIxMjZlN2VkNTYuLjZmYzU0NDM0ODI1M2YxMDg1MmFhZGI1N2VlMmJiZTRhMTBh
OWJmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNDdXJsLmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCisjaW5jbHVkZSAiRGFl
bW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgi
Ci0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cmxQcm94eVNl
dHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg+CkBAIC02
Miw3ICs2Miw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJCiAgICAgICAgIGVuY29kZXIgPDwg
Y2VydGlmaWNhdGU7CiB9CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKTsKLXRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENN
OjpFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7Cit0ZW1wbGF0ZSB2
b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlPFdlYktp
dDo6RGFlbW9uOjpFbmNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbyYpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3Rk
OjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZv
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCkBAIC05MCw3ICs5MCw3IEBAIHN0ZDo6b3B0aW9u
YWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29k
ZShEZWNvZGVyJiBkCiAgICAgcmV0dXJuIENlcnRpZmljYXRlSW5mbyB7ICp2ZXJpZmljYXRpb25F
cnJvciwgV1RGTW92ZShjZXJ0aWZpY2F0ZUNoYWluKSB9OwogfQogdGVtcGxhdGUgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQ
Q006OkRlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmRlY29kZTxX
ZWJLaXQ6OkRhZW1vbjo6RGVjb2Rlcj4oV2ViS2l0OjpEYWVtb246OkRlY29kZXImKTsKIAogdm9p
ZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1lbnRDb2RlcnNHTGliLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1lbnRDb2RlcnNHTGliLmNwcAppbmRleCA5
ZjQ0MjM5OGRmZTU5ZGYwNmI0ZWU2YjA0MmQxN2Q2OWRiOGY5YzU0Li45MDFjMDMxMjRiODIzYjU0
NGM2MWViODA2ZTYwNDA0ZDc1YWNiZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Z2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNHTGliLmgiCiAKKyNpbmNsdWRlICJE
YWVtb25EZWNvZGVyLmgiCisjaW5jbHVkZSAiRGFlbW9uRW5jb2Rlci5oIgogI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIu
aCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRl
IDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIEdS
ZWZQdHI8RwogICAgIH0KIH0KIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdU
bHNDZXJ0aWZpY2F0ZT4+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIEdSZWZQdHI8R1Rsc0Nl
cnRpZmljYXRlPik7Ci10ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2Vy
dGlmaWNhdGU+Pjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5j
b2RlciYsIEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50
Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+Pjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpF
bmNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRl
Pik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPEdSZWZQdHI8
R1Rsc0NlcnRpZmljYXRlPj4gQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKQEAgLTE2NCw2ICsxNjQsNiBAQCBzdGQ6Om9wdGlv
bmFsPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4gQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHND
ZXJ0aWZpY2F0ZT4+OgogICAgIHJldHVybiBjZXJ0aWZpY2F0ZTsKIH0KIHRlbXBsYXRlIHN0ZDo6
b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8
R1Rsc0NlcnRpZmljYXRlPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0ZSBz
dGQ6Om9wdGlvbmFsPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4gQXJndW1lbnRDb2RlcjxHUmVm
UHRyPEdUbHNDZXJ0aWZpY2F0ZT4+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktp
dDo6UENNOjpEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPEdSZWZQdHI8R1Rsc0Nl
cnRpZmljYXRlPj4gQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+OjpkZWNv
ZGU8V2ViS2l0OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAK
IH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KaW5kZXggNmE0MzQwNjcxNDYzZDk0NzA3MTkyMzEw
YjFmN2JhMGJkMDNhNzZmNi4uYTRjYjhjOWQ2NjQwM2YzMDRiNWUwNmY3MjljY2U2OTRmNzQzNjkz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENv
ZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzTWFjLm1tCkBAIC0yOSw5ICsyOSw5IEBACiAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJz
Q0YuaCIKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKKyNpbXBvcnQgIkRhZW1vbkRl
Y29kZXIuaCIKKyNpbXBvcnQgIkRhZW1vbkVuY29kZXIuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVu
Y2UuaCIKLSNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2ltcG9y
dCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Nl
cnRpZmljYXRlSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgpAQCAtNjcsNyArNjcsNyBA
QCB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFdlYgogfQogCiB0ZW1wbGF0ZTw+Ci12b2lkIEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKFdlYktpdDo6UENNOjpFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNv
ZGUoV2ViS2l0OjpEYWVtb246OkVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIEFTU0VSVChjZXJ0aWZpY2F0ZUlu
Zm8udHlwZSgpID09IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbzo6VHlwZTo6VHJ1c3QpOwogICAg
IGVuY29kZXIgPDwgY2VydGlmaWNhdGVJbmZvLnRydXN0KCk7CkBAIC0xMDksNyArMTA5LDcgQEAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvPjoKIH0KIAogdGVtcGxhdGU8Pgotc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvPjo6ZGVjb2RlKFdlYktpdDo6UENNOjpEZWNvZGVyJiBkZWNvZGVyKQorc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvPjo6ZGVjb2RlKFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gdHJ1c3Q7CiAgICAg
ZGVjb2RlciA+PiB0cnVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDA0M2IzMDg4N2YwMDgxZGY3ZjEz
YTVmYjc5ZjMwYTQ4YzhhZjFmODkuLjI5NzNhMmJhYjZjYThiMDIzMzI1Y2IwMDFlMjA3M2FkZjFm
MDQwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNTb3VwLmNwcApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNHTGliLmgiCisj
aW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8uaD4K
QEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUkKICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PHVpbnQzMl90PihjZXJ0aWZpY2F0ZUluZm8udGxzRXJyb3JzKCkpOwogfQog
dGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZTxFbmNv
ZGVyPihFbmNvZGVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJik7Ci10ZW1wbGF0ZSB2b2lkIEFy
Z3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVy
PihXZWJLaXQ6OlBDTTo6RW5jb2RlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwordGVtcGxh
dGUgdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZTxXZWJLaXQ6OkRh
ZW1vbjo6RW5jb2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBjb25zdCBDZXJ0aWZpY2F0
ZUluZm8mKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8Q2Vy
dGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQpAQCAtOTEsNyArOTEsNyBAQCBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRl
SW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZAog
ICAgIHJldHVybiBjZXJ0aWZpY2F0ZUluZm87CiB9CiB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPENl
cnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8RGVj
b2Rlcj4oRGVjb2RlciYpOwotdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNv
ZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxDZXJ0
aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlPFdlYktp
dDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogCiB2b2lkIEFy
Z3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
aW5kZXggYTQ1MGFkNTMzYWQ2OWMxZTgxZmQ1N2E2NWU2YzM3Njg3Y2NkNjhjNy4uNTUzMTljYmI1
N2FlNGFiYWQzZTMyZGZiZmRiNWZmMmE4Yzc0MTU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xMDYsOCAr
MTA2LDYgQEAgTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHAKIE5ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ2xpZW50LmNwcAotTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcAotTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRFbmNvZGVyLmNwcAogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCiAKIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgQG5vLXVuaWZ5CkBAIC0xNjIs
NiArMTYwLDkgQEAgUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmNwcCBAbm8tdW5pZnkKIFBsYXRmb3Jt
L0lQQy9Bcmd1bWVudENvZGVycy5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvQXR0YWNobWVu
dC5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CitQ
bGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5jcHAKK1BsYXRmb3JtL0lQQy9EYWVtb25EZWNv
ZGVyLmNwcAorUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuY3BwCiBQbGF0Zm9ybS9JUEMvRGVj
b2Rlci5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAgQG5vLXVuaWZ5CiBQ
bGF0Zm9ybS9JUEMvSlNJUENCaW5kaW5nLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAppbmRleCBjNWQ2MzYxZGJjMThhMTA2M2YzYWZlOGRhYjMzNmE1MGEwNjEzOTYwLi4wNTc4ODNh
YjAwY2ZkNzAwYjJlNDEzNmEyYzczZWYwZDk0MjBiZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CkBAIC05Niw2ICs5Niw3IEBAIFBsYXRmb3JtL2lvcy9BY2Nlc3NpYmlsaXR5SU9TLm1tCiBQbGF0
Zm9ybS9pb3MvUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyLm1tCiAKIFBsYXRmb3JtL0lQ
Qy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0KK1BsYXRmb3JtL0lQQy9jb2NvYS9EYWVtb25Db25u
ZWN0aW9uQ29jb2EubW0KIFBsYXRmb3JtL0lQQy9jb2NvYS9NYWNoTWVzc2FnZS5jcHAKIAogUGxh
dGZvcm0vSVBDL2Rhcndpbi9JUENTZW1hcGhvcmVEYXJ3aW4uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNDcxZDkzMThmNDU5YjBi
NDFjZGQxZTI1MGI3N2RhN2UxMDkxNDAxLi5lMDU3MjM4NzU0Y2FjM2YxMjMyYmVmMTljYmEyMmUw
NGU5NDgyNzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEyNTYsNiArMTI1Niw4IEBACiAJCTVDMTQyNzA3MUMyM0Y4NEMwMEQ0MTE4
MyAvKiBEb3dubG9hZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDMTQyNkY5MUMyM0Y4NDMwMEQ0MTE4MyAvKiBEb3dubG9hZE1hbmFnZXIu
aCAqLzsgfTsKIAkJNUMxNDI3MTgxQzIzRjhCNzAwRDQxMTgzIC8qIExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUMxNDI3MTQxQzIzRjhCMDAwRDQxMTgzIC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ci5oICovOyB9OwogCQk1QzE1NzlEQzI3MTY1QjgyMDBFRDUyODAgLyogd2VicHVzaGQuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTU3OURCMjcxNjVC
NzUwMEVENTI4MCAvKiB3ZWJwdXNoZC5jICovOyB9OworCQk1QzE1NzlFRTI3MTcyQThCMDBFRDUy
ODAgLyogRGFlbW9uRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUMxNTc5RUEyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIuaCAq
LzsgfTsKKwkJNUMxNTc5RUYyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRlY29kZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTU3OUVCMjcxNzJB
OEIwMEVENTI4MCAvKiBEYWVtb25EZWNvZGVyLmggKi87IH07CiAJCTVDMTlBNTIwMUZEMEIyOTUw
MEVFQTMyMyAvKiBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxOUE1MUYxRkQwQjE0NzAwRUVBMzIzIC8qIFVS
TFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmggKi87IH07CiAJCTVDMjBDQkEwMUJCMUVDRDgwMDg5NUJC
MSAvKiBOZXR3b3JrU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUMyMENCOUUxQkIwREQxODAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmgg
Ki87IH07CiAJCTVDMjY5NTg1MjAwNDMyMTIwMDVDNDM5QiAvKiBXS09wZW5QYW5lbFBhcmFtZXRl
cnNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzI2OTU4NDIwMDQyRjEyMDA1QzQzOUIgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00
NTM1LDYgKzQ1MzcsMTMgQEAKIAkJNUMxNTc5REEyNzE2NUIyRjAwRUQ1MjgwIC8qIHdlYnB1c2hk
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSB3ZWJwdXNo
ZDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNUMxNTc5REIyNzE2NUI3
NTAwRUQ1MjgwIC8qIHdlYnB1c2hkLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHdlYnB1c2hkLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMTU3OUREMjcxNjVCRTUwMEVENTI4MCAvKiB3ZWJw
dXNoZC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSB3ZWJwdXNoZC54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RTIyNzE3MkE0OTAwRUQ1MjgwIC8qIERhZW1vbkNv
bm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGFlbW9u
Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDMTU3OUUzMjcx
NzJBNDkwMEVENTI4MCAvKiBEYWVtb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhZW1vbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNUMxNTc5RTYyNzE3MkE1MTAwRUQ1MjgwIC8qIERhZW1vbkNvbm5lY3Rpb25Db2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhZW1vbkNvbm5lY3Rp
b25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RTgyNzE3MkE4
QTAwRUQ1MjgwIC8qIERhZW1vbkVuY29kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRGFlbW9uRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTVDMTU3OUU5MjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25EZWNvZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhZW1vbkRlY29kZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlFQTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9u
RW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYWVtb25FbmNvZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDMTU3OUVCMjcxNzJBOEIwMEVENTI4
MCAvKiBEYWVtb25EZWNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERh
ZW1vbkRlY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MUUxRkQw
QjE0NjAwRUVBMzIzIC8qIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MUYxRkQwQjE0NzAwRUVBMzIzIC8qIFVS
TFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDMUIzOERGMjY2NzE0MDcwMEIxNTQ1QiAvKiBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00NjM5LDE0ICs0NjQ4LDEwIEBACiAJCTVDQjkzMEY1MjZFODAyMTUw
MDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGNjI2RTgwMjE1MDAz
MkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRjcyNkU4MDIxNTAwMzJC
MUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9u
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNCOTMwRjgyNkU4MDIx
NTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1Q0I5MzBGOTI2RTgwMjE1MDAz
MkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEZBMjZFODAyMTUwMDMyQjFD
MCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50
ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEZCMjZFODAyMTUw
MDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEZDMjZF
ODAyMTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNCOTMwRkQy
NkU4MDIxNjAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRkUyNkU4MDIxNjAwMzJC
MUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNCOTMwRkYyNkU4MDIxNjAwMzJCMUMwIC8q
IFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMxMDQyNkU4MzdGQzAwMzJCMUMwIC8qIFBDTURhZW1vbkVu
dHJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUENNRGFlbW9uRW50
cnlQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzEwNTI2RTgzN0ZE
MDAzMkIxQzAgLyogUENNRGFlbW9uRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFBDTURhZW1vbkVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDQjkzMTA2MjZFODM5QTkwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTczNjksNiArNzM3NCwxMiBAQAogCQkJCUJD
RUU5NjZCMTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50LmggKi8sCiAJCQkJQkMwMzJEQTIx
MEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uY3BwICovLAogCQkJCUJDMDMyREEzMTBGNDM3
RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmggKi8sCisJCQkJNUMxNTc5RTIyNzE3MkE0OTAwRUQ1
MjgwIC8qIERhZW1vbkNvbm5lY3Rpb24uY3BwICovLAorCQkJCTVDMTU3OUUzMjcxNzJBNDkwMEVE
NTI4MCAvKiBEYWVtb25Db25uZWN0aW9uLmggKi8sCisJCQkJNUMxNTc5RTkyNzE3MkE4QjAwRUQ1
MjgwIC8qIERhZW1vbkRlY29kZXIuY3BwICovLAorCQkJCTVDMTU3OUVCMjcxNzJBOEIwMEVENTI4
MCAvKiBEYWVtb25EZWNvZGVyLmggKi8sCisJCQkJNUMxNTc5RTgyNzE3MkE4QTAwRUQ1MjgwIC8q
IERhZW1vbkVuY29kZXIuY3BwICovLAorCQkJCTVDMTU3OUVBMjcxNzJBOEIwMEVENTI4MCAvKiBE
YWVtb25FbmNvZGVyLmggKi8sCiAJCQkJMUFDNzUzN0UxODNCRTUwRjAwNzJDQjE1IC8qIERhdGFS
ZWZlcmVuY2UuaCAqLywKIAkJCQlCQzAzMkQ5RDEwRjQzN0QxMDA1OEMxNUEgLyogRGVjb2Rlci5j
cHAgKi8sCiAJCQkJQkMwMzJEOUUxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuaCAqLywKQEAg
LTk0MzcsMTAgKzk0NDgsNiBAQAogCQkJCTVDODI2RDY5MjZENDgyRUEwMDhBRUM5MSAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmggKi8sCiAJCQkJNUNCRTkwOTAyNkQ3RkI3QzAw
NUEyRTk1IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdJbmZvLmNwcCAqLywKIAkJCQk1
Q0JFOTA4RjI2RDdGQjYyMDA1QTJFOTUgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0lu
Zm8uaCAqLywKLQkJCQk1Q0I5MzBGODI2RTgwMjE1MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREZWNvZGVyLmNwcCAqLywKLQkJCQk1Q0I5MzBGRDI2RTgwMjE2MDAzMkIxQzAgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmggKi8sCi0JCQkJNUNCOTMwRjkyNkU4MDIx
NTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAgKi8sCi0JCQkJ
NUNCOTMwRkYyNkU4MDIxNjAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rl
ci5oICovLAogCQkJCTZCRDA1ODY0MjIwQ0U4QzIwMDBCRUQ1QyAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuY3BwICovLAogCQkJCTZCRDA1ODYzMjIwQ0U4QzIwMDBCRUQ1QyAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCAqLywKIAkJCQk1Q0I5MzEwNjI2RTgzOUE5
MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcCAq
LywKQEAgLTExMTcxLDYgKzExMTc4LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJMUEzMEVBQzUxMTVEN0RBMzAwNTNFOTM3IC8qIENvbm5lY3Rpb25Db2NvYS5t
bSAqLywKKwkJCQk1QzE1NzlFNjI3MTcyQTUxMDBFRDUyODAgLyogRGFlbW9uQ29ubmVjdGlvbkNv
Y29hLm1tICovLAogCQkJCTFBMUVDNjlEMTg3MjA5MjEwMEI5NTFGMCAvKiBJbXBvcnRhbmNlQXNz
ZXJ0aW9uLmggKi8sCiAJCQkJMUE2RDg2QkYxREY3NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdl
LmNwcCAqLywKIAkJCQkxQTZEODZDMDFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2UuaCAq
LywKQEAgLTEyMzExLDYgKzEyMzE5LDggQEAKIAkJCQk1NzU5N0VCRDIxODE4NDkwMDAzN0Y5MjQg
LyogQ3RhcEF1dGhlbnRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NTk3RUI5MjE4MTFE
OUEwMDM3RjkyNCAvKiBDdGFwSGlkRHJpdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzBEQUFD
QTIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NUMxNTc5RUYyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkRlY29kZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTVDMTU3OUVFMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDNTVGOTE3MTFDNTk2NzZFMDAyOUU5MkQgLyogRGF0YURldGVjdGlvblJl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDNzUzODAxODNCRTUwRjAwNzJDQjE1IC8qIERh
dGFSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5MDM2QUU5MjNBOTcwODcwMDAwQjA2
QSAvKiBEZWJ1Z2dhYmxlSW5mb0RhdGEuaCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441134</attachid>
            <date>2021-10-13 14:21:22 -0700</date>
            <delta_ts>2021-10-13 15:16:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231680-20211013152121.patch</filename>
            <type>text/plain</type>
            <size>88614</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0NDg2NWU4NjRmMDNlMDcz
ZjQ3ZDQwOTc4MTE1ODlkM2MzN2JkZTUuLjk4NDFjNmIyZmEyYWE0NTcyMzBiM2U4MmYwZDM2Nzg1
MzkwYjhlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMTAtMTMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmVwYXJlIGFk
YXR0cmlidXRpb25kIENvbm5lY3Rpb24gYW5kIElQQyBjb2RlIGZvciByZXVzZSB3aXRoIHdlYnB1
c2hkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2
ODAKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgSSBtb3Zl
IENvbm5lY3Rpb24sIEVuY29kZXIsIGFuZCBEZWNvZGVyIG91dCBvZiBuYW1lc3BhY2UgUENNIGFu
ZCBpbnRvIG5hbWVzcGFjZSBEYWVtb24gYW5kIGtlZXAgdGhlIFBDTSBwYXJ0cyBpbiBQQ006OkNv
bm5lY3Rpb24uCisgICAgICAgIEkgcmVtb3ZlIGFuIHVubmVjZXNzYXJ5IG1lbW9yeSBjb3B5IGJ5
IHVzaW5nIGEgU3BhbiBpbnN0ZWFkIG9mIGEgVmVjdG9yIGZvciBkZWNvZGluZy4KKyAgICAgICAg
SSBtYWtlIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlIGEgdGVtcGxhdGUgdG8gYmUgdXNlZCB3aXRo
IGEgZGlmZmVyZW50IGNvbW11bmljYXRpb24gcHJvdG9jb2wgZm9yIGNvbW11bmljYXRpbmcgd2l0
aCB3ZWJwdXNoZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBDTTo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBD
TTo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2Vu
ZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U6OnNlbmRXaXRoUmVwbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OkNvbm5lY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OmdldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UENNOjpNZXNzYWdlSW5mbzo6dG9TdHJpbmdGb3JUZXN0aW5nOjplbmNvZGVS
ZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9kZUlzRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6aGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJveHk6OnNlbmRNZXNzYWdlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpSZXBseUNhbGxlcjw+OjpjYWxsUmVwbHkpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OlJlcGx5Q2FsbGVyPFN0cmluZz46OmNhbGxSZXBseSk6CisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6TWFuYWdlclByb3h5OjpzZW5kTWVzc2FnZVdpdGhSZXBseSBjb25z
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0aW9uOjpu
ZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQQ006
OkNvbm5lY3Rpb246OmNvbm5lY3Rpb25SZWNlaXZlZEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UENNOjpDb25uZWN0aW9uOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjppbml0aWFsaXplQ29u
bmVjdGlvbklmTmVlZGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZERlYnVnTW9kZUlzRW5hYmxlZE1lc3NhZ2VJZk5l
Y2Vzc2FyeSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q29ubmVjdGlv
blRvTWFjaFNlcnZpY2U6OmNoZWNrRm9yRGVidWdNZXNzYWdlQnJvYWRjYXN0IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQQ006OkNvbm5lY3Rpb25Ub01hY2hTZXJ2
aWNlOjpzZW5kIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UENNOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTo6c2VuZFdpdGhSZXBseSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvRGFlbW9uQ29ubmVjdGlvbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRF
bmNvZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25uZWN0aW9uVG9NYWNoU2Vy
dmljZTxUcmFpdHM+OjpzZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RGFlbW9uOjpDb25u
ZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+OjpzZW5kV2l0aFJlcGx5IGNvbnN0KToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29ubmVjdGlvbi5oLgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5l
Y3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEYWVtb246OkNvbm5lY3Rpb246
OmdldCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNl
cnZpY2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMv
RGFlbW9uRGVjb2Rlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rl
ci5jcHAuCisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkRlY29kZXIuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmguCisgICAgICAgIChXZWJLaXQ6OkRhZW1v
bjo6RGVjb2Rlcjo6RGVjb2Rlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29k
ZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwLgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RW5jb2Rlci5oLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9EYWVt
b25Db25uZWN0aW9uQ29jb2EubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb25uZWN0aW9uQ29jb2EubW0uCisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlv
bjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvbjo6c2Vu
ZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRv
TWFjaFNlcnZpY2U8VHJhaXRzPjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRz
Pjo6c2VuZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRhZW1vbjo6Q29ubmVjdGlvblRvTWFj
aFNlcnZpY2U8VHJhaXRzPjo6c2VuZFdpdGhSZXBseSBjb25zdCk6CisgICAgICAgICogU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQu
aDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENN
RGFlbW9uQ29ubmVjdGlvblNldC5tbToKKyAgICAgICAgKFdlYktpdDo6UENNOjpEYWVtb25Db25u
ZWN0aW9uU2V0OjpzZXRDb25uZWN0ZWROZXR3b3JrUHJvY2Vzc0hhc0RlYnVnTW9kZUVuYWJsZWQp
OgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01E
YWVtb25FbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25uZWN0aW9uRXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHA6CisgICAgICAg
ICogU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW06CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUp
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTAtMTMg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgV1RGOjpWYXJpYW50IGFuZCBXVEY6OmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3Bw
CmluZGV4IGE2ZTVmM2VmOGYxNjg2YjA0MTA2YjRlZTUxM2IxZGJlMDg5MmYzNzUuLjJjNjFiYTU1
ZDFlYWFjNGVmNDljYjFlNTI4MDgzNzhiMGJiZDkyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlv
bi5jcHAKQEAgLTI2LDMwICsyNiwyMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50Q29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENNIHsKIAotQ29ubmVjdGlvblRvTWFjaFNlcnZp
Y2U6OkNvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUsIE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbikKLSAgICA6IG1fbWFjaFNlcnZpY2VOYW1lKFdU
Rk1vdmUobWFjaFNlcnZpY2VOYW1lKSkKLSAgICAsIG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQ
dHIobmV0d29ya1Nlc3Npb24pKSB7IH0KLQotI2lmICFQTEFURk9STShDT0NPQSkKLQotdm9pZCBD
b25uZWN0aW9uVG9NYWNoU2VydmljZTo6c2VuZChNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2Um
JikgY29uc3QKK0Nvbm5lY3Rpb246OkNvbm5lY3Rpb24oQ1N0cmluZyYmIG1hY2hTZXJ2aWNlTmFt
ZSwgTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uKQorICAgIDogRGFlbW9uOjpDb25uZWN0
aW9uVG9NYWNoU2VydmljZTxDb25uZWN0aW9uVHJhaXRzPihXVEZNb3ZlKG1hY2hTZXJ2aWNlTmFt
ZSkpCisgICAgLCBtX25ldHdvcmtTZXNzaW9uKG5ldHdvcmtTZXNzaW9uKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmRXaXRo
UmVwbHkoTWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CisjaWYgIVBM
QVRGT1JNKENPQ09BKQordm9pZCBDb25uZWN0aW9uOjpuZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6
ZWQoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsKIH0KLQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25u
ZWN0aW9uLmgKaW5kZXggMDMwMjY3MmFjOGIyYWM4YTRiZjZhZTJhOTZhMjNlOTVkYzQxOTgwYy4u
MzU2OTljYzdmZTg1OTU4MmE1ZjkzNDcyODJmMDgzZDQ2MzNmYzFhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5oCkBAIC0yNSwxNSArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQotI2lm
IFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3
dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLSNlbmRpZgorI2luY2x1ZGUgIkRhZW1vbkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2Uu
aCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQyLDM3ICszNSwyNiBAQCBjbGFzcyBOZXR3
b3JrU2Vzc2lvbjsKIG5hbWVzcGFjZSBQQ00gewogCiBlbnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDog
dWludDhfdDsKLXVzaW5nIEVuY29kZWRNZXNzYWdlID0gVmVjdG9yPHVpbnQ4X3Q+OwogCi1jbGFz
cyBDb25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPENvbm5lY3Rpb24+IHsKLXB1Ymxp
YzoKLSAgICBDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IGV4cGxpY2l0IENvbm5lY3Rpb24oUmV0YWluUHRyPHhwY19jb25uZWN0aW9uX3Q+JiYgY29ubmVj
dGlvbikKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkgeyB9Ci0g
ICAgeHBjX2Nvbm5lY3Rpb25fdCBnZXQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0
KCk7IH0KLSAgICB2b2lkIHNlbmQoeHBjX29iamVjdF90KSBjb25zdDsKLSAgICB2b2lkIHNlbmRX
aXRoUmVwbHkoeHBjX29iamVjdF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHhwY19vYmplY3Rf
dCk+JiYpIGNvbnN0OwotcHJvdGVjdGVkOgotICAgIG11dGFibGUgUmV0YWluUHRyPHhwY19jb25u
ZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKLSNlbmRpZgorc3RydWN0IENvbm5lY3Rpb25UcmFpdHMg
eworICAgIHVzaW5nIE1lc3NhZ2VUeXBlID0gV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xWZXJzaW9uS2V5IHsgUENNOjpw
cm90b2NvbFZlcnNpb25LZXkgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ2NF90IHByb3Rv
Y29sVmVyc2lvblZhbHVlIHsgUENNOjpwcm90b2NvbFZlcnNpb25WYWx1ZSB9OworICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB7IFBDTTo6
cHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB9OwogfTsKIAotY2xhc3MgQ29ubmVjdGlvblRvTWFj
aFNlcnZpY2UgOiBwdWJsaWMgQ29ubmVjdGlvbiB7CitjbGFzcyBDb25uZWN0aW9uIDogcHVibGlj
IERhZW1vbjo6Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8Q29ubmVjdGlvblRyYWl0cz4gewogcHVi
bGljOgotICAgIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlKENTdHJpbmcmJiBtYWNoU2VydmljZU5h
bWUsIE5ldHdvcmtTZXNzaW9uJik7Ci0KLSAgICB2b2lkIHNlbmQoTWVzc2FnZVR5cGUsIEVuY29k
ZWRNZXNzYWdlJiYpIGNvbnN0OwotICAgIHZvaWQgc2VuZFdpdGhSZXBseShNZXNzYWdlVHlwZSwg
RW5jb2RlZE1lc3NhZ2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYm
KT4mJikgY29uc3Q7CisgICAgQ29ubmVjdGlvbihDU3RyaW5nJiYgbWFjaFNlcnZpY2VOYW1lLCBO
ZXR3b3JrU2Vzc2lvbiYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rp
b25JZk5lZWRlZCgpIGNvbnN0OworICAgIHZvaWQgbmV3Q29ubmVjdGlvbldhc0luaXRpYWxpemVk
KCkgY29uc3QgZmluYWw7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBjaGVja0ZvckRl
YnVnTWVzc2FnZUJyb2FkY2FzdCh4cGNfb2JqZWN0X3QpIGNvbnN0OworICAgIFJldGFpblB0cjx4
cGNfb2JqZWN0X3Q+IGRpY3Rpb25hcnlGcm9tTWVzc2FnZShNZXNzYWdlVHlwZSwgRGFlbW9uOjpF
bmNvZGVkTWVzc2FnZSYmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbm5lY3Rpb25SZWNlaXZl
ZEV2ZW50KHhwY19vYmplY3RfdCkgY29uc3QgZmluYWw7CiAjZW5kaWYKICAgICB2b2lkIHNlbmRE
ZWJ1Z01vZGVJc0VuYWJsZWRNZXNzYWdlSWZOZWNlc3NhcnkoKSBjb25zdDsKIAotICAgIGNvbnN0
IENTdHJpbmcgbV9tYWNoU2VydmljZU5hbWU7CiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4g
bV9uZXR3b3JrU2Vzc2lvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDkzYzJjYTdkOTNjM2FmNWY2NTc5YTE1YTYyN2QyNTYxNTVmZGJl
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVjb2Rlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01l
YXN1cmVtZW50RGVjb2Rlci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotbmFtZXNwYWNlIFBD
TSB7Ci0KLURlY29kZXI6On5EZWNvZGVyKCkKLXsKLSAgICBBU1NFUlQobV9idWZmZXJQb3NpdGlv
biA9PSBtX2J1ZmZlci5zaXplKCkpOwotfQotCi1ib29sIERlY29kZXI6OmJ1ZmZlcklzTGFyZ2VF
bm91Z2hUb0NvbnRhaW5CeXRlcyhzaXplX3QgYnl0ZXMpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGJ5
dGVzIDw9IG1fYnVmZmVyLnNpemUoKSAtIG1fYnVmZmVyUG9zaXRpb247Ci19Ci0KLWJvb2wgRGVj
b2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBz
aXplX3QpCi17Ci0gICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6
ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtZW1jcHkoZGF0YSwgbV9idWZmZXIuZGF0
YSgpICsgbV9idWZmZXJQb3NpdGlvbiwgc2l6ZSk7Ci0gICAgbV9idWZmZXJQb3NpdGlvbiArPSBz
aXplOwotICAgIHJldHVybiB0cnVlOwotfQotCi1jb25zdCB1aW50OF90KiBEZWNvZGVyOjpkZWNv
ZGVGaXhlZExlbmd0aFJlZmVyZW5jZShzaXplX3Qgc2l6ZSwgc2l6ZV90KQotewotICAgIGlmICgh
YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemUpKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICBjb25zdCB1aW50OF90KiBkYXRhID0gbV9idWZmZXIuZGF0YSgpICsgbV9i
dWZmZXJQb3NpdGlvbjsKLSAgICBtX2J1ZmZlclBvc2l0aW9uICs9IHNpemU7Ci0gICAgcmV0dXJu
IGRhdGE7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFBDTQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVjb2Rlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDNhNjcwYmM1
YjBjNGMxOGI0MzkyYzQyMGFiNDEyNjNkNDc3Y2E1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
bmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotbmFtZXNw
YWNlIFBDTSB7Ci0KLWNsYXNzIERlY29kZXIgewotcHVibGljOgotICAgIERlY29kZXIoVmVjdG9y
PHVpbnQ4X3Q+JiYgYnVmZmVyKQotICAgICAgICA6IG1fYnVmZmVyKFdURk1vdmUoYnVmZmVyKSkg
eyB9Ci0gICAgfkRlY29kZXIoKTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgRGVj
b2RlciYgb3BlcmF0b3I+PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQotICAgIHsKLSAgICAgICAgdCA9
IElQQzo6QXJndW1lbnRDb2RlcjxzdGQ6OnJlbW92ZV9jb25zdF90PHN0ZDo6cmVtb3ZlX3JlZmVy
ZW5jZV90PFQ+Piwgdm9pZD46OmRlY29kZSgqdGhpcyk7Ci0gICAgICAgIHJldHVybiAqdGhpczsK
LSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW4oc2l6ZV90IG51bUVsZW1lbnRzKSBj
b25zdAotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2FyaXRobWV0aWM8VD46
OnZhbHVlLCAiVHlwZSBUIG11c3QgaGF2ZSBhIGZpeGVkLCBrbm93biBlbmNvZGVkIHNpemUhIik7
Ci0KLSAgICAgICAgaWYgKG51bUVsZW1lbnRzID4gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+
OjptYXgoKSAvIHNpemVvZihUKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAg
ICByZXR1cm4gYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKG51bUVsZW1lbnRzICog
c2l6ZW9mKFQpKTsKLSAgICB9Ci0KLSAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGVG
aXhlZExlbmd0aERhdGEodWludDhfdCogZGF0YSwgc2l6ZV90LCBzaXplX3QgYWxpZ25tZW50KTsK
LSAgICBjb25zdCB1aW50OF90KiBkZWNvZGVGaXhlZExlbmd0aFJlZmVyZW5jZShzaXplX3QsIHNp
emVfdCk7Ci0KLXByaXZhdGU6Ci0gICAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgYnVmZmVySXNM
YXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCkgY29uc3Q7Ci0KLSAgICBWZWN0b3I8dWlu
dDhfdD4gbV9idWZmZXI7Ci0gICAgc2l6ZV90IG1fYnVmZmVyUG9zaXRpb24geyAwIH07Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBQQ00KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5j
b2Rlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5OGIxNWU1MTBlNTk5Mzc0
M2ZlN2U1NjNlZjAxZGQ3OGI5MjRmZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLW5hbWVzcGFjZSBQQ00gewotCi12b2lkIEVuY29kZXI6OmVuY29kZUZpeGVkTGVu
Z3RoRGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc2l6ZV90KQotewotICAg
IG1fYnVmZmVyLmFwcGVuZChkYXRhLCBzaXplKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgUENNCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVu
Y29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE4YTgzYzY1OTI1ZDI2MmFkZDIwYmE1YThiMTkwMzY1ZTU5MzJjYjEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVuY29kZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1uYW1lc3BhY2UgUENNIHsKLQotY2xhc3MgRW5jb2RlciB7Ci1wdWJs
aWM6Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBFbmNvZGVyJiBvcGVyYXRvcjw8KFQm
JiB0KQotICAgIHsKLSAgICAgICAgSVBDOjpBcmd1bWVudENvZGVyPHN0ZDo6cmVtb3ZlX2NvbnN0
X3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4+Pjo6ZW5jb2RlKCp0aGlzLCBzdGQ6OmZvcndh
cmQ8VD4odCkpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIHZvaWQgZW5jb2RlKEFyZyYmIGFy
ZywgQXJncyYmLi4uIGFyZ3MpCi0gICAgewotICAgICAgICAqdGhpcyA8PCBzdGQ6OmZvcndhcmQ8
QXJnPihhcmcpOwotICAgICAgICBlbmNvZGUoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsK
LSAgICB9Ci0gICAgdm9pZCBlbmNvZGUoKSB7IH0KLQotICAgIFZlY3Rvcjx1aW50OF90PiB0YWtl
QnVmZmVyKCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2J1ZmZlciwgeyB9KTsgfQotCi0gICAg
dm9pZCBlbmNvZGVGaXhlZExlbmd0aERhdGEoY29uc3QgdWludDhfdCosIHNpemVfdCwgc2l6ZV90
IGFsaWdubWVudCk7Ci0KLXByaXZhdGU6Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IG1fYnVmZmVyOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgUENNCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCmluZGV4IDFmOTc0MDVhNzk4NzEzNGRhOTVm
YzE5ZGJlOTIyZDVmNWRkZTMxYzcuLjY5ZGNhZGU3MTJkZTBlYmFkNjA3NjE0NmRkMDhkMTY2OWI5
MWRlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKQEAgLTI2LDEx
ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIgogCisjaW5jbHVkZSAiRGFlbW9uRGVjb2Rlci5o
IgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNpbmNsdWRlICJIYW5kbGVNZXNzYWdlLmgi
CiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYWVtb25DbGllbnQuaCIKLSNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIApAQCAtMTQzLDcgKzE0
Myw3IEBAIEVNUFRZX1JFUExZKHN0b3JlVW5hdHRyaWJ1dGVkKTsKIAogUENNOjpFbmNvZGVkTWVz
c2FnZSB0b1N0cmluZ0ZvclRlc3Rpbmc6OmVuY29kZVJlcGx5KFN0cmluZyByZXBseSkKIHsKLSAg
ICBQQ006OkVuY29kZXIgZW5jb2RlcjsKKyAgICBEYWVtb246OkVuY29kZXIgZW5jb2RlcjsKICAg
ICBlbmNvZGVyIDw8IHJlcGx5OwogICAgIHJldHVybiBlbmNvZGVyLnRha2VCdWZmZXIoKTsKIH0K
QEAgLTE5Nyw5ICsxOTcsOSBAQCBzdGF0aWMgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
JiBkYWVtb25NYW5hZ2VyKCkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSW5mbz4KLXZvaWQgaGFu
ZGxlUENNTWVzc2FnZShQQ006OkVuY29kZWRNZXNzYWdlJiYgZW5jb2RlZE1lc3NhZ2UpCit2b2lk
IGhhbmRsZVBDTU1lc3NhZ2UoU3Bhbjxjb25zdCB1aW50OF90PiBlbmNvZGVkTWVzc2FnZSkKIHsK
LSAgICBQQ006OkRlY29kZXIgZGVjb2RlcihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAg
RGFlbW9uOjpEZWNvZGVyIGRlY29kZXIoZW5jb2RlZE1lc3NhZ2UpOwogCiAgICAgc3RkOjpvcHRp
b25hbDx0eXBlbmFtZSBJbmZvOjpBcmdzVHVwbGU+IGFyZ3VtZW50czsKICAgICBkZWNvZGVyID4+
IGFyZ3VtZW50czsKQEAgLTIwOSwxMCArMjA5LDEwIEBAIHZvaWQgaGFuZGxlUENNTWVzc2FnZShQ
Q006OkVuY29kZWRNZXNzYWdlJiYgZW5jb2RlZE1lc3NhZ2UpCiAgICAgSVBDOjpjYWxsTWVtYmVy
RnVuY3Rpb24oV1RGTW92ZSgqYXJndW1lbnRzKSwgJmRhZW1vbk1hbmFnZXIoKSwgSW5mbzo6TWVt
YmVyRnVuY3Rpb24pOwogfQogCi1zdGF0aWMgdm9pZCBoYW5kbGVQQ01NZXNzYWdlU2V0RGVidWdN
b2RlSXNFbmFibGVkKGNvbnN0IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBDTTo6RW5jb2RlZE1l
c3NhZ2UmJiBlbmNvZGVkTWVzc2FnZSkKK3N0YXRpYyB2b2lkIGhhbmRsZVBDTU1lc3NhZ2VTZXRE
ZWJ1Z01vZGVJc0VuYWJsZWQoY29uc3QgRGFlbW9uOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBT
cGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdlKQogewogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIFBDTTo6RGVjb2RlciBkZWNvZGVyKFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAg
ICBEYWVtb246OkRlY29kZXIgZGVjb2RlcihlbmNvZGVkTWVzc2FnZSk7CiAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBlbmFibGVkOwogICAgIGRlY29kZXIgPj4gZW5hYmxlZDsKICAgICBpZiAoVU5M
SUtFTFkoIWVuYWJsZWQpKQpAQCAtMjMwLDkgKzIzMCw5IEBAIHN0YXRpYyB2b2lkIGhhbmRsZVBD
TU1lc3NhZ2VTZXREZWJ1Z01vZGVJc0VuYWJsZWQoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlv
biwKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSW5mbz4KLXZvaWQgaGFuZGxlUENNTWVzc2FnZVdp
dGhSZXBseShQQ006OkVuY29kZWRNZXNzYWdlJiYgZW5jb2RlZE1lc3NhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUENNOjpFbmNvZGVkTWVzc2FnZSYmKT4mJiByZXBseVNlbmRlcikKK3ZvaWQg
aGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseShTcGFuPGNvbnN0IHVpbnQ4X3Q+IGVuY29kZWRNZXNz
YWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBDTTo6RW5jb2RlZE1lc3NhZ2UmJik+JiYgcmVw
bHlTZW5kZXIpCiB7Ci0gICAgUENNOjpEZWNvZGVyIGRlY29kZXIoV1RGTW92ZShlbmNvZGVkTWVz
c2FnZSkpOworICAgIERhZW1vbjo6RGVjb2RlciBkZWNvZGVyKGVuY29kZWRNZXNzYWdlKTsKIAog
ICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgSW5mbzo6QXJnc1R1cGxlPiBhcmd1bWVudHM7CiAg
ICAgZGVjb2RlciA+PiBhcmd1bWVudHM7CkBAIC0yNTEsNjMgKzI1MSw2MyBAQCB2b2lkIGRvRGFp
bHlBY3Rpdml0eUluTWFuYWdlcigpCiAgICAgZGFlbW9uTWFuYWdlcigpLmZpcmVQZW5kaW5nQXR0
cmlidXRpb25SZXF1ZXN0cygpOwogfQogCi12b2lkIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5h
Z2VyKGNvbnN0IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBl
LCBWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkTWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8dWludDhfdD4mJik+JiYgcmVwbHlTZW5kZXIpCit2b2lkIGRlY29kZU1lc3NhZ2VB
bmRTZW5kVG9NYW5hZ2VyKGNvbnN0IERhZW1vbjo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVz
c2FnZVR5cGUgbWVzc2FnZVR5cGUsIFNwYW48Y29uc3QgdWludDhfdD4gZW5jb2RlZE1lc3NhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPHVpbnQ4X3Q+JiYpPiYmIHJlcGx5U2VuZGVy
KQogewogICAgIEFTU0VSVChtZXNzYWdlVHlwZVNlbmRzUmVwbHkobWVzc2FnZVR5cGUpID09ICEh
cmVwbHlTZW5kZXIpOwogICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHsKICAgICBjYXNlIFBDTTo6
TWVzc2FnZVR5cGU6OlN0b3JlVW5hdHRyaWJ1dGVkOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdl
V2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpzdG9yZVVuYXR0cmlidXRlZD4oV1RGTW92ZShlbmNvZGVk
TWVzc2FnZSksIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2Fn
ZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6c3RvcmVVbmF0dHJpYnV0ZWQ+KGVuY29kZWRNZXNzYWdl
LCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpN
ZXNzYWdlVHlwZTo6SGFuZGxlQXR0cmlidXRpb246Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8
TWVzc2FnZUluZm86OmhhbmRsZUF0dHJpYnV0aW9uPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7
CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OmhhbmRsZUF0dHJpYnV0aW9u
PihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdl
VHlwZTo6Q2xlYXI6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUlu
Zm86OmNsZWFyPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBseVNlbmRlcikp
OworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpjbGVhcj4o
ZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpDbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluOgotICAg
ICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpjbGVhckZvclJlZ2lz
dHJhYmxlRG9tYWluPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBseVNlbmRl
cikpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpjbGVh
ckZvclJlZ2lzdHJhYmxlRG9tYWluPihlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBseVNlbmRl
cikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlNldERlYnVn
TW9kZUlzRW5hYmxlZDoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZVNldERlYnVnTW9kZUlzRW5h
YmxlZChjb25uZWN0aW9uLCBXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRs
ZVBDTU1lc3NhZ2VTZXREZWJ1Z01vZGVJc0VuYWJsZWQoY29ubmVjdGlvbiwgZW5jb2RlZE1lc3Nh
Z2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6Ok1pZ3JhdGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEZyb21MZWdhY3lTdG9yYWdlOgotICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlPE1lc3NhZ2VJbmZvOjptaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9t
TGVnYWN5U3RvcmFnZT4oV1RGTW92ZShlbmNvZGVkTWVzc2FnZSkpOworICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlPE1lc3NhZ2VJbmZvOjptaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9t
TGVnYWN5U3RvcmFnZT4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFBDTTo6TWVzc2FnZVR5cGU6OlRvU3RyaW5nRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENN
TWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6dG9TdHJpbmdGb3JUZXN0aW5nPihXVEZNb3Zl
KGVuY29kZWRNZXNzYWdlKSwgV1RGTW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjp0b1N0cmluZ0ZvclRlc3Rpbmc+KGVuY29k
ZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6Ci0gICAgICAg
IGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
PihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVz
c2FnZUluZm86OnNldE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0VG9rZW5QdWJsaWNL
ZXlVUkxGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpz
ZXRUb2tlblB1YmxpY0tleVVSTEZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsK
KyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0VG9rZW5QdWJsaWNLZXlV
UkxGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UENNOjpNZXNzYWdlVHlwZTo6U2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nOgotICAgICAg
ICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpzZXRUb2tlblNpZ25hdHVyZVVSTEZvclRl
c3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2Fn
ZTxNZXNzYWdlSW5mbzo6c2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nPihlbmNvZGVkTWVz
c2FnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6U2V0QXR0
cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxN
ZXNzYWdlSW5mbzo6c2V0QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZz4oV1RGTW92ZShl
bmNvZGVkTWVzc2FnZSkpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpz
ZXRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6TWFya0FsbFVuYXR0cmlidXRl
ZEFzRXhwaXJlZEZvclRlc3Rpbmc6Ci0gICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUlu
Zm86Om1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29k
ZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86Om1hcmtB
bGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6TWFya0F0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQ
Q01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2Up
LCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVw
bHk8TWVzc2FnZUluZm86Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFBy
ZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3Nh
Z2VJbmZvOjpzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nPihXVEZNb3ZlKGVu
Y29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRp
YXRlbHlGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjpz
dGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7
CisgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OnN0YXJ0VGltZXJJbW1lZGlh
dGVseUZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlE
Rm9yVGVzdGluZzoKLSAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2Rl
ZE1lc3NhZ2UpKTsKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc+KGVuY29kZWRNZXNzYWdl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpEZXN0cm95U3Rv
cmVGb3JUZXN0aW5nOgotICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJ
bmZvOjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSwgV1RG
TW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5PE1l
c3NhZ2VJbmZvOjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nPihlbmNvZGVkTWVzc2FnZSwgV1RGTW92
ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5
cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzoKLSAgICAgICAg
aGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7CisgICAgICAgIGhhbmRs
ZVBDTU1lc3NhZ2U8TWVzc2FnZUluZm86OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2Fs
UENNVGVzdGluZz4oZW5jb2RlZE1lc3NhZ2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCA4ZmNmYjRiNzU0NWFkYWE2ZTBh
YTBkNDZiMmMyMWM2OWQ5NDhjYmZhLi4xNDc5YWYzZGE4ZjFlZDUyYWVkZGE4NDE3YTc5NTk0MTk4
NzQ0ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTM1LDE0ICsz
NSwxNiBAQCBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitu
YW1lc3BhY2UgRGFlbW9uIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKIGVudW0gY2xhc3MgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgOiBib29sIHsgVW5hdHRyaWJ1dGVk
LCBBdHRyaWJ1dGVkIH07CiAKIGNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjsK
IAogbmFtZXNwYWNlIFBDTSB7CiAKLWNsYXNzIENvbm5lY3Rpb247Ci0KIGNsYXNzIE1hbmFnZXJJ
bnRlcmZhY2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfk1hbmFnZXJJbnRlcmZhY2UoKSB7IH07
CkBAIC0xMDYsNyArMTA4LDcgQEAgZW51bSBjbGFzcyBNZXNzYWdlVHlwZSA6IHVpbnQ4X3Qgewog
Y29uc3RleHByIGNvbnN0IGNoYXIqIHByb3RvY29sRW5jb2RlZE1lc3NhZ2VLZXkgeyAiZW5jb2Rl
ZCBtZXNzYWdlIiB9OwogdXNpbmcgRW5jb2RlZE1lc3NhZ2UgPSBWZWN0b3I8dWludDhfdD47CiAK
LXZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoY29uc3QgQ29ubmVjdGlvbiYsIE1l
c3NhZ2VUeXBlLCBWZWN0b3I8dWludDhfdD4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJik7Cit2b2lkIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9N
YW5hZ2VyKGNvbnN0IERhZW1vbjo6Q29ubmVjdGlvbiYsIE1lc3NhZ2VUeXBlLCBTcGFuPGNvbnN0
IHVpbnQ4X3Q+IGVuY29kZWRNZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rvcjx1
aW50OF90PiYmKT4mJik7CiB2b2lkIGRvRGFpbHlBY3Rpdml0eUluTWFuYWdlcigpOwogYm9vbCBt
ZXNzYWdlVHlwZVNlbmRzUmVwbHkoTWVzc2FnZVR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
UHJveHkuY3BwCmluZGV4IGExODc3ODRkODZmYTEzOTAyMDYzOTFhZmRkMDk3ZDIwYjdjMWZmYWEu
LjRiYjY0NGUzY2RmMDIwOTMzMTYwNzZkYjY0OTRmMjg0NTViOGUyNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyUHJveHkuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCIKIAorI2lu
Y2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIKKyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCiAjaW5j
bHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzgsMjAgKzM4LDIwIEBAIG5hbWVzcGFjZSBQQ00gewog
dGVtcGxhdGU8TWVzc2FnZVR5cGUgbWVzc2FnZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+CiB2b2lk
IE1hbmFnZXJQcm94eTo6c2VuZE1lc3NhZ2UoQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7Ci0gICAg
RW5jb2RlciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAgIGVuY29k
ZXIuZW5jb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAgbV9jb25uZWN0aW9u
LnNlbmQobWVzc2FnZVR5cGUsIGVuY29kZXIudGFrZUJ1ZmZlcigpKTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUuLi4gQXJncz4gc3RydWN0IFJlcGx5Q2FsbGVyOwogdGVtcGxhdGU8PiBzdHJ1Y3Qg
UmVwbHlDYWxsZXI8PiB7Ci0gICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERlY29kZXImJiBkZWNv
ZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAg
c3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfQogfTsKIHRlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2Fs
bGVyPFN0cmluZz4gewotICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShEZWNvZGVyJiYgZGVjb2Rl
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CisgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAg
IHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHN0cmluZzsKICAgICAgICAgZGVjb2Rl
ciA+PiBzdHJpbmc7CkBAIC02NCwxMCArNjQsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgUmVwbHlD
YWxsZXI8U3RyaW5nPiB7CiB0ZW1wbGF0ZTxNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgdHlwZW5h
bWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgogdm9pZCBNYW5hZ2VyUHJveHk6OnNl
bmRNZXNzYWdlV2l0aFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVwbHlBcmdzLi4uKT4m
JiBjb21wbGV0aW9uSGFuZGxlciwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7Ci0gICAgRW5jb2Rl
ciBlbmNvZGVyOworICAgIERhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwogICAgIGVuY29kZXIuZW5j
b2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAgbV9jb25uZWN0aW9uLnNlbmRX
aXRoUmVwbHkobWVzc2FnZVR5cGUsIGVuY29kZXIudGFrZUJ1ZmZlcigpLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8gcmVwbHlCdWZmZXIpIG11
dGFibGUgewotICAgICAgICBEZWNvZGVyIGRlY29kZXIoV1RGTW92ZShyZXBseUJ1ZmZlcikpOwor
ICAgICAgICBEYWVtb246OkRlY29kZXIgZGVjb2RlcihXVEZNb3ZlKHJlcGx5QnVmZmVyKSk7CiAg
ICAgICAgIFJlcGx5Q2FsbGVyPFJlcGx5QXJncy4uLj46OmNhbGxSZXBseShXVEZNb3ZlKGRlY29k
ZXIpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlclByb3h5LmgKaW5kZXggZjkxMTYxNWI1MmM5ZThhMjgwZDI3YTE5ZTZmNzMyYzg3ZDRj
MTEzOS4uZDRhMjc5YWI5ZTEyMjI4ZGVlMDcwNWI4ZmQ4MmUyZjhlNTM5YTNjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyUHJveHkuaApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAgIHRlbXBs
YXRlPE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0eXBlbmFtZS4uLiBBcmdzLCB0eXBlbmFtZS4u
LiBSZXBseUFyZ3M+CiAgICAgdm9pZCBzZW5kTWVzc2FnZVdpdGhSZXBseShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJlcGx5QXJncy4uLik+JiYsIEFyZ3MmJi4uLikgY29uc3Q7CiAKLSAgICBDb25u
ZWN0aW9uVG9NYWNoU2VydmljZSBtX2Nvbm5lY3Rpb247CisgICAgQ29ubmVjdGlvbiBtX2Nvbm5l
Y3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29ubmVjdGlvbkNvY29hLm1tCmluZGV4IDczNTViZjIwMzAxMDUzYWYxM2FkOTIwYzg4N2U5
ZjMwN2JiYTVkYjguLjYyOWY0YmNkODhkMzI2MDhjMGFiY2VjOWIzMjNiYTNjMGFjNGFlYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
b2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb25Db2NvYS5tbQpAQCAtMjYsNyAr
MjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbm5lY3Rpb24uaCIKIAotI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNv
ZGVyLmgiCisjaW1wb3J0ICJEYWVtb25FbmNvZGVyLmgiCiAjaW1wb3J0ICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFhQQ1V0aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKQEAgLTM0LDI4ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3BhY2UgUENN
IHsKIAotdm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTo6aW5pdGlhbGl6ZUNvbm5lY3Rpb25J
Zk5lZWRlZCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJu
OwotICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX21hY2hf
c2VydmljZShtX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCksIDApKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rp
b24uZ2V0KCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oeHBjX29iamVjdF90IGV2
ZW50KSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEKQotICAgICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8gY29ubmVjdCB0byBtYWNoIHNlcnZpY2UgJXMsIGxp
a2VseSBiZWNhdXNlIGl0IGlzIG5vdCByZWdpc3RlcmVkIHdpdGggbGF1bmNoZCIsIHdlYWtUaGlz
LT5tX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCkpOwotICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VS
Uk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKLSAgICAgICAgICAgIC8vIERhZW1vbiBjcmFz
aGVkLCB3ZSB3aWxsIG5lZWQgdG8gbWFrZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgbmV3IGluc3Rh
bmNlIG9mIHRoZSBkYWVtb24uCi0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9jb25uZWN0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgfQotICAgICAgICB3ZWFrVGhpcy0+Y2hlY2tGb3JEZWJ1Z01lc3Nh
Z2VCcm9hZGNhc3QoZXZlbnQpOwotICAgIH0pOwotICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRl
KG1fY29ubmVjdGlvbi5nZXQoKSk7Ci0KLSAgICBzZW5kRGVidWdNb2RlSXNFbmFibGVkTWVzc2Fn
ZUlmTmVjZXNzYXJ5KCk7Ci19Ci0KLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmRE
ZWJ1Z01vZGVJc0VuYWJsZWRNZXNzYWdlSWZOZWNlc3NhcnkoKSBjb25zdAordm9pZCBDb25uZWN0
aW9uOjpuZXdDb25uZWN0aW9uV2FzSW5pdGlhbGl6ZWQoKSBjb25zdAogewogICAgIEFTU0VSVCht
X2Nvbm5lY3Rpb24pOwogICAgIGlmICghbV9uZXR3b3JrU2Vzc2lvbgpAQCAtNjMsMTIgKzQyLDEy
IEBAIHZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmREZWJ1Z01vZGVJc0VuYWJsZWRN
ZXNzYWdlSWZOZWNlc3NhcnkoKSBjb25zdAogICAgICAgICB8fCAhbV9uZXR3b3JrU2Vzc2lvbi0+
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEVuY29kZXIgZW5jb2RlcjsKKyAgICBEYWVtb246OkVuY29kZXIgZW5jb2RlcjsK
ICAgICBlbmNvZGVyLmVuY29kZSh0cnVlKTsKICAgICBzZW5kKE1lc3NhZ2VUeXBlOjpTZXREZWJ1
Z01vZGVJc0VuYWJsZWQsIGVuY29kZXIudGFrZUJ1ZmZlcigpKTsKIH0KIAotdm9pZCBDb25uZWN0
aW9uVG9NYWNoU2VydmljZTo6Y2hlY2tGb3JEZWJ1Z01lc3NhZ2VCcm9hZGNhc3QoeHBjX29iamVj
dF90IHJlcXVlc3QpIGNvbnN0Cit2b2lkIENvbm5lY3Rpb246OmNvbm5lY3Rpb25SZWNlaXZlZEV2
ZW50KHhwY19vYmplY3RfdCByZXF1ZXN0KSBjb25zdAogewogICAgIGlmICh4cGNfZ2V0X3R5cGUo
cmVxdWVzdCkgIT0gWFBDX1RZUEVfRElDVElPTkFSWSkKICAgICAgICAgcmV0dXJuOwpAQCAtODIs
NTkgKzYxLDE0IEBAIHZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OmNoZWNrRm9yRGVidWdN
ZXNzYWdlQnJvYWRjYXN0KHhwY19vYmplY3RfdCByZXF1ZXN0CiAgICAgbV9uZXR3b3JrU2Vzc2lv
bi0+bmV0d29ya1Byb2Nlc3MoKS5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX25ldHdvcmtTZXNz
aW9uLT5zZXNzaW9uSUQoKSwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
IG1lc3NhZ2VMZXZlbCwgU3RyaW5nOjpmcm9tVVRGOChkZWJ1Z01lc3NhZ2UpKTsKIH0KIAotc3Rh
dGljIE9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4gZGljdGlvbmFyeUZyb21NZXNzYWdlKE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpCitSZXRhaW5QdHI8
eHBjX29iamVjdF90PiBDb25uZWN0aW9uOjpkaWN0aW9uYXJ5RnJvbU1lc3NhZ2UoTWVzc2FnZVR5
cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSkgY29uc3QKIHsKLSAgICBh
dXRvIGRpY3Rpb25hcnkgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxs
cHRyLCBudWxscHRyLCAwKSk7CisgICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRvcHROUyh4cGNfZGlj
dGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOwogICAgIGFkZFZlcnNpb25BbmRF
bmNvZGVkTWVzc2FnZVRvRGljdGlvbmFyeShXVEZNb3ZlKG1lc3NhZ2UpLCBkaWN0aW9uYXJ5Lmdl
dCgpKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdWludDY0KGRpY3Rpb25hcnkuZ2V0KCksIHBy
b3RvY29sTWVzc2FnZVR5cGVLZXksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtZXNzYWdlVHlwZSkp
OwogICAgIHJldHVybiBkaWN0aW9uYXJ5OwogfQogCi12b2lkIENvbm5lY3Rpb246OnNlbmQoeHBj
X29iamVjdF90IG1lc3NhZ2UpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKLSAgICBBU1NFUlQobV9jb25uZWN0aW9uLmdldCgpKTsKLSAgICBBU1NFUlQoeHBjX2dldF90
eXBlKG1lc3NhZ2UpID09IFhQQ19UWVBFX0RJQ1RJT05BUlkpOwotICAgIHhwY19jb25uZWN0aW9u
X3NlbmRfbWVzc2FnZShtX2Nvbm5lY3Rpb24uZ2V0KCksIG1lc3NhZ2UpOwotfQotCi12b2lkIENv
bm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90IG1lc3NhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoeHBjX29iamVjdF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKLXsK
LSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChtX2Nvbm5lY3Rpb24u
Z2V0KCkpOwotICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUobWVzc2FnZSkgPT0gWFBDX1RZUEVfRElD
VElPTkFSWSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVwbHkobV9j
b25uZWN0aW9uLmdldCgpLCBtZXNzYWdlLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
ICh4cGNfb2JqZWN0X3QgcmVwbHkpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXBseSk7Ci0gICAgfSkuZ2V0
KCkpOwotfQotCi12b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlOjpzZW5kKE1lc3NhZ2VUeXBl
IG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2UpIGNvbnN0Ci17Ci0gICAgaW5p
dGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOwotICAgIENvbm5lY3Rpb246OnNlbmQoZGljdGlv
bmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7Ci19
Ci0KLXZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U6OnNlbmRXaXRoUmVwbHkoTWVzc2FnZVR5
cGUgbWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKLXsK
LSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIGluaXRpYWxpemVDb25uZWN0aW9u
SWZOZWVkZWQoKTsKLQotICAgIENvbm5lY3Rpb246OnNlbmRXaXRoUmVwbHkoZGljdGlvbmFyeUZy
b21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3ZlKG1lc3NhZ2UpKS5nZXQoKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICh4cGNfb2JqZWN0X3QgcmVw
bHkpIG11dGFibGUgewotICAgICAgICBpZiAoeHBjX2dldF90eXBlKHJlcGx5KSAhPSBYUENfVFlQ
RV9ESUNUSU9OQVJZKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgICAgICB9Ci0gICAgICAg
IGlmICh4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHJlcGx5LCBwcm90b2NvbFZlcnNpb25LZXkp
ICE9IHByb3RvY29sVmVyc2lvblZhbHVlKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgICAg
ICB9Ci0gICAgICAgIHNpemVfdCBkYXRhU2l6ZSB7IDAgfTsKLSAgICAgICAgY29uc3Qgdm9pZCog
ZGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKHJlcGx5LCBwcm90b2NvbEVuY29kZWRNZXNz
YWdlS2V5LCAmZGF0YVNpemUpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgZGF0YVNpemUgfSk7Ci0gICAgfSk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFBDTQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlN2YyNzgwMzYyZGQyMDM3
NDM0Y2ExY2IzOTBkZGU2ZWY3OTE1OTM0Li5lMWU2YjE2M2MwMjAwMTE2ZmZmNTc2YjE1OWUxYjc4
Y2JjYWNiZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2Rl
cnMuY3BwCkBAIC0yNiw5ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKIAorI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIKKyNpbmNsdWRl
ICJEYWVtb25FbmNvZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlj
a01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNvZGVy
LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1l
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdhbGxUaW1lJiB0aW1lKQogdGVtcGxh
dGUKIHZvaWQgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVy
JiwgY29uc3QgV2FsbFRpbWUmKTsKIHRlbXBsYXRlCi12b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRp
bWU+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwg
Y29uc3QgV2FsbFRpbWUmKTsKK3ZvaWQgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZTxX
ZWJLaXQ6OkRhZW1vbjo6RW5jb2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBjb25zdCBX
YWxsVGltZSYpOwogCiBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVyPFdhbGxU
aW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQogewpAQCAtNjgs
NyArNjgsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gQXJn
dW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZShEZWNvZAogdGVtcGxhdGUKIHN0ZDo6b3B0aW9u
YWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGU8RGVjb2Rlcj4oRGVj
b2RlciYpOwogdGVtcGxhdGUKLXN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IEFyZ3VtZW50Q29kZXI8
V2FsbFRpbWU+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6UENNOjpEZWNv
ZGVyJik7CitzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6
ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYp
OwogCiB2b2lkIEFyZ3VtZW50Q29kZXI8QXRvbVN0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBBdG9tU3RyaW5nJiBhdG9tU3RyaW5nKQogewpAQCAtOTksNyArOTksNyBAQCB2
b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBDU3RyaW5nJiBzdHJpbmcpCiAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEoc3Ry
aW5nLmRhdGFBc1VJbnQ4UHRyKCksIGxlbmd0aCwgMSk7CiB9CiB0ZW1wbGF0ZSB2b2lkIEFyZ3Vt
ZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgQ1N0cmlu
ZyYpOwotdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENTdHJpbmc+OjplbmNvZGU8V2ViS2l0
OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgY29uc3QgQ1N0cmluZyYpOwor
dGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENTdHJpbmc+OjplbmNvZGU8V2ViS2l0OjpEYWVt
b246OkVuY29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgQ1N0cmluZyYpOwog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBBcmd1
bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKQEAgLTEyOCw3ICsx
MjgsNyBAQCBzdGQ6Om9wdGlvbmFsPENTdHJpbmc+IEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogdGVtcGxhdGUKIHN0ZDo6b3B0aW9uYWw8Q1N0cmluZz4g
QXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKIHRlbXBs
YXRlCi1zdGQ6Om9wdGlvbmFsPENTdHJpbmc+IEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmRlY29k
ZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsKK3N0ZDo6b3B0
aW9uYWw8Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6RGFl
bW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPFN0cmluZz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBT
dHJpbmcmKTsKIHRlbXBsYXRlCiB2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5jb2RlPFN0
cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYsIGNvbnN0IFN0
cmluZyYpOwogdGVtcGxhdGUKLXZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+OjplbmNvZGU8V2Vi
S2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgY29uc3QgU3RyaW5nJik7
Cit2b2lkIEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZW5jb2RlPFdlYktpdDo6RGFlbW9uOjpFbmNv
ZGVyPihXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciYsIGNvbnN0IFN0cmluZyYpOwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlLCB0eXBlbmFtZSBEZWNvZGVyPgogc3RhdGljIGlubGlu
ZSBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlU3RyaW5nVGV4dChEZWNvZGVyJiBkZWNvZGVy
LCB1aW50MzJfdCBsZW5ndGgpCkBAIC0xOTYsNyArMTk2LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJO
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBBcmd1bWVudENvZGVyPFN0cmluZz46OmRlY29kZShEZWNv
ZGVyJgogdGVtcGxhdGUKIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBBcmd1bWVudENvZGVyPFN0cmlu
Zz46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7CiB0ZW1wbGF0ZQotc3RkOjpvcHRpb25hbDxT
dHJpbmc+IEFyZ3VtZW50Q29kZXI8U3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVy
PihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOworc3RkOjpvcHRpb25hbDxTdHJpbmc+IEFyZ3VtZW50
Q29kZXI8U3RyaW5nPjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRh
ZW1vbjo6RGVjb2RlciYpOwogCiBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBBcmd1bWVudENvZGVy
PFN0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcmIHJlc3VsdCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uQ29ubmVjdGlvbi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWVlMzk1YzcyODUyYzMyMTBhMDIwYTcyNDdmMDI4YmExMzcxNGE1MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkNvbm5lY3Rpb24uY3Bw
CkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGFlbW9uQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb25uZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgRGFl
bW9uIHsKKworI2lmICFQTEFURk9STShDT0NPQSkKKwordGVtcGxhdGU8dHlwZW5hbWUgVHJhaXRz
Pgordm9pZCBDb25uZWN0aW9uVG9NYWNoU2VydmljZTxUcmFpdHM+OjpzZW5kKHR5cGVuYW1lIFRy
YWl0czo6TWVzc2FnZVR5cGUsIEVuY29kZWRNZXNzYWdlJiYpIGNvbnN0Cit7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFRyYWl0cz4KK3ZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRz
Pjo6c2VuZFdpdGhSZXBseSh0eXBlbmFtZSBUcmFpdHM6Ok1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVz
c2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEVuY29kZWRNZXNzYWdlJiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBjb25zdAoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cit9CisK
K3RlbXBsYXRlIGNsYXNzIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNlPFBDTTo6Q29ubmVjdGlvblRy
YWl0cz47CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBEYWVtb24KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25D
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25Db25uZWN0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzViMTA0ZjgzMzJkNTc3ZTBkNzcxMWUwNjA4Zjk1NTljMTg5YmU5NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkNvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5j
bHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK25hbWVzcGFjZSBEYWVtb24geworCit1c2luZyBFbmNvZGVkTWVzc2FnZSA9IFZlY3Rv
cjx1aW50OF90PjsKKworY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxD
b25uZWN0aW9uPiB7CitwdWJsaWM6CisgICAgQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBleHBsaWNpdCBDb25uZWN0aW9uKFJldGFpblB0cjx4cGNfY29u
bmVjdGlvbl90PiYmIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUo
Y29ubmVjdGlvbikpIHsgfQorICAgIHhwY19jb25uZWN0aW9uX3QgZ2V0KCkgY29uc3QgeyByZXR1
cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisgICAgdm9pZCBzZW5kKHhwY19vYmplY3RfdCkgY29u
c3Q7CisgICAgdm9pZCBzZW5kV2l0aFJlcGx5KHhwY19vYmplY3RfdCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCh4cGNfb2JqZWN0X3QpPiYmKSBjb25zdDsKK3Byb3RlY3RlZDoKKyAgICBtdXRhYmxl
IFJldGFpblB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisjZW5kaWYKK307CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4KK2NsYXNzIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNl
IDogcHVibGljIENvbm5lY3Rpb24geworcHVibGljOgorICAgIENvbm5lY3Rpb25Ub01hY2hTZXJ2
aWNlKENTdHJpbmcmJiBtYWNoU2VydmljZU5hbWUpCisgICAgICAgIDogbV9tYWNoU2VydmljZU5h
bWUoV1RGTW92ZShtYWNoU2VydmljZU5hbWUpKSB7IH0KKyAgICB2aXJ0dWFsIH5Db25uZWN0aW9u
VG9NYWNoU2VydmljZSgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgc2VuZCh0eXBlbmFtZSBUcmFp
dHM6Ok1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmKSBjb25zdDsKKyAgICB2b2lkIHNlbmRX
aXRoUmVwbHkodHlwZW5hbWUgVHJhaXRzOjpNZXNzYWdlVHlwZSwgRW5jb2RlZE1lc3NhZ2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFbmNvZGVkTWVzc2FnZSYmKT4mJikgY29uc3Q7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgbmV3Q29ubmVjdGlvbldhc0luaXRpYWxpemVkKCkgY29uc3QgPSAwOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgUmV0YWluUHRyPHhwY19vYmplY3RfdD4g
ZGljdGlvbmFyeUZyb21NZXNzYWdlKHR5cGVuYW1lIFRyYWl0czo6TWVzc2FnZVR5cGUsIEVuY29k
ZWRNZXNzYWdlJiYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvblJlY2Vp
dmVkRXZlbnQoeHBjX29iamVjdF90KSBjb25zdCA9IDA7CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKSBjb25zdDsKKworICAgIGNvbnN0
IENTdHJpbmcgbV9tYWNoU2VydmljZU5hbWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBEYWVtb24K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9EYWVtb25EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Rh
ZW1vbkRlY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4YzIwZDJhYmVlODg0MzE2YzVmOTA2ZTMyYzA5
N2NjOTM3ZDhjNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9EYWVtb25EZWNvZGVyLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK25hbWVzcGFjZSBEYWVtb24geworCitEZWNvZGVyOjp+RGVjb2RlcigpCit7Cisg
ICAgQVNTRVJUKG1fYnVmZmVyUG9zaXRpb24gPT0gbV9idWZmZXIuc2l6ZSgpKTsKK30KKworYm9v
bCBEZWNvZGVyOjpidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZV90IGJ5dGVz
KSBjb25zdAoreworICAgIHJldHVybiBieXRlcyA8PSBtX2J1ZmZlci5zaXplKCkgLSBtX2J1ZmZl
clBvc2l0aW9uOworfQorCitib29sIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoRGF0YSh1aW50
OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc2l6ZV90KQoreworICAgIGlmICghYnVmZmVySXNMYXJn
ZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
bWVtY3B5KGRhdGEsIG1fYnVmZmVyLmRhdGEoKSArIG1fYnVmZmVyUG9zaXRpb24sIHNpemUpOwor
ICAgIG1fYnVmZmVyUG9zaXRpb24gKz0gc2l6ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29u
c3QgdWludDhfdCogRGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhSZWZlcmVuY2Uoc2l6ZV90IHNp
emUsIHNpemVfdCkKK3sKKyAgICBpZiAoIWJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW5CeXRl
cyhzaXplKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgY29uc3QgdWludDhfdCogZGF0
YSA9IG1fYnVmZmVyLmRhdGEoKSArIG1fYnVmZmVyUG9zaXRpb247CisgICAgbV9idWZmZXJQb3Np
dGlvbiArPSBzaXplOworICAgIHJldHVybiBkYXRhOworfQorCit9IC8vIG5hbWVzcGFjZSBEYWVt
b24KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9EYWVtb25EZWNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9E
YWVtb25EZWNvZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQwNmM0N2I4YTU5MTI1NTE4MGU0MWZkYjdhYWNh
MjBmOWVmMjQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0RhZW1vbkRlY29kZXIuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworbmFtZXNwYWNlIERhZW1vbiB7CisKK2NsYXNzIERlY29kZXIgeworcHVibGljOgorICAgIERl
Y29kZXIoU3Bhbjxjb25zdCB1aW50OF90PiBidWZmZXIpCisgICAgICAgIDogbV9idWZmZXIoYnVm
ZmVyKSB7IH0KKyAgICB+RGVjb2RlcigpOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAg
ICBEZWNvZGVyJiBvcGVyYXRvcj4+KHN0ZDo6b3B0aW9uYWw8VD4mIHQpCisgICAgeworICAgICAg
ICB0ID0gSVBDOjpBcmd1bWVudENvZGVyPHN0ZDo6cmVtb3ZlX2NvbnN0X3Q8c3RkOjpyZW1vdmVf
cmVmZXJlbmNlX3Q8VD4+LCB2b2lkPjo6ZGVjb2RlKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuICp0
aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbihzaXplX3QgbnVtRWxlbWVu
dHMpIGNvbnN0CisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYXJpdGhtZXRp
YzxUPjo6dmFsdWUsICJUeXBlIFQgbXVzdCBoYXZlIGEgZml4ZWQsIGtub3duIGVuY29kZWQgc2l6
ZSEiKTsKKworICAgICAgICBpZiAobnVtRWxlbWVudHMgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpIC8gc2l6ZW9mKFQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIHJldHVybiBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMobnVtRWxlbWVu
dHMgKiBzaXplb2YoVCkpOworICAgIH0KKworICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRl
Y29kZUZpeGVkTGVuZ3RoRGF0YSh1aW50OF90KiBkYXRhLCBzaXplX3QsIHNpemVfdCBhbGlnbm1l
bnQpOworICAgIGNvbnN0IHVpbnQ4X3QqIGRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVf
dCwgc2l6ZV90KTsKKworcHJpdmF0ZToKKyAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBidWZm
ZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZV90KSBjb25zdDsKKworICAgIFNwYW48
Y29uc3QgdWludDhfdD4gbV9idWZmZXI7CisgICAgc2l6ZV90IG1fYnVmZmVyUG9zaXRpb24geyAw
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBEYWVtb24KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RhZW1vbkVuY29kZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU1MTg2MjU4MWEwZjc0M2VmNmE2OWIwNTllYjFkNjU0NmNlYjM2YTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmNwcApAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRhZW1vbkVuY29kZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBEYWVt
b24geworCit2b2lkIEVuY29kZXI6OmVuY29kZUZpeGVkTGVuZ3RoRGF0YShjb25zdCB1aW50OF90
KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc2l6ZV90KQoreworICAgIG1fYnVmZmVyLmFwcGVuZChkYXRh
LCBzaXplKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGFlbW9uCisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rl
ci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGFlbW9uRW5jb2Rlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAxYjQ3ZDE2Njc0ZWEzMWU0MTk1ZmFjOTM5NzI2NTk2MTE5NjQ4MjgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmgKQEAgLTAs
MCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBEYWVtb24gewor
CitjbGFzcyBFbmNvZGVyIHsKK3B1YmxpYzoKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAg
IEVuY29kZXImIG9wZXJhdG9yPDwoVCYmIHQpCisgICAgeworICAgICAgICBJUEM6OkFyZ3VtZW50
Q29kZXI8c3RkOjpyZW1vdmVfY29uc3RfdDxzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxUPj4+Ojpl
bmNvZGUoKnRoaXMsIHN0ZDo6Zm9yd2FyZDxUPih0KSk7CisgICAgICAgIHJldHVybiAqdGhpczsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Cisg
ICAgdm9pZCBlbmNvZGUoQXJnJiYgYXJnLCBBcmdzJiYuLi4gYXJncykKKyAgICB7CisgICAgICAg
ICp0aGlzIDw8IHN0ZDo6Zm9yd2FyZDxBcmc+KGFyZyk7CisgICAgICAgIGVuY29kZShzdGQ6OmZv
cndhcmQ8QXJncz4oYXJncykuLi4pOworICAgIH0KKyAgICB2b2lkIGVuY29kZSgpIHsgfQorCisg
ICAgVmVjdG9yPHVpbnQ4X3Q+IHRha2VCdWZmZXIoKSB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1f
YnVmZmVyLCB7IH0pOyB9CisKKyAgICB2b2lkIGVuY29kZUZpeGVkTGVuZ3RoRGF0YShjb25zdCB1
aW50OF90Kiwgc2l6ZV90LCBzaXplX3QgYWxpZ25tZW50KTsKKworcHJpdmF0ZToKKyAgICBWZWN0
b3I8dWludDhfdD4gbV9idWZmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBEYWVtb24KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9jb2NvYS9EYWVtb25Db25uZWN0aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9jb2NvYS9EYWVtb25Db25uZWN0aW9uQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzViYWIzMmUy
OGNhNjFjNmEzZDk0NjBiMGY2YzhiMWY0MWM5NmE3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL2NvY29hL0RhZW1vbkNvbm5lY3Rpb25Db2NvYS5tbQpAQCAt
MCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RGFlbW9uQ29ubmVjdGlvbi5oIgorCisjaW1wb3J0ICJEYWVtb25FbmNvZGVyLmgiCisjaW1wb3J0
ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKKyNpbXBvcnQgPHd0Zi9CbG9j
a1B0ci5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K25hbWVzcGFjZSBEYWVtb24geworCit2b2lkIENvbm5lY3Rpb246OnNlbmQoeHBjX29iamVjdF90
IG1lc3NhZ2UpIGNvbnN0Cit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBB
U1NFUlQobV9jb25uZWN0aW9uLmdldCgpKTsKKyAgICBBU1NFUlQoeHBjX2dldF90eXBlKG1lc3Nh
Z2UpID09IFhQQ19UWVBFX0RJQ1RJT05BUlkpOworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVz
c2FnZShtX2Nvbm5lY3Rpb24uZ2V0KCksIG1lc3NhZ2UpOworfQorCit2b2lkIENvbm5lY3Rpb246
OnNlbmRXaXRoUmVwbHkoeHBjX29iamVjdF90IG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoeHBjX29iamVjdF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChtX2Nvbm5lY3Rpb24uZ2V0KCkpOwor
ICAgIEFTU0VSVCh4cGNfZ2V0X3R5cGUobWVzc2FnZSkgPT0gWFBDX1RZUEVfRElDVElPTkFSWSk7
CisgICAgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVwbHkobV9jb25uZWN0aW9u
LmdldCgpLCBtZXNzYWdlLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtlQmxvY2tQdHIo
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICh4cGNfb2Jq
ZWN0X3QgcmVwbHkpIG11dGFibGUgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXBseSk7CisgICAgfSkuZ2V0KCkpOworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUcmFpdHM+Cit2b2lkIENvbm5lY3Rpb25Ub01hY2hTZXJ2aWNl
PFRyYWl0cz46OmluaXRpYWxpemVDb25uZWN0aW9uSWZOZWVkZWQoKSBjb25zdAoreworICAgIGlm
IChtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9w
dE5TKHhwY19jb25uZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UobV9tYWNoU2VydmljZU5hbWUu
ZGF0YSgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCAwKSk7CisgICAgeHBjX2Nvbm5lY3Rp
b25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfV0oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1Jf
Q09OTkVDVElPTl9JTlZBTElEKQorICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8g
Y29ubmVjdCB0byBtYWNoIHNlcnZpY2UgJXMsIGxpa2VseSBiZWNhdXNlIGl0IGlzIG5vdCByZWdp
c3RlcmVkIHdpdGggbGF1bmNoZCIsIHdlYWtUaGlzLT5tX21hY2hTZXJ2aWNlTmFtZS5kYXRhKCkp
OworICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQp
IHsKKyAgICAgICAgICAgIC8vIERhZW1vbiBjcmFzaGVkLCB3ZSB3aWxsIG5lZWQgdG8gbWFrZSBh
IG5ldyBjb25uZWN0aW9uIHRvIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBkYWVtb24uCisgICAgICAg
ICAgICB3ZWFrVGhpcy0+bV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAg
ICB3ZWFrVGhpcy0+Y29ubmVjdGlvblJlY2VpdmVkRXZlbnQoZXZlbnQpOworICAgIH0pOworICAg
IHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlvbi5nZXQoKSk7CisgICAgCisgICAg
bmV3Q29ubmVjdGlvbldhc0luaXRpYWxpemVkKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFRy
YWl0cz4KK3ZvaWQgQ29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRzPjo6c2VuZCh0eXBlbmFt
ZSBUcmFpdHM6Ok1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3Nh
Z2UpIGNvbnN0Cit7CisgICAgaW5pdGlhbGl6ZUNvbm5lY3Rpb25JZk5lZWRlZCgpOworICAgIENv
bm5lY3Rpb246OnNlbmQoZGljdGlvbmFyeUZyb21NZXNzYWdlKG1lc3NhZ2VUeXBlLCBXVEZNb3Zl
KG1lc3NhZ2UpKS5nZXQoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFRyYWl0cz4KK3ZvaWQg
Q29ubmVjdGlvblRvTWFjaFNlcnZpY2U8VHJhaXRzPjo6c2VuZFdpdGhSZXBseSh0eXBlbmFtZSBU
cmFpdHM6Ok1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCBFbmNvZGVkTWVzc2FnZSYmIG1lc3NhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRW5jb2RlZE1lc3NhZ2UmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBpbml0
aWFsaXplQ29ubmVjdGlvbklmTmVlZGVkKCk7CisKKyAgICBDb25uZWN0aW9uOjpzZW5kV2l0aFJl
cGx5KGRpY3Rpb25hcnlGcm9tTWVzc2FnZShtZXNzYWdlVHlwZSwgV1RGTW92ZShtZXNzYWdlKSku
Z2V0KCksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAo
eHBjX29iamVjdF90IHJlcGx5KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHhwY19nZXRfdHlwZShy
ZXBseSkgIT0gWFBDX1RZUEVfRElDVElPTkFSWSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoeHBjX2RpY3Rpb25hcnlfZ2V0X3VpbnQ2NChyZXBseSwgVHJh
aXRzOjpwcm90b2NvbFZlcnNpb25LZXkpICE9IFRyYWl0czo6cHJvdG9jb2xWZXJzaW9uVmFsdWUp
IHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgIH0KKyAgICAgICAgc2l6ZV90IGRhdGFT
aXplIHsgMCB9OworICAgICAgICBjb25zdCB2b2lkKiBkYXRhID0geHBjX2RpY3Rpb25hcnlfZ2V0
X2RhdGEocmVwbHksIFRyYWl0czo6cHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSwgJmRhdGFTaXpl
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90
Kj4oZGF0YSksIGRhdGFTaXplIH0pOworICAgIH0pOworfQorCit0ZW1wbGF0ZSBjbGFzcyBDb25u
ZWN0aW9uVG9NYWNoU2VydmljZTxQQ006OkNvbm5lY3Rpb25UcmFpdHM+OworCit9IC8vIG5hbWVz
cGFjZSBEYWVtb24KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25D
b25uZWN0aW9uU2V0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL0RhZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0LmgKaW5kZXggOGUxMzQyNzA4Y2Nh
YmY1YmQ5OWQ5NDE0NTI1ZmQwODQyN2Y5ZTllYy4uOWEyZTg4ZDczYmYzMTcwZGVlNTI0NWYxNTEx
ZDMyMmEzYzAxNGVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29ubmVjdGlvblNldC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURh
ZW1vbkNvbm5lY3Rpb25TZXQuaApAQCAtMzQsOSArMzQsMTAgQEAgZW51bSBjbGFzcyBNZXNzYWdl
TGV2ZWwgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLW5hbWVzcGFjZSBQQ00g
ewotCituYW1lc3BhY2UgRGFlbW9uIHsKIGNsYXNzIENvbm5lY3Rpb247Cit9CituYW1lc3BhY2Ug
UENNIHsKIAogY2xhc3MgRGFlbW9uQ29ubmVjdGlvblNldCB7CiBwdWJsaWM6CkBAIC00NSw3ICs0
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZCh4cGNfY29ubmVjdGlvbl90KTsKICAgICB2b2lk
IHJlbW92ZSh4cGNfY29ubmVjdGlvbl90KTsKIAotICAgIHZvaWQgc2V0Q29ubmVjdGVkTmV0d29y
a1Byb2Nlc3NIYXNEZWJ1Z01vZGVFbmFibGVkKGNvbnN0IENvbm5lY3Rpb24mLCBib29sKTsKKyAg
ICB2b2lkIHNldENvbm5lY3RlZE5ldHdvcmtQcm9jZXNzSGFzRGVidWdNb2RlRW5hYmxlZChjb25z
dCBEYWVtb246OkNvbm5lY3Rpb24mLCBib29sKTsKICAgICBib29sIGRlYnVnTW9kZUVuYWJsZWQo
KSBjb25zdDsKICAgICB2b2lkIGJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25T
ZXQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0Rh
ZW1vbi9QQ01EYWVtb25Db25uZWN0aW9uU2V0Lm1tCmluZGV4IDU0NWUwZDk2YTcyMjBiM2QzZTMw
OWIxZWUzZmQyMTJkNzJlMWYzYzkuLmVmODAxZmFhMzk3MzkwZWU1NGNjZTgxOWU4YWU5NDk2Yzc0
ZmVjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkNvbm5lY3Rpb25TZXQubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uQ29u
bmVjdGlvblNldC5tbQpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIERhZW1vbkNvbm5lY3Rpb25TZXQ6
OnJlbW92ZSh4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCiAgICAgfQogfQogCi12b2lkIERh
ZW1vbkNvbm5lY3Rpb25TZXQ6OnNldENvbm5lY3RlZE5ldHdvcmtQcm9jZXNzSGFzRGVidWdNb2Rl
RW5hYmxlZChjb25zdCBDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBib29sIGVuYWJsZWQpCit2b2lk
IERhZW1vbkNvbm5lY3Rpb25TZXQ6OnNldENvbm5lY3RlZE5ldHdvcmtQcm9jZXNzSGFzRGVidWdN
b2RlRW5hYmxlZChjb25zdCBEYWVtb246OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGJvb2wgZW5h
YmxlZCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9jb25uZWN0aW9ucy5maW5kKGNvbm5lY3Rp
b24uZ2V0KCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX2Nvbm5lY3Rpb25zLmVuZCgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQppbmRl
eCBlZDIzMDA1MzMxYjk1OGQ1ZTQ2MTA2NDk4OWY1YWQ4NTkwYjBlM2RhLi4xZGE2OGVjNTM2OTNh
MGE2OWE1Nzk2ZWNkNWQ2YTdiMTM4ODZmNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
RGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KQEAgLTI2LDkgKzI2LDkgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiUENNRGFlbW9uRW50cnlQb2ludC5oIgogCisjaW1wb3J0ICJE
YWVtb25EZWNvZGVyLmgiCiAjaW1wb3J0ICJQQ01EYWVtb25Db25uZWN0aW9uU2V0LmgiCiAjaW1w
b3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCIKLSNpbXBvcnQgIlByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgogI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFhQQ1V0aWxpdGllcy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CkBAIC02
OSw4ICs2OSw4IEBAIHN0YXRpYyB2b2lkIGNvbm5lY3Rpb25FdmVudEhhbmRsZXIoeHBjX29iamVj
dF90IHJlcXVlc3QpCiAgICAgYXV0byBtZXNzYWdlVHlwZSB7IHN0YXRpY19jYXN0PFBDTTo6TWVz
c2FnZVR5cGU+KHhwY19kaWN0aW9uYXJ5X2dldF91aW50NjQocmVxdWVzdCwgUENNOjpwcm90b2Nv
bE1lc3NhZ2VUeXBlS2V5KSkgfTsKICAgICBzaXplX3QgZGF0YVNpemUgeyAwIH07CiAgICAgY29u
c3Qgdm9pZCogZGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKHJlcXVlc3QsIFBDTTo6cHJv
dG9jb2xFbmNvZGVkTWVzc2FnZUtleSwgJmRhdGFTaXplKTsKLSAgICBQQ006OkVuY29kZWRNZXNz
YWdlIGVuY29kZWRNZXNzYWdlIHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBk
YXRhU2l6ZSB9OwotICAgIGRlY29kZU1lc3NhZ2VBbmRTZW5kVG9NYW5hZ2VyKFBDTTo6Q29ubmVj
dGlvbih4cGNfZGljdGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24ocmVxdWVzdCkpLCBtZXNz
YWdlVHlwZSwgV1RGTW92ZShlbmNvZGVkTWVzc2FnZSksIHJlcGx5U2VuZGVyKG1lc3NhZ2VUeXBl
LCByZXF1ZXN0KSk7CisgICAgU3Bhbjxjb25zdCB1aW50OF90PiBlbmNvZGVkTWVzc2FnZSB7IHN0
YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgZGF0YVNpemUgfTsKKyAgICBkZWNvZGVN
ZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihEYWVtb246OkNvbm5lY3Rpb24oeHBjX2RpY3Rpb25hcnlf
Z2V0X3JlbW90ZV9jb25uZWN0aW9uKHJlcXVlc3QpKSwgbWVzc2FnZVR5cGUsIGVuY29kZWRNZXNz
YWdlLCByZXBseVNlbmRlcihtZXNzYWdlVHlwZSwgcmVxdWVzdCkpOwogfQogCiBzdGF0aWMgdm9p
ZCBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoY29uc3QgY2hhciogc2Vy
dmljZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENv
ZGVyc0NGLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3Bw
CmluZGV4IGUzMjg3Y2ZhNmFjYTUzOTk5OTYxMjI0Y2Y5OGYyN2Y4ZjZkMTdmMjIuLjI2Nzc2ZGY1
ZmQzNmQ2MTUxODQ0NmYwOWJhY2IxMGQ2YTcwN2VjMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCkBAIC0yOSwxMSArMjksMTEgQEAKICNpbmNsdWRl
ICJBcmd1bWVudENvZGVyc0NGLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIKKyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJF
bmNvZGVyLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0j
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXIuaCIKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBo
aWNzLmg+CiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KQEAgLTQxOSw3ICs0MTksNyBAQCBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0
cjxDRkRhdGFSZWY+Pjo6ZGVjb2RlKAogfQogCiB0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxDRkRhdGFSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkRhdGFSZWY+Pjo6ZGVj
b2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRy
PENGRGF0YVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGRGF0YVJlZj4+OjpkZWNvZGU8
V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6UENNOjpEZWNvZGVyJik7Cit0ZW1wbGF0ZSBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0
cjxDRkRhdGFSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRh
ZW1vbjo6RGVjb2RlciYpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1
bWVudENvZGVyPENGRGF0ZVJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRhdGVSZWYg
ZGF0ZSkKQEAgLTg0MCw3ICs4NDAsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgU2VjVHJ1c3RSZWYgdHJ1c3QpCiB9CiAKIHRlbXBs
YXRlIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj46OmVuY29kZTxFbmNvZGVyPihFbmNv
ZGVyJiwgU2VjVHJ1c3RSZWYpOwotdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0
UmVmPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYs
IFNlY1RydXN0UmVmKTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj46
OmVuY29kZTxXZWJLaXQ6OkRhZW1vbjo6RW5jb2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXIm
LCBTZWNUcnVzdFJlZik7CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+
OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVy
JiwgU2VjVHJ1c3RSZWYpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgpAQCAtODY3LDcg
Kzg2Nyw3IEBAIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRD
b2RlcjxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Pjo6ZGVjCiB9CiAKIHRlbXBsYXRlIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2Vj
VHJ1c3RSZWY+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKLXRlbXBsYXRlIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2Vj
VHJ1c3RSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVj
b2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiBB
cmd1bWVudENvZGVyPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+OjpkZWNvZGU8V2ViS2l0OjpEYWVt
b246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNv
cmVBcmd1bWVudENvZGVyc0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAppbmRleCBkNTRiYWY0YzVmOTFjYzFjMDI1MzM5NDcw
Yjc5MTIyMTI2ZTdlZDU2Li42ZmM1NDQzNDgyNTNmMTA4NTJhYWRiNTdlZTJiYmU0YTEwYTliZjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENv
ZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ3VybC5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAorI2luY2x1ZGUgIkRhZW1vbkRl
Y29kZXIuaCIKKyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVy
ZW5jZS5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgotI2lu
Y2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJsUHJveHlTZXR0aW5n
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgpAQCAtNjIsNyAr
NjIsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRlSQogICAgICAgICBlbmNvZGVyIDw8IGNlcnRp
ZmljYXRlOwogfQogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbz46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvJik7Ci10ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwordGVtcGxhdGUgdm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZTxXZWJLaXQ6OkRh
ZW1vbjo6RW5jb2Rlcj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0
aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtOTAsNyArOTAsNyBAQCBzdGQ6Om9wdGlvbmFsPENl
cnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZAogICAgIHJldHVybiBDZXJ0aWZpY2F0ZUluZm8geyAqdmVyaWZpY2F0aW9uRXJyb3Is
IFdURk1vdmUoY2VydGlmaWNhdGVDaGFpbikgfTsKIH0KIHRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbz46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Ci10ZW1wbGF0ZSBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktpdDo6UENNOjpE
ZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
bz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8V2ViS2l0
OjpEYWVtb246OkRlY29kZXI+KFdlYktpdDo6RGFlbW9uOjpEZWNvZGVyJik7CiAKIHZvaWQgQXJn
dW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5jcHAKaW5kZXggOWY0NDIz
OThkZmU1OWRmMDZiNGVlNmIwNDJkMTdkNjlkYjhmOWM1NC4uOTAxYzAzMTI0YjgyM2I1NDRjNjFl
YjgwNmU2MDQwNGQ3NWFjYmQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xp
Yi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIv
QXJndW1lbnRDb2RlcnNHTGliLmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzR0xpYi5oIgogCisjaW5jbHVkZSAiRGFlbW9u
RGVjb2Rlci5oIgorI2luY2x1ZGUgIkRhZW1vbkVuY29kZXIuaCIKICNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCi0j
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSA8Z2lv
L2dpby5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPEdS
ZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBHUmVmUHRy
PEcKICAgICB9CiB9CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2Vy
dGlmaWNhdGU+Pjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBHUmVmUHRyPEdUbHNDZXJ0aWZp
Y2F0ZT4pOwotdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmlj
YXRlPj46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXIm
LCBHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4pOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVy
PEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmVuY29kZTxXZWJLaXQ6OkRhZW1vbjo6RW5jb2Rl
cj4oV2ViS2l0OjpEYWVtb246OkVuY29kZXImLCBHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4pOwog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxHUmVmUHRyPEdUbHND
ZXJ0aWZpY2F0ZT4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCkBAIC0xNjQsNiArMTY0LDYgQEAgc3RkOjpvcHRpb25hbDxH
UmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlm
aWNhdGU+PjoKICAgICByZXR1cm4gY2VydGlmaWNhdGU7CiB9CiB0ZW1wbGF0ZSBzdGQ6Om9wdGlv
bmFsPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4gQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHND
ZXJ0aWZpY2F0ZT4+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwotdGVtcGxhdGUgc3RkOjpv
cHRpb25hbDxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxH
VGxzQ2VydGlmaWNhdGU+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBD
TTo6RGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxHUmVmUHRyPEdUbHNDZXJ0aWZp
Y2F0ZT4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+Pjo6ZGVjb2RlPFdl
YktpdDo6RGFlbW9uOjpEZWNvZGVyPihXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYpOwogCiB9IC8v
IG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJD
b3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDZhNDM0MDY3MTQ2M2Q5NDcwNzE5MjMxMGIxZjdi
YTBiZDAzYTc2ZjYuLmE0Y2I4YzlkNjY0MDNmMzA0YjVlMDZmNzI5Y2NlNjk0Zjc0MzY5M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVy
c01hYy5tbQpAQCAtMjksOSArMjksOSBAQAogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgi
CiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCisjaW1wb3J0ICJEYWVtb25EZWNvZGVy
LmgiCisjaW1wb3J0ICJEYWVtb25FbmNvZGVyLmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgi
Ci0jaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKLSNpbXBvcnQgIlBy
aXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2ltcG9ydCA8V2ViQ29yZS9DZXJ0aWZp
Y2F0ZUluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KQEAgLTY3LDcgKzY3LDcgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWIKIH0KIAogdGVtcGxhdGU8Pgotdm9pZCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZShXZWJLaXQ6OlBDTTo6RW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8p
Cit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKFdl
YktpdDo6RGFlbW9uOjpFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKIHsKICAgICBBU1NFUlQoY2VydGlmaWNhdGVJbmZvLnR5
cGUoKSA9PSBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm86OlR5cGU6OlRydXN0KTsKICAgICBlbmNv
ZGVyIDw8IGNlcnRpZmljYXRlSW5mby50cnVzdCgpOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz46CiB9CiAKIHRlbXBsYXRlPD4KLXN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
bz46OmRlY29kZShXZWJLaXQ6OlBDTTo6RGVjb2RlciYgZGVjb2RlcikKK3N0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbz46OmRlY29kZShXZWJLaXQ6OkRhZW1vbjo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IHRydXN0OwogICAgIGRlY29k
ZXIgPj4gdHJ1c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNv
cmVBcmd1bWVudENvZGVyc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJD
b3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCAwNDNiMzA4ODdmMDA4MWRmN2YxM2E1ZmI3
OWYzMGE0OGM4YWYxZjg5Li4yOTczYTJiYWI2Y2E4YjAyMzMyNWNiMDAxZTIwNzNhZGYxZjA0MDZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENv
ZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzU291cC5jcHAKQEAgLTI5LDkgKzI5LDkgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzR0xpYi5oIgorI2luY2x1
ZGUgIkRhZW1vbkRlY29kZXIuaCIKKyNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCiAjaW5jbHVk
ZSAiRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVj
b2Rlci5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DcmVk
ZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0aW9uYXJ5UG9wdXBJbmZvLmg+CkBAIC02
Nyw3ICs2Nyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJCiAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oY2VydGlmaWNhdGVJbmZvLnRsc0Vycm9ycygpKTsKIH0KIHRlbXBs
YXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8RW5jb2Rlcj4o
RW5jb2RlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwotdGVtcGxhdGUgdm9pZCBBcmd1bWVu
dENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2Vi
S2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKK3RlbXBsYXRlIHZv
aWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8V2ViS2l0OjpEYWVtb246
OkVuY29kZXI+KFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZv
Jik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPENlcnRpZmlj
YXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKQEAgLTkxLDcgKzkxLDcgQEAgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGQKICAgICBy
ZXR1cm4gY2VydGlmaWNhdGVJbmZvOwogfQogdGVtcGxhdGUgc3RkOjpvcHRpb25hbDxDZXJ0aWZp
Y2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlPERlY29kZXI+
KERlY29kZXImKTsKLXRlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1
bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4o
V2ViS2l0OjpQQ006OkRlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNh
dGVJbmZvPiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZTxXZWJLaXQ6OkRh
ZW1vbjo6RGVjb2Rlcj4oV2ViS2l0OjpEYWVtb246OkRlY29kZXImKTsKIAogdm9pZCBBcmd1bWVu
dENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4
IGE0NTBhZDUzM2FkNjljMWU4MWZkNTdhNjVlNmMzNzY4N2NjZDY4YzcuLjU1MzE5Y2JiNTdhZTRh
YmFkM2UzMmRmYmZkYjVmZjJhOGM3NDE1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTA2LDggKzEwNiw2
IEBAIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwCiBOZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rp
b24uY3BwCiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5jcHAKLU5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5jcHAKLU5ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5j
b2Rlci5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAogCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIEBuby11bmlmeQpAQCAtMTYyLDYgKzE2
MCw5IEBAIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5jcHAgQG5vLXVuaWZ5CiBQbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuY3Bw
IEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIEBuby11bmlmeQorUGxhdGZv
cm0vSVBDL0RhZW1vbkNvbm5lY3Rpb24uY3BwCitQbGF0Zm9ybS9JUEMvRGFlbW9uRGVjb2Rlci5j
cHAKK1BsYXRmb3JtL0lQQy9EYWVtb25FbmNvZGVyLmNwcAogUGxhdGZvcm0vSVBDL0RlY29kZXIu
Y3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwIEBuby11bmlmeQogUGxhdGZv
cm0vSVBDL0pTSVBDQmluZGluZy5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggYzVkNjM2MWRiYzE4YTEwNjNmM2FmZThkYWIzMzZhNTBhMDYxMzk2MC4uMDU3ODgzYWIwMGNm
ZDcwMGIyZTQxMzZhMmM3M2VmMGQ5NDIwYmY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
OTYsNiArOTYsNyBAQCBQbGF0Zm9ybS9pb3MvQWNjZXNzaWJpbGl0eUlPUy5tbQogUGxhdGZvcm0v
aW9zL1BheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxlci5tbQogCiBQbGF0Zm9ybS9JUEMvY29j
b2EvQ29ubmVjdGlvbkNvY29hLm1tCitQbGF0Zm9ybS9JUEMvY29jb2EvRGFlbW9uQ29ubmVjdGlv
bkNvY29hLm1tCiBQbGF0Zm9ybS9JUEMvY29jb2EvTWFjaE1lc3NhZ2UuY3BwCiAKIFBsYXRmb3Jt
L0lQQy9kYXJ3aW4vSVBDU2VtYXBob3JlRGFyd2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjQ3MWQ5MzE4ZjQ1OWIwYjQxY2Rk
MWUyNTBiNzdkYTdlMTA5MTQwMS4uZTA1NzIzODc1NGNhYzNmMTIzMmJlZjE5Y2JhMjJlMDRlOTQ4
MjcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMjU2LDYgKzEyNTYsOCBAQAogCQk1QzE0MjcwNzFDMjNGODRDMDBENDExODMgLyog
RG93bmxvYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1QzE0MjZGOTFDMjNGODQzMDBENDExODMgLyogRG93bmxvYWRNYW5hZ2VyLmggKi87
IH07CiAJCTVDMTQyNzE4MUMyM0Y4QjcwMEQ0MTE4MyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
MTQyNzE0MUMyM0Y4QjAwMEQ0MTE4MyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCAq
LzsgfTsKIAkJNUMxNTc5REMyNzE2NUI4MjAwRUQ1MjgwIC8qIHdlYnB1c2hkLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE1NzlEQjI3MTY1Qjc1MDBF
RDUyODAgLyogd2VicHVzaGQuYyAqLzsgfTsKKwkJNUMxNTc5RUUyNzE3MkE4QjAwRUQ1MjgwIC8q
IERhZW1vbkVuY29kZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMTU3OUVBMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25FbmNvZGVyLmggKi87IH07
CisJCTVDMTU3OUVGMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25EZWNvZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE1NzlFQjI3MTcyQThCMDBF
RDUyODAgLyogRGFlbW9uRGVjb2Rlci5oICovOyB9OwogCQk1QzE5QTUyMDFGRDBCMjk1MDBFRUEz
MjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTlBNTFGMUZEMEIxNDcwMEVFQTMyMyAvKiBVUkxTY2hl
bWVUYXNrUGFyYW1ldGVycy5oICovOyB9OwogCQk1QzIwQ0JBMDFCQjFFQ0Q4MDA4OTVCQjEgLyog
TmV0d29ya1Nlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMjBDQjlFMUJCMEREMTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovOyB9
OwogCQk1QzI2OTU4NTIwMDQzMjEyMDA1QzQzOUIgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMy
Njk1ODQyMDA0MkYxMjAwNUM0MzlCIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVyc1ByaXZhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDUzNSw2
ICs0NTM3LDEzIEBACiAJCTVDMTU3OURBMjcxNjVCMkYwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1h
Y2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gd2VicHVzaGQ7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVDMTU3OURCMjcxNjVCNzUwMEVE
NTI4MCAvKiB3ZWJwdXNoZC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSB3ZWJwdXNoZC5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1QzE1NzlERDI3MTY1QkU1MDBFRDUyODAgLyogd2VicHVzaGQu
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gd2VicHVzaGQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTVDMTU3OUUyMjcxNzJBNDkwMEVENTI4MCAvKiBEYWVtb25Db25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhZW1vbkNvbm5l
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlFMzI3MTcyQTQ5
MDBFRDUyODAgLyogRGFlbW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEYWVtb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTVDMTU3OUU2MjcxNzJBNTEwMEVENTI4MCAvKiBEYWVtb25Db25uZWN0aW9uQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYWVtb25Db25uZWN0aW9uQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDMTU3OUU4MjcxNzJBOEEwMEVE
NTI4MCAvKiBEYWVtb25FbmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERhZW1vbkVuY29kZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
QzE1NzlFOTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYWVtb25EZWNvZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNUMxNTc5RUEyNzE3MkE4QjAwRUQ1MjgwIC8qIERhZW1vbkVuY29k
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGFlbW9uRW5jb2Rlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzE1NzlFQjI3MTcyQThCMDBFRDUyODAgLyog
RGFlbW9uRGVjb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYWVtb25E
ZWNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMTlBNTFFMUZEMEIxNDYw
MEVFQTMyMyAvKiBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMTlBNTFGMUZEMEIxNDcwMEVFQTMyMyAvKiBVUkxTY2hl
bWVUYXNrUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxT
Y2hlbWVUYXNrUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzFC
MzhERjI2NjcxNDA3MDBCMTU0NUIgLyogV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDYzOSwxNCArNDY0OCwxMCBAQAogCQk1Q0I5MzBGNTI2RTgwMjE1MDAzMkIx
QzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwRjYyNkU4MDIxNTAwMzJCMUMw
IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGFlbW9uQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEY3MjZFODAyMTUwMDMyQjFDMCAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhZW1vbkNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjkzMEY4MjZFODAyMTUwMDMy
QjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNCOTMwRjkyNkU4MDIxNTAwMzJCMUMw
IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGQTI2RTgwMjE1MDAzMkIxQzAgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGQjI2RTgwMjE1MDAzMkIx
QzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBGQzI2RTgwMjE2
MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
bmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjkzMEZEMjZFODAy
MTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEZFMjZFODAyMTYwMDMyQjFDMCAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb25uZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjkzMEZGMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDQjkzMTA0MjZFODM3RkMwMDMyQjFDMCAvKiBQQ01EYWVtb25FbnRyeVBv
aW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBDTURhZW1vbkVudHJ5UG9p
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMxMDUyNkU4MzdGRDAwMzJC
MUMwIC8qIFBDTURhZW1vbkVudHJ5UG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQQ01EYWVtb25FbnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1Q0I5MzEwNjI2RTgzOUE5MDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzY5LDYgKzczNzQsMTIgQEAKIAkJCQlCQ0VFOTY2
QjExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5oICovLAogCQkJCUJDMDMyREEyMTBGNDM3
RDEwMDU4QzE1QSAvKiBDb25uZWN0aW9uLmNwcCAqLywKIAkJCQlCQzAzMkRBMzEwRjQzN0QxMDA1
OEMxNUEgLyogQ29ubmVjdGlvbi5oICovLAorCQkJCTVDMTU3OUUyMjcxNzJBNDkwMEVENTI4MCAv
KiBEYWVtb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk1QzE1NzlFMzI3MTcyQTQ5MDBFRDUyODAg
LyogRGFlbW9uQ29ubmVjdGlvbi5oICovLAorCQkJCTVDMTU3OUU5MjcxNzJBOEIwMEVENTI4MCAv
KiBEYWVtb25EZWNvZGVyLmNwcCAqLywKKwkJCQk1QzE1NzlFQjI3MTcyQThCMDBFRDUyODAgLyog
RGFlbW9uRGVjb2Rlci5oICovLAorCQkJCTVDMTU3OUU4MjcxNzJBOEEwMEVENTI4MCAvKiBEYWVt
b25FbmNvZGVyLmNwcCAqLywKKwkJCQk1QzE1NzlFQTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9u
RW5jb2Rlci5oICovLAogCQkJCTFBQzc1MzdFMTgzQkU1MEYwMDcyQ0IxNSAvKiBEYXRhUmVmZXJl
bmNlLmggKi8sCiAJCQkJQkMwMzJEOUQxMEY0MzdEMTAwNThDMTVBIC8qIERlY29kZXIuY3BwICov
LAogCQkJCUJDMDMyRDlFMTBGNDM3RDEwMDU4QzE1QSAvKiBEZWNvZGVyLmggKi8sCkBAIC05NDM3
LDEwICs5NDQ4LDYgQEAKIAkJCQk1QzgyNkQ2OTI2RDQ4MkVBMDA4QUVDOTEgLyogUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oICovLAogCQkJCTVDQkU5MDkwMjZEN0ZCN0MwMDVBMkU5
NSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnSW5mby5jcHAgKi8sCiAJCQkJNUNCRTkw
OEYyNkQ3RkI2MjAwNUEyRTk1IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdJbmZvLmgg
Ki8sCi0JCQkJNUNCOTMwRjgyNkU4MDIxNTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50RGVjb2Rlci5jcHAgKi8sCi0JCQkJNUNCOTMwRkQyNkU4MDIxNjAwMzJCMUMwIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oICovLAotCQkJCTVDQjkzMEY5MjZFODAyMTUwMDMy
QjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuY3BwICovLAotCQkJCTVDQjkz
MEZGMjZFODAyMTYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCAq
LywKIAkJCQk2QkQwNTg2NDIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmNwcCAqLywKIAkJCQk2QkQwNTg2MzIyMENFOEMyMDAwQkVENUMgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggKi8sCiAJCQkJNUNCOTMxMDYyNkU4MzlBOTAwMzJC
MUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAgKi8sCkBA
IC0xMTE3MSw2ICsxMTE3OCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTFBMzBFQUM1MTE1RDdEQTMwMDUzRTkzNyAvKiBDb25uZWN0aW9uQ29jb2EubW0gKi8s
CisJCQkJNUMxNTc5RTYyNzE3MkE1MTAwRUQ1MjgwIC8qIERhZW1vbkNvbm5lY3Rpb25Db2NvYS5t
bSAqLywKIAkJCQkxQTFFQzY5RDE4NzIwOTIxMDBCOTUxRjAgLyogSW1wb3J0YW5jZUFzc2VydGlv
bi5oICovLAogCQkJCTFBNkQ4NkJGMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5jcHAg
Ki8sCiAJCQkJMUE2RDg2QzAxREY3NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmggKi8sCkBA
IC0xMjMxMSw2ICsxMjMxOSw4IEBACiAJCQkJNTc1OTdFQkQyMTgxODQ5MDAwMzdGOTI0IC8qIEN0
YXBBdXRoZW50aWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzU5N0VCOTIxODExRDlBMDAz
N0Y5MjQgLyogQ3RhcEhpZERyaXZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcwREFBQ0EyMzAz
ODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDMTU3
OUVGMjcxNzJBOEIwMEVENTI4MCAvKiBEYWVtb25EZWNvZGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1QzE1NzlFRTI3MTcyQThCMDBFRDUyODAgLyogRGFlbW9uRW5jb2Rlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzU1RjkxNzExQzU5Njc2RTAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzc1MzgwMTgzQkU1MEYwMDcyQ0IxNSAvKiBEYXRhUmVm
ZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTAzNkFFOTIzQTk3MDg3MDAwMEIwNkEgLyog
RGVidWdnYWJsZUluZm9EYXRhLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>