<?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>165894</bug_id>
          
          <creation_ts>2016-12-14 22:52:42 -0800</creation_ts>
          <short_desc>Remove custom binding for MediaDevices</short_desc>
          <delta_ts>2016-12-15 09:26:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1260065</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-12-14 22:52:42 -0800</bug_when>
    <thetext>Remove custom binding for MediaDevices</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260069</commentid>
    <comment_count>1</comment_count>
      <attachid>297172</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-12-14 23:25:22 -0800</bug_when>
    <thetext>Created attachment 297172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260074</commentid>
    <comment_count>2</comment_count>
      <attachid>297175</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-12-14 23:54:02 -0800</bug_when>
    <thetext>Created attachment 297175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260148</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-12-15 09:01:02 -0800</bug_when>
    <thetext>Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260153</commentid>
    <comment_count>4</comment_count>
      <attachid>297175</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 09:26:30 -0800</bug_when>
    <thetext>Comment on attachment 297175
Patch

Clearing flags on attachment: 297175

Committed r209864: &lt;http://trac.webkit.org/changeset/209864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260154</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 09:26:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297172</attachid>
            <date>2016-12-14 23:25:22 -0800</date>
            <delta_ts>2016-12-14 23:53:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165894-20161214232430.patch</filename>
            <type>text/plain</type>
            <size>100240</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc2YTdmODU0ZTNkODZi
YzdkNmYzYjFjNGQyZDFmZTUyNTBmMzUzYy4uYWRjNTQxYmI0NmYxZmZlMWYwY2RhNmY1YTc3YjVh
OWZiODAyMjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMiBAQAorMjAxNi0xMi0xNCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGN1c3RvbSBiaW5k
aW5nIGZvciBNZWRpYURldmljZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NTg5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZXMgdGhlIGV4cGxpY2l0IGNvZGUgdG8gcGFyc2UgdGhlIE1lZGlh
U3RyZWFtQ29uc3RyYWludHMgYW5kCisgICAgICAgIE1lZGlhVHJhY2tDb25zdHJhaW50cy4gTmV4
dCBzdGVwIGNvdWxkIGJlIHRvIGNoYW5nZSB0aGUgaW50ZXJuYWwKKyAgICAgICAgY29kZSB0byB1
c2UgdGhlIHN0cnVjdHMgZnJvbSBiaW5kaW5ncyBkaXJlY3RseSBzbyB3ZSBkb24ndCBuZWVkCisg
ICAgICAgIGNvZGUgdG8gY29udmVydCB0byBhbiBpbnRlcm5hbCBmb3JtYXQuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgTWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbCBhbmQgTWVk
aWFUcmFja0NvbnN0cmFpbnRzLmNwcCwKKyAgICAgICAgcmVtb3ZlZCBKU01lZGlhRGV2aWNlc0N1
c3RvbS5jcHAuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZCBNZWRpYVRy
YWNrQ29uc3RyYWludHMuaWRsLgorICAgICAgICBBbHNvIHNvcnRlZCBsaXN0IG9mIElETCBmaWxl
cyBhbmQgZml4ZWQgdXNlIG9mIHRhYnMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFp
bnRzSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpnZXRVc2Vy
TWVkaWEpOiBDaGFuZ2VkIHRoaXMgZnVuY3Rpb24gdG8gdGFrZSBhcmd1bWVudHMgdGhhdAorICAg
ICAgICBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBiaW5kaW5ncyBzY3JpcHQsIGFuZCBjYWxsIGNyZWF0
ZU1lZGlhQ29uc3RyYWludHNJbXBsIHRvIGNvbnZlcnQKKyAgICAgICAgaW50byB0aGUgaW50ZXJu
YWwgZGF0YSBzdHJ1Y3R1cmUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMuaDogQWRkZWQgU3RyZWFtQ29uc3RyYWludHMgc3RydWN0IGFuZCBjaGFuZ2VkCisgICAg
ICAgIGdldFVzZXJNZWRpYSB0byB0YWtlIHRoYXQgYXMgc3BlY2lmaWVkIGluIHRoZSBJREwuCisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOiBBZGRlZCBkZWZp
bml0aW9uIG9mIHRoZSBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzCisgICAgICAgIGRpY3Rpb25hcnku
IFJlbW92ZWQgW0N1c3RvbV0gZnJvbSBnZXRVc2VyTWVkaWEuCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtOjpNZWRpYVN0cmVhbSk6IFBhc3MgYSByZWZlcmVuY2UgdG8gYWRkT2JzZXJ2ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogUGFzcyBhIHJmZXJlbmNl
IHRvIHJlbW92ZU9ic2VydmVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmludGVy
bmFsQWRkVHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjppbnRl
cm5hbFJlbW92ZVRyYWNrKTogRGl0dG8uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFDb25z
dHJhaW50c0ltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
OmFwcGx5Q29uc3RyYWludHMpOiBDaGFuZ2VkIHRvIHRha2UgYW4gb3B0aW9uYWwKKyAgICAgICAg
TWVkaWFUcmFja0NvbnN0cmFpbnRzIGFyZ3VtZW50IGFuZCBjYWxsIGNyZWF0ZU1lZGlhQ29uc3Ry
YWludHNJbXBsIHRvIGNvbnZlcnQKKyAgICAgICAgaW50byB0aGUgaW50ZXJuYWwgZGF0YSBzdHJ1
Y3R1cmUuIEFsc28gbWVyZ2VkIHRoZSBtdWx0aXBsZSBvdmVybG9hZHMgb2YgdGhpcworICAgICAg
ICBhbGwgaW50byBhIHNpbmdsZSBmdW5jdGlvbiwgdXNlZCBhdXRvIHRvIG1ha2UgdGhlIGNvZGUg
ZWFzaWVyIHRvIHJlYWQsIGFuZAorICAgICAgICBtb3ZlZCB0aGUgY29kZSB0aGF0IHN0b3JlcyBu
ZXcgY29uc3RyYWlucyBpbnRvIHRoZSBzdWNjZXNzIGhhbmRsaW5nLCBzaW5jZSB0aGUKKyAgICAg
ICAgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQncyB0aGUgb25seSBjYXNlIHdoZXJlIHdlIHNob3Vs
ZCBzdG9yZSBpdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OmFkZE9ic2Vy
dmVyKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKTogRGl0dG8uCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6IFJlbW92ZWQgbWFueSB1
bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgQ2hhbmdlZCBnZXRDb25zdHJhaW50cyB0byByZXR1
cm4gY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiwgYXBwbHlDb25zdHJhaW50cworICAgICAg
ICB0byB0YWtlIGFuIG9wdGlvbmFsIE1lZGlhVHJhY2tDb25zdHJhaW50cywgYWRkL3JlbW92ZU9i
c2VydmVyIHRvIHRha2UgYSByZWZlcmVuY2UKKyAgICAgICAgcmF0aGVyIHRoYW4gYSBwb2ludGVy
LCBhbmQgY2hhbmdlZCBtX2NvbnN0cmFpbnRzIHRvIGJlIGEgTWVkaWFUcmFja0NvbnN0cmFpbnRz
CisgICAgICAgIGluc3RlYWQgb2YgYSBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4uCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbDogUmVtb3ZlZCBbQ3Vz
dG9tXSBmcm9tIGdldENvbnN0cmFpbnRzCisgICAgICAgIGFuZCBhcHBseUNvbnN0cmFpbnRzLgor
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldCk6IE92ZXJsb2FkZWQgZnVuY3Rpb24gdG8g
c2V0IGNvbnN0cmlhaW50cyBpbiBhCisgICAgICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFw
LgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvSW50ZXJuYWxGb3JtKTogSGVscGVyIGZ1bmN0
aW9uIHRoYXQgdGFrZXMgYQorICAgICAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldCBhbmQgdHVy
bnMgaXQgaW50byBhIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwLgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydEFkdmFuY2VkVG9JbnRlcm5hbEZvcm0pOiBNb3JlIG9mIHRoZSBzYW1lLCBidXQg
Zm9yIHZlY3RvcnMuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1w
bCk6IFRvcCBsZXZlbCBmdW5jdGlvbi4gQ2FsbHMgdGhlIG90aGVyCisgICAgICAgIGZ1bmN0aW9u
cyBhbmQgdGhlbiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmg6IEFkZGVkLiBDb250YWlucyBh
bGwgdGhlIHN0cnVjdHVyZXMKKyAgICAgICAgYW5kIHR5cGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBk
aWN0aW9uYXJpZXMgZGVmaW5lZCBpbiB0aGUgSURMIGZpbGUsIGFuZCBhbHNvIHRoZQorICAgICAg
ICBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbCBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5pZGw6IEFkZGVk
LiBDb250YWlucyB0aGUKKyAgICAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRzIGFuZCBhbGwgdGhl
IG90aGVyIGRpY3Rpb25hcmllcyBhbmQgdHlwZWRlZnMgdGhhdCBhcmUgbmVlZGVkCisgICAgICAg
IHRvIGRlZmluZSB0aGF0IGRpY3Rpb25hcnkuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3Q6OnN0YXJ0KTogQ2hhbmdlZCB0byBub3QgZGVwZW5kIG9uIE1lZGlhRGV2aWNlczo6UHJvbWlz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJlcXVlc3Qp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2VjdXJlKTogUmVhcnJhbmdlZCB0byBiZSBl
YXNpZXIgdG8gdW5kZXJzdGFuZC4KKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6
OnN0YXJ0KTogUmVtb3ZlZCBhIGxvY2FsIHZhcmlhYmxlIGZvciBzaW1wbGljaXR5LgorICAgICAg
ICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOiBSZW1vdmVkIGEgcmVkdW5k
YW50IG51bGwgY2hlY2suCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0Lmg6IFJlZHVjZWQgaW5jbHVkZXMsIGNoYW5nZWQgdG8gbm90IGRlcGVuZAorICAgICAg
ICBvbiBNZWRpYURldmljZXM6OlByb21pc2UsIHJlbW92aW5nIHRoZSByZWFzb24gdG8gaW5jbHVk
ZSBNZWRpYURldmljZXMuaC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajogVXBkYXRlZCB0byByZW1vdmUgb2xkIGZpbGVzIGFuZCBhZGQgbmV3IG9uZXMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOiBSZW1vdmVkIEpT
TWVkaWFEZXZpY2VzQ3VzdG9tLmNwcC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVkaWFE
ZXZpY2VzQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lZGlh
RGV2aWNlc0N1c3RvbS5oOiBSZW1vdmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZWRp
YVN0cmVhbVRyYWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVkaWFTdHJlYW1U
cmFjazo6YXBwbHlDb25zdHJhaW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01l
ZGlhU3RyZWFtVHJhY2s6OmdldENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKFByb2Nlc3NEb2N1bWVu
dCk6IFVwZGF0ZWQgdG8gYWxsb3cgbXVsdGlwbGUgc3RhbmRhbG9uZSBkaWN0aW9uYXJpZXMsIGFz
IGxvbmcgYXMKKyAgICAgICAgdGhlIG5hbWUgb2Ygb25lIG9mIHRoZSBkaWN0aW9uYXJpZXMgbWF0
Y2hlcyB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVEaWN0aW9uYXJ5KTogQWRkZWQg
Im90aGVyIGRpY3Rpb25hcmllcyIgYXJndW1lbnQgc28gd2UgY2FuIHN1cHBvcnQKKyAgICAgICAg
ZmlsZXMgd2l0aCBtdWx0aXBsZSBkaWN0aW9uYXJpZXMgaW4gdGhlbS4KKyAgICAgICAgKEdlbmVy
YXRlRGljdGlvbmFyaWVzSGVhZGVyQ29udGVudCk6IENvbXBsZXRlZCBzdXBwb3J0IGZvciBkaWN0
aW9uYXJpZXMgdGhhdAorICAgICAgICBhcmUgbm90IG5hbWVkIGFmdGVyIGEgdG9wIGxldmVsIGlu
dGVyZmFjZSBieSBhZGRlZCBvbmUgbW9yZSBjaGVjayBmb3IgYSBtaXNzaW5nCisgICAgICAgICRp
bnRlcmZhY2UgaW4gYSBwbGFjZSB0aGF0IG90aGVyd2lzZSB3b3VsZCBub3QgaGFuZGxlIGl0IGNv
cnJlY3RseS4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBSZW1vdmVkIGNvZGUg
dGhhdCBzZXQgJGN1cnJlbnRDYWNoZWRBdHRyaWJ1dGUgYW5kCisgICAgICAgICRjYWNoZUluZGV4
LCBzaW5jZSBubyB3YXMgcmVhZGluZyB0aGUgdmFsdWUgb2YgZWl0aGVyIGFueSBsb25nZXIuCisg
ICAgICAgIChHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXIpOiBBZGRlZCAib3RoZXIgZGljdGlvbmFy
aWVzIi4KKyAgICAgICAgKEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uKTogRGl0dG8u
CisgICAgICAgIChXcml0ZURhdGEpOiBSZW1vdmVkIHVubm5lY2Vzc2FyaWx5IGluZGlyZWN0IGNv
ZGUgdGhhdCB3YXMgdXNpbmcgRmlsZU5hbWVQcmVmaXgKKyAgICAgICAgYW5kIGEgbG9jYWwgdmFy
aWFibGUgbmFtZWQgJHByZWZpeCBpbnN0ZWFkIG9mIGp1c3Qgd3JpdGluZyAiSlMiLgorCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbDogQ29ycmVjdGVkIHRo
ZSB1c2Ugb2YgdGhlIGZpbGVwYXJzZQorICAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBQYXRoOjpC
YXNlbmFtZSBtb2R1bGU7IGFmdGVyIHJlYWRpbmcgdGhlIGRvY3VtZW50YXRpb24gZm9yCisgICAg
ICAgIHRoaXMgaXQgaXMgY2xlYXIgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIGZpcnN0IGNhbGwg
YmFzZW5hbWUsIGFuZCBmaWxlcGFyc2UKKyAgICAgICAgc2hvdWxkIGFsc28gYmUgdXNlZCBpbnN0
ZWFkIG9mIGJhc2VuYW1lLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFD
b25zdHJhaW50cy5oOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAoV2ViQ29y
ZTo6U3RyaW5nQ29uc3RyYWludDo6YXBwZW5kRXhhY3QpOiBSZW1vdmVkIGFuIGluY29ycmVjdCB1
c2Ugb2YgY2xlYXIKKyAgICAgICAgaGVyZSB0aGF0IHdvdWxkIG1lc3MgdXAgY2FzZXMgd2hlcmUg
dGhlcmUgaXMgc3VwcG9zZWQgdG8gYmUgbW9yZSB0aGFuIG9uZQorICAgICAgICBleGFjdCB2YWx1
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2
YXRlLmNwcDogUmVtdm9lZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjbG9uZSk6IFJlbW92ZWQgY29kZSB0byBjb3B5IG1fY29u
c3RyYWludHMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y29u
c3RyYWludHMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmg6IFJlbW92ZWQgdGhlIGNvbnN0cmFpbnRzCisgICAgICAgIGZ1
bmN0aW9uIG1lbWJlciBhbmQgdGhlIG1fY29uc3RyYWludHMgZGF0YSBtZW1iZXIuCisKIDIwMTYt
MTItMTQgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyMDk4MzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2NGNiZGE1
ZmQ4Y2UwNDQ1ZTIxYTJiNDIzMmEzZjJiYTQ4Zjc3ZTcwLi4yZTFkYTc4MDMwZWY4ZWJlYWQxY2E5
N2U4MjExYWEzZjc1NTUzZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTIt
MTQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBjdXN0
b20gYmluZGluZyBmb3IgTWVkaWFEZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgQWRkZWQgaW5jbHVkZSBvZiBNZWRp
YUNvbnN0cmFpbnRzSW1wbC5oLCBub3cgbmVlZGVkIGJlY2F1c2Ugd2UKKyAgICAgICAgcmVtb3Zl
ZCBzb21lIHVubmVlZGVkIGluY2x1ZGVzIGZyb20gdGhlIFdlYkNvcmUgaGVhZGVycy4KKwogMjAx
Ni0xMi0xNCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgT25s
eSBzZW5kIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFNhdmVUb1BhZ2VDYWNoZSBvbmNlIHdo
ZW4gZW50ZXJpbmcgcGFnZSBjYWNoZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTIwZDE0NmNm
MTU1Y2Q0MWFiODA5NjViNDEwYjJkNmM4NWZhMzU2NC4uNTYyYmIxZmU5ZWIzYjQ2YzU1YzIwYWIy
YWNjMTJmZWQ5NmNhM2QzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxOSw2ICsyMTksNyBA
QCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1FdmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQu
aWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsCkBAIC05MDUsNiArOTA2
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1SZWdpc3RyeS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3Bw
CisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuY3BwCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcApAQCAtMTE2MCw3ICsxMTYyLDYgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCiAgICAg
YmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuY3BwCi0gICAgYmluZGluZ3MvanMvSlNNZWRpYURldmljZXNDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNNZWRpYUtleVNlc3Npb25DdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNNZWRpYUtleVN5c3RlbUFjY2Vzc0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU01lZGlhU3RyZWFtVHJhY2tDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA3MDZmOGJmOWMyZjdlZGE0ODJkY2IzMzE1NDVkNDM0ODE4NDVlMWU0Li5lN2NkZGFj
MTdhMjE2YjhiMDdjODgzNzNmYjEyYTVmY2ViY2FkNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTE1Miw2ICsxNTIsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFp
bnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tT
dXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCkBAIC0yNTQsNiArMjU1LDkgQEAg
SlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL0NyeXB0b0tleVBhaXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9DcnlwdG9LZXlVc2FnZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvY3J5cHRvL0pzb25XZWJLZXkuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9S
c2FPdGhlclByaW1lc0luZm8uaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9TdWJ0bGVDcnlw
dG8uaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJzL0Flc0NiY1BhcmFtcy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3J5cHRvL3BhcmFtZXRlcnMvQWVzS2V5R2VuUGFyYW1zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9jcnlwdG8vcGFyYW1ldGVycy9IbWFjS2V5UGFyYW1zLmlkbCBcCkBAIC0yNjEs
MTYgKzI2NSwxMyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jcnlwdG8v
cGFyYW1ldGVycy9Sc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Ny
eXB0by9wYXJhbWV0ZXJzL1JzYUtleUdlblBhcmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5
cHRvL3BhcmFtZXRlcnMvUnNhT2FlcFBhcmFtcy5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRv
L1JzYU90aGVyUHJpbWVzSW5mby5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRvL1N1YnRsZUNy
eXB0by5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NT
SW1wb3J0UnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0tleWZyYW1lUnVsZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0tleWZyYW1lc1J1bGUuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsIFwKLQkkKFdlYkNvcmUpL2Nzcy9DU1NOYW1lc3BhY2VS
dWxlLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0NTU1BhZ2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCkBA
IC0zMDcsOCArMzA4LDggQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9t
L0NoaWxkTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NsaWVudFJlY3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9t
L0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DbGlwYm9hcmRFdmVudC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvZG9tL0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Db21w
b3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ3VzdG9tRXZlbnQuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRl
eCAyZWUwODRiYjA3OTJjMDE5ZTllODBiNzUxN2Y2YzA2ZWQyNmU2MTRjLi40MzQ2NWQ2NDMzZTIx
NTEzNjg3ZWNkOTdkZmZmODdjYTU4MjE4OWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYURldmljZXNSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgiCiAjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgpAQCAtNTYsMTIgKzU3LDI0IEBAIERvY3Vt
ZW50KiBNZWRpYURldmljZXM6OmRvY3VtZW50KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8
RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4m
JiBhdWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25z
dHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CitzdGF0aWMgUmVmPE1lZGlhQ29uc3Ry
YWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBWYXJpYW50PGJvb2ws
IE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQoreworICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKGNvbnN0cmFpbnRzLAorICAgICAgICBbJl0gKGJvb2wgY29uc3RyYWludHMpIHsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKHsgfSwgeyB9
LCBjb25zdHJhaW50cyk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgTWVkaWFUcmFj
a0NvbnN0cmFpbnRzJiBjb25zdHJhaW50cykgeworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU1l
ZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzKTsKKyAgICAgICAgfQorICAgICk7Cit9CisK
K0V4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVh
bUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAg
ICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwotICAgIHJl
dHVybiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgqZG9jdW1lbnQsIFdURk1vdmUoYXVkaW9Db25z
dHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIFdURk1vdmUocHJvbWlzZSkpOwor
ICAgIHJldHVybiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgqZG9jdW1lbnQsIGNyZWF0ZU1lZGlh
Q29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzLmF1ZGlvKSwgY3JlYXRlTWVkaWFDb25zdHJhaW50
c0ltcGwoY29uc3RyYWludHMudmlkZW8pLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBN
ZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJiBw
cm9taXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmgKaW5kZXggZmI0YjczNDhjZTk0ZDMxOWM3NTY4MTE0MGIyODg5NTJjNTE3
OWIzOS4uZjU2YjY4MTc4MGE4OWVmMTk5M2FmYmU3MTczYWUwZTY3YmE5ZjI5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDEyICsz
NSwxMiBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJKU0RPTVByb21p
c2UuaCIKLSNpbmNsdWRlICJNZWRpYURldmljZUluZm8uaCIKKyNpbmNsdWRlICJNZWRpYVRyYWNr
Q29uc3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsK
LWNsYXNzIE1lZGlhQ29uc3RyYWludHNJbXBsOworY2xhc3MgTWVkaWFEZXZpY2VJbmZvOwogY2xh
c3MgTWVkaWFTdHJlYW07CiBjbGFzcyBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHM7CiAK
QEAgLTUyLDcgKzUzLDExIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcm9taXNlID0gRE9NUHJvbWlz
ZTxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PjsKICAgICB1c2luZyBFbnVtZXJhdGVEZXZpY2Vz
UHJvbWlzZSA9IERPTVByb21pc2U8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPE1lZGlhRGV2aWNl
SW5mbz4+PjsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldFVzZXJNZWRpYShSZWY8TWVkaWFD
b25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJ
bXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIFByb21pc2UmJikgY29uc3Q7CisgICAgc3RydWN0IFN0
cmVhbUNvbnN0cmFpbnRzIHsKKyAgICAgICAgVmFyaWFudDxib29sLCBNZWRpYVRyYWNrQ29uc3Ry
YWludHM+IHZpZGVvOworICAgICAgICBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50
cz4gYXVkaW87CisgICAgfTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBnZXRVc2VyTWVkaWEoY29u
c3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0OwogICAgIHZvaWQgZW51bWVy
YXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKSBjb25zdDsKICAgICBSZWZQdHI8
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzPiBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5pZGwKaW5kZXggZjdlMGE1NzVlOWI2MDU3OTg2YTdjNzEwNjNmNWFiYjI1MDAzOGYxNi4u
ZjIwYTFiYzgwODM1MWM2MGYxODgyYzlhZTg1NzBkMTY4NjQyYmJkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbApAQCAtMjgs
MTIgKzI4LDE3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK2RpY3Rpb25hcnkgTWVkaWFTdHJl
YW1Db25zdHJhaW50cyB7CisgICAgKGJvb2xlYW4gb3IgTWVkaWFUcmFja0NvbnN0cmFpbnRzKSB2
aWRlbyA9IGZhbHNlOworICAgIChib29sZWFuIG9yIE1lZGlhVHJhY2tDb25zdHJhaW50cykgYXVk
aW8gPSBmYWxzZTsKK307CisKIFsKICAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRp
b25hbD1NRURJQV9TVFJFQU0KIF0gaW50ZXJmYWNlIE1lZGlhRGV2aWNlcyB7CiAgICAgTWVkaWFU
cmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKLSAg
ICBbQ3VzdG9tLCBNYXlUaHJvd0V4Y2VwdGlvbiwgUHJpdmF0ZUlkZW50aWZpZXIsIFB1YmxpY0lk
ZW50aWZpZXJdIFByb21pc2U8TWVkaWFTdHJlYW0+IGdldFVzZXJNZWRpYShvcHRpb25hbCBNZWRp
YVN0cmVhbUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb24s
IFByaXZhdGVJZGVudGlmaWVyLCBQdWJsaWNJZGVudGlmaWVyXSBQcm9taXNlPE1lZGlhU3RyZWFt
PiBnZXRVc2VyTWVkaWEob3B0aW9uYWwgTWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50
cyk7CiAgICAgUHJvbWlzZTxzZXF1ZW5jZTxNZWRpYURldmljZUluZm8+PiBlbnVtZXJhdGVEZXZp
Y2VzKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmNwcAppbmRleCAxZDUyYTQ4YTUzZGFlMjg4Yzg0NzE5ZmRjMWUxZWViZDQ3ZWU2
ZTU3Li5kY2FjZjhmODJmMGY1NzAzOTljZTYzNWUxM2U2NDk2ZTIxZDRiNmY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAt
NzIsNyArNzIsNyBAQCBNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFTdHJlYW1UcmFjawogICAgIHRyYWNrUHJpdmF0ZXMu
cmVzZXJ2ZUNhcGFjaXR5KHRyYWNrcy5zaXplKCkpOwogCiAgICAgZm9yIChhdXRvJiB0cmFjayA6
IHRyYWNrcykgewotICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhpcyk7CisgICAgICAgIHRy
YWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrLT5p
ZCgpLCB0cmFjayk7CiAgICAgICAgIHRyYWNrUHJpdmF0ZXMuYXBwZW5kKCZ0cmFjay0+cHJpdmF0
ZVRyYWNrKCkpOwogICAgIH0KQEAgLTk2LDcgKzk2LDcgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3Ry
ZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxNZWRpYVN0cmVhbVBy
aXYKIAogICAgIGZvciAoYXV0byYgdHJhY2tQcml2YXRlIDogbV9wcml2YXRlLT50cmFja3MoKSkg
ewogICAgICAgICBhdXRvIHRyYWNrID0gTWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRlKGNvbnRleHQs
ICp0cmFja1ByaXZhdGUpOwotICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhpcyk7CisgICAg
ICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIG1fdHJhY2tTZXQuYWRkKHRy
YWNrLT5pZCgpLCBXVEZNb3ZlKHRyYWNrKSk7CiAgICAgfQogICAgIGRvY3VtZW50KCktPmFkZEF1
ZGlvUHJvZHVjZXIodGhpcyk7CkBAIC0xMTAsNyArMTEwLDcgQEAgTWVkaWFTdHJlYW06On5NZWRp
YVN0cmVhbSgpCiAgICAgTWVkaWFTdHJlYW1SZWdpc3RyeTo6c2hhcmVkKCkudW5yZWdpc3RlclN0
cmVhbSgqdGhpcyk7CiAgICAgbV9wcml2YXRlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAg
Zm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCi0gICAgICAgIHRyYWNrLT5y
ZW1vdmVPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCp0aGlz
KTsKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewogICAg
ICAgICBkb2N1bWVudC0+cmVtb3ZlQXVkaW9Qcm9kdWNlcih0aGlzKTsKICAgICAgICAgaWYgKG1f
aXNXYWl0aW5nVW50aWxNZWRpYUNhblN0YXJ0KQpAQCAtMjE1LDcgKzIxNSw3IEBAIGJvb2wgTWVk
aWFTdHJlYW06OmludGVybmFsQWRkVHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2tU
b0FkZCwgU3RyZWFtTW9kCiAKICAgICBBU1NFUlQocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CiAg
ICAgYXV0byYgdHJhY2sgPSAqcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKLSAgICB0cmFjay5hZGRP
YnNlcnZlcih0aGlzKTsKKyAgICB0cmFjay5hZGRPYnNlcnZlcigqdGhpcyk7CiAKICAgICBpZiAo
c3RyZWFtTW9kaWZpZXIgPT0gU3RyZWFtTW9kaWZpZXI6OkRvbUFQSSkKICAgICAgICAgbV9wcml2
YXRlLT5hZGRUcmFjaygmdHJhY2sucHJpdmF0ZVRyYWNrKCksIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
Tm90aWZ5Q2xpZW50T3B0aW9uOjpEb250Tm90aWZ5KTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBib29s
IE1lZGlhU3RyZWFtOjppbnRlcm5hbFJlbW92ZVRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJZCwg
U3RyZWFtTW9kaWZpZXIgc3RyZQogICAgIGlmICghdHJhY2spCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKKyAgICB0cmFjay0+cmVtb3Zl
T2JzZXJ2ZXIoKnRoaXMpOwogCiAgICAgaWYgKHN0cmVhbU1vZGlmaWVyID09IFN0cmVhbU1vZGlm
aWVyOjpEb21BUEkpCiAgICAgICAgIG1fcHJpdmF0ZS0+cmVtb3ZlVHJhY2sodHJhY2stPnByaXZh
dGVUcmFjaygpLCBNZWRpYVN0cmVhbVByaXZhdGU6Ok5vdGlmeUNsaWVudE9wdGlvbjo6RG9udE5v
dGlmeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBiMGFlMTBmZTc4MTk2MDU1NDYwNjdjNzUxZTZiMGU5
OGYyZjFiY2M0Li5mMWJlMDY0ZmNjNjFjM2FkZmU0NjIzZjM1MzU2MmEzYThmNWQwMzQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAKQEAgLTE1OCw0OSArMTU4LDQwIEBAIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmlsaXRpZXMoKSBjb25z
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y2FwYWJpbGl0aWVzKCk7CiB9CiAKLXZvaWQgTWVkaWFT
dHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhSZWY8TWVkaWFDb25zdHJhaW50cz4mJiBjb25z
dHJhaW50cywgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCitzdGF0aWMgUmVmPE1lZGlhQ29u
c3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBzdGQ6Om9wdGlv
bmFsPE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQogewotICAgIGlmICghY29u
c3RyYWludHMtPmlzVmFsaWQoKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChUeXBlRXJyb3Ip
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9jb25zdHJhaW50cyA9IFdURk1vdmUo
Y29uc3RyYWludHMpOwotICAgIG1fcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSk7Ci0KLSAgICBh
cHBseUNvbnN0cmFpbnRzKCptX2NvbnN0cmFpbnRzKTsKKyAgICBpZiAoIWNvbnN0cmFpbnRzKQor
ICAgICAgICByZXR1cm4gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZSh7IH0sIHsgfSwgdHJ1
ZSk7CisgICAgcmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzLnZh
bHVlKCkpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFwcGx5Q29uc3RyYWludHMoY29u
c3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6
OmFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29uc3RyYWlu
dHM+JiBjb25zdHJhaW50cywgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCiB7CisgICAgbV9w
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKKwogICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVX
ZWFrUHRyKCk7Ci0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpPiBmYWlsdXJlSGFuZGxlciA9IFt3ZWFrVGhpc10oY29uc3QgU3RyaW5nJiBmYWlsZWRD
b25zdHJhaW50LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsKKyAgICBhdXRvIGZhaWx1cmVIYW5k
bGVyID0gW3dlYWtUaGlzXSAoY29uc3QgU3RyaW5nJiBmYWlsZWRDb25zdHJhaW50LCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RoaXMtPm1f
cHJvbWlzZSkKICAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB3ZWFrVGhpcy0+bV9wcm9t
aXNlLT5yZWplY3RUeXBlPElETEludGVyZmFjZTxPdmVyY29uc3RyYWluZWRFcnJvcj4+KE92ZXJj
b25zdHJhaW5lZEVycm9yOjpjcmVhdGUoZmFpbGVkQ29uc3RyYWludCwgbWVzc2FnZSkuZ2V0KCkp
OwogICAgIH07Ci0KLSAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0hhbmRsZXIgPSBb
d2Vha1RoaXNdKCkgeworICAgIGF1dG8gc3VjY2Vzc0hhbmRsZXIgPSBbd2Vha1RoaXMsIGNvbnN0
cmFpbnRzXSAoKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5tX3Byb21p
c2UpCiAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgd2Vha1RoaXMtPm1fcHJvbWlzZS0+
cmVzb2x2ZSgpOworICAgICAgICB3ZWFrVGhpcy0+bV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRz
LnZhbHVlX29yKE1lZGlhVHJhY2tDb25zdHJhaW50cyB7IH0pOwogICAgIH07Ci0KLSAgICBtX3By
aXZhdGUtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIHN1Y2Nlc3NIYW5kbGVyLCBmYWls
dXJlSGFuZGxlcik7CisgICAgbV9wcml2YXRlLT5hcHBseUNvbnN0cmFpbnRzKGNyZWF0ZU1lZGlh
Q29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzKSwgc3VjY2Vzc0hhbmRsZXIsIGZhaWx1cmVIYW5k
bGVyKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjphZGRPYnNlcnZlcihNZWRpYVN0cmVh
bVRyYWNrOjpPYnNlcnZlciogb2JzZXJ2ZXIpCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFkZE9i
c2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBtX29ic2VydmVycy5hcHBlbmQob2Jz
ZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOwogfQogCi12b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE1lZGlhU3RyZWFtVHJhY2s6Ok9ic2VydmVy
KiBvYnNlcnZlcikKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2
ZXImIG9ic2VydmVyKQogewotICAgIHNpemVfdCBwb3MgPSBtX29ic2VydmVycy5maW5kKG9ic2Vy
dmVyKTsKLSAgICBpZiAocG9zICE9IG5vdEZvdW5kKQotICAgICAgICBtX29ic2VydmVycy5yZW1v
dmUocG9zKTsKKyAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogfQogCiB2
b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaAppbmRleCBiNTViNTI0ZDM4ZGYyZDk5OTliOGJlMTgyMTM0MGE1YjVmZjFlNWEz
Li4wNTJhNzM3Y2IwYWUyYThjYjAyN2M0ZGM2ZmZmOTJjMWVlMTQ5NzY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApA
QCAtMzMsMTMgKzMzLDcgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCi0jaW5j
bHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5o
IgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlICJNZWRpYVRyYWNrQ29uc3RyYWludHMu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0MSw4IEBAIGNsYXNzIEF1ZGlv
U291cmNlUHJvdmlkZXI7CiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgTWVkaWFTb3Vy
Y2VTZXR0aW5nczsKIAorc3RydWN0IE1lZGlhVHJhY2tDb25zdHJhaW50czsKKwogY2xhc3MgTWVk
aWFTdHJlYW1UcmFjayBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2s+
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgewogcHVibGljOgog
ICAgIGNsYXNzIE9ic2VydmVyIHsKQEAgLTgwLDIzICs3NiwxOSBAQCBwdWJsaWM6CiAgICAgUmVm
UHRyPE1lZGlhU291cmNlU2V0dGluZ3M+IGdldFNldHRpbmdzKCkgY29uc3Q7CiAgICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGdldENhcGFiaWxpdGllcygpIGNvbnN0
OwogCi0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKFJlZjxNZWRpYUNvbnN0cmFpbnRzPiYmLCBE
T01Qcm9taXNlPHZvaWQ+JiYpOwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJik7CisgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiBnZXRDb25z
dHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KKyAgICB2b2lkIGFwcGx5
Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29uc3RyYWludHM+Jiwg
RE9NUHJvbWlzZTx2b2lkPiYmKTsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgp
IHsgcmV0dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KICAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYgcHJpdmF0ZVRyYWNrKCkgeyByZXR1cm4gbV9wcml2YXRlLmdldCgpOyB9CiAKICAgICBB
dWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAKLSAgICB2b2lkIGFk
ZE9ic2VydmVyKE9ic2VydmVyKik7Ci0gICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciop
OworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZU9ic2Vy
dmVyKE9ic2VydmVyJik7CiAKLSAgICAvLyBFdmVudFRhcmdldAotICAgIEV2ZW50VGFyZ2V0SW50
ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFT
dHJlYW1UcmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBB
Y3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQotCi0gICAgdXNpbmcg
UmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrPjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8
TWVkaWFTdHJlYW1UcmFjaz46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAg
ICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVRy
YWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
JiYpOwpAQCAtMTEyLDYgKzEwNCw4IEBAIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQKICAg
ICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZF
dmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNl
IGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFTdHJlYW1U
cmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVE
T01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgLy8gTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CkBAIC0xMjQsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWY8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBtX2Nv
bnN0cmFpbnRzOworICAgIE1lZGlhVHJhY2tDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogICAg
IHN0ZDo6b3B0aW9uYWw8RE9NUHJvbWlzZTx2b2lkPj4gbV9wcm9taXNlOwogICAgIFdlYWtQdHJG
YWN0b3J5PE1lZGlhU3RyZWFtVHJhY2s+IG1fd2Vha1B0ckZhY3Rvcnk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRs
CmluZGV4IDQ1MTY5MmEwZTQ2NTQ2ODZlYTRkZTI1NTI0NzA1MTBiODUwOWY1YWQuLjEzODhmNTI0
NDNjZDE5NTI2ZDkxZThiYjUwMWZhNDI0MWFhMzFmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbApAQCAtNDcs
MTEgKzQ3LDEwIEBAIGVudW0gTWVkaWFTdHJlYW1UcmFja1N0YXRlIHsgIm5ldyIsICJsaXZlIiwg
ImVuZGVkIiB9OwogICAgIE1lZGlhU3RyZWFtVHJhY2sgY2xvbmUoKTsKICAgICBbSW1wbGVtZW50
ZWRBcz1zdG9wUHJvZHVjaW5nRGF0YV0gdm9pZCBzdG9wKCk7CiAKLSAgICBbQ3VzdG9tXSBNZWRp
YVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWludHMoKTsKKyAgICBNZWRpYVRyYWNrQ29uc3Ry
YWludHMgZ2V0Q29uc3RyYWludHMoKTsKICAgICBbQ3VzdG9tXSBNZWRpYVNvdXJjZVNldHRpbmdz
IGdldFNldHRpbmdzKCk7CiAgICAgW0N1c3RvbV0gTWVkaWFUcmFja0NhcGFiaWxpdGllcyBnZXRD
YXBhYmlsaXRpZXMoKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlPHZvaWQ+IGFwcGx5Q29uc3RyYWlu
dHMob3B0aW9uYWwgTWVkaWFUcmFja0NvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKKyAgICBQcm9t
aXNlPHZvaWQ+IGFwcGx5Q29uc3RyYWludHMob3B0aW9uYWwgTWVkaWFUcmFja0NvbnN0cmFpbnRz
IGNvbnN0cmFpbnRzKTsKIAogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25vdmVyY29uc3Ry
YWluZWQ7CiB9OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRlYzE0MzUw
NDBlYjEyOGY4YWFlOTY5ZmY2NDE5YzY4ZTRlZDc4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcApA
QCAtMCwwICsxLDE5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgiCisKKyNpbmNsdWRlICJNZWRpYUNvbnN0cmFp
bnRzSW1wbC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgQ29uc3RyYWlu
dFNldFR5cGUgeyBNYW5kYXRvcnksIEFkdmFuY2VkIH07CisKK3N0YXRpYyB2b2lkIHNldChNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBj
b25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3Qg
Q29uc3RyYWluTG9uZyYgdmFsdWUpCit7CisgICAgSW50Q29uc3RyYWludCBjb25zdHJhaW50KHR5
cGVBc1N0cmluZywgdHlwZSk7CisgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKKyAgICAgICAgWyZd
IChpbnQgaW50ZWdlcikgeworICAgICAgICAgICAgaWYgKHNldFR5cGUgPT0gQ29uc3RyYWludFNl
dFR5cGU6Ok1hbmRhdG9yeSkKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldElkZWFsKGlu
dGVnZXIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0
RXhhY3QoaW50ZWdlcik7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgQ29uc3RyYWlu
TG9uZ1JhbmdlJiByYW5nZSkgeworICAgICAgICAgICAgaWYgKHJhbmdlLm1pbikKKyAgICAgICAg
ICAgICAgICBjb25zdHJhaW50LnNldE1pbihyYW5nZS5taW4udmFsdWUoKSk7CisgICAgICAgICAg
ICBpZiAocmFuZ2UubWF4KQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0TWF4KHJhbmdl
Lm1heC52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlmIChyYW5nZS5leGFjdCkKKyAgICAgICAgICAg
ICAgICBjb25zdHJhaW50LnNldEV4YWN0KHJhbmdlLmV4YWN0LnZhbHVlKCkpOworICAgICAgICAg
ICAgaWYgKHJhbmdlLmlkZWFsKQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwo
cmFuZ2UuaWRlYWwudmFsdWUoKSk7CisgICAgICAgIH0KKyAgICApOworICAgIG1hcC5zZXQodHlw
ZSwgV1RGTW92ZShjb25zdHJhaW50KSk7Cit9CisKK3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBj
aGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3Ry
YWluRG91YmxlJiB2YWx1ZSkKK3sKKyAgICBEb3VibGVDb25zdHJhaW50IGNvbnN0cmFpbnQodHlw
ZUFzU3RyaW5nLCB0eXBlKTsKKyAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLAorICAgICAgICBbJl0g
KGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgICAgIGlmIChzZXRUeXBlID09IENvbnN0cmFpbnRT
ZXRUeXBlOjpNYW5kYXRvcnkpCisgICAgICAgICAgICAgICAgY29uc3RyYWludC5zZXRJZGVhbChu
dW1iZXIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0
RXhhY3QobnVtYmVyKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBDb25zdHJhaW5E
b3VibGVSYW5nZSYgcmFuZ2UpIHsKKyAgICAgICAgICAgIGlmIChyYW5nZS5taW4pCisgICAgICAg
ICAgICAgICAgY29uc3RyYWludC5zZXRNaW4ocmFuZ2UubWluLnZhbHVlKCkpOworICAgICAgICAg
ICAgaWYgKHJhbmdlLm1heCkKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldE1heChyYW5n
ZS5tYXgudmFsdWUoKSk7CisgICAgICAgICAgICBpZiAocmFuZ2UuZXhhY3QpCisgICAgICAgICAg
ICAgICAgY29uc3RyYWludC5zZXRFeGFjdChyYW5nZS5leGFjdC52YWx1ZSgpKTsKKyAgICAgICAg
ICAgIGlmIChyYW5nZS5pZGVhbCkKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldElkZWFs
KHJhbmdlLmlkZWFsLnZhbHVlKCkpOworICAgICAgICB9CisgICAgKTsKKyAgICBtYXAuc2V0KHR5
cGUsIFdURk1vdmUoY29uc3RyYWludCkpOworfQorCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3Qg
Y2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0
cmFpbkJvb2xlYW4mIHZhbHVlKQoreworICAgIEJvb2xlYW5Db25zdHJhaW50IGNvbnN0cmFpbnQo
dHlwZUFzU3RyaW5nLCB0eXBlKTsKKyAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLAorICAgICAgICBb
Jl0gKGJvb2wgYm9vbGVhbikgeworICAgICAgICAgICAgaWYgKHNldFR5cGUgPT0gQ29uc3RyYWlu
dFNldFR5cGU6Ok1hbmRhdG9yeSkKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldElkZWFs
KGJvb2xlYW4pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQu
c2V0RXhhY3QoYm9vbGVhbik7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgQ29uc3Ry
YWluQm9vbGVhblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgIGlmIChwYXJh
bWV0ZXJzLmV4YWN0KQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0RXhhY3QocGFyYW1l
dGVycy5leGFjdC52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzLmlkZWFsKQor
ICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwocGFyYW1ldGVycy5pZGVhbC52YWx1
ZSgpKTsKKyAgICAgICAgfQorICAgICk7CisgICAgbWFwLnNldCh0eXBlLCBXVEZNb3ZlKGNvbnN0
cmFpbnQpKTsKK30KKworc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFw
JiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmlu
ZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5ET01TdHJpbmcmIHZh
bHVlKQoreworICAgIFN0cmluZ0NvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5
cGUpOworICAgIFdURjo6c3dpdGNoT24odmFsdWUsCisgICAgICAgIFsmXSAoY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsKKyAgICAgICAgICAgIGlmIChzZXRUeXBlID09IENvbnN0cmFpbnRTZXRUeXBl
OjpNYW5kYXRvcnkpCisgICAgICAgICAgICAgICAgY29uc3RyYWludC5hcHBlbmRJZGVhbChzdHJp
bmcpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuYXBwZW5k
RXhhY3Qoc3RyaW5nKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdmVjdG9yKSB7CisgICAgICAgICAgICBpZiAoc2V0VHlwZSA9PSBDb25zdHJhaW50U2V0
VHlwZTo6TWFuZGF0b3J5KSB7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBzdHJpbmcgOiB2
ZWN0b3IpCisgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuYXBwZW5kSWRlYWwoc3RyaW5n
KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBzdHJp
bmcgOiB2ZWN0b3IpCisgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuYXBwZW5kRXhhY3Qo
c3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBD
b25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBp
ZiAocGFyYW1ldGVycy5leGFjdCkgeworICAgICAgICAgICAgICAgIFdURjo6c3dpdGNoT24ocGFy
YW1ldGVycy5leGFjdC52YWx1ZSgpLAorICAgICAgICAgICAgICAgICAgICBbJl0gKGNvbnN0IFN0
cmluZyYgc3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50LmFwcGVu
ZEV4YWN0KHN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ICAgIFsmXSAoY29uc3QgVmVjdG9yPFN0cmluZz4mIHZlY3RvcikgeworICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChhdXRvJiBzdHJpbmcgOiB2ZWN0b3IpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RyYWludC5hcHBlbmRFeGFjdChzdHJpbmcpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChwYXJhbWV0ZXJzLmlkZWFsKSB7CisgICAgICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihwYXJh
bWV0ZXJzLmlkZWFsLnZhbHVlKCksCisgICAgICAgICAgICAgICAgICAgIFsmXSAoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuYXBwZW5k
SWRlYWwoc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAg
ICAgWyZdIChjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmVjdG9yKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgKGF1dG8mIHN0cmluZyA6IHZlY3RvcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdHJhaW50LmFwcGVuZElkZWFsKHN0cmluZyk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
KTsKKyAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50
U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVB
c1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+
JiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgc2V0KG1h
cCwgc2V0VHlwZSwgdHlwZUFzU3RyaW5nLCB0eXBlLCB2YWx1ZS52YWx1ZSgpKTsKK30KKworc3Rh
dGljIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIGNvbnZlcnRUb0ludGVybmFsRm9ybShDb25z
dHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldCYgY29u
c3RyYWludFNldCkKK3sKKyAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCByZXN1bHQ7Cisg
ICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lk
dGgsIGNvbnN0cmFpbnRTZXQud2lkdGgpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJoZWln
aHQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQsIGNvbnN0cmFpbnRTZXQuaGVpZ2h0KTsK
KyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0UmF0aW8iLCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0
ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJm
YWNpbmdNb2RlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSwgY29uc3RyYWludFNl
dC5mYWNpbmdNb2RlKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAidm9sdW1lIiwgTWVkaWFD
b25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVS
YXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUs
ICJzYW1wbGVTaXplIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWlu
dFNldC5zYW1wbGVTaXplKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxh
dGlvbiIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNvbnN0cmFpbnRT
ZXQuZWNob0NhbmNlbGxhdGlvbik7CisgICAgLy8gRklYTUU6IGFkZCBsYXRlbmN5CisgICAgLy8g
RklYTUU6IGFkZCBjaGFubmVsQ291bnQKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGV2aWNl
SWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNldC5kZXZpY2VJ
ZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3N0YXRpYyBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+IGNvbnZlcnRB
ZHZhbmNlZFRvSW50ZXJuYWxGb3JtKGNvbnN0IFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNl
dD4mIHZlY3RvcikKK3sKKyAgICBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+IHJl
c3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2ZWN0b3Iuc2l6ZSgpKTsK
KyAgICBmb3IgKGF1dG8mIHNldCA6IHZlY3RvcikKKyAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFw
cGVuZChjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGU6OkFkdmFuY2VkLCBz
ZXQpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgVmVjdG9yPE1lZGlhVHJhY2tD
b25zdHJhaW50U2V0TWFwPiBjb252ZXJ0QWR2YW5jZWRUb0ludGVybmFsRm9ybShjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldD4+JiBvcHRpb25hbFZlY3Rv
cikKK3sKKyAgICBpZiAoIW9wdGlvbmFsVmVjdG9yKQorICAgICAgICByZXR1cm4geyB9OworICAg
IHJldHVybiBjb252ZXJ0QWR2YW5jZWRUb0ludGVybmFsRm9ybShvcHRpb25hbFZlY3Rvci52YWx1
ZSgpKTsKK30KKworUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFp
bnRzSW1wbChjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAg
IHJldHVybiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKGNvbnZlcnRUb0ludGVybmFsRm9y
bShDb25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5LCBjb25zdHJhaW50cyksIGNvbnZlcnRBZHZh
bmNlZFRvSW50ZXJuYWxGb3JtKGNvbnN0cmFpbnRzLmFkdmFuY2VkKSwgdHJ1ZSk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
VHJhY2tDb25zdHJhaW50cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwNTFhZGMwMjViNGI1ZjQ0MmEwNzAzZmM4
NzdkYWY4ZDk2ZjY3YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5oCkBAIC0wLDAgKzEsOTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNp
bmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBN
ZWRpYUNvbnN0cmFpbnRzSW1wbDsKKworc3RydWN0IERvdWJsZVJhbmdlIHsKKyAgICBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4gbWluOworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtYXg7Cit9Owor
CitzdHJ1Y3QgTG9uZ1JhbmdlIHsKKyAgICBzdGQ6Om9wdGlvbmFsPGludD4gbWF4OworICAgIHN0
ZDo6b3B0aW9uYWw8aW50PiBtaW47Cit9OworCitzdHJ1Y3QgQ29uc3RyYWluQm9vbGVhblBhcmFt
ZXRlcnMgeworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZXhhY3Q7CisgICAgc3RkOjpvcHRpb25h
bDxib29sPiBpZGVhbDsKK307CisKK3N0cnVjdCBDb25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJz
IHsKKyAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+IGV4
YWN0OworICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4g
aWRlYWw7Cit9OworCitzdHJ1Y3QgQ29uc3RyYWluRG91YmxlUmFuZ2UgOiBEb3VibGVSYW5nZSB7
CisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGV4YWN0OworICAgIHN0ZDo6b3B0aW9uYWw8ZG91
YmxlPiBpZGVhbDsKK307CisKK3N0cnVjdCBDb25zdHJhaW5Mb25nUmFuZ2UgOiBMb25nUmFuZ2Ug
eworICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBleGFjdDsKKyAgICBzdGQ6Om9wdGlvbmFsPGludD4g
aWRlYWw7Cit9OworCit1c2luZyBDb25zdHJhaW5Cb29sZWFuID0gVmFyaWFudDxib29sLCBDb25z
dHJhaW5Cb29sZWFuUGFyYW1ldGVycz47Cit1c2luZyBDb25zdHJhaW5ET01TdHJpbmcgPSBWYXJp
YW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4sIENvbnN0cmFpbkRPTVN0cmluZ1BhcmFtZXRlcnM+
OwordXNpbmcgQ29uc3RyYWluRG91YmxlID0gVmFyaWFudDxkb3VibGUsIENvbnN0cmFpbkRvdWJs
ZVJhbmdlPjsKK3VzaW5nIENvbnN0cmFpbkxvbmcgPSBWYXJpYW50PGludCwgQ29uc3RyYWluTG9u
Z1JhbmdlPjsKKworc3RydWN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0IHsKKyAgICBzdGQ6Om9w
dGlvbmFsPENvbnN0cmFpbkxvbmc+IHdpZHRoOworICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWlu
TG9uZz4gaGVpZ2h0OworICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRG91YmxlPiBhc3BlY3RS
YXRpbzsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFpbkRvdWJsZT4gZnJhbWVSYXRlOworICAg
IHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRE9NU3RyaW5nPiBmYWNpbmdNb2RlOworICAgIHN0ZDo6
b3B0aW9uYWw8Q29uc3RyYWluRG91YmxlPiB2b2x1bWU7CisgICAgc3RkOjpvcHRpb25hbDxDb25z
dHJhaW5Mb25nPiBzYW1wbGVSYXRlOworICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluTG9uZz4g
c2FtcGxlU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFpbkJvb2xlYW4+IGVjaG9DYW5j
ZWxsYXRpb247CisgICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5Eb3VibGU+IGxhdGVuY3k7Cisg
ICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5Mb25nPiBjaGFubmVsQ291bnQ7CisgICAgc3RkOjpv
cHRpb25hbDxDb25zdHJhaW5ET01TdHJpbmc+IGRldmljZUlkOworICAgIHN0ZDo6b3B0aW9uYWw8
Q29uc3RyYWluRE9NU3RyaW5nPiBncm91cElkOworfTsKKworc3RydWN0IE1lZGlhVHJhY2tDb25z
dHJhaW50cyA6IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0IHsKKyAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldD4+IGFkdmFuY2VkOworfTsKKworUmVmPE1lZGlh
Q29uc3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBNZWRpYVRy
YWNrQ29uc3RyYWludHMmKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA0ODU5NmM4M2QwN2FhYjNhOTc1NDdmODU0NTdjNjhjMGUzNjNiODMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJh
aW50cy5pZGwKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitkaWN0aW9uYXJ5IERvdWJs
ZVJhbmdlIHsKKyAgICBkb3VibGUgbWF4OworICAgIGRvdWJsZSBtaW47Cit9OworCitbCisgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgQ29uc3RyYWluRG91YmxlUmFuZ2Ug
OiBEb3VibGVSYW5nZSB7CisgICAgZG91YmxlIGV4YWN0OworICAgIGRvdWJsZSBpZGVhbDsKK307
CisKK2RpY3Rpb25hcnkgTG9uZ1JhbmdlIHsKKyAgICBsb25nIG1heDsKKyAgICBsb25nIG1pbjsK
K307CisKK1sKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBDb25zdHJh
aW5Mb25nUmFuZ2UgOiBMb25nUmFuZ2UgeworICAgIGxvbmcgZXhhY3Q7CisgICAgbG9uZyBpZGVh
bDsKK307CisKK1sKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBDb25z
dHJhaW5Cb29sZWFuUGFyYW1ldGVycyB7CisgICAgYm9vbGVhbiBleGFjdDsKKyAgICBib29sZWFu
IGlkZWFsOworfTsKKworWworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5
IENvbnN0cmFpbkRPTVN0cmluZ1BhcmFtZXRlcnMgeworICAgIChET01TdHJpbmcgb3Igc2VxdWVu
Y2U8RE9NU3RyaW5nPikgZXhhY3Q7CisgICAgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJp
bmc+KSBpZGVhbDsKK307CisKK3R5cGVkZWYgKGRvdWJsZSBvciBDb25zdHJhaW5Eb3VibGVSYW5n
ZSkgQ29uc3RyYWluRG91YmxlOwordHlwZWRlZiAobG9uZyBvciBDb25zdHJhaW5Mb25nUmFuZ2Up
IENvbnN0cmFpbkxvbmc7Cit0eXBlZGVmIChib29sZWFuIG9yIENvbnN0cmFpbkJvb2xlYW5QYXJh
bWV0ZXJzKSBDb25zdHJhaW5Cb29sZWFuOwordHlwZWRlZiAoRE9NU3RyaW5nIG9yIHNlcXVlbmNl
PERPTVN0cmluZz4gb3IgQ29uc3RyYWluRE9NU3RyaW5nUGFyYW1ldGVycykgQ29uc3RyYWluRE9N
U3RyaW5nOworCitbCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgTWVk
aWFUcmFja0NvbnN0cmFpbnRTZXQgeworICAgIENvbnN0cmFpbkxvbmcgd2lkdGg7CisgICAgQ29u
c3RyYWluTG9uZyBoZWlnaHQ7CisgICAgQ29uc3RyYWluRG91YmxlIGFzcGVjdFJhdGlvOworICAg
IENvbnN0cmFpbkRvdWJsZSBmcmFtZVJhdGU7CisgICAgQ29uc3RyYWluRE9NU3RyaW5nIGZhY2lu
Z01vZGU7CisgICAgQ29uc3RyYWluRG91YmxlIHZvbHVtZTsKKyAgICBDb25zdHJhaW5Mb25nIHNh
bXBsZVJhdGU7CisgICAgQ29uc3RyYWluTG9uZyBzYW1wbGVTaXplOworICAgIENvbnN0cmFpbkJv
b2xlYW4gZWNob0NhbmNlbGxhdGlvbjsKKyAgICBDb25zdHJhaW5Eb3VibGUgbGF0ZW5jeTsKKyAg
ICBDb25zdHJhaW5Mb25nIGNoYW5uZWxDb3VudDsKKyAgICBDb25zdHJhaW5ET01TdHJpbmcgZGV2
aWNlSWQ7CisgICAgQ29uc3RyYWluRE9NU3RyaW5nIGdyb3VwSWQ7Cit9OworCitbCisgICAgSlNH
ZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgTWVkaWFUcmFja0NvbnN0cmFpbnRzIDog
TWVkaWFUcmFja0NvbnN0cmFpbnRTZXQgeworICAgIHNlcXVlbmNlPE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0PiBhZHZhbmNlZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBjNDU4NGNlOTcxZjY1ZTVj
ZGVkMDE0MzA0MWU4MWY4Y2QyODZjMWMxLi4yY2E5NTA3NzUyY2Q2YmFmOWJjYzlmMDU5OTliMTc1
NzVlY2UzMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTM2LDI0ICszNiwyMCBAQAogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJKU01lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiSlNPdmVyY29uc3Ry
YWluZWRFcnJvci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgotI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW5jbHVkZSAiT3ZlcmNv
bnN0cmFpbmVkRXJyb3IuaCIKKyNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ29udHJv
bGxlci5oIgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRXhjZXB0aW9uT3I8dm9pZD4gVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50cywg
UmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIE1lZGlhRGV2aWNl
czo6UHJvbWlzZSYmIHByb21pc2UpCitFeGNlcHRpb25Pcjx2b2lkPiBVc2VyTWVkaWFSZXF1ZXN0
OjpzdGFydChEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBh
dWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJh
aW50cywgRE9NUHJvbWlzZTxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PiYmIHByb21pc2UpCiB7
CiAgICAgYXV0byogdXNlck1lZGlhID0gVXNlck1lZGlhQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVu
dC5wYWdlKCkpOwogICAgIGlmICghdXNlck1lZGlhKQpAQCAtNjgsNyArNjQsNyBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChEb2N1bWVudCYgZG9jdW1lbnQsIFJl
ZjxNZWRpYUNvbnN0cmFpbgogICAgIHJldHVybiB7IH07CiB9CiAKLVVzZXJNZWRpYVJlcXVlc3Q6
OlVzZXJNZWRpYVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBVc2VyTWVkaWFDb250cm9sbGVy
JiBjb250cm9sbGVyLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50
cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIE1lZGlhRGV2
aWNlczo6UHJvbWlzZSYmIHByb21pc2UpCitVc2VyTWVkaWFSZXF1ZXN0OjpVc2VyTWVkaWFSZXF1
ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgVXNlck1lZGlhQ29udHJvbGxlciYgY29udHJvbGxlciwg
UmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIGF1ZGlvQ29uc3RyYWludHMsIFJlZjxNZWRpYUNv
bnN0cmFpbnRzSW1wbD4mJiB2aWRlb0NvbnN0cmFpbnRzLCBET01Qcm9taXNlPElETEludGVyZmFj
ZTxNZWRpYVN0cmVhbT4+JiYgcHJvbWlzZSkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyKCZkb2N1bWVudCkKICAgICAsIG1fYXVkaW9Db25zdHJhaW50cyhXVEZNb3ZlKGF1ZGlvQ29u
c3RyYWludHMpKQogICAgICwgbV92aWRlb0NvbnN0cmFpbnRzKFdURk1vdmUodmlkZW9Db25zdHJh
aW50cykpCkBAIC04NSw3ICs4MSw2IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0
Ojp1c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKTsKIH0KIApAQCAtOTMsMTkg
Kzg4LDE1IEBAIFNlY3VyaXR5T3JpZ2luKiBVc2VyTWVkaWFSZXF1ZXN0Ojp0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LT50b3BPcmlnaW4oKTsKIH0KIAogc3RhdGljIGJvb2wgaXNTZWN1cmUoRG9jdW1lbnRM
b2FkZXImIGRvY3VtZW50TG9hZGVyKQogewotICAgIGlmICghZG9jdW1lbnRMb2FkZXIucmVzcG9u
c2UoKS51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAoIWRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCkgfHwg
ZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKS0+Y29udGFpbnNOb25S
b290U0hBMVNpZ25lZENlcnRpZmljYXRlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IHJldHVybiB0cnVlOworICAgIGF1dG8mIHJlc3BvbnNlID0gZG9jdW1lbnRMb2FkZXIucmVzcG9u
c2UoKTsKKyAgICByZXR1cm4gcmVzcG9uc2UudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKQorICAg
ICAgICAmJiByZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKQorICAgICAgICAmJiAhcmVzcG9uc2Uu
Y2VydGlmaWNhdGVJbmZvKCktPmNvbnRhaW5zTm9uUm9vdFNIQTFTaWduZWRDZXJ0aWZpY2F0ZSgp
OwogfQogCiBzdGF0aWMgYm9vbCBjYW5DYWxsR2V0VXNlck1lZGlhKERvY3VtZW50JiBkb2N1bWVu
dCwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCkBAIC0xNDksMTQgKzE0MCwxMyBAQCB2b2lkIFVzZXJN
ZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKICAgICB9CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBk
b3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgRE9NV2lu
ZG93JiB3aW5kb3cgPSAqZG9jdW1lbnQuZG9tV2luZG93KCk7CiAKICAgICAvLyAxMC4yIC0gNi4z
IE9wdGlvbmFsbHksIGUuZy4sIGJhc2VkIG9uIGEgcHJldmlvdXNseS1lc3RhYmxpc2hlZCB1c2Vy
IHByZWZlcmVuY2UsIGZvciBzZWN1cml0eSByZWFzb25zLAogICAgIC8vIG9yIGR1ZSB0byBwbGF0
Zm9ybSBsaW1pdGF0aW9ucywganVtcCB0byB0aGUgc3RlcCBsYWJlbGVkIFBlcm1pc3Npb24gRmFp
bHVyZSBiZWxvdy4KICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAgIGlmICghY2FuQ2FsbEdl
dFVzZXJNZWRpYShkb2N1bWVudCwgZXJyb3JNZXNzYWdlKSkgewogICAgICAgICBkZW55KE1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkLCBlbXB0eVN0cmluZygpKTsKLSAg
ICAgICAgd2luZG93LnByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CisgICAgICAgIGRv
Y3VtZW50LmRvbVdpbmRvdygpLT5wcmludEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMzAsNyArMjIwLDYgQEAgdm9pZCBVc2VyTWVkaWFS
ZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVkKCkKIHsKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwogICAgIFJlZjxVc2VyTWVkaWFSZXF1ZXN0PiBwcm90
ZWN0ZWRUaGlzKCp0aGlzKTsKLQogICAgIGlmIChtX2NvbnRyb2xsZXIpIHsKICAgICAgICAgbV9j
b250cm9sbGVyLT5jYW5jZWxVc2VyTWVkaWFBY2Nlc3NSZXF1ZXN0KCp0aGlzKTsKICAgICAgICAg
bV9jb250cm9sbGVyID0gbnVsbHB0cjsKQEAgLTIzOSw5ICsyMjgsNiBAQCB2b2lkIFVzZXJNZWRp
YVJlcXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQogCiBEb2N1bWVudCogVXNlck1lZGlhUmVxdWVz
dDo6ZG9jdW1lbnQoKSBjb25zdAogewotICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVu
dD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCA3YWY1MWEx
OTk0YWQ2ZDc4MmQ1NTA1ZGVjNzNlNzYzNWVjNjJkZTlmLi4zMTZmZWUxNTQ4ZDk1NDRlMjE5NTI2
N2Q4Njg4YjFlZTIyZjdkYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtMzUsMjAgKzM1LDE4IEBACiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKLSNp
bmNsdWRlICJNZWRpYURldmljZXMuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwotY2xhc3MgTWVkaWFT
dHJlYW1Qcml2YXRlOwotY2xhc3MgVXNlck1lZGlhQ29udHJvbGxlcjsKK2NsYXNzIE1lZGlhQ29u
c3RyYWludHNJbXBsOworY2xhc3MgTWVkaWFTdHJlYW07CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsK
K2NsYXNzIFVzZXJNZWRpYUNvbnRyb2xsZXI7CiAKIGNsYXNzIFVzZXJNZWRpYVJlcXVlc3QgOiBw
dWJsaWMgUmVmQ291bnRlZDxVc2VyTWVkaWFSZXF1ZXN0PiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHN0
YXJ0KERvY3VtZW50JiwgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIGF1ZGlvQ29uc3RyYWlu
dHMsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiB2aWRlb0NvbnN0cmFpbnRzLCBNZWRpYURl
dmljZXM6OlByb21pc2UmJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHN0YXJ0KERv
Y3VtZW50JiwgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIGF1ZGlvQ29uc3RyYWludHMsIFJl
ZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiB2aWRlb0NvbnN0cmFpbnRzLCBET01Qcm9taXNlPElE
TEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYpOwogCiAgICAgdmlydHVhbCB+VXNlck1lZGlhUmVx
dWVzdCgpOwogCkBAIC03NCw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBE
b2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFSZXF1
ZXN0KERvY3VtZW50JiwgVXNlck1lZGlhQ29udHJvbGxlciYsIFJlZjxNZWRpYUNvbnN0cmFpbnRz
SW1wbD4mJiBhdWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlk
ZW9Db25zdHJhaW50cywgTWVkaWFEZXZpY2VzOjpQcm9taXNlJiYpOworICAgIFVzZXJNZWRpYVJl
cXVlc3QoRG9jdW1lbnQmLCBVc2VyTWVkaWFDb250cm9sbGVyJiwgUmVmPE1lZGlhQ29uc3RyYWlu
dHNJbXBsPiYmIGF1ZGlvQ29uc3RyYWludHMsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiB2
aWRlb0NvbnN0cmFpbnRzLCBET01Qcm9taXNlPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYp
OwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CiAgICAgCkBAIC04OCw3ICs4
Niw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fYWxsb3dlZEF1ZGlvRGV2aWNlVUlEOwogCiAg
ICAgVXNlck1lZGlhQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIE1lZGlhRGV2aWNlczo6
UHJvbWlzZSBtX3Byb21pc2U7CisgICAgRE9NUHJvbWlzZTxJRExJbnRlcmZhY2U8TWVkaWFTdHJl
YW0+PiBtX3Byb21pc2U7CiAgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IG1fcHJvdGVjdG9y
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGY3M2QwMGE3ZGMwMDBiMGM1MDE1NzRmNGYyZjk5YmUyMzU1OWYxNDguLmE0
ODdkYjRmYTc0ZDAwYmMxYWM1YTQ3MjQ1MGRhYmQ1NmYwNWFmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNSw3ICsxMjUs
NiBAQAogCQkwNzI3N0U1NDE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcy
NzdFNDgxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLzsg
fTsKIAkJMDcyNzdFNTUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0
OTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLzsgfTsKIAkJ
MDcyQTcwNDAxRDZFOEY2MjAwREYwQUZDIC8qIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MkE3MDNFMUQ2
RThGNjIwMERGMEFGQyAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmggKi87IH07Ci0JCTA3
MkE3MDQzMUQ3Mzk2QjMwMERGMEFGQyAvKiBKU01lZGlhRGV2aWNlc0N1c3RvbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyQTcwNDIxRDczOTZCMjAw
REYwQUZDIC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmggKi87IH07CiAJCTA3MkFFMUU1MTgzQzA3
NDEwMDBBNTk4OCAvKiBQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyQUUxREYxODNDMDc0MTAwMEE1OTg4IC8qIFBsdWdp
blJlcGxhY2VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDcyQUUxRTYxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxh
Y2VtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyQUUxRTAxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
ICovOyB9OwogCQkwNzJBRTFFODE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3MkFFMUUyMTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5o
ICovOyB9OwpAQCAtOTg5LDcgKzk4OCw2IEBACiAJCTFBRkZDNDU5MUQ1RTg2NjEwMDI2N0E2NiAv
KiBQbHVnaW5CbGFja2xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAvKiBQbHVnaW5CbGFja2xpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQjEyNEQ4
RDFEMzgwQjcwMDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4QzFEMzgwQjcwMDBFQ0RGQjAg
LyogTWVkaWFTYW1wbGVBVkZPYmpDLmggKi87IH07CiAJCTFCMTI0RDhGMUQzODBCQjYwMEVDREZC
MCAvKiBNZWRpYVNhbXBsZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4RTFEMzgwQkI2MDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVB
VkZPYmpDLm1tICovOyB9OwotCQkxQjg4REQxMzFENUI5RTUwMDBFM0I3QTQgLyogSlNNZWRpYURl
dmljZXNDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUI4OEREMTIxRDVBRDNCMjAwRTNCN0E0IC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmNw
cCAqLzsgfTsKIAkJMUJFNUJGQzIxRDUxNTcxNTAwMTY2NkQ5IC8qIE1lZGlhQ29uc3RyYWludHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUJFNUJG
QzExRDUxNTcxNTAwMTY2NkQ5IC8qIE1lZGlhQ29uc3RyYWludHMuY3BwICovOyB9OwogCQkxQkY5
REIzQzFEMzk3M0FEMDAyNkFFQjcgLyogTWVkaWFTYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBN
ZWRpYVNhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFDMDEwNzAwMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMwMTA2RkUx
OTI1OTRERjAwOEE0MjAxIC8qIElubGluZVRleHRCb3hTdHlsZS5jcHAgKi87IH07CkBAIC0zMjYx
LDYgKzMyNTksMTAgQEAKIAkJOTMyN0E5NDIwOTk2OEQxQTAwNjhBNTQ2IC8qIEhUTUxPcHRpb25z
Q29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzI3QTk0MTA5OTY4RDFBMDA2OEE1NDYgLyogSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJOTMyQUQ3MDUxN0VGQTJDMzAwMzhGOEZGIC8qIE1haW5GcmFtZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzJBRDcwMzE3RUZB
MkMzMDAzOEY4RkYgLyogTWFpbkZyYW1lLmNwcCAqLzsgfTsKIAkJOTMyQUQ3MDYxN0VGQTJDNDAw
MzhGOEZGIC8qIE1haW5GcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMyQUQ3MDQxN0VGQTJDMzAwMzhGOEZGIC8qIE1haW5GcmFtZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzMkNDMEI3MURG
RkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMkNDMEI2MURGRkQxNTgwMDRDMEY5RiAv
KiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCAqLzsgfTsKKwkJOTMyQ0MwRDQxREZGRDY2NzAwNEMw
RjlGIC8qIEpTTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMkNDMEQwMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01l
ZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgKi87IH07CisJCTkzMkNDMEQ1MURGRkQ2NjcwMDRDMEY5
RiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyQ0MwRDExREZGRDY2NzAwNEMwRjlGIC8qIEpTTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmggKi87IH07CisJCTkzMkNDMEY3MURGRkRBMUYwMDRDMEY5RiAvKiBN
ZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMyQ0MwRjYxREZGREExRjAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25z
dHJhaW50cy5jcHAgKi87IH07CiAJCTkzMkUxNjA5MEFGNTc4MzQwMDI1RjQwOCAvKiBGcmFtZUxv
YWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzJFMTYwODBBRjU3ODM0MDAyNUY0MDggLyogRnJhbWVMb2FkZXIuY3BwICovOyB9OwogCQk5MzMw
OURENjA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlEODcwOTlFNjQ5MTAwNTZF
NTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJOTMzMDlERDcwOTlFNjQ5MjAw
NTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOUQ4ODA5OUU2NDkxMDA1NkU1ODEgLyogQXBwZW5kTm9k
ZUNvbW1hbmQuaCAqLzsgfTsKQEAgLTcxMTUsNyArNzExNyw2IEBACiAJCTA3Mjg0N0UyMTZFQkM1
QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9y
bVRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJBNzAzRTFENkU4
RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkE3MDNGMUQ2RThGNjIwMERGMEFGQyAvKiBPdmVyY29u
c3RyYWluZWRFcnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBPdmVyY29uc3Ry
YWluZWRFcnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcyQTcw
NDIxRDczOTZCMjAwREYwQUZDIC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3MkFFMURGMTgzQzA3NDEwMDBBNTk4OCAvKiBQbHVnaW5SZXBs
YWNlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5SZXBsYWNl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJBRTFFMDE4M0MwNzQxMDAw
QTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQUUxRTExODNDMDc0MTAwMEE1OTg4IC8qIFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0g
UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtODA0MCw3ICs4MDQxLDYgQEAKIAkJMUFGRkM0NTYxRDVFODNBNzAwMjY3QTY2IC8qIENG
VXRpbGl0aWVzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENGVXRpbGl0
aWVzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFCMTI0RDhDMUQzODBCNzAw
MEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTWVkaWFTYW1wbGVBVkZPYmpDLmg7IHBhdGggPSAuLi9NZWRpYVNhbXBsZUFWRk9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUIxMjREOEUxRDM4MEJCNjAwRUNE
RkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE1lZGlhU2FtcGxlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUI4OEREMTIxRDVBRDNCMjAwRTNCN0E0IC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUJFNUJGQzExRDUxNTcxNTAwMTY2NkQ5IC8qIE1lZGlh
Q29uc3RyYWludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMDEwNkZF
MTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lVGV4dEJveFN0eWxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMwMTA2RkYxOTI1OTRERjAwOEE0MjAxIC8qIElubGluZVRl
eHRCb3hTdHlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVUZXh0
Qm94U3R5bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODE0LDYgKzEwODE0
LDExIEBACiAJCTkzMjdBOTQxMDk5NjhEMUEwMDY4QTU0NiAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyQUQ3MDMxN0VG
QTJDMzAwMzhGOEZGIC8qIE1haW5GcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNYWluRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzJBRDcwNDE3RUZBMkMzMDAzOEY4RkYgLyogTWFpbkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1haW5GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzJDQzBCNjFERkZEMTU4MDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVHJhY2tDb25zdHJhaW50cy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzJDQzBEMDFERkZENjY3MDA0QzBGOUYgLyog
SlNNZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNNZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzJDQzBEMTFERkZENjY3MDA0QzBGOUYgLyogSlNNZWRpYVRyYWNrQ29uc3Ry
YWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVRyYWNrQ29u
c3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMyQ0MwRjAxREZGRDhE
NDAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTMyQ0MwRjYxREZGREExRjAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRyYWNrQ29uc3Ry
YWludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzJFMTYwODBBRjU3ODM0
MDAyNUY0MDggLyogRnJhbWVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRnJhbWVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzMwOUQ4NzA5OUU2NDkxMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwZW5kTm9kZUNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzMwOUQ4ODA5OUU2NDkxMDA1NkU1ODEgLyogQXBw
ZW5kTm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwZW5k
Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDI2LDYgKzE1
MDMxLDkgQEAKIAkJCQkwNzIyMUI1NzE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1UcmFj
a0V2ZW50LmNwcCAqLywKIAkJCQkwNzIyMUI1ODE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJl
YW1UcmFja0V2ZW50LmggKi8sCiAJCQkJMDcyMjFCNTkxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlh
U3RyZWFtVHJhY2tFdmVudC5pZGwgKi8sCisJCQkJOTMyQ0MwRjYxREZGREExRjAwNEMwRjlGIC8q
IE1lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgKi8sCisJCQkJOTMyQ0MwQjYxREZGRDE1ODAwNEMw
RjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oICovLAorCQkJCTkzMkNDMEYwMURGRkQ4RDQw
MDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsICovLAogCQkJCTA3QzFDMEUwMUJG
QjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLywKIAkJ
CQkwN0MxQzBFMTFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFp
bnRzLmlkbCAqLywKIAkJCQk1RUE3MjVDQTFBQ0FCQ0I1MDBFQUQxN0IgLyogTmF2aWdhdG9yTWVk
aWFEZXZpY2VzLmNwcCAqLywKQEAgLTE1MjM4LDYgKzE1MjQ2LDggQEAKIAkJCQkwNzI3N0U0NzE3
RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggKi8sCiAJCQkJMDcyNzdFNDgx
N0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLywKIAkJCQkw
NzI3N0U0OTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLywK
KwkJCQk5MzJDQzBEMDFERkZENjY3MDA0QzBGOUYgLyogSlNNZWRpYVRyYWNrQ29uc3RyYWludHMu
Y3BwICovLAorCQkJCTkzMkNDMEQxMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25z
dHJhaW50cy5oICovLAogCQkJCTA3ODdDNDY3MUJGQkRGNkYwMDZEQ0Q3RiAvKiBKU01lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAgKi8sCiAJCQkJMDc4N0M0NjgxQkZCREY2RjAwNkRD
RDdGIC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8sCiAJCQkJMDczQkUz
M0UxN0QxN0UwMTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhLmNwcCAqLywKQEAgLTIy
MDI0LDggKzIyMDM0LDYgQEAKIAkJCQlBN0QwMzE4RDBFOTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFn
ZURhdGFDdXN0b20uY3BwICovLAogCQkJCTdBNzRFQ0JDMTAxODM5REEwMEJGOTM5RSAvKiBKU0lu
c3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFMUM0M0YwRDk4MzBGNDAw
M0IwMkYyIC8qIEpTTG9jYXRpb25DdXN0b20uY3BwICovLAotCQkJCTFCODhERDEyMUQ1QUQzQjIw
MEUzQjdBNCAvKiBKU01lZGlhRGV2aWNlc0N1c3RvbS5jcHAgKi8sCi0JCQkJMDcyQTcwNDIxRDcz
OTZCMjAwREYwQUZDIC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmggKi8sCiAJCQkJQUQ3MjZGRTcx
NkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmggKi8sCiAJCQkJMDdDNTlCNkQx
N0Y3OTRGNjAwMEZCQ0JCIC8qIEpTTWVkaWFTdHJlYW1UcmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJ
MDdDMUMwRTYxQkZCOTBBNzAwQkQyMjU2IC8qIEpTTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFp
bnRzQ3VzdG9tLmNwcCAqLywKQEAgLTI1NTIyLDYgKzI1NTMwLDcgQEAKIAkJCQkwNjIyODc4NDBC
NERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI2
RDlEMjM1MTRFQUJEMjYwMDkwRDc1RSAvKiBGb2N1c0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE2NTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFDMkQ4OUQxQjFFMjkxRjAwRDUyRTg3IC8qIEZvbnRBbnRpYWxpYXNp
bmdTdGF0ZVNhdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0I5MkQ0RjEyOTM1NTBCMDBDODM4
N0YgLyogRm9udEJhc2VsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2MzBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udENhY2hlLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjEzLDcgKzI2MjIy
LDYgQEAKIAkJCQlDREFCNkQyRTE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9z
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTU5NzQxREIxQjdEMTQwMTAwMjAxQzkyIC8qIEpTTWVk
aWFEZXZpY2VJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4
QzEgLyogSlNNZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTA3MkE3MDQzMUQ3Mzk2
QjMwMERGMEFGQyAvKiBKU01lZGlhRGV2aWNlc0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkQyM0ExMjYxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDlCRjcxMjFEQkZEOTE0MDA3QTdEOTkgLyogSlNNZWRp
YUVuY3J5cHRlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTQxOTBDRDY4MjY5MDBG
QURBNzUgLyogSlNNZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MjQ1LDYgKzI4MjUz
LDcgQEAKIAkJCQk5QkFGM0IyNDEyQzFBMzk4MDAwMTRCRjEgLyogV3JpdGluZ0RpcmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdN
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODIwMjA5RDE1MDhEMDAwRTYxRDcgLyogWExp
bmtOYW1lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMyQ0MwRDUxREZGRDY2NzAwNEMwRjlGIC8q
IEpTTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzA3ODRCMjFD
NTJFRTJDMDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwQjkz
MTg4MTNCQThEQkEwMDM1QTk0OCAvKiBYTUxEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDBCOTMxOEMxM0JBOERDQzAwMzVBOTQ4IC8qIFhNTERvY3VtZW50UGFyc2VyU2NvcGUu
aCBpbiBIZWFkZXJzICovLApAQCAtMjg5MzUsNiArMjg5NDQsNyBAQAogCQkJCTMxQkM3NDJEMUFB
RkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlv
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTRERTVDODExRDdGM0ExNDAwMTY0RjJBIC8q
IENTU0F0UnVsZUlELmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzMkNDMEY3MURGRkRBMUYwMDRD
MEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJE
NkFGOEIxNUVGMjVFNTAwOEI3MTEwIC8qIENTU0Jhc2ljU2hhcGVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxNkE4NEY5MTRDODVDQ0MwMDI5NzdERiAvKiBDU1NCb3JkZXJJbWFnZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzI3NEIzMTE0MEVCRUQ4MDBFQURGQTYgLyogQ1NTQm9yZGVySW1h
Z2VTbGljZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4NDEsNiArMjk4NTEsNyBAQAog
CQkJCUJDOTREMTRFMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNFN0IxOTMwRDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1N0UyMzM2OTFEQ0FCMjQzMDBGMjhEMDEgLyogSlNIbWFjS2V5
UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzMkNDMEQ0MURGRkQ2NjcwMDRDMEY5RiAv
KiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk3RTQx
MjEwOTE1NEZBMDAxMEQzNjEgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzk3RTQyQzEwOTE1QjA2MDAxMEQzNjEgLyogSlNIVE1MQWxsQ29sbGVjdGlvbkN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTRBMkRFRjBBMUI4NTJBMDBDODA3RjggLyog
SlNIVE1MQW5jaG9yRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5OTc1LDcgKzI5OTg2
LDYgQEAKIAkJCQlDREFCNkQyRDE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9z
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNTk3NDFEQTFCN0QxM0Y5MDAyMDFDOTIgLyogSlNN
ZWRpYURldmljZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTU3MzlCQkExQjQyMDEyQTAw
RDI1OEMxIC8qIEpTTWVkaWFEZXZpY2VzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFCODhERDEz
MUQ1QjlFNTAwMEUzQjdBNCAvKiBKU01lZGlhRGV2aWNlc0N1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGRDIzQTEyNTEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3MTAxREJGRDhDRTAwN0E3RDk5
IC8qIEpTTWVkaWFFbmNyeXB0ZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTQx
ODBDRDY4MjY5MDBGQURBNzUgLyogSlNNZWRpYUVycm9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5k
ZXggNGM1MTRlNDA5NWU4Y2FlN2Q1ZGY4YzE5NjI2NDg3Y2NhYTFiNTM0Zi4uM2UyZGVjYjBjZGE2
ZGFhM2U3NzM3YTRhYjQ2YjhlMmQ0NGZjMGEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC05OSw3ICs5OSw2IEBACiAjaW5j
bHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNMb2NhdGlvbkN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCIKLSNpbmNsdWRlICJK
U01lZGlhRGV2aWNlc0N1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5lbEN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpT
TWVzc2FnZVBvcnRDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNZWRpYURldmljZXNDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZWRpYURldmljZXNDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2MTMwZDdmZDU5ZDQxNTkwODI5ZDJjOTlhMGQ4YWFlNzE2MDRhM2VmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVkaWFEZXZpY2VzQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM5OSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTTWVkaWFEZXZpY2VzQ3VzdG9tLmgiCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiQXJyYXlWYWx1ZS5oIgotI2luY2x1ZGUg
IkRpY3Rpb25hcnkuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSlNE
T01Qcm9taXNlLmgiCi0jaW5jbHVkZSAiSlNNZWRpYURldmljZXMuaCIKLSNpbmNsdWRlICJMb2dn
aW5nLmgiCi0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKLSNpbmNsdWRlICJSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotZW51bSBjbGFzcyBDb25zdHJhaW50U2V0VHlwZSB7IE1hbmRhdG9yeSwgQWR2YW5j
ZWQgfTsKLQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVN0cmluZ0NvbnN0cmFpbnRXaXRoTGlzdChT
dHJpbmdDb25zdHJhaW50JiBjb25zdHJhaW50LCB2b2lkIChTdHJpbmdDb25zdHJhaW50OjoqYXBw
ZW5kVmFsdWUpKGNvbnN0IFN0cmluZyYpLCBjb25zdCBBcnJheVZhbHVlJiBsaXN0KQotewotICAg
IHNpemVfdCBzaXplOwotICAgIGlmICghbGlzdC5sZW5ndGgoc2l6ZSkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFN0
cmluZyB2YWx1ZTsKLSAgICAgICAgaWYgKGxpc3QuZ2V0KGksIHZhbHVlKSkKLSAgICAgICAgICAg
IChjb25zdHJhaW50LiphcHBlbmRWYWx1ZSkodmFsdWUpOwotICAgIH0KLX0KLQotc3RhdGljIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nQ29uc3RyYWludD4gY3JlYXRlU3RyaW5nQ29uc3RyYWludChjb25z
dCBEaWN0aW9uYXJ5JiBtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIENvbnN0cmFpbnRTZXRUeXBlIGNvbnN0cmFpbnRT
ZXRUeXBlKQotewotICAgIGF1dG8gY29uc3RyYWludCA9IFN0cmluZ0NvbnN0cmFpbnQobmFtZSwg
dHlwZSk7Ci0KLSAgICAvLyBEaWN0aW9uYXJ5IGNvbnN0cmFpbnQgdmFsdWUuCi0gICAgRGljdGlv
bmFyeSBkaWN0aW9uYXJ5VmFsdWU7Ci0gICAgaWYgKG1lZGlhVHJhY2tDb25zdHJhaW50U2V0Lmdl
dChuYW1lLCBkaWN0aW9uYXJ5VmFsdWUpICYmICFkaWN0aW9uYXJ5VmFsdWUuaXNVbmRlZmluZWRP
ck51bGwoKSkgewotICAgICAgICBBcnJheVZhbHVlIGV4YWN0QXJyYXlWYWx1ZTsKLSAgICAgICAg
aWYgKGRpY3Rpb25hcnlWYWx1ZS5nZXQoImV4YWN0IiwgZXhhY3RBcnJheVZhbHVlKSAmJiAhZXhh
Y3RBcnJheVZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgICAgICBpbml0aWFsaXpl
U3RyaW5nQ29uc3RyYWludFdpdGhMaXN0KGNvbnN0cmFpbnQsICZTdHJpbmdDb25zdHJhaW50Ojph
cHBlbmRFeGFjdCwgZXhhY3RBcnJheVZhbHVlKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBTdHJpbmcgZXhhY3RTdHJpbmdWYWx1ZTsKLSAgICAgICAgICAgIGlmIChkaWN0aW9uYXJ5VmFs
dWUuZ2V0KCJleGFjdCIsIGV4YWN0U3RyaW5nVmFsdWUpKQotICAgICAgICAgICAgICAgIGNvbnN0
cmFpbnQuc2V0RXhhY3QoZXhhY3RTdHJpbmdWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBB
cnJheVZhbHVlIGlkZWFsQXJyYXlWYWx1ZTsKLSAgICAgICAgaWYgKGRpY3Rpb25hcnlWYWx1ZS5n
ZXQoImlkZWFsIiwgaWRlYWxBcnJheVZhbHVlKSAmJiAhaWRlYWxBcnJheVZhbHVlLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCi0gICAgICAgICAgICBpbml0aWFsaXplU3RyaW5nQ29uc3RyYWludFdpdGhM
aXN0KGNvbnN0cmFpbnQsICZTdHJpbmdDb25zdHJhaW50OjphcHBlbmRJZGVhbCwgaWRlYWxBcnJh
eVZhbHVlKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBTdHJpbmcgaWRlYWxTdHJpbmdW
YWx1ZTsKLSAgICAgICAgICAgIGlmICghZGljdGlvbmFyeVZhbHVlLmdldCgiaWRlYWwiLCBpZGVh
bFN0cmluZ1ZhbHVlKSkKLSAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldElkZWFsKGlkZWFs
U3RyaW5nVmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNvbnN0cmFpbnQuaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICBMT0coTWVkaWEsICJjcmVhdGVTdHJpbmdDb25zdHJhaW50KCkg
LSBpZ25vcmluZyBzdHJpbmcgY29uc3RyYWludCAnJXMnIHdpdGggZGljdGlvbmFyeSB2YWx1ZSBz
aW5jZSBpdCBoYXMgbm8gdmFsaWQgb3Igc3VwcG9ydGVkIGtleS92YWx1ZSBwYWlycy4iLCBuYW1l
LnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoY29uc3RyYWludCk7Ci0gICAg
fQotCi0gICAgLy8gQXJyYXkgY29uc3RyYWludCB2YWx1ZS4KLSAgICBBcnJheVZhbHVlIGFycmF5
VmFsdWU7Ci0gICAgaWYgKG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LmdldChuYW1lLCBhcnJheVZh
bHVlKSAmJiAhYXJyYXlWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIGluaXRp
YWxpemVTdHJpbmdDb25zdHJhaW50V2l0aExpc3QoY29uc3RyYWludCwgJlN0cmluZ0NvbnN0cmFp
bnQ6OmFwcGVuZElkZWFsLCBhcnJheVZhbHVlKTsKLQotICAgICAgICBpZiAoY29uc3RyYWludC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgIExPRyhNZWRpYSwgImNyZWF0ZVN0cmluZ0NvbnN0cmFp
bnQoKSAtIGlnbm9yaW5nIHN0cmluZyBjb25zdHJhaW50ICclcycgd2l0aCBhcnJheSB2YWx1ZSBz
aW5jZSBpdCBpcyBlbXB0eS4iLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGNv
bnN0cmFpbnQpOwotICAgIH0KLQotICAgIC8vIFNjYWxhciBjb25zdHJhaW50IHZhbHVlLgotICAg
IFN0cmluZyB2YWx1ZTsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQuZ2V0KG5hbWUs
IHZhbHVlKSkgewotICAgICAgICBpZiAoY29uc3RyYWludFNldFR5cGUgPT0gQ29uc3RyYWludFNl
dFR5cGU6Ok1hbmRhdG9yeSkKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwodmFsdWUp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KHZhbHVlKTsK
LSAgICAgICAgCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGNvbnN0cmFpbnQpOwotICAgIH0KLQot
ICAgIC8vIEludmFsaWQgY29uc3RyYWludCB2YWx1ZS4KLSAgICBMT0coTWVkaWEsICJjcmVhdGVT
dHJpbmdDb25zdHJhaW50KCkgLSBpZ25vcmluZyBzdHJpbmcgY29uc3RyYWludCAnJXMnIHNpbmNl
IGl0IGhhcyBuZWl0aGVyIGEgZGljdGlvbmFyeSBub3Igc2VxdWVuY2Ugbm9yIHNjYWxhciB2YWx1
ZS4iLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19Ci0K
LXN0YXRpYyBzdGQ6Om9wdGlvbmFsPEJvb2xlYW5Db25zdHJhaW50PiBjcmVhdGVCb29sZWFuQ29u
c3RyYWludChjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIENvbnN0cmFpbnRTZXRUeXBl
IGNvbnN0cmFpbnRTZXRUeXBlKQotewotICAgIGF1dG8gY29uc3RyYWludCA9IEJvb2xlYW5Db25z
dHJhaW50KG5hbWUsIHR5cGUpOwotCi0gICAgLy8gRGljdGlvbmFyeSBjb25zdHJhaW50IHZhbHVl
LgotICAgIERpY3Rpb25hcnkgZGljdGlvbmFyeVZhbHVlOwotICAgIGlmIChtZWRpYVRyYWNrQ29u
c3RyYWludFNldC5nZXQobmFtZSwgZGljdGlvbmFyeVZhbHVlKSAmJiAhZGljdGlvbmFyeVZhbHVl
LmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgYm9vbCBleGFjdFZhbHVlOwotICAgICAg
ICBpZiAoZGljdGlvbmFyeVZhbHVlLmdldCgiZXhhY3QiLCBleGFjdFZhbHVlKSkKLSAgICAgICAg
ICAgIGNvbnN0cmFpbnQuc2V0RXhhY3QoZXhhY3RWYWx1ZSk7Ci0KLSAgICAgICAgYm9vbCBpZGVh
bFZhbHVlOwotICAgICAgICBpZiAoZGljdGlvbmFyeVZhbHVlLmdldCgiaWRlYWwiLCBpZGVhbFZh
bHVlKSkKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwoaWRlYWxWYWx1ZSk7Ci0KLSAg
ICAgICAgaWYgKGNvbnN0cmFpbnQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBMT0coTWVkaWEs
ICJjcmVhdGVCb29sZWFuQ29uc3RyYWludCgpIC0gaWdub3JpbmcgYm9vbGVhbiBjb25zdHJhaW50
ICclcycgd2l0aCBkaWN0aW9uYXJ5IHZhbHVlIHNpbmNlIGl0IGhhcyBubyB2YWxpZCBvciBzdXBw
b3J0ZWQga2V5L3ZhbHVlIHBhaXJzLiIsIG5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIFdURk1v
dmUoY29uc3RyYWludCk7Ci0gICAgfQotCi0gICAgLy8gU2NhbGFyIGNvbnN0cmFpbnQgdmFsdWUu
Ci0gICAgYm9vbCB2YWx1ZTsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQuZ2V0KG5h
bWUsIHZhbHVlKSkgewotICAgICAgICBpZiAoY29uc3RyYWludFNldFR5cGUgPT0gQ29uc3RyYWlu
dFNldFR5cGU6Ok1hbmRhdG9yeSkKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwodmFs
dWUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KHZhbHVl
KTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGNvbnN0cmFpbnQpOwotICAgIH0K
LQotICAgIC8vIEludmFsaWQgY29uc3RyYWludCB2YWx1ZS4KLSAgICBMT0coTWVkaWEsICJjcmVh
dGVCb29sZWFuQ29uc3RyYWludCgpIC0gaWdub3JpbmcgYm9vbGVhbiBjb25zdHJhaW50ICclcycg
c2luY2UgaXQgaGFzIG5laXRoZXIgYSBkaWN0aW9uYXJ5IG5vciBzY2FsYXIgdmFsdWUuIiwgbmFt
ZS51dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQotCi1zdGF0aWMg
c3RkOjpvcHRpb25hbDxEb3VibGVDb25zdHJhaW50PiBjcmVhdGVEb3VibGVDb25zdHJhaW50KGNv
bnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBjb25zdCBTdHJpbmcmIG5h
bWUsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgQ29uc3RyYWludFNldFR5cGUgY29uc3RyYWlu
dFNldFR5cGUpCi17Ci0gICAgYXV0byBjb25zdHJhaW50ID0gRG91YmxlQ29uc3RyYWludChuYW1l
LCB0eXBlKTsKLQotICAgIC8vIERpY3Rpb25hcnkgY29uc3RyYWludCB2YWx1ZS4KLSAgICBEaWN0
aW9uYXJ5IGRpY3Rpb25hcnlWYWx1ZTsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQu
Z2V0KG5hbWUsIGRpY3Rpb25hcnlWYWx1ZSkgJiYgIWRpY3Rpb25hcnlWYWx1ZS5pc1VuZGVmaW5l
ZE9yTnVsbCgpKSB7Ci0gICAgICAgIGRvdWJsZSBtaW5WYWx1ZTsKLSAgICAgICAgaWYgKGRpY3Rp
b25hcnlWYWx1ZS5nZXQoIm1pbiIsIG1pblZhbHVlKSkKLSAgICAgICAgICAgIGNvbnN0cmFpbnQu
c2V0TWluKG1pblZhbHVlKTsKLQotICAgICAgICBkb3VibGUgbWF4VmFsdWU7Ci0gICAgICAgIGlm
IChkaWN0aW9uYXJ5VmFsdWUuZ2V0KCJtYXgiLCBtYXhWYWx1ZSkpCi0gICAgICAgICAgICBjb25z
dHJhaW50LnNldE1heChtYXhWYWx1ZSk7Ci0KLSAgICAgICAgZG91YmxlIGV4YWN0VmFsdWU7Ci0g
ICAgICAgIGlmIChkaWN0aW9uYXJ5VmFsdWUuZ2V0KCJleGFjdCIsIGV4YWN0VmFsdWUpKQotICAg
ICAgICAgICAgY29uc3RyYWludC5zZXRFeGFjdChleGFjdFZhbHVlKTsKLQotICAgICAgICBkb3Vi
bGUgaWRlYWxWYWx1ZTsKLSAgICAgICAgaWYgKGRpY3Rpb25hcnlWYWx1ZS5nZXQoImlkZWFsIiwg
aWRlYWxWYWx1ZSkpCi0gICAgICAgICAgICBjb25zdHJhaW50LnNldElkZWFsKGlkZWFsVmFsdWUp
OwotCi0gICAgICAgIGlmIChjb25zdHJhaW50LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgTE9H
KE1lZGlhLCAiY3JlYXRlRG91YmxlQ29uc3RyYWludCgpIC0gaWdub3JpbmcgZG91YmxlIGNvbnN0
cmFpbnQgJyVzJyB3aXRoIGRpY3Rpb25hcnkgdmFsdWUgc2luY2UgaXQgaGFzIG5vIHZhbGlkIG9y
IHN1cHBvcnRlZCBrZXkvdmFsdWUgcGFpcnMuIiwgbmFtZS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4g
V1RGTW92ZShjb25zdHJhaW50KTsKLSAgICB9Ci0KLSAgICAvLyBTY2FsYXIgY29uc3RyYWludCB2
YWx1ZS4KLSAgICBkb3VibGUgdmFsdWU7Ci0gICAgaWYgKG1lZGlhVHJhY2tDb25zdHJhaW50U2V0
LmdldChuYW1lLCB2YWx1ZSkpIHsKLSAgICAgICAgaWYgKGNvbnN0cmFpbnRTZXRUeXBlID09IENv
bnN0cmFpbnRTZXRUeXBlOjpNYW5kYXRvcnkpCi0gICAgICAgICAgICBjb25zdHJhaW50LnNldElk
ZWFsKHZhbHVlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29uc3RyYWludC5zZXRFeGFj
dCh2YWx1ZSk7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gV1RGTW92ZShjb25zdHJhaW50KTsK
LSAgICB9Ci0KLSAgICAvLyBJbnZhbGlkIGNvbnN0cmFpbnQgdmFsdWUuCi0gICAgTE9HKE1lZGlh
LCAiY3JlYXRlRG91YmxlQ29uc3RyYWludCgpIC0gaWdub3JpbmcgZG91YmxlIGNvbnN0cmFpbnQg
JyVzJyBzaW5jZSBpdCBoYXMgbmVpdGhlciBhIGRpY3Rpb25hcnkgbm9yIHNjYWxhciB2YWx1ZS4i
LCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19Ci0KLXN0
YXRpYyBzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+IGNyZWF0ZUludENvbnN0cmFpbnQoY29u
c3QgRGljdGlvbmFyeSYgbWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBDb25zdHJhaW50U2V0VHlwZSBjb25zdHJhaW50
U2V0VHlwZSkKLXsKLSAgICBhdXRvIGNvbnN0cmFpbnQgPSBJbnRDb25zdHJhaW50KG5hbWUsIHR5
cGUpOwotCi0gICAgLy8gRGljdGlvbmFyeSBjb25zdHJhaW50IHZhbHVlLgotICAgIERpY3Rpb25h
cnkgZGljdGlvbmFyeVZhbHVlOwotICAgIGlmIChtZWRpYVRyYWNrQ29uc3RyYWludFNldC5nZXQo
bmFtZSwgZGljdGlvbmFyeVZhbHVlKSAmJiAhZGljdGlvbmFyeVZhbHVlLmlzVW5kZWZpbmVkT3JO
dWxsKCkpIHsKLSAgICAgICAgaW50IG1pblZhbHVlOwotICAgICAgICBpZiAoZGljdGlvbmFyeVZh
bHVlLmdldCgibWluIiwgbWluVmFsdWUpKQotICAgICAgICAgICAgY29uc3RyYWludC5zZXRNaW4o
bWluVmFsdWUpOwotCi0gICAgICAgIGludCBtYXhWYWx1ZTsKLSAgICAgICAgaWYgKGRpY3Rpb25h
cnlWYWx1ZS5nZXQoIm1heCIsIG1heFZhbHVlKSkKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0
TWF4KG1heFZhbHVlKTsKLQotICAgICAgICBpbnQgZXhhY3RWYWx1ZTsKLSAgICAgICAgaWYgKGRp
Y3Rpb25hcnlWYWx1ZS5nZXQoImV4YWN0IiwgZXhhY3RWYWx1ZSkpCi0gICAgICAgICAgICBjb25z
dHJhaW50LnNldEV4YWN0KGV4YWN0VmFsdWUpOwotCi0gICAgICAgIGludCBpZGVhbFZhbHVlOwot
ICAgICAgICBpZiAoZGljdGlvbmFyeVZhbHVlLmdldCgiaWRlYWwiLCBpZGVhbFZhbHVlKSkKLSAg
ICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwoaWRlYWxWYWx1ZSk7Ci0KLSAgICAgICAgaWYg
KGNvbnN0cmFpbnQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBMT0coTWVkaWEsICJjcmVhdGVJ
bnRDb25zdHJhaW50KCkgLSBpZ25vcmluZyBsb25nIGNvbnN0cmFpbnQgJyVzJyB3aXRoIGRpY3Rp
b25hcnkgdmFsdWUgc2luY2UgaXQgaGFzIG5vIHZhbGlkIG9yIHN1cHBvcnRlZCBrZXkvdmFsdWUg
cGFpcnMuIiwgbmFtZS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gV1RGTW92ZShjb25zdHJhaW50KTsK
LSAgICB9Ci0KLSAgICAvLyBTY2FsYXIgY29uc3RyYWludCB2YWx1ZS4KLSAgICBpbnQgdmFsdWU7
Ci0gICAgaWYgKG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LmdldChuYW1lLCB2YWx1ZSkpIHsKLSAg
ICAgICAgaWYgKGNvbnN0cmFpbnRTZXRUeXBlID09IENvbnN0cmFpbnRTZXRUeXBlOjpNYW5kYXRv
cnkpCi0gICAgICAgICAgICBjb25zdHJhaW50LnNldElkZWFsKHZhbHVlKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgY29uc3RyYWludC5zZXRFeGFjdCh2YWx1ZSk7Ci0gICAgICAgIAotICAg
ICAgICByZXR1cm4gV1RGTW92ZShjb25zdHJhaW50KTsKLSAgICB9Ci0KLSAgICAvLyBJbnZhbGlk
IGNvbnN0cmFpbnQgdmFsdWUuCi0gICAgTE9HKE1lZGlhLCAiY3JlYXRlSW50Q29uc3RyYWludCgp
IC0gaWdub3JpbmcgbG9uZyBjb25zdHJhaW50ICclcycgc2luY2UgaXQgaGFzIG5laXRoZXIgYSBk
aWN0aW9uYXJ5IG5vciBzY2FsYXIgdmFsdWUuIiwgbmFtZS51dGY4KCkuZGF0YSgpKTsKLSAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotfQotCi1zdGF0aWMgdm9pZCBwYXJzZU1lZGlhVHJhY2tDb25z
dHJhaW50U2V0Rm9yS2V5KGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0
LCBjb25zdCBTdHJpbmcmIG5hbWUsIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENv
bnN0cmFpbnRTZXRUeXBlIGNvbnN0cmFpbnRTZXRUeXBlKQotewotICAgIE1lZGlhQ29uc3RyYWlu
dFR5cGUgY29uc3RyYWludFR5cGUgPSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHM6OmNvbnN0cmFpbnRGcm9tTmFtZShuYW1lKTsKLSAgICBzd2l0Y2ggKGNvbnN0cmFpbnRU
eXBlKSB7Ci0gICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aDoKLSAgICAgICAgbWFw
LnNldChjb25zdHJhaW50VHlwZSwgY3JlYXRlSW50Q29uc3RyYWludChtZWRpYVRyYWNrQ29uc3Ry
YWludFNldCwgbmFtZSwgY29uc3RyYWludFR5cGUsIGNvbnN0cmFpbnRTZXRUeXBlKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OgotICAgICAg
ICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVhdGVJbnRDb25zdHJhaW50KG1lZGlhVHJhY2tD
b25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWludFNldFR5cGUpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRl
OgotICAgICAgICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVhdGVJbnRDb25zdHJhaW50KG1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWludFNl
dFR5cGUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpT
YW1wbGVTaXplOgotICAgICAgICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVhdGVJbnRDb25z
dHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29u
c3RyYWludFNldFR5cGUpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkFzcGVjdFJhdGlvOgotICAgICAgICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBj
cmVhdGVEb3VibGVDb25zdHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25z
dHJhaW50VHlwZSwgY29uc3RyYWludFNldFR5cGUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGU6Ci0gICAgICAgIG1hcC5zZXQoY29uc3Ry
YWludFR5cGUsIGNyZWF0ZURvdWJsZUNvbnN0cmFpbnQobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQs
IG5hbWUsIGNvbnN0cmFpbnRUeXBlLCBjb25zdHJhaW50U2V0VHlwZSkpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKLSAgICAgICAgbWFwLnNl
dChjb25zdHJhaW50VHlwZSwgY3JlYXRlRG91YmxlQ29uc3RyYWludChtZWRpYVRyYWNrQ29uc3Ry
YWludFNldCwgbmFtZSwgY29uc3RyYWludFR5cGUsIGNvbnN0cmFpbnRTZXRUeXBlKSk7Ci0gICAg
ICAgIGJyZWFrOwotCi0gICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0
aW9uOgotICAgICAgICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVhdGVCb29sZWFuQ29uc3Ry
YWludChtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgbmFtZSwgY29uc3RyYWludFR5cGUsIGNvbnN0
cmFpbnRTZXRUeXBlKSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGYWNpbmdNb2RlOgotICAgICAgICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVh
dGVTdHJpbmdDb25zdHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJh
aW50VHlwZSwgY29uc3RyYWludFNldFR5cGUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZDoKLSAgICAgICAgbWFwLnNldChjb25zdHJhaW50
VHlwZSwgY3JlYXRlU3RyaW5nQ29uc3RyYWludChtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgbmFt
ZSwgY29uc3RyYWludFR5cGUsIGNvbnN0cmFpbnRTZXRUeXBlKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZDoKLSAgICAgICAgbWFwLnNldChj
b25zdHJhaW50VHlwZSwgY3JlYXRlU3RyaW5nQ29uc3RyYWludChtZWRpYVRyYWNrQ29uc3RyYWlu
dFNldCwgbmFtZSwgY29uc3RyYWludFR5cGUsIGNvbnN0cmFpbnRTZXRUeXBlKSk7Ci0gICAgICAg
IGJyZWFrOwotCi0gICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpVbmtub3duOgotICAgICAg
ICBMT0coTWVkaWEsICJwYXJzZU1lZGlhVHJhY2tDb25zdHJhaW50U2V0Rm9yS2V5KCkgLSBpZ25v
cmluZyB1bnN1cHBvcnRlZCBjb25zdHJhaW50ICclcycuIiwgbmFtZS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgcGFyc2VBZHZhbmNlZENv
bnN0cmFpbnRzKGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50cywgVmVjdG9y
PE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYgYWR2YW5jZWRDb25zdHJhaW50cykKLXsKLSAg
ICBBcnJheVZhbHVlIHNlcXVlbmNlT2ZNZWRpYVRyYWNrQ29uc3RyYWludFNldHM7Ci0gICAgaWYg
KCFtZWRpYVRyYWNrQ29uc3RyYWludHMuZ2V0KCJhZHZhbmNlZCIsIHNlcXVlbmNlT2ZNZWRpYVRy
YWNrQ29uc3RyYWludFNldHMpIHx8IHNlcXVlbmNlT2ZNZWRpYVRyYWNrQ29uc3RyYWludFNldHMu
aXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICBMT0coTWVkaWEsICJwYXJzZUFkdmFuY2Vk
Q29uc3RyYWludHMoKSAtIHZhbHVlIG9mIGFkdmFuY2VkIGtleSBpcyBub3QgYSBsaXN0LiIpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc2l6ZV90IG51bWJlck9mQ29uc3RyYWludFNl
dHM7Ci0gICAgaWYgKCFzZXF1ZW5jZU9mTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRzLmxlbmd0aChu
dW1iZXJPZkNvbnN0cmFpbnRTZXRzKSkgewotICAgICAgICBMT0coTWVkaWEsICJwYXJzZUFkdmFu
Y2VkQ29uc3RyYWludHMoKSAtIGlnbm9yaW5nIGVtcHR5IGFkdmFuY2VkIHNlcXVlbmNlIG9mIE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0cy4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZDb25zdHJhaW50U2V0czsgKytpKSB7Ci0g
ICAgICAgIERpY3Rpb25hcnkgbWVkaWFUcmFja0NvbnN0cmFpbnRTZXQ7Ci0gICAgICAgIGlmICgh
c2VxdWVuY2VPZk1lZGlhVHJhY2tDb25zdHJhaW50U2V0cy5nZXQoaSwgbWVkaWFUcmFja0NvbnN0
cmFpbnRTZXQpIHx8IG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LmlzVW5kZWZpbmVkT3JOdWxsKCkp
IHsKLSAgICAgICAgICAgIExPRyhNZWRpYSwgInBhcnNlQWR2YW5jZWRDb25zdHJhaW50cygpIC0g
aWdub3JpbmcgY29uc3RyYWludCBzZXQgd2l0aCBpbmRleCAnJXp1JyBpbiBhZHZhbmNlZCBsaXN0
LiIsIGkpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCBtYXA7Ci0KLSAgICAgICAgVmVjdG9yPFN0cmluZz4gbG9j
YWxLZXlzOwotICAgICAgICBtZWRpYVRyYWNrQ29uc3RyYWludFNldC5nZXRPd25Qcm9wZXJ0eU5h
bWVzKGxvY2FsS2V5cyk7Ci0gICAgICAgIGZvciAoYXV0byYgbG9jYWxLZXkgOiBsb2NhbEtleXMp
Ci0gICAgICAgICAgICBwYXJzZU1lZGlhVHJhY2tDb25zdHJhaW50U2V0Rm9yS2V5KG1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0LCBsb2NhbEtleSwgbWFwLCBDb25zdHJhaW50U2V0VHlwZTo6QWR2YW5j
ZWQpOwotCi0gICAgICAgIGlmICghbWFwLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGFkdmFuY2Vk
Q29uc3RyYWludHMuYXBwZW5kKFdURk1vdmUobWFwKSk7Ci0gICAgfQotfQotCi12b2lkIHBhcnNl
TWVkaWFDb25zdHJhaW50c0RpY3Rpb25hcnkoY29uc3QgRGljdGlvbmFyeSYgbWVkaWFUcmFja0Nv
bnN0cmFpbnRzLCBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFuZGF0b3J5Q29uc3RyYWlu
dHMsIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4mIGFkdmFuY2VkQ29uc3RyYWlu
dHMpCi17Ci0gICAgaWYgKG1lZGlhVHJhY2tDb25zdHJhaW50cy5pc1VuZGVmaW5lZE9yTnVsbCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiBrZXlzOwotICAgIG1lZGlh
VHJhY2tDb25zdHJhaW50cy5nZXRPd25Qcm9wZXJ0eU5hbWVzKGtleXMpOwotCi0gICAgZm9yIChh
dXRvJiBrZXkgOiBrZXlzKSB7Ci0gICAgICAgIGlmIChrZXkgPT0gImFkdmFuY2VkIikKLSAgICAg
ICAgICAgIHBhcnNlQWR2YW5jZWRDb25zdHJhaW50cyhtZWRpYVRyYWNrQ29uc3RyYWludHMsIGFk
dmFuY2VkQ29uc3RyYWludHMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXJzZU1lZGlh
VHJhY2tDb25zdHJhaW50U2V0Rm9yS2V5KG1lZGlhVHJhY2tDb25zdHJhaW50cywga2V5LCBtYW5k
YXRvcnlDb25zdHJhaW50cywgQ29uc3RyYWludFNldFR5cGU6Ok1hbmRhdG9yeSk7Ci0gICAgfQot
fQotCi1zdGF0aWMgdm9pZCBKU01lZGlhRGV2aWNlc0dldFVzZXJNZWRpYVByb21pc2VGdW5jdGlv
bihFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCi17Ci0g
ICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0KLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkp
IHsKLSAgICAgICAgdGhyb3dWTUVycm9yKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0
byBjb25zdHJhaW50c0RpY3Rpb25hcnkgPSBEaWN0aW9uYXJ5KCZzdGF0ZSwgc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMCkpOwotCi0gICAgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAgbWFuZGF0
b3J5QXVkaW9Db25zdHJhaW50czsKLSAgICBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXA+IGFkdmFuY2VkQXVkaW9Db25zdHJhaW50czsKLSAgICBib29sIGFyZUF1ZGlvQ29uc3RyYWlu
dHNWYWxpZCA9IGZhbHNlOwotCi0gICAgRGljdGlvbmFyeSBhdWRpb0NvbnN0cmFpbnRzRGljdGlv
bmFyeTsKLSAgICBpZiAoY29uc3RyYWludHNEaWN0aW9uYXJ5LmdldCgiYXVkaW8iLCBhdWRpb0Nv
bnN0cmFpbnRzRGljdGlvbmFyeSkgJiYgIWF1ZGlvQ29uc3RyYWludHNEaWN0aW9uYXJ5LmlzVW5k
ZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgcGFyc2VNZWRpYUNvbnN0cmFpbnRzRGljdGlvbmFy
eShhdWRpb0NvbnN0cmFpbnRzRGljdGlvbmFyeSwgbWFuZGF0b3J5QXVkaW9Db25zdHJhaW50cywg
YWR2YW5jZWRBdWRpb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgYXJlQXVkaW9Db25zdHJhaW50c1Zh
bGlkID0gdHJ1ZTsKLSAgICB9IGVsc2UKLSAgICAgICAgY29uc3RyYWludHNEaWN0aW9uYXJ5Lmdl
dCgiYXVkaW8iLCBhcmVBdWRpb0NvbnN0cmFpbnRzVmFsaWQpOwotCi0gICAgTWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXRNYXAgbWFuZGF0b3J5VmlkZW9Db25zdHJhaW50czsKLSAgICBWZWN0b3I8TWVk
aWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+IGFkdmFuY2VkVmlkZW9Db25zdHJhaW50czsKLSAgICBi
b29sIGFyZVZpZGVvQ29uc3RyYWludHNWYWxpZCA9IGZhbHNlOwotCi0gICAgRGljdGlvbmFyeSB2
aWRlb0NvbnN0cmFpbnRzRGljdGlvbmFyeTsKLSAgICBpZiAoY29uc3RyYWludHNEaWN0aW9uYXJ5
LmdldCgidmlkZW8iLCB2aWRlb0NvbnN0cmFpbnRzRGljdGlvbmFyeSkgJiYgIXZpZGVvQ29uc3Ry
YWludHNEaWN0aW9uYXJ5LmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgcGFyc2VNZWRp
YUNvbnN0cmFpbnRzRGljdGlvbmFyeSh2aWRlb0NvbnN0cmFpbnRzRGljdGlvbmFyeSwgbWFuZGF0
b3J5VmlkZW9Db25zdHJhaW50cywgYWR2YW5jZWRWaWRlb0NvbnN0cmFpbnRzKTsKLSAgICAgICAg
YXJlVmlkZW9Db25zdHJhaW50c1ZhbGlkID0gdHJ1ZTsKLSAgICB9IGVsc2UKLSAgICAgICAgY29u
c3RyYWludHNEaWN0aW9uYXJ5LmdldCgidmlkZW8iLCBhcmVWaWRlb0NvbnN0cmFpbnRzVmFsaWQp
OwotCi0gICAgYXV0byBhdWRpb0NvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNy
ZWF0ZShXVEZNb3ZlKG1hbmRhdG9yeUF1ZGlvQ29uc3RyYWludHMpLCBXVEZNb3ZlKGFkdmFuY2Vk
QXVkaW9Db25zdHJhaW50cyksIGFyZUF1ZGlvQ29uc3RyYWludHNWYWxpZCk7Ci0gICAgYXV0byB2
aWRlb0NvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShXVEZNb3ZlKG1h
bmRhdG9yeVZpZGVvQ29uc3RyYWludHMpLCBXVEZNb3ZlKGFkdmFuY2VkVmlkZW9Db25zdHJhaW50
cyksIGFyZVZpZGVvQ29uc3RyYWludHNWYWxpZCk7Ci0gICAgcHJvcGFnYXRlRXhjZXB0aW9uKHN0
YXRlLCBzY29wZSwgY2FzdFRoaXNWYWx1ZTxKU01lZGlhRGV2aWNlcz4oc3RhdGUpLndyYXBwZWQo
KS5nZXRVc2VyTWVkaWEoV1RGTW92ZShhdWRpb0NvbnN0cmFpbnRzKSwgV1RGTW92ZSh2aWRlb0Nv
bnN0cmFpbnRzKSwgV1RGTW92ZShwcm9taXNlKSkpOwotfQotCi1KU1ZhbHVlIEpTTWVkaWFEZXZp
Y2VzOjpnZXRVc2VyTWVkaWEoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICByZXR1cm4gY2FsbFBy
b21pc2VGdW5jdGlvbjxKU01lZGlhRGV2aWNlc0dldFVzZXJNZWRpYVByb21pc2VGdW5jdGlvbiwg
UHJvbWlzZUV4ZWN1dGlvblNjb3BlOjpXaW5kb3dPbmx5PihzdGF0ZSk7Ci19Ci0KLX0KLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhRGV2aWNl
c0N1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYURldmljZXNDdXN0
b20uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDEwYWM2Y2E5MmM1MzcwNWI0Mzlk
M2VmMWY4MzA5YzRkZDllOTY5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhRGV2aWNlc0N1c3Rv
bS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGljdGlvbmFyeTsKLQot
dm9pZCBwYXJzZU1lZGlhQ29uc3RyYWludHNEaWN0aW9uYXJ5KGNvbnN0IERpY3Rpb25hcnkmLCBN
ZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYsIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcD4mKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVkaWFTdHJlYW1UcmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lZGlhU3RyZWFtVHJhY2tDdXN0b20uY3BwCmluZGV4IGMzMGI2ZmM5ZjAxNjI2
Y2M2NTk1YjVhOWM3ZmZjZGM5YWI4MGRlMzMuLjcwZTRlZTAyZWYyM2I4ZTEyNzgzOGY2YjJkZTkw
YmY1MjYwZTJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVk
aWFTdHJlYW1UcmFja0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZWRpYVN0cmVhbVRyYWNrQ3VzdG9tLmNwcApAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1ZGUg
IkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNNZWRpYURldmljZXNDdXN0b20uaCIKLSNpbmNsdWRl
ICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIgpAQCAtMTY2LDQwICsxNjQsNiBAQCBKU0M6OkpTVmFsdWUgSlNNZWRpYVN0cmVh
bVRyYWNrOjpnZXRDYXBhYmlsaXRpZXMoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICByZXR1cm4gb2Jq
ZWN0OwogfQogCi1KU1ZhbHVlIEpTTWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhF
eGVjU3RhdGUmIHN0YXRlKQotewotICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIG1hbmRh
dG9yeUNvbnN0cmFpbnRzOwotICAgIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4g
YWR2YW5jZWRDb25zdHJhaW50czsKLSAgICBib29sIHZhbGlkID0gZmFsc2U7Ci0KLSAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpID49IDEpIHsKLSAgICAgICAgSlNWYWx1ZSBhcmd1bWVudCA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApOwotCi0gICAgICAgIEpTVk1DbGllbnREYXRhJiBj
bGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4oc3RhdGUudm0oKS5jbGll
bnREYXRhKTsKLSAgICAgICAgcHV0RGlyZWN0KHN0YXRlLnZtKCksIGNsaWVudERhdGEuYnVpbHRp
bk5hbWVzKCkubWVkaWFTdHJlYW1UcmFja0NvbnN0cmFpbnRzUHJpdmF0ZU5hbWUoKSwgYXJndW1l
bnQsIERvbnRFbnVtKTsKLQotICAgICAgICBhdXRvIGNvbnN0cmFpbnRzRGljdGlvbmFyeSA9IERp
Y3Rpb25hcnkoJnN0YXRlLCBhcmd1bWVudCk7Ci0gICAgICAgIGlmICghY29uc3RyYWludHNEaWN0
aW9uYXJ5LmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgICAgICBwYXJzZU1lZGlhQ29uc3Ry
YWludHNEaWN0aW9uYXJ5KGNvbnN0cmFpbnRzRGljdGlvbmFyeSwgbWFuZGF0b3J5Q29uc3RyYWlu
dHMsIGFkdmFuY2VkQ29uc3RyYWludHMpOwotICAgICAgICB2YWxpZCA9ICFhZHZhbmNlZENvbnN0
cmFpbnRzLmlzRW1wdHkoKSB8fCAhbWFuZGF0b3J5Q29uc3RyYWludHMuaXNFbXB0eSgpOwotICAg
IH0KLQotICAgIGF1dG8gZGVmZXJyZWRQcm9taXNlID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKHN0
YXRlLCBkb21XaW5kb3coKSk7Ci0gICAgYXV0byBwcm9taXNlID0gZGVmZXJyZWRQcm9taXNlLT5w
cm9taXNlKCk7Ci0KLSAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6
OmNyZWF0ZShXVEZNb3ZlKG1hbmRhdG9yeUNvbnN0cmFpbnRzKSwgV1RGTW92ZShhZHZhbmNlZENv
bnN0cmFpbnRzKSwgdmFsaWQpOwotICAgIHdyYXBwZWQoKS5hcHBseUNvbnN0cmFpbnRzKFdURk1v
dmUoY29uc3RyYWludHMpLCBXVEZNb3ZlKGRlZmVycmVkUHJvbWlzZSkpOwotCi0gICAgcmV0dXJu
IHByb21pc2U7Ci19Ci0KLUpTVmFsdWUgSlNNZWRpYVN0cmVhbVRyYWNrOjpnZXRDb25zdHJhaW50
cyhFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIEpTVk1DbGllbnREYXRhJiBjbGllbnREYXRhID0g
KnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4oc3RhdGUudm0oKS5jbGllbnREYXRhKTsKLSAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGdldERpcmVjdChzdGF0ZS52bSgpLCBjbGllbnREYXRhLmJ1aWx0
aW5OYW1lcygpLm1lZGlhU3RyZWFtVHJhY2tDb25zdHJhaW50c1ByaXZhdGVOYW1lKCkpOwotICAg
IHJldHVybiAhcmVzdWx0LmlzRW1wdHkoKSA/IHJlc3VsdCA6IGpzVW5kZWZpbmVkKCk7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KaW5kZXggNGMyZGFjYmJhYTc0MTk4ZTBl
MzEzZjNkYjU0ZGZjMDc2ODMyNGJmYi4uMGU0OTYwZDY0MDBiNjhmMTkxYjVhZjc3YzIxZmFkMzEy
NGUyOWYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvci5wbQpAQCAtMjgsNiArMjgsNyBAQCBwYWNrYWdlIENvZGVHZW5lcmF0b3I7CiAKIHVz
ZSBzdHJpY3Q7CiAKK3VzZSBGaWxlOjpCYXNlbmFtZTsKIHVzZSBGaWxlOjpGaW5kOwogdXNlIENh
cnAgcXc8bG9uZ21lc3M+OwogdXNlIERhdGE6OkR1bXBlcjsKQEAgLTIwMywxMSArMjA0LDI0IEBA
IHN1YiBQcm9jZXNzRG9jdW1lbnQKIAogICAgIG15ICRkaWN0aW9uYXJpZXMgPSAkdXNlRG9jdW1l
bnQtPmRpY3Rpb25hcmllczsKICAgICBpZiAoQCRkaWN0aW9uYXJpZXMpIHsKLSAgICAgICAgZGll
ICJNdWx0aXBsZSBzdGFuZGFsb25lIGRpY3Rpb25hcmllcyBwZXIgZG9jdW1lbnQgYXJlIG5vdCBz
dXBwb3J0ZWQiIGlmIEAkZGljdGlvbmFyaWVzID4gMTsKKyAgICAgICAgbXkgJGRpY3Rpb25hcnk7
CisgICAgICAgIG15ICRvdGhlckRpY3Rpb25hcmllczsKKyAgICAgICAgaWYgKEAkZGljdGlvbmFy
aWVzID09IDEpIHsKKyAgICAgICAgICAgICRkaWN0aW9uYXJ5ID0gQCRkaWN0aW9uYXJpZXNbMF07
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBteSAkcHJpbWFyeURpY3Rpb25hcnlOYW1l
ID0gZmlsZXBhcnNlKCR0YXJnZXRJZGxGaWxlUGF0aCwgIi5pZGwiKTsKKyAgICAgICAgICAgIGZv
ciBteSAkY2FuZGlkYXRlIChAJGRpY3Rpb25hcmllcykgeworICAgICAgICAgICAgICAgIGlmICgk
Y2FuZGlkYXRlLT50eXBlLT5uYW1lIGVxICRwcmltYXJ5RGljdGlvbmFyeU5hbWUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgJGRpY3Rpb25hcnkgPSAkY2FuZGlkYXRlOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2ggQCRvdGhlckRpY3Rpb25hcmllcywg
JGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBkaWUgIk11bHRpcGxlIGRpY3Rpb25hcmllcyBwZXIgZG9jdW1lbnQgYXJlIG9ubHkgc3VwcG9y
dGVkIGlmIG9uZSBtYXRjaGVzIHRoZSBmaWxlbmFtZSIgdW5sZXNzICRkaWN0aW9uYXJ5OworICAg
ICAgICB9CiAKLSAgICAgICAgbXkgJGRpY3Rpb25hcnkgPSBAJGRpY3Rpb25hcmllc1swXTsKICAg
ICAgICAgcHJpbnQgIkdlbmVyYXRpbmcgJHVzZUdlbmVyYXRvciBiaW5kaW5ncyBjb2RlIGZvciBJ
REwgZGljdGlvbmFyeSBcIiIgLiAkZGljdGlvbmFyeS0+dHlwZS0+bmFtZSAuICJcIi4uLlxuIiBp
ZiAkdmVyYm9zZTsKLSAgICAgICAgJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlRGljdGlvbmFyeSgk
ZGljdGlvbmFyeSwgJHVzZURvY3VtZW50LT5lbnVtZXJhdGlvbnMpOworICAgICAgICAkY29kZUdl
bmVyYXRvci0+R2VuZXJhdGVEaWN0aW9uYXJ5KCRkaWN0aW9uYXJ5LCAkdXNlRG9jdW1lbnQtPmVu
dW1lcmF0aW9ucywgJG90aGVyRGljdGlvbmFyaWVzKTsKICAgICAgICAgJGNvZGVHZW5lcmF0b3It
PldyaXRlRGF0YSgkZGljdGlvbmFyeSwgJHVzZU91dHB1dERpciwgJHVzZU91dHB1dEhlYWRlcnNE
aXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAyMThlMDdmZGM5ODQ4MDg2ZWFi
YzRlYWYwMmNjYjdhMTQxODU4MmIwLi43YzE5NDU0YmVmMTI5Yzg1MjdjMzU0NWEyYWMyOTkxZDFk
OGViYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtNTAsNyArNTAsNiBAQCBteSBAaW1wbENvbnRlbnQgPSAoKTsKIG15
ICVpbXBsSW5jbHVkZXMgPSAoKTsKIG15IEBkZXBzQ29udGVudCA9ICgpOwogbXkgJG51bUNhY2hl
ZEF0dHJpYnV0ZXMgPSAwOwotbXkgJGN1cnJlbnRDYWNoZWRBdHRyaWJ1dGUgPSAwOwogCiBteSAk
YmVnaW5BcHBsZUNvcHlyaWdodEZvckhlYWRlckZpbGVzID0gPDxFTkQ7CiAvLyAtLS0tLS0tIEJl
Z2luIEFwcGxlIENvcHlyaWdodCAtLS0tLS0tCkBAIC0xNDMsMTEgKzE0MiwxMSBAQCBzdWIgR2Vu
ZXJhdGVFbnVtZXJhdGlvbgogCiBzdWIgR2VuZXJhdGVEaWN0aW9uYXJ5CiB7Ci0gICAgbXkgKCRv
YmplY3QsICRkaWN0aW9uYXJ5LCAkZW51bWVyYXRpb25zKSA9IEBfOworICAgIG15ICgkb2JqZWN0
LCAkZGljdGlvbmFyeSwgJGVudW1lcmF0aW9ucywgJG90aGVyRGljdGlvbmFyaWVzKSA9IEBfOwog
CiAgICAgbXkgJGNsYXNzTmFtZSA9IEdldERpY3Rpb25hcnlDbGFzc05hbWUoJGRpY3Rpb25hcnkt
PnR5cGUpOwotICAgICRvYmplY3QtPkdlbmVyYXRlRGljdGlvbmFyeUhlYWRlcigkZGljdGlvbmFy
eSwgJGNsYXNzTmFtZSwgJGVudW1lcmF0aW9ucyk7Ci0gICAgJG9iamVjdC0+R2VuZXJhdGVEaWN0
aW9uYXJ5SW1wbGVtZW50YXRpb24oJGRpY3Rpb25hcnksICRjbGFzc05hbWUsICRlbnVtZXJhdGlv
bnMpOworICAgICRvYmplY3QtPkdlbmVyYXRlRGljdGlvbmFyeUhlYWRlcigkZGljdGlvbmFyeSwg
JGNsYXNzTmFtZSwgJGVudW1lcmF0aW9ucywgJG90aGVyRGljdGlvbmFyaWVzKTsKKyAgICAkb2Jq
ZWN0LT5HZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbigkZGljdGlvbmFyeSwgJGNsYXNz
TmFtZSwgJGVudW1lcmF0aW9ucywgJG90aGVyRGljdGlvbmFyaWVzKTsKIH0KIAogc3ViIEdlbmVy
YXRlQ2FsbGJhY2tGdW5jdGlvbgpAQCAtMTIyNCw3ICsxMjIzLDcgQEAgc3ViIEdlbmVyYXRlRGlj
dGlvbmFyaWVzSGVhZGVyQ29udGVudAogCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgIGZvcmVh
Y2ggbXkgJGRpY3Rpb25hcnkgKEAkYWxsRGljdGlvbmFyaWVzKSB7Ci0gICAgICAgICRoZWFkZXJJ
bmNsdWRlc3skaW50ZXJmYWNlLT50eXBlLT5uYW1lIC4gIi5oIn0gPSAxOworICAgICAgICAkaGVh
ZGVySW5jbHVkZXN7JGludGVyZmFjZS0+dHlwZS0+bmFtZSAuICIuaCJ9ID0gMSBpZiAkaW50ZXJm
YWNlOwogICAgICAgICBteSAkY2xhc3NOYW1lID0gR2V0RGljdGlvbmFyeUNsYXNzTmFtZSgkZGlj
dGlvbmFyeS0+dHlwZSwgJGludGVyZmFjZSk7CiAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmlu
ZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRkaWN0aW9uYXJ5
KTsKICAgICAgICAgJHJlc3VsdCAuPSBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50KCRk
aWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkY29uZGl0aW9uYWxTdHJpbmcpOwpAQCAtMzM5OCwxMCAr
MzM5Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4g
Ijo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUudm0oKSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
XG4iKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIG15ICRjYWNoZUluZGV4ID0gMDsKICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FjaGVkQXR0cmlidXRlfSkgewotICAgICAgICAgICAg
ICAgICAgICAkY2FjaGVJbmRleCA9ICRjdXJyZW50Q2FjaGVkQXR0cmlidXRlOwotICAgICAgICAg
ICAgICAgICAgICAkY3VycmVudENhY2hlZEF0dHJpYnV0ZSsrOwogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IHRoaXNP
YmplY3QubV8iIC4gJGF0dHJpYnV0ZS0+bmFtZSAuICIuZ2V0KCkpXG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBjYWNoZWRWYWx1ZTtc
biIpOwogICAgICAgICAgICAgICAgIH0KQEAgLTQ1MzcsNyArNDUzMyw3IEBAIHN1YiBHZW5lcmF0
ZVBhcmFtZXRlcnNDaGVjawogCiBzdWIgR2VuZXJhdGVEaWN0aW9uYXJ5SGVhZGVyCiB7Ci0gICAg
bXkgKCRvYmplY3QsICRkaWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkZW51bWVyYXRpb25zKSA9IEBf
OworICAgIG15ICgkb2JqZWN0LCAkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGVudW1lcmF0aW9u
cywgJG90aGVyRGljdGlvbmFyaWVzKSA9IEBfOwogCiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRl
ciB0ZW1wbGF0ZSBhbmQgaGVhZGVyIHByb3RlY3Rpb24uCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dEhlYWRlciwgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVyKCRkaWN0aW9uYXJ5KSk7CkBAIC00
NTQ4LDYgKzQ1NDQsNyBAQCBzdWIgR2VuZXJhdGVEaWN0aW9uYXJ5SGVhZGVyCiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50KCRkaWN0aW9uYXJ5
LCAkY2xhc3NOYW1lKSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgR2VuZXJhdGVFbnVtZXJh
dGlvbnNIZWFkZXJDb250ZW50KCRkaWN0aW9uYXJ5LCAkZW51bWVyYXRpb25zKSk7CisgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgR2VuZXJhdGVEaWN0aW9uYXJpZXNIZWFkZXJDb250ZW50KHVuZGVm
LCAkb3RoZXJEaWN0aW9uYXJpZXMpKSBpZiAkb3RoZXJEaWN0aW9uYXJpZXM7CiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIn0gLy8gbmFtZXNwYWNlIFdlYkNvcmVcbiIpOwogCiAgICAgbXkgJGNv
bmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcoJGRpY3Rpb25hcnkpOwpAQCAtNDU3MCwxNSArNDU2NywxNiBAQCBzdWIgR2VuZXJhdGVEaWN0
aW9uYXJ5SGVhZGVyCiAKIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbgogewot
ICAgIG15ICgkb2JqZWN0LCAkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGVudW1lcmF0aW9ucykg
PSBAXzsKKyAgICBteSAoJG9iamVjdCwgJGRpY3Rpb25hcnksICRjbGFzc05hbWUsICRlbnVtZXJh
dGlvbnMsICRvdGhlckRpY3Rpb25hcmllcykgPSBAXzsKIAogICAgICMgLSBBZGQgZGVmYXVsdCBo
ZWFkZXIgdGVtcGxhdGUKICAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGRpY3Rpb25hcnkpKTsKIAogICAgIHB1c2goQGltcGxD
b250ZW50LCAiXG51c2luZyBuYW1lc3BhY2UgSlNDO1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQs
IEdlbmVyYXRlRW51bWVyYXRpb25zSW1wbGVtZW50YXRpb25Db250ZW50KCRkaWN0aW9uYXJ5LCAk
ZW51bWVyYXRpb25zKSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlRGljdGlvbmFy
eUltcGxlbWVudGF0aW9uQ29udGVudCgkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSkpOworICAgIHB1
c2goQGltcGxDb250ZW50LCBHZW5lcmF0ZUVudW1lcmF0aW9uc0ltcGxlbWVudGF0aW9uQ29udGVu
dCgkZGljdGlvbmFyeSwgJGVudW1lcmF0aW9ucykpOworICAgIHB1c2goQGltcGxDb250ZW50LCBH
ZW5lcmF0ZURpY3Rpb25hcmllc0ltcGxlbWVudGF0aW9uQ29udGVudCh1bmRlZiwgJG90aGVyRGlj
dGlvbmFyaWVzKSkgaWYgJG90aGVyRGljdGlvbmFyaWVzOwogICAgIHB1c2goQGltcGxDb250ZW50
LCAifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxuIik7CiAKICAgICBteSAkY29uZGl0aW9uYWxTdHJp
bmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZGljdGlvbmFy
eSk7CkBAIC01NjAzLDEwICs1NjAxLDkgQEAgc3ViIFdyaXRlRGF0YQogICAgIG15ICRvdXRwdXRE
aXIgPSBzaGlmdDsKIAogICAgIG15ICRuYW1lID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKLSAg
ICBteSAkcHJlZml4ID0gRmlsZU5hbWVQcmVmaXg7Ci0gICAgbXkgJGhlYWRlckZpbGVOYW1lID0g
IiRvdXRwdXREaXIvJHByZWZpeCRuYW1lLmgiOwotICAgIG15ICRpbXBsRmlsZU5hbWUgPSAiJG91
dHB1dERpci8kcHJlZml4JG5hbWUuY3BwIjsKLSAgICBteSAkZGVwc0ZpbGVOYW1lID0gIiRvdXRw
dXREaXIvJHByZWZpeCRuYW1lLmRlcCI7CisgICAgbXkgJGhlYWRlckZpbGVOYW1lID0gIiRvdXRw
dXREaXIvSlMkbmFtZS5oIjsKKyAgICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvSlMk
bmFtZS5jcHAiOworICAgIG15ICRkZXBzRmlsZU5hbWUgPSAiJG91dHB1dERpci9KUyRuYW1lLmRl
cCI7CiAKICAgICAjIFVwZGF0ZSBhIC5jcHAgZmlsZSBpZiB0aGUgY29udGVudHMgYXJlIGNoYW5n
ZWQuCiAgICAgbXkgJGNvbnRlbnRzID0gam9pbiAiIiwgQGltcGxDb250ZW50SGVhZGVyOwpAQCAt
NTY1OSw3ICs1NjU2LDcgQEAgc3ViIFdyaXRlRGF0YQogICAgIH0KICAgICBmb3JlYWNoIG15ICRp
bmNsdWRlIChzb3J0IEBpbmNsdWRlcykgewogICAgICAgICAjICJKU0NsYXNzTmFtZS5oIiBpcyBh
bHJlYWR5IGluY2x1ZGVkIHJpZ2h0IGFmdGVyIGNvbmZpZy5oLgotICAgICAgICBuZXh0IGlmICRp
bmNsdWRlIGVxICJcIiRwcmVmaXgkbmFtZS5oXCIiOworICAgICAgICBuZXh0IGlmICRpbmNsdWRl
IGVxICJcIkpTJG5hbWUuaFwiIjsKICAgICAgICAgJGNvbnRlbnRzIC49ICIjaW5jbHVkZSAkaW5j
bHVkZVxuIjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCmluZGV4IDYxNDM1YmM0MDY4OTU3OWQwMmRhOTE2N2Y3
NGRiNGU4Mjg5MDBhNDkuLjEwNDhhNTEyZTUzZGM4M2FjZWNhZjQ4Y2QwYWIyZjRhMjk3ZWM1Y2Qg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbApAQCAtODIsNyArODIsNyBAQCAkdGFyZ2V0SWRsRmlsZSA9IEN3ZDo6cmVhbHBh
dGgoJHRhcmdldElkbEZpbGUpOwogaWYgKCR2ZXJib3NlKSB7CiAgICAgcHJpbnQgIiRnZW5lcmF0
b3I6ICR0YXJnZXRJZGxGaWxlXG4iOwogfQotbXkgJHRhcmdldEludGVyZmFjZU5hbWUgPSBmaWxl
cGFyc2UoYmFzZW5hbWUoJHRhcmdldElkbEZpbGUpLCAiLmlkbCIpOworbXkgJHRhcmdldEludGVy
ZmFjZU5hbWUgPSBmaWxlcGFyc2UoJHRhcmdldElkbEZpbGUsICIuaWRsIik7CiAKIG15ICRpZGxG
b3VuZCA9IDA7CiBteSBAc3VwcGxlbWVudGVkSWRsRmlsZXM7CkBAIC0xMDAsNyArMTAwLDcgQEAg
aWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSkgewogICAgIG9wZW4gRkgsICI8ICRzdXBw
bGVtZW50YWxEZXBlbmRlbmN5RmlsZSIgb3IgZGllICJDYW5ub3Qgb3BlbiAkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGVcbiI7CiAgICAgd2hpbGUgKG15ICRsaW5lID0gPEZIPikgewogICAgICAg
ICBteSAoJGlkbEZpbGUsIEBmb2xsb3dpbmdJZGxGaWxlcykgPSBzcGxpdCgvXHMrLywgJGxpbmUp
OwotICAgICAgICBpZiAoJGlkbEZpbGUgYW5kIGJhc2VuYW1lKCRpZGxGaWxlKSBlcSBiYXNlbmFt
ZSgkdGFyZ2V0SWRsRmlsZSkpIHsKKyAgICAgICAgaWYgKCRpZGxGaWxlIGFuZCBmaWxlcGFyc2Uo
JGlkbEZpbGUpIGVxIGZpbGVwYXJzZSgkdGFyZ2V0SWRsRmlsZSkpIHsKICAgICAgICAgICAgICRp
ZGxGb3VuZCA9IDE7CiAgICAgICAgICAgICBAc3VwcGxlbWVudGVkSWRsRmlsZXMgPSBzb3J0IEBm
b2xsb3dpbmdJZGxGaWxlczsKICAgICAgICAgfQpAQCAtMTEyLDcgKzExMiw3IEBAIGlmICgkc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpIHsKICAgICAjIGRlcGVuZGVuY3kgZmlsZSkgYnV0IHNo
b3VsZCBnZW5lcmF0ZSAuaCBhbmQgLmNwcCBmaWxlcy4KICAgICBpZiAoISRpZGxGb3VuZCBhbmQg
JGFkZGl0aW9uYWxJZGxGaWxlcykgewogICAgICAgICBteSBAaWRsRmlsZXMgPSBzaGVsbHdvcmRz
KCRhZGRpdGlvbmFsSWRsRmlsZXMpOwotICAgICAgICAkaWRsRm91bmQgPSBncmVwIHsgJF8gYW5k
IGJhc2VuYW1lKCRfKSBlcSBiYXNlbmFtZSgkdGFyZ2V0SWRsRmlsZSkgfSBAaWRsRmlsZXM7Cisg
ICAgICAgICRpZGxGb3VuZCA9IGdyZXAgeyAkXyBhbmQgZmlsZXBhcnNlKCRfKSBlcSBmaWxlcGFy
c2UoJHRhcmdldElkbEZpbGUpIH0gQGlkbEZpbGVzOwogICAgIH0KIAogICAgIGlmICghJGlkbEZv
dW5kKSB7CkBAIC0xMzAsMTMgKzEzMCwxMyBAQCBteSAkdGFyZ2V0RG9jdW1lbnQgPSAkdGFyZ2V0
UGFyc2VyLT5QYXJzZSgkdGFyZ2V0SWRsRmlsZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzbwogCiBp
ZiAoJGlkbEF0dHJpYnV0ZXNGaWxlKSB7CiAgICAgbXkgJGlkbEF0dHJpYnV0ZXMgPSBsb2FkSURM
QXR0cmlidXRlcygkaWRsQXR0cmlidXRlc0ZpbGUpOwotICAgIGNoZWNrSURMQXR0cmlidXRlcygk
aWRsQXR0cmlidXRlcywgJHRhcmdldERvY3VtZW50LCBiYXNlbmFtZSgkdGFyZ2V0SWRsRmlsZSkp
OworICAgIGNoZWNrSURMQXR0cmlidXRlcygkaWRsQXR0cmlidXRlcywgJHRhcmdldERvY3VtZW50
LCBmaWxlcGFyc2UoJHRhcmdldElkbEZpbGUpKTsKIH0KIAogZm9yZWFjaCBteSAkaWRsRmlsZSAo
QHN1cHBsZW1lbnRlZElkbEZpbGVzKSB7CiAgICAgbmV4dCBpZiAkaWRsRmlsZSBlcSAkdGFyZ2V0
SWRsRmlsZTsKIAotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gZmlsZXBhcnNlKGJhc2VuYW1lKCRp
ZGxGaWxlKSwgIi5pZGwiKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IGZpbGVwYXJzZSgkaWRs
RmlsZSwgIi5pZGwiKTsKICAgICBteSAkcGFyc2VyID0gSURMUGFyc2VyLT5uZXcoISR2ZXJib3Nl
KTsKICAgICBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkaWRsRmlsZSwgJGRlZmluZXMs
ICRwcmVwcm9jZXNzb3IpOwogCkBAIC0yNzEsNyArMjcxLDcgQEAgc3ViIGxvYWRJRExBdHRyaWJ1
dGVzCiAgICAgICAgICAgICAgICAgJGlkbEF0dHJpYnV0ZXN7JG5hbWV9eyJWQUxVRV9JU19NSVNT
SU5HIn0gPSAxOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZGllICJUaGUgZm9ybWF0IG9mICIgLiBiYXNlbmFtZSgkaWRsQXR0cmlidXRlc0ZpbGUpIC4gIiBp
cyB3cm9uZzogbGluZSAkLlxuIjsKKyAgICAgICAgICAgIGRpZSAiVGhlIGZvcm1hdCBvZiAiIC4g
ZmlsZXBhcnNlKCRpZGxBdHRyaWJ1dGVzRmlsZSkgLiAiIGlzIHdyb25nOiBsaW5lICQuXG4iOwog
ICAgICAgICB9CiAgICAgfQogICAgIGNsb3NlIEZIOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCmluZGV4IDBlNzE5MjE1
ZGRhYmI3ZGZmOTJjOGFiMWU1N2FmMmQ2N2QwMDgwYWEuLjAxMGZiYzM3ZGFiYWM4ZGZmZjg3OGZl
YTExZjcwNGM1OTBkMDYyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKQEAgLTI5LDE4ICsyOSwxMiBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1lZGlhQ29uc3RyYWludHNfaAotI2RlZmluZSBN
ZWRpYUNvbnN0cmFpbnRzX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKIAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5o
IgogI2luY2x1ZGUgPGNzdGRsaWI+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5NSw3ICs0ODksNiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGFwcGVuZEV4YWN0KGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgewotICAgICAgICBt
X2V4YWN0LmNsZWFyKCk7CiAgICAgICAgIG1fZXhhY3QuYXBwZW5kKHZhbHVlKTsKICAgICB9CiAK
QEAgLTgxMyw1ICs4MDYsMyBAQCBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX01FRElBQ09OU1RSQUlO
VChTdHJpbmdDb25zdHJhaW50LCBpc1N0cmluZygpKQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19N
RURJQUNPTlNUUkFJTlQoQm9vbGVhbkNvbnN0cmFpbnQsIGlzQm9vbGVhbigpKQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIE1lZGlhQ29uc3RyYWludHNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IDVlYmY0N2MxZjIxYjEzZjFhOTQ2ZDBl
YTk0ZDJkNDQ1NTQ5OGVhM2UuLjkxYzkwYjUyMDRkMmU1YzkwNTVkNmUyM2RjNmZkYTMyZGZhZjc0
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTEzMCw3ICsxMzAsNiBAQCBS
ZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjbG9u
ZSgpCiAgICAgYXV0byBjbG9uZWRNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSA9IGNyZWF0ZShtX3Nv
dXJjZS5jb3B5UmVmKCkpOwogICAgIGNsb25lZE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLT5tX2lz
RW5hYmxlZCA9IHRoaXMtPm1faXNFbmFibGVkOwogICAgIGNsb25lZE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLT5tX2lzRW5kZWQgPSB0aGlzLT5tX2lzRW5kZWQ7Ci0gICAgY2xvbmVkTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUtPm1fY29uc3RyYWludHMgPSB0aGlzLT5tX2NvbnN0cmFpbnRzOwogCiAg
ICAgcmV0dXJuIGNsb25lZE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwogfQpAQCAtMTQwLDExICsx
MzksNiBAQCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Ojp0eXBlKCkgY29uc3QKICAgICByZXR1cm4gbV9zb3VyY2UtPnR5cGUoKTsKIH0KIAotUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjb25zdHJhaW50cygp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29uc3RyYWludHM7Ci19Ci0KIGNvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldHRpbmdzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9zb3VyY2UtPnNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaAppbmRleCAxZjgzZDhkZThhODBmN2ZlMzA5MzJhZWM4MGQ0YjAwY2Q3OGEyY2E1
Li5kYTQxMjg3MDRkMzU0OWIzNTkwYmY0ZTE5NWM3ZDgzY2Y3YmJmNDkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmgKQEAgLTI0LDE0ICsyNCwxMSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
CiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtOTAsNyArODcsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0OwogICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdDsKIAotICAgIFJl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50cygpIGNvbnN0OwogICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6U3VjY2Vzc0hhbmRsZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkZhaWx1cmVIYW5kbGVyKTsK
IAogICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKTsKQEAgLTEx
MCw3ICsxMDYsNiBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZl
cnM7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwotICAgIFJlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlUHJldmlldz4gbV9wcmV2aWV3OwogCiAgICAgU3RyaW5nIG1faWQ7CkBAIC0xMjMsNSAr
MTE4LDMgQEAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4g
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3I7CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwCmluZGV4IDczNGMxMDVhMmZlYjJlOTEzMDBiNDE5ZDBiYWRhNjMxOTMwMGE4ZWMu
LjdmMTFkYzdhMzk1YWZkYmQ0YzIzZmU5Zjg2NzA4YThlOGVkZmU1N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhQ29uc3RyYWludHNJbXBsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBm
ODk3MGYyNmZhYTQ1OWYyMWZlZmMxZDNiYTRjODVlODRkMzdlODc4Li4wMjA2OTBiYmYzNWU2ZmI3
YWYxMTJkNDEyZDAxMDUzNjJiZWY2ZGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTIt
MTQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBjdXN0
b20gYmluZGluZyBmb3IgTWVkaWFEZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVz
ZXJNZWRpYS1leHBlY3RlZC50eHQ6IEV4cGVjdCB0aGUgZXhjZXB0aW9uIHRoZQorICAgICAgICBn
ZW5lcmF0ZWQgYmluZGluZ3MgY29kZSB0aHJvd3MsIHJhdGhlciB0aGFuIHRoZSBkaWZmZXJlbnQg
b25lIHRoZSBoYW5kLXdyaXR0ZW4gYmluZGluZworICAgICAgICB3YXMgdGhyb3dpbmcgYmVmb3Jl
LgorCiAyMDE2LTEyLTE0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgog
CiAgICAgICAgIFtHVEtdIFN1cHBvcnQgbGF0ZXN0IFN1YnRsZUNyeXB0byBITUFDIEFQSXMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVz
ZXJNZWRpYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CmluZGV4IGY3N2Q2OWNlYmEwMTlkMTk4
NTYwZmNlMWU1MWRjZDM3ODJmMzZhNGMuLmNiYTU3ODZiMzNjMTk2ZTEyOTAxNjA5OTc3ZmRjZDBj
ZWZmOTMxOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFE
ZXZpY2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dApAQCAtNSw3
ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFTUyB0eXBlb2YgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy53ZWJraXRHZXRVc2VyTWVkaWEgaXMgJ3VuZGVmaW5lZCcKIFBBU1MgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKGdvdFN0
cmVhbTEpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEoKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KCkgcmVqZWN0ZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBUeXBlIGVycm9yCiBQQVNTIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt9KSByZWplY3RlZCB3aXRoIGVycm9yOiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IKIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEuYXBwbHkodW5kZWZpbmVkKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IENh
biBvbmx5IGNhbGwgTWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBvbiBpbnN0YW5jZXMgb2YgTWVk
aWFEZXZpY2VzCiBQQVNTIFN0cmVhbSBnZW5lcmF0ZWQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297175</attachid>
            <date>2016-12-14 23:54:02 -0800</date>
            <delta_ts>2016-12-15 09:26:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165894-20161214235311.patch</filename>
            <type>text/plain</type>
            <size>100305</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc2YTdmODU0ZTNkODZi
YzdkNmYzYjFjNGQyZDFmZTUyNTBmMzUzYy4uYWRjNTQxYmI0NmYxZmZlMWYwY2RhNmY1YTc3YjVh
OWZiODAyMjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMiBAQAorMjAxNi0xMi0xNCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGN1c3RvbSBiaW5k
aW5nIGZvciBNZWRpYURldmljZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NTg5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZXMgdGhlIGV4cGxpY2l0IGNvZGUgdG8gcGFyc2UgdGhlIE1lZGlh
U3RyZWFtQ29uc3RyYWludHMgYW5kCisgICAgICAgIE1lZGlhVHJhY2tDb25zdHJhaW50cy4gTmV4
dCBzdGVwIGNvdWxkIGJlIHRvIGNoYW5nZSB0aGUgaW50ZXJuYWwKKyAgICAgICAgY29kZSB0byB1
c2UgdGhlIHN0cnVjdHMgZnJvbSBiaW5kaW5ncyBkaXJlY3RseSBzbyB3ZSBkb24ndCBuZWVkCisg
ICAgICAgIGNvZGUgdG8gY29udmVydCB0byBhbiBpbnRlcm5hbCBmb3JtYXQuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgTWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbCBhbmQgTWVk
aWFUcmFja0NvbnN0cmFpbnRzLmNwcCwKKyAgICAgICAgcmVtb3ZlZCBKU01lZGlhRGV2aWNlc0N1
c3RvbS5jcHAuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZCBNZWRpYVRy
YWNrQ29uc3RyYWludHMuaWRsLgorICAgICAgICBBbHNvIHNvcnRlZCBsaXN0IG9mIElETCBmaWxl
cyBhbmQgZml4ZWQgdXNlIG9mIHRhYnMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFp
bnRzSW1wbCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpnZXRVc2Vy
TWVkaWEpOiBDaGFuZ2VkIHRoaXMgZnVuY3Rpb24gdG8gdGFrZSBhcmd1bWVudHMgdGhhdAorICAg
ICAgICBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBiaW5kaW5ncyBzY3JpcHQsIGFuZCBjYWxsIGNyZWF0
ZU1lZGlhQ29uc3RyYWludHNJbXBsIHRvIGNvbnZlcnQKKyAgICAgICAgaW50byB0aGUgaW50ZXJu
YWwgZGF0YSBzdHJ1Y3R1cmUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMuaDogQWRkZWQgU3RyZWFtQ29uc3RyYWludHMgc3RydWN0IGFuZCBjaGFuZ2VkCisgICAg
ICAgIGdldFVzZXJNZWRpYSB0byB0YWtlIHRoYXQgYXMgc3BlY2lmaWVkIGluIHRoZSBJREwuCisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOiBBZGRlZCBkZWZp
bml0aW9uIG9mIHRoZSBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzCisgICAgICAgIGRpY3Rpb25hcnku
IFJlbW92ZWQgW0N1c3RvbV0gZnJvbSBnZXRVc2VyTWVkaWEuCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtOjpNZWRpYVN0cmVhbSk6IFBhc3MgYSByZWZlcmVuY2UgdG8gYWRkT2JzZXJ2ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogUGFzcyBhIHJmZXJlbmNl
IHRvIHJlbW92ZU9ic2VydmVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmludGVy
bmFsQWRkVHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjppbnRl
cm5hbFJlbW92ZVRyYWNrKTogRGl0dG8uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFDb25z
dHJhaW50c0ltcGwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6
OmFwcGx5Q29uc3RyYWludHMpOiBDaGFuZ2VkIHRvIHRha2UgYW4gb3B0aW9uYWwKKyAgICAgICAg
TWVkaWFUcmFja0NvbnN0cmFpbnRzIGFyZ3VtZW50IGFuZCBjYWxsIGNyZWF0ZU1lZGlhQ29uc3Ry
YWludHNJbXBsIHRvIGNvbnZlcnQKKyAgICAgICAgaW50byB0aGUgaW50ZXJuYWwgZGF0YSBzdHJ1
Y3R1cmUuIEFsc28gbWVyZ2VkIHRoZSBtdWx0aXBsZSBvdmVybG9hZHMgb2YgdGhpcworICAgICAg
ICBhbGwgaW50byBhIHNpbmdsZSBmdW5jdGlvbiwgdXNlZCBhdXRvIHRvIG1ha2UgdGhlIGNvZGUg
ZWFzaWVyIHRvIHJlYWQsIGFuZAorICAgICAgICBtb3ZlZCB0aGUgY29kZSB0aGF0IHN0b3JlcyBu
ZXcgY29uc3RyYWlucyBpbnRvIHRoZSBzdWNjZXNzIGhhbmRsaW5nLCBzaW5jZSB0aGUKKyAgICAg
ICAgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQncyB0aGUgb25seSBjYXNlIHdoZXJlIHdlIHNob3Vs
ZCBzdG9yZSBpdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OmFkZE9ic2Vy
dmVyKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKTogRGl0dG8uCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6IFJlbW92ZWQgbWFueSB1
bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgQ2hhbmdlZCBnZXRDb25zdHJhaW50cyB0byByZXR1
cm4gY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRzJiwgYXBwbHlDb25zdHJhaW50cworICAgICAg
ICB0byB0YWtlIGFuIG9wdGlvbmFsIE1lZGlhVHJhY2tDb25zdHJhaW50cywgYWRkL3JlbW92ZU9i
c2VydmVyIHRvIHRha2UgYSByZWZlcmVuY2UKKyAgICAgICAgcmF0aGVyIHRoYW4gYSBwb2ludGVy
LCBhbmQgY2hhbmdlZCBtX2NvbnN0cmFpbnRzIHRvIGJlIGEgTWVkaWFUcmFja0NvbnN0cmFpbnRz
CisgICAgICAgIGluc3RlYWQgb2YgYSBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4uCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbDogUmVtb3ZlZCBbQ3Vz
dG9tXSBmcm9tIGdldENvbnN0cmFpbnRzCisgICAgICAgIGFuZCBhcHBseUNvbnN0cmFpbnRzLgor
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldCk6IE92ZXJsb2FkZWQgZnVuY3Rpb24gdG8g
c2V0IGNvbnN0cmlhaW50cyBpbiBhCisgICAgICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFw
LgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvSW50ZXJuYWxGb3JtKTogSGVscGVyIGZ1bmN0
aW9uIHRoYXQgdGFrZXMgYQorICAgICAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldCBhbmQgdHVy
bnMgaXQgaW50byBhIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwLgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydEFkdmFuY2VkVG9JbnRlcm5hbEZvcm0pOiBNb3JlIG9mIHRoZSBzYW1lLCBidXQg
Zm9yIHZlY3RvcnMuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1w
bCk6IFRvcCBsZXZlbCBmdW5jdGlvbi4gQ2FsbHMgdGhlIG90aGVyCisgICAgICAgIGZ1bmN0aW9u
cyBhbmQgdGhlbiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmg6IEFkZGVkLiBDb250YWlucyBh
bGwgdGhlIHN0cnVjdHVyZXMKKyAgICAgICAgYW5kIHR5cGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBk
aWN0aW9uYXJpZXMgZGVmaW5lZCBpbiB0aGUgSURMIGZpbGUsIGFuZCBhbHNvIHRoZQorICAgICAg
ICBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbCBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5pZGw6IEFkZGVk
LiBDb250YWlucyB0aGUKKyAgICAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRzIGFuZCBhbGwgdGhl
IG90aGVyIGRpY3Rpb25hcmllcyBhbmQgdHlwZWRlZnMgdGhhdCBhcmUgbmVlZGVkCisgICAgICAg
IHRvIGRlZmluZSB0aGF0IGRpY3Rpb25hcnkuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3Q6OnN0YXJ0KTogQ2hhbmdlZCB0byBub3QgZGVwZW5kIG9uIE1lZGlhRGV2aWNlczo6UHJvbWlz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OlVzZXJNZWRpYVJlcXVlc3Qp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2VjdXJlKTogUmVhcnJhbmdlZCB0byBiZSBl
YXNpZXIgdG8gdW5kZXJzdGFuZC4KKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6
OnN0YXJ0KTogUmVtb3ZlZCBhIGxvY2FsIHZhcmlhYmxlIGZvciBzaW1wbGljaXR5LgorICAgICAg
ICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6ZG9jdW1lbnQpOiBSZW1vdmVkIGEgcmVkdW5k
YW50IG51bGwgY2hlY2suCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0Lmg6IFJlZHVjZWQgaW5jbHVkZXMsIGNoYW5nZWQgdG8gbm90IGRlcGVuZAorICAgICAg
ICBvbiBNZWRpYURldmljZXM6OlByb21pc2UsIHJlbW92aW5nIHRoZSByZWFzb24gdG8gaW5jbHVk
ZSBNZWRpYURldmljZXMuaC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajogVXBkYXRlZCB0byByZW1vdmUgb2xkIGZpbGVzIGFuZCBhZGQgbmV3IG9uZXMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOiBSZW1vdmVkIEpT
TWVkaWFEZXZpY2VzQ3VzdG9tLmNwcC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVkaWFE
ZXZpY2VzQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lZGlh
RGV2aWNlc0N1c3RvbS5oOiBSZW1vdmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZWRp
YVN0cmVhbVRyYWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVkaWFTdHJlYW1U
cmFjazo6YXBwbHlDb25zdHJhaW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01l
ZGlhU3RyZWFtVHJhY2s6OmdldENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKFByb2Nlc3NEb2N1bWVu
dCk6IFVwZGF0ZWQgdG8gYWxsb3cgbXVsdGlwbGUgc3RhbmRhbG9uZSBkaWN0aW9uYXJpZXMsIGFz
IGxvbmcgYXMKKyAgICAgICAgdGhlIG5hbWUgb2Ygb25lIG9mIHRoZSBkaWN0aW9uYXJpZXMgbWF0
Y2hlcyB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVEaWN0aW9uYXJ5KTogQWRkZWQg
Im90aGVyIGRpY3Rpb25hcmllcyIgYXJndW1lbnQgc28gd2UgY2FuIHN1cHBvcnQKKyAgICAgICAg
ZmlsZXMgd2l0aCBtdWx0aXBsZSBkaWN0aW9uYXJpZXMgaW4gdGhlbS4KKyAgICAgICAgKEdlbmVy
YXRlRGljdGlvbmFyaWVzSGVhZGVyQ29udGVudCk6IENvbXBsZXRlZCBzdXBwb3J0IGZvciBkaWN0
aW9uYXJpZXMgdGhhdAorICAgICAgICBhcmUgbm90IG5hbWVkIGFmdGVyIGEgdG9wIGxldmVsIGlu
dGVyZmFjZSBieSBhZGRlZCBvbmUgbW9yZSBjaGVjayBmb3IgYSBtaXNzaW5nCisgICAgICAgICRp
bnRlcmZhY2UgaW4gYSBwbGFjZSB0aGF0IG90aGVyd2lzZSB3b3VsZCBub3QgaGFuZGxlIGl0IGNv
cnJlY3RseS4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBSZW1vdmVkIGNvZGUg
dGhhdCBzZXQgJGN1cnJlbnRDYWNoZWRBdHRyaWJ1dGUgYW5kCisgICAgICAgICRjYWNoZUluZGV4
LCBzaW5jZSBubyB3YXMgcmVhZGluZyB0aGUgdmFsdWUgb2YgZWl0aGVyIGFueSBsb25nZXIuCisg
ICAgICAgIChHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXIpOiBBZGRlZCAib3RoZXIgZGljdGlvbmFy
aWVzIi4KKyAgICAgICAgKEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uKTogRGl0dG8u
CisgICAgICAgIChXcml0ZURhdGEpOiBSZW1vdmVkIHVubm5lY2Vzc2FyaWx5IGluZGlyZWN0IGNv
ZGUgdGhhdCB3YXMgdXNpbmcgRmlsZU5hbWVQcmVmaXgKKyAgICAgICAgYW5kIGEgbG9jYWwgdmFy
aWFibGUgbmFtZWQgJHByZWZpeCBpbnN0ZWFkIG9mIGp1c3Qgd3JpdGluZyAiSlMiLgorCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbDogQ29ycmVjdGVkIHRo
ZSB1c2Ugb2YgdGhlIGZpbGVwYXJzZQorICAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBQYXRoOjpC
YXNlbmFtZSBtb2R1bGU7IGFmdGVyIHJlYWRpbmcgdGhlIGRvY3VtZW50YXRpb24gZm9yCisgICAg
ICAgIHRoaXMgaXQgaXMgY2xlYXIgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIGZpcnN0IGNhbGwg
YmFzZW5hbWUsIGFuZCBmaWxlcGFyc2UKKyAgICAgICAgc2hvdWxkIGFsc28gYmUgdXNlZCBpbnN0
ZWFkIG9mIGJhc2VuYW1lLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFD
b25zdHJhaW50cy5oOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAoV2ViQ29y
ZTo6U3RyaW5nQ29uc3RyYWludDo6YXBwZW5kRXhhY3QpOiBSZW1vdmVkIGFuIGluY29ycmVjdCB1
c2Ugb2YgY2xlYXIKKyAgICAgICAgaGVyZSB0aGF0IHdvdWxkIG1lc3MgdXAgY2FzZXMgd2hlcmUg
dGhlcmUgaXMgc3VwcG9zZWQgdG8gYmUgbW9yZSB0aGFuIG9uZQorICAgICAgICBleGFjdCB2YWx1
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2
YXRlLmNwcDogUmVtdm9lZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjbG9uZSk6IFJlbW92ZWQgY29kZSB0byBjb3B5IG1fY29u
c3RyYWludHMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y29u
c3RyYWludHMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmg6IFJlbW92ZWQgdGhlIGNvbnN0cmFpbnRzCisgICAgICAgIGZ1
bmN0aW9uIG1lbWJlciBhbmQgdGhlIG1fY29uc3RyYWludHMgZGF0YSBtZW1iZXIuCisKIDIwMTYt
MTItMTQgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyMDk4MzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2NGNiZGE1
ZmQ4Y2UwNDQ1ZTIxYTJiNDIzMmEzZjJiYTQ4Zjc3ZTcwLi4yZTFkYTc4MDMwZWY4ZWJlYWQxY2E5
N2U4MjExYWEzZjc1NTUzZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTIt
MTQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBjdXN0
b20gYmluZGluZyBmb3IgTWVkaWFEZXZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgQWRkZWQgaW5jbHVkZSBvZiBNZWRp
YUNvbnN0cmFpbnRzSW1wbC5oLCBub3cgbmVlZGVkIGJlY2F1c2Ugd2UKKyAgICAgICAgcmVtb3Zl
ZCBzb21lIHVubmVlZGVkIGluY2x1ZGVzIGZyb20gdGhlIFdlYkNvcmUgaGVhZGVycy4KKwogMjAx
Ni0xMi0xNCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgT25s
eSBzZW5kIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFNhdmVUb1BhZ2VDYWNoZSBvbmNlIHdo
ZW4gZW50ZXJpbmcgcGFnZSBjYWNoZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTIwZDE0NmNm
MTU1Y2Q0MWFiODA5NjViNDEwYjJkNmM4NWZhMzU2NC4uNTYyYmIxZmU5ZWIzYjQ2YzU1YzIwYWIy
YWNjMTJmZWQ5NmNhM2QzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxOSw2ICsyMTksNyBA
QCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1FdmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQu
aWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuaWRsCkBAIC05MDUsNiArOTA2
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1SZWdpc3RyeS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3Bw
CisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuY3BwCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcApAQCAtMTE2MCw3ICsxMTYyLDYgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCiAgICAg
YmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuY3BwCi0gICAgYmluZGluZ3MvanMvSlNNZWRpYURldmljZXNDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNNZWRpYUtleVNlc3Npb25DdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNNZWRpYUtleVN5c3RlbUFjY2Vzc0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU01lZGlhU3RyZWFtVHJhY2tDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA3MDZmOGJmOWMyZjdlZGE0ODJkY2IzMzE1NDVkNDM0ODE4NDVlMWU0Li5lN2NkZGFj
MTdhMjE2YjhiMDdjODgzNzNmYjEyYTVmY2ViY2FkNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTE1Miw2ICsxNTIsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFp
bnRzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tT
dXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmlkbCBcCkBAIC0yNTQsNiArMjU1LDkgQEAg
SlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL0NyeXB0b0tleVBhaXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9DcnlwdG9LZXlVc2FnZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvY3J5cHRvL0pzb25XZWJLZXkuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9S
c2FPdGhlclByaW1lc0luZm8uaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9TdWJ0bGVDcnlw
dG8uaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJzL0Flc0NiY1BhcmFtcy5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3J5cHRvL3BhcmFtZXRlcnMvQWVzS2V5R2VuUGFyYW1zLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9jcnlwdG8vcGFyYW1ldGVycy9IbWFjS2V5UGFyYW1zLmlkbCBcCkBAIC0yNjEs
MTYgKzI2NSwxMyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jcnlwdG8v
cGFyYW1ldGVycy9Sc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Ny
eXB0by9wYXJhbWV0ZXJzL1JzYUtleUdlblBhcmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5
cHRvL3BhcmFtZXRlcnMvUnNhT2FlcFBhcmFtcy5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRv
L1JzYU90aGVyUHJpbWVzSW5mby5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRvL1N1YnRsZUNy
eXB0by5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NT
SW1wb3J0UnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0tleWZyYW1lUnVsZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0tleWZyYW1lc1J1bGUuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsIFwKLQkkKFdlYkNvcmUpL2Nzcy9DU1NOYW1lc3BhY2VS
dWxlLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvQ1NTTmFtZXNwYWNlUnVsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0NTU1BhZ2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCkBA
IC0zMDcsOCArMzA4LDggQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9t
L0NoaWxkTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NsaWVudFJlY3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9t
L0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DbGlwYm9hcmRFdmVudC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvZG9tL0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Db21w
b3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ3VzdG9tRXZlbnQuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRl
eCAyZWUwODRiYjA3OTJjMDE5ZTllODBiNzUxN2Y2YzA2ZWQyNmU2MTRjLi40MzQ2NWQ2NDMzZTIx
NTEzNjg3ZWNkOTdkZmZmODdjYTU4MjE4OWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYURldmljZXNSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmgiCiAjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgpAQCAtNTYsMTIgKzU3LDI0IEBAIERvY3Vt
ZW50KiBNZWRpYURldmljZXM6OmRvY3VtZW50KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8
RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4m
JiBhdWRpb0NvbnN0cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25z
dHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CitzdGF0aWMgUmVmPE1lZGlhQ29uc3Ry
YWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChjb25zdCBWYXJpYW50PGJvb2ws
IE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQoreworICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKGNvbnN0cmFpbnRzLAorICAgICAgICBbJl0gKGJvb2wgY29uc3RyYWludHMpIHsK
KyAgICAgICAgICAgIHJldHVybiBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKHsgfSwgeyB9
LCBjb25zdHJhaW50cyk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgTWVkaWFUcmFj
a0NvbnN0cmFpbnRzJiBjb25zdHJhaW50cykgeworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU1l
ZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzKTsKKyAgICAgICAgfQorICAgICk7Cit9CisK
K0V4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0VXNlck1lZGlhKGNvbnN0IFN0cmVh
bUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAg
ICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwotICAgIHJl
dHVybiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgqZG9jdW1lbnQsIFdURk1vdmUoYXVkaW9Db25z
dHJhaW50cyksIFdURk1vdmUodmlkZW9Db25zdHJhaW50cyksIFdURk1vdmUocHJvbWlzZSkpOwor
ICAgIHJldHVybiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgqZG9jdW1lbnQsIGNyZWF0ZU1lZGlh
Q29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzLmF1ZGlvKSwgY3JlYXRlTWVkaWFDb25zdHJhaW50
c0ltcGwoY29uc3RyYWludHMudmlkZW8pLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBN
ZWRpYURldmljZXM6OmVudW1lcmF0ZURldmljZXMoRW51bWVyYXRlRGV2aWNlc1Byb21pc2UmJiBw
cm9taXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmgKaW5kZXggZmI0YjczNDhjZTk0ZDMxOWM3NTY4MTE0MGIyODg5NTJjNTE3
OWIzOS4uZjU2YjY4MTc4MGE4OWVmMTk5M2FmYmU3MTczYWUwZTY3YmE5ZjI5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDEyICsz
NSwxMiBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJKU0RPTVByb21p
c2UuaCIKLSNpbmNsdWRlICJNZWRpYURldmljZUluZm8uaCIKKyNpbmNsdWRlICJNZWRpYVRyYWNr
Q29uc3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsK
LWNsYXNzIE1lZGlhQ29uc3RyYWludHNJbXBsOworY2xhc3MgTWVkaWFEZXZpY2VJbmZvOwogY2xh
c3MgTWVkaWFTdHJlYW07CiBjbGFzcyBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHM7CiAK
QEAgLTUyLDcgKzUzLDExIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcm9taXNlID0gRE9NUHJvbWlz
ZTxJRExJbnRlcmZhY2U8TWVkaWFTdHJlYW0+PjsKICAgICB1c2luZyBFbnVtZXJhdGVEZXZpY2Vz
UHJvbWlzZSA9IERPTVByb21pc2U8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPE1lZGlhRGV2aWNl
SW5mbz4+PjsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdldFVzZXJNZWRpYShSZWY8TWVkaWFD
b25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJ
bXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIFByb21pc2UmJikgY29uc3Q7CisgICAgc3RydWN0IFN0
cmVhbUNvbnN0cmFpbnRzIHsKKyAgICAgICAgVmFyaWFudDxib29sLCBNZWRpYVRyYWNrQ29uc3Ry
YWludHM+IHZpZGVvOworICAgICAgICBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50
cz4gYXVkaW87CisgICAgfTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBnZXRVc2VyTWVkaWEoY29u
c3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpIGNvbnN0OwogICAgIHZvaWQgZW51bWVy
YXRlRGV2aWNlcyhFbnVtZXJhdGVEZXZpY2VzUHJvbWlzZSYmKSBjb25zdDsKICAgICBSZWZQdHI8
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzPiBnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5pZGwKaW5kZXggZjdlMGE1NzVlOWI2MDU3OTg2YTdjNzEwNjNmNWFiYjI1MDAzOGYxNi4u
M2FlNjZmMGVhN2U5ZThiMmYyMDVjZThlYmM3N2I2NTFlYTE4NjQyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbApAQCAtMjks
MTEgKzI5LDE2IEBACiAgKi8KIAogWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAg
ICBOb0ludGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIF0gaW50
ZXJmYWNlIE1lZGlhRGV2aWNlcyB7CiAgICAgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRz
IGdldFN1cHBvcnRlZENvbnN0cmFpbnRzKCk7CiAKLSAgICBbQ3VzdG9tLCBNYXlUaHJvd0V4Y2Vw
dGlvbiwgUHJpdmF0ZUlkZW50aWZpZXIsIFB1YmxpY0lkZW50aWZpZXJdIFByb21pc2U8TWVkaWFT
dHJlYW0+IGdldFVzZXJNZWRpYShvcHRpb25hbCBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb24sIFByaXZhdGVJZGVudGlmaWVyLCBQdWJs
aWNJZGVudGlmaWVyXSBQcm9taXNlPE1lZGlhU3RyZWFtPiBnZXRVc2VyTWVkaWEob3B0aW9uYWwg
TWVkaWFTdHJlYW1Db25zdHJhaW50cyBjb25zdHJhaW50cyk7CiAgICAgUHJvbWlzZTxzZXF1ZW5j
ZTxNZWRpYURldmljZUluZm8+PiBlbnVtZXJhdGVEZXZpY2VzKCk7CiB9OworCitkaWN0aW9uYXJ5
IE1lZGlhU3RyZWFtQ29uc3RyYWludHMgeworICAgIChib29sZWFuIG9yIE1lZGlhVHJhY2tDb25z
dHJhaW50cykgdmlkZW8gPSBmYWxzZTsKKyAgICAoYm9vbGVhbiBvciBNZWRpYVRyYWNrQ29uc3Ry
YWludHMpIGF1ZGlvID0gZmFsc2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCAxZDUyYTQ4YTUzZGFlMjg4Yzg0NzE5
ZmRjMWUxZWViZDQ3ZWU2ZTU3Li5kY2FjZjhmODJmMGY1NzAzOTljZTYzNWUxM2U2NDk2ZTIxZDRi
NmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcApAQCAtNzIsNyArNzIsNyBAQCBNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFTdHJlYW1UcmFjawogICAg
IHRyYWNrUHJpdmF0ZXMucmVzZXJ2ZUNhcGFjaXR5KHRyYWNrcy5zaXplKCkpOwogCiAgICAgZm9y
IChhdXRvJiB0cmFjayA6IHRyYWNrcykgewotICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIodGhp
cyk7CisgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIG1fdHJhY2tT
ZXQuYWRkKHRyYWNrLT5pZCgpLCB0cmFjayk7CiAgICAgICAgIHRyYWNrUHJpdmF0ZXMuYXBwZW5k
KCZ0cmFjay0+cHJpdmF0ZVRyYWNrKCkpOwogICAgIH0KQEAgLTk2LDcgKzk2LDcgQEAgTWVkaWFT
dHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0
cjxNZWRpYVN0cmVhbVByaXYKIAogICAgIGZvciAoYXV0byYgdHJhY2tQcml2YXRlIDogbV9wcml2
YXRlLT50cmFja3MoKSkgewogICAgICAgICBhdXRvIHRyYWNrID0gTWVkaWFTdHJlYW1UcmFjazo6
Y3JlYXRlKGNvbnRleHQsICp0cmFja1ByaXZhdGUpOwotICAgICAgICB0cmFjay0+YWRkT2JzZXJ2
ZXIodGhpcyk7CisgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIG1f
dHJhY2tTZXQuYWRkKHRyYWNrLT5pZCgpLCBXVEZNb3ZlKHRyYWNrKSk7CiAgICAgfQogICAgIGRv
Y3VtZW50KCktPmFkZEF1ZGlvUHJvZHVjZXIodGhpcyk7CkBAIC0xMTAsNyArMTEwLDcgQEAgTWVk
aWFTdHJlYW06On5NZWRpYVN0cmVhbSgpCiAgICAgTWVkaWFTdHJlYW1SZWdpc3RyeTo6c2hhcmVk
KCkudW5yZWdpc3RlclN0cmVhbSgqdGhpcyk7CiAgICAgbV9wcml2YXRlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7CiAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCi0g
ICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgdHJhY2stPnJlbW92
ZU9ic2VydmVyKCp0aGlzKTsKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9j
dW1lbnQoKSkgewogICAgICAgICBkb2N1bWVudC0+cmVtb3ZlQXVkaW9Qcm9kdWNlcih0aGlzKTsK
ICAgICAgICAgaWYgKG1faXNXYWl0aW5nVW50aWxNZWRpYUNhblN0YXJ0KQpAQCAtMjE1LDcgKzIx
NSw3IEBAIGJvb2wgTWVkaWFTdHJlYW06OmludGVybmFsQWRkVHJhY2soUmVmPE1lZGlhU3RyZWFt
VHJhY2s+JiYgdHJhY2tUb0FkZCwgU3RyZWFtTW9kCiAKICAgICBBU1NFUlQocmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZSk7CiAgICAgYXV0byYgdHJhY2sgPSAqcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsK
LSAgICB0cmFjay5hZGRPYnNlcnZlcih0aGlzKTsKKyAgICB0cmFjay5hZGRPYnNlcnZlcigqdGhp
cyk7CiAKICAgICBpZiAoc3RyZWFtTW9kaWZpZXIgPT0gU3RyZWFtTW9kaWZpZXI6OkRvbUFQSSkK
ICAgICAgICAgbV9wcml2YXRlLT5hZGRUcmFjaygmdHJhY2sucHJpdmF0ZVRyYWNrKCksIE1lZGlh
U3RyZWFtUHJpdmF0ZTo6Tm90aWZ5Q2xpZW50T3B0aW9uOjpEb250Tm90aWZ5KTsKQEAgLTIzMSw3
ICsyMzEsNyBAQCBib29sIE1lZGlhU3RyZWFtOjppbnRlcm5hbFJlbW92ZVRyYWNrKGNvbnN0IFN0
cmluZyYgdHJhY2tJZCwgU3RyZWFtTW9kaWZpZXIgc3RyZQogICAgIGlmICghdHJhY2spCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKKyAg
ICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogCiAgICAgaWYgKHN0cmVhbU1vZGlmaWVy
ID09IFN0cmVhbU1vZGlmaWVyOjpEb21BUEkpCiAgICAgICAgIG1fcHJpdmF0ZS0+cmVtb3ZlVHJh
Y2sodHJhY2stPnByaXZhdGVUcmFjaygpLCBNZWRpYVN0cmVhbVByaXZhdGU6Ok5vdGlmeUNsaWVu
dE9wdGlvbjo6RG9udE5vdGlmeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBiMGFlMTBmZTc4MTk2MDU1
NDYwNjdjNzUxZTZiMGU5OGYyZjFiY2M0Li5mMWJlMDY0ZmNjNjFjM2FkZmU0NjIzZjM1MzU2MmEz
YThmNWQwMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTE1OCw0OSArMTU4LDQwIEBAIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBh
YmlsaXRpZXMoKSBjb25zCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y2FwYWJpbGl0aWVzKCk7CiB9
CiAKLXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6YXBwbHlDb25zdHJhaW50cyhSZWY8TWVkaWFDb25z
dHJhaW50cz4mJiBjb25zdHJhaW50cywgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21pc2UpCitzdGF0
aWMgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzSW1wbChj
b25zdCBzdGQ6Om9wdGlvbmFsPE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQog
ewotICAgIGlmICghY29uc3RyYWludHMtPmlzVmFsaWQoKSkgewotICAgICAgICBwcm9taXNlLnJl
amVjdChUeXBlRXJyb3IpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9jb25zdHJh
aW50cyA9IFdURk1vdmUoY29uc3RyYWludHMpOwotICAgIG1fcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7Ci0KLSAgICBhcHBseUNvbnN0cmFpbnRzKCptX2NvbnN0cmFpbnRzKTsKKyAgICBpZiAo
IWNvbnN0cmFpbnRzKQorICAgICAgICByZXR1cm4gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0
ZSh7IH0sIHsgfSwgdHJ1ZSk7CisgICAgcmV0dXJuIGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBs
KGNvbnN0cmFpbnRzLnZhbHVlKCkpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmFwcGx5
Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCit2b2lkIE1l
ZGlhU3RyZWFtVHJhY2s6OmFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRp
YVRyYWNrQ29uc3RyYWludHM+JiBjb25zdHJhaW50cywgRE9NUHJvbWlzZTx2b2lkPiYmIHByb21p
c2UpCiB7CisgICAgbV9wcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKKwogICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpPiBmYWlsdXJlSGFuZGxlciA9IFt3ZWFrVGhpc10oY29uc3Qg
U3RyaW5nJiBmYWlsZWRDb25zdHJhaW50LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsKKyAgICBh
dXRvIGZhaWx1cmVIYW5kbGVyID0gW3dlYWtUaGlzXSAoY29uc3QgU3RyaW5nJiBmYWlsZWRDb25z
dHJhaW50LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhd2Vha1RoaXMtPm1fcHJvbWlzZSkKICAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB3
ZWFrVGhpcy0+bV9wcm9taXNlLT5yZWplY3RUeXBlPElETEludGVyZmFjZTxPdmVyY29uc3RyYWlu
ZWRFcnJvcj4+KE92ZXJjb25zdHJhaW5lZEVycm9yOjpjcmVhdGUoZmFpbGVkQ29uc3RyYWludCwg
bWVzc2FnZSkuZ2V0KCkpOwogICAgIH07Ci0KLSAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gc3Vj
Y2Vzc0hhbmRsZXIgPSBbd2Vha1RoaXNdKCkgeworICAgIGF1dG8gc3VjY2Vzc0hhbmRsZXIgPSBb
d2Vha1RoaXMsIGNvbnN0cmFpbnRzXSAoKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdl
YWtUaGlzLT5tX3Byb21pc2UpCiAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgd2Vha1Ro
aXMtPm1fcHJvbWlzZS0+cmVzb2x2ZSgpOworICAgICAgICB3ZWFrVGhpcy0+bV9jb25zdHJhaW50
cyA9IGNvbnN0cmFpbnRzLnZhbHVlX29yKE1lZGlhVHJhY2tDb25zdHJhaW50cyB7IH0pOwogICAg
IH07Ci0KLSAgICBtX3ByaXZhdGUtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIHN1Y2Nl
c3NIYW5kbGVyLCBmYWlsdXJlSGFuZGxlcik7CisgICAgbV9wcml2YXRlLT5hcHBseUNvbnN0cmFp
bnRzKGNyZWF0ZU1lZGlhQ29uc3RyYWludHNJbXBsKGNvbnN0cmFpbnRzKSwgc3VjY2Vzc0hhbmRs
ZXIsIGZhaWx1cmVIYW5kbGVyKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjphZGRPYnNl
cnZlcihNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciogb2JzZXJ2ZXIpCit2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2s6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBtX29ic2Vy
dmVycy5hcHBlbmQob2JzZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIp
OwogfQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnJlbW92ZU9ic2VydmVyKE1lZGlhU3RyZWFt
VHJhY2s6Ok9ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6cmVtb3Zl
T2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIHNpemVfdCBwb3MgPSBtX29ic2Vy
dmVycy5maW5kKG9ic2VydmVyKTsKLSAgICBpZiAocG9zICE9IG5vdEZvdW5kKQotICAgICAgICBt
X29ic2VydmVycy5yZW1vdmUocG9zKTsKKyAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdCgmb2Jz
ZXJ2ZXIpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrRW5kZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAppbmRleCBiNTViNTI0ZDM4ZGYyZDk5OTliOGJlMTgy
MTM0MGE1YjVmZjFlNWEzLi4wNTJhNzM3Y2IwYWUyYThjYjAyN2M0ZGM2ZmZmOTJjMWVlMTQ5NzY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaApAQCAtMzMsMTMgKzMzLDcgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotI2luY2x1ZGUgIlNj
cmlwdFdyYXBwYWJsZS5oIgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlICJNZWRpYVRy
YWNrQ29uc3RyYWludHMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0MSw4
IEBAIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwog
Y2xhc3MgTWVkaWFTb3VyY2VTZXR0aW5nczsKIAorc3RydWN0IE1lZGlhVHJhY2tDb25zdHJhaW50
czsKKwogY2xhc3MgTWVkaWFTdHJlYW1UcmFjayBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtVHJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2
ZXIgewogcHVibGljOgogICAgIGNsYXNzIE9ic2VydmVyIHsKQEAgLTgwLDIzICs3NiwxOSBAQCBw
dWJsaWM6CiAgICAgUmVmUHRyPE1lZGlhU291cmNlU2V0dGluZ3M+IGdldFNldHRpbmdzKCkgY29u
c3Q7CiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGdldENhcGFi
aWxpdGllcygpIGNvbnN0OwogCi0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKFJlZjxNZWRpYUNv
bnN0cmFpbnRzPiYmLCBET01Qcm9taXNlPHZvaWQ+JiYpOwotICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJik7CisgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0
cmFpbnRzJiBnZXRDb25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0K
KyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNr
Q29uc3RyYWludHM+JiwgRE9NUHJvbWlzZTx2b2lkPiYmKTsKIAogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KICAgICBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYgcHJpdmF0ZVRyYWNrKCkgeyByZXR1cm4gbV9wcml2YXRlLmdl
dCgpOyB9CiAKICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCk7
CiAKLSAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyKik7Ci0gICAgdm9pZCByZW1vdmVPYnNl
cnZlcihPYnNlcnZlciopOworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2
b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7CiAKLSAgICAvLyBFdmVudFRhcmdldAotICAg
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gTWVkaWFTdHJlYW1UcmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQotICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsg
fQotCi0gICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrPjo6cmVmOwotICAgIHVz
aW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFjaz46OmRlcmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogcHJpdmF0ZToKICAg
ICBNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+JiYpOwpAQCAtMTEyLDYgKzEwNCw4IEBAIHByaXZhdGU6CiAgICAgLy8g
RXZlbnRUYXJnZXQKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQog
ICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorICAgIEV2ZW50
VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gTWVkaWFTdHJlYW1UcmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAg
ICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCiAgICAgdm9pZCB0cmFja0Vu
ZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CkBAIC0xMjQsNyArMTE4LDcg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWY8
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAotICAgIFJlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOworICAgIE1lZGlhVHJhY2tDb25zdHJhaW50cyBtX2Nv
bnN0cmFpbnRzOwogICAgIHN0ZDo6b3B0aW9uYWw8RE9NUHJvbWlzZTx2b2lkPj4gbV9wcm9taXNl
OwogICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtVHJhY2s+IG1fd2Vha1B0ckZhY3Rvcnk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaWRsCmluZGV4IDQ1MTY5MmEwZTQ2NTQ2ODZlYTRkZTI1NTI0NzA1MTBiODUw
OWY1YWQuLjEzODhmNTI0NDNjZDE5NTI2ZDkxZThiYjUwMWZhNDI0MWFhMzFmM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmlkbApAQCAtNDcsMTEgKzQ3LDEwIEBAIGVudW0gTWVkaWFTdHJlYW1UcmFja1N0YXRlIHsg
Im5ldyIsICJsaXZlIiwgImVuZGVkIiB9OwogICAgIE1lZGlhU3RyZWFtVHJhY2sgY2xvbmUoKTsK
ICAgICBbSW1wbGVtZW50ZWRBcz1zdG9wUHJvZHVjaW5nRGF0YV0gdm9pZCBzdG9wKCk7CiAKLSAg
ICBbQ3VzdG9tXSBNZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWludHMoKTsKKyAgICBN
ZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWludHMoKTsKICAgICBbQ3VzdG9tXSBNZWRp
YVNvdXJjZVNldHRpbmdzIGdldFNldHRpbmdzKCk7CiAgICAgW0N1c3RvbV0gTWVkaWFUcmFja0Nh
cGFiaWxpdGllcyBnZXRDYXBhYmlsaXRpZXMoKTsKLSAgICBbQ3VzdG9tXSBQcm9taXNlPHZvaWQ+
IGFwcGx5Q29uc3RyYWludHMob3B0aW9uYWwgTWVkaWFUcmFja0NvbnN0cmFpbnRzIGNvbnN0cmFp
bnRzKTsKKyAgICBQcm9taXNlPHZvaWQ+IGFwcGx5Q29uc3RyYWludHMob3B0aW9uYWwgTWVkaWFU
cmFja0NvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsKIAogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb25vdmVyY29uc3RyYWluZWQ7CiB9OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzRjNGNmMTIyNjBhZTIyZWE0NmJkMWJhMjYyNzdjZTU5NzNkMTM5MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmNwcApAQCAtMCwwICsxLDIwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIENvbnN0cmFpbnRTZXRUeXBlIHsgTWFu
ZGF0b3J5LCBBZHZhbmNlZCB9OworCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlw
ZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkxvbmcm
IHZhbHVlKQoreworICAgIEludENvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5
cGUpOworICAgIFdURjo6c3dpdGNoT24odmFsdWUsCisgICAgICAgIFsmXSAoaW50IGludGVnZXIp
IHsKKyAgICAgICAgICAgIGlmIChzZXRUeXBlID09IENvbnN0cmFpbnRTZXRUeXBlOjpNYW5kYXRv
cnkpCisgICAgICAgICAgICAgICAgY29uc3RyYWludC5zZXRJZGVhbChpbnRlZ2VyKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KGludGVnZXIp
OworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IENvbnN0cmFpbkxvbmdSYW5nZSYgcmFu
Z2UpIHsKKyAgICAgICAgICAgIGlmIChyYW5nZS5taW4pCisgICAgICAgICAgICAgICAgY29uc3Ry
YWludC5zZXRNaW4ocmFuZ2UubWluLnZhbHVlKCkpOworICAgICAgICAgICAgaWYgKHJhbmdlLm1h
eCkKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldE1heChyYW5nZS5tYXgudmFsdWUoKSk7
CisgICAgICAgICAgICBpZiAocmFuZ2UuZXhhY3QpCisgICAgICAgICAgICAgICAgY29uc3RyYWlu
dC5zZXRFeGFjdChyYW5nZS5leGFjdC52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlmIChyYW5nZS5p
ZGVhbCkKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldElkZWFsKHJhbmdlLmlkZWFsLnZh
bHVlKCkpOworICAgICAgICB9CisgICAgKTsKKyAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29u
c3RyYWludCkpOworfQorCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3Ry
aW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFs
dWUpCit7CisgICAgRG91YmxlQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlw
ZSk7CisgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKKyAgICAgICAgWyZdIChkb3VibGUgbnVtYmVy
KSB7CisgICAgICAgICAgICBpZiAoc2V0VHlwZSA9PSBDb25zdHJhaW50U2V0VHlwZTo6TWFuZGF0
b3J5KQorICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwobnVtYmVyKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KG51bWJlcik7
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgQ29uc3RyYWluRG91YmxlUmFuZ2UmIHJh
bmdlKSB7CisgICAgICAgICAgICBpZiAocmFuZ2UubWluKQorICAgICAgICAgICAgICAgIGNvbnN0
cmFpbnQuc2V0TWluKHJhbmdlLm1pbi52YWx1ZSgpKTsKKyAgICAgICAgICAgIGlmIChyYW5nZS5t
YXgpCisgICAgICAgICAgICAgICAgY29uc3RyYWludC5zZXRNYXgocmFuZ2UubWF4LnZhbHVlKCkp
OworICAgICAgICAgICAgaWYgKHJhbmdlLmV4YWN0KQorICAgICAgICAgICAgICAgIGNvbnN0cmFp
bnQuc2V0RXhhY3QocmFuZ2UuZXhhY3QudmFsdWUoKSk7CisgICAgICAgICAgICBpZiAocmFuZ2Uu
aWRlYWwpCisgICAgICAgICAgICAgICAgY29uc3RyYWludC5zZXRJZGVhbChyYW5nZS5pZGVhbC52
YWx1ZSgpKTsKKyAgICAgICAgfQorICAgICk7CisgICAgbWFwLnNldCh0eXBlLCBXVEZNb3ZlKGNv
bnN0cmFpbnQpKTsKK30KKworc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0
cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Cb29sZWFuJiB2
YWx1ZSkKK3sKKyAgICBCb29sZWFuQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywg
dHlwZSk7CisgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKKyAgICAgICAgWyZdIChib29sIGJvb2xl
YW4pIHsKKyAgICAgICAgICAgIGlmIChzZXRUeXBlID09IENvbnN0cmFpbnRTZXRUeXBlOjpNYW5k
YXRvcnkpCisgICAgICAgICAgICAgICAgY29uc3RyYWludC5zZXRJZGVhbChib29sZWFuKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KGJvb2xl
YW4pOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IENvbnN0cmFpbkJvb2xlYW5QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBpZiAocGFyYW1ldGVycy5leGFjdCkK
KyAgICAgICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KHBhcmFtZXRlcnMuZXhhY3QudmFs
dWUoKSk7CisgICAgICAgICAgICBpZiAocGFyYW1ldGVycy5pZGVhbCkKKyAgICAgICAgICAgICAg
ICBjb25zdHJhaW50LnNldElkZWFsKHBhcmFtZXRlcnMuaWRlYWwudmFsdWUoKSk7CisgICAgICAg
IH0KKyAgICApOworICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7Cit9CisK
K3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJh
aW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3Ry
YWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRE9NU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBT
dHJpbmdDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFzU3RyaW5nLCB0eXBlKTsKKyAgICBXVEY6
OnN3aXRjaE9uKHZhbHVlLAorICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7Cisg
ICAgICAgICAgICBpZiAoc2V0VHlwZSA9PSBDb25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5KQor
ICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuYXBwZW5kSWRlYWwoc3RyaW5nKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb25zdHJhaW50LmFwcGVuZEV4YWN0KHN0cmluZyk7
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPFN0cmluZz4mIHZlY3Rvcikg
eworICAgICAgICAgICAgaWYgKHNldFR5cGUgPT0gQ29uc3RyYWludFNldFR5cGU6Ok1hbmRhdG9y
eSkgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgc3RyaW5nIDogdmVjdG9yKQorICAgICAg
ICAgICAgICAgICAgICBjb25zdHJhaW50LmFwcGVuZElkZWFsKHN0cmluZyk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgc3RyaW5nIDogdmVjdG9yKQor
ICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50LmFwcGVuZEV4YWN0KHN0cmluZyk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgQ29uc3RyYWluRE9NU3Ry
aW5nUGFyYW1ldGVycyYgcGFyYW1ldGVycykgeworICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnMu
ZXhhY3QpIHsKKyAgICAgICAgICAgICAgICBXVEY6OnN3aXRjaE9uKHBhcmFtZXRlcnMuZXhhY3Qu
dmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgWyZdIChjb25zdCBTdHJpbmcmIHN0cmluZykg
eworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludC5hcHBlbmRFeGFjdChzdHJpbmcp
OworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBbJl0gKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo
YXV0byYgc3RyaW5nIDogdmVjdG9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
cmFpbnQuYXBwZW5kRXhhY3Qoc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGFyYW1ldGVycy5p
ZGVhbCkgeworICAgICAgICAgICAgICAgIFdURjo6c3dpdGNoT24ocGFyYW1ldGVycy5pZGVhbC52
YWx1ZSgpLAorICAgICAgICAgICAgICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50LmFwcGVuZElkZWFsKHN0cmluZyk7
CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIFsmXSAoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHZlY3RvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChh
dXRvJiBzdHJpbmcgOiB2ZWN0b3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Ry
YWludC5hcHBlbmRJZGVhbChzdHJpbmcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICk7CisgICAgbWFwLnNl
dCh0eXBlLCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RhdGljIGlubGluZSB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBD
b25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlh
Q29uc3RyYWludFR5cGUgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxUPiYgdmFsdWUpCit7Cisg
ICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIHNldChtYXAsIHNldFR5cGUsIHR5
cGVBc1N0cmluZywgdHlwZSwgdmFsdWUudmFsdWUoKSk7Cit9CisKK3N0YXRpYyBNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcCBjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGUg
c2V0VHlwZSwgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXQmIGNvbnN0cmFpbnRTZXQpCit7
CisgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAgcmVzdWx0OworICAgIHNldChyZXN1bHQs
IHNldFR5cGUsICJ3aWR0aCIsIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCBjb25zdHJhaW50
U2V0LndpZHRoKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiaGVpZ2h0IiwgTWVkaWFDb25z
dHJhaW50VHlwZTo6SGVpZ2h0LCBjb25zdHJhaW50U2V0LmhlaWdodCk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImFzcGVjdFJhdGlvIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0
aW8sIGNvbnN0cmFpbnRTZXQuYXNwZWN0UmF0aW8pOworICAgIHNldChyZXN1bHQsIHNldFR5cGUs
ICJmcmFtZVJhdGUiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUsIGNvbnN0cmFpbnRT
ZXQuZnJhbWVSYXRlKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZmFjaW5nTW9kZSIsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRTZXQuZmFjaW5nTW9kZSk7
CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInZvbHVtZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6
OlZvbHVtZSwgY29uc3RyYWludFNldC52b2x1bWUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUs
ICJzYW1wbGVSYXRlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZSwgY29uc3RyYWlu
dFNldC5zYW1wbGVSYXRlKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlU2l6ZSIs
IE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlU2l6
ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9DYW5jZWxsYXRpb24iLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uLCBjb25zdHJhaW50U2V0LmVjaG9DYW5jZWxs
YXRpb24pOworICAgIC8vIEZJWE1FOiBhZGQgbGF0ZW5jeQorICAgIC8vIEZJWE1FOiBhZGQgY2hh
bm5lbENvdW50CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRldmljZUlkIiwgTWVkaWFDb25z
dHJhaW50VHlwZTo6RGV2aWNlSWQsIGNvbnN0cmFpbnRTZXQuZGV2aWNlSWQpOworICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJncm91cElkIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZCwg
Y29uc3RyYWludFNldC5ncm91cElkKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMg
VmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiBjb252ZXJ0QWR2YW5jZWRUb0ludGVy
bmFsRm9ybShjb25zdCBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXQ+JiB2ZWN0b3IpCit7
CisgICAgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiByZXN1bHQ7CisgICAgcmVz
dWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodmVjdG9yLnNpemUoKSk7CisgICAgZm9yIChhdXRv
JiBzZXQgOiB2ZWN0b3IpCisgICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoY29udmVydFRv
SW50ZXJuYWxGb3JtKENvbnN0cmFpbnRTZXRUeXBlOjpBZHZhbmNlZCwgc2V0KSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cD4gY29udmVydEFkdmFuY2VkVG9JbnRlcm5hbEZvcm0oY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0
b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXQ+PiYgb3B0aW9uYWxWZWN0b3IpCit7CisgICAgaWYg
KCFvcHRpb25hbFZlY3RvcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gY29udmVy
dEFkdmFuY2VkVG9JbnRlcm5hbEZvcm0ob3B0aW9uYWxWZWN0b3IudmFsdWUoKSk7Cit9CisKK1Jl
ZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4gY3JlYXRlTWVkaWFDb25zdHJhaW50c0ltcGwoY29uc3Qg
TWVkaWFUcmFja0NvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICByZXR1cm4gTWVkaWFD
b25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNl
dFR5cGU6Ok1hbmRhdG9yeSwgY29uc3RyYWludHMpLCBjb252ZXJ0QWR2YW5jZWRUb0ludGVybmFs
Rm9ybShjb25zdHJhaW50cy5hZHZhbmNlZCksIHRydWUpOworfQorCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29u
c3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQwODQyOWM5ODRhZWM5OTk5NDg5MTQzZDIzYWE4
ZDk2NGI2OTYxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUNvbnN0cmFpbnRzSW1wbDsKKworc3RydWN0IERv
dWJsZVJhbmdlIHsKKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbWluOworICAgIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiBtYXg7Cit9OworCitzdHJ1Y3QgTG9uZ1JhbmdlIHsKKyAgICBzdGQ6Om9w
dGlvbmFsPGludD4gbWF4OworICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBtaW47Cit9OworCitzdHJ1
Y3QgQ29uc3RyYWluQm9vbGVhblBhcmFtZXRlcnMgeworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
ZXhhY3Q7CisgICAgc3RkOjpvcHRpb25hbDxib29sPiBpZGVhbDsKK307CisKK3N0cnVjdCBDb25z
dHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzIHsKKyAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3Ry
aW5nLCBWZWN0b3I8U3RyaW5nPj4+IGV4YWN0OworICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxT
dHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4gaWRlYWw7Cit9OworCitzdHJ1Y3QgQ29uc3RyYWluRG91
YmxlUmFuZ2UgOiBEb3VibGVSYW5nZSB7CisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGV4YWN0
OworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBpZGVhbDsKK307CisKK3N0cnVjdCBDb25zdHJh
aW5Mb25nUmFuZ2UgOiBMb25nUmFuZ2UgeworICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBleGFjdDsK
KyAgICBzdGQ6Om9wdGlvbmFsPGludD4gaWRlYWw7Cit9OworCit1c2luZyBDb25zdHJhaW5Cb29s
ZWFuID0gVmFyaWFudDxib29sLCBDb25zdHJhaW5Cb29sZWFuUGFyYW1ldGVycz47Cit1c2luZyBD
b25zdHJhaW5ET01TdHJpbmcgPSBWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4sIENvbnN0
cmFpbkRPTVN0cmluZ1BhcmFtZXRlcnM+OwordXNpbmcgQ29uc3RyYWluRG91YmxlID0gVmFyaWFu
dDxkb3VibGUsIENvbnN0cmFpbkRvdWJsZVJhbmdlPjsKK3VzaW5nIENvbnN0cmFpbkxvbmcgPSBW
YXJpYW50PGludCwgQ29uc3RyYWluTG9uZ1JhbmdlPjsKKworc3RydWN0IE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0IHsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFpbkxvbmc+IHdpZHRoOworICAg
IHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluTG9uZz4gaGVpZ2h0OworICAgIHN0ZDo6b3B0aW9uYWw8
Q29uc3RyYWluRG91YmxlPiBhc3BlY3RSYXRpbzsKKyAgICBzdGQ6Om9wdGlvbmFsPENvbnN0cmFp
bkRvdWJsZT4gZnJhbWVSYXRlOworICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRE9NU3RyaW5n
PiBmYWNpbmdNb2RlOworICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRG91YmxlPiB2b2x1bWU7
CisgICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5Mb25nPiBzYW1wbGVSYXRlOworICAgIHN0ZDo6
b3B0aW9uYWw8Q29uc3RyYWluTG9uZz4gc2FtcGxlU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPENv
bnN0cmFpbkJvb2xlYW4+IGVjaG9DYW5jZWxsYXRpb247CisgICAgc3RkOjpvcHRpb25hbDxDb25z
dHJhaW5Eb3VibGU+IGxhdGVuY3k7CisgICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5Mb25nPiBj
aGFubmVsQ291bnQ7CisgICAgc3RkOjpvcHRpb25hbDxDb25zdHJhaW5ET01TdHJpbmc+IGRldmlj
ZUlkOworICAgIHN0ZDo6b3B0aW9uYWw8Q29uc3RyYWluRE9NU3RyaW5nPiBncm91cElkOworfTsK
Kworc3RydWN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyA6IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
IHsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldD4+IGFk
dmFuY2VkOworfTsKKworUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjcmVhdGVNZWRpYUNvbnN0
cmFpbnRzSW1wbChjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludHMmKTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFUcmFja0NvbnN0cmFpbnRzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjdlNjk1MGNkZGIxOGEyNTA0OTg0
YTQzMzlmYjc4NmU0NjU2OTUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsCkBAIC0wLDAgKzEsOTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICBK
U0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBNZWRpYVRyYWNrQ29uc3RyYWludHMg
OiBNZWRpYVRyYWNrQ29uc3RyYWludFNldCB7CisgICAgc2VxdWVuY2U8TWVkaWFUcmFja0NvbnN0
cmFpbnRTZXQ+IGFkdmFuY2VkOworfTsKKworWworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAor
XSBkaWN0aW9uYXJ5IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0IHsKKyAgICBDb25zdHJhaW5Mb25n
IHdpZHRoOworICAgIENvbnN0cmFpbkxvbmcgaGVpZ2h0OworICAgIENvbnN0cmFpbkRvdWJsZSBh
c3BlY3RSYXRpbzsKKyAgICBDb25zdHJhaW5Eb3VibGUgZnJhbWVSYXRlOworICAgIENvbnN0cmFp
bkRPTVN0cmluZyBmYWNpbmdNb2RlOworICAgIENvbnN0cmFpbkRvdWJsZSB2b2x1bWU7CisgICAg
Q29uc3RyYWluTG9uZyBzYW1wbGVSYXRlOworICAgIENvbnN0cmFpbkxvbmcgc2FtcGxlU2l6ZTsK
KyAgICBDb25zdHJhaW5Cb29sZWFuIGVjaG9DYW5jZWxsYXRpb247CisgICAgQ29uc3RyYWluRG91
YmxlIGxhdGVuY3k7CisgICAgQ29uc3RyYWluTG9uZyBjaGFubmVsQ291bnQ7CisgICAgQ29uc3Ry
YWluRE9NU3RyaW5nIGRldmljZUlkOworICAgIENvbnN0cmFpbkRPTVN0cmluZyBncm91cElkOwor
fTsKKwordHlwZWRlZiAoZG91YmxlIG9yIENvbnN0cmFpbkRvdWJsZVJhbmdlKSBDb25zdHJhaW5E
b3VibGU7Cit0eXBlZGVmIChsb25nIG9yIENvbnN0cmFpbkxvbmdSYW5nZSkgQ29uc3RyYWluTG9u
ZzsKK3R5cGVkZWYgKGJvb2xlYW4gb3IgQ29uc3RyYWluQm9vbGVhblBhcmFtZXRlcnMpIENvbnN0
cmFpbkJvb2xlYW47Cit0eXBlZGVmIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPiBv
ciBDb25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzKSBDb25zdHJhaW5ET01TdHJpbmc7CisKK1sK
KyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBDb25zdHJhaW5Cb29sZWFu
UGFyYW1ldGVycyB7CisgICAgYm9vbGVhbiBleGFjdDsKKyAgICBib29sZWFuIGlkZWFsOworfTsK
KworWworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IENvbnN0cmFpbkRP
TVN0cmluZ1BhcmFtZXRlcnMgeworICAgIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5n
PikgZXhhY3Q7CisgICAgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KSBpZGVhbDsK
K307CisKK1sKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBDb25zdHJh
aW5Eb3VibGVSYW5nZSA6IERvdWJsZVJhbmdlIHsKKyAgICBkb3VibGUgZXhhY3Q7CisgICAgZG91
YmxlIGlkZWFsOworfTsKKworWworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9u
YXJ5IENvbnN0cmFpbkxvbmdSYW5nZSA6IExvbmdSYW5nZSB7CisgICAgbG9uZyBleGFjdDsKKyAg
ICBsb25nIGlkZWFsOworfTsKKworZGljdGlvbmFyeSBEb3VibGVSYW5nZSB7CisgICAgZG91Ymxl
IG1heDsKKyAgICBkb3VibGUgbWluOworfTsKKworZGljdGlvbmFyeSBMb25nUmFuZ2UgeworICAg
IGxvbmcgbWF4OworICAgIGxvbmcgbWluOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGM0NTg0Y2U5
NzFmNjVlNWNkZWQwMTQzMDQxZTgxZjhjZDI4NmMxYzEuLjJjYTk1MDc3NTJjZDZiYWY5YmNjOWYw
NTk5OWIxNzU3NWVjZTMxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMzYsMjQgKzM2LDIwIEBACiAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJKU092
ZXJjb25zdHJhaW5lZEVycm9yLmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCi0jaW5jbHVkZSAi
TWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRl
ICJPdmVyY29uc3RyYWluZWRFcnJvci5oIgorI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBs
LmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgotI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJVc2VyTWVk
aWFDb250cm9sbGVyLmgiCi0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1FeGNlcHRpb25Pcjx2b2lkPiBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydChE
b2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0NvbnN0
cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywgTWVk
aWFEZXZpY2VzOjpQcm9taXNlJiYgcHJvbWlzZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IFVzZXJNZWRp
YVJlcXVlc3Q6OnN0YXJ0KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhQ29uc3RyYWludHNJ
bXBsPiYmIGF1ZGlvQ29uc3RyYWludHMsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiB2aWRl
b0NvbnN0cmFpbnRzLCBET01Qcm9taXNlPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+JiYgcHJv
bWlzZSkKIHsKICAgICBhdXRvKiB1c2VyTWVkaWEgPSBVc2VyTWVkaWFDb250cm9sbGVyOjpmcm9t
KGRvY3VtZW50LnBhZ2UoKSk7CiAgICAgaWYgKCF1c2VyTWVkaWEpCkBAIC02OCw3ICs2NCw3IEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IFVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KERvY3VtZW50JiBkb2N1
bWVudCwgUmVmPE1lZGlhQ29uc3RyYWluCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotVXNlck1lZGlh
UmVxdWVzdDo6VXNlck1lZGlhUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIFVzZXJNZWRpYUNv
bnRyb2xsZXImIGNvbnRyb2xsZXIsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1wbD4mJiBhdWRpb0Nv
bnN0cmFpbnRzLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgdmlkZW9Db25zdHJhaW50cywg
TWVkaWFEZXZpY2VzOjpQcm9taXNlJiYgcHJvbWlzZSkKK1VzZXJNZWRpYVJlcXVlc3Q6OlVzZXJN
ZWRpYVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBVc2VyTWVkaWFDb250cm9sbGVyJiBjb250
cm9sbGVyLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50cywgUmVm
PE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIERPTVByb21pc2U8SURM
SW50ZXJmYWNlPE1lZGlhU3RyZWFtPj4mJiBwcm9taXNlKQogICAgIDogQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQogICAgICwgbV9hdWRpb0NvbnN0cmFpbnRzKFdURk1vdmUo
YXVkaW9Db25zdHJhaW50cykpCiAgICAgLCBtX3ZpZGVvQ29uc3RyYWludHMoV1RGTW92ZSh2aWRl
b0NvbnN0cmFpbnRzKSkKQEAgLTg1LDcgKzgxLDYgQEAgU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRp
YVJlcXVlc3Q6OnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKCkgY29uc3QKIHsKICAgICBpZiAoIW1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICBy
ZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwogfQogCkBA
IC05MywxOSArODgsMTUgQEAgU2VjdXJpdHlPcmlnaW4qIFVzZXJNZWRpYVJlcXVlc3Q6OnRvcExl
dmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdAogewogICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpOwogfQogCiBzdGF0aWMgYm9vbCBpc1NlY3VyZShE
b2N1bWVudExvYWRlciYgZG9jdW1lbnRMb2FkZXIpCiB7Ci0gICAgaWYgKCFkb2N1bWVudExvYWRl
ci5yZXNwb25zZSgpLnVybCgpLnByb3RvY29sSXMoImh0dHBzIikpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGlmICghZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUlu
Zm8oKSB8fCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpLT5jb250
YWluc05vblJvb3RTSEExU2lnbmVkQ2VydGlmaWNhdGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgYXV0byYgcmVzcG9uc2UgPSBkb2N1bWVudExvYWRl
ci5yZXNwb25zZSgpOworICAgIHJldHVybiByZXNwb25zZS51cmwoKS5wcm90b2NvbElzKCJodHRw
cyIpCisgICAgICAgICYmIHJlc3BvbnNlLmNlcnRpZmljYXRlSW5mbygpCisgICAgICAgICYmICFy
ZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKS0+Y29udGFpbnNOb25Sb290U0hBMVNpZ25lZENlcnRp
ZmljYXRlKCk7CiB9CiAKIHN0YXRpYyBib29sIGNhbkNhbGxHZXRVc2VyTWVkaWEoRG9jdW1lbnQm
IGRvY3VtZW50LCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKQEAgLTE0OSwxNCArMTQwLDEzIEBAIHZv
aWQgVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKQogICAgIH0KIAogICAgIERvY3VtZW50JiBkb2N1
bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAg
ICBET01XaW5kb3cmIHdpbmRvdyA9ICpkb2N1bWVudC5kb21XaW5kb3coKTsKIAogICAgIC8vIDEw
LjIgLSA2LjMgT3B0aW9uYWxseSwgZS5nLiwgYmFzZWQgb24gYSBwcmV2aW91c2x5LWVzdGFibGlz
aGVkIHVzZXIgcHJlZmVyZW5jZSwgZm9yIHNlY3VyaXR5IHJlYXNvbnMsCiAgICAgLy8gb3IgZHVl
IHRvIHBsYXRmb3JtIGxpbWl0YXRpb25zLCBqdW1wIHRvIHRoZSBzdGVwIGxhYmVsZWQgUGVybWlz
c2lvbiBGYWlsdXJlIGJlbG93LgogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgaWYgKCFj
YW5DYWxsR2V0VXNlck1lZGlhKGRvY3VtZW50LCBlcnJvck1lc3NhZ2UpKSB7CiAgICAgICAgIGRl
bnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQsIGVtcHR5U3RyaW5n
KCkpOwotICAgICAgICB3aW5kb3cucHJpbnRFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKKyAg
ICAgICAgZG9jdW1lbnQuZG9tV2luZG93KCktPnByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2Fn
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIzMCw3ICsyMjAsNiBAQCB2b2lkIFVz
ZXJNZWRpYVJlcXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQogewogICAgIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiAgICAgUmVmPFVzZXJNZWRpYVJlcXVl
c3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCiAgICAgaWYgKG1fY29udHJvbGxlcikgewogICAg
ICAgICBtX2NvbnRyb2xsZXItPmNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3QoKnRoaXMpOwog
ICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOwpAQCAtMjM5LDkgKzIyOCw2IEBAIHZvaWQg
VXNlck1lZGlhUmVxdWVzdDo6Y29udGV4dERlc3Ryb3llZCgpCiAKIERvY3VtZW50KiBVc2VyTWVk
aWFSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGRvd25jYXN0
PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCmluZGV4
IDdhZjUxYTE5OTRhZDZkNzgyZDU1MDVkZWM3M2U3NjM1ZWM2MmRlOWYuLjMxNmZlZTE1NDhkOTU0
NGUyMTk1MjY3ZDg2ODhiMWVlMjJmN2RhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oCkBAIC0zNSwyMCArMzUsMTgg
QEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1w
bC5oIgotI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhQ29uc3RyYWludHM7Ci1jbGFz
cyBNZWRpYVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOworY2xhc3Mg
TWVkaWFDb25zdHJhaW50c0ltcGw7CitjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOworY2xhc3MgVXNlck1lZGlhQ29udHJvbGxlcjsKIAogY2xhc3MgVXNlck1lZGlhUmVx
dWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFVzZXJNZWRpYVJlcXVlc3Q+LCBwcml2YXRlIENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8
dm9pZD4gc3RhcnQoRG9jdW1lbnQmLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9D
b25zdHJhaW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMs
IE1lZGlhRGV2aWNlczo6UHJvbWlzZSYmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4g
c3RhcnQoRG9jdW1lbnQmLCBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJh
aW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJbXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIERPTVBy
b21pc2U8SURMSW50ZXJmYWNlPE1lZGlhU3RyZWFtPj4mJik7CiAKICAgICB2aXJ0dWFsIH5Vc2Vy
TWVkaWFSZXF1ZXN0KCk7CiAKQEAgLTc0LDcgKzcyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFVzZXJN
ZWRpYVJlcXVlc3QoRG9jdW1lbnQmLCBVc2VyTWVkaWFDb250cm9sbGVyJiwgUmVmPE1lZGlhQ29u
c3RyYWludHNJbXBsPiYmIGF1ZGlvQ29uc3RyYWludHMsIFJlZjxNZWRpYUNvbnN0cmFpbnRzSW1w
bD4mJiB2aWRlb0NvbnN0cmFpbnRzLCBNZWRpYURldmljZXM6OlByb21pc2UmJik7CisgICAgVXNl
ck1lZGlhUmVxdWVzdChEb2N1bWVudCYsIFVzZXJNZWRpYUNvbnRyb2xsZXImLCBSZWY8TWVkaWFD
b25zdHJhaW50c0ltcGw+JiYgYXVkaW9Db25zdHJhaW50cywgUmVmPE1lZGlhQ29uc3RyYWludHNJ
bXBsPiYmIHZpZGVvQ29uc3RyYWludHMsIERPTVByb21pc2U8SURMSW50ZXJmYWNlPE1lZGlhU3Ry
ZWFtPj4mJik7CiAKICAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBmaW5hbDsKICAgICAKQEAg
LTg4LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9hbGxvd2VkQXVkaW9EZXZpY2VV
SUQ7CiAKICAgICBVc2VyTWVkaWFDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAgTWVkaWFE
ZXZpY2VzOjpQcm9taXNlIG1fcHJvbWlzZTsKKyAgICBET01Qcm9taXNlPElETEludGVyZmFjZTxN
ZWRpYVN0cmVhbT4+IG1fcHJvbWlzZTsKICAgICBSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4gbV9w
cm90ZWN0b3I7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZjczZDAwYTdkYzAwMGIwYzUwMTU3NGY0ZjJmOTliZTIzNTU5
ZjE0OC4uYTQ4N2RiNGZhNzRkMDBiYzFhYzVhNDcyNDUwZGFiZDU2ZjA1YWZlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1
LDcgKzEyNSw2IEBACiAJCTA3Mjc3RTU0MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFt
VHJhY2tFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzI3N0U0ODE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwICovOyB9OwogCQkwNzI3N0U1NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRy
YWNrRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3Mjc3RTQ5MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oICov
OyB9OwogCQkwNzJBNzA0MDFENkU4RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcy
QTcwM0UxRDZFOEY2MjAwREYwQUZDIC8qIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaCAqLzsg
fTsKLQkJMDcyQTcwNDMxRDczOTZCMzAwREYwQUZDIC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJBNzA0MjFE
NzM5NkIyMDBERjBBRkMgLyogSlNNZWRpYURldmljZXNDdXN0b20uaCAqLzsgfTsKIAkJMDcyQUUx
RTUxODNDMDc0MTAwMEE1OTg4IC8qIFBsdWdpblJlcGxhY2VtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJBRTFERjE4M0MwNzQxMDAwQTU5ODgg
LyogUGx1Z2luUmVwbGFjZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzJBRTFFNjE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzJBRTFFMDE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQubW0gKi87IH07CiAJCTA3MkFFMUU4MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQ
bHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcyQUUxRTIxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxh
Y2VtZW50LmggKi87IH07CkBAIC05ODksNyArOTg4LDYgQEAKIAkJMUFGRkM0NTkxRDVFODY2MTAw
MjY3QTY2IC8qIFBsdWdpbkJsYWNrbGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFGRkM0NEYxRDVFN0VDNzAwMjY3QTY2IC8qIFBsdWdpbkJsYWNr
bGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTFCMTI0RDhEMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCMTI0RDhDMUQzODBCNzAw
MEVDREZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCAqLzsgfTsKIAkJMUIxMjREOEYxRDM4MEJC
NjAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCMTI0RDhFMUQzODBCQjYwMEVDREZCMCAvKiBNZWRp
YVNhbXBsZUFWRk9iakMubW0gKi87IH07Ci0JCTFCODhERDEzMUQ1QjlFNTAwMEUzQjdBNCAvKiBK
U01lZGlhRGV2aWNlc0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQjg4REQxMjFENUFEM0IyMDBFM0I3QTQgLyogSlNNZWRpYURldmljZXND
dXN0b20uY3BwICovOyB9OwogCQkxQkU1QkZDMjFENTE1NzE1MDAxNjY2RDkgLyogTWVkaWFDb25z
dHJhaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQkU1QkZDMTFENTE1NzE1MDAxNjY2RDkgLyogTWVkaWFDb25zdHJhaW50cy5jcHAgKi87IH07
CiAJCTFCRjlEQjNDMUQzOTczQUQwMDI2QUVCNyAvKiBNZWRpYVNhbXBsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2NDFFQzcxODFFRDYwMTAwRUU0
QzQxIC8qIE1lZGlhU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUMwMTA3MDAxOTI1OTRERjAwOEE0MjAxIC8qIElubGluZVRleHRCb3hT
dHlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QzAxMDZGRTE5MjU5NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmNwcCAqLzsgfTsK
QEAgLTMyNjEsNiArMzI1OSwxMCBAQAogCQk5MzI3QTk0MjA5OTY4RDFBMDA2OEE1NDYgLyogSFRN
TE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMjdBOTQxMDk5NjhEMUEwMDY4QTU0NiAvKiBIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uY3BwICovOyB9OwogCQk5MzJBRDcwNTE3RUZBMkMzMDAzOEY4RkYgLyogTWFpbkZyYW1l
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMkFE
NzAzMTdFRkEyQzMwMDM4RjhGRiAvKiBNYWluRnJhbWUuY3BwICovOyB9OwogCQk5MzJBRDcwNjE3
RUZBMkM0MDAzOEY4RkYgLyogTWFpbkZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzJBRDcwNDE3RUZBMkMzMDAzOEY4RkYgLyogTWFpbkZyYW1l
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTMy
Q0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyQ0MwQjYxREZGRDE1ODAw
NEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oICovOyB9OworCQk5MzJDQzBENDFERkZE
NjY3MDA0QzBGOUYgLyogSlNNZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyQ0MwRDAxREZGRDY2NzAwNEMwRjlG
IC8qIEpTTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcCAqLzsgfTsKKwkJOTMyQ0MwRDUxREZGRDY2
NzAwNEMwRjlGIC8qIEpTTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzJDQzBEMTFERkZENjY3MDA0QzBGOUYgLyog
SlNNZWRpYVRyYWNrQ29uc3RyYWludHMuaCAqLzsgfTsKKwkJOTMyQ0MwRjcxREZGREExRjAwNEMw
RjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzJDQzBGNjFERkZEQTFGMDA0QzBGOUYgLyogTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmNwcCAqLzsgfTsKIAkJOTMyRTE2MDkwQUY1NzgzNDAwMjVGNDA4IC8q
IEZyYW1lTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMkUxNjA4MEFGNTc4MzQwMDI1RjQwOCAvKiBGcmFtZUxvYWRlci5jcHAgKi87IH07
CiAJCTkzMzA5REQ2MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOUQ4NzA5OUU2
NDkxMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuY3BwICovOyB9OwogCQk5MzMwOURENzA5
OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzA5RDg4MDk5RTY0OTEwMDU2RTU4MSAvKiBB
cHBlbmROb2RlQ29tbWFuZC5oICovOyB9OwpAQCAtNzExNSw3ICs3MTE3LDYgQEAKIAkJMDcyODQ3
RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBsYXRmb3JtVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkE3
MDNFMUQ2RThGNjIwMERGMEFGQyAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQTcwM0YxRDZFOEY2MjAwREYwQUZDIC8q
IE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE92
ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzJBNzA0MjFENzM5NkIyMDBERjBBRkMgLyogSlNNZWRpYURldmljZXNDdXN0b20uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYURldmljZXNDdXN0b20uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQUUxREYxODNDMDc0MTAwMEE1OTg4IC8qIFBs
dWdpblJlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdp
blJlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkFFMUUwMTgz
QzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJBRTFFMTE4M0MwNzQxMDAwQTU5
ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3NzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7
IHBhdGggPSBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jc3M7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC04MDQwLDcgKzgwNDEsNiBAQAogCQkxQUZGQzQ1NjFENUU4M0E3MDAyNjdB
NjYgLyogQ0ZVdGlsaXRpZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q0ZVdGlsaXRpZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUIxMjREOEMx
RDM4MEI3MDAwRUNERkIwIC8qIE1lZGlhU2FtcGxlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBNZWRpYVNhbXBsZUFWRk9iakMuaDsgcGF0aCA9IC4uL01lZGlhU2Ft
cGxlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQjEyNEQ4RTFEMzgw
QkI2MDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFTYW1wbGVBVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxQjg4REQxMjFENUFEM0IyMDBFM0I3QTQgLyogSlNNZWRpYURldmlj
ZXNDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYURldmljZXNDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQkU1QkZDMTFENTE1NzE1MDAxNjY2RDkg
LyogTWVkaWFDb25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYUNvbnN0cmFpbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUMwMTA2RkUxOTI1OTRERjAwOEE0MjAxIC8qIElubGluZVRleHRCb3hTdHlsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVUZXh0Qm94U3R5bGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzAxMDZGRjE5MjU5NERGMDA4QTQyMDEgLyog
SW5saW5lVGV4dEJveFN0eWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
bGluZVRleHRCb3hTdHlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MTQs
NiArMTA4MTQsMTEgQEAKIAkJOTMyN0E5NDEwOTk2OEQxQTAwNjhBNTQ2IC8qIEhUTUxPcHRpb25z
Q29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1M
T3B0aW9uc0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzJB
RDcwMzE3RUZBMkMzMDAzOEY4RkYgLyogTWFpbkZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1haW5GcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzMkFENzA0MTdFRkEyQzMwMDM4RjhGRiAvKiBNYWluRnJhbWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFpbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzMkNDMEI2MURGRkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWlu
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUcmFja0NvbnN0cmFp
bnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMkNDMEQwMURGRkQ2NjcwMDRD
MEY5RiAvKiBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzMkNDMEQxMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJh
Y2tDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlh
VHJhY2tDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzJDQzBG
MDFERkZEOEQ0MDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBNZWRpYVRyYWNrQ29uc3RyYWludHMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzJDQzBGNjFERkZEQTFGMDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0
cmFpbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVHJh
Y2tDb25zdHJhaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMkUxNjA4
MEFGNTc4MzQwMDI1RjQwOCAvKiBGcmFtZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGcmFtZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzMzA5RDg3MDk5RTY0OTEwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBlbmROb2RlQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5RDg4MDk5RTY0OTEwMDU2RTU4
MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBlbmROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUw
MjYsNiArMTUwMzEsOSBAQAogCQkJCTA3MjIxQjU3MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0
cmVhbVRyYWNrRXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBN
ZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI1OTE3Q0VDMzI3MDA4NDhFNTEg
LyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCAqLywKKwkJCQk5MzJDQzBGNjFERkZEQTFGMDA0
QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcCAqLywKKwkJCQk5MzJDQzBCNjFERkZE
MTU4MDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggKi8sCisJCQkJOTMyQ0MwRjAx
REZGRDhENDAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5pZGwgKi8sCiAJCQkJMDdD
MUMwRTAxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5o
ICovLAogCQkJCTA3QzFDMEUxMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVk
Q29uc3RyYWludHMuaWRsICovLAogCQkJCTVFQTcyNUNBMUFDQUJDQjUwMEVBRDE3QiAvKiBOYXZp
Z2F0b3JNZWRpYURldmljZXMuY3BwICovLApAQCAtMTUyMzgsNiArMTUyNDYsOCBAQAogCQkJCTA3
Mjc3RTQ3MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCAqLywKIAkJCQkw
NzI3N0U0ODE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwICov
LAogCQkJCTA3Mjc3RTQ5MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVu
dC5oICovLAorCQkJCTkzMkNDMEQwMURGRkQ2NjcwMDRDMEY5RiAvKiBKU01lZGlhVHJhY2tDb25z
dHJhaW50cy5jcHAgKi8sCisJCQkJOTMyQ0MwRDExREZGRDY2NzAwNEMwRjlGIC8qIEpTTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmggKi8sCiAJCQkJMDc4N0M0NjcxQkZCREY2RjAwNkRDRDdGIC8qIEpT
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmNwcCAqLywKIAkJCQkwNzg3QzQ2ODFCRkJE
RjZGMDA2RENEN0YgLyogSlNNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLywKIAkJ
CQkwNzNCRTMzRTE3RDE3RTAxMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWEuY3BwICov
LApAQCAtMjIwMjQsOCArMjIwMzQsNiBAQAogCQkJCUE3RDAzMThEMEU5MzU0MDMwMEUyNEFDRCAv
KiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8sCiAJCQkJN0E3NEVDQkMxMDE4MzlEQTAwQkY5MzlF
IC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0UxQzQzRjBE
OTgzMEY0MDAzQjAyRjIgLyogSlNMb2NhdGlvbkN1c3RvbS5jcHAgKi8sCi0JCQkJMUI4OEREMTIx
RDVBRDNCMjAwRTNCN0E0IC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmNwcCAqLywKLQkJCQkwNzJB
NzA0MjFENzM5NkIyMDBERjBBRkMgLyogSlNNZWRpYURldmljZXNDdXN0b20uaCAqLywKIAkJCQlB
RDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0b20uaCAqLywKIAkJCQkw
N0M1OUI2RDE3Rjc5NEY2MDAwRkJDQkIgLyogSlNNZWRpYVN0cmVhbVRyYWNrQ3VzdG9tLmNwcCAq
LywKIAkJCQkwN0MxQzBFNjFCRkI5MEE3MDBCRDIyNTYgLyogSlNNZWRpYVRyYWNrU3VwcG9ydGVk
Q29uc3RyYWludHNDdXN0b20uY3BwICovLApAQCAtMjU1MjIsNiArMjU1MzAsNyBAQAogCQkJCTA2
MjI4Nzg0MEI0REIzMjIwMDBDMzRERiAvKiBGb2N1c0RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjZEOUQyMzUxNEVBQkQyNjAwOTBENzVFIC8qIEZvY3VzRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQzNEQTY1MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250LmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzJDQzBCNzFERkZEMTU4MDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMyRDg5RDFCMUUyOTFGMDBENTJFODcgLyogRm9udEFu
dGlhbGlhc2luZ1N0YXRlU2F2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjkyRDRGMTI5MzU1
MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTYz
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjYyMTMs
NyArMjYyMjIsNiBAQAogCQkJCUNEQUI2RDJFMTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29u
dHJvbHNIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNTk3NDFEQjFCN0QxNDAxMDAyMDFDOTIg
LyogSlNNZWRpYURldmljZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTE1NzM5QkJCMUI0MjAx
MkQwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDcyQTcw
NDMxRDczOTZCMzAwREYwQUZDIC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRDIzQTEyNjEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOUJGNzEyMURCRkQ5MTQwMDdBN0Q5OSAv
KiBKU01lZGlhRW5jcnlwdGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDE5MENE
NjgyNjkwMEZBREE3NSAvKiBKU01lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjgyNDUs
NiArMjgyNTMsNyBAQAogCQkJCTlCQUYzQjI0MTJDMUEzOTgwMDAxNEJGMSAvKiBXcml0aW5nRGly
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ3NkFBODE1REM0QkIxMDAzMDVEQjIgLyog
V3JpdGluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MjAyMDlEMTUwOEQwMDBFNjFE
NyAvKiBYTGlua05hbWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzJDQzBENTFERkZENjY3MDA0
QzBGOUYgLyogSlNNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
MDc4NEIyMUM1MkVFMkMwMDEwNEQxRCAvKiBYTUxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDBCOTMxODgxM0JBOERCQTAwMzVBOTQ4IC8qIFhNTERvY3VtZW50UGFyc2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwMEI5MzE4QzEzQkE4RENDMDAzNUE5NDggLyogWE1MRG9jdW1lbnRQYXJz
ZXJTY29wZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkzNSw2ICsyODk0NCw3IEBACiAJCQkJMzFC
Qzc0MkQxQUFGRjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNw
ZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NERFNUM4MTFEN0YzQTE0MDAx
NjRGMkEgLyogQ1NTQXRSdWxlSUQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTMyQ0MwRjcxREZG
REExRjAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGQkQ2QUY4QjE1RUYyNUU1MDA4QjcxMTAgLyogQ1NTQmFzaWNTaGFwZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE2QTg0RjkxNEM4NUNDQzAwMjk3N0RGIC8qIENTU0JvcmRlckltYWdl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjc0QjMxMTQwRUJFRDgwMEVBREZBNiAvKiBDU1NC
b3JkZXJJbWFnZVNsaWNlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg0MSw2ICsyOTg1
MSw3IEBACiAJCQkJQkM5NEQxNEUwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0U3QjE5MzBENEU4Njk2MDA3NUE1MzkgLyogSlNIaXN0b3J5Q3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3RTIzMzY5MURDQUIyNDMwMEYyOEQwMSAvKiBK
U0htYWNLZXlQYXJhbXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTMyQ0MwRDQxREZGRDY2NzAw
NEMwRjlGIC8qIEpTTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDOTdFNDEyMTA5MTU0RkEwMDEwRDM2MSAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDOTdFNDJDMTA5MTVCMDYwMDEwRDM2MSAvKiBKU0hUTUxBbGxDb2xs
ZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNEEyREVGMEExQjg1MkEwMEM4
MDdGOCAvKiBKU0hUTUxBbmNob3JFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk5NzUs
NyArMjk5ODYsNiBAQAogCQkJCUNEQUI2RDJEMTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29u
dHJvbHNIb3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE1OTc0MURBMUI3RDEzRjkwMDIwMUM5
MiAvKiBKU01lZGlhRGV2aWNlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNTczOUJCQTFC
NDIwMTJBMDBEMjU4QzEgLyogSlNNZWRpYURldmljZXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MUI4OEREMTMxRDVCOUU1MDAwRTNCN0E0IC8qIEpTTWVkaWFEZXZpY2VzQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZEMjNBMTI1MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlCRjcxMDFEQkZEOENF
MDA3QTdEOTkgLyogSlNNZWRpYUVuY3J5cHRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU0NDYxNDE4MENENjgyNjkwMEZBREE3NSAvKiBKU01lZGlhRXJyb3IuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAppbmRleCA0YzUxNGU0MDk1ZThjYWU3ZDVkZjhjMTk2MjY0ODdjY2FhMWI1MzRmLi4zZTJk
ZWNiMGNkYTZkYWEzZTc3MzdhNGFiNDZiOGUyZDQ0ZmMwYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTk5LDcgKzk5LDYg
QEAKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJKU0xvY2F0
aW9uQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIgotI2lu
Y2x1ZGUgIkpTTWVkaWFEZXZpY2VzQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VDaGFu
bmVsQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5j
bHVkZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01lZGlhRGV2aWNlc0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lZGlhRGV2aWNlc0N1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDYxMzBkN2ZkNTlkNDE1OTA4MjlkMmM5OWEwZDhhYWU3MTYwNGEzZWYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZWRpYURldmljZXNDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
Mzk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNNZWRpYURldmljZXNDdXN0b20uaCIK
LQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJBcnJheVZhbHVlLmgiCi0j
aW5jbHVkZSAiRGljdGlvbmFyeS5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNs
dWRlICJKU0RPTVByb21pc2UuaCIKLSNpbmNsdWRlICJKU01lZGlhRGV2aWNlcy5oIgotI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgotI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1lbnVtIGNsYXNzIENvbnN0cmFpbnRTZXRUeXBlIHsgTWFuZGF0b3J5
LCBBZHZhbmNlZCB9OwotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplU3RyaW5nQ29uc3RyYWludFdp
dGhMaXN0KFN0cmluZ0NvbnN0cmFpbnQmIGNvbnN0cmFpbnQsIHZvaWQgKFN0cmluZ0NvbnN0cmFp
bnQ6OiphcHBlbmRWYWx1ZSkoY29uc3QgU3RyaW5nJiksIGNvbnN0IEFycmF5VmFsdWUmIGxpc3Qp
Ci17Ci0gICAgc2l6ZV90IHNpemU7Ci0gICAgaWYgKCFsaXN0Lmxlbmd0aChzaXplKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAg
ICAgICAgU3RyaW5nIHZhbHVlOwotICAgICAgICBpZiAobGlzdC5nZXQoaSwgdmFsdWUpKQotICAg
ICAgICAgICAgKGNvbnN0cmFpbnQuKmFwcGVuZFZhbHVlKSh2YWx1ZSk7Ci0gICAgfQotfQotCi1z
dGF0aWMgc3RkOjpvcHRpb25hbDxTdHJpbmdDb25zdHJhaW50PiBjcmVhdGVTdHJpbmdDb25zdHJh
aW50KGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBjb25zdCBTdHJp
bmcmIG5hbWUsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgQ29uc3RyYWludFNldFR5cGUgY29u
c3RyYWludFNldFR5cGUpCi17Ci0gICAgYXV0byBjb25zdHJhaW50ID0gU3RyaW5nQ29uc3RyYWlu
dChuYW1lLCB0eXBlKTsKLQotICAgIC8vIERpY3Rpb25hcnkgY29uc3RyYWludCB2YWx1ZS4KLSAg
ICBEaWN0aW9uYXJ5IGRpY3Rpb25hcnlWYWx1ZTsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0cmFp
bnRTZXQuZ2V0KG5hbWUsIGRpY3Rpb25hcnlWYWx1ZSkgJiYgIWRpY3Rpb25hcnlWYWx1ZS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIEFycmF5VmFsdWUgZXhhY3RBcnJheVZhbHVlOwot
ICAgICAgICBpZiAoZGljdGlvbmFyeVZhbHVlLmdldCgiZXhhY3QiLCBleGFjdEFycmF5VmFsdWUp
ICYmICFleGFjdEFycmF5VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgIGlu
aXRpYWxpemVTdHJpbmdDb25zdHJhaW50V2l0aExpc3QoY29uc3RyYWludCwgJlN0cmluZ0NvbnN0
cmFpbnQ6OmFwcGVuZEV4YWN0LCBleGFjdEFycmF5VmFsdWUpOwotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIFN0cmluZyBleGFjdFN0cmluZ1ZhbHVlOwotICAgICAgICAgICAgaWYgKGRpY3Rp
b25hcnlWYWx1ZS5nZXQoImV4YWN0IiwgZXhhY3RTdHJpbmdWYWx1ZSkpCi0gICAgICAgICAgICAg
ICAgY29uc3RyYWludC5zZXRFeGFjdChleGFjdFN0cmluZ1ZhbHVlKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIEFycmF5VmFsdWUgaWRlYWxBcnJheVZhbHVlOwotICAgICAgICBpZiAoZGljdGlvbmFy
eVZhbHVlLmdldCgiaWRlYWwiLCBpZGVhbEFycmF5VmFsdWUpICYmICFpZGVhbEFycmF5VmFsdWUu
aXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgIGluaXRpYWxpemVTdHJpbmdDb25zdHJh
aW50V2l0aExpc3QoY29uc3RyYWludCwgJlN0cmluZ0NvbnN0cmFpbnQ6OmFwcGVuZElkZWFsLCBp
ZGVhbEFycmF5VmFsdWUpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFN0cmluZyBpZGVh
bFN0cmluZ1ZhbHVlOwotICAgICAgICAgICAgaWYgKCFkaWN0aW9uYXJ5VmFsdWUuZ2V0KCJpZGVh
bCIsIGlkZWFsU3RyaW5nVmFsdWUpKQotICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRl
YWwoaWRlYWxTdHJpbmdWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY29uc3RyYWlu
dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIExPRyhNZWRpYSwgImNyZWF0ZVN0cmluZ0NvbnN0
cmFpbnQoKSAtIGlnbm9yaW5nIHN0cmluZyBjb25zdHJhaW50ICclcycgd2l0aCBkaWN0aW9uYXJ5
IHZhbHVlIHNpbmNlIGl0IGhhcyBubyB2YWxpZCBvciBzdXBwb3J0ZWQga2V5L3ZhbHVlIHBhaXJz
LiIsIG5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gV1RGTW92ZShjb25zdHJhaW50
KTsKLSAgICB9Ci0KLSAgICAvLyBBcnJheSBjb25zdHJhaW50IHZhbHVlLgotICAgIEFycmF5VmFs
dWUgYXJyYXlWYWx1ZTsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQuZ2V0KG5hbWUs
IGFycmF5VmFsdWUpICYmICFhcnJheVZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAg
ICAgaW5pdGlhbGl6ZVN0cmluZ0NvbnN0cmFpbnRXaXRoTGlzdChjb25zdHJhaW50LCAmU3RyaW5n
Q29uc3RyYWludDo6YXBwZW5kSWRlYWwsIGFycmF5VmFsdWUpOwotCi0gICAgICAgIGlmIChjb25z
dHJhaW50LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgTE9HKE1lZGlhLCAiY3JlYXRlU3RyaW5n
Q29uc3RyYWludCgpIC0gaWdub3Jpbmcgc3RyaW5nIGNvbnN0cmFpbnQgJyVzJyB3aXRoIGFycmF5
IHZhbHVlIHNpbmNlIGl0IGlzIGVtcHR5LiIsIG5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIFdU
Rk1vdmUoY29uc3RyYWludCk7Ci0gICAgfQotCi0gICAgLy8gU2NhbGFyIGNvbnN0cmFpbnQgdmFs
dWUuCi0gICAgU3RyaW5nIHZhbHVlOwotICAgIGlmIChtZWRpYVRyYWNrQ29uc3RyYWludFNldC5n
ZXQobmFtZSwgdmFsdWUpKSB7Ci0gICAgICAgIGlmIChjb25zdHJhaW50U2V0VHlwZSA9PSBDb25z
dHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5KQotICAgICAgICAgICAgY29uc3RyYWludC5zZXRJZGVh
bCh2YWx1ZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0RXhhY3Qo
dmFsdWUpOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoY29uc3RyYWludCk7Ci0g
ICAgfQotCi0gICAgLy8gSW52YWxpZCBjb25zdHJhaW50IHZhbHVlLgotICAgIExPRyhNZWRpYSwg
ImNyZWF0ZVN0cmluZ0NvbnN0cmFpbnQoKSAtIGlnbm9yaW5nIHN0cmluZyBjb25zdHJhaW50ICcl
cycgc2luY2UgaXQgaGFzIG5laXRoZXIgYSBkaWN0aW9uYXJ5IG5vciBzZXF1ZW5jZSBub3Igc2Nh
bGFyIHZhbHVlLiIsIG5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLX0KLQotc3RhdGljIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhbkNvbnN0cmFpbnQ+IGNyZWF0ZUJv
b2xlYW5Db25zdHJhaW50KGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0
LCBjb25zdCBTdHJpbmcmIG5hbWUsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgQ29uc3RyYWlu
dFNldFR5cGUgY29uc3RyYWludFNldFR5cGUpCi17Ci0gICAgYXV0byBjb25zdHJhaW50ID0gQm9v
bGVhbkNvbnN0cmFpbnQobmFtZSwgdHlwZSk7Ci0KLSAgICAvLyBEaWN0aW9uYXJ5IGNvbnN0cmFp
bnQgdmFsdWUuCi0gICAgRGljdGlvbmFyeSBkaWN0aW9uYXJ5VmFsdWU7Ci0gICAgaWYgKG1lZGlh
VHJhY2tDb25zdHJhaW50U2V0LmdldChuYW1lLCBkaWN0aW9uYXJ5VmFsdWUpICYmICFkaWN0aW9u
YXJ5VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICBib29sIGV4YWN0VmFsdWU7
Ci0gICAgICAgIGlmIChkaWN0aW9uYXJ5VmFsdWUuZ2V0KCJleGFjdCIsIGV4YWN0VmFsdWUpKQot
ICAgICAgICAgICAgY29uc3RyYWludC5zZXRFeGFjdChleGFjdFZhbHVlKTsKLQotICAgICAgICBi
b29sIGlkZWFsVmFsdWU7Ci0gICAgICAgIGlmIChkaWN0aW9uYXJ5VmFsdWUuZ2V0KCJpZGVhbCIs
IGlkZWFsVmFsdWUpKQotICAgICAgICAgICAgY29uc3RyYWludC5zZXRJZGVhbChpZGVhbFZhbHVl
KTsKLQotICAgICAgICBpZiAoY29uc3RyYWludC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIExP
RyhNZWRpYSwgImNyZWF0ZUJvb2xlYW5Db25zdHJhaW50KCkgLSBpZ25vcmluZyBib29sZWFuIGNv
bnN0cmFpbnQgJyVzJyB3aXRoIGRpY3Rpb25hcnkgdmFsdWUgc2luY2UgaXQgaGFzIG5vIHZhbGlk
IG9yIHN1cHBvcnRlZCBrZXkvdmFsdWUgcGFpcnMuIiwgbmFtZS51dGY4KCkuZGF0YSgpKTsKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1
cm4gV1RGTW92ZShjb25zdHJhaW50KTsKLSAgICB9Ci0KLSAgICAvLyBTY2FsYXIgY29uc3RyYWlu
dCB2YWx1ZS4KLSAgICBib29sIHZhbHVlOwotICAgIGlmIChtZWRpYVRyYWNrQ29uc3RyYWludFNl
dC5nZXQobmFtZSwgdmFsdWUpKSB7Ci0gICAgICAgIGlmIChjb25zdHJhaW50U2V0VHlwZSA9PSBD
b25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5KQotICAgICAgICAgICAgY29uc3RyYWludC5zZXRJ
ZGVhbCh2YWx1ZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0RXhh
Y3QodmFsdWUpOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIFdURk1vdmUoY29uc3RyYWludCk7
Ci0gICAgfQotCi0gICAgLy8gSW52YWxpZCBjb25zdHJhaW50IHZhbHVlLgotICAgIExPRyhNZWRp
YSwgImNyZWF0ZUJvb2xlYW5Db25zdHJhaW50KCkgLSBpZ25vcmluZyBib29sZWFuIGNvbnN0cmFp
bnQgJyVzJyBzaW5jZSBpdCBoYXMgbmVpdGhlciBhIGRpY3Rpb25hcnkgbm9yIHNjYWxhciB2YWx1
ZS4iLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19Ci0K
LXN0YXRpYyBzdGQ6Om9wdGlvbmFsPERvdWJsZUNvbnN0cmFpbnQ+IGNyZWF0ZURvdWJsZUNvbnN0
cmFpbnQoY29uc3QgRGljdGlvbmFyeSYgbWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBDb25zdHJhaW50U2V0VHlwZSBj
b25zdHJhaW50U2V0VHlwZSkKLXsKLSAgICBhdXRvIGNvbnN0cmFpbnQgPSBEb3VibGVDb25zdHJh
aW50KG5hbWUsIHR5cGUpOwotCi0gICAgLy8gRGljdGlvbmFyeSBjb25zdHJhaW50IHZhbHVlLgot
ICAgIERpY3Rpb25hcnkgZGljdGlvbmFyeVZhbHVlOwotICAgIGlmIChtZWRpYVRyYWNrQ29uc3Ry
YWludFNldC5nZXQobmFtZSwgZGljdGlvbmFyeVZhbHVlKSAmJiAhZGljdGlvbmFyeVZhbHVlLmlz
VW5kZWZpbmVkT3JOdWxsKCkpIHsKLSAgICAgICAgZG91YmxlIG1pblZhbHVlOwotICAgICAgICBp
ZiAoZGljdGlvbmFyeVZhbHVlLmdldCgibWluIiwgbWluVmFsdWUpKQotICAgICAgICAgICAgY29u
c3RyYWludC5zZXRNaW4obWluVmFsdWUpOwotCi0gICAgICAgIGRvdWJsZSBtYXhWYWx1ZTsKLSAg
ICAgICAgaWYgKGRpY3Rpb25hcnlWYWx1ZS5nZXQoIm1heCIsIG1heFZhbHVlKSkKLSAgICAgICAg
ICAgIGNvbnN0cmFpbnQuc2V0TWF4KG1heFZhbHVlKTsKLQotICAgICAgICBkb3VibGUgZXhhY3RW
YWx1ZTsKLSAgICAgICAgaWYgKGRpY3Rpb25hcnlWYWx1ZS5nZXQoImV4YWN0IiwgZXhhY3RWYWx1
ZSkpCi0gICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KGV4YWN0VmFsdWUpOwotCi0gICAg
ICAgIGRvdWJsZSBpZGVhbFZhbHVlOwotICAgICAgICBpZiAoZGljdGlvbmFyeVZhbHVlLmdldCgi
aWRlYWwiLCBpZGVhbFZhbHVlKSkKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwoaWRl
YWxWYWx1ZSk7Ci0KLSAgICAgICAgaWYgKGNvbnN0cmFpbnQuaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICBMT0coTWVkaWEsICJjcmVhdGVEb3VibGVDb25zdHJhaW50KCkgLSBpZ25vcmluZyBkb3Vi
bGUgY29uc3RyYWludCAnJXMnIHdpdGggZGljdGlvbmFyeSB2YWx1ZSBzaW5jZSBpdCBoYXMgbm8g
dmFsaWQgb3Igc3VwcG9ydGVkIGtleS92YWx1ZSBwYWlycy4iLCBuYW1lLnV0ZjgoKS5kYXRhKCkp
OwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgfQotCi0gICAgICAg
IHJldHVybiBXVEZNb3ZlKGNvbnN0cmFpbnQpOwotICAgIH0KLQotICAgIC8vIFNjYWxhciBjb25z
dHJhaW50IHZhbHVlLgotICAgIGRvdWJsZSB2YWx1ZTsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0
cmFpbnRTZXQuZ2V0KG5hbWUsIHZhbHVlKSkgewotICAgICAgICBpZiAoY29uc3RyYWludFNldFR5
cGUgPT0gQ29uc3RyYWludFNldFR5cGU6Ok1hbmRhdG9yeSkKLSAgICAgICAgICAgIGNvbnN0cmFp
bnQuc2V0SWRlYWwodmFsdWUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb25zdHJhaW50
LnNldEV4YWN0KHZhbHVlKTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGNvbnN0
cmFpbnQpOwotICAgIH0KLQotICAgIC8vIEludmFsaWQgY29uc3RyYWludCB2YWx1ZS4KLSAgICBM
T0coTWVkaWEsICJjcmVhdGVEb3VibGVDb25zdHJhaW50KCkgLSBpZ25vcmluZyBkb3VibGUgY29u
c3RyYWludCAnJXMnIHNpbmNlIGl0IGhhcyBuZWl0aGVyIGEgZGljdGlvbmFyeSBub3Igc2NhbGFy
IHZhbHVlLiIsIG5hbWUudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LX0KLQotc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW50Q29uc3RyYWludD4gY3JlYXRlSW50Q29uc3Ry
YWludChjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYVRyYWNrQ29uc3RyYWludFNldCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIENvbnN0cmFpbnRTZXRUeXBlIGNv
bnN0cmFpbnRTZXRUeXBlKQotewotICAgIGF1dG8gY29uc3RyYWludCA9IEludENvbnN0cmFpbnQo
bmFtZSwgdHlwZSk7Ci0KLSAgICAvLyBEaWN0aW9uYXJ5IGNvbnN0cmFpbnQgdmFsdWUuCi0gICAg
RGljdGlvbmFyeSBkaWN0aW9uYXJ5VmFsdWU7Ci0gICAgaWYgKG1lZGlhVHJhY2tDb25zdHJhaW50
U2V0LmdldChuYW1lLCBkaWN0aW9uYXJ5VmFsdWUpICYmICFkaWN0aW9uYXJ5VmFsdWUuaXNVbmRl
ZmluZWRPck51bGwoKSkgewotICAgICAgICBpbnQgbWluVmFsdWU7Ci0gICAgICAgIGlmIChkaWN0
aW9uYXJ5VmFsdWUuZ2V0KCJtaW4iLCBtaW5WYWx1ZSkpCi0gICAgICAgICAgICBjb25zdHJhaW50
LnNldE1pbihtaW5WYWx1ZSk7Ci0KLSAgICAgICAgaW50IG1heFZhbHVlOwotICAgICAgICBpZiAo
ZGljdGlvbmFyeVZhbHVlLmdldCgibWF4IiwgbWF4VmFsdWUpKQotICAgICAgICAgICAgY29uc3Ry
YWludC5zZXRNYXgobWF4VmFsdWUpOwotCi0gICAgICAgIGludCBleGFjdFZhbHVlOwotICAgICAg
ICBpZiAoZGljdGlvbmFyeVZhbHVlLmdldCgiZXhhY3QiLCBleGFjdFZhbHVlKSkKLSAgICAgICAg
ICAgIGNvbnN0cmFpbnQuc2V0RXhhY3QoZXhhY3RWYWx1ZSk7Ci0KLSAgICAgICAgaW50IGlkZWFs
VmFsdWU7Ci0gICAgICAgIGlmIChkaWN0aW9uYXJ5VmFsdWUuZ2V0KCJpZGVhbCIsIGlkZWFsVmFs
dWUpKQotICAgICAgICAgICAgY29uc3RyYWludC5zZXRJZGVhbChpZGVhbFZhbHVlKTsKLQotICAg
ICAgICBpZiAoY29uc3RyYWludC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIExPRyhNZWRpYSwg
ImNyZWF0ZUludENvbnN0cmFpbnQoKSAtIGlnbm9yaW5nIGxvbmcgY29uc3RyYWludCAnJXMnIHdp
dGggZGljdGlvbmFyeSB2YWx1ZSBzaW5jZSBpdCBoYXMgbm8gdmFsaWQgb3Igc3VwcG9ydGVkIGtl
eS92YWx1ZSBwYWlycy4iLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGNvbnN0
cmFpbnQpOwotICAgIH0KLQotICAgIC8vIFNjYWxhciBjb25zdHJhaW50IHZhbHVlLgotICAgIGlu
dCB2YWx1ZTsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQuZ2V0KG5hbWUsIHZhbHVl
KSkgewotICAgICAgICBpZiAoY29uc3RyYWludFNldFR5cGUgPT0gQ29uc3RyYWludFNldFR5cGU6
Ok1hbmRhdG9yeSkKLSAgICAgICAgICAgIGNvbnN0cmFpbnQuc2V0SWRlYWwodmFsdWUpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb25zdHJhaW50LnNldEV4YWN0KHZhbHVlKTsKLSAgICAg
ICAgCi0gICAgICAgIHJldHVybiBXVEZNb3ZlKGNvbnN0cmFpbnQpOwotICAgIH0KLQotICAgIC8v
IEludmFsaWQgY29uc3RyYWludCB2YWx1ZS4KLSAgICBMT0coTWVkaWEsICJjcmVhdGVJbnRDb25z
dHJhaW50KCkgLSBpZ25vcmluZyBsb25nIGNvbnN0cmFpbnQgJyVzJyBzaW5jZSBpdCBoYXMgbmVp
dGhlciBhIGRpY3Rpb25hcnkgbm9yIHNjYWxhciB2YWx1ZS4iLCBuYW1lLnV0ZjgoKS5kYXRhKCkp
OwotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHBhcnNlTWVkaWFU
cmFja0NvbnN0cmFpbnRTZXRGb3JLZXkoY29uc3QgRGljdGlvbmFyeSYgbWVkaWFUcmFja0NvbnN0
cmFpbnRTZXQsIGNvbnN0IFN0cmluZyYgbmFtZSwgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAm
IG1hcCwgQ29uc3RyYWludFNldFR5cGUgY29uc3RyYWludFNldFR5cGUpCi17Ci0gICAgTWVkaWFD
b25zdHJhaW50VHlwZSBjb25zdHJhaW50VHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50czo6Y29uc3RyYWludEZyb21OYW1lKG5hbWUpOwotICAgIHN3aXRjaCAoY29u
c3RyYWludFR5cGUpIHsKLSAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoOgotICAg
ICAgICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVhdGVJbnRDb25zdHJhaW50KG1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWludFNldFR5cGUp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQ6
Ci0gICAgICAgIG1hcC5zZXQoY29uc3RyYWludFR5cGUsIGNyZWF0ZUludENvbnN0cmFpbnQobWVk
aWFUcmFja0NvbnN0cmFpbnRTZXQsIG5hbWUsIGNvbnN0cmFpbnRUeXBlLCBjb25zdHJhaW50U2V0
VHlwZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlNh
bXBsZVJhdGU6Ci0gICAgICAgIG1hcC5zZXQoY29uc3RyYWludFR5cGUsIGNyZWF0ZUludENvbnN0
cmFpbnQobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIG5hbWUsIGNvbnN0cmFpbnRUeXBlLCBjb25z
dHJhaW50U2V0VHlwZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OlNhbXBsZVNpemU6Ci0gICAgICAgIG1hcC5zZXQoY29uc3RyYWludFR5cGUsIGNyZWF0
ZUludENvbnN0cmFpbnQobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIG5hbWUsIGNvbnN0cmFpbnRU
eXBlLCBjb25zdHJhaW50U2V0VHlwZSkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgTWVk
aWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW86Ci0gICAgICAgIG1hcC5zZXQoY29uc3RyYWlu
dFR5cGUsIGNyZWF0ZURvdWJsZUNvbnN0cmFpbnQobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIG5h
bWUsIGNvbnN0cmFpbnRUeXBlLCBjb25zdHJhaW50U2V0VHlwZSkpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZToKLSAgICAgICAgbWFwLnNl
dChjb25zdHJhaW50VHlwZSwgY3JlYXRlRG91YmxlQ29uc3RyYWludChtZWRpYVRyYWNrQ29uc3Ry
YWludFNldCwgbmFtZSwgY29uc3RyYWludFR5cGUsIGNvbnN0cmFpbnRTZXRUeXBlKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lOgotICAgICAg
ICBtYXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVhdGVEb3VibGVDb25zdHJhaW50KG1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWludFNldFR5cGUp
KTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9D
YW5jZWxsYXRpb246Ci0gICAgICAgIG1hcC5zZXQoY29uc3RyYWludFR5cGUsIGNyZWF0ZUJvb2xl
YW5Db25zdHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlw
ZSwgY29uc3RyYWludFNldFR5cGUpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkZhY2luZ01vZGU6Ci0gICAgICAgIG1hcC5zZXQoY29uc3RyYWludFR5
cGUsIGNyZWF0ZVN0cmluZ0NvbnN0cmFpbnQobWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIG5hbWUs
IGNvbnN0cmFpbnRUeXBlLCBjb25zdHJhaW50U2V0VHlwZSkpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlkOgotICAgICAgICBtYXAuc2V0KGNv
bnN0cmFpbnRUeXBlLCBjcmVhdGVTdHJpbmdDb25zdHJhaW50KG1lZGlhVHJhY2tDb25zdHJhaW50
U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWludFNldFR5cGUpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOgotICAgICAgICBt
YXAuc2V0KGNvbnN0cmFpbnRUeXBlLCBjcmVhdGVTdHJpbmdDb25zdHJhaW50KG1lZGlhVHJhY2tD
b25zdHJhaW50U2V0LCBuYW1lLCBjb25zdHJhaW50VHlwZSwgY29uc3RyYWludFNldFR5cGUpKTsK
LSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVua25vd246
Ci0gICAgICAgIExPRyhNZWRpYSwgInBhcnNlTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRGb3JLZXko
KSAtIGlnbm9yaW5nIHVuc3VwcG9ydGVkIGNvbnN0cmFpbnQgJyVzJy4iLCBuYW1lLnV0ZjgoKS5k
YXRhKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBwYXJzZUFk
dmFuY2VkQ29uc3RyYWludHMoY29uc3QgRGljdGlvbmFyeSYgbWVkaWFUcmFja0NvbnN0cmFpbnRz
LCBWZWN0b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+JiBhZHZhbmNlZENvbnN0cmFpbnRz
KQotewotICAgIEFycmF5VmFsdWUgc2VxdWVuY2VPZk1lZGlhVHJhY2tDb25zdHJhaW50U2V0czsK
LSAgICBpZiAoIW1lZGlhVHJhY2tDb25zdHJhaW50cy5nZXQoImFkdmFuY2VkIiwgc2VxdWVuY2VP
Zk1lZGlhVHJhY2tDb25zdHJhaW50U2V0cykgfHwgc2VxdWVuY2VPZk1lZGlhVHJhY2tDb25zdHJh
aW50U2V0cy5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgInBhcnNl
QWR2YW5jZWRDb25zdHJhaW50cygpIC0gdmFsdWUgb2YgYWR2YW5jZWQga2V5IGlzIG5vdCBhIGxp
c3QuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzaXplX3QgbnVtYmVyT2ZDb25z
dHJhaW50U2V0czsKLSAgICBpZiAoIXNlcXVlbmNlT2ZNZWRpYVRyYWNrQ29uc3RyYWludFNldHMu
bGVuZ3RoKG51bWJlck9mQ29uc3RyYWludFNldHMpKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgInBh
cnNlQWR2YW5jZWRDb25zdHJhaW50cygpIC0gaWdub3JpbmcgZW1wdHkgYWR2YW5jZWQgc2VxdWVu
Y2Ugb2YgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRzLiIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZkNvbnN0cmFpbnRTZXRzOyAr
K2kpIHsKLSAgICAgICAgRGljdGlvbmFyeSBtZWRpYVRyYWNrQ29uc3RyYWludFNldDsKLSAgICAg
ICAgaWYgKCFzZXF1ZW5jZU9mTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRzLmdldChpLCBtZWRpYVRy
YWNrQ29uc3RyYWludFNldCkgfHwgbWVkaWFUcmFja0NvbnN0cmFpbnRTZXQuaXNVbmRlZmluZWRP
ck51bGwoKSkgewotICAgICAgICAgICAgTE9HKE1lZGlhLCAicGFyc2VBZHZhbmNlZENvbnN0cmFp
bnRzKCkgLSBpZ25vcmluZyBjb25zdHJhaW50IHNldCB3aXRoIGluZGV4ICclenUnIGluIGFkdmFu
Y2VkIGxpc3QuIiwgaSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAg
ICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIG1hcDsKLQotICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBsb2NhbEtleXM7Ci0gICAgICAgIG1lZGlhVHJhY2tDb25zdHJhaW50U2V0LmdldE93blBy
b3BlcnR5TmFtZXMobG9jYWxLZXlzKTsKLSAgICAgICAgZm9yIChhdXRvJiBsb2NhbEtleSA6IGxv
Y2FsS2V5cykKLSAgICAgICAgICAgIHBhcnNlTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRGb3JLZXko
bWVkaWFUcmFja0NvbnN0cmFpbnRTZXQsIGxvY2FsS2V5LCBtYXAsIENvbnN0cmFpbnRTZXRUeXBl
OjpBZHZhbmNlZCk7Ci0KLSAgICAgICAgaWYgKCFtYXAuaXNFbXB0eSgpKQotICAgICAgICAgICAg
YWR2YW5jZWRDb25zdHJhaW50cy5hcHBlbmQoV1RGTW92ZShtYXApKTsKLSAgICB9Ci19Ci0KLXZv
aWQgcGFyc2VNZWRpYUNvbnN0cmFpbnRzRGljdGlvbmFyeShjb25zdCBEaWN0aW9uYXJ5JiBtZWRp
YVRyYWNrQ29uc3RyYWludHMsIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYW5kYXRvcnlD
b25zdHJhaW50cywgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiYgYWR2YW5jZWRD
b25zdHJhaW50cykKLXsKLSAgICBpZiAobWVkaWFUcmFja0NvbnN0cmFpbnRzLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7Ci0g
ICAgbWVkaWFUcmFja0NvbnN0cmFpbnRzLmdldE93blByb3BlcnR5TmFtZXMoa2V5cyk7Ci0KLSAg
ICBmb3IgKGF1dG8mIGtleSA6IGtleXMpIHsKLSAgICAgICAgaWYgKGtleSA9PSAiYWR2YW5jZWQi
KQotICAgICAgICAgICAgcGFyc2VBZHZhbmNlZENvbnN0cmFpbnRzKG1lZGlhVHJhY2tDb25zdHJh
aW50cywgYWR2YW5jZWRDb25zdHJhaW50cyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBh
cnNlTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRGb3JLZXkobWVkaWFUcmFja0NvbnN0cmFpbnRzLCBr
ZXksIG1hbmRhdG9yeUNvbnN0cmFpbnRzLCBDb25zdHJhaW50U2V0VHlwZTo6TWFuZGF0b3J5KTsK
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIEpTTWVkaWFEZXZpY2VzR2V0VXNlck1lZGlhUHJvbWlz
ZUZ1bmN0aW9uKEV4ZWNTdGF0ZSYgc3RhdGUsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGlmIChVTkxJS0VMWShzdGF0ZS5hcmd1bWVudENvdW50
KCkgPCAxKSkgewotICAgICAgICB0aHJvd1ZNRXJyb3IoJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBhdXRvIGNvbnN0cmFpbnRzRGljdGlvbmFyeSA9IERpY3Rpb25hcnkoJnN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0KLSAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCBtYW5kYXRvcnlBdWRpb0NvbnN0cmFpbnRzOwotICAgIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcD4gYWR2YW5jZWRBdWRpb0NvbnN0cmFpbnRzOwotICAgIGJvb2wgYXJlQXVkaW9D
b25zdHJhaW50c1ZhbGlkID0gZmFsc2U7Ci0KLSAgICBEaWN0aW9uYXJ5IGF1ZGlvQ29uc3RyYWlu
dHNEaWN0aW9uYXJ5OwotICAgIGlmIChjb25zdHJhaW50c0RpY3Rpb25hcnkuZ2V0KCJhdWRpbyIs
IGF1ZGlvQ29uc3RyYWludHNEaWN0aW9uYXJ5KSAmJiAhYXVkaW9Db25zdHJhaW50c0RpY3Rpb25h
cnkuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICBwYXJzZU1lZGlhQ29uc3RyYWludHNE
aWN0aW9uYXJ5KGF1ZGlvQ29uc3RyYWludHNEaWN0aW9uYXJ5LCBtYW5kYXRvcnlBdWRpb0NvbnN0
cmFpbnRzLCBhZHZhbmNlZEF1ZGlvQ29uc3RyYWludHMpOwotICAgICAgICBhcmVBdWRpb0NvbnN0
cmFpbnRzVmFsaWQgPSB0cnVlOwotICAgIH0gZWxzZQotICAgICAgICBjb25zdHJhaW50c0RpY3Rp
b25hcnkuZ2V0KCJhdWRpbyIsIGFyZUF1ZGlvQ29uc3RyYWludHNWYWxpZCk7Ci0KLSAgICBNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCBtYW5kYXRvcnlWaWRlb0NvbnN0cmFpbnRzOwotICAgIFZl
Y3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4gYWR2YW5jZWRWaWRlb0NvbnN0cmFpbnRz
OwotICAgIGJvb2wgYXJlVmlkZW9Db25zdHJhaW50c1ZhbGlkID0gZmFsc2U7Ci0KLSAgICBEaWN0
aW9uYXJ5IHZpZGVvQ29uc3RyYWludHNEaWN0aW9uYXJ5OwotICAgIGlmIChjb25zdHJhaW50c0Rp
Y3Rpb25hcnkuZ2V0KCJ2aWRlbyIsIHZpZGVvQ29uc3RyYWludHNEaWN0aW9uYXJ5KSAmJiAhdmlk
ZW9Db25zdHJhaW50c0RpY3Rpb25hcnkuaXNVbmRlZmluZWRPck51bGwoKSkgewotICAgICAgICBw
YXJzZU1lZGlhQ29uc3RyYWludHNEaWN0aW9uYXJ5KHZpZGVvQ29uc3RyYWludHNEaWN0aW9uYXJ5
LCBtYW5kYXRvcnlWaWRlb0NvbnN0cmFpbnRzLCBhZHZhbmNlZFZpZGVvQ29uc3RyYWludHMpOwot
ICAgICAgICBhcmVWaWRlb0NvbnN0cmFpbnRzVmFsaWQgPSB0cnVlOwotICAgIH0gZWxzZQotICAg
ICAgICBjb25zdHJhaW50c0RpY3Rpb25hcnkuZ2V0KCJ2aWRlbyIsIGFyZVZpZGVvQ29uc3RyYWlu
dHNWYWxpZCk7Ci0KLSAgICBhdXRvIGF1ZGlvQ29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRz
SW1wbDo6Y3JlYXRlKFdURk1vdmUobWFuZGF0b3J5QXVkaW9Db25zdHJhaW50cyksIFdURk1vdmUo
YWR2YW5jZWRBdWRpb0NvbnN0cmFpbnRzKSwgYXJlQXVkaW9Db25zdHJhaW50c1ZhbGlkKTsKLSAg
ICBhdXRvIHZpZGVvQ29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKFdU
Rk1vdmUobWFuZGF0b3J5VmlkZW9Db25zdHJhaW50cyksIFdURk1vdmUoYWR2YW5jZWRWaWRlb0Nv
bnN0cmFpbnRzKSwgYXJlVmlkZW9Db25zdHJhaW50c1ZhbGlkKTsKLSAgICBwcm9wYWdhdGVFeGNl
cHRpb24oc3RhdGUsIHNjb3BlLCBjYXN0VGhpc1ZhbHVlPEpTTWVkaWFEZXZpY2VzPihzdGF0ZSku
d3JhcHBlZCgpLmdldFVzZXJNZWRpYShXVEZNb3ZlKGF1ZGlvQ29uc3RyYWludHMpLCBXVEZNb3Zl
KHZpZGVvQ29uc3RyYWludHMpLCBXVEZNb3ZlKHByb21pc2UpKSk7Ci19Ci0KLUpTVmFsdWUgSlNN
ZWRpYURldmljZXM6OmdldFVzZXJNZWRpYShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIHJldHVy
biBjYWxsUHJvbWlzZUZ1bmN0aW9uPEpTTWVkaWFEZXZpY2VzR2V0VXNlck1lZGlhUHJvbWlzZUZ1
bmN0aW9uLCBQcm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09ubHk+KHN0YXRlKTsKLX0KLQot
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVk
aWFEZXZpY2VzQ3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhRGV2
aWNlc0N1c3RvbS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTBhYzZjYTkyYzUz
NzA1YjQzOWQzZWYxZjgzMDljNGRkOWU5NjlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFEZXZp
Y2VzQ3VzdG9tLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5oIgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEaWN0aW9u
YXJ5OwotCi12b2lkIHBhcnNlTWVkaWFDb25zdHJhaW50c0RpY3Rpb25hcnkoY29uc3QgRGljdGlv
bmFyeSYsIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiwgVmVjdG9yPE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwPiYpOwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNZWRpYVN0cmVhbVRyYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFTdHJlYW1UcmFja0N1c3RvbS5jcHAKaW5kZXggYzMwYjZm
YzlmMDE2MjZjYzY1OTViNWE5YzdmZmNkYzlhYjgwZGUzMy4uNzBlNGVlMDJlZjIzYjhlMTI3ODM4
ZjZiMmRlOTBiZjUyNjBlMmRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZWRpYVN0cmVhbVRyYWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lZGlhU3RyZWFtVHJhY2tDdXN0b20uY3BwCkBAIC0zMSw4ICszMSw2IEBACiAj
aW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU01lZGlhRGV2aWNlc0N1c3RvbS5oIgot
I2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2suaCIKICNpbmNsdWRlICJXZWJD
b3JlSlNDbGllbnREYXRhLmgiCkBAIC0xNjYsNDAgKzE2NCw2IEBAIEpTQzo6SlNWYWx1ZSBKU01l
ZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGllcyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJl
dHVybiBvYmplY3Q7CiB9CiAKLUpTVmFsdWUgSlNNZWRpYVN0cmVhbVRyYWNrOjphcHBseUNvbnN0
cmFpbnRzKEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAgbWFuZGF0b3J5Q29uc3RyYWludHM7Ci0gICAgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50
U2V0TWFwPiBhZHZhbmNlZENvbnN0cmFpbnRzOwotICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKLQot
ICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gMSkgewotICAgICAgICBKU1ZhbHVlIGFy
Z3VtZW50ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCk7Ci0KLSAgICAgICAgSlNWTUNsaWVu
dERhdGEmIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihzdGF0ZS52
bSgpLmNsaWVudERhdGEpOwotICAgICAgICBwdXREaXJlY3Qoc3RhdGUudm0oKSwgY2xpZW50RGF0
YS5idWlsdGluTmFtZXMoKS5tZWRpYVN0cmVhbVRyYWNrQ29uc3RyYWludHNQcml2YXRlTmFtZSgp
LCBhcmd1bWVudCwgRG9udEVudW0pOwotCi0gICAgICAgIGF1dG8gY29uc3RyYWludHNEaWN0aW9u
YXJ5ID0gRGljdGlvbmFyeSgmc3RhdGUsIGFyZ3VtZW50KTsKLSAgICAgICAgaWYgKCFjb25zdHJh
aW50c0RpY3Rpb25hcnkuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgIHBhcnNlTWVk
aWFDb25zdHJhaW50c0RpY3Rpb25hcnkoY29uc3RyYWludHNEaWN0aW9uYXJ5LCBtYW5kYXRvcnlD
b25zdHJhaW50cywgYWR2YW5jZWRDb25zdHJhaW50cyk7Ci0gICAgICAgIHZhbGlkID0gIWFkdmFu
Y2VkQ29uc3RyYWludHMuaXNFbXB0eSgpIHx8ICFtYW5kYXRvcnlDb25zdHJhaW50cy5pc0VtcHR5
KCk7Ci0gICAgfQotCi0gICAgYXV0byBkZWZlcnJlZFByb21pc2UgPSBjcmVhdGVEZWZlcnJlZFBy
b21pc2Uoc3RhdGUsIGRvbVdpbmRvdygpKTsKLSAgICBhdXRvIHByb21pc2UgPSBkZWZlcnJlZFBy
b21pc2UtPnByb21pc2UoKTsKLQotICAgIGF1dG8gY29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFp
bnRzSW1wbDo6Y3JlYXRlKFdURk1vdmUobWFuZGF0b3J5Q29uc3RyYWludHMpLCBXVEZNb3ZlKGFk
dmFuY2VkQ29uc3RyYWludHMpLCB2YWxpZCk7Ci0gICAgd3JhcHBlZCgpLmFwcGx5Q29uc3RyYWlu
dHMoV1RGTW92ZShjb25zdHJhaW50cyksIFdURk1vdmUoZGVmZXJyZWRQcm9taXNlKSk7Ci0KLSAg
ICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNWYWx1ZSBKU01lZGlhU3RyZWFtVHJhY2s6OmdldENv
bnN0cmFpbnRzKEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgSlNWTUNsaWVudERhdGEmIGNsaWVu
dERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihzdGF0ZS52bSgpLmNsaWVudERh
dGEpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0RGlyZWN0KHN0YXRlLnZtKCksIGNsaWVudERh
dGEuYnVpbHRpbk5hbWVzKCkubWVkaWFTdHJlYW1UcmFja0NvbnN0cmFpbnRzUHJpdmF0ZU5hbWUo
KSk7Ci0gICAgcmV0dXJuICFyZXN1bHQuaXNFbXB0eSgpID8gcmVzdWx0IDoganNVbmRlZmluZWQo
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCA0YzJkYWNiYmFh
NzQxOThlMGUzMTNmM2RiNTRkZmMwNzY4MzI0YmZiLi4wZTQ5NjBkNjQwMGI2OGYxOTFiNWFmNzdj
MjFmYWQzMTI0ZTI5ZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC0yOCw2ICsyOCw3IEBAIHBhY2thZ2UgQ29kZUdlbmVyYXRv
cjsKIAogdXNlIHN0cmljdDsKIAordXNlIEZpbGU6OkJhc2VuYW1lOwogdXNlIEZpbGU6OkZpbmQ7
CiB1c2UgQ2FycCBxdzxsb25nbWVzcz47CiB1c2UgRGF0YTo6RHVtcGVyOwpAQCAtMjAzLDExICsy
MDQsMjQgQEAgc3ViIFByb2Nlc3NEb2N1bWVudAogCiAgICAgbXkgJGRpY3Rpb25hcmllcyA9ICR1
c2VEb2N1bWVudC0+ZGljdGlvbmFyaWVzOwogICAgIGlmIChAJGRpY3Rpb25hcmllcykgewotICAg
ICAgICBkaWUgIk11bHRpcGxlIHN0YW5kYWxvbmUgZGljdGlvbmFyaWVzIHBlciBkb2N1bWVudCBh
cmUgbm90IHN1cHBvcnRlZCIgaWYgQCRkaWN0aW9uYXJpZXMgPiAxOworICAgICAgICBteSAkZGlj
dGlvbmFyeTsKKyAgICAgICAgbXkgJG90aGVyRGljdGlvbmFyaWVzOworICAgICAgICBpZiAoQCRk
aWN0aW9uYXJpZXMgPT0gMSkgeworICAgICAgICAgICAgJGRpY3Rpb25hcnkgPSBAJGRpY3Rpb25h
cmllc1swXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG15ICRwcmltYXJ5RGljdGlv
bmFyeU5hbWUgPSBmaWxlcGFyc2UoJHRhcmdldElkbEZpbGVQYXRoLCAiLmlkbCIpOworICAgICAg
ICAgICAgZm9yIG15ICRjYW5kaWRhdGUgKEAkZGljdGlvbmFyaWVzKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCRjYW5kaWRhdGUtPnR5cGUtPm5hbWUgZXEgJHByaW1hcnlEaWN0aW9uYXJ5TmFtZSkg
eworICAgICAgICAgICAgICAgICAgICAkZGljdGlvbmFyeSA9ICRjYW5kaWRhdGU7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaCBAJG90aGVyRGljdGlv
bmFyaWVzLCAkY2FuZGlkYXRlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGRpZSAiTXVsdGlwbGUgZGljdGlvbmFyaWVzIHBlciBkb2N1bWVudCBhcmUgb25s
eSBzdXBwb3J0ZWQgaWYgb25lIG1hdGNoZXMgdGhlIGZpbGVuYW1lIiB1bmxlc3MgJGRpY3Rpb25h
cnk7CisgICAgICAgIH0KIAotICAgICAgICBteSAkZGljdGlvbmFyeSA9IEAkZGljdGlvbmFyaWVz
WzBdOwogICAgICAgICBwcmludCAiR2VuZXJhdGluZyAkdXNlR2VuZXJhdG9yIGJpbmRpbmdzIGNv
ZGUgZm9yIElETCBkaWN0aW9uYXJ5IFwiIiAuICRkaWN0aW9uYXJ5LT50eXBlLT5uYW1lIC4gIlwi
Li4uXG4iIGlmICR2ZXJib3NlOwotICAgICAgICAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVEaWN0
aW9uYXJ5KCRkaWN0aW9uYXJ5LCAkdXNlRG9jdW1lbnQtPmVudW1lcmF0aW9ucyk7CisgICAgICAg
ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZURpY3Rpb25hcnkoJGRpY3Rpb25hcnksICR1c2VEb2N1
bWVudC0+ZW51bWVyYXRpb25zLCAkb3RoZXJEaWN0aW9uYXJpZXMpOwogICAgICAgICAkY29kZUdl
bmVyYXRvci0+V3JpdGVEYXRhKCRkaWN0aW9uYXJ5LCAkdXNlT3V0cHV0RGlyLCAkdXNlT3V0cHV0
SGVhZGVyc0Rpcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDIxOGUwN2ZkYzk4
NDgwODZlYWJjNGVhZjAyY2NiN2ExNDE4NTgyYjAuLjdjMTk0NTRiZWYxMjljODUyN2MzNTQ1YTJh
YzI5OTFkMWQ4ZWJhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC01MCw3ICs1MCw2IEBAIG15IEBpbXBsQ29udGVudCA9
ICgpOwogbXkgJWltcGxJbmNsdWRlcyA9ICgpOwogbXkgQGRlcHNDb250ZW50ID0gKCk7CiBteSAk
bnVtQ2FjaGVkQXR0cmlidXRlcyA9IDA7Ci1teSAkY3VycmVudENhY2hlZEF0dHJpYnV0ZSA9IDA7
CiAKIG15ICRiZWdpbkFwcGxlQ29weXJpZ2h0Rm9ySGVhZGVyRmlsZXMgPSA8PEVORDsKIC8vIC0t
LS0tLS0gQmVnaW4gQXBwbGUgQ29weXJpZ2h0IC0tLS0tLS0KQEAgLTE0MywxMSArMTQyLDExIEBA
IHN1YiBHZW5lcmF0ZUVudW1lcmF0aW9uCiAKIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnkKIHsKLSAg
ICBteSAoJG9iamVjdCwgJGRpY3Rpb25hcnksICRlbnVtZXJhdGlvbnMpID0gQF87CisgICAgbXkg
KCRvYmplY3QsICRkaWN0aW9uYXJ5LCAkZW51bWVyYXRpb25zLCAkb3RoZXJEaWN0aW9uYXJpZXMp
ID0gQF87CiAKICAgICBteSAkY2xhc3NOYW1lID0gR2V0RGljdGlvbmFyeUNsYXNzTmFtZSgkZGlj
dGlvbmFyeS0+dHlwZSk7Ci0gICAgJG9iamVjdC0+R2VuZXJhdGVEaWN0aW9uYXJ5SGVhZGVyKCRk
aWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkZW51bWVyYXRpb25zKTsKLSAgICAkb2JqZWN0LT5HZW5l
cmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbigkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGVu
dW1lcmF0aW9ucyk7CisgICAgJG9iamVjdC0+R2VuZXJhdGVEaWN0aW9uYXJ5SGVhZGVyKCRkaWN0
aW9uYXJ5LCAkY2xhc3NOYW1lLCAkZW51bWVyYXRpb25zLCAkb3RoZXJEaWN0aW9uYXJpZXMpOwor
ICAgICRvYmplY3QtPkdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uKCRkaWN0aW9uYXJ5
LCAkY2xhc3NOYW1lLCAkZW51bWVyYXRpb25zLCAkb3RoZXJEaWN0aW9uYXJpZXMpOwogfQogCiBz
dWIgR2VuZXJhdGVDYWxsYmFja0Z1bmN0aW9uCkBAIC0xMjI0LDcgKzEyMjMsNyBAQCBzdWIgR2Vu
ZXJhdGVEaWN0aW9uYXJpZXNIZWFkZXJDb250ZW50CiAKICAgICBteSAkcmVzdWx0ID0gIiI7CiAg
ICAgZm9yZWFjaCBteSAkZGljdGlvbmFyeSAoQCRhbGxEaWN0aW9uYXJpZXMpIHsKLSAgICAgICAg
JGhlYWRlckluY2x1ZGVzeyRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAiLmgifSA9IDE7CisgICAg
ICAgICRoZWFkZXJJbmNsdWRlc3skaW50ZXJmYWNlLT50eXBlLT5uYW1lIC4gIi5oIn0gPSAxIGlm
ICRpbnRlcmZhY2U7CiAgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXREaWN0aW9uYXJ5Q2xhc3NO
YW1lKCRkaWN0aW9uYXJ5LT50eXBlLCAkaW50ZXJmYWNlKTsKICAgICAgICAgbXkgJGNvbmRpdGlv
bmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRp
Y3Rpb25hcnkpOwogICAgICAgICAkcmVzdWx0IC49IEdlbmVyYXRlRGljdGlvbmFyeUhlYWRlckNv
bnRlbnQoJGRpY3Rpb25hcnksICRjbGFzc05hbWUsICRjb25kaXRpb25hbFN0cmluZyk7CkBAIC0z
Mzk4LDEwICszMzk3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTIiAuICRjb25zdHJ1Y3Rv
clR5cGUgLiAiOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS52bSgpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTtcbiIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgbXkgJGNhY2hlSW5kZXggPSAwOwogICAgICAgICAgICAgICAgIGlmICgk
YXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWNoZWRBdHRyaWJ1dGV9KSB7Ci0gICAg
ICAgICAgICAgICAgICAgICRjYWNoZUluZGV4ID0gJGN1cnJlbnRDYWNoZWRBdHRyaWJ1dGU7Ci0g
ICAgICAgICAgICAgICAgICAgICRjdXJyZW50Q2FjaGVkQXR0cmlidXRlKys7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVl
ID0gdGhpc09iamVjdC5tXyIgLiAkYXR0cmlidXRlLT5uYW1lIC4gIi5nZXQoKSlcbiIpOwogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGNhY2hl
ZFZhbHVlO1xuIik7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDUzNyw3ICs0NTMzLDcgQEAgc3Vi
IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAKIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXIK
IHsKLSAgICBteSAoJG9iamVjdCwgJGRpY3Rpb25hcnksICRjbGFzc05hbWUsICRlbnVtZXJhdGlv
bnMpID0gQF87CisgICAgbXkgKCRvYmplY3QsICRkaWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkZW51
bWVyYXRpb25zLCAkb3RoZXJEaWN0aW9uYXJpZXMpID0gQF87CiAKICAgICAjIC0gQWRkIGRlZmF1
bHQgaGVhZGVyIHRlbXBsYXRlIGFuZCBoZWFkZXIgcHJvdGVjdGlvbi4KICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50SGVhZGVyLCBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFkZXIoJGRpY3Rpb25hcnkp
KTsKQEAgLTQ1NDgsNiArNDU0NCw3IEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXIKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG5uYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIpOwogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsIEdlbmVyYXRlRGljdGlvbmFyeUhlYWRlckNvbnRlbnQoJGRp
Y3Rpb25hcnksICRjbGFzc05hbWUpKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0
ZUVudW1lcmF0aW9uc0hlYWRlckNvbnRlbnQoJGRpY3Rpb25hcnksICRlbnVtZXJhdGlvbnMpKTsK
KyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZURpY3Rpb25hcmllc0hlYWRlckNvbnRl
bnQodW5kZWYsICRvdGhlckRpY3Rpb25hcmllcykpIGlmICRvdGhlckRpY3Rpb25hcmllczsKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxuIik7CiAKICAg
ICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRp
b25hbFN0cmluZygkZGljdGlvbmFyeSk7CkBAIC00NTcwLDE1ICs0NTY3LDE2IEBAIHN1YiBHZW5l
cmF0ZURpY3Rpb25hcnlIZWFkZXIKIAogc3ViIEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0
aW9uCiB7Ci0gICAgbXkgKCRvYmplY3QsICRkaWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkZW51bWVy
YXRpb25zKSA9IEBfOworICAgIG15ICgkb2JqZWN0LCAkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwg
JGVudW1lcmF0aW9ucywgJG90aGVyRGljdGlvbmFyaWVzKSA9IEBfOwogCiAgICAgIyAtIEFkZCBk
ZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQogICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcigkZGljdGlvbmFyeSkpOwogCiAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJcbnVzaW5nIG5hbWVzcGFjZSBKU0M7XG5cbiIpOwogICAgIHB1c2go
QGltcGxDb250ZW50LCAibmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKLSAgICBwdXNoKEBpbXBs
Q29udGVudCwgR2VuZXJhdGVFbnVtZXJhdGlvbnNJbXBsZW1lbnRhdGlvbkNvbnRlbnQoJGRpY3Rp
b25hcnksICRlbnVtZXJhdGlvbnMpKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVE
aWN0aW9uYXJ5SW1wbGVtZW50YXRpb25Db250ZW50KCRkaWN0aW9uYXJ5LCAkY2xhc3NOYW1lKSk7
CisgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlRW51bWVyYXRpb25zSW1wbGVtZW50YXRp
b25Db250ZW50KCRkaWN0aW9uYXJ5LCAkZW51bWVyYXRpb25zKSk7CisgICAgcHVzaChAaW1wbENv
bnRlbnQsIEdlbmVyYXRlRGljdGlvbmFyaWVzSW1wbGVtZW50YXRpb25Db250ZW50KHVuZGVmLCAk
b3RoZXJEaWN0aW9uYXJpZXMpKSBpZiAkb3RoZXJEaWN0aW9uYXJpZXM7CiAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG4iKTsKIAogICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRk
aWN0aW9uYXJ5KTsKQEAgLTU2MDMsMTAgKzU2MDEsOSBAQCBzdWIgV3JpdGVEYXRhCiAgICAgbXkg
JG91dHB1dERpciA9IHNoaWZ0OwogCiAgICAgbXkgJG5hbWUgPSAkaW50ZXJmYWNlLT50eXBlLT5u
YW1lOwotICAgIG15ICRwcmVmaXggPSBGaWxlTmFtZVByZWZpeDsKLSAgICBteSAkaGVhZGVyRmls
ZU5hbWUgPSAiJG91dHB1dERpci8kcHJlZml4JG5hbWUuaCI7Ci0gICAgbXkgJGltcGxGaWxlTmFt
ZSA9ICIkb3V0cHV0RGlyLyRwcmVmaXgkbmFtZS5jcHAiOwotICAgIG15ICRkZXBzRmlsZU5hbWUg
PSAiJG91dHB1dERpci8kcHJlZml4JG5hbWUuZGVwIjsKKyAgICBteSAkaGVhZGVyRmlsZU5hbWUg
PSAiJG91dHB1dERpci9KUyRuYW1lLmgiOworICAgIG15ICRpbXBsRmlsZU5hbWUgPSAiJG91dHB1
dERpci9KUyRuYW1lLmNwcCI7CisgICAgbXkgJGRlcHNGaWxlTmFtZSA9ICIkb3V0cHV0RGlyL0pT
JG5hbWUuZGVwIjsKIAogICAgICMgVXBkYXRlIGEgLmNwcCBmaWxlIGlmIHRoZSBjb250ZW50cyBh
cmUgY2hhbmdlZC4KICAgICBteSAkY29udGVudHMgPSBqb2luICIiLCBAaW1wbENvbnRlbnRIZWFk
ZXI7CkBAIC01NjU5LDcgKzU2NTYsNyBAQCBzdWIgV3JpdGVEYXRhCiAgICAgfQogICAgIGZvcmVh
Y2ggbXkgJGluY2x1ZGUgKHNvcnQgQGluY2x1ZGVzKSB7CiAgICAgICAgICMgIkpTQ2xhc3NOYW1l
LmgiIGlzIGFscmVhZHkgaW5jbHVkZWQgcmlnaHQgYWZ0ZXIgY29uZmlnLmguCi0gICAgICAgIG5l
eHQgaWYgJGluY2x1ZGUgZXEgIlwiJHByZWZpeCRuYW1lLmhcIiI7CisgICAgICAgIG5leHQgaWYg
JGluY2x1ZGUgZXEgIlwiSlMkbmFtZS5oXCIiOwogICAgICAgICAkY29udGVudHMgLj0gIiNpbmNs
dWRlICRpbmNsdWRlXG4iOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKaW5kZXggNjE0MzViYzQwNjg5NTc5ZDAy
ZGE5MTY3Zjc0ZGI0ZTgyODkwMGE0OS4uMTA0OGE1MTJlNTNkYzgzYWNlY2FmNDhjZDBhYjJmNGEy
OTdlYzVjZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5l
cmF0ZS1iaW5kaW5ncy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dl
bmVyYXRlLWJpbmRpbmdzLnBsCkBAIC04Miw3ICs4Miw3IEBAICR0YXJnZXRJZGxGaWxlID0gQ3dk
OjpyZWFscGF0aCgkdGFyZ2V0SWRsRmlsZSk7CiBpZiAoJHZlcmJvc2UpIHsKICAgICBwcmludCAi
JGdlbmVyYXRvcjogJHRhcmdldElkbEZpbGVcbiI7CiB9Ci1teSAkdGFyZ2V0SW50ZXJmYWNlTmFt
ZSA9IGZpbGVwYXJzZShiYXNlbmFtZSgkdGFyZ2V0SWRsRmlsZSksICIuaWRsIik7CitteSAkdGFy
Z2V0SW50ZXJmYWNlTmFtZSA9IGZpbGVwYXJzZSgkdGFyZ2V0SWRsRmlsZSwgIi5pZGwiKTsKIAog
bXkgJGlkbEZvdW5kID0gMDsKIG15IEBzdXBwbGVtZW50ZWRJZGxGaWxlczsKQEAgLTEwMCw3ICsx
MDAsNyBAQCBpZiAoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKSB7CiAgICAgb3BlbiBGSCwg
IjwgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlIiBvciBkaWUgIkNhbm5vdCBvcGVuICRzdXBw
bGVtZW50YWxEZXBlbmRlbmN5RmlsZVxuIjsKICAgICB3aGlsZSAobXkgJGxpbmUgPSA8Rkg+KSB7
CiAgICAgICAgIG15ICgkaWRsRmlsZSwgQGZvbGxvd2luZ0lkbEZpbGVzKSA9IHNwbGl0KC9ccysv
LCAkbGluZSk7Ci0gICAgICAgIGlmICgkaWRsRmlsZSBhbmQgYmFzZW5hbWUoJGlkbEZpbGUpIGVx
IGJhc2VuYW1lKCR0YXJnZXRJZGxGaWxlKSkgeworICAgICAgICBpZiAoJGlkbEZpbGUgYW5kIGZp
bGVwYXJzZSgkaWRsRmlsZSkgZXEgZmlsZXBhcnNlKCR0YXJnZXRJZGxGaWxlKSkgewogICAgICAg
ICAgICAgJGlkbEZvdW5kID0gMTsKICAgICAgICAgICAgIEBzdXBwbGVtZW50ZWRJZGxGaWxlcyA9
IHNvcnQgQGZvbGxvd2luZ0lkbEZpbGVzOwogICAgICAgICB9CkBAIC0xMTIsNyArMTEyLDcgQEAg
aWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSkgewogICAgICMgZGVwZW5kZW5jeSBmaWxl
KSBidXQgc2hvdWxkIGdlbmVyYXRlIC5oIGFuZCAuY3BwIGZpbGVzLgogICAgIGlmICghJGlkbEZv
dW5kIGFuZCAkYWRkaXRpb25hbElkbEZpbGVzKSB7CiAgICAgICAgIG15IEBpZGxGaWxlcyA9IHNo
ZWxsd29yZHMoJGFkZGl0aW9uYWxJZGxGaWxlcyk7Ci0gICAgICAgICRpZGxGb3VuZCA9IGdyZXAg
eyAkXyBhbmQgYmFzZW5hbWUoJF8pIGVxIGJhc2VuYW1lKCR0YXJnZXRJZGxGaWxlKSB9IEBpZGxG
aWxlczsKKyAgICAgICAgJGlkbEZvdW5kID0gZ3JlcCB7ICRfIGFuZCBmaWxlcGFyc2UoJF8pIGVx
IGZpbGVwYXJzZSgkdGFyZ2V0SWRsRmlsZSkgfSBAaWRsRmlsZXM7CiAgICAgfQogCiAgICAgaWYg
KCEkaWRsRm91bmQpIHsKQEAgLTEzMCwxMyArMTMwLDEzIEBAIG15ICR0YXJnZXREb2N1bWVudCA9
ICR0YXJnZXRQYXJzZXItPlBhcnNlKCR0YXJnZXRJZGxGaWxlLCAkZGVmaW5lcywgJHByZXByb2Nl
c3NvCiAKIGlmICgkaWRsQXR0cmlidXRlc0ZpbGUpIHsKICAgICBteSAkaWRsQXR0cmlidXRlcyA9
IGxvYWRJRExBdHRyaWJ1dGVzKCRpZGxBdHRyaWJ1dGVzRmlsZSk7Ci0gICAgY2hlY2tJRExBdHRy
aWJ1dGVzKCRpZGxBdHRyaWJ1dGVzLCAkdGFyZ2V0RG9jdW1lbnQsIGJhc2VuYW1lKCR0YXJnZXRJ
ZGxGaWxlKSk7CisgICAgY2hlY2tJRExBdHRyaWJ1dGVzKCRpZGxBdHRyaWJ1dGVzLCAkdGFyZ2V0
RG9jdW1lbnQsIGZpbGVwYXJzZSgkdGFyZ2V0SWRsRmlsZSkpOwogfQogCiBmb3JlYWNoIG15ICRp
ZGxGaWxlIChAc3VwcGxlbWVudGVkSWRsRmlsZXMpIHsKICAgICBuZXh0IGlmICRpZGxGaWxlIGVx
ICR0YXJnZXRJZGxGaWxlOwogCi0gICAgbXkgJGludGVyZmFjZU5hbWUgPSBmaWxlcGFyc2UoYmFz
ZW5hbWUoJGlkbEZpbGUpLCAiLmlkbCIpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gZmlsZXBh
cnNlKCRpZGxGaWxlLCAiLmlkbCIpOwogICAgIG15ICRwYXJzZXIgPSBJRExQYXJzZXItPm5ldygh
JHZlcmJvc2UpOwogICAgIG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNlKCRpZGxGaWxlLCAk
ZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CiAKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdWIgbG9hZElE
TEF0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICAkaWRsQXR0cmlidXRlc3skbmFtZX17IlZBTFVF
X0lTX01JU1NJTkcifSA9IDE7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBkaWUgIlRoZSBmb3JtYXQgb2YgIiAuIGJhc2VuYW1lKCRpZGxBdHRyaWJ1dGVzRmls
ZSkgLiAiIGlzIHdyb25nOiBsaW5lICQuXG4iOworICAgICAgICAgICAgZGllICJUaGUgZm9ybWF0
IG9mICIgLiBmaWxlcGFyc2UoJGlkbEF0dHJpYnV0ZXNGaWxlKSAuICIgaXMgd3Jvbmc6IGxpbmUg
JC5cbiI7CiAgICAgICAgIH0KICAgICB9CiAgICAgY2xvc2UgRkg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKaW5kZXgg
MGU3MTkyMTVkZGFiYjdkZmY5MmM4YWIxZTU3YWYyZDY3ZDAwODBhYS4uMDEwZmJjMzdkYWJhYzhk
ZmZmODc4ZmVhMTFmNzA0YzU5MGQwNjJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAtMjksMTggKzI5LDEy
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgTWVkaWFDb25zdHJhaW50c19oCi0j
ZGVmaW5lIE1lZGlhQ29uc3RyYWludHNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0
cmFpbnRzLmgiCiAjaW5jbHVkZSA8Y3N0ZGxpYj4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDk1LDcgKzQ4OSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgYXBwZW5kRXhhY3QoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICB7Ci0g
ICAgICAgIG1fZXhhY3QuY2xlYXIoKTsKICAgICAgICAgbV9leGFjdC5hcHBlbmQodmFsdWUpOwog
ICAgIH0KIApAQCAtODEzLDUgKzgwNiwzIEBAIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTUVESUFD
T05TVFJBSU5UKFN0cmluZ0NvbnN0cmFpbnQsIGlzU3RyaW5nKCkpCiBTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX01FRElBQ09OU1RSQUlOVChCb29sZWFuQ29uc3RyYWludCwgaXNCb29sZWFuKCkpCiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTWVkaWFDb25zdHJh
aW50c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXggNWViZjQ3YzFmMjFiMTNm
MWE5NDZkMGVhOTRkMmQ0NDU1NDk4ZWEzZS4uOTFjOTBiNTIwNGQyZTVjOTA1NWQ2ZTIzZGM2ZmRh
MzJkZmFmNzQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcApAQCAtMTMwLDcgKzEz
MCw2IEBAIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OmNsb25lKCkKICAgICBhdXRvIGNsb25lZE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlID0gY3Jl
YXRlKG1fc291cmNlLmNvcHlSZWYoKSk7CiAgICAgY2xvbmVkTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUtPm1faXNFbmFibGVkID0gdGhpcy0+bV9pc0VuYWJsZWQ7CiAgICAgY2xvbmVkTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUtPm1faXNFbmRlZCA9IHRoaXMtPm1faXNFbmRlZDsKLSAgICBjbG9uZWRN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS0+bV9jb25zdHJhaW50cyA9IHRoaXMtPm1fY29uc3RyYWlu
dHM7CiAKICAgICByZXR1cm4gY2xvbmVkTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7CiB9CkBAIC0x
NDAsMTEgKzEzOSw2IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6OnR5cGUoKSBjb25zdAogICAgIHJldHVybiBtX3NvdXJjZS0+dHlwZSgpOwogfQog
Ci1SZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNvbnN0
cmFpbnRzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb25zdHJhaW50czsKLX0KLQogY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0
dGluZ3MoKSBjb25zdAogewogICAgIHJldHVybiBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oCmluZGV4IDFmODNkOGRlOGE4MGY3ZmUzMDkzMmFlYzgwZDRiMDBj
ZDc4YTJjYTUuLmRhNDEyODcwNGQzNTQ5YjM1OTBiZjRlMTk1YzdkODNjZjdiYmY0OTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaApAQCAtMjQsMTQgKzI0LDExIEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLSNpZm5kZWYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVfaAotI2RlZmluZSBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC05MCw3ICs4Nyw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Q7CiAgICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0Owog
Ci0gICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKCkgY29uc3Q7CiAgICAg
dm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpTdWNjZXNzSGFuZGxlciwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFpbHVyZUhh
bmRsZXIpOwogCiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigp
OwpAQCAtMTEwLDcgKzEwNiw2IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBt
X29ic2VydmVyczsKICAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7Ci0gICAg
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2VQcmV2aWV3PiBtX3ByZXZpZXc7CiAKICAgICBTdHJpbmcgbV9pZDsKQEAg
LTEyMyw1ICsxMTgsMyBAQCB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+PiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvcjsKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggNzM0YzEwNWEyZmViMmU5MTMwMGI0MTlkMGJhZGE2MzE5
MzAwYThlYy4uN2YxMWRjN2EzOTVhZmRiZDRjMjNmZTlmODY3MDhhOGU4ZWRmZTU3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGY4OTcwZjI2ZmFhNDU5ZjIxZmVmYzFkM2JhNGM4NWU4NGQzN2U4NzguLjAyMDY5MGJi
ZjM1ZTZmYjdhZjExMmQ0MTJkMDEwNTM2MmJlZjZkYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxNi0xMi0xNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVt
b3ZlIGN1c3RvbSBiaW5kaW5nIGZvciBNZWRpYURldmljZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTg5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dDogRXhwZWN0IHRoZSBleGNlcHRpb24gdGhlCisg
ICAgICAgIGdlbmVyYXRlZCBiaW5kaW5ncyBjb2RlIHRocm93cywgcmF0aGVyIHRoYW4gdGhlIGRp
ZmZlcmVudCBvbmUgdGhlIGhhbmQtd3JpdHRlbiBiaW5kaW5nCisgICAgICAgIHdhcyB0aHJvd2lu
ZyBiZWZvcmUuCisKIDIwMTYtMTItMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKICAgICAgICAgW0dUS10gU3VwcG9ydCBsYXRlc3QgU3VidGxlQ3J5cHRvIEhNQUMg
QVBJcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQKaW5kZXggZjc3ZDY5Y2Vi
YTAxOWQxOTg1NjBmY2UxZTUxZGNkMzc4MmYzNmE0Yy4uY2JhNTc4NmIzM2MxOTZlMTI5MDE2MDk5
NzdmZGNkMGNlZmY5MzE5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0
CkBAIC01LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNTIHR5cGVvZiBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLndlYmtpdEdldFVzZXJNZWRpYSBpcyAndW5kZWZpbmVkJwog
UEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pLnRo
ZW4oZ290U3RyZWFtMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMKK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoKSByZWplY3RlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIFBB
U1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe30pIHJlamVjdGVkIHdpdGgg
ZXJyb3I6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYS5hcHBseSh1bmRlZmluZWQpIHJlamVjdGVkIHdpdGggZXJyb3I6IFR5cGVF
cnJvcjogQ2FuIG9ubHkgY2FsbCBNZWRpYURldmljZXMuZ2V0VXNlck1lZGlhIG9uIGluc3RhbmNl
cyBvZiBNZWRpYURldmljZXMKIFBBU1MgU3RyZWFtIGdlbmVyYXRlZC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>