<?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>82862</bug_id>
          
          <creation_ts>2012-04-02 00:25:45 -0700</creation_ts>
          <short_desc>[Chromium] Move another block of headers from WebKit/chromium/public/platform to Platform/chromium/public</short_desc>
          <delta_ts>2012-04-02 00:31:48 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>jamesr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>593218</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-02 00:25:45 -0700</bug_when>
    <thetext>[Chromium] Move another block of headers from WebKit/chromium/public/platform to Platform/chromium/public</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593224</commentid>
    <comment_count>1</comment_count>
      <attachid>135035</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-02 00:30:20 -0700</bug_when>
    <thetext>Created attachment 135035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593227</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-04-02 00:31:48 -0700</bug_when>
    <thetext>Committed r112834: &lt;http://trac.webkit.org/changeset/112834&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135035</attachid>
            <date>2012-04-02 00:30:20 -0700</date>
            <delta_ts>2012-04-02 00:30:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82862-20120402003018.patch</filename>
            <type>text/plain</type>
            <size>42312</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTEyODMzKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTAyICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBNb3ZlIGFu
b3RoZXIgYmxvY2sgb2YgaGVhZGVycyBmcm9tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0gdG8gUGxhdGZvcm0vY2hyb21pdW0vcHVibGljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mjg2MgorCisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5
IEVyaWMgU2VpZGVsLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJv
bWl1bS9wdWJsaWMvV2ViQXVkaW9CdXMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9CdXMuaC4KKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViQXVkaW9EZXZpY2UuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9EZXZpY2UuaC4KKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViR2FtZXBhZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9wbGF0Zm9ybS9XZWJHYW1lcGFkLmguCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dl
YkdhbWVwYWRzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3Bs
YXRmb3JtL1dlYkdhbWVwYWRzLmguCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlNvY2tl
dFN0cmVhbUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L3BsYXRmb3JtL1dlYlNvY2tldFN0cmVhbUVycm9yLmguCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYlNvY2tldFN0cmVhbUhhbmRsZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJTb2NrZXRTdHJlYW1IYW5kbGUuaC4KKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvV2ViU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlNvY2tldFN0cmVh
bUhhbmRsZUNsaWVudC5oLgorCiAyMDEyLTA0LTAxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3ZlIHRocmVhZC1yZWxhdGVkIEFQSXMgZnJv
bSBXZWJLaXQgaW50byBQbGF0Zm9ybQpJbmRleDogU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5
cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkJKHJldmlzaW9u
IDExMjgzMikKKysrIFNvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw4IEBACiAgICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAgICAgJ3BsYXRmb3Jt
X2ZpbGVzJzogWwogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oJywKKyAg
ICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViQXVkaW9CdXMuaCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vcHVibGljL1dlYkF1ZGlvRGV2aWNlLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9XZWJDU3RyaW5nLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJD
YW52YXMuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbG9yLmgnLApAQCAt
NDMsNiArNDUsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJGbG9hdFBvaW50
LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJGbG9hdFF1YWQuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkZsb2F0UmVjdC5oJywKKyAgICAgICAgICAgICdj
aHJvbWl1bS9wdWJsaWMvV2ViR2FtZXBhZC5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViR2FtZXBhZHMuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkdyYXBo
aWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQQm9k
eS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViSFRUUEhlYWRlclZpc2l0b3Iu
aCcsCkBAIC03MSw2ICs3NSw5IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJl
Y3QuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNpemUuaCcs
CisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNvY2tldFN0cmVhbUVycm9yLmgnLAor
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTb2NrZXRTdHJlYW1IYW5kbGUuaCcsCisg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5o
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViU29saWRDb2xvckxheWVyLmgnLAog
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTdHJpbmcuaCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vcHVibGljL1dlYlRocmVhZC5oJywKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViQXVkaW9CdXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkF1ZGlvQnVzLmgJKHJldmlzaW9uIDExMjgzMSkJKGZyb20gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9CdXMuaDoxMTI4MzEp
CisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkF1ZGlvQnVzLmgJKHdvcmtp
bmcgY29weSkKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQXVkaW9E
ZXZpY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YkF1ZGlvRGV2aWNlLmgJKHJldmlzaW9uIDExMjgzMSkJKGZyb20gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9EZXZpY2UuaDoxMTI4MzEpCisrKyBTb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkF1ZGlvRGV2aWNlLmgJKHdvcmtpbmcgY29weSkK
SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR2FtZXBhZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR2FtZXBhZC5oCShy
ZXZpc2lvbiAxMTI4MzEpCShmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRm
b3JtL1dlYkdhbWVwYWQuaDoxMTI4MzEpCisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkdhbWVwYWQuaAkod29ya2luZyBjb3B5KQpJbmRleDogU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJHYW1lcGFkcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViR2FtZXBhZHMuaAkocmV2aXNpb24gMTEyODMxKQkoZnJvbSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJHYW1lcGFkcy5oOjExMjgz
MSkKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR2FtZXBhZHMuaAkod29y
a2luZyBjb3B5KQpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTb2Nr
ZXRTdHJlYW1FcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViU29ja2V0U3RyZWFtRXJyb3IuaAkocmV2aXNpb24gMTEyODMxKQkoZnJvbSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJTb2NrZXRTdHJlYW1FcnJvci5o
OjExMjgzMSkKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU29ja2V0U3Ry
ZWFtRXJyb3IuaAkod29ya2luZyBjb3B5KQpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJTb2NrZXRTdHJlYW1IYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNvY2tldFN0cmVhbUhhbmRsZS5oCShyZXZpc2lvbiAx
MTI4MzEpCShmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlNv
Y2tldFN0cmVhbUhhbmRsZS5oOjExMjgzMSkKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViU29ja2V0U3RyZWFtSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKSW5kZXg6IFNvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQuaAkocmV2aXNpb24gMTEyODMxKQkoZnJvbSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaDox
MTI4MzEpCisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNvY2tldFN0cmVh
bUhhbmRsZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MTI4MzMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wNC0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgor
CisgICAgICAgIFtDaHJvbWl1bV0gTW92ZSBhbm90aGVyIGJsb2NrIG9mIGhlYWRlcnMgZnJvbSBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtIHRvIFBsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI4NjIK
KworICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBUaGlz
IGlzIHBhcnQgb2YgdGhlIGNoYW5nZSBkaXNjdXNzZWQgaW4KKyAgICAgICAgaHR0cHM6Ly9saXN0
cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJraXQtZGV2LzIwMTItTWFyY2gvMDIwMTY2Lmh0bWwK
KworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L1dlYkF1ZGlvQnVzLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViQXVkaW9CdXMuY3BwLgorCiAyMDEyLTA0LTAxICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3ZlIHRocmVhZC1yZWxhdGVkIEFQ
SXMgZnJvbSBXZWJLaXQgaW50byBQbGF0Zm9ybQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNp
b24gMTEyODMyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkp
CkBAIC0zMjgwLDYgKzMyODAsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Ro
ZW1lQ2hyb21pdW1NYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1RyYWNl
RXZlbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vV2lkZ2V0Q2hyb21pdW0u
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkF1ZGlvQnVz
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJEYXRhLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJIVFRQQm9keS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViSFRUUExvYWRJ
bmZvLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYkF1ZGlvQnVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1dlYkF1ZGlvQnVzLmNwcAkocmV2aXNpb24gMTEyODMxKQkoZnJvbSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBdWRpb0J1cy5jcHA6MTEyODMxKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJBdWRpb0J1cy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViQXVkaW9CdXMuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVESU8pCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNlbHNlCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBBdWRpb0J1cyB7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlm
CisKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJBdWRpb0J1c1ByaXZhdGUgOiBwdWJsaWMgQXVkaW9CdXMgeworfTsKKwordm9pZCBXZWJB
dWRpb0J1czo6aW5pdGlhbGl6ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVu
Z3RoLCBkb3VibGUgc2FtcGxlUmF0ZSkKK3sgICAgICAgIAorI2lmIEVOQUJMRShXRUJfQVVESU8p
CisgICAgQXVkaW9CdXMqIGF1ZGlvQnVzID0gbmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMs
IGxlbmd0aCk7CisgICAgYXVkaW9CdXMtPnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CisKKyAg
ICBpZiAobV9wcml2YXRlKQorICAgICAgICBkZWxldGUgbV9wcml2YXRlOworICAgIG1fcHJpdmF0
ZSA9IHN0YXRpY19jYXN0PFdlYkF1ZGlvQnVzUHJpdmF0ZSo+KGF1ZGlvQnVzKTsKKyNlbHNlCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKK30KKwordm9pZCBXZWJBdWRpb0J1czo6
cmVzZXQoKQoreworI2lmIEVOQUJMRShXRUJfQVVESU8pCisgICAgZGVsZXRlIG1fcHJpdmF0ZTsK
KyAgICBtX3ByaXZhdGUgPSAwOworI2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNl
bmRpZgorfQorCit1bnNpZ25lZCBXZWJBdWRpb0J1czo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0
Cit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bnVtYmVyT2ZDaGFubmVscygpOworI2Vs
c2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
CitzaXplX3QgV2ViQXVkaW9CdXM6Omxlbmd0aCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKyAgICBpZiAoIW1fcHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+bGVuZ3RoKCk7CisjZWxzZQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2RvdWJsZSBXZWJBdWRpb0J1czo6c2FtcGxlUmF0
ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAgICBpZiAoIW1fcHJpdmF0ZSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2FtcGxlUmF0ZSgpOwor
I2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgor
fQorCitmbG9hdCogV2ViQXVkaW9CdXM6OmNoYW5uZWxEYXRhKHVuc2lnbmVkIGNoYW5uZWxJbmRl
eCkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIGlmICghbV9wcml2YXRlKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICBBU1NFUlQoY2hhbm5lbEluZGV4IDwgbnVtYmVyT2ZDaGFubmVscygp
KTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5jaGFubmVsKGNoYW5uZWxJbmRleCktPm11dGFibGVE
YXRhKCk7CisjZWxzZQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKK1Bhc3NPd25QdHI8QXVkaW9CdXM+IFdlYkF1ZGlvQnVzOjpyZWxlYXNlKCkK
K3sKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorICAgIE93blB0cjxBdWRpb0J1cz4gYXVkaW9CdXMo
YWRvcHRQdHIoc3RhdGljX2Nhc3Q8QXVkaW9CdXMqPihtX3ByaXZhdGUpKSk7CisgICAgbV9wcml2
YXRlID0gMDsKKyAgICByZXR1cm4gYXVkaW9CdXMucmVsZWFzZSgpOworI2Vsc2UKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViQXVkaW9CdXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQXVkaW9CdXMuY3BwCShyZXZpc2lvbiAxMTI4MzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkF1ZGlvQnVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJBdWRpb0J1cy5oIgorI2luY2x1ZGUgPHB1
YmxpYy9XZWJBdWRpb0J1cy5oPgogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNpbmNsdWRlICJB
dWRpb0J1cy5oIgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjgz
MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTItMDQtMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIE1vdmUgYW5vdGhlciBibG9jayBvZiBoZWFkZXJzIGZy
b20gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybSB0byBQbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgy
ODYyCisKKyAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJBdWRpb0J1cy5oOiBS
ZXBsYWNlZC4KKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9EZXZpY2UuaDogUmVw
bGFjZWQuCisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkdhbWVwYWQuaDogUmVwbGFjZWQu
CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkdhbWVwYWRzLmg6IFJlcGxhY2VkLgorICAg
ICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJTb2NrZXRTdHJlYW1FcnJvci5oOiBSZXBsYWNlZC4K
KyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViU29ja2V0U3RyZWFtSGFuZGxlLmg6IFJlcGxh
Y2VkLgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQuaDogUmVwbGFjZWQuCisgICAgICAgICogc3JjL1dlYkF1ZGlvQnVzLmNwcDogUmVtb3ZlZC4K
KwogMjAxMi0wNC0wMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gTW92ZSB0aHJlYWQtcmVsYXRlZCBBUElzIGZyb20gV2ViS2l0IGludG8gUGxh
dGZvcm0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDExMjgzMikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpAQCAt
NDc2LDcgKzQ3Niw2IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJBcnJheUJ1ZmZlci5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViQXJyYXlCdWZmZXJWaWV3LmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJBdHRyaWJ1dGUuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dl
YkF1ZGlvQnVzLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJCaW5kaW5ncy5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViQmxvYkRhdGEuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3Bs
YXRmb3JtL1dlYkF1ZGlvQnVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9CdXMuaAkocmV2aXNpb24gMTEyODMxKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9CdXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw3NSArMSwyNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCiAgKiBhcmUgbWV0OgorICoKICAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECiAgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKICAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCiAgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXZWJBdWRp
b0J1c19oCi0jZGVmaW5lIFdlYkF1ZGlvQnVzX2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIEF1ZGlvQnVzOyB9Ci0KLSNpZiBXRUJLSVRfSU1Q
TEVNRU5UQVRJT04KLW5hbWVzcGFjZSBXVEYgeyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3Mg
UGFzc093blB0cjsgfQotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJB
dWRpb0J1c1ByaXZhdGU7Ci0KLS8vIEEgY29udGFpbmVyIGZvciBtdWx0aS1jaGFubmVsIGxpbmVh
ciBQQ00gYXVkaW8gZGF0YS4KLS8vCi0vLyBXQVJOSU5HOiBJdCBpcyBub3Qgc2FmZSB0byBwYXNz
IGEgV2ViQXVkaW9CdXMgYWNyb3NzIHRocmVhZHMhISEKLS8vCi1jbGFzcyBXZWJBdWRpb0J1cyB7
Ci1wdWJsaWM6Ci0gICAgV2ViQXVkaW9CdXMoKSA6IG1fcHJpdmF0ZSgwKSB7IH0KLSAgICB+V2Vi
QXVkaW9CdXMoKSB7IHJlc2V0KCk7IH0KLSAgICAKLSAgICAvLyBpbml0aWFsaXplKCkgYWxsb2Nh
dGVzIG1lbW9yeSBvZiB0aGUgZ2l2ZW4gbGVuZ3RoIGZvciB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGNo
YW5uZWxzLgotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKHVuc2lnbmVkIG51bWJl
ck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGRvdWJsZSBzYW1wbGVSYXRlKTsKLQotICAgIC8v
IHJlc2V0KCkgcmVsZWFzZXMgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgZnJvbSBpbml0aWFsaXplKCku
Ci0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7Ci0gICAgCi0gICAgV0VCS0lUX0VYUE9S
VCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0VYUE9SVCBz
aXplX3QgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0VYUE9SVCBkb3VibGUgc2FtcGxlUmF0
ZSgpIGNvbnN0OwotICAgIAotICAgIFdFQktJVF9FWFBPUlQgZmxvYXQqIGNoYW5uZWxEYXRhKHVu
c2lnbmVkIGNoYW5uZWxJbmRleCk7Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBX
VEY6OlBhc3NPd25QdHI8V2ViQ29yZTo6QXVkaW9CdXM+IHJlbGVhc2UoKTsgICAgCi0jZW5kaWYK
LQotcHJpdmF0ZToKLSAgICAvLyBEaXNhbGxvdyBjb3B5IGFuZCBhc3NpZ24uCi0gICAgV2ViQXVk
aW9CdXMoY29uc3QgV2ViQXVkaW9CdXMmKTsKLSAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBXZWJB
dWRpb0J1cyYpOwotCi0gICAgV2ViQ29yZTo6QXVkaW9CdXMqIG1fcHJpdmF0ZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViQXVkaW9CdXNfaAorI2luY2x1ZGUg
Ii4uLy4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJBdWRpb0J1cy5oIgpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQXVkaW9EZXZpY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9X
ZWJBdWRpb0RldmljZS5oCShyZXZpc2lvbiAxMTI4MzEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJBdWRpb0RldmljZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDkgKzEw
LDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgog
ICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC0yNiwzMSArMjMs
NCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkF1ZGlvRGV2aWNlX2gKLSNkZWZp
bmUgV2ViQXVkaW9EZXZpY2VfaAotCi0jaW5jbHVkZSAiV2ViVmVjdG9yLmgiCi0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi0vLyBBYnN0cmFjdCBpbnRlcmZhY2UgdG8gdGhlIENocm9taXVtIGF1ZGlv
IHN5c3RlbS4KLQotY2xhc3MgV2ViQXVkaW9EZXZpY2UgewotcHVibGljOgotICAgIGNsYXNzIFJl
bmRlckNhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZW5kZXIo
Y29uc3QgV2ViVmVjdG9yPGZsb2F0Kj4mIGF1ZGlvRGF0YSwgc2l6ZV90IG51bWJlck9mRnJhbWVz
KSA9IDA7Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIH5SZW5kZXJDYWxsYmFjaygp
IHsgfQotICAgIH07Ci0gIAotICAgIHZpcnR1YWwgfldlYkF1ZGlvRGV2aWNlKCkgeyB9Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7
Ci0gICAgdmlydHVhbCBkb3VibGUgc2FtcGxlUmF0ZSgpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViQXVkaW9EZXZpY2VfaAorI2luY2x1ZGUgIi4uLy4u
Ly4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJBdWRpb0RldmljZS5oIgpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR2FtZXBhZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdhbWVw
YWQuaAkocmV2aXNpb24gMTEyODMxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
cGxhdGZvcm0vV2ViR2FtZXBhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg2ICsxLDI2IEBACi0v
LyBDb3B5cmlnaHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0v
LwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLS8vCi0vLyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
Ly8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLS8vICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLS8vIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8gSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UKLS8vIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0vLyBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAotLy8gREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLS8vIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0vLyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QKLS8vIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLS8vIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAotLy8gREFNQUdF
LgorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCiAKLSNpZm5kZWYgV2ViR2FtZXBhZF9oCi0jZGVmaW5lIFdlYkdhbWVwYWRfaAotCi0j
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0j
cHJhZ21hIHBhY2socHVzaCwgMSkKLQotLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgaW50ZW50aW9uYWxs
eSBQT0QgYW5kIGZpeGVkIHNpemUgc28gdGhhdCBpdCBjYW4gYmUgc2hhcmVkCi0vLyBtZW1vcnkg
YmV0d2VlbiBoYXJkd2FyZSBwb2xsaW5nIHRocmVhZHMgYW5kIHRoZSByZXN0IG9mIHRoZSBicm93
c2VyLiBTZWUKLS8vIGFsc28gV2ViR2FtZXBhZHMuaC4KLWNsYXNzIFdlYkdhbWVwYWQgewotcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaWRMZW5ndGhDYXAgPSAxMjg7Ci0gICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBheGVzTGVuZ3RoQ2FwID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0IHNp
emVfdCBidXR0b25zTGVuZ3RoQ2FwID0gMzI7Ci0KLSAgICBXZWJHYW1lcGFkKCkKLSAgICAgICAg
OiBjb25uZWN0ZWQoZmFsc2UpCi0gICAgICAgICwgdGltZXN0YW1wKDApCi0gICAgICAgICwgYXhl
c0xlbmd0aCgwKQotICAgICAgICAsIGJ1dHRvbnNMZW5ndGgoMCkKLSAgICB7Ci0gICAgICAgIGlk
WzBdID0gMDsKLSAgICB9Ci0KLSAgICAvLyBJcyB0aGVyZSBhIGdhbWVwYWQgY29ubmVjdGVkIGF0
IHRoaXMgaW5kZXg/Ci0gICAgYm9vbCBjb25uZWN0ZWQ7Ci0KLSAgICAvLyBEZXZpY2UgaWRlbnRp
ZmllciAoYmFzZWQgb24gbWFudWZhY3R1cmVyLCBtb2RlbCwgZXRjLikuCi0gICAgV2ViVUNoYXIg
aWRbaWRMZW5ndGhDYXBdOwotCi0gICAgLy8gTW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIHZhbHVl
IHJlZmVycmluZyB0byB3aGVuIHRoZSBkYXRhIHdlcmUgbGFzdAotICAgIC8vIHVwZGF0ZWQuCi0g
ICAgdW5zaWduZWQgbG9uZyBsb25nIHRpbWVzdGFtcDsKLQotICAgIC8vIE51bWJlciBvZiB2YWxp
ZCBlbnRyaWVzIGluIHRoZSBheGVzIGFycmF5LgotICAgIHVuc2lnbmVkIGF4ZXNMZW5ndGg7Ci0K
LSAgICAvLyBOb3JtYWxpemVkIHZhbHVlcyByZXByZXNlbnRpbmcgYXhlcywgaW4gdGhlIHJhbmdl
IFstMS4uMV0uCi0gICAgZmxvYXQgYXhlc1theGVzTGVuZ3RoQ2FwXTsKLQotICAgIC8vIE51bWJl
ciBvZiB2YWxpZCBlbnRyaWVzIGluIHRoZSBidXR0b25zIGFycmF5LgotICAgIHVuc2lnbmVkIGJ1
dHRvbnNMZW5ndGg7Ci0KLSAgICAvLyBOb3JtYWxpemVkIHZhbHVlcyByZXByZXNlbnRpbmcgYnV0
dG9ucywgaW4gdGhlIHJhbmdlIFswLi4xXS4KLSAgICBmbG9hdCBidXR0b25zW2J1dHRvbnNMZW5n
dGhDYXBdOwotfTsKLQotI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotQ09NUElMRV9BU1NFUlQo
c2l6ZW9mKFdlYkdhbWVwYWQpID09IDQ2NSwgV2ViR2FtZXBhZF9oYXNfd3Jvbmdfc2l6ZSk7Ci0j
ZW5kaWYKLQotI3ByYWdtYSBwYWNrKHBvcCkKLQotfQotCi0jZW5kaWYgLy8gV2ViR2FtZXBhZF9o
CisjaW5jbHVkZSAiLi4vLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdhbWVw
YWQuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkdh
bWVwYWRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxh
dGZvcm0vV2ViR2FtZXBhZHMuaAkocmV2aXNpb24gMTEyODMxKQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViR2FtZXBhZHMuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2MiArMSwyNiBAQAotLy8gQ29weXJpZ2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0v
LwotLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0vLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0vLyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLS8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0vLyBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotLy8g
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKLS8vIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0vLyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgotLy8gQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUCi0vLyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0vLyBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0gKLS8vIERBTUFHRS4KKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLwogCi0jaWZuZGVmIFdlYkdhbWVwYWRzX2gKLSNkZWZpbmUg
V2ViR2FtZXBhZHNfaAotCi0jaW5jbHVkZSAiV2ViR2FtZXBhZC5oIgotCi0jaWYgV0VCS0lUX0lN
UExFTUVOVEFUSU9OCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNlbmRpZgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotI3ByYWdtYSBwYWNrKHB1c2gsIDEpCi0KLS8vIFRoaXMgc3RydWN0
dXJlIGlzIGludGVudGlvbmFsbHkgUE9EIGFuZCBmaXhlZCBzaXplIHNvIHRoYXQgaXQgY2FuIGJl
IHN0b3JlZAotLy8gaW4gc2hhcmVkIG1lbW9yeSBiZXR3ZWVuIGhhcmR3YXJlIHBvbGxpbmcgdGhy
ZWFkcyBhbmQgdGhlIHJlc3Qgb2YgdGhlCi0vLyBicm93c2VyLgotY2xhc3MgV2ViR2FtZXBhZHMg
ewotcHVibGljOgotICAgIFdlYkdhbWVwYWRzKCkKLSAgICAgICAgOiBsZW5ndGgoMCkgeyB9Ci0K
LSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGl0ZW1zTGVuZ3RoQ2FwID0gNDsKLQotICAgIC8vIE51
bWJlciBvZiB2YWxpZCBlbnRyaWVzIGluIHRoZSBpdGVtcyBhcnJheS4KLSAgICB1bnNpZ25lZCBs
ZW5ndGg7Ci0KLSAgICAvLyBHYW1lcGFkIGRhdGEgZm9yIE4gc2VwYXJhdGUgZ2FtZXBhZCBkZXZp
Y2VzLgotICAgIFdlYkdhbWVwYWQgaXRlbXNbaXRlbXNMZW5ndGhDYXBdOwotfTsKLQotI2lmIFdF
QktJVF9JTVBMRU1FTlRBVElPTgotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFdlYkdhbWVwYWRzKSA9
PSAxODY0LCBXZWJHYW1lcGFkc19oYXNfd3Jvbmdfc2l6ZSk7Ci0jZW5kaWYKLQotI3ByYWdtYSBw
YWNrKHBvcCkKLQotfQotCi0jZW5kaWYgLy8gV2ViR2FtZXBhZHNfaAorI2luY2x1ZGUgIi4uLy4u
Ly4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHYW1lcGFkcy5oIgpJbmRleDogU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViU29ja2V0U3RyZWFtRXJyb3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9X
ZWJTb2NrZXRTdHJlYW1FcnJvci5oCShyZXZpc2lvbiAxMTI4MzEpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJTb2NrZXRTdHJlYW1FcnJvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ1ICsxLDI2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKICAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRl
ZiBXZWJTb2NrZXRTdHJlYW1FcnJvcl9oCi0jZGVmaW5lIFdlYlNvY2tldFN0cmVhbUVycm9yX2gK
LQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3Mg
V2ViU29ja2V0U3RyZWFtRXJyb3IgewotcHVibGljOgotICAgIC8vIEZJWE1FOiBEZWZpbmUgU29j
a2V0U3RyZWFtIEVycm9yIGNvZGVzIGFuZCBhY2Nlc3NvciBtZXRob2RzLgotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgorI2luY2x1ZGUgIi4uLy4uLy4uLy4uL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJTb2NrZXRTdHJlYW1FcnJvci5oIgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViU29ja2V0U3RyZWFtSGFuZGxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViU29j
a2V0U3RyZWFtSGFuZGxlLmgJKHJldmlzaW9uIDExMjgzMSkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlNvY2tldFN0cmVhbUhhbmRsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDU4ICsxLDI2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKICAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lm
bmRlZiBXZWJTb2NrZXRTdHJlYW1IYW5kbGVfaAotI2RlZmluZSBXZWJTb2NrZXRTdHJlYW1IYW5k
bGVfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBXZWJEYXRhOwotY2xhc3MgV2ViU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OwotY2xhc3Mg
V2ViVVJMOwotCi1jbGFzcyBXZWJTb2NrZXRTdHJlYW1IYW5kbGUgewotcHVibGljOgotICAgIHZp
cnR1YWwgfldlYlNvY2tldFN0cmVhbUhhbmRsZSgpIHsgfQotCi0gICAgLy8gQ29ubmVjdCBuZXcg
c29ja2V0IHN0cmVhbSBhc3luY2hyb25vdXNseS4KLSAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdChj
b25zdCBXZWJVUkwmLCBXZWJTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKSB7IH0KLQotICAgIC8v
IFNlbmQgd2ViIHNvY2tldCBmcmFtZSBkYXRhIG9uIHRoZSBzb2NrZXQgc3RyZWFtLgotICAgIHZp
cnR1YWwgYm9vbCBzZW5kKGNvbnN0IFdlYkRhdGEmKSB7IHJldHVybiBmYWxzZTsgfQotCi0gICAg
Ly8gQ2xvc2UgdGhlIHNvY2tldCBzdHJlYW0uCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4vLi4v
Li4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNvY2tldFN0cmVhbUhhbmRsZS5oIgpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViU29ja2V0U3Ry
ZWFtSGFuZGxlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvcGxhdGZvcm0vV2ViU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgJKHJldmlzaW9uIDEx
MjgzMSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlNvY2tl
dFN0cmVhbUhhbmRsZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY2ICsxLDI2IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKICAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXZWJTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnRfaAotI2RlZmluZSBXZWJTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnRfaAotCi0jaW5jbHVkZSAi
V2ViQ29tbW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJEYXRhOwotY2xh
c3MgV2ViU29ja2V0U3RyZWFtRXJyb3I7Ci1jbGFzcyBXZWJTb2NrZXRTdHJlYW1IYW5kbGU7Ci1j
bGFzcyBXZWJVUkw7Ci0KLWNsYXNzIFdlYlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCB7Ci1wdWJs
aWM6Ci0KLSAgICAvLyBDYWxsZWQgd2hlbiBTb2NrZXQgU3RyZWFtIGlzIG9wZW5lZC4KLSAgICB2
aXJ0dWFsIHZvaWQgZGlkT3BlblN0cmVhbShXZWJTb2NrZXRTdHJlYW1IYW5kbGUqLCBpbnQgLyog
bWF4UGVuZGluZ1NlbmRBbGxvd2VkICovKSA9IDA7Ci0KLSAgICAvLyBDYWxsZWQgd2hlbiB8YW1v
dW50U2VudHwgYnl0ZXMgYXJlIHNlbnQuCi0gICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKFdl
YlNvY2tldFN0cmVhbUhhbmRsZSosIGludCAvKiBhbW91bnRTZW50ICovKSA9IDA7Ci0KLSAgICAv
LyBDYWxsZWQgd2hlbiBkYXRhIGFyZSByZWNlaXZlZC4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoV2ViU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgV2ViRGF0YSYpID0gMDsKLQot
ICAgIC8vIENhbGxlZCB3aGVuIFNvY2tldCBTdHJlYW0gaXMgY2xvc2VkLgotICAgIHZpcnR1YWwg
dm9pZCBkaWRDbG9zZShXZWJTb2NrZXRTdHJlYW1IYW5kbGUqKSA9IDA7Ci0KLSAgICAvLyBDYWxs
ZWQgd2hlbiBTb2NrZXQgU3RyZWFtIGhhcyBhbiBlcnJvci4KLSAgICB2aXJ0dWFsIHZvaWQgZGlk
RmFpbChXZWJTb2NrZXRTdHJlYW1IYW5kbGUqLCBjb25zdCBXZWJTb2NrZXRTdHJlYW1FcnJvciYp
ID0gMDsKLQotICAgIC8vIEZJWE1FOiBhdXRoIGNoYWxsZW5nZSBmb3IgcHJveHkKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKKyNpbmNsdWRlICIuLi8uLi8uLi8uLi9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgiCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBdWRpb0J1cy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQXVkaW9CdXMuY3BwCShyZXZpc2lvbiAx
MTI4MzEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBdWRpb0J1cy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViQXVkaW9CdXMuaCIKLQotI2lmIEVOQUJMRShX
RUJfQVVESU8pCi0jaW5jbHVkZSAiQXVkaW9CdXMuaCIKLSNlbHNlCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBBdWRpb0J1cyB7Ci19OwotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlm
Ci0KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBXZWJBdWRpb0J1c1ByaXZhdGUgOiBwdWJsaWMgQXVkaW9CdXMgewotfTsKLQotdm9pZCBXZWJB
dWRpb0J1czo6aW5pdGlhbGl6ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVu
Z3RoLCBkb3VibGUgc2FtcGxlUmF0ZSkKLXsgICAgICAgIAotI2lmIEVOQUJMRShXRUJfQVVESU8p
Ci0gICAgQXVkaW9CdXMqIGF1ZGlvQnVzID0gbmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMs
IGxlbmd0aCk7Ci0gICAgYXVkaW9CdXMtPnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7Ci0KLSAg
ICBpZiAobV9wcml2YXRlKQotICAgICAgICBkZWxldGUgbV9wcml2YXRlOwotICAgIG1fcHJpdmF0
ZSA9IHN0YXRpY19jYXN0PFdlYkF1ZGlvQnVzUHJpdmF0ZSo+KGF1ZGlvQnVzKTsKLSNlbHNlCi0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBXZWJBdWRpb0J1czo6
cmVzZXQoKQotewotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgZGVsZXRlIG1fcHJpdmF0ZTsK
LSAgICBtX3ByaXZhdGUgPSAwOwotI2Vsc2UKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNl
bmRpZgotfQotCi11bnNpZ25lZCBXZWJBdWRpb0J1czo6bnVtYmVyT2ZDaGFubmVscygpIGNvbnN0
Ci17Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+bnVtYmVyT2ZDaGFubmVscygpOwotI2Vs
c2UKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQot
Ci1zaXplX3QgV2ViQXVkaW9CdXM6Omxlbmd0aCgpIGNvbnN0Ci17Ci0jaWYgRU5BQkxFKFdFQl9B
VURJTykKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IG1fcHJpdmF0ZS0+bGVuZ3RoKCk7Ci0jZWxzZQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0KLWRvdWJsZSBXZWJBdWRpb0J1czo6c2FtcGxlUmF0
ZSgpIGNvbnN0Ci17Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBpZiAoIW1fcHJpdmF0ZSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2FtcGxlUmF0ZSgpOwot
I2Vsc2UKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLSNlbmRpZgot
fQotCi1mbG9hdCogV2ViQXVkaW9CdXM6OmNoYW5uZWxEYXRhKHVuc2lnbmVkIGNoYW5uZWxJbmRl
eCkKLXsKLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIGlmICghbV9wcml2YXRlKQotICAgICAg
ICByZXR1cm4gMDsKLSAgICBBU1NFUlQoY2hhbm5lbEluZGV4IDwgbnVtYmVyT2ZDaGFubmVscygp
KTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5jaGFubmVsKGNoYW5uZWxJbmRleCktPm11dGFibGVE
YXRhKCk7Ci0jZWxzZQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOwot
I2VuZGlmCi19Ci0KLVBhc3NPd25QdHI8QXVkaW9CdXM+IFdlYkF1ZGlvQnVzOjpyZWxlYXNlKCkK
LXsKLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIE93blB0cjxBdWRpb0J1cz4gYXVkaW9CdXMo
YWRvcHRQdHIoc3RhdGljX2Nhc3Q8QXVkaW9CdXMqPihtX3ByaXZhdGUpKSk7Ci0gICAgbV9wcml2
YXRlID0gMDsKLSAgICByZXR1cm4gYXVkaW9CdXMucmVsZWFzZSgpOwotI2Vsc2UKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>