<?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>177455</bug_id>
          
          <creation_ts>2017-09-25 12:29:11 -0700</creation_ts>
          <short_desc>Make StoredCredentials an enum class and rename its header</short_desc>
          <delta_ts>2017-09-27 12:18:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>177474</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352327</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 12:29:11 -0700</bug_when>
    <thetext>Make StoredCredentials an enum class and rename its header for clarity. This was error-prone because 0 meant &quot;allow&quot; and and 1 meant &quot;do not allow&quot;. It was trivial to convert it to a boolean by mistake and get the opposite behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352332</commentid>
    <comment_count>1</comment_count>
      <attachid>321720</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 12:31:49 -0700</bug_when>
    <thetext>Created attachment 321720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352415</commentid>
    <comment_count>2</comment_count>
      <attachid>321720</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-25 14:17:48 -0700</bug_when>
    <thetext>Comment on attachment 321720
Patch

Clearing flags on attachment: 321720

Committed r222467: &lt;http://trac.webkit.org/changeset/222467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352416</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-25 14:17:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352702</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 09:59:34 -0700</bug_when>
    <thetext>Forgot enum *class*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352704</commentid>
    <comment_count>5</comment_count>
      <attachid>321830</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 10:02:47 -0700</bug_when>
    <thetext>Created attachment 321830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352812</commentid>
    <comment_count>6</comment_count>
      <attachid>321830</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 13:36:33 -0700</bug_when>
    <thetext>Comment on attachment 321830
Patch

Clearing flags on attachment: 321830

Committed r222519: &lt;http://trac.webkit.org/changeset/222519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352813</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 13:36:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353271</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:18:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/34692984&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321720</attachid>
            <date>2017-09-25 12:31:49 -0700</date>
            <delta_ts>2017-09-26 15:35:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177455-20170925123148.patch</filename>
            <type>text/plain</type>
            <size>123875</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUxZTgyNmE3YTIzMmVm
NjJmNTNiZmYzNTQwNDg3NWM4YWUzZWYwZC4uMGZkMDZiYmIwOTMyYzdjZDg2OGY1OWY0YzUyNjQ3
YmMzNTYxYTRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE3LTA5LTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBTdG9yZWRDcmVkZW50
aWFscyBhbiBlbnVtIGNsYXNzIGFuZCByZW5hbWUgaXRzIGhlYWRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDU1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTdG9yZWRDcmVkZW50aWFscyBh
biBlbnVtIGNsYXNzIGFuZCByZW5hbWUgaXRzIGhlYWRlciBmb3IgY2xhcml0eS4gVGhpcyB3YXMg
ZXJyb3ItcHJvbmUgYmVjYXVzZSAwIG1lYW50CisgICAgICAgICJhbGxvdyIgYW5kIGFuZCAxIG1l
YW50ICJkbyBub3QgYWxsb3ciLiBJdCB3YXMgdHJpdmlhbCB0byBjb252ZXJ0IGl0IHRvIGEgYm9v
bGVhbiBieSBtaXN0YWtlIGFuZCBnZXQgdGhlCisgICAgICAgIG9wcG9zaXRlIGJlaGF2aW9yLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1w
b3J0OjpyZXF1ZXN0U3R5bGVTaGVldCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2spOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZSk6CisgICAgICAgICog
bG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oOgorICAgICAgICAqIGxvYWRlci9Dcm9z
c09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmln
aW5QcmVmbGlnaHRDaGVja2VyOjp2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6ZG9QcmVmbGlnaHQpOgorICAg
ICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NS
ZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGU6OmNhblNraXBQcmVmbGlnaHQpOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0
ZW0pOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2lu
QWNjZXNzUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6Om1ha2VTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cHJlZmxpZ2h0U3VjY2Vzcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KToK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorICAgICAg
ICAqIGxvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcik6CisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyOjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlck9wdGlvbnM6OlJlc291cmNlTG9hZGVyT3B0aW9ucyk6CisgICAgICAgICog
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291
cmNlTG9hZGVyOjpjaGVja1Jlc3BvbnNlQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpjaGVja1JlZGlyZWN0aW9uQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sKToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6aXNvbGF0ZWRDb3B5
IGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMpOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4p
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGb3JBY2Nl
c3NDb250cm9sKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjo6c3RhcnRMb2Fk
aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVnaXN0cnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRCbG9iUmVzb3VyY2VT
eW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZVR5cGVzLmguCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUGVuZGluZ1Jlc291cmNlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6bG9hZFBlbmRpbmdJbWFnZSk6CisgICAgICAgICogeG1sL1hTTFRQ
cm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgor
ICAgICAgICAqIHhtbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZW5GdW5jKToKKwogMjAxNy0wOS0yNSAgTXMyZ2VyICA8TXMyZ2VyQGln
YWxpYS5jb20+CiAKICAgICAgICAgVXBkYXRlIHdhaXRTeW5jIGFuZCB0aGUgVElNRU9VVF9JR05P
UkVEIGNvbnN0YW50IHRvIHVzZSBzaWduZWQgaW50ZWdlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0YTM2YjQ2
MzRmMzFmNWYwZDRiNWZlZGQxNDA4MmRiNDk4YWM3YWYuLjIzMWI5OTMwOWJiOTkyMDRlMGFiM2Ez
YWE2NjlhYTk4ZTU3N2ViY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTctMDktMjUg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFN0b3JlZENy
ZWRlbnRpYWxzIGFuIGVudW0gY2xhc3MgYW5kIHJlbmFtZSBpdHMgaGVhZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFN0b3JlZENyZWRlbnRp
YWxzIGFuIGVudW0gY2xhc3MgYW5kIHJlbmFtZSBpdHMgaGVhZGVyIGZvciBjbGFyaXR5LiBUaGlz
IHdhcyBlcnJvci1wcm9uZSBiZWNhdXNlIDAgbWVhbnQKKyAgICAgICAgImFsbG93IiBhbmQgYW5k
IDEgbWVhbnQgImRvIG5vdCBhbGxvdyIuIEl0IHdhcyB0cml2aWFsIHRvIGNvbnZlcnQgaXQgdG8g
YSBib29sZWFuIGJ5IG1pc3Rha2UgYW5kIGdldCB0aGUKKyAgICAgICAgb3Bwb3NpdGUgYmVoYXZp
b3IuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZENvbXBs
ZXRlV2l0aEVycm9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2FkUGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Rh
dGFUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtEYXRhVGFzayk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza0Jsb2I6Ok5ldHdvcmtEYXRhVGFza0Jsb2IpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OnNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9QaW5nTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjp3aWxsUGVyZm9ybUhU
VFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjptYWtlQ3Jvc3NPcmln
aW5BY2Nlc3NSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6Om1ha2VTaW1wbGVD
cm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6bWFr
ZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdFdpdGhQcmVmbGlnaHQpOgorICAgICAgICAoV2ViS2l0
OjpQaW5nTG9hZDo6cHJlZmxpZ2h0U3VjY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5OjpOZXR3
b3JrRGF0YVRhc2tSZXBsYXkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29h
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFz
a0NvY29hOjp+TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYTo6dHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1b
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIGV4aXN0aW5nVGFzazpdKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6ZGF0YVRhc2tGb3JJZGVudGlmaWVyKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpOZXR3b3JrRGF0YVRhc2tTb3VwKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlQXV0aGVudGljYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y29udGludWVIVFRQUmVkaXJlY3Rpb24p
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2FkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAxNy0wOS0y
NCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAg
Vmlld3BvcnQgZml0IGlzIG5vIGxvbmdlciBleHBlcmltZW50YWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cK
aW5kZXggNWRhNzViNWUwMjQ0ZjQzNDJhMjM1ZmE5ZmM4NjRlYWM2NzE4M2QxOS4uMTg0OWVmNThl
OWYyZWU5NDhjNDUyZDk0NmNjN2Y5ZTNlZWEzOTUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxNy0wOS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIE1ha2UgU3RvcmVkQ3JlZGVudGlhbHMgYW4gZW51bSBjbGFzcyBhbmQgcmVu
YW1lIGl0cyBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NzQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2UgU3RvcmVkQ3JlZGVudGlhbHMgYW4gZW51bSBjbGFzcyBhbmQgcmVuYW1lIGl0
cyBoZWFkZXIgZm9yIGNsYXJpdHkuIFRoaXMgd2FzIGVycm9yLXByb25lIGJlY2F1c2UgMCBtZWFu
dAorICAgICAgICAiYWxsb3ciIGFuZCBhbmQgMSBtZWFudCAiZG8gbm90IGFsbG93Ii4gSXQgd2Fz
IHRyaXZpYWwgdG8gY29udmVydCBpdCB0byBhIGJvb2xlYW4gYnkgbWlzdGFrZSBhbmQgZ2V0IHRo
ZQorICAgICAgICBvcHBvc2l0ZSBiZWhhdmlvci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDE3LTA5LTIxICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBDb21waWxlIGVy
cm9yLCBnZW5lcmF0ZS13ZWJraXR2ZXJzaW9uLnBsIHNjcmlwdCBub3QgZm91bmQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGYx
NDQ1ZTYzNzBmMDZlNjM1YzM3YTk3Y2E2NTBhOGVkNDg2ZTYyMy4uZDRjY2ZjZDE0MDEzZWI1YmE5
ZGMxZThjNWI4MWI1YTE1NmIzMWFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk2OSw2ICsxOTY5LDcgQEAKIAkJNDY3MUUw
NjUxRDY3QTU5NjAwQzZCNDk3IC8qIENhbnZhc1BhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3MUUwNjMxRDY3QTU3QjAwQzZCNDk3IC8qIENh
bnZhc1BhdGguY3BwICovOyB9OwogCQk0NjcxRTA2NjFENjdBNTk2MDBDNkI0OTcgLyogQ2FudmFz
UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3
MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLzsgfTsKIAkJNDY3MzAyMDIx
QzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3MzAy
MDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1l
bnRlci5oICovOyB9OworCQk0NjgyRDIwMDFGNzk3ODMwMDBDODYzREIgLyogU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2ODJEMUZGMUY3OTc4MjMwMEM4NjNEQiAvKiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2ODM0
NERGMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyog
RE9NUmVjdExpc3QuY3BwICovOyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2ODlGMUFGMTI2N0JBRTEwMEU4
RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQ3OSw3
ICsyNDgwLDYgQEAKIAkJNTFFM0FBMEIxQjk4QkNBQjAwMzZBRDgxIC8qIFNlY3VyaXR5T3JpZ2lu
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
M0FBMDkxQjk4QkM5QTAwMzZBRDgxIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRTNGOUM3MERBMDU5REMw
MDI1MDkxMSAvKiBTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxRTNGOUM1MERBMDU5REMwMDI1MDkxMSAvKiBTdG9yYWdlLmNwcCAqLzsg
fTsKIAkJNTFFM0Y5RDYwREEwNUUxRDAwMjUwOTExIC8qIEpTU3RvcmFnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUzRjlENDBEQTA1RTFEMDAy
NTA5MTEgLyogSlNTdG9yYWdlLmNwcCAqLzsgfTsKLQkJNTFFNDE0MzQxNkE2NTk2MzAwQzYzM0M3
IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxRTQxNDMyMTZBNjU5NTEwMEM2MzNDNyAvKiBSZXNvdXJjZUhhbmRs
ZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTFFNjgyMTAxNjM4NzMwMjAwM0JCRjNDIC8qIExvYWRlclN0cmF0ZWd5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUU2ODIwRjE2Mzg3MzAyMDAz
QkJGM0MgLyogTG9hZGVyU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1MUVFN0IzODFBQTUwQjA1MDBGOTJCMjEgLyogUmVzb3VyY2VM
b2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFFRTdCMzcxQUE1MEIwNTAwRjkyQjIxIC8qIFJlc291cmNlTG9hZEluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUVFN0IzQTFBQTUxMjMx
MDBGOTJCMjEgLyogUmVzb3VyY2VMb2FkSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVFN0IzOTFBQTUxMjMxMDBGOTJCMjEgLyogUmVzb3Vy
Y2VMb2FkSW5mby5jcHAgKi87IH07CkBAIC05ODIzLDYgKzk4MjMsNyBAQAogCQk0NjcxRTA2MzFE
NjdBNTdCMDBDNkI0OTcgLyogQ2FudmFzUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDYW52YXNQYXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDY3MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FudmFzUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxv
YWRDb3VudEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEln
bm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0NjgyRDFGRjFGNzk3ODIzMDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzQ0REMxRURE
RkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01SZWN0TGlzdC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM0NEREMUVEREZBNUYwMEI3Nzk1QiAvKiBE
T01SZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0TGlzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01S
ZWN0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTAzNzgsNyArMTAzNzksNiBAQAogCQk1MUUzRjlEMTBEQTA1RDcxMDAy
NTA5MTEgLyogU3RvcmFnZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3RvcmFnZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRTNGOUQ0MERBMDVFMUQwMDI1MDkxMSAv
KiBKU1N0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNT
dG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFM0Y5RDUwREEwNUUx
RDAwMjUwOTExIC8qIEpTU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1N0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFFNDE0MzIxNkE2
NTk1MTAwQzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VIYW5kbGVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MUU2ODIwRjE2Mzg3MzAyMDAzQkJGM0MgLyogTG9hZGVyU3RyYXRlZ3kuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGVyU3RyYXRlZ3kuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFFQUM1QjAxODE2M0Y0RTAwNEYxQkE0IC8qIElEQlJl
Y29yZElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUmVj
b3JkSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUVFN0IzNzFB
QTUwQjA1MDBGOTJCMjEgLyogUmVzb3VyY2VMb2FkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xOTQ5Niw3ICsxOTQ5Niw2IEBACiAJCQkJRTFCQTAwMzAxNkZCOTJBQzAwQkE3QTM1
IC8qIFJlc291cmNlSGFuZGxlQ2xpZW50LmNwcCAqLywKIAkJCQk1MTRDNzY2NTBDRTkyM0ExMDA3
RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVDbGllbnQuaCAqLywKIAkJCQk1MTRDNzY2NjBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oICovLAotCQkJCTUxRTQxNDMyMTZB
NjU5NTEwMEM2MzNDNyAvKiBSZXNvdXJjZUhhbmRsZVR5cGVzLmggKi8sCiAJCQkJRTQyOTVGQTMx
MkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi8sCiAJCQkJNTE0Qzc2
NjcwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuY3BwICovLAogCQkJCTUx
NEM3NjY4MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmggKi8sCkBAIC0x
OTUwNyw2ICsxOTUwNiw3IEBACiAJCQkJNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tl
dFN0cmVhbUhhbmRsZS5oICovLAogCQkJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLywKIAkJCQk1QzY2OEU2NDFFN0M2QzM1MDBEMzJCM0Ig
LyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5jcHAgKi8sCisJCQkJNDY4MkQxRkYxRjc5NzgyMzAw
Qzg2M0RCIC8qIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LmggKi8sCiAJCQkJRTE4MDgxMTAxNkZD
RjQyRTAwQjgwRDA3IC8qIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlFMTgw
ODExNTE2RkNGOUNCMDBCODBEMDcgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaCAqLywKIAkJ
CSk7CkBAIC0yOTgyNCw3ICsyOTgyNCw2IEBACiAJCQkJMjZDMTVDRjcxODU3RTE1RTAwRjE1QzAz
IC8qIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVl
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEM3NjdBMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNv
dXJjZUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0IwQ0U5MjNBMTAw
N0VGM0NEIC8qIFJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTUx
RTQxNDM0MTZBNjU5NjMwMEM2MzNDNyAvKiBSZXNvdXJjZUhhbmRsZVR5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NTZEMzczRjBBREJBNURFMDBBNDU1NEQgLyogUmVzb3VyY2VMb2FkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUQwQTNBNzMxMTQwNUEzOTgwMEZCOEVEMyAvKiBSZXNvdXJjZUxv
YWRlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUY1MDM2MTZGMTAwRjYwMDk1QjJF
OCAvKiBSZXNvdXJjZUxvYWRlclR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMTA5LDYgKzMw
MTA4LDcgQEAKIAkJCQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzNzYzNkMxQTJFNjhCQjAwOUE3RUUyIC8qIFN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2NkQzQ0QxRThFRDQ4
RjAwQUQ2MkUzIC8qIFN0b3JhZ2VUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjgyRDIwMDFG
Nzk3ODMwMDBDODYzREIgLyogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxNkU2RkU4MUJCRDEyREYwMDBBNjAzMyAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlu
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M1MjY2OTgxRjFCMDMwMjAwMEYwNjhCIC8qIFN0cmlu
Z0FkYXB0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MUFDNkMzNjEzMUM1N0QzMDAwOUE3RTAg
LyogU3RyaW5nQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlSW1wb3J0LmNwcAppbmRleCA2NmI4ZWU4MzcxNjNhOGUxYmJhY2UyYzkxMzhlNDBhYzkxODQ4
ZTNmLi5jMDBmZjJlYzAxZjdkYTdhZjQ2YjdkNzlmOWQ1YzAzNjg5MDY3NmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgU3R5
bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCgpCiAgICAgaWYgKG1fY2FjaGVkU2hlZXQp
CiAgICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92ZUNsaWVudChtX3N0eWxlU2hlZXRDbGllbnQp
OwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkgewotICAg
ICAgICByZXF1ZXN0LnNldE9wdGlvbnMoUmVzb3VyY2VMb2FkZXJPcHRpb25zKERvTm90U2VuZENh
bGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxz
LCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVkZW50aWFscywgRmV0
Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSwgU2tpcFNlY3VyaXR5Q2hlY2ssIEZldGNo
T3B0aW9uczo6TW9kZTo6Tm9Db3JzLCBEb05vdEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8sIENvbnRl
bnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjaywgRGVmZXJzTG9hZGlu
Z1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcp
KTsKKyAgICAgICAgcmVxdWVzdC5zZXRPcHRpb25zKFJlc291cmNlTG9hZGVyT3B0aW9ucyhEb05v
dFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3k6OlVzZSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9yQ3Jl
ZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUsIFNraXBTZWN1cml0
eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2VydGlmaWNh
dGVJbmZvLCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2ss
IERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywgQ2FjaGluZ1BvbGljeTo6
QWxsb3dDYWNoaW5nKSk7CiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudC0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoV1RGTW92ZShyZXF1ZXN0
KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudC0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0Q1NTU3R5bGVTaGVldChXVEZNb3ZlKHJlcXVlc3QpKS52
YWx1ZU9yKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCBmNGY2YzBhMDAwNmE0ZGRiYTM1NDUwNzQ1NTU0ZDU4
ZGI1NjM1NTVmLi42MzI3MGYwNmExODhlYzQ5YmU0NzY1OGZmOGY5YjE3NmY2ODIxMDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cApAQCAtNTksMTAgKzU5LDEwIEBAIGJvb2wgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVl
c3QoY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIFN0b3JlZENy
ZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMpCit2b2lkIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3ND
b250cm9sKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5
T3JpZ2luLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSkK
IHsKICAgICByZXF1ZXN0LnJlbW92ZUNyZWRlbnRpYWxzKCk7Ci0gICAgcmVxdWVzdC5zZXRBbGxv
d0Nvb2tpZXMoYWxsb3dDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAg
ICByZXF1ZXN0LnNldEFsbG93Q29va2llcyhzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKTsKICAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4oc2Vj
dXJpdHlPcmlnaW4udG9TdHJpbmcoKSk7CiB9CiAKQEAgLTcxLDcgKzcxLDcgQEAgUmVzb3VyY2VS
ZXF1ZXN0IGNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWUKICAgICBSZXNvdXJjZVJlcXVlc3QgcHJlZmxpZ2h0UmVxdWVzdChyZXF1
ZXN0LnVybCgpKTsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIHBsYXRmb3JtRGVmYXVsdFRpbWVv
dXQgPSAwOwogICAgIHByZWZsaWdodFJlcXVlc3Quc2V0VGltZW91dEludGVydmFsKHBsYXRmb3Jt
RGVmYXVsdFRpbWVvdXQpOwotICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHByZWZs
aWdodFJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMp
OworICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHByZWZsaWdodFJlcXVlc3QsIHNl
Y3VyaXR5T3JpZ2luLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UpOwogICAgIHBy
ZWZsaWdodFJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiT1BUSU9OUyIpOwogICAgIHByZWZsaWdodFJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sUmVx
dWVzdE1ldGhvZCwgcmVxdWVzdC5odHRwTWV0aG9kKCkpOwogICAgIHByZWZsaWdodFJlcXVlc3Qu
c2V0UHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKQEAgLTEyNywxMiArMTI3LDEyIEBAIHZv
aWQgY2xlYW5SZWRpcmVjdGVkUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQogICAgIHJlcXVlc3QuY2xlYXJIVFRQQWNjZXB0RW5jb2RpbmcoKTsKIH0KIAot
Ym9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIFN0b3JlZENyZWRlbnRpYWxzIGluY2x1ZGVDcmVkZW50aWFscywgU2VjdXJpdHlPcmln
aW4mIHNlY3VyaXR5T3JpZ2luLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCitib29sIHBhc3Nl
c0FjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFNlY3VyaXR5T3Jp
Z2luJiBzZWN1cml0eU9yaWdpbiwgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKQogewogICAgIC8v
IEEgd2lsZGNhcmQgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGNhbiBub3QgYmUgdXNlZCBp
ZiBjcmVkZW50aWFscyBhcmUgdG8gYmUgc2VudCwKICAgICAvLyBldmVuIHdpdGggQWNjZXNzLUNv
bnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgc2V0IHRvIHRydWUuCiAgICAgY29uc3QgU3RyaW5nJiBh
Y2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dPcmlnaW4pOwotICAgIGlmIChhY2Nlc3NDb250
cm9sT3JpZ2luU3RyaW5nID09ICIqIiAmJiBpbmNsdWRlQ3JlZGVudGlhbHMgPT0gRG9Ob3RBbGxv
d1N0b3JlZENyZWRlbnRpYWxzKQorICAgIGlmIChhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nID09
ICIqIiAmJiBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6RG9Ob3RVc2UpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgU3RyaW5nIHNlY3VyaXR5
T3JpZ2luU3RyaW5nID0gc2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKTsKQEAgLTE0Niw3ICsxNDYs
NyBAQCBib29sIHBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgU3RvcmVkQ3JlZGVudGlhbAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgaWYgKGluY2x1ZGVDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxz
KSB7CisgICAgaWYgKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpVc2UpIHsKICAgICAgICAgY29uc3QgU3RyaW5nJiBhY2Nlc3NDb250cm9sQ3JlZGVu
dGlhbHNTdHJpbmcgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFj
Y2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzKTsKICAgICAgICAgaWYgKGFjY2Vzc0NvbnRyb2xD
cmVkZW50aWFsc1N0cmluZyAhPSAidHJ1ZSIpIHsKICAgICAgICAgICAgIGVycm9yRGVzY3JpcHRp
b24gPSAiQ3JlZGVudGlhbHMgZmxhZyBpcyB0cnVlLCBidXQgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
Q3JlZGVudGlhbHMgaXMgbm90IFwidHJ1ZVwiLiI7CkBAIC0xNTcsMTcgKzE1NywxNyBAQCBib29s
IHBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgU3RvcmVkQ3JlZGVudGlhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHZhbGlkYXRl
UHJlZmxpZ2h0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgU3RvcmVkQ3JlZGVudGlhbHMgaW5jbHVkZUNyZWRl
bnRpYWxzLCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIFN0cmluZyYgZXJyb3JEZXNj
cmlwdGlvbikKK2Jvb2wgdmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgU2VjdXJpdHlPcmlnaW4m
IHNlY3VyaXR5T3JpZ2luLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAgICAgaWYgKCFy
ZXNwb25zZS5pc1N1Y2Nlc3NmdWwoKSkgewogICAgICAgICBlcnJvckRlc2NyaXB0aW9uID0gQVND
SUlMaXRlcmFsKCJQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwiKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICghcGFzc2VzQWNjZXNzQ29udHJvbENo
ZWNrKHJlc3BvbnNlLCBpbmNsdWRlQ3JlZGVudGlhbHMsIHNlY3VyaXR5T3JpZ2luLCBlcnJvckRl
c2NyaXB0aW9uKSkKKyAgICBpZiAoIXBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhyZXNwb25zZSwg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNlY3VyaXR5T3JpZ2luLCBlcnJvckRlc2NyaXB0aW9u
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPihpbmNsdWRlQ3JlZGVu
dGlhbHMpOworICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlSXRlbT4oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogICAgIGlm
ICghcmVzdWx0LT5wYXJzZShyZXNwb25zZSwgZXJyb3JEZXNjcmlwdGlvbikKICAgICAgICAgfHwg
IXJlc3VsdC0+YWxsb3dzQ3Jvc3NPcmlnaW5NZXRob2QocmVxdWVzdC5odHRwTWV0aG9kKCksIGVy
cm9yRGVzY3JpcHRpb24pCiAgICAgICAgIHx8ICFyZXN1bHQtPmFsbG93c0Nyb3NzT3JpZ2luSGVh
ZGVycyhyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSwgZXJyb3JEZXNjcmlwdGlvbikpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaAppbmRl
eCBkNmQyZjFhOTJiNWQ4NGM4ODUyZjk0ZjRiMzE3YjllZDkyYzBkYTVlLi42ODg3NmU4YzdiOTU5
N2Y4MjkzNjMzN2EyN2I4MGJmYmRhNTQ2Zjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oCkBAIC0yNiw3ICsyNiw3IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVUeXBlcy5oIgorI2luY2x1ZGUgIlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsMTMgKzQwLDEzIEBAIGNsYXNzIFVSTDsKIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QoY29uc3QgU3RyaW5n
JiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmKTsKIGJvb2wgaXNPbkFjY2Vzc0NvbnRyb2xT
aW1wbGVSZXF1ZXN0TWV0aG9kV2hpdGVsaXN0KGNvbnN0IFN0cmluZyYpOwogCi1XRUJDT1JFX0VY
UE9SVCB2b2lkIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKFJlc291cmNlUmVxdWVzdCYs
IFNlY3VyaXR5T3JpZ2luJiwgU3RvcmVkQ3JlZGVudGlhbHMpOworV0VCQ09SRV9FWFBPUlQgdm9p
ZCB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChSZXNvdXJjZVJlcXVlc3QmLCBTZWN1cml0
eU9yaWdpbiYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKIFdFQkNPUkVfRVhQT1JUIFJlc291
cmNlUmVxdWVzdCBjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVzdChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFN0cmluZyYpOwogCiBib29sIGlz
VmFsaWRDcm9zc09yaWdpblJlZGlyZWN0aW9uVVJMKGNvbnN0IFVSTCYpOwogdm9pZCBjbGVhblJl
ZGlyZWN0ZWRSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChSZXNvdXJjZVJlcXVlc3QmKTsKIAotV0VC
Q09SRV9FWFBPUlQgYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIFN0b3JlZENyZWRlbnRpYWxzLCBTZWN1cml0eU9yaWdpbiYsIFN0cmluZyYgZXJy
b3JEZXNjcmlwdGlvbik7Ci1XRUJDT1JFX0VYUE9SVCBib29sIHZhbGlkYXRlUHJlZmxpZ2h0UmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFN0
b3JlZENyZWRlbnRpYWxzLCBTZWN1cml0eU9yaWdpbiYsIFN0cmluZyYgZXJyb3JEZXNjcmlwdGlv
bik7CitXRUJDT1JFX0VYUE9SVCBib29sIHBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFNlY3VyaXR5T3JpZ2lu
JiwgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9uKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgdmFsaWRh
dGVQcmVmbGlnaHRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFNlY3VyaXR5T3JpZ2luJiwgU3Ry
aW5nJiBlcnJvckRlc2NyaXB0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNw
cAppbmRleCA3YTRmODk2NmVjMmViZDg3MjQyN2FhNDExODRmOGJlNzMwYzJiZThhLi4xMjJmMGQ5
OTBkODAzYzFmZWU1MjgzOWM1ODRlMWNhYjJlZTc5ZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNjEsNyAr
NjEsNyBAQCBDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6On5Dcm9zc09yaWdpblByZWZsaWdo
dENoZWNrZXIoKQogdm9pZCBDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6OnZhbGlkYXRlUHJl
ZmxpZ2h0UmVzcG9uc2UoRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyJiBsb2FkZXIsIFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgU3RyaW5nIGVycm9yRGVzY3JpcHRpb247Ci0g
ICAgaWYgKCFXZWJDb3JlOjp2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKHJlcXVlc3QsIHJlc3Bv
bnNlLCBsb2FkZXIub3B0aW9ucygpLmFsbG93Q3JlZGVudGlhbHMsIGxvYWRlci5zZWN1cml0eU9y
aWdpbigpLCBlcnJvckRlc2NyaXB0aW9uKSkgeworICAgIGlmICghV2ViQ29yZTo6dmFsaWRhdGVQ
cmVmbGlnaHRSZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgbG9hZGVyLm9wdGlvbnMoKS5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgbG9hZGVyLnNlY3VyaXR5T3JpZ2luKCksIGVycm9yRGVzY3Jp
cHRpb24pKSB7CiAgICAgICAgIGxvYWRlci5wcmVmbGlnaHRGYWlsdXJlKGlkZW50aWZpZXIsIFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVxdWVzdC51cmwoKSwg
ZXJyb3JEZXNjcmlwdGlvbiwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgQ3Jvc3NPcmln
aW5QcmVmbGlnaHRDaGVja2VyOjpkb1ByZWZsaWdodChEb2N1bWVudFRocmVhZGFibGVMb2FkZXIm
IGxvYWRlciwKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwogICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IGRhdGE7CiAKLSAgICB1bnNpZ25lZCBpZGVudGlmaWVyID0gbG9hZGVyLmRvY3Vt
ZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkubG9hZFJlc291cmNlU3luY2hyb25vdXNseShwcmVmbGln
aHRSZXF1ZXN0LCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQ
b2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzLCBlcnJvciwgcmVzcG9uc2UsIGRh
dGEpOworICAgIHVuc2lnbmVkIGlkZW50aWZpZXIgPSBsb2FkZXIuZG9jdW1lbnQoKS5mcmFtZSgp
LT5sb2FkZXIoKS5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHByZWZsaWdodFJlcXVlc3QsIFN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6
Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAK
ICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIElmIHRoZSBwcmVmbGlnaHQg
d2FzIGNhbmNlbGxlZCBieSB1bmRlcmx5aW5nIGNvZGUsIGl0IHByb2JhYmx5IG1lYW5zIHRoZSBy
ZXF1ZXN0IHdhcyBibG9ja2VkIGR1ZSB0byBzb21lIGFjY2VzcyBjb250cm9sIHBvbGljeS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmNwcAppbmRleCBjN2RhODVlMDdlODM3YmZiZjFhM2I1ZTFlMGNmYjAxMDgzNmE0
ZWIxLi45MDY2ODg4NjM1YTQxNWQ1Y2ZlODc4Nzc2YTUxOGIwMmUxNzIwN2ZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGUuY3BwCkBAIC0xMzksMTIgKzEzOSwxMiBAQCBib29sIENyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc09yaWdpbkhlYWRlcnMoY29uc3QgSFRUUEhlYQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGVJdGVtOjphbGxvd3NSZXF1ZXN0KFN0b3JlZENyZWRlbnRpYWxzIGluY2x1ZGVDcmVkZW50aWFs
cywgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFk
ZXJzKSBjb25zdAorYm9vbCBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxs
b3dzUmVxdWVzdChTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFk
ZXJzKSBjb25zdAogewogICAgIFN0cmluZyBpZ25vcmVkRXhwbGFuYXRpb247CiAgICAgaWYgKG1f
YWJzb2x1dGVFeHBpcnlUaW1lIDwgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoaW5jbHVkZUNyZWRlbnRpYWxzID09IEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMgJiYgbV9jcmVkZW50aWFscyA9PSBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMpCisgICAgaWYgKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRl
bnRpYWxzUG9saWN5OjpVc2UgJiYgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
ZiAoIWFsbG93c0Nyb3NzT3JpZ2luTWV0aG9kKG1ldGhvZCwgaWdub3JlZEV4cGxhbmF0aW9uKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTY3LDE0ICsxNjcsMTQgQEAgdm9pZCBDcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlOjphcHBlbmRFbnRyeShjb25zdCBTdHJpbmcmIG9yaWdp
biwgY29uc3QgVVIKICAgICBtX3ByZWZsaWdodEhhc2hNYXAuc2V0KHN0ZDo6bWFrZV9wYWlyKG9y
aWdpbiwgdXJsKSwgV1RGTW92ZShwcmVmbGlnaHRSZXN1bHQpKTsKIH0KIAotYm9vbCBDcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpjYW5Ta2lwUHJlZmxpZ2h0KGNvbnN0IFN0cmluZyYg
b3JpZ2luLCBjb25zdCBVUkwmIHVybCwgU3RvcmVkQ3JlZGVudGlhbHMgaW5jbHVkZUNyZWRlbnRp
YWxzLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhl
YWRlcnMpCitib29sIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OmNhblNraXBQcmVm
bGlnaHQoY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgY29uc3QgU3RyaW5nJiBtZXRob2Qs
IGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAgICAgYXV0byBpdCA9IG1fcHJlZmxpZ2h0SGFzaE1hcC5maW5kKHN0ZDo6
bWFrZV9wYWlyKG9yaWdpbiwgdXJsKSk7CiAgICAgaWYgKGl0ID09IG1fcHJlZmxpZ2h0SGFzaE1h
cC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGl0LT52YWx1ZS0+YWxs
b3dzUmVxdWVzdChpbmNsdWRlQ3JlZGVudGlhbHMsIG1ldGhvZCwgcmVxdWVzdEhlYWRlcnMpKQor
ICAgIGlmIChpdC0+dmFsdWUtPmFsbG93c1JlcXVlc3Qoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IG1ldGhvZCwgcmVxdWVzdEhlYWRlcnMpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIG1f
cHJlZmxpZ2h0SGFzaE1hcC5yZW1vdmUoaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgKaW5kZXggYzhkMDEwMDA3
MDRkMDIzMzIxMmI2MmE4ODhlNTFhY2VhODlhMTQwNS4uZTk0MjBmMWYzMjNhY2E4NmY5NjJjNDAw
MDFiZjUxMmE3MGZlOGQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oCkBAIC0yNiw4ICsyNiw4IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCIKICNpbmNs
dWRlICJVUkxIYXNoLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVUeXBlcy5oIgogI2luY2x1
ZGUgPGNocm9ubz4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CkBAIC00MSwyMiArNDEsMjIgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNz
IENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbSk7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IENyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGVJdGVtKFN0b3JlZENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKQotICAgICAgICA6
IG1fY3JlZGVudGlhbHMoY3JlZGVudGlhbHMpCisgICAgZXhwbGljaXQgQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZUl0ZW0oU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kpCisgICAgICAgIDogbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeShzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSkKICAgICB7CiAgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBwYXJzZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU3RyaW5nJiBlcnJvckRlc2NyaXB0aW9u
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFsbG93c0Nyb3NzT3JpZ2luTWV0aG9kKGNvbnN0
IFN0cmluZyYsIFN0cmluZyYgZXJyb3JEZXNjcmlwdGlvbikgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBhbGxvd3NDcm9zc09yaWdpbkhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYs
IFN0cmluZyYgZXJyb3JEZXNjcmlwdGlvbikgY29uc3Q7Ci0gICAgYm9vbCBhbGxvd3NSZXF1ZXN0
KFN0b3JlZENyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRl
ck1hcCYgcmVxdWVzdEhlYWRlcnMpIGNvbnN0OworICAgIGJvb2wgYWxsb3dzUmVxdWVzdChTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFk
ZXJNYXAmIHJlcXVlc3RIZWFkZXJzKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICAvLyBGSVhNRTog
QSBiZXR0ZXIgc29sdXRpb24gdG8gaG9sZGluZyBvbnRvIHRoZSBhYnNvbHV0ZSBleHBpcmF0aW9u
IHRpbWUgbWlnaHQgYmUKICAgICAvLyB0byBzdGFydCBhIHRpbWVyIGZvciB0aGUgZXhwaXJhdGlv
biBkZWx0YSB0aGF0IHJlbW92ZXMgdGhpcyBmcm9tIHRoZSBjYWNoZSB3aGVuCiAgICAgLy8gaXQg
ZmlyZXMuCiAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBtX2Fic29s
dXRlRXhwaXJ5VGltZTsKLSAgICBTdG9yZWRDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzOworICAg
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAg
SGFzaFNldDxTdHJpbmc+IG1fbWV0aG9kczsKICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiBtX2hlYWRlcnM7CiB9OwpAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUmIHNpbmdsZXRvbigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmRFbnRyeShj
b25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgVVJMJiwgc3RkOjp1bmlxdWVfcHRyPENyb3NzT3Jp
Z2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBj
YW5Ta2lwUHJlZmxpZ2h0KGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmLCBTdG9yZWRD
cmVkZW50aWFscywgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJl
cXVlc3RIZWFkZXJzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhblNraXBQcmVmbGlnaHQo
Y29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRl
cnMpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbXB0eSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA3MjBiNjQxNWMyYjIyMjlkOWE4NDM5MzUy
NmE1OTEyMmU3ZjcyOGUzLi4zYmRiZDZmNmEwNWI4ODViZGVhMDFhY2QwMjJjNDZmMDU4ZjQ0ZGYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTE0ODQsNyAr
MTQ4NCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZSgp
CiAKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3VyY2U6
IFN0YXJ0aW5nIGxvYWQgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2ZyYW1lLCBtX2ZyYW1l
LT5pc01haW5GcmFtZSgpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXNvdXJjZUxv
YWRlck9wdGlvbnM+IG1haW5SZXNvdXJjZUxvYWRPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZm
Q29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVu
dGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6OkluY2x1ZGUsIFNraXBTZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5vQ29ycywgSW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVy
c0xvYWRpbmcsIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZyk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFJlc291cmNlTG9hZGVyT3B0aW9ucz4gbWFpblJlc291cmNlTG9hZE9wdGlvbnMo
U2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlLCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVk
ZW50aWFscywgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSwgU2tpcFNlY3VyaXR5
Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzLCBJbmNsdWRlQ2VydGlmaWNhdGVJbmZv
LCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2ssIERlZmVy
c0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywgQ2FjaGluZ1BvbGljeTo6QWxsb3dD
YWNoaW5nKTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbWFpblJlc291cmNlUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1haW5SZXNvdXJjZUxvYWRPcHRpb25zKTsKICAgICBp
ZiAoIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewogICAg
ICAgICAvLyBJZiB3ZSBhcmUgbG9hZGluZyB0aGUgbWFpbiByZXNvdXJjZSBvZiBhIHN1YmZyYW1l
LCB1c2UgdGhlIGNhY2hlIHBhcnRpdGlvbiBvZiB0aGUgbWFpbiBkb2N1bWVudC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MzRjNDI4Yjc0NzhmZWE0ZDAyMmUzMTlmMDNhM2JhZWQzMzkzMzQ4Yy4uOTAyYzg5ZTM5NzM3YzQx
MTQxZTM1YzJjZTQyZTkyNjY5NzQwYzI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBEb2N1
bWVudFRocmVhZGFibGVMb2FkZXI6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcihEb2N1bWVudCYg
ZG9jdW1lbnQsIFRocmVhZGFibAogCiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oaXNBbGxvd2VkQnlDb250ZW50U2VjdXJpdHlQb2xpY3kocmVxdWVzdC51cmwoKSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpSZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQ6Ok5vKSk7CiAKLSAgICBt
X29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IChtX29wdGlvbnMuY3JlZGVudGlhbHMgPT0gRmV0
Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSB8fCAobV9vcHRpb25zLmNyZWRlbnRpYWxz
ID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gJiYgbV9zYW1lT3JpZ2lu
UmVxdWVzdCkpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVk
ZW50aWFsczsKKyAgICBtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSAobV9vcHRp
b25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgfHwg
KG1fb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1l
T3JpZ2luICYmIG1fc2FtZU9yaWdpblJlcXVlc3QpKSA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
OjpVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAKICAgICBBU1NFUlQo
IXJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpPcmln
aW4pKTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlCiAgICAg
ICAgIG1ha2VTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSk7
CiAgICAgZWxzZSB7CiAgICAgICAgIG1fc2ltcGxlUmVxdWVzdCA9IGZhbHNlOwotICAgICAgICBp
ZiAoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCkuY2FuU2tpcFBy
ZWZsaWdodChzZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCksIHJlcXVlc3QudXJsKCksIG1fb3B0
aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRw
SGVhZGVyRmllbGRzKCkpKQorICAgICAgICBpZiAoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZTo6c2luZ2xldG9uKCkuY2FuU2tpcFByZWZsaWdodChzZWN1cml0eU9yaWdpbigpLnRvU3Ry
aW5nKCksIHJlcXVlc3QudXJsKCksIG1fb3B0aW9ucy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
cmVxdWVzdC5odHRwTWV0aG9kKCksIHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKSkKICAgICAg
ICAgICAgIHByZWZsaWdodFN1Y2Nlc3MoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3RXaXRoUHJlZmxpZ2h0KFdU
Rk1vdmUocmVxdWVzdCkpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjptYWtlU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNlUmVx
dWVzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbChyZXF1ZXN0LCBzZWN1cml0eU9yaWdpbigpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50
aWFscyk7CisgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgc2VjdXJp
dHlPcmlnaW4oKSwgbV9vcHRpb25zLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKICAgICBsb2Fk
UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBEb1NlY3VyaXR5Q2hlY2spOwogfQogCkBAIC0yNjcs
NyArMjY3LDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnJlZGlyZWN0UmVjZWl2
ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBSZXNvdXIKICAgICBpZiAobV9vcHRpb25zLmNy
ZWRlbnRpYWxzICE9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gJiYgbV9z
aW1wbGVSZXF1ZXN0ICYmIGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KHJlcXVlc3Qu
aHR0cE1ldGhvZCgpLCAqbV9vcmlnaW5hbEhlYWRlcnMpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFs
czsKKyAgICBtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAKICAgICBjbGVhclJlc291cmNlKCk7CiAKQEAgLTM5OCw3
ICszOTgsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkRmFpbCh1bnNpZ25l
ZCBsb25nLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcgogdm9pZCBEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI6OnByZWZsaWdodFN1Y2Nlc3MoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsK
ICAgICBSZXNvdXJjZVJlcXVlc3QgYWN0dWFsUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKLSAg
ICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChhY3R1YWxSZXF1ZXN0LCBzZWN1cml0eU9y
aWdpbigpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CisgICAgdXBkYXRlUmVxdWVzdEZv
ckFjY2Vzc0NvbnRyb2woYWN0dWFsUmVxdWVzdCwgc2VjdXJpdHlPcmlnaW4oKSwgbV9vcHRpb25z
LnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKIAogICAgIG1fcHJlZmxpZ2h0Q2hlY2tlciA9IHN0
ZDo6bnVsbG9wdDsKIApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZWN1cml0eUNo
CiAgICAgICAgIGlmICghbV9vcHRpb25zLmludGVncml0eS5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICBvcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPSBCdWZmZXJEYXRhOwogCi0gICAgICAgIHJl
cXVlc3Quc2V0QWxsb3dDb29raWVzKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID09IEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMpOworICAgICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyhtX29w
dGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OlVzZSk7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KFdURk1vdmUo
cmVxdWVzdCksIG9wdGlvbnMpOwogICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5yZXNvdXJjZVRpbWluZ0VuYWJsZWQoKSkKICAgICAgICAgICAgIG5l
d1JlcXVlc3Quc2V0SW5pdGlhdG9yKG1fb3B0aW9ucy5pbml0aWF0b3IpOwpAQCAtNDczLDcgKzQ3
Myw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBTZWN1cml0eUNoCiAgICAgICAgIGF1dG8mIGZyYW1lTG9hZGVy
ID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKICAgICAgICAgaWYgKCFmcmFtZUxvYWRl
ci5taXhlZENvbnRlbnRDaGVja2VyKCkuY2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQu
c2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdFVSTCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGlkZW50aWZpZXIgPSBmcmFtZUxvYWRlci5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHJl
cXVlc3QsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCBtX29wdGlvbnMuY2xpZW50Q3JlZGVu
dGlhbFBvbGljeSwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKKyAgICAgICAgaWRlbnRpZmllciA9
IGZyYW1lTG9hZGVyLmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkocmVxdWVzdCwgbV9vcHRpb25z
LnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBtX29wdGlvbnMuY2xpZW50Q3JlZGVudGlhbFBvbGlj
eSwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKICAgICB9CiAKICAgICBsb2FkVGltaW5nLnNldFJl
c3BvbnNlRW5kKE1vbm90b25pY1RpbWU6Om5vdygpKTsKQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgU2VjdXJpdHlDaAogICAgICAgICAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CiAgICAgICAgICAgICByZXNwb25zZS5zZXRUYWlu
dGluZyhSZXNvdXJjZVJlc3BvbnNlOjpUYWludGluZzo6Q29ycyk7CiAgICAgICAgICAgICBTdHJp
bmcgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb247Ci0gICAgICAgICAgICBpZiAoIXBhc3Nl
c0FjY2Vzc0NvbnRyb2xDaGVjayhyZXNwb25zZSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMs
IHNlY3VyaXR5T3JpZ2luKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKSkgeworICAg
ICAgICAgICAgaWYgKCFwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG1fb3B0aW9u
cy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2VjdXJpdHlPcmlnaW4oKSwgYWNjZXNzQ29udHJv
bEVycm9yRGVzY3JpcHRpb24pKSB7CiAgICAgICAgICAgICAgICAgbG9nRXJyb3JBbmRGYWlsKFJl
c291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVzcG9uc2UudXJsKCks
IGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nl
c3NDb250cm9sKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYjYzZmE2Y2M4MzgyYzA2ODZjNjE4
ODRlYTAyOTVlNjI1OWViNTJmNy4uZTE3OGNmNDJjYTMyNjdjZGMyMDRjM2FjYTYyMTY3NzIzNTdj
MWE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yNzc5LDcgKzI3
NzksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVz
dCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmZQogICAgIH0KIH0KIAotdW5zaWduZWQgbG9u
ZyBGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBDbGll
bnRDcmVkZW50aWFsUG9saWN5IGNsaWVudENyZWRlbnRpYWxQb2xpY3ksIFJlc291cmNlRXJyb3Im
IGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4m
IGRhdGEpCit1bnNpZ25lZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50
Q3JlZGVudGlhbFBvbGljeSwgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBSZWZQdHI8U2hhcmVkQnVmZmVyPiYgZGF0YSkKIHsKICAgICBBU1NFUlQobV9m
cmFtZS5kb2N1bWVudCgpKTsKICAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6
Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihtX2ZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5
KCksIHJlcXVlc3QudXJsKCksIG91dGdvaW5nUmVmZXJyZXIoKSk7CkBAIC0yODIzLDcgKzI4MjMs
NyBAQCB1bnNpZ25lZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdQogCiAgICAgICAgIGlmICghZG9jdW1lbnRMb2Fk
ZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1Jl
cXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSkpIHsKICAgICAgICAgICAgIFZlY3RvcjxjaGFy
PiBidWZmZXI7Ci0gICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRl
Z3koKS0+bG9hZFJlc291cmNlU3luY2hyb25vdXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBpZGVu
dGlmaWVyLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgY2xpZW50Q3JlZGVudGlhbFBv
bGljeSwgZXJyb3IsIHJlc3BvbnNlLCBidWZmZXIpOworICAgICAgICAgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkobmV0
d29ya2luZ0NvbnRleHQoKSwgaWRlbnRpZmllciwgbmV3UmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIGNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGVycm9yLCByZXNwb25zZSwgYnVmZmVy
KTsKICAgICAgICAgICAgIGRhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShXVEZNb3ZlKGJ1ZmZl
cikpOwogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS5tYXliZUxvYWRGYWxsYmFja1N5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgZXJyb3IsIHJlc3Bv
bnNlLCBkYXRhKTsKICAgICAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5s
b2dTdWJyZXNvdXJjZUxvYWRpbmcoJm1fZnJhbWUsIG5ld1JlcXVlc3QsIHJlc3BvbnNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggYjI0YzllNTg2NDk2OWQzYmYzZDJjYmYy
YzlhMWQ5NzY0OGFiYTU3ZS4uNzhlZTNhZGI1OTkwY2NhYmQ0Y2U0YTc2NTc1Y2M0YTNjMmE3YzI0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM2LDExICszNiwxMSBAQAog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVz
LmgiCiAjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgotI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlVHlwZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWROb3RpZmllci5oIgogI2luY2x1
ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdEJh
c2UuaCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQuaCIKKyNpbmNsdWRlICJTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMTE1LDcgKzExNSw3IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpIHx8IEVOQUJMRShNSFRNTCkKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGxvYWRBcmNoaXZlKFJlZjxBcmNoaXZlPiYmKTsKICNlbmRpZgotICAgIHVu
c2lnbmVkIGxvbmcgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSwgUmVzb3VyY2VF
cnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBSZWZQdHI8U2hhcmVkQnVmZmVyPiYgZGF0YSk7Cisg
ICAgdW5zaWduZWQgbG9uZyBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBDbGllbnRDcmVkZW50aWFsUG9saWN5
LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZmZXI+
JiBkYXRhKTsKIAogICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVybFNlbGVjdGVkKGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdGFyZ2V0LCBFdmVudCosIExvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0LCBT
aG91bGRTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHN0ZDo6b3B0
aW9uYWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+ID0gc3RkOjpudWxsb3B0LCBjb25zdCBBdG9taWNT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlID0gbnVsbEF0b20oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDUyODFjMmNlMzMxNmI3NGVlMWU5OTM3ZmE0ZTgyZmQz
Y2I5NzBiOTUuLjUzZjNiZmIyNjY2OWIxNGU4OGNjZDI4Zjg5MWIwMjE5ZDE0ZmE2M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC0yNSw5ICsyNSw5IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVUeXBlcy5oIgogI2luY2x1ZGUg
IlJlc291cmNlTG9hZFByaW9yaXR5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25z
LmgiCisjaW5jbHVkZSAiU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9TSEExLmg+CiAKQEAgLTU0LDcgKzU0LDcgQEAgc3Ry
dWN0IEZldGNoT3B0aW9uczsKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIExvYWRlclN0cmF0ZWd5IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gbG9hZFJlc291
cmNlKEZyYW1lJiwgQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRD
cmVkZW50aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rv
cjxjaGFyPiYgZGF0YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgQ2xpZW50Q3JlZGVu
dGlhbFBvbGljeSwgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIq
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXIq
LCBib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggYjJlMTYwNTZmYzcwOGZiM2E4MTVmYzgwNDY0ZTEyOTc2ZGE0NzkwNS4uOTA2
YTRiNjc3M2I4OTgzNTc2YWQ1NGNjOTQ4MmY4YjEyNDhiM2YwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCBSZWZQ
dHI8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBNZWRpYVJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVz
b3VyY2UoUmVzb3VyY2VSZXF1ZQogI2VuZGlmCiAKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uIGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBtX21lZGlhRWxlbWVu
dCAmJiBtX21lZGlhRWxlbWVudC0+aXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0
eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7Ci0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IGNhY2hlUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMo
U2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIGJ1ZmZlcmluZ1BvbGljeSwgQWxsb3dT
dG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9y
Q3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUsIERvU2VjdXJp
dHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5jbHVkZUNlcnRpZmlj
YXRlSW5mbywgY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiwgRGVmZXJzTG9hZGluZ1Bv
bGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBjYWNoaW5nUG9saWN5KSk7CisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IGNhY2hlUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIGJ1ZmZlcmluZ1BvbGlj
eSwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6
TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Oklu
Y2x1ZGUsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90
SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiwg
RGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBjYWNoaW5nUG9saWN5KSk7
CiAgICAgY2FjaGVSZXF1ZXN0LnNldEFzUG90ZW50aWFsbHlDcm9zc09yaWdpbihtX2Nyb3NzT3Jp
Z2luTW9kZSwgKm1fZG9jdW1lbnQpOwogICAgIGlmIChtX21lZGlhRWxlbWVudCkKICAgICAgICAg
Y2FjaGVSZXF1ZXN0LnNldEluaXRpYXRvcigqbV9tZWRpYUVsZW1lbnQuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAK
aW5kZXggZmZhYTdlNWNlZTA5YTcxMzQzY2Y3OTI2M2FhYWVkYTIyYWQyOGRiNy4uYzMyMzA3N2Zk
ZjIzMDg0M2RlNjQ5NjlkMjA3NjBhMjJiM2JjNzczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC00Myw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1FOiBTa2lwIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5IGNoZWNrIHdoZW4gYXNzb2NpYXRlZCBwbHVnaW4gZWxlbWVudCBpcyBpbiBhIHVzZXIg
YWdlbnQgc2hhZG93IHRyZWUuCiAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY2NjM+LgogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyKEZyYW1lJiBmcmFtZSwgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXJDbGllbnQmIGNsaWVudCkKLSAgICA6IFJlc291cmNlTG9hZGVyKGZyYW1lLCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBEb05vdEJ1ZmZlckRhdGEs
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0Ns
aWVudEZvckNyZWRlbnRpYWxzLCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlLCBT
a2lwU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5jbHVk
ZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xp
Y3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBDYWNoaW5n
UG9saWN5OjpBbGxvd0NhY2hpbmcpKQorICAgIDogUmVzb3VyY2VMb2FkZXIoZnJhbWUsIFJlc291
cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIERvTm90QnVmZmVy
RGF0YSwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgQ2xpZW50Q3JlZGVudGlhbFBvbGlj
eTo6TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
OkluY2x1ZGUsIFNraXBTZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycywg
RG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uOjpEb1BvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRp
bmcsIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZykpCiAgICAgLCBtX2NsaWVudCgmY2xpZW50
KQogewogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBkN2UyNTQ3YTZlYjlmOTE2NDVjMGMyMjMzNmMyNDI5
NzVkYTg1ZTgzLi5lNDM0N2YyYjQ1YmQ0YmYzMzM4NzhmZmZkYWNmZjIzMWI2Njk1MGJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTY3Myw3ICs2NzMsNyBA
QCB2b2lkIFJlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKikKIAog
Ym9vbCBSZXNvdXJjZUxvYWRlcjo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKQogewotICAg
IGlmIChtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9PSBEb05vdEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHMpCisgICAgaWYgKG1fb3B0aW9ucy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGwKICAgICAvLyBhbnl0aGluZyBpbmNsdWRp
bmcgcG9zc2libHkgZGVyZWZpbmcgdGhpczsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyBSYWRhciAz
MjY2MjE2LgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAK
LSAgICBpZiAobV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50
aWFscykgeworICAgIGlmIChtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSkgewogICAgICAgICBpZiAoaXNBbGxvd2VkVG9Bc2tV
c2VyRm9yQ3JlZGVudGlhbHMoKSkgewogICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZp
ZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodGhpcywgY2hhbGxlbmdlKTsK
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlck9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlck9wdGlvbnMuaAppbmRleCBiOTNiY2I2OGYzMGJlNjI0MTQ5ODEyMDZiMDdiYzU1YTU2OTA4
ODhmLi5kMmE5MmMzZDNkY2Y4MmU1OGYyMmQwMzVjYmM3ZmQwYjI1MDU2ZjNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCkBAIC0zMSw3ICszMSw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZldGNoT3B0aW9ucy5oIgotI2luY2x1ZGUg
IlJlc291cmNlSGFuZGxlVHlwZXMuaCIKKyNpbmNsdWRlICJTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtOTcsMTEgKzk3LDExIEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMg
OiBwdWJsaWMgRmV0Y2hPcHRpb25zIHsKIAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyhjb25z
dCBGZXRjaE9wdGlvbnMmIG9wdGlvbnMpIDogRmV0Y2hPcHRpb25zKG9wdGlvbnMpIHsgfQogCi0g
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxi
YWNrcywgQ29udGVudFNuaWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCwgRGF0YUJ1ZmZlcmluZ1Bv
bGljeSBkYXRhQnVmZmVyaW5nUG9saWN5LCBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRp
YWxzLCBDbGllbnRDcmVkZW50aWFsUG9saWN5IGNyZWRlbnRpYWxQb2xpY3ksIEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIFNlY3VyaXR5Q2hlY2tQb2xpY3kgc2VjdXJpdHlD
aGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlIG1vZGUsIENlcnRpZmljYXRlSW5mb1BvbGljeSBjZXJ0
aWZpY2F0ZUluZm9Qb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gY29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiwgRGVmZXJzTG9hZGluZ1BvbGljeSBkZWZlcnNMb2Fk
aW5nUG9saWN5LCBDYWNoaW5nUG9saWN5IGNhY2hpbmdQb2xpY3kpCisgICAgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zKFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcywgQ29udGVudFNu
aWZmaW5nUG9saWN5IHNuaWZmQ29udGVudCwgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVy
aW5nUG9saWN5LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjcmVkZW50aWFsUG9saWN5LCBGZXRjaE9wdGlvbnM6
OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hl
Y2ssIEZldGNoT3B0aW9uczo6TW9kZSBtb2RlLCBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kgY2VydGlm
aWNhdGVJbmZvUG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uIGNvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb24sIERlZmVyc0xvYWRpbmdQb2xpY3kgZGVmZXJzTG9hZGlu
Z1BvbGljeSwgQ2FjaGluZ1BvbGljeSBjYWNoaW5nUG9saWN5KQogICAgICAgICA6IHNlbmRMb2Fk
Q2FsbGJhY2tzKHNlbmRMb2FkQ2FsbGJhY2tzKQogICAgICAgICAsIHNuaWZmQ29udGVudChzbmlm
ZkNvbnRlbnQpCiAgICAgICAgICwgZGF0YUJ1ZmZlcmluZ1BvbGljeShkYXRhQnVmZmVyaW5nUG9s
aWN5KQotICAgICAgICAsIGFsbG93Q3JlZGVudGlhbHMoYWxsb3dDcmVkZW50aWFscykKKyAgICAg
ICAgLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSkKICAg
ICAgICAgLCBzZWN1cml0eUNoZWNrKHNlY3VyaXR5Q2hlY2spCiAgICAgICAgICwgY2VydGlmaWNh
dGVJbmZvUG9saWN5KGNlcnRpZmljYXRlSW5mb1BvbGljeSkKICAgICAgICAgLCBjb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uKGNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24pCkBA
IC0xMTYsNyArMTE2LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyA6IHB1YmxpYyBG
ZXRjaE9wdGlvbnMgewogICAgIFNlbmRDYWxsYmFja1BvbGljeSBzZW5kTG9hZENhbGxiYWNrcyB7
IERvTm90U2VuZENhbGxiYWNrcyB9OwogICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzbmlmZkNv
bnRlbnQgeyBEb05vdFNuaWZmQ29udGVudCB9OwogICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0
YUJ1ZmZlcmluZ1BvbGljeSB7IEJ1ZmZlckRhdGEgfTsKLSAgICBTdG9yZWRDcmVkZW50aWFscyBh
bGxvd0NyZWRlbnRpYWxzIHsgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzIH07CisgICAgU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeyBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgfTsKICAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3Vy
aXR5Q2hlY2sgeyBEb1NlY3VyaXR5Q2hlY2sgfTsKICAgICBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3kg
Y2VydGlmaWNhdGVJbmZvUG9saWN5IHsgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvIH07CiAg
ICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiBjb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uIHsgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVj
ayB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
Njc1MjU5YzllNmE2OWQ5NWVjMDAxMzU3NmNkYzIyOGRkZTkyMjA5Yi4uODg3MjI5OTU4ZDZjMTJh
NzBiOGM3ZjU0MDJjMTRhMjczZTIyNzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00NzksNyArNDc5LDcgQEAgYm9vbCBTdWJyZXNvdXJjZUxv
YWRlcjo6Y2hlY2tSZXNwb25zZUNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbChjb25zdCBSZXNvdXJj
ZVJlc3AKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBBU1NFUlQobV9vcmlnaW4pOwotICAg
IHJldHVybiBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG9wdGlvbnMoKS5hbGxv
d0NyZWRlbnRpYWxzLCAqbV9vcmlnaW4sIGVycm9yRGVzY3JpcHRpb24pOworICAgIHJldHVybiBw
YXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG9wdGlvbnMoKS5zdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgKm1fb3JpZ2luLCBlcnJvckRlc2NyaXB0aW9uKTsKIH0KIAogYm9vbCBTdWJy
ZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHByZXZpb3VzUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSwgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBTdHJp
bmcmIGVycm9yTWVzc2FnZSkKQEAgLTUwMiw3ICs1MDIsNyBAQCBib29sIFN1YnJlc291cmNlTG9h
ZGVyOjpjaGVja1JlZGlyZWN0aW9uQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sKGNvbnN0IFJlc291
cmNlUgogICAgIH0KIAogICAgIEFTU0VSVChtX29yaWdpbik7Ci0gICAgaWYgKGNyb3NzT3JpZ2lu
RmxhZyAmJiAhcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJlZGlyZWN0UmVzcG9uc2UsIG9wdGlv
bnMoKS5hbGxvd0NyZWRlbnRpYWxzLCAqbV9vcmlnaW4sIGVycm9yTWVzc2FnZSkpCisgICAgaWYg
KGNyb3NzT3JpZ2luRmxhZyAmJiAhcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJlZGlyZWN0UmVz
cG9uc2UsIG9wdGlvbnMoKS5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgKm1fb3JpZ2luLCBlcnJv
ck1lc3NhZ2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHJlZGlyZWN0aW5n
VG9OZXdPcmlnaW4gPSBmYWxzZTsKQEAgLTUxOSw3ICs1MTksNyBAQCBib29sIFN1YnJlc291cmNl
TG9hZGVyOjpjaGVja1JlZGlyZWN0aW9uQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sKGNvbnN0IFJl
c291cmNlUgogCiAgICAgaWYgKHJlZGlyZWN0aW5nVG9OZXdPcmlnaW4pIHsKICAgICAgICAgY2xl
YW5SZWRpcmVjdGVkUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobmV3UmVxdWVzdCk7Ci0gICAgICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKG5ld1JlcXVlc3QsICptX29yaWdpbiwgb3B0
aW9ucygpLmFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbChuZXdSZXF1ZXN0LCAqbV9vcmlnaW4sIG9wdGlvbnMoKS5zdG9yZWRDcmVkZW50aWFs
c1BvbGljeSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggOWZiN2U2ZTczMmJkZjk0YWFmNDk4ZTlmNDcx
MmI2MjM5MzAxZWY1YS4uYmYzNjNiNzQyMmExZTE1MGU3NGU2ODk4NzJmNjNmOTRkMGQ0NjYxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNzgsNyAr
NzgsNyBAQCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6
aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICBjb3B5LnNlbmRMb2FkQ2FsbGJhY2tzID0gdGhpcy0+
c2VuZExvYWRDYWxsYmFja3M7CiAgICAgY29weS5zbmlmZkNvbnRlbnQgPSB0aGlzLT5zbmlmZkNv
bnRlbnQ7CiAgICAgY29weS5kYXRhQnVmZmVyaW5nUG9saWN5ID0gdGhpcy0+ZGF0YUJ1ZmZlcmlu
Z1BvbGljeTsKLSAgICBjb3B5LmFsbG93Q3JlZGVudGlhbHMgPSB0aGlzLT5hbGxvd0NyZWRlbnRp
YWxzOworICAgIGNvcHkuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSB0aGlzLT5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTsKICAgICBjb3B5LnNlY3VyaXR5Q2hlY2sgPSB0aGlzLT5zZWN1cml0eUNo
ZWNrOwogICAgIGNvcHkuY2VydGlmaWNhdGVJbmZvUG9saWN5ID0gdGhpcy0+Y2VydGlmaWNhdGVJ
bmZvUG9saWN5OwogICAgIGNvcHkuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IHRo
aXMtPmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCBhZGY3NTU4NDQzMzhkMDY5ZjU1
OGQzNWU3MGUzM2VlNGU2NGMzNjg3Li40NmEzMTdmYzU3MDUwNWY0NDYyNGE2YTFmNzMyYjQ0Mjkx
NjI3OTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkRnJvbShj
b25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgaWYgKGlzQ3Jvc3NPcmlnaW4oKSAm
JiBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpIHsKICAgICAgICAg
QVNTRVJUKG1fb3JpZ2luKTsKICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICAgICAg
aWYgKCFXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzb3VyY2UucmVzcG9uc2Uo
KSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMsICptX29yaWdpbiwgZXJyb3JNZXNzYWdlKSkg
eworICAgICAgICBpZiAoIVdlYkNvcmU6OnBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhyZXNvdXJj
ZS5yZXNwb25zZSgpLCBtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksICptX29yaWdp
biwgZXJyb3JNZXNzYWdlKSkgewogICAgICAgICAgICAgc2V0UmVzb3VyY2VFcnJvcihSZXNvdXJj
ZUVycm9yKFN0cmluZygpLCAwLCB1cmwoKSwgZXJyb3JNZXNzYWdlLCBSZXNvdXJjZUVycm9yOjpU
eXBlOjpBY2Nlc3NDb250cm9sKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDBhNjc4Y2NmODVhNzg4YTEyYTQwNDNlNGJjNmFkZjgwNTA0MGE1ZDguLmMxYjUx
NTExNzZhNGM0MTc3OGFmMGU4OTBmZjhjNDQzOWVmNzBkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMTMyNiw3
ICsxMzI2LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2xlYXJQcmVsb2FkcyhDbGVh
clByZWxvYWRzTW9kZSBtb2RlKQogCiBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVzb3VyY2VMb2FkZXJPcHRpb25zPiBvcHRpb25zKFNlbmRD
YWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFs
cywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hP
cHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1Bv
bGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXNvdXJjZUxvYWRlck9wdGlvbnM+IG9wdGlvbnMo
U2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlLCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVk
ZW50aWFscywgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSwgRG9TZWN1cml0eUNo
ZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJ
bmZvLCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrLCBEZWZl
cnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xpY3k6OkFsbG93
Q2FjaGluZyk7CiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggMTM2MmMz
MzRkMGMxNzNkNWFkZWY5OTYyMGIwYTkxMzhiYzY2NjIxMi4uNTljZjgxNTNiOTY2Nzg0YWY3YzRk
OWRkNDkzMTM2ZDA1ZmYwYmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTk5LDggKzk5LDggQEAgdm9pZCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90ZW50aWFsbHlDcm9zc09yaWdpbihjb25zdCBT
dHJpbmcmIG1vZGUsIERvY3UKICAgICAgICAgPyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpP
bWl0IDogZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobW9kZSwgInVzZS1jcmVkZW50aWFs
cyIpCiAgICAgICAgID8gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSA6IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAgbV9vcHRpb25zLmNyZWRlbnRp
YWxzID0gY3JlZGVudGlhbHM7Ci0gICAgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSBjcmVk
ZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlID8gQWxsb3dTdG9y
ZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICBXZWJDb3Jl
Ojp1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291cmNlUmVxdWVzdCwgZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpOworICAgIG1f
b3B0aW9ucy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IGNyZWRlbnRpYWxzID09IEZldGNoT3B0
aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNl
IDogU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOworICAgIFdlYkNvcmU6OnVwZGF0
ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKG1fcmVzb3VyY2VSZXF1ZXN0LCBkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLCBtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogfQogCiB2
b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6dXBkYXRlRm9yQWNjZXNzQ29udHJvbChEb2N1bWVu
dCYgZG9jdW1lbnQpCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OnVwZGF0ZUZvckFjY2Vzc0NvbnRyb2woRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIEFTU0VS
VChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAgICAgbV9v
cmlnaW4gPSAmZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKLSAgICBXZWJDb3JlOjp1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291cmNlUmVxdWVzdCwgKm1fb3JpZ2luLCBtX29w
dGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CisgICAgV2ViQ29yZTo6dXBkYXRlUmVxdWVzdEZvckFj
Y2Vzc0NvbnRyb2wobV9yZXNvdXJjZVJlcXVlc3QsICptX29yaWdpbiwgbV9vcHRpb25zLnN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5KTsKIH0KIAogdm9pZCB1cGdyYWRlSW5zZWN1cmVSZXNvdXJjZVJl
cXVlc3RJZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZW50JiBkb2N1bWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggNDA2YjIw
YzhhNWU4Y2Y4YTEwODcyNzNmNjQ2MTlkNTJhNDAwODU3Ni4uMTVkNDRmNTcyMDNhMDNkNmU0ZWUz
MDM4Y2FlOTg1Y2FmODgzNmZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxv
YWRlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmco
KQogICAgIGF1dG8gcmVzb3VyY2VSZXF1ZXN0VVJMID0gcmVzb3VyY2VSZXF1ZXN0LnVybCgpOwog
I2VuZGlmCiAKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChXVEZNb3ZlKHJlc291
cmNlUmVxdWVzdCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNv
bnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3Jl
ZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6Ok9taXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2Rl
OjpOb0NvcnMsIERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9s
aWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dE
ZWZlcnNMb2FkaW5nLCBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIFJlc291cmNl
TG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIFN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6
Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
Ok9taXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90
SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6
RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBD
YWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpKTsKIAogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9y
KGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5pY29uKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVB
VkNGUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDljMGY0
ZGRlYmZhN2VlYWQ4NDdjNWI4ZWIyM2FhMTNiMGNiYzAwYWMuLmQ5NTE4ODI5YTMyNDQyYzBlM2Rm
NjVhMjY5MzQ3MTc1NmI1YzMzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvV2Vi
Q29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBXZWJDb3Jl
QVZDRlJlc291cmNlTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIHJlc291cmNlUmVxdWVzdC5z
ZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TG93KTsKIAogICAgIC8vIENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2sgaXMgYSBwbGFjZWhvbGRlciB2
YWx1ZS4gSXQgZG9lcyBub3QgYWZmZWN0IHRoZSByZXF1ZXN0IHNpbmNlIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5IGRvZXMgbm90IGFwcGx5IHRvIHJhdyByZXNvdXJjZXMuCi0gICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fu
bm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5j
bHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Q
b2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBDYWNo
aW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhT
ZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OkRvTm90VXNlLCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tD
bGllbnRGb3JDcmVkZW50aWFscywgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCwgRG9T
ZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2Vy
dGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNo
ZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xp
Y3k6OkRpc2FsbG93Q2FjaGluZykpOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRl
ciA9IG1fcGFyZW50LT5wbGF5ZXIoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKICAgICBtX3Jl
c291cmNlID0gbG9hZGVyID8gbG9hZGVyLT5yZXF1ZXN0UmF3UmVzb3VyY2UoV1RGTW92ZShyZXF1
ZXN0KSkudmFsdWVPcihudWxscHRyKSA6IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KaW5kZXggMjdjNDkyMjA1NmI0YjBh
ODJjOTY1ZTJhOWM1ODA5ZGEzMTc5N2Y4Ni4uODQ3YTRmOTk2MmVhYjhiZDBjODc4OGM4YTFlMmJi
MmNiODgxYWFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5tbQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFdlYkNvcmVBVkZSZXNvdXJj
ZUxvYWRlcjo6c3RhcnRMb2FkaW5nKCkKIAogICAgIC8vIEZJWE1FOiBTa2lwIENvbnRlbnQgU2Vj
dXJpdHkgUG9saWN5IGNoZWNrIGlmIHRoZSBlbGVtZW50IHRoYXQgaW5pdGl0YXRlZCB0aGlzIHJl
cXVlc3QKICAgICAvLyBpcyBpbiBhIHVzZXItYWdlbnQgc2hhZG93IHRyZWUuIFNlZSA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzQ5OD4uCi0gICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fu
bm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5j
bHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Q
b2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBDYWNo
aW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhT
ZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OkRvTm90VXNlLCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tD
bGllbnRGb3JDcmVkZW50aWFscywgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCwgRG9T
ZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2Vy
dGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNo
ZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xp
Y3k6OkRpc2FsbG93Q2FjaGluZykpOwogICAgIGlmIChhdXRvKiBsb2FkZXIgPSBtX3BhcmVudC0+
cGxheWVyKCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkpCiAgICAgICAgIG1fcmVzb3VyY2UgPSBs
b2FkZXItPnJlcXVlc3RNZWRpYShXVEZNb3ZlKHJlcXVlc3QpKS52YWx1ZU9yKG51bGxwdHIpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcAppbmRleCBkYzQ3YzBkZTQ3MThhMWE5MmJmNmZkNTE4MzdiODJiZDQ5MzAyNTk3Li43
MWIyNGM0ZjNiNjdhNDQ4M2I3MDY4NTQ2MDZlZDc4YWIxM2NhYWIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTU4
LDcgKzU4LDcgQEAgc3RhdGljIFJlZjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRlQmxvYlJlc291cmNl
SGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8QmxvYlJlZ2lzdHJ5SW1wbCY+KGJsb2JSZWdpc3RyeSgpKS5jcmVhdGVSZXNvdXJjZUhhbmRs
ZShyZXF1ZXN0LCBjbGllbnQpOwogfQogCi1zdGF0aWMgdm9pZCBsb2FkQmxvYlJlc291cmNlU3lu
Y2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQorc3RhdGljIHZvaWQgbG9hZEJs
b2JSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkK
IHsKICAgICBCbG9iRGF0YSogYmxvYkRhdGEgPSBzdGF0aWNfY2FzdDxCbG9iUmVnaXN0cnlJbXBs
Jj4oYmxvYlJlZ2lzdHJ5KCkpLmdldEJsb2JEYXRhRnJvbVVSTChyZXF1ZXN0LnVybCgpKTsKICAg
ICBCbG9iUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoYmxvYkRhdGEs
IHJlcXVlc3QsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDUzZWNmNTZiNmJkM2Uy
OTNmYWZhMWUwOGVjZDFkNjRjNWNiMDIwMDEuLmJiNzFlMWRmNmVkZGVhOGEzMDRmYjJlOTJkOTdh
OTE3ZTY0YThkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0xMzAsMTQgKzEzMCwxNCBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpmYWlsdXJlVGltZXJGaXJlZCgpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
LXZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2lu
Z0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVk
Q3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQordm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgaWYgKGF1
dG8gY29uc3RydWN0b3IgPSBidWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1h
cCgpLmdldChyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygp
KSkgewotICAgICAgICBjb25zdHJ1Y3Rvcihjb250ZXh0LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50
aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKKyAgICAgICAgY29uc3RydWN0b3IoY29udGV4
dCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVycm9yLCByZXNwb25zZSwgZGF0
YSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoY29udGV4dCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMsIGVycm9yLCBy
ZXNwb25zZSwgZGF0YSk7CisgICAgcGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNv
bnRleHQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBlcnJvciwgcmVzcG9uc2Us
IGRhdGEpOwogfQogCiBSZXNvdXJjZUhhbmRsZUNsaWVudCogUmVzb3VyY2VIYW5kbGU6OmNsaWVu
dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmgKaW5kZXggYzgyY2RhOWU4N2Q2MjQ2ZWQ4OTc1MDM1Y2NhNzM0Y2QzNmVkN2JjZS4u
OWU3OTZmMTJhYTIzNzkyOThmZjMwYjVhY2M3ZTcyNGFmM2ZkNzM4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMjYsNyArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNsaWVudC5oIgot
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlVHlwZXMuaCIKKyNpbmNsdWRlICJTdG9yZWRDcmVkZW50
aWFsc1BvbGljeS5oIgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC05Myw3ICs5Myw3
IEBAIGNsYXNzIFRpbWVyOwogY2xhc3MgUmVzb3VyY2VIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSZXNvdXJjZUhhbmRsZT4sIHB1YmxpYyBBdXRoZW50aWNhdGlvbkNsaWVudCB7CiBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gY3JlYXRl
KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVu
dGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBk
YXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVj
dG9yPGNoYXI+JiBkYXRhKTsKIAogI2lmIFVTRShTT1VQKQogICAgIHN0YXRpYyBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGNyZWF0ZShTb3VwTmV0d29ya1Nlc3Npb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBz
aG91bGRDb250ZW50U25pZmYpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIFJlZjxSZXNvdXJjZUhhbmRsZT4gKCpCdWlsdGluQ29uc3RydWN0b3IpKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCk7CiAgICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29uc3QgQXRvbWljU3RyaW5n
JiBwcm90b2NvbCwgQnVpbHRpbkNvbnN0cnVjdG9yKTsKIAotICAgIHR5cGVkZWYgdm9pZCAoKkJ1
aWx0aW5TeW5jaHJvbm91c0xvYWRlcikoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVz
cG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOworICAgIHR5cGVkZWYgdm9pZCAoKkJ1aWx0aW5T
eW5jaHJvbm91c0xvYWRlcikoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVz
cG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVp
bHRpblN5bmNocm9ub3VzTG9hZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIEJ1aWx0
aW5TeW5jaHJvbm91c0xvYWRlcik7CiAKIHByb3RlY3RlZDoKQEAgLTI1Nyw3ICsyNTcsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAogICAgIGJv
b2wgc3RhcnQoKTsKLSAgICBzdGF0aWMgdm9pZCBwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRD
cmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpOworICAgIHN0YXRpYyB2b2lkIHBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rv
cjxjaGFyPiYgZGF0YSk7CiAKICAgICB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgb3Zl
cnJpZGUgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIG92
ZXJyaWRlIHsgZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlVHlwZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODcwZTc5NTdkNDhmYzUzYjNhYjU4ODAyMmI0ZGNlZTAwY2ZmNzg3My4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlVHlwZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFJlc291cmNlSGFuZGxlVHlwZXNfaAotI2RlZmlu
ZSBSZXNvdXJjZUhhbmRsZVR5cGVzX2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIFN0
b3JlZENyZWRlbnRpYWxzIHsKLSAgICBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLAotICAgIERvTm90
QWxsb3dTdG9yZWRDcmVkZW50aWFscwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gUmVzb3VyY2VIYW5kbGVUeXBlc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2UyYmVjN2M2OTM5ZDY4MTRkNTMwZjhkNzA3NTQ2NWM0NmU3ZmY0MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsK
KyAgICBEb05vdFVzZSwKKyAgICBVc2UsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcAppbmRleCBmZTdjYjljNDI2NTU3NGIyZWQ3NGQ4ZDkxMTQyNWZkNDU1
NzliMmMwLi5hZGViNWYyMzczMDJjNTM1MWVlNjBlYzFiNWRlZmYyZWYwNzQwZDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZO
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAKQEAgLTU3NSw5ICs1NzUsOSBAQCBDRlN0cmluZ1JlZiBSZXNvdXJjZUhh
bmRsZTo6c3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKQogICAgIHJldHVybiBDRlNUUigiV2Vi
Q29yZVN5bmNocm9ub3VzTG9hZGVyUnVuTG9vcE1vZGUiKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhh
bmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRp
YWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6
OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7Ci0gICAgTE9HKE5l
dHdvcmssICJSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
OiVzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHM6JXUiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCksIHN0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBMT0coTmV0d29yaywgIlJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6JXMgc3N0b3JlZENy
ZWRlbnRpYWxzUG9saWN5OiV1IiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpKTsKIAogICAg
IEFTU0VSVCghcmVxdWVzdC5pc0VtcHR5KCkpOwogCkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXgKICAgICBBU1NFUlQoZXJyb3IuaXNOdWxsKCkpOwogCiAgICAgU3lu
Y2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50OwotICAgIGNsaWVudC5zZXRBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwor
ICAgIGNsaWVudC5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOwogCiAgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwg
cmVxdWVzdCwgJmNsaWVudCwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLykpOwogCkBAIC01OTYsNyArNTk2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXgKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGhhbmRsZS0+Y3JlYXRlQ0ZVUkxD
b25uZWN0aW9uKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIFJl
c291cmNlSGFuZGxlOjpzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSksCisgICAg
aGFuZGxlLT5jcmVhdGVDRlVSTENvbm5lY3Rpb24oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0g
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgUmVzb3VyY2VIYW5kbGU6OnNob3VsZENvbnRl
bnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSwKICAgICAgICAgU2NoZWR1bGluZ0JlaGF2aW9yOjpT
eW5jaHJvbm91cywgaGFuZGxlLT5jbGllbnQoKS0+Y29ubmVjdGlvblByb3BlcnRpZXMoaGFuZGxl
LmdldCgpKS5nZXQoKSk7CiAKICAgICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZVdpdGhSdW5Mb29w
KGhhbmRsZS0+Y29ubmVjdGlvbigpLCBDRlJ1bkxvb3BHZXRDdXJyZW50KCksIHN5bmNocm9ub3Vz
TG9hZFJ1bkxvb3BNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCAyYTc4Y2VhNDEx
OWExZjFlOGZjZDQ0NTNkYjQ4ZmE2N2ZlMjRmODRhLi5mZWVlZWMzM2ZhMWUzYWRiNGEzNmRiM2E0
MDYyZTcxMDBlNzhlMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtMjMwLDcgKzIzMCw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6
OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBW
ZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQppbmRleCAxYzc0YjM5NmM3MTg4ZTc3NjE3NWU2OTgxYmRlOTNlOTEzODI3ZTVl
Li43YmYzNjEwZDgxMWJmMWI1NzJmZmViNDg1MDQ4Mzg2ZDc2MTVkM2YyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQpAQCAtMzg5LDE0ICszODksMTQgQEAgQ0ZTdHJpbmdSZWYgUmVzb3VyY2VIYW5kbGU6OnN5
bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlKCkKICAgICByZXR1cm4gQ0ZTVFIoIldlYkNvcmVTeW5j
aHJvbm91c0xvYWRlclJ1bkxvb3BNb2RlIik7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OnBs
YXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9y
ZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCit2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9y
bUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewotICAgIExPRyhOZXR3b3JrLCAi
UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseTolQCBhbGxv
d1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVI
VFRQQm9keSksIHN0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBMT0coTmV0d29yaywgIlJlc291cmNl
SGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6JUAgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6JXUiLCByZXF1ZXN0Lm5zVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5
KSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KSk7CiAKICAg
ICBBU1NFUlQoIXJlcXVlc3QuaXNFbXB0eSgpKTsKICAgICAKICAgICBTeW5jaHJvbm91c0xvYWRl
ckNsaWVudCBjbGllbnQ7Ci0gICAgY2xpZW50LnNldEFsbG93U3RvcmVkQ3JlZGVudGlhbHMoc3Rv
cmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CisgICAgY2xpZW50LnNl
dEFsbG93U3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3k6OlVzZSk7CiAKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhh
bmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmY2xp
ZW50LCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiov
KSk7CiAKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleAogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9
IHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgYm9vbCBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBoYW5k
bGUtPmNyZWF0ZU5TVVJMQ29ubmVjdGlvbigKICAgICAgICAgaGFuZGxlLT5tYWtlRGVsZWdhdGUo
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCBm
MzA1NWViYzgwYzgyZjJmMjI3ZGQzOTg2MTUzMjY0YjQ5NGU3NjI5Li5kZTFmNDllOWE3MTkxMzg0
MTQ1YTlhZTZlOTlkZTY4MzFkODE2ZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtOTY0
LDcgKzk2NCw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGlu
Zyhib29sIGRlZmVyc0xvYWRpbmcpCiAgICAgfQogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpw
bGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJl
c291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxh
dGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFJlc291cmNlRXJyb3Im
LCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JikKIHsKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUGVuZGlu
Z1Jlc291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVBlbmRpbmdSZXNvdXJj
ZXMuY3BwCmluZGV4IDEwMzE5ZjgyM2VkMDMxNGIyZWIzODI1ODkwYmVjMzU3MDcwMzE1ZWQuLjUx
ODQwOWRjNWM4NWRkZDZmZmIxOGM0OTA1ZjViZjc1YmNiYWNiYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUGVuZGluZ1Jlc291cmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVQZW5kaW5nUmVzb3VyY2VzLmNwcApAQCAtNTMsNyArNTMsNyBAQCBz
dGF0aWMgdm9pZCBsb2FkUGVuZGluZ0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3R5
bGVJbWFnZSogc3R5bGVJbWFnZSwgYwogICAgIC8vIEZJWE1FOiBXaHkgZG9lcyBzaGFwZS1vdXRz
aWRlIGhhdmUgZGlmZmVyZW50IHBvbGljeSB0aGFuIG90aGVyIHByb3BlcnRpZXM/CiAgICAgaWYg
KGxvYWRQb2xpY3kgPT0gTG9hZFBvbGljeTo6U2hhcGVPdXRzaWRlKSB7CiAgICAgICAgIG9wdGlv
bnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKLSAgICAgICAgb3B0aW9ucy5hbGxv
d0NyZWRlbnRpYWxzID0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgICAgICBvcHRp
b25zLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRv
Tm90VXNlOwogICAgICAgICBvcHRpb25zLnNhbWVPcmlnaW5EYXRhVVJMRmxhZyA9IFNhbWVPcmln
aW5EYXRhVVJMRmxhZzo6U2V0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJv
Y2Vzc29yTGlieHNsdC5jcHAKaW5kZXggODI0N2QyMDA1MzEwM2RmYzFmMzhhNWE4ZDkzYmU0ZjZh
YjlkYTk1ZS4uMWNhMzg0ODBkYTFlNTFhYzVjMzQ1ODlmZjhmNjEwOTA4YzRlN2VhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0xMjgsNyArMTI4
LDcgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbENoYXIqIHVyaSwK
IAogICAgICAgICBib29sIHJlcXVlc3RBbGxvd2VkID0gZ2xvYmFsQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmZyYW1lKCkgJiYgZ2xvYmFsQ2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdCh1cmwpOwogICAgICAgICBpZiAocmVxdWVzdEFsbG93
ZWQpIHsKLSAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291cmNlTG9hZGVyLT5mcmFtZSgpLT5s
b2FkZXIoKS5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHVybCwgQWxsb3dTdG9yZWRDcmVkZW50
aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMs
IGVycm9yLCByZXNwb25zZSwgZGF0YSk7CisgICAgICAgICAgICBnbG9iYWxDYWNoZWRSZXNvdXJj
ZUxvYWRlci0+ZnJhbWUoKS0+bG9hZGVyKCkubG9hZFJlc291cmNlU3luY2hyb25vdXNseSh1cmws
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UsIENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1h
eUFza0NsaWVudEZvckNyZWRlbnRpYWxzLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAg
ICAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIHJlcXVlc3RBbGxvd2Vk
ID0gZ2xvYmFsQ2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCkuY2FuUmVxdWVzdChyZXNwb25zZS51cmwoKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChkYXRh
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ckxpYnhtbDIuY3BwCmluZGV4IDRiMWIzYWM2YTUzNmY3OTdkMWQ1NjdjMDliNTE1OTQ3YjE4ZDJm
YmEuLmUwNTNiMDBlOWNhM2Q1ZDUyNjJjMjAwMDhkZDYyYWFhY2JiNzBkMWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAKQEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0aWMgdm9pZCogb3BlbkZ1bmMoY29uc3QgY2hhciog
dXJpKQogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGds
b2JhbCBlcnJvciBoYW5kbGVyIGFzIHdlbGwuCiAKICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNl
TG9hZGVyLT5mcmFtZSgpKQotICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPmZyYW1l
KCktPmxvYWRlcigpLmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkodXJsLCBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVkZW50
aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKKyAgICAgICAgICAgIGNhY2hlZFJlc291cmNl
TG9hZGVyLT5mcmFtZSgpLT5sb2FkZXIoKS5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHVybCwg
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5
QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgfQog
CiAgICAgLy8gV2UgaGF2ZSB0byBjaGVjayB0aGUgVVJMIGFnYWluIGFmdGVyIHRoZSBsb2FkIHRv
IGNhdGNoIHJlZGlyZWN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4IDRmOWY0NjY2NGQ4OGYy
ZDIzZjY3NjI1MGJlMGE1ZDUzNjg5OWM0ZmMuLjZlMGFkYjM5ZWU5MGRkOWYzYmM2MDllZTUzYmU5
NjJlOTdhMzQ0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lk
IERvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyogY29ubmVjdGlvbiwgUAogICAgIHBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGlj
eSA9IENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzOwog
ICAgIGlmIChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkgJiYgY29ubmVjdGlvbikKICAg
ICAgICAgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMgPSBOZXR3b3JrQmxvYlJlZ2lzdHJ5
OjpzaW5nbGV0b24oKS5maWxlc0luQmxvYigqY29ubmVjdGlvbiwgcmVxdWVzdC51cmwoKSk7Ci0g
ICAgcGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gc2Vzc2lvbklELmlzRXBoZW1l
cmFsKCkgPyBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBBbGxvd1N0b3JlZENyZWRlbnRp
YWxzOworICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzZXNzaW9uSUQu
aXNFcGhlbWVyYWwoKSA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSA6IFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CiAKICAgICBtX3BlbmRpbmdEb3dubG9hZHMuYWRkKGRv
d25sb2FkSUQsIHN0ZDo6bWFrZV91bmlxdWU8UGVuZGluZ0Rvd25sb2FkPihXVEZNb3ZlKHBhcmFt
ZXRlcnMpLCBkb3dubG9hZElELCAqbmV0d29ya1Nlc3Npb24sIHN1Z2dlc3RlZE5hbWUpKTsKICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggZjU4ZmY2ZjczZDg2NzE1NjVmM2EzZmM2
ODUyMGQ3YzFlMzllMTI2Ni4uNDgyODJiYzU3M2ExZjY4NzQzYTlmYTUyYjY3NTUxNDE0NmIwMGEy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1By
ZWZsaWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVyCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkQ29tcGxldGUg
aHR0cF9zdGF0dXNfY29kZTogJWQiLCBtX3Jlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCiAg
ICAgU3RyaW5nIGVycm9yRGVzY3JpcHRpb247Ci0gICAgaWYgKCF2YWxpZGF0ZVByZWZsaWdodFJl
c3BvbnNlKG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3QsIG1fcmVzcG9uc2UsIG1fcGFyYW1l
dGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLCBl
cnJvckRlc2NyaXB0aW9uKSkgeworICAgIGlmICghdmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZSht
X3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0LCBtX3Jlc3BvbnNlLCBtX3BhcmFtZXRlcnMuc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4sIGVycm9yRGVz
Y3JpcHRpb24pKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZENvbXBsZXRl
LCBBY2Nlc3NDb250cm9sIGVycm9yOiAlcyIsIGVycm9yRGVzY3JpcHRpb24udXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgIG1fY29tcGxldGlvbkNhbGxiYWNrKFJlc3VsdDo6RmFpbHVyZSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCmluZGV4IGZhNzRhMDUyMzkxZjNiMDlhMzEx
ZmZjMDBhMzY2MTQwZTI3ZWIxY2MuLjE2MDc3ZDIyYjcyOWE1MzgwZTEzMjczN2ZiOGU4YWQ0ZTE5
NTgxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaApAQCAtMjgsOSArMjgsOSBAQAogI2lmIFVTRShO
RVRXT1JLX1NFU1NJT04pCiAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxwYWwv
U2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKQEAgLTQ3LDcgKzQ3LDcg
QEAgcHVibGljOgogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1
ZXN0OwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNvdXJjZU9yaWdpbjsK
ICAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwotICAgICAgICBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgICAgICBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICB9Owog
ICAgIGVudW0gY2xhc3MgUmVzdWx0IHsgU3VjY2VzcywgRmFpbHVyZSB9OwogICAgIHVzaW5nIENv
bXBsZXRpb25DYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChSZXN1bHQpPjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYmE3ZDE5ZDRjNTc5OWEzNDc2M2FlZDUxOWRlNTlmNjdm
ZTIzMGViOS4uNzAzZDU5MWMyNGJiZTkwZTZmMDdmNGNiNWI5NDRhYTZhZWJjN2MzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYmIGxvYQogICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gY29udGV4dCA9IFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklELCBsb2Fk
UGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKIAog
ICAgIC8vIFBpbmdIYW5kbGUgbWFuYWdlcyBpdHMgb3duIGxpZmV0aW1lLCBkZWxldGluZyBpdHNl
bGYgd2hlbiBpdHMgcHVycG9zZSBoYXMgYmVlbiBmdWxmaWxsZWQuCi0gICAgbmV3IFBpbmdIYW5k
bGUoY29udGV4dC5nZXQoKSwgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCwgbG9hZFBhcmFtZXRlcnMu
YWxsb3dTdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBQaW5nSGFu
ZGxlOjpVc2VzQXN5bmNDYWxsYmFja3M6OlllcywgbG9hZFBhcmFtZXRlcnMuc2hvdWxkRm9sbG93
UmVkaXJlY3RzLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlm
aWVyID0gbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcl0gKGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKSB7CisgICAgbmV3IFBpbmdIYW5kbGUoY29udGV4dC5nZXQoKSwgbG9hZFBhcmFtZXRlcnMu
cmVxdWVzdCwgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2FsbGJhY2tzOjpZ
ZXMsIGxvYWRQYXJhbWV0ZXJzLnNob3VsZEZvbGxvd1JlZGlyZWN0cywgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IGxvYWRQYXJhbWV0ZXJzLmlkZW50
aWZpZXJdIChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgewogICAgICAgICBkaWRGaW5pc2hQ
aW5nTG9hZChpZGVudGlmaWVyLCBlcnJvcik7CiAgICAgfSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBlYWFlM2Rh
OGU4YzNiOTllNGU1NmFhZGE0YTRlYjQ1OGIwZjMyMTBkLi5jOTNmOGZlYzlmYTNhMTIxZDc3OTk0
OTNlNmRlMTdjNWE5MzQwZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC01MywxOSArNTMsMTkgQEAgUmVmPE5ldHdvcmtEYXRh
VGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXQKICAgICAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNyZWF0ZShzZXNz
aW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5jb250ZW50U25pZmZp
bmdQb2xpY3ksIHBhcmFtZXRlcnMuYmxvYkZpbGVSZWZlcmVuY2VzKTsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24s
IGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVu
dGlhbHMsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVybiBOZXR3b3Jr
RGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0
LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRT
bmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KTsKICNlbmRpZgogI2lmIFVTRShTT1VQKQotICAgIHJldHVybiBOZXR3b3JrRGF0
YVRhc2tTb3VwOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBh
cmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscywgcGFyYW1ldGVycy5jb250ZW50U25pZmZp
bmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCk7CisgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBj
bGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAjZW5kaWYKIH0KIAotTmV0d29y
a0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCitOZXR3b3JrRGF0YVRh
c2s6Ok5ldHdvcmtEYXRhVGFzayhOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFU
YXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVk
ZW50aWFscywgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICA6IG1f
ZmFpbHVyZVRpbWVyKCp0aGlzLCAmTmV0d29ya0RhdGFUYXNrOjpmYWlsdXJlVGltZXJGaXJlZCkK
ICAgICAsIG1fc2Vzc2lvbihzZXNzaW9uKQogICAgICwgbV9jbGllbnQoJmNsaWVudCkKICAgICAs
IG1fcGFydGl0aW9uKHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMuY2FjaGVQYXJ0aXRpb24oKSkKLSAg
ICAsIG1fc3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVkQ3JlZGVudGlhbHMpCisgICAgLCBtX3N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQogICAgICwgbV9sYXN0
SFRUUE1ldGhvZChyZXF1ZXN0V2l0aENyZWRlbnRpYWxzLmh0dHBNZXRob2QoKSkKICAgICAsIG1f
Zmlyc3RSZXF1ZXN0KHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMpCiAgICAgLCBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5oCmluZGV4IDZhN2RmOTA2YjkzYzI4YmE3YTMyMzI5MmI3N2IzYWQxMTE3YzU5ZmMu
LmU1NTE1ZWNkZTU4MTdhMjcxNjA3NTE3MjIzYjUyM2JiNGQxNzdmZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaApAQCAtMzIsOSArMzIsOSBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZVR5cGVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMzAsNyArMTMwLDcg
QEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uKCkgeyByZXR1cm4gbV9wYXJ0
aXRpb247IH0KIAogcHJvdGVjdGVkOgotICAgIE5ldHdvcmtEYXRhVGFzayhOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtEYXRhVGFzayhOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAgICAgZW51bSBGYWlsdXJlVHlwZSB7CiAg
ICAgICAgIE5vRmFpbHVyZSwKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcm90ZWN0ZWQ6CiAjaWYgVVNF
KENSRURFTlRJQUxfU1RPUkFHRV9XSVRIX05FVFdPUktfU0VTU0lPTikKICAgICBXZWJDb3JlOjpD
cmVkZW50aWFsIG1faW5pdGlhbENyZWRlbnRpYWw7CiAjZW5kaWYKLSAgICBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFscyBtX3N0b3JlZENyZWRlbnRpYWxzIHsgV2ViQ29yZTo6RG9Ob3RBbGxvd1N0
b3JlZENyZWRlbnRpYWxzIH07CisgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
bV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSB7IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OjpEb05vdFVzZSB9OwogICAgIFN0cmluZyBtX2xhc3RIVFRQTWV0aG9kOwogICAgIFN0cmlu
ZyBtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCBtX2ZpcnN0UmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwCmluZGV4IDA5NjEyNzMyYTVlMzFhZWVmMTZjYWRmN2U5
ZTFkMWE2NjE3OGNjZTUuLmI5ZjA1YzVmYWUwYTRhMmYzMjljYzM0MmFjNjg5MTlhYjRkNWU2NGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
QmxvYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2tCbG9iLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogaHR0cEludGVy
bmFsRXJyb3JUZXh0ID0gIkludGVybmFsIFNlcnZlciBFcnJvciI7CiBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3Qgd2ViS2l0QmxvYlJlc291cmNlRG9tYWluID0gIldlYktpdEJsb2JSZXNvdXJjZSI7
CiAKIE5ldHdvcmtEYXRhVGFza0Jsb2I6Ok5ldHdvcmtEYXRhVGFza0Jsb2IoTmV0d29ya1Nlc3Np
b24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPj4m
IGZpbGVSZWZlcmVuY2VzKQotICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwg
cmVxdWVzdCwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBmYWxzZSkKKyAgICA6IE5ldHdv
cmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OjpEb05vdFVzZSwgZmFsc2UpCiAgICAgLCBtX3N0cmVhbShzdGQ6Om1ha2VfdW5pcXVlPEFz
eW5jRmlsZVN0cmVhbT4oKnRoaXMpKQogICAgICwgbV9maWxlUmVmZXJlbmNlcyhmaWxlUmVmZXJl
bmNlcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAK
aW5kZXggNGQxMDc1Y2U4YTI5YTE0YTA5MTk4YzY2YTIyMjAzOGJjZThiZDc1MC4uY2M1NGIyMTY3
NDcxYjAxNDZlOTIyMGU5NThlZDZlNWMxYTExZTVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTU1Nyw3ICs1NTcsNyBAQCBib29sIE5ldHdv
cmtMb2FkOjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSogaGFuZGxl
KQogCiAgICAgLy8gV2Ugc3RpbGwgbmVlZCB0aGlzIHN5bmMgdmVyc2lvbiwgYmVjYXVzZSBSZXNv
dXJjZUhhbmRsZSBpdHNlbGYgdXNlcyBpdCBpbnRlcm5hbGx5LCBldmVuIHdoZW4gdGhlIGRlbGVn
YXRlIHVzZXMgYW4gYXN5bmMgb25lLgogCi0gICAgcmV0dXJuIG1fcGFyYW1ldGVycy5hbGxvd1N0
b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgcmV0dXJuIG1f
cGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6VXNlOwogfQogCiB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDY3YmYwNTgzNjMyMzAxZTg5ZTY0ZmYw
ZDUxMjAzNDUxNTUwZDczZDEuLjFmYmQyZGE0OTFkODc2ZjFhYWI5ZDEyOGU4MzRmZTRkNzFkNDkx
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZFBhcmFtZXRlcnMuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEIHsgUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsKICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpDb250ZW50U25p
ZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6U25pZmZDb250ZW50
IH07Ci0gICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFs
cyB7IFdlYkNvcmU6OkRvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscyB9OworICAgIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIH07CiAgICAgV2ViQ29yZTo6Q2xp
ZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5IHsgV2ViQ29yZTo6Q2xp
ZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMgfTsKICAg
ICBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IHRydWUgfTsKICAgICBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMuY3BwCmluZGV4IDkwODdlYTNiMDdiOWRiZDUyNzIyN2Q3YjVkYTc4YTIwMjQwYjc2
ZWYuLjcxN2JmODgyZWQ0MDFjMWRiZWQ0YTU3NWFlNWFkYTk0MjMzOWMzZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAg
fQogCiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNvbnRlbnRTbmlmZmluZ1BvbGljeSk7Ci0gICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKGFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOworICAgIGVuY29kZXIu
ZW5jb2RlRW51bShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAgICAgZW5jb2Rlci5lbmNvZGVF
bnVtKGNsaWVudENyZWRlbnRpYWxQb2xpY3kpOwogICAgIGVuY29kZXIgPDwgc2hvdWxkRm9sbG93
UmVkaXJlY3RzOwogICAgIGVuY29kZXIgPDwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdDsKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyYwog
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmNvbnRlbnRTbmlmZmluZ1BvbGlj
eSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShy
ZXN1bHQuYWxsb3dTdG9yZWRDcmVkZW50aWFscykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocmVzdWx0LnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5jbGllbnRDcmVkZW50aWFsUG9s
aWN5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1BpbmdMb2FkLmNwcAppbmRleCAwOTQyZTgwMGFhMGYxZTAwNTcwY2ZlOTBmMzE1ZTc5NTNlNWU3
MjUyLi45NjkxMTQwNzM4YWFiNmY2YjVkZjk3YzFiNzcwNjhmNWZhZWZiYzFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHZv
aWQgUGluZ0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFJlc291cmNlUmVzcG9uc2Um
JiByZWRpcmVjdFJlc3BvbnNlLCBSCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Bh
cmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IERvTm90QWxsb3dTdG9yZWRDcmVkZW50
aWFsczsKKyAgICBtX3BhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAgICAgbV9yZWRpcmVjdEhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKIAogICAgIC8vIExldCdzIGZldGNoIHRoZSByZXF1ZXN0
IHdpdGggdGhlIG9yaWdpbmFsIGhlYWRlcnMgKGVxdWl2YWxlbnQgdG8gcmVxdWVzdCBjbG9uaW5n
IHNwZWNpZmllZCBieSBmZXRjaCBhbGdvcml0aG0pLgpAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQg
UGluZ0xvYWQ6Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCkKICAgICB9CiAKICAgICBtX2lzU2ltcGxlUmVxdWVzdCA9IGZhbHNlOwotICAgIGlm
IChDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKS5jYW5Ta2lwUHJl
ZmxpZ2h0KHNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSwgcmVxdWVzdC51cmwoKSwgbV9wYXJh
bWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIHJlcXVlc3QuaHR0cE1ldGhvZCgpLCBtX29y
aWdpbmFsUmVxdWVzdEhlYWRlcnMpKSB7CisgICAgaWYgKENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGlnaHQoc2VjdXJpdHlPcmlnaW4oKS50
b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX3BhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIHJlcXVlc3QuaHR0cE1ldGhvZCgpLCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIm1ha2VDcm9zc09yaWdpbkFjY2Vzc1Jl
cXVlc3QgLSBwcmVmbGlnaHQgY2FuIGJlIHNraXBwZWQgdGhhbmtzIHRvIGNhY2hlZCByZXN1bHQi
KTsKICAgICAgICAgcHJlZmxpZ2h0U3VjY2VzcyhXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICB9IGVs
c2UKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIFBpbmdMb2FkOjptYWtlU2ltcGxlQ3Jvc3NPcmln
aW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBz
ZWN1cml0eU9yaWdpbigpLCBtX3BhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyk7Cisg
ICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgc2VjdXJpdHlPcmlnaW4o
KSwgbV9wYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKICAgICBsb2FkUmVxdWVz
dChXVEZNb3ZlKHJlcXVlc3QpKTsKIH0KIApAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgUGluZ0xv
YWQ6Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3RXaXRoUHJlZmxpZ2h0KFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlCiAgICAgICAgIFdURk1vdmUocmVxdWVzdCksCiAgICAgICAgIHNlY3VyaXR5
T3JpZ2luKCksCiAgICAgICAgIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsCi0gICAgICAgIG1fcGFy
YW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzCisgICAgICAgIG1fcGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeQogICAgIH07CiAgICAgbV9jb3JzUHJlZmxpZ2h0Q2hlY2tlciA9
IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyPihXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBbdGhpc10oTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpSZXN1bHQgcmVz
dWx0KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIm1ha2VDcm9zc09yaWdpbkFj
Y2Vzc1JlcXVlc3RXaXRoUHJlZmxpZ2h0IHByZWZsaWdodCBjb21wbGV0ZSwgc3VjY2VzczogJWQg
Zm9yUmVkaXJlY3Q/ICVkIiwgcmVzdWx0ID09IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6
UmVzdWx0OjpTdWNjZXNzLCAhIW1fcmVkaXJlY3RIYW5kbGVyKTsKQEAgLTMwMSw3ICszMDEsNyBA
QCB2b2lkIFBpbmdMb2FkOjpwcmVmbGlnaHRTdWNjZXNzKFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QpCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicHJlZmxpZ2h0U3VjY2VzcyIpOwogCiAg
ICAgUmVzb3VyY2VSZXF1ZXN0IGFjdHVhbFJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwotICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGFjdHVhbFJlcXVlc3QsIHNlY3VyaXR5T3Jp
Z2luKCksIG1fcGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICB1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChhY3R1YWxSZXF1ZXN0LCBzZWN1cml0eU9yaWdpbigpLCBt
X3BhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogCiAgICAgaWYgKGF1dG8gcmVk
aXJlY3RIYW5kbGVyID0gc3RkOjpleGNoYW5nZShtX3JlZGlyZWN0SGFuZGxlciwgbnVsbHB0cikp
CiAgICAgICAgIHJlZGlyZWN0SGFuZGxlcihXVEZNb3ZlKGFjdHVhbFJlcXVlc3QpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Bl
Y3VsYXRpdmVMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcAppbmRleCBjZmY1ZmIyOGU2NzUwZWMxMWE5Nzgz
MDdlOTc0NTE5M2E2NjhiZGE5Li5iNDE2ODZjZjdkOGFmMDhkNDYzODAyMjkwN2MyYWJmODgxMTY2
MTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIFNwZWN1bGF0aXZlTG9hZDo6U3BlY3VsYXRpdmVMb2FkKENhY2hlJiBjYWNoZSwgY29uc3Qg
R2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgY29uCiAKICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMg
cGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCk7Ci0gICAgcGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxz
ID0gQWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZTsKICAgICBwYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IERvTm90U25pZmZDb250ZW50OwogICAgIHBhcmFtZXRl
cnMucmVxdWVzdCA9IG1fb3JpZ2luYWxSZXF1ZXN0OwogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29y
a0RhdGFUYXNrUmVwbGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwCmluZGV4IDMwZDczMDI1Mjc5Mjk2NDQ0NDllMDhk
MzliNmMwNDA4MGM1NDc1NmQuLjVlNjBiNjU0NTZmOWJiNzNmZTkxYmIyMWI5YTg4NjdmMmNkMDcw
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3
b3JrRGF0YVRhc2tSZXBsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVz
cGFjZSBOZXR3b3JrQ2FwdHVyZSB7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgd2ViS2l0UmVs
YXlEb21haW4gPSAiV2ViS2l0UmVwbGF5IjsKIAogTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpOZXR3
b3JrRGF0YVRhc2tSZXBsYXkoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IFJlc291cmNlKiByZXNvdXJjZSkKLSAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGll
bnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxz
LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisg
ICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICAsIG1fY3VycmVudFJlcXVlc3Qo
bV9maXJzdFJlcXVlc3QpCiAgICAgLCBtX3Jlc291cmNlKHJlc291cmNlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCmluZGV4IGRmYWY2NmQzOGY0YWJhMTMyNzMwYjg3NTJlOGJiZTNhODgyNDU4YjEuLmNk
ZjQzMjRjMDZiZDZjNzExMDA3NDcwNmU1Mjk1MjE5ODBmMDQzYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5l
dHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUmVmPE5l
dHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwg
Y2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgc2hvdWxkQ29udGVudFNuaWZmLCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVx
dWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KIAogICAgIH5OZXR3
b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25l
dHdvcmtMb2FkTWV0cmljczsgfQogCiBwcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkNv
bnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAK
ICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCmluZGV4IGE0ODQ3NmU3ZGVhMThhNDVhYzUzNjQ0ZTg3MzYyNmNh
Y2I0ZmUxZDkuLjk5N2UwZWUxYWY2ODgzZWU3MjhkMzAwMDQ4Y2M2YjJlZDQ5ZDI0OTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbQpAQCAtNzQsMTUgKzc0LDE1IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJM
U2Vzc2lvblRhc2tQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0
eSkKICAgICByZXR1cm4gTlNVUkxTZXNzaW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0
d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KQotICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVz
dFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHMsIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFU
YXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYg
Y2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVu
dGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZm
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgOiBO
ZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gcmVxdWVzdCA9IHJlcXVlc3RXaXRoQ3JlZGVu
dGlhbHM7CiAgICAgYXV0byB1cmwgPSByZXF1ZXN0LnVybCgpOwotICAgIGlmIChzdG9yZWRDcmVk
ZW50aWFscyA9PSBXZWJDb3JlOjpBbGxvd1N0b3JlZENyZWRlbnRpYWxzICYmIHVybC5wcm90b2Nv
bElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICBpZiAoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0g
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSAmJiB1cmwucHJvdG9jb2xJc0lu
SFRUUEZhbWlseSgpKSB7CiAgICAgICAgIG1fdXNlciA9IHVybC51c2VyKCk7CiAgICAgICAgIG1f
cGFzc3dvcmQgPSB1cmwucGFzcygpOwogICAgICAgICByZXF1ZXN0LnJlbW92ZUNyZWRlbnRpYWxz
KCk7CkBAIC0xMTIsMTEgKzExMiwxMSBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0Rh
dGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogCiAgICAg
YXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1f
c2Vzc2lvbi5nZXQoKSk7CiAgICAgaWYgKHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCku
c2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKSB7Ci0gICAgICAgIHN0b3JlZENyZWRlbnRpYWxz
ID0gV2ViQ29yZTo6RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICBtX3N0b3Jl
ZENyZWRlbnRpYWxzID0gV2ViQ29yZTo6RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAg
ICAgICBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpEb05vdFVzZTsKKyAgICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKICAgICB9CiAKLSAgICBp
ZiAoc3RvcmVkQ3JlZGVudGlhbHMgPT0gV2ViQ29yZTo6QWxsb3dTdG9yZWRDcmVkZW50aWFscykg
eworICAgIGlmIChzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTo6VXNlKSB7CiAgICAgICAgIG1fdGFzayA9IFtjb2NvYVNlc3Npb24ubV9z
ZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlIGRhdGFUYXNrV2l0aFJlcXVlc3Q6bnNSZXF1ZXN0
XTsKICAgICAgICAgQVNTRVJUKCFjb2NvYVNlc3Npb24ubV9kYXRhVGFza01hcFdpdGhDcmVkZW50
aWFscy5jb250YWlucyhbbV90YXNrIHRhc2tJZGVudGlmaWVyXSkpOwogICAgICAgICBjb2NvYVNl
c3Npb24ubV9kYXRhVGFza01hcFdpdGhDcmVkZW50aWFscy5hZGQoW21fdGFzayB0YXNrSWRlbnRp
Zmllcl0sIHRoaXMpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpO
ZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFU
CiAgICAgfQogCiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCi0gICAg
aWYgKHN0b3JlZENyZWRlbnRpYWxzID09IFdlYkNvcmU6OkFsbG93U3RvcmVkQ3JlZGVudGlhbHMp
IHsKKyAgICBpZiAoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k6OlVzZSkgewogICAgICAgICBTdHJpbmcgc3RvcmFnZVBhcnRpdGlvbiA9
IHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRpdGlvbihy
ZXF1ZXN0KTsKICAgICAgICAgaWYgKCFzdG9yYWdlUGFydGl0aW9uLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBQYXJ0aXRpb25pbmcgY29va2llcyBm
b3IgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1
dGVTdHJpbmcuVVRGOFN0cmluZyk7CkBAIC0xNDgsNyArMTQ4LDcgQEAgTmV0d29ya0RhdGFUYXNr
Q29jb2E6On5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1
dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nl
c3Npb24uZ2V0KCkpOwotICAgIGlmIChtX3N0b3JlZENyZWRlbnRpYWxzID09IFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzOjpBbGxvd1N0b3JlZENyZWRlbnRpYWxzKSB7CisgICAgaWYgKG1fc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OlVzZSkgewogICAgICAgICBBU1NFUlQoY29jb2FTZXNzaW9uLm1fZGF0YVRhc2tNYXBXaXRoQ3Jl
ZGVudGlhbHMuZ2V0KFttX3Rhc2sgdGFza0lkZW50aWZpZXJdKSA9PSB0aGlzKTsKICAgICAgICAg
Y29jb2FTZXNzaW9uLm1fZGF0YVRhc2tNYXBXaXRoQ3JlZGVudGlhbHMucmVtb3ZlKFttX3Rhc2sg
dGFza0lkZW50aWZpZXJdKTsKICAgICB9IGVsc2UgewpAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wg
TmV0d29ya0RhdGFUYXNrQ29jb2E6OnRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25z
dCBXZWJDb3JlOjpBdXRoZW50CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAo
IW1fdXNlci5pc051bGwoKSAmJiAhbV9wYXNzd29yZC5pc051bGwoKSkgewotICAgICAgICBhdXRv
IHBlcnNpc3RlbmNlID0gbV9zdG9yZWRDcmVkZW50aWFscyA9PSBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsczo6QWxsb3dTdG9yZWRDcmVkZW50aWFscyA/IFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJz
aXN0ZW5jZUZvclNlc3Npb24gOiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOwor
ICAgICAgICBhdXRvIHBlcnNpc3RlbmNlID0gbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlID8gV2ViQ29yZTo6Q3JlZGVudGlh
bFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiA6IFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5v
bmU7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlz
cG9zaXRpb246OlVzZUNyZWRlbnRpYWwsIFdlYkNvcmU6OkNyZWRlbnRpYWwobV91c2VyLCBtX3Bh
c3N3b3JkLCBwZXJzaXN0ZW5jZSkpOwogICAgICAgICBtX3VzZXIgPSBTdHJpbmcoKTsKICAgICAg
ICAgbV9wYXNzd29yZCA9IFN0cmluZygpOwpAQCAtMjc2LDcgKzI3Niw3IEBAIGJvb2wgTmV0d29y
a0RhdGFUYXNrQ29jb2E6OnRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJD
b3JlOjpBdXRoZW50CiAgICAgfQogCiAjaWYgVVNFKENSRURFTlRJQUxfU1RPUkFHRV9XSVRIX05F
VFdPUktfU0VTU0lPTikKLSAgICBpZiAobV9zdG9yZWRDcmVkZW50aWFscyA9PSBXZWJDb3JlOjpB
bGxvd1N0b3JlZENyZWRlbnRpYWxzKSB7CisgICAgaWYgKG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgPT0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSkgewogICAgICAgICBp
ZiAoIW1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpIHx8IGNoYWxsZW5nZS5wcmV2aW91c0Zh
aWx1cmVDb3VudCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwgd2Fz
bid0IGFjY2VwdGVkLCBzdG9wIHVzaW5nIGl0LgogICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSBy
YWNlIGNvbmRpdGlvbiBoZXJlLCBzaW5jZSBhIGRpZmZlcmVudCBjcmVkZW50aWFsIG1pZ2h0IGhh
dmUgYWxyZWFkeSBiZWVuIHN0b3JlZCBieSBhbm90aGVyIFJlc291cmNlSGFuZGxlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9u
Q29jb2EuaAppbmRleCA3OWM1YzJhOWRkZWJmNzYwNjcyZDdlYzdjNzVkNDc5NTc0MGFiMmE1Li40
NThjMGFlYjVjNjdmZTZmMTE2YTU2NzQ4ODViNGU3ZWUwNjRiYmNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
aApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0Q1REYXRhQ29u
bmVjdGlvblNlcnZpY2VUeXBlKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKLSAgICBOZXR3b3Jr
RGF0YVRhc2tDb2NvYSogZGF0YVRhc2tGb3JJZGVudGlmaWVyKE5ldHdvcmtEYXRhVGFza0NvY29h
OjpUYXNrSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMpOworICAgIE5ldHdv
cmtEYXRhVGFza0NvY29hKiBkYXRhVGFza0ZvcklkZW50aWZpZXIoTmV0d29ya0RhdGFUYXNrQ29j
b2E6OlRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAK
ICAgICB2b2lkIGFkZERvd25sb2FkSUQoTmV0d29ya0RhdGFUYXNrQ29jb2E6OlRhc2tJZGVudGlm
aWVyLCBEb3dubG9hZElEKTsKICAgICBEb3dubG9hZElEIGRvd25sb2FkSUQoTmV0d29ya0RhdGFU
YXNrQ29jb2E6OlRhc2tJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCBmMjgzYWNi
YmNjYWVmOTUwZjNjNzgzMmMyYjZjYzBkNDliMjVjMzBlLi42MDkwNmNhZjAzMGI5NjJiZmRjYzMz
NjM4MjU3OWRkOGVjMjE2NjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0xMjYsOCArMTI2LDgg
QEAgc3RhdGljIFdlYkNvcmU6Ok5ldHdvcmtMb2FkUHJpb3JpdHkgdG9OZXR3b3JrTG9hZFByaW9y
aXR5KGZsb2F0IHByaW9yaXR5KQogICAgIGlmICghdGFzaykKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBhdXRvIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMgPSBfd2l0aENyZWRlbnRpYWxz
ID8gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHM6OkFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsczo6RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwot
ICAgIHJldHVybiBfc2Vzc2lvbi0+ZGF0YVRhc2tGb3JJZGVudGlmaWVyKHRhc2sudGFza0lkZW50
aWZpZXIsIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOworICAgIGF1dG8gc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgPSBfd2l0aENyZWRlbnRpYWxzID8gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k6OlVzZSA6IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsK
KyAgICByZXR1cm4gX3Nlc3Npb24tPmRhdGFUYXNrRm9ySWRlbnRpZmllcih0YXNrLnRhc2tJZGVu
dGlmaWVyLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiB9CiAKIC0gKHZvaWQpVVJMU2Vzc2lv
bjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkaWRCZWNvbWVJbnZhbGlkV2l0aEVycm9yOihudWxs
YWJsZSBOU0Vycm9yICopZXJyb3IKQEAgLTYzNSwxMCArNjM1LDEwIEBAIHZvaWQgTmV0d29ya1Nl
c3Npb25Db2NvYTo6Y2xlYXJDcmVkZW50aWFscygpCiAjZW5kaWYKIH0KIAotTmV0d29ya0RhdGFU
YXNrQ29jb2EqIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmRhdGFUYXNrRm9ySWRlbnRpZmllcihOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6VGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzKQorTmV0d29ya0RhdGFUYXNrQ29j
b2EqIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmRhdGFUYXNrRm9ySWRlbnRpZmllcihOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6VGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgaWYgKHN0b3JlZENyZWRlbnRpYWxzID09IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzOjpBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQorICAgIGlmIChz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6VXNlKQogICAgICAgICByZXR1cm4gbV9kYXRhVGFza01hcFdpdGhDcmVkZW50aWFscy5nZXQo
dGFza0lkZW50aWZpZXIpOwogICAgIHJldHVybiBtX2RhdGFUYXNrTWFwV2l0aG91dFN0YXRlLmdl
dCh0YXNrSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggZjNkNmY3MzAwZDQ3
NGMxM2IzNWNhOGI4Y2M4OWFlY2FiZjIyMDAzOS4uMGViOTk4NzI0NGEwZGZmYzIzOTEyMDYzMGZm
ZTc5YmUwZTBhNWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtNDksOCArNDksOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBnRGVmYXVsdFJlYWRCdWZmZXJT
aXplID0gODE5MjsKIAotTmV0d29ya0RhdGFUYXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cChO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgU3RvcmVkQ3JlZGVu
dGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkK
LSAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVu
dGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KQorTmV0d29ya0RhdGFUYXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cChOZXR3
b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIENvbnRlbnRTbmlmZmluZ1BvbGljeSBz
aG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCkKKyAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgICwgbV9zaG91bGRDb250ZW50U25pZmYoc2hv
dWxkQ29udGVudFNuaWZmKQogICAgICwgbV90aW1lb3V0U291cmNlKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJk5ldHdvcmtEYXRhVGFza1NvdXA6OnRpbWVvdXRGaXJlZCkKIHsKQEAgLTYyLDcgKzYy
LDcgQEAgTmV0d29ya0RhdGFUYXNrU291cDo6TmV0d29ya0RhdGFUYXNrU291cChOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXMKICAgICBpZiAocmVxdWVzdC51cmwoKS5wcm90
b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKICAgICAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNU
aW1lOjpub3coKTsKICAgICAgICAgYXV0byB1cmwgPSByZXF1ZXN0LnVybCgpOwotICAgICAgICBp
ZiAobV9zdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKSB7CisgICAg
ICAgIGlmIChtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OjpVc2UpIHsKICAgICAgICAgICAgIG1fdXNlciA9IHVybC51c2VyKCk7CiAgICAgICAgICAg
ICBtX3Bhc3N3b3JkID0gdXJsLnBhc3MoKTsKICAgICAgICAgICAgIHJlcXVlc3QucmVtb3ZlQ3Jl
ZGVudGlhbHMoKTsKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmNyZWF0ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICBtX2N1cnJlbnRS
ZXF1ZXN0LnVwZGF0ZVNvdXBNZXNzYWdlKHNvdXBNZXNzYWdlLmdldCgpKTsKICAgICBpZiAobV9z
aG91bGRDb250ZW50U25pZmYgPT0gRG9Ob3RTbmlmZkNvbnRlbnQpCiAgICAgICAgIHNvdXBfbWVz
c2FnZV9kaXNhYmxlX2ZlYXR1cmUoc291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfVFlQRV9DT05URU5U
X1NOSUZGRVIpOwotICAgIGlmIChtX3VzZXIuaXNFbXB0eSgpICYmIG1fcGFzc3dvcmQuaXNFbXB0
eSgpICYmIG1fc3RvcmVkQ3JlZGVudGlhbHMgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxz
KSB7CisgICAgaWYgKG1fdXNlci5pc0VtcHR5KCkgJiYgbV9wYXNzd29yZC5pc0VtcHR5KCkgJiYg
bV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9O
b3RVc2UpIHsKICNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNTcsIDEpCiAgICAgICAgIG1lc3Nh
Z2VGbGFncyB8PSBTT1VQX01FU1NBR0VfRE9fTk9UX1VTRV9BVVRIX0NBQ0hFOwogI2Vsc2UKQEAg
LTQ2OSw3ICs0NjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBdXRoZW50aWNhdGlvbkZhaWx1
cmVTdGF0dXNDb2RlKGludCBodHRwU3RhdHVzQ29kZSkKIHZvaWQgTmV0d29ya0RhdGFUYXNrU291
cDo6YXV0aGVudGljYXRlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdlKQogewog
ICAgIEFTU0VSVChtX3NvdXBNZXNzYWdlKTsKLSAgICBpZiAobV9zdG9yZWRDcmVkZW50aWFscyA9
PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKSB7CisgICAgaWYgKG1fc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgPT0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSkgewogICAgICAgICBpZiAoIW1f
aW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpIHx8IGNoYWxsZW5nZS5wcmV2aW91c0ZhaWx1cmVD
b3VudCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwgd2Fzbid0IGFj
Y2VwdGVkLCBzdG9wIHVzaW5nIGl0LiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uCiAgICAgICAg
ICAgICAvLyBoZXJlLCBzaW5jZSBhIGRpZmZlcmVudCBjcmVkZW50aWFsIG1pZ2h0IGhhdmUgYWxy
ZWFkeSBiZWVuIHN0b3JlZCBieSBhbm90aGVyCkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBOZXR3
b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50aWNhdGUoQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBj
aGFsbGVuZ2UpCiAgICAgLy8gb2YgYWxsIHJlcXVlc3QgbGF0ZW5jeSwgdmVyc3VzIGEgb25lLXRp
bWUgbGF0ZW5jeSBmb3IgdGhlIHNtYWxsIHN1YnNldCBvZiByZXF1ZXN0cyB0aGF0CiAgICAgLy8g
dXNlIEhUVFAgYXV0aGVudGljYXRpb24uIEluIHRoZSBlbmQsIHRoaXMgZG9lc24ndCBtYXR0ZXIg
bXVjaCwgYmVjYXVzZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWxzCiAgICAgLy8gd2lsbCBiZWNvbWUg
c2Vzc2lvbiBjcmVkZW50aWFscyBhZnRlciB0aGUgZmlyc3QgdXNlLgotICAgIGlmIChtX3N0b3Jl
ZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpIHsKKyAgICBpZiAobV9zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSB7CiAg
ICAgICAgIGF1dG8gcHJvdGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgp
OwogICAgICAgICBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmdldENyZWRlbnRp
YWxGcm9tUGVyc2lzdGVudFN0b3JhZ2UocHJvdGVjdGlvblNwYWNlLAogICAgICAgICAgICAgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXV0aENoYWxsZW5nZSA9IFdURk1v
dmUoY2hhbGxlbmdlKV0gKENyZWRlbnRpYWwmJiBjcmVkZW50aWFsKSBtdXRhYmxlIHsKQEAgLTUy
OSw3ICs1MjksNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlQXV0aGVudGlj
YXRlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbgogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGRpc3Bvc2l0aW9uID09IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246
OlVzZUNyZWRlbnRpYWwgJiYgIWNyZWRlbnRpYWwuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBp
ZiAobV9zdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKSB7CisgICAg
ICAgICAgICBpZiAobV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlKSB7CiAgICAgICAgICAgICAgICAgLy8gRXZlbnR1YWxseSB3ZSB3aWxsIG1h
bmFnZSBwZXItc2Vzc2lvbiBjcmVkZW50aWFscyBvbmx5IGludGVybmFsbHkgb3IgdXNlIHNvbWUg
bmV3bHktZXhwb3NlZCBBUEkgZnJvbSBsaWJzb3VwLAogICAgICAgICAgICAgICAgIC8vIGJlY2F1
c2Ugb25jZSB3ZSBhdXRoZW50aWNhdGUgdmlhIGxpYnNvdXAsIHRoZXJlIGlzIG5vIHdheSB0byBp
Z25vcmUgaXQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0LiBSaWdodCBub3csCiAgICAgICAgICAg
ICAgICAgLy8gd2UgcGxhY2UgdGhlIGNyZWRlbnRpYWxzIGluIHRoZSBzdG9yZSBldmVuIHRob3Vn
aCBsaWJzb3VwIHdpbGwgbmV2ZXIgZmlyZSB0aGUgYXV0aGVudGljYXRlIHNpZ25hbCBhZ2FpbiBm
b3IKQEAgLTY2NSw3ICs2NjUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVl
SFRUUFJlZGlyZWN0aW9uKCkKICAgICAgICAgLy8gd2Ugd2FudCB0byBzdHJpcCBoZXJlIGJlY2F1
c2UgdGhlIHJlZGlyZWN0IGlzIGNyb3NzLW9yaWdpbi4KICAgICAgICAgcmVxdWVzdC5jbGVhckhU
VFBBdXRob3JpemF0aW9uKCk7CiAgICAgICAgIHJlcXVlc3QuY2xlYXJIVFRQT3JpZ2luKCk7Ci0g
ICAgfSBlbHNlIGlmICh1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmIG1fc3RvcmVkQ3Jl
ZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscykgeworICAgIH0gZWxzZSBpZiAodXJs
LnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSAmJiBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsKICAgICAgICAgaWYgKG1fdXNlci5pc0Vt
cHR5KCkgJiYgbV9wYXNzd29yZC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGF1dG8gY3JlZGVu
dGlhbCA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY3JlZGVudGlhbFN0b3Jh
Z2UoKS5nZXQobV9wYXJ0aXRpb24sIHJlcXVlc3QudXJsKCkpOwogICAgICAgICAgICAgaWYgKCFj
cmVkZW50aWFsLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5oCmluZGV4IDFkNGFiNzU2Y2FjNzczYThj
NmMwMmI2NmRmODEwYjUzNzNhMTU1YWQuLjM5MGNkNDhjOTkxYWQ2NTU0NzFkYjE3NTgxMjc3YTRk
NDliYjJiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaApAQCAtMzYsMTUgKzM2LDE1IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tTb3VwIGZpbmFsIDogcHVibGljIE5ldHdv
cmtEYXRhVGFzayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNy
ZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGll
bnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRl
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTmV0d29ya0RhdGFUYXNrU291cChzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIHN0b3Jl
ZENyZWRlbnRpYWxzLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29y
a0RhdGFUYXNrU291cChzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNrU291cCgpOwogCiBw
cml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza1NvdXAoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3Jr
RGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtE
YXRhVGFza1NvdXAoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAgICAgdm9pZCBzdXNwZW5kKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCAxZjBhMjEz
YzJjMDBjMjdjOTAwZWFhYzI4ZmNjODlkZjA3ZDNkZDgxLi5lYTdiMTdhM2RlYjYxYjk3ZTQ1Y2Ux
YmU5ODU1ZDZmZGQ0MDg1ZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJj
ZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJv
Y2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBz
Y2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSAlZCIsIHJlc291
cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50
PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSkpOwogCiAgICAgQ29udGVudFNu
aWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3Vs
ZFNuaWZmQ29udGVudCgpID8gU25pZmZDb250ZW50IDogRG9Ob3RTbmlmZkNvbnRlbnQ7Ci0gICAg
U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IHJlc291cmNlTG9hZGVy
LnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDog
RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UoKSA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgOiBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyBsb2FkUGFyYW1ldGVyczsKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gaWRl
bnRpZmllcjsKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hl
ZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAg
IGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQo
KSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRl
cnMucmVxdWVzdCA9IHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKTsKICAgICBsb2FkUGFyYW1ldGVy
cy5jb250ZW50U25pZmZpbmdQb2xpY3kgPSBjb250ZW50U25pZmZpbmdQb2xpY3k7Ci0gICAgbG9h
ZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IGFsbG93U3RvcmVkQ3JlZGVudGlh
bHM7CisgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeTsKICAgICAvLyBJZiB0aGVyZSBpcyBubyBXZWJGcmFtZSB0aGVuIHRo
aXMgcmVzb3VyY2UgY2Fubm90IGJlIGF1dGhlbnRpY2F0ZWQgd2l0aCB0aGUgY2xpZW50LgogICAg
IGxvYWRQYXJhbWV0ZXJzLmNsaWVudENyZWRlbnRpYWxQb2xpY3kgPSAod2ViRnJhbWUgJiYgd2Vi
UGFnZSAmJiByZXNvdXJjZUxvYWRlci5pc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygp
KSA/IENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzIDog
Q2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHM7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCA9IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CkBAIC0zNTgsNyAr
MzU4LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkK
ICAgICAgICAgcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbEVycm9yKFVSTCgpKSk7
CiB9CiAKLXZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFs
cyBzdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50
aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxv
bmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgQ2xpZW50
Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsK
ICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KiB3ZWJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCo+KGNvbnRleHQpOwogICAgIC8vIEZJWE1FOiBTb21l
IGVudGl0aWVzIGluIFdlYkNvcmUgdXNlIFdlYkNvcmUncyAiRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCIgaW5zdGVhZCBvZiBoYXZpbmcgYSBwcm9wZXIgV2ViRnJhbWVMb2FkZXJDbGllbnQuCkBAIC0z
NzUsNyArMzc1LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgdW4KICAgICBsb2FkUGFyYW1ldGVy
cy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBy
ZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZm
Q29udGVudDsKLSAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gc3Rv
cmVkQ3JlZGVudGlhbHM7CisgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRD
cmVkZW50aWFsUG9saWN5ID0gY2xpZW50Q3JlZGVudGlhbFBvbGljeTsKICAgICBsb2FkUGFyYW1l
dGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0ID0gY29udGV4dC0+
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpOwogCkBAIC00MjYsNyAr
NDI2LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJh
bWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICBsb2FkUGFyYW1ldGVycy5yZXF1
ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gPSAmZG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2Vi
UGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKTsKLSAgICBsb2FkUGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gb3B0
aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0ID8gRG9O
b3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogQWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICBs
b2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG9wdGlvbnMuY3JlZGVudGlh
bHMgPT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCA/IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpEb05vdFVzZSA6IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CiAgICAgbG9h
ZFBhcmFtZXRlcnMubW9kZSA9IG9wdGlvbnMubW9kZTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91
bGRGb2xsb3dSZWRpcmVjdHMgPSBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVk
aXJlY3Q6OkZvbGxvdzsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0ID0gbmV0d29ya2luZ0NvbnRleHQtPnNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IGY0ZjE1NzcyYTczNDRlN2Yw
OGM2MDk1NTdiNGZlYmNmY2EwOWNhY2YuLjU3MzAyOGU1YTdiNjU3NWEyMzY4MWZmNTAyNjI5NGNl
YTlhODdkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgfldlYkxv
YWRlclN0cmF0ZWd5KCkgZmluYWw7CiAgICAgCiAgICAgUmVmUHRyPFdlYkNvcmU6OlN1YnJlc291
cmNlTG9hZGVyPiBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyT3B0aW9ucyYpIGZpbmFsOwotICAgIHZvaWQgbG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgcmVz
b3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ks
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVj
dG9yPGNoYXI+JiBkYXRhKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9h
ZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5LCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rv
cjxjaGFyPiYgZGF0YSkgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlciosIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmlu
ZGV4IDBiZTAwMmIzMTc1ZjZkYjVmZmI1ZjJlZjM1NTdjNjg0YTM4ZTBjZjkuLjRkMjk4NWQxYTQz
MGJjMWJkOWJmMjYzYjg5ZTk4MWNmNjNjNWNjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAKQEAgLTEwNSw5ICsxMDUsOSBAQCBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6bG9hZFJlc291cmNlKEZyYW1lJiBmcmFtZSwgQwogICAgIHJl
dHVybiBsb2FkZXI7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCBs
b25nLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0
b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKK3Zv
aWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBDbGllbnRDcmVkZW50aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKLSAgICBSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb250ZXh0LCByZXF1ZXN0LCBz
dG9yZWRDcmVkZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKKyAgICBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb250ZXh0LCByZXF1ZXN0LCBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKIH0KIAogUmVmUHRyPE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVk
dWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyQ2xpZW50JiBjbGllbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IGMxOGMzMmU5ZGZlMjQyNmUwMTdmYjczYjBmMTc2Yjgz
M2EzMTk5YjQuLjBlMGMyZGU1NzdjN2MyY2Y3NzZhN2ZhMTYxZGRkZDZiNzVkMTA4YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3Vy
Y2VMb2FkZXI+IGxvYWRSZXNvdXJjZShXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXJPcHRpb25zJikgZmluYWw7Ci0gICAgdm9pZCBsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZywgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMs
IFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JikgZmluYWw7CisgICAg
dm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0
KiwgdW5zaWduZWQgbG9uZywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xp
Y3ksIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
VmVjdG9yPGNoYXI+JikgZmluYWw7CiAgICAgdm9pZCByZW1vdmUoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkZXIqLCBib29sKSBmaW5hbDsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNl
aXZlZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVkaXJl
Y3RVUkwpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321830</attachid>
            <date>2017-09-26 10:02:47 -0700</date>
            <delta_ts>2017-09-26 13:36:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177455-20170926100247.patch</filename>
            <type>text/plain</type>
            <size>1371</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYyNjYwNmQyYmIwZDJi
YWE0NDIxZTZhYzVkMmUzNDI3NmYwNTM5Mi4uOGUzMDU5NmU3OWVhNjUxNTc1YWQ0MTkwZjA0N2Ji
NjEwOWQzMTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBTdG9yZWRDcmVkZW50
aWFscyBhbiBlbnVtIGNsYXNzIGFuZCByZW5hbWUgaXRzIGhlYWRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDU1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93LXVwIHRvIHIyMjI0NjcsIGFj
dHVhbGx5IG1ha2UgaXQgYW4gZW51bSAqY2xhc3MqLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKwog
MjAxNy0wOS0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAoMjIyMDQwKTogR29vZ2xlIE1hcHMgU3RyZWV0IFZpZXcgQ3Jhc2hUcmFjZXI6
IFtVU0VSXSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgYXQgY29tLmFw
cGxlLldlYkNvcmU6IFdlYkNvcmU6OlByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkVHJhbnNmb3Jt
OjpibGVuZCBjb25zdCArIDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmgKaW5kZXggN2UyYmVjN2M2OTM5ZDY4
MTRkNTMwZjhkNzA3NTQ2NWM0NmU3ZmY0MS4uMzcxZWUzMzQ2N2VjMWMzMDg3ZjJiMDIwODM0YzVj
NTQwMDdlZDBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9T
dG9yZWRDcmVkZW50aWFsc1BvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeworZW51bSBj
bGFzcyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSB7CiAgICAgRG9Ob3RVc2UsCiAgICAgVXNlLAog
fTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>