<?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>295842</bug_id>
          
          <creation_ts>2025-07-12 16:43:12 -0700</creation_ts>
          <short_desc>[Cleanup] inlineBlockBaseline should not be called on flex, grid, table and text control&apos;s inner container</short_desc>
          <delta_ts>2025-07-22 13:21:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2129619</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-07-12 16:43:12 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129620</commentid>
    <comment_count>1</comment_count>
      <attachid>475939</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-12 16:44:41 -0700</bug_when>
    <thetext>Created attachment 475939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129621</commentid>
    <comment_count>2</comment_count>
      <attachid>475940</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-12 16:45:28 -0700</bug_when>
    <thetext>Created attachment 475940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129641</commentid>
    <comment_count>3</comment_count>
      <attachid>475947</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-12 19:37:04 -0700</bug_when>
    <thetext>Created attachment 475947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129642</commentid>
    <comment_count>4</comment_count>
      <attachid>475948</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-12 19:37:59 -0700</bug_when>
    <thetext>Created attachment 475948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129703</commentid>
    <comment_count>5</comment_count>
      <attachid>475958</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-13 10:09:32 -0700</bug_when>
    <thetext>Created attachment 475958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2129704</commentid>
    <comment_count>6</comment_count>
      <attachid>475959</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-13 10:10:21 -0700</bug_when>
    <thetext>Created attachment 475959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2131421</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-07-19 16:44:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/156233154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2131830</commentid>
    <comment_count>8</comment_count>
      <attachid>476150</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-07-22 09:08:18 -0700</bug_when>
    <thetext>Created attachment 476150
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2131890</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-07-22 13:21:01 -0700</bug_when>
    <thetext>Committed 297752@main (1f0bdb591de2): &lt;https://commits.webkit.org/297752@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476150.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475939</attachid>
            <date>2025-07-12 16:44:41 -0700</date>
            <delta_ts>2025-07-12 16:45:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295842-20250712164440.patch</filename>
            <type>text/plain</type>
            <size>5240</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhYWU1MTU1MmFiZjYxOGNkYWZjZmY0MTE2MDVmMGVkYWU3YTg4MDk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTIgSnVsIDIwMjUgMTY6NDM6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gaW5saW5lQmxvY2tCYXNlbGluZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBmbGV4LAogZ3Jp
ZCwgdGFibGUgYW5kIHRleHQgY29udHJvbCdzIGlubmVyIGNvbnRhaW5lcgogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTg0MgoKUmV2aWV3ZWQgYnkgQW50dGkgS29p
dmlzdG8uCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
bGFzdEluZmxvd0JveEJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjppbmxp
bmVCbG9ja0Jhc2VsaW5lKToKLS0tCiAuLi4vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVw
ZGF0ZXIuY3BwICAgfCAzNSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkg
aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggZGUwZDg3MWFmOTcxLi40NWZmYjUxOThlN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAt
MzAxLDIxICszMDEsMzQgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5l
QmxvY2tCYXNlbGluZShjb25zdCBSZW5kZXJCb3gmKTsKIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8
TGF5b3V0VW5pdD4gbGFzdEluZmxvd0JveEJhc2VsaW5lKGNvbnN0IFJlbmRlckJsb2NrJiBibG9j
a0NvbnRhaW5lcikKIHsKLSAgICBhdXRvIHdyaXRpbmdNb2RlID0gYmxvY2tDb250YWluZXIuY29u
dGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCk7CiAgICAgYXV0byBoYXZlSW5GbG93Q2hpbGQg
PSBmYWxzZTsKICAgICBmb3IgKGF1dG8qIGJveCA9IGJsb2NrQ29udGFpbmVyLmxhc3RDaGlsZEJv
eCgpOyBib3g7IGJveCA9IGJveC0+cHJldmlvdXNTaWJsaW5nQm94KCkpIHsKICAgICAgICAgaWYg
KGJveC0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIGhhdmVJbkZsb3dDaGlsZCA9IHRydWU7CisKKyAgICAgICAgaWYgKGlz
PFJlbmRlclRhYmxlPigqYm94KSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAg
aWYgKENoZWNrZWRQdHIgaW5uZXJDb250YWluZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyVGV4
dENvbnRyb2xJbm5lckNvbnRhaW5lcj4oKmJveCkpCisgICAgICAgICAgICByZXR1cm4gbGFzdElu
Zmxvd0JveEJhc2VsaW5lKCppbm5lckNvbnRhaW5lcik7CisKKyAgICAgICAgaWYgKENoZWNrZWRQ
dHIgbWVudUxpc3QgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTWVudUxpc3Q+KCpib3gpKQorICAg
ICAgICAgICAgcmV0dXJuIGxhc3RJbmZsb3dCb3hCYXNlbGluZSgqbWVudUxpc3QpOworCisgICAg
ICAgIGlmIChpczxSZW5kZXJGbGV4aWJsZUJveD4oKmJveCkgfHwgaXM8UmVuZGVyR3JpZD4oKmJv
eCkpCisgICAgICAgICAgICByZXR1cm4gYm94LT5maXJzdExpbmVCYXNlbGluZSgpOworCiAgICAg
ICAgIGlmIChhdXRvIHJlc3VsdCA9IGlubGluZUJsb2NrQmFzZWxpbmUoKmJveCkpCiAgICAgICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChib3gtPmxvZ2ljYWxUb3AoKSArIHJlc3VsdC52YWx1
ZSgpKS50b0ludCgpIH07IC8vIFRyYW5zbGF0ZSB0byBvdXIgY29vcmRpbmF0ZSBzcGFjZS4KKwor
ICAgICAgICBoYXZlSW5GbG93Q2hpbGQgPSB0cnVlOwogICAgIH0KIAogICAgIGlmICghaGF2ZUlu
Rmxvd0NoaWxkICYmIGJsb2NrQ29udGFpbmVyLmhhc0xpbmVJZkVtcHR5KCkpIHsKICAgICAgICAg
YXV0byYgZm9udE1ldHJpY3MgPSBibG9ja0NvbnRhaW5lci5maXJzdExpbmVTdHlsZSgpLm1ldHJp
Y3NPZlByaW1hcnlGb250KCk7CiAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgTGF5b3V0VW5p
dChmb250TWV0cmljcy5pbnRBc2NlbnQoKQogICAgICAgICAgICAgKyAoYmxvY2tDb250YWluZXIu
bGluZUhlaWdodCgpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgotICAgICAgICAgICAg
KyAod3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBibG9ja0NvbnRhaW5lci5ib3JkZXJUb3Ao
KSArIGJsb2NrQ29udGFpbmVyLnBhZGRpbmdUb3AoKSA6IGJsb2NrQ29udGFpbmVyLmJvcmRlclJp
Z2h0KCkgKyBibG9ja0NvbnRhaW5lci5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkgfTsKKyAgICAg
ICAgICAgICsgKGJsb2NrQ29udGFpbmVyLmNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgp
LmlzSG9yaXpvbnRhbCgpID8gYmxvY2tDb250YWluZXIuYm9yZGVyVG9wKCkgKyBibG9ja0NvbnRh
aW5lci5wYWRkaW5nVG9wKCkgOiBibG9ja0NvbnRhaW5lci5ib3JkZXJSaWdodCgpICsgYmxvY2tD
b250YWluZXIucGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpIH07CiAgICAgfQogICAgIHJldHVybiB7
IH07CiB9CkBAIC0zMjQsMTggKzMzNyw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCiB7CiAg
ICAgQVNTRVJUKCEocmVuZGVyQm94LmVsZW1lbnQoKSAmJiByZW5kZXJCb3guZWxlbWVudCgpLT5p
c0Zvcm1Db250cm9sRWxlbWVudCgpKSk7CiAgICAgQVNTRVJUKCEocmVuZGVyQm94LmVsZW1lbnQo
KSAmJiByZW5kZXJCb3guZWxlbWVudCgpLT5zaGFkb3dIb3N0KCkgJiYgcmVuZGVyQm94LmVsZW1l
bnQoKS0+c2hhZG93SG9zdCgpLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSk7Ci0KLSAgICBhdXRv
IHdyaXRpbmdNb2RlID0gcmVuZGVyQm94LmNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgp
OwotICAgIGF1dG8gbGluZURpcmVjdGlvbiA9IHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8g
SG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmU7Ci0KLSAgICBpZiAoaXM8UmVuZGVyVGFibGU+
KHJlbmRlckJveCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBpZiAoKGlzPFJlbmRlckZs
ZXhpYmxlQm94PihyZW5kZXJCb3gpIHx8IGlzPFJlbmRlckdyaWQ+KHJlbmRlckJveCkpICYmICFp
czxSZW5kZXJNZW51TGlzdD4ocmVuZGVyQm94KSAmJiAhaXM8UmVuZGVyVGV4dENvbnRyb2xJbm5l
ckNvbnRhaW5lcj4ocmVuZGVyQm94KSkKLSAgICAgICAgcmV0dXJuIHJlbmRlckJveC5maXJzdExp
bmVCYXNlbGluZSgpOwotCi0gICAgaWYgKENoZWNrZWRQdHIgaW5uZXJDb250YWluZXIgPSBkeW5h
bWljRG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4ocmVuZGVyQm94KSkK
LSAgICAgICAgcmV0dXJuIGxhc3RJbmZsb3dCb3hCYXNlbGluZSgqaW5uZXJDb250YWluZXIpOwor
ICAgIEFTU0VSVCghaXM8UmVuZGVyVGFibGU+KHJlbmRlckJveCkgJiYgIWlzPFJlbmRlckZsZXhp
YmxlQm94PihyZW5kZXJCb3gpICYmICFpczxSZW5kZXJHcmlkPihyZW5kZXJCb3gpICYmICFpczxS
ZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPihyZW5kZXJCb3gpKTsKIAogICAgIGlmIChD
aGVja2VkUHRyIGJsb2NrRmxvdyA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KHJl
bmRlckJveCkpIHsKICAgICAgICAgaWYgKGJsb2NrRmxvdy0+c3R5bGUoKS5kaXNwbGF5KCkgPT0g
RGlzcGxheVR5cGU6OklubGluZUJsb2NrKSB7CkBAIC0zNDYsNiArMzQ4LDcgQEAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShjb25zdCBSZW5kZXJC
b3gmIHJlbmRlckJveCkKICAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAK
KyAgICAgICAgYXV0byB3cml0aW5nTW9kZSA9IHJlbmRlckJveC5jb250YWluaW5nQmxvY2soKS0+
d3JpdGluZ01vZGUoKTsKICAgICAgICAgaWYgKGJsb2NrRmxvdy0+c3R5bGUoKS5vdmVyZmxvd1ko
KSAhPSBPdmVyZmxvdzo6VmlzaWJsZSkKICAgICAgICAgICAgIHJldHVybiBibG9ja0Zsb3ctPm1h
cmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpOwogCkBAIC0zNjEsNyArMzY0LDcgQEAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShjb25z
dCBSZW5kZXJCb3gmIHJlbmRlckJveCkKICAgICAgICAgICAgICAgICBhdXRvJiBmb250TWV0cmlj
cyA9IGJsb2NrRmxvdy0+Zmlyc3RMaW5lU3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB7IExheW91dFVuaXQoZm9udE1ldHJpY3MuaW50QXNjZW50
KCkKICAgICAgICAgICAgICAgICAgICAgKyAoYmxvY2tGbG93LT5saW5lSGVpZ2h0KCkgLSBmb250
TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyCi0gICAgICAgICAgICAgICAgICAgICsgKGxpbmVEaXJl
Y3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBibG9ja0Zsb3ctPmJvcmRlclRvcCgpICsgYmxvY2tG
bG93LT5wYWRkaW5nVG9wKCkgOiBibG9ja0Zsb3ctPmJvcmRlclJpZ2h0KCkgKyBibG9ja0Zsb3ct
PnBhZGRpbmdSaWdodCgpKSkudG9JbnQoKSB9OworICAgICAgICAgICAgICAgICAgICArICh3cml0
aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IGJsb2NrRmxvdy0+Ym9yZGVyVG9wKCkgKyBibG9ja0Zs
b3ctPnBhZGRpbmdUb3AoKSA6IGJsb2NrRmxvdy0+Ym9yZGVyUmlnaHQoKSArIGJsb2NrRmxvdy0+
cGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpIH07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IGlmIChhdXRvKiBpbmxpbmVMYXlvdXQgPSBibG9ja0Zsb3ctPmlubGluZUxheW91dCgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475940</attachid>
            <date>2025-07-12 16:45:28 -0700</date>
            <delta_ts>2025-07-12 19:37:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295842-20250712164527.patch</filename>
            <type>text/plain</type>
            <size>121387</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxYzE2YjEwYjZjZWY1ZTY3NTI5ZjBjMzIwYzc5NGMxYzE4NzA2ZTMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgNSBKdWwgMjAyNSAwODowNTowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBpbmxpbmVCbG9ja0Jhc2VsaW5lIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGZsZXgsCiBncmlk
LCB0YWJsZSBhbmQgdGV4dCBjb250cm9sJ3MgaW5uZXIgY29udGFpbmVyCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1ODQyCgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2
aXN0by4KCiogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRp
Y2FsLXJsLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTgvZmFzdC9m
b3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0
dG9uLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2VxdW9pYS13azIv
ZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZp
bGwtYnV0dG9uLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2VxdW9p
YS13azIvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVk
LnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxs
LWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L3JlcGFpbnQvY2hlY2tib3gt
b3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1
dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6bGFzdEluZmxvd0JveEJhc2VsaW5lKToKKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjppbmxpbmVCbG9ja0Jhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpiYXNlbGluZVBvc2l0aW9uKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9u
OjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpC
b3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUJveEdlb21ldHJ5QWZ0ZXJJbnRlZ3JhdGlvbkxheW91
dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcDoK
KFdlYkNvcmU6OmNvbXB1dGVDYXJldFJlY3RGb3JFbXB0eUVsZW1lbnQpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxlZ2FjeUxpbmVM
YXlvdXQ6OmxheW91dExpbmVCb3hlcyk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckF0dGFjaG1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQb3Np
dGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0
dGFjaG1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgoo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQgY29uc3QpOiBEZWxldGVkLgooV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgooV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFzZWxpbmUgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9j
a1dpdGhOb0NoaWxkcmVuKToKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5GbG93
Q2hpbGRyZW4pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjphZGp1c3RJbml0aWFsTGV0dGVy
UG9zaXRpb24pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50
KToKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpsaW5l
SGVpZ2h0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25z
dCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oOgooV2Vi
Q29yZTo6UmVuZGVyQm94OjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94SW5saW5lcy5oOgooV2ViQ29yZTo6UmVuZGVyQm94Ojpt
YXJnaW5Cb3hMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QnV0dG9uLmNwcDoKKFdlYkNvcmU6OnN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVudEJveCk6
IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoK
KFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJv
eCk6CihXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2Fs
Qm94KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6
OlJlbmRlckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dCk6CihXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpS
ZW5kZXJGbGV4aWJsZUJveDo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0R3JpZCk6
CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRNYXNvbnJ5KToKKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVk
LgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVySW5saW5lOjps
aW5lSGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlcklubGluZTo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjp1cGRhdGVGcm9tU3R5bGUpOgooV2ViQ29y
ZTo6UmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6
OlJlbmRlckxpbmVCcmVhazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmJh
c2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6bGluZUhlaWdodCBjb25zdCk6
IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyU2xp
ZGVyOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0
KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlclRhYmxlOjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgooV2ViQ29yZTo6UmVuZGVy
VGV4dENvbnRyb2w6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGV4dENv
bnRyb2xNdWx0aUxpbmU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjppbm5lclRleHRSZW5kZXJlciBjb25z
dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHA6CihXZWJD
b3JlOjpMaW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcDoKKFdlYkNvcmU6OlJlbmRlck1h
dGhNTEJsb2NrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmg6Ci0tLQogLi4uL0xheW91
dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCAgIHwgMzI2ICsrKysrKysrKysrKysr
KysrLQogLi4uL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcCB8ICAxNCAt
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oICAgfCAgIDIgLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgIHwgMTAxIC0tLS0t
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggICAgICAgIHwgICA1IC0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwICB8ICA3MSArLS0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggICAgfCAgIDEgLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgIDE2ICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgfCAgIDcgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hJbmxpbmVzLmggICB8ICAgMSArCiAuLi4v
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCAgfCAgIDUgLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgICAgIHwgIDE2IC0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCAgICAgICB8ICAgMiAtCiAuLi4vcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgfCAgIDQgKy0KIC4uLi9yZW5kZXJp
bmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCAgIHwgIDE4ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCAgfCAgIDIgLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwICAgICAgIHwgIDIwICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5oICAgICAgICAgfCAgIDIgLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcCAgICAgIHwgIDEyIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5oICAgICAgICB8ICAgMiAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcCAgICAgfCAgMTMgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oICAgICAgIHwgICAzIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaW5lQnJlYWsuY3BwICB8ICAyMSAtLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5oICAgIHwgICA1IC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcCAgICB8ICAxMiAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5oICAgICAgfCAgIDEgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuY3BwIHwgIDE0IC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmggICB8ICAgMiAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaCAgICAgfCAgIDcgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5j
cHAgICAgIHwgICA2IC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCAg
ICAgICB8ICAgMSAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwICAg
ICAgfCAgMTMgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmggICAgICAg
IHwgICAyIC0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggIHwg
ICA1IC0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICB8ICAg
NSAtCiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggICAgfCAgIDEg
LQogLi4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIHwgICA1ICsK
IC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggICB8ICAgMyArCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwICAgfCAgIDIgKy0KIC4u
Li9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCAgICB8ICAgOCAtCiAuLi4v
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oICAgICAgfCAgIDIgLQogLi4uY2hl
Y2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi5vbmct
cGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQgfCAgODIgKystLS0KIC4uLm9u
Zy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCB8ICA4MiArKy0tLQogLi4u
Y2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi5v
bmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQgfCAgOTYgKysrLS0tCiAu
Li5jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQgfCAgIDIgKy0KIC4u
Lm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCB8ICA4MiArKy0tLQog
NTIgZmlsZXMgY2hhbmdlZCwgNTI5IGluc2VydGlvbnMoKyksIDU4NyBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcAppbmRleCBjNWEx
NWQwN2MzODUuLjQ1ZmZiNTE5OGU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hH
ZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0yOCwzMCArMjgsNDMgQEAKIAogI2luY2x1ZGUgIkZvcm1h
dHRpbmdDb25zdHJhaW50cy5oIgogI2luY2x1ZGUgIklubGluZVdhbGtlci5oIgorI2luY2x1ZGUg
IkxheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIgorI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNW
R1Jvb3QuaCIKKyNpZiBFTkFCTEUoTVVMVElfUkVQUkVTRU5UQVRJT05fSEVJQykKKyNpbmNsdWRl
ICJNdWx0aVJlcHJlc2VudGF0aW9uSEVJQ01ldHJpY3MuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlJl
bmRlckF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRl
ICJSZW5kZXJCb3hJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQnV0dG9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVu
dElubGluZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUg
IlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3gu
aCIKICNpbmNsdWRlICJSZW5kZXJGcmFtZVNldC5oIgogI2luY2x1ZGUgIlJlbmRlckdyaWQuaCIK
KyNpbmNsdWRlICJSZW5kZXJIVE1MQ2FudmFzLmgiCisjaW5jbHVkZSAiUmVuZGVySUZyYW1lLmgi
CiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWEuaCIKICNpbmNsdWRlICJSZW5kZXJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckxp
bmVCcmVhay5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJM
aXN0SXRlbS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJNYXRoTUxCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGUuaCIKICNpbmNsdWRlICJSZW5k
ZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUlubGluZXMuaCIKICNpbmNsdWRl
ICJSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVmlld1RyYW5zaXRpb25DYXB0dXJlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVz
cGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CkBAIC0yODQsOCArMjk3LDMxMCBAQCBzdGF0aWMgaW5s
aW5lIExheW91dFNpemUgc2Nyb2xsYmFyTG9naWNhbFNpemUoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJlcikKICAgICByZXR1cm4geyBob3Jpem9udGFsU3BhY2VSZXNlcnZlZEZvclNjcm9sbGJhciwg
dmVydGljYWxTcGFjZVJlc2VydmVkRm9yU2Nyb2xsYmFyIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUg
dm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94LCBX
cml0aW5nTW9kZSB3cml0aW5nTW9kZSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IGlubGluZUJsb2NrQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94Jik7CisKK3N0YXRpYyBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGxhc3RJbmZsb3dCb3hCYXNlbGluZShjb25zdCBSZW5kZXJCbG9j
ayYgYmxvY2tDb250YWluZXIpCit7CisgICAgYXV0byBoYXZlSW5GbG93Q2hpbGQgPSBmYWxzZTsK
KyAgICBmb3IgKGF1dG8qIGJveCA9IGJsb2NrQ29udGFpbmVyLmxhc3RDaGlsZEJveCgpOyBib3g7
IGJveCA9IGJveC0+cHJldmlvdXNTaWJsaW5nQm94KCkpIHsKKyAgICAgICAgaWYgKGJveC0+aXNG
bG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaWYgKGlzPFJlbmRlclRhYmxlPigqYm94KSkKKyAgICAgICAgICAgIHJldHVybiB7
IH07CisKKyAgICAgICAgaWYgKENoZWNrZWRQdHIgaW5uZXJDb250YWluZXIgPSBkeW5hbWljRG93
bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4oKmJveCkpCisgICAgICAgICAg
ICByZXR1cm4gbGFzdEluZmxvd0JveEJhc2VsaW5lKCppbm5lckNvbnRhaW5lcik7CisKKyAgICAg
ICAgaWYgKENoZWNrZWRQdHIgbWVudUxpc3QgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTWVudUxp
c3Q+KCpib3gpKQorICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmZsb3dCb3hCYXNlbGluZSgqbWVu
dUxpc3QpOworCisgICAgICAgIGlmIChpczxSZW5kZXJGbGV4aWJsZUJveD4oKmJveCkgfHwgaXM8
UmVuZGVyR3JpZD4oKmJveCkpCisgICAgICAgICAgICByZXR1cm4gYm94LT5maXJzdExpbmVCYXNl
bGluZSgpOworCisgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IGlubGluZUJsb2NrQmFzZWxpbmUo
KmJveCkpCisgICAgICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChib3gtPmxvZ2ljYWxUb3Ao
KSArIHJlc3VsdC52YWx1ZSgpKS50b0ludCgpIH07IC8vIFRyYW5zbGF0ZSB0byBvdXIgY29vcmRp
bmF0ZSBzcGFjZS4KKworICAgICAgICBoYXZlSW5GbG93Q2hpbGQgPSB0cnVlOworICAgIH0KKwor
ICAgIGlmICghaGF2ZUluRmxvd0NoaWxkICYmIGJsb2NrQ29udGFpbmVyLmhhc0xpbmVJZkVtcHR5
KCkpIHsKKyAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBibG9ja0NvbnRhaW5lci5maXJzdExp
bmVTdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CisgICAgICAgIHJldHVybiBMYXlvdXRV
bml0IHsgTGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQoKQorICAgICAgICAgICAgKyAo
YmxvY2tDb250YWluZXIubGluZUhlaWdodCgpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8g
MgorICAgICAgICAgICAgKyAoYmxvY2tDb250YWluZXIuY29udGFpbmluZ0Jsb2NrKCktPndyaXRp
bmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBibG9ja0NvbnRhaW5lci5ib3JkZXJUb3AoKSArIGJs
b2NrQ29udGFpbmVyLnBhZGRpbmdUb3AoKSA6IGJsb2NrQ29udGFpbmVyLmJvcmRlclJpZ2h0KCkg
KyBibG9ja0NvbnRhaW5lci5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkgfTsKKyAgICB9CisgICAg
cmV0dXJuIHsgfTsKK30KKworc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5l
QmxvY2tCYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCkKK3sKKyAgICBBU1NFUlQo
IShyZW5kZXJCb3guZWxlbWVudCgpICYmIHJlbmRlckJveC5lbGVtZW50KCktPmlzRm9ybUNvbnRy
b2xFbGVtZW50KCkpKTsKKyAgICBBU1NFUlQoIShyZW5kZXJCb3guZWxlbWVudCgpICYmIHJlbmRl
ckJveC5lbGVtZW50KCktPnNoYWRvd0hvc3QoKSAmJiByZW5kZXJCb3guZWxlbWVudCgpLT5zaGFk
b3dIb3N0KCktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpKTsKKyAgICBBU1NFUlQoIWlzPFJlbmRl
clRhYmxlPihyZW5kZXJCb3gpICYmICFpczxSZW5kZXJGbGV4aWJsZUJveD4ocmVuZGVyQm94KSAm
JiAhaXM8UmVuZGVyR3JpZD4ocmVuZGVyQm94KSAmJiAhaXM8UmVuZGVyVGV4dENvbnRyb2xJbm5l
ckNvbnRhaW5lcj4ocmVuZGVyQm94KSk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBibG9ja0Zsb3cg
PSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihyZW5kZXJCb3gpKSB7CisgICAgICAg
IGlmIChibG9ja0Zsb3ctPnN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxpbmVC
bG9jaykgeworICAgICAgICAgICAgLy8gVGhlIGJhc2VsaW5lIG9mIGFuICdpbmxpbmUtYmxvY2sn
IGlzIHRoZSBiYXNlbGluZSBvZiBpdHMgbGFzdCBsaW5lIGJveCBpbiB0aGUgbm9ybWFsIGZsb3cs
IHVubGVzcyBpdCBoYXMgZWl0aGVyIG5vIGluLWZsb3cgbGluZSBib3hlcyBvciBpZiBpdHMgJ292
ZXJmbG93JworICAgICAgICAgICAgLy8gcHJvcGVydHkgaGFzIGEgY29tcHV0ZWQgdmFsdWUgb3Ro
ZXIgdGhhbiAndmlzaWJsZScuIHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjIvdmlzdWRl
dC5odG1sCisgICAgICAgICAgICBhdXRvIHNob3VsZFN5bnRoZXNpemVCYXNlbGluZSA9ICFibG9j
a0Zsb3ctPnN0eWxlKCkuaXNPdmVyZmxvd1Zpc2libGUoKSAmJiAhaXM8UmVuZGVyVGV4dENvbnRy
b2xJbm5lckJsb2NrPigqYmxvY2tGbG93KTsKKyAgICAgICAgICAgIGlmIChzaG91bGRTeW50aGVz
aXplQmFzZWxpbmUpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorCisg
ICAgICAgIGF1dG8gd3JpdGluZ01vZGUgPSByZW5kZXJCb3guY29udGFpbmluZ0Jsb2NrKCktPndy
aXRpbmdNb2RlKCk7CisgICAgICAgIGlmIChibG9ja0Zsb3ctPnN0eWxlKCkub3ZlcmZsb3dZKCkg
IT0gT3ZlcmZsb3c6OlZpc2libGUpCisgICAgICAgICAgICByZXR1cm4gYmxvY2tGbG93LT5tYXJn
aW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKTsKKworICAgICAgICBhdXRvIGxhc3RCYXNl
bGluZSA9IFsmXSAtPiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHsKKyAgICAgICAgICAgIC8v
IE5vdGUgdGhhdCBoZXJlIHdlIG9ubHkgdGFrZSB0aGUgbGVmdCBhbmQgYm90dG9tIGludG8gY29u
c2lkZXJhdGlvbi4gT3VyIGNhbGxlciB0YWtlcyB0aGUgcmlnaHQgYW5kIHRvcCBpbnRvIGNvbnNp
ZGVyYXRpb24uCisgICAgICAgICAgICBpZiAoIWJsb2NrRmxvdy0+Y2hpbGRyZW5JbmxpbmUoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZmxvd0JveEJhc2VsaW5lKCpibG9ja0Zsb3cp
OworCisgICAgICAgICAgICBpZiAoIWJsb2NrRmxvdy0+aGFzTGluZXMoKSkgeworICAgICAgICAg
ICAgICAgIGlmICghYmxvY2tGbG93LT5oYXNMaW5lSWZFbXB0eSgpKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4geyB9OworCisgICAgICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBi
bG9ja0Zsb3ctPmZpcnN0TGluZVN0eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4geyBMYXlvdXRVbml0KGZvbnRNZXRyaWNzLmludEFzY2VudCgpCisg
ICAgICAgICAgICAgICAgICAgICsgKGJsb2NrRmxvdy0+bGluZUhlaWdodCgpIC0gZm9udE1ldHJp
Y3MuaW50SGVpZ2h0KCkpIC8gMgorICAgICAgICAgICAgICAgICAgICArICh3cml0aW5nTW9kZS5p
c0hvcml6b250YWwoKSA/IGJsb2NrRmxvdy0+Ym9yZGVyVG9wKCkgKyBibG9ja0Zsb3ctPnBhZGRp
bmdUb3AoKSA6IGJsb2NrRmxvdy0+Ym9yZGVyUmlnaHQoKSArIGJsb2NrRmxvdy0+cGFkZGluZ1Jp
Z2h0KCkpKS50b0ludCgpIH07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChhdXRv
KiBpbmxpbmVMYXlvdXQgPSBibG9ja0Zsb3ctPmlubGluZUxheW91dCgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmbG9vclRvSW50KGlubGluZUxheW91dC0+bGFzdExpbmVMb2dpY2FsQmFzZWxp
bmUoKSk7CisKKyAgICAgICAgICAgIGlmIChibG9ja0Zsb3ctPnN2Z1RleHRMYXlvdXQoKSkgewor
ICAgICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gYmxvY2tGbG93LT5maXJzdExpbmVTdHlsZSgp
OworICAgICAgICAgICAgICAgIC8vIExlZ2FjeUlubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJs
b2NrRGlyZWN0aW9uIHdpbGwgZmxpcCBsaW5lcyBpbiBjYXNlIG9mIHZlcnRpY2FsTFIgbW9kZSwg
c28gd2UgY2FuIGFzc3VtZSB2ZXJ0aWNhbFJMIGZvciBub3cuCisgICAgICAgICAgICAgICAgcmV0
dXJuIExheW91dFVuaXQoc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKS5pbnRBc2NlbnQoYmxv
Y2tGbG93LT5sZWdhY3lSb290Qm94KCktPmJhc2VsaW5lVHlwZSgpKSArIChzdHlsZS53cml0aW5n
TW9kZSgpLmlzTGluZUludmVydGVkKCkgPyBibG9ja0Zsb3ctPmxvZ2ljYWxIZWlnaHQoKSAtIGJs
b2NrRmxvdy0+bGVnYWN5Um9vdEJveCgpLT5sb2dpY2FsQm90dG9tKCkgOiBibG9ja0Zsb3ctPmxl
Z2FjeVJvb3RCb3goKS0+bG9naWNhbFRvcCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICB9OworICAgICAgICByZXR1cm4gbGFzdEJhc2VsaW5lKCk7
CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIgYmxvY2tSZW5kZXJlciA9IGR5bmFtaWNEb3du
Y2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyQm94KSkKKyAgICAgICAgcmV0dXJuIGxhc3RJbmZsb3dC
b3hCYXNlbGluZSgqYmxvY2tSZW5kZXJlcik7CisKKyAgICByZXR1cm4geyB9OworfQorCitMYXlv
dXRVbml0IHN0YXRpYyBiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94
KQoreworICAgIEFTU0VSVChyZW5kZXJCb3guaXNJbkZsb3coKSk7CisKKyAgICBhdXRvIHdyaXRp
bmdNb2RlID0gcmVuZGVyQm94LmNvbnRhaW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpOworICAg
IGF1dG8gbWFyZ2luQmVmb3JlID0gd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyByZW5kZXJC
b3gubWFyZ2luVG9wKCkgOiByZW5kZXJCb3gubWFyZ2luUmlnaHQoKTsKKworICAgIGlmIChyZW5k
ZXJCb3guc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKSB7CisgICAgICAgIGlmIChyZW5k
ZXJCb3guaXNGaWVsZHNldCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIHRvIHByZXNlcnZl
IGxlZ2FjeSBiZWhhdmlvci4KKyAgICAgICAgICAgIHJldHVybiByZW5kZXJCb3gubWFyZ2luQm94
TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJv
dW5kVG9JbnQocmVuZGVyQm94Lm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsK
KyAgICB9CisKKyAgICBpZiAocmVuZGVyQm94LmlzV3JpdGluZ01vZGVSb290KCkpCisgICAgICAg
IHJldHVybiByb3VuZFRvSW50KHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRp
bmdNb2RlKSk7CisKKyAgICBpZiAoaXM8UmVuZGVySUZyYW1lPihyZW5kZXJCb3gpCisgICAgICAg
IHx8IGlzPFJlbmRlckVtYmVkZGVkT2JqZWN0PihyZW5kZXJCb3gpCisgICAgICAgIHx8IGlzPExl
Z2FjeVJlbmRlclNWR1Jvb3Q+KHJlbmRlckJveCkKKyAgICAgICAgfHwgaXM8UmVuZGVySFRNTENh
bnZhcz4ocmVuZGVyQm94KQorICAgICAgICB8fCBpczxSZW5kZXJWaWV3VHJhbnNpdGlvbkNhcHR1
cmU+KHJlbmRlckJveCkpCisgICAgICAgIHJldHVybiByb3VuZFRvSW50KHJlbmRlckJveC5tYXJn
aW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSk7CisKKyNpZiBFTkFCTEUoQVRUQUNITUVO
VF9FTEVNRU5UKQorICAgIGlmIChDaGVja2VkUHRyIHJlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0
PFJlbmRlckF0dGFjaG1lbnQ+KHJlbmRlckJveCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGJhc2Vs
aW5lRWxlbWVudCA9IHJlbmRlcmVyLT5hdHRhY2htZW50RWxlbWVudCgpLndpZGVMYXlvdXRJbWFn
ZUVsZW1lbnQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudFJlbmRl
ckJveCA9IGJhc2VsaW5lRWxlbWVudC0+cmVuZGVyQm94KCkpIHsKKyAgICAgICAgICAgICAgICAv
LyBUaGlzIGlzIHRoZSBib3R0b20gb2YgdGhlIGltYWdlIGFzc3VtaW5nIGl0IGlzIHZlcnRpY2Fs
bHkgY2VudGVyZWQuCisgICAgICAgICAgICAgICAgcmV0dXJuIChyZW5kZXJlci0+aGVpZ2h0KCkg
KyBiYXNlbGluZUVsZW1lbnRSZW5kZXJCb3gtPmhlaWdodCgpKSAvIDI7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAvLyBGYWxsYmFjayB0byB0aGUgYm90dG9tIG9mIHRoZSBhdHRhY2htZW50
IGlmIHRoZXJlIGlzIG5vIGltYWdlLgorICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5oZWln
aHQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVuZGVyZXItPnRoZW1lKCkuYXR0YWNo
bWVudEJhc2VsaW5lKCpyZW5kZXJlcik7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoQ2hlY2tl
ZFB0ciByZW5kZXJlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJCdXR0b24+KHJlbmRlckJveCkp
IHsKKyAgICAgICAgLy8gV2UgY2Fubm90IHJlbHkgb24gUmVuZGVyRmxleGlibGVCb3g6OmJhc2Vs
aW5lUG9zaXRpb24oKSBiZWNhdXNlIG9mIGZsZXhib3hlcyBoYXZlIHNvbWUgc3BlY2lhbCBiZWhh
dmlvcgorICAgICAgICAvLyByZWdhcmRpbmcgYmFzZWxpbmVzIHRoYXQgc2hvdWxkbid0IGFwcGx5
IHRvIGJ1dHRvbnMuCisgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lID0gcmVuZGVyQm94LmZpcnN0
TGluZUJhc2VsaW5lKCkpCisgICAgICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlICsgKmJhc2Vs
aW5lOworICAgICAgICBhdXRvIGNvbnRlbnRCb3hCb3R0b20gPSB3cml0aW5nTW9kZS5pc0hvcml6
b250YWwoKSA/IHJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkg
KyByZW5kZXJlci0+Y29udGVudEJveEhlaWdodCgpIDogcmVuZGVyZXItPmJvcmRlclJpZ2h0KCkg
KyByZW5kZXJlci0+cGFkZGluZ1JpZ2h0KCkgKyByZW5kZXJlci0+Y29udGVudEJveFdpZHRoKCk7
CisgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUgKyBjb250ZW50Qm94Qm90dG9tOworICAgIH0K
KworICAgIGlmIChDaGVja2VkUHRyIHJlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlcklt
YWdlPihyZW5kZXJCb3gpKSB7CisgICAgICAgIGF1dG8gb2Zmc2V0ID0gTGF5b3V0VW5pdCB7IH07
CisjaWYgRU5BQkxFKE1VTFRJX1JFUFJFU0VOVEFUSU9OX0hFSUMpCisgICAgICAgIGlmIChyZW5k
ZXJlci0+aXNNdWx0aVJlcHJlc2VudGF0aW9uSEVJQygpKSB7CisgICAgICAgICAgICBhdXRvIG1l
dHJpY3MgPSByZW5kZXJlci0+c3R5bGUoKS5mb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCktPm1l
dHJpY3NGb3JNdWx0aVJlcHJlc2VudGF0aW9uSEVJQygpOworICAgICAgICAgICAgb2Zmc2V0ID0g
TGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobWV0cmljcy5kZXNjZW50KTsKKyAgICAgICAgfQor
I2VuZGlmCisgICAgICAgIHJldHVybiByb3VuZFRvSW50KHJlbmRlcmVyLT5tYXJnaW5Cb3hMb2dp
Y2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSkgLSBvZmZzZXQ7CisgICAgfQorCisgICAgaWYgKENoZWNr
ZWRQdHIgcmVuZGVyZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTGlzdEJveD4ocmVuZGVyQm94
KSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBoYXJkY29kZWQgYmFzZWxpbmVBZGp1c3RtZW50
IGlzIHdoYXQgd2UgdXNlZCB0byBkbyBmb3IgdGhlIG9sZAorICAgICAgICAvLyB3aWRnZXQsIGJ1
dCBJJ20gbm90IHN1cmUgdGhpcyBpcyByaWdodCBmb3IgdGhlIG5ldyBjb250cm9sLgorICAgICAg
ICBjb25zdCBpbnQgYmFzZWxpbmVBZGp1c3RtZW50ID0gNzsKKyAgICAgICAgcmV0dXJuIHJvdW5k
VG9JbnQocmVuZGVyZXItPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKSAtIGJh
c2VsaW5lQWRqdXN0bWVudDsKKyAgICB9CisKKyAgICBpZiAoQ2hlY2tlZFB0ciB0ZXh0Q29udHJv
bCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+KHJlbmRlckJv
eCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGlubmVyVGV4dFJlbmRlcmVyID0gdGV4dENvbnRyb2wt
PmlubmVyVGV4dFJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGF1dG8gYmFzZWxpbmUgPSBMYXlv
dXRVbml0IHsgfTsKKyAgICAgICAgICAgIGlmIChpbm5lclRleHRSZW5kZXJlci0+aW5saW5lTGF5
b3V0KCkpCisgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBzdGQ6Om1pbjxMYXlvdXRVbml0Pihp
bm5lclRleHRSZW5kZXJlci0+bWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSksIGZs
b29yVG9JbnQoaW5uZXJUZXh0UmVuZGVyZXItPmlubGluZUxheW91dCgpLT5sYXN0TGluZUxvZ2lj
YWxCYXNlbGluZSgpKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRv
JiBmb250TWV0cmljcyA9IGlubmVyVGV4dFJlbmRlcmVyLT5maXJzdExpbmVTdHlsZSgpLm1ldHJp
Y3NPZlByaW1hcnlGb250KCk7CisgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBmb250TWV0cmlj
cy5pbnRBc2NlbnQoKSArIChpbm5lclRleHRSZW5kZXJlci0+bGluZUhlaWdodCgpIC0gZm9udE1l
dHJpY3MuaW50SGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJhc2Vs
aW5lID0gZmxvb3JUb0ludChpbm5lclRleHRSZW5kZXJlci0+bG9naWNhbFRvcCgpICsgYmFzZWxp
bmUpOworICAgICAgICAgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9IGlubmVyVGV4dFJlbmRlcmVy
LT5jb250YWluaW5nQmxvY2soKTsgYW5jZXN0b3IgJiYgYW5jZXN0b3IgIT0gdGV4dENvbnRyb2w7
IGFuY2VzdG9yID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKQorICAgICAgICAgICAgICAg
IGJhc2VsaW5lID0gZmxvb3JUb0ludChhbmNlc3Rvci0+bG9naWNhbFRvcCgpICsgYmFzZWxpbmUp
OworICAgICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSArIGJhc2VsaW5lOworICAgICAgICB9
CisgICAgICAgIC8vIGlucHV0Ojotd2Via2l0LXRleHRmaWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5l
ciB7IGRpc3BsYXk6IG5vbmUgfQorICAgICAgICByZXR1cm4gcm91bmRUb0ludCh0ZXh0Q29udHJv
bC0+bWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpOworICAgIH0KKworICAgIGlm
IChDaGVja2VkUHRyIHJlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclRleHRDb250cm9s
TXVsdGlMaW5lPihyZW5kZXJCb3gpKQorICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJl
ci0+bWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpOworCisgICAgaWYgKENoZWNr
ZWRQdHIgZmlsZVVwbG9hZCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bD4ocmVuZGVyQm94KSkgeworICAgICAgICBpZiAoYXV0byogaW5saW5lTGF5b3V0ID0gZmlsZVVw
bG9hZC0+aW5saW5lTGF5b3V0KCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjptaW4ocmVuZGVy
Qm94Lm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpLCBtYXJnaW5CZWZvcmUgKyBm
bG9vclRvSW50KGlubGluZUxheW91dC0+bGFzdExpbmVMb2dpY2FsQmFzZWxpbmUoKSkpOworICAg
ICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3
cml0aW5nTW9kZSkpOworICAgIH0KKworICAgIGlmIChDaGVja2VkUHRyIHJlbmRlcmVyID0gZHlu
YW1pY0Rvd25jYXN0PFJlbmRlclNsaWRlcj4ocmVuZGVyQm94KSkgeworICAgICAgICAvLyBGSVhN
RTogUGF0Y2ggdGhpcyBmdW5jdGlvbiBmb3Igd3JpdGluZy1tb2RlLgorICAgICAgICByZXR1cm4g
cmVuZGVyZXItPmhlaWdodCgpICsgcmVuZGVyZXItPm1hcmdpblRvcCgpOworICAgIH0KKworICAg
IGlmIChDaGVja2VkUHRyIHJlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclRhYmxlPihy
ZW5kZXJCb3gpKSB7CisgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lUG9zID0gcmVuZGVyQm94LmZp
cnN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlICsgKmJh
c2VsaW5lUG9zOworICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJlci0+bWFyZ2luQm94
TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpOworICAgIH0KKworICAgIGlmIChDaGVja2VkUHRy
IG1lbnVMaXN0ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlck1lbnVMaXN0PihyZW5kZXJCb3gpKSB7
CisgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lID0gbGFzdEluZmxvd0JveEJhc2VsaW5lKCptZW51
TGlzdCkpCisgICAgICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlICsgKmJhc2VsaW5lOworICAg
ICAgICByZXR1cm4gbWVudUxpc3QtPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUp
OworICAgIH0KKworICAgIGlmIChpczxSZW5kZXJGbGV4aWJsZUJveD4ocmVuZGVyQm94KSB8fCBp
czxSZW5kZXJHcmlkPihyZW5kZXJCb3gpKSB7CisgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lID0g
cmVuZGVyQm94LmZpcnN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgICAgICByZXR1cm4gbWFyZ2lu
QmVmb3JlLnRvSW50KCkgKyAqYmFzZWxpbmU7CisgICAgICAgIHJldHVybiBzeW50aGVzaXplZEJh
c2VsaW5lKHJlbmRlckJveCwgKnJlbmRlckJveC5wYXJlbnRTdHlsZSgpLCB3cml0aW5nTW9kZS5p
c0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBCb3JkZXJCb3gp
ICsgcmVuZGVyQm94Lm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKKyAgICB9CisKKyAgICBpZiAocmVu
ZGVyQm94LmlzRmllbGRzZXQoKSkgeworICAgICAgICAvLyBOb3RlIHRoYXQgPGZpZWxkc2V0PiBt
YXkgc2ltcGx5IGJlIGEgZmxleC9ncmlkIGJveCAoYSBub24tUmVuZGVyQmxvY2tGbG93IFJlbmRl
ckJsb2NrKSBhbmQgYWxyZWFkeSBoYW5kbGVkIGFib3ZlLgorICAgICAgICBpZiAoQ2hlY2tlZFB0
ciBibG9ja0Zsb3cgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihyZW5kZXJCb3gp
KSB7CisgICAgICAgICAgICAvLyA8ZmllbGRzZXQ+IHdpdGggbm8gbGVnZW5kLgorICAgICAgICAg
ICAgaWYgKENoZWNrZWRQdHIgaW5saW5lTGF5b3V0ID0gYmxvY2tGbG93LT5pbmxpbmVMYXlvdXQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlICsgZmxvb3JUb0ludChpbmxp
bmVMYXlvdXQtPmxhc3RMaW5lTG9naWNhbEJhc2VsaW5lKCkpOworICAgICAgICAgICAgaWYgKGF1
dG8gYmFzZWxpbmUgPSBsYXN0SW5mbG93Qm94QmFzZWxpbmUoKmJsb2NrRmxvdykpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSArICpiYXNlbGluZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3
cml0aW5nTW9kZSkpOworICAgIH0KKworICAgIGlmIChyZW5kZXJCb3guZWxlbWVudCgpICYmIHJl
bmRlckJveC5lbGVtZW50KCktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgLy8g
Rm9yICJsZWFmIiB0aGVtZSBvYmplY3RzIGxpa2UgY2hlY2tib3gsIGxldCB0aGUgdGhlbWUgZGVj
aWRlIHdoYXQgdGhlIGJhc2VsaW5lIHBvc2l0aW9uIGlzLgorICAgICAgICBpZiAocmVuZGVyQm94
LnN0eWxlKCkuaGFzVXNlZEFwcGVhcmFuY2UoKSAmJiAhcmVuZGVyQm94LnRoZW1lKCkuaXNDb250
cm9sQ29udGFpbmVyKHJlbmRlckJveC5zdHlsZSgpLnVzZWRBcHBlYXJhbmNlKCkpKQorICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlckJveC50aGVtZSgpLmJhc2VsaW5lUG9zaXRpb24ocmVuZGVyQm94
KTsKKworICAgICAgICAvLyBOb24tUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIGlucHV0IHR5
cGUgbGlrZSBpbnB1dCB0eXBlIGNvbG9yLgorICAgICAgICBpZiAoQ2hlY2tlZFB0ciBjb250YWlu
ZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJCb3guZmlyc3RJbkZsb3dDaGls
ZCgpKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gYmFzZWxpbmVQb3MgPSBjb250YWluZXItPmZp
cnN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSAr
IGNvbnRhaW5lci0+bG9naWNhbFRvcCgpICsgKmJhc2VsaW5lUG9zOworICAgICAgICB9CisgICAg
ICAgIC8vIGUuZy4gbGVhZiB0aGVtZSBvYmplY3RzIHdpdGggbm8gYXBwZWFyYW5jZSAobm9uZSkg
YW5kIGVtcHR5IGNvbnRlbnQgKGUuZy4gYmVmb3JlIHBzZXVkbyBhbmQgY29udGVudDogIiIpLgor
ICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdo
dCh3cml0aW5nTW9kZSkpOworICAgIH0KKworICAgIGlmIChyZW5kZXJCb3guZWxlbWVudCgpICYm
IHJlbmRlckJveC5lbGVtZW50KCktPnNoYWRvd0hvc3QoKSAmJiByZW5kZXJCb3guZWxlbWVudCgp
LT5zaGFkb3dIb3N0KCktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgLy8gSW5z
aWRlIFJlbmRlclRleHRDb250cm9sJ3Mgc2hhZG93IERPTSAoZS5nLiBzdHJvbmctcGFzc3dvcmQg
dGV4dCkKKyAgICAgICAgYXV0byBsYXN0QmFzZWxpbmUgPSBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IHsgfTsKKyAgICAgICAgaWYgKENoZWNrZWRQdHIgYmxvY2tGbG93ID0gZHluYW1pY0Rvd25j
YXN0PFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyQm94KSkgeworICAgICAgICAgICAgaWYgKGF1dG8q
IGlubGluZUxheW91dCA9IGJsb2NrRmxvdy0+aW5saW5lTGF5b3V0KCkpCisgICAgICAgICAgICAg
ICAgbGFzdEJhc2VsaW5lID0gZmxvb3JUb0ludChpbmxpbmVMYXlvdXQtPmxhc3RMaW5lTG9naWNh
bEJhc2VsaW5lKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGQ6Om1pbihyZW5kZXJC
b3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSksIG1hcmdpbkJlZm9yZSArIGxh
c3RCYXNlbGluZS52YWx1ZV9vcigwX2x1KSk7CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIg
ZGVwcmVjYXRlZEZsZXhCb3ggPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94PihyZW5kZXJCb3gpKSB7CisgICAgICAgIC8vIEhpc3RvcmljYWxseSwgd2UgZGlkIHRo
aXMgY2hlY2sgZm9yIGFsbCBiYXNlbGluZXMuIEJ1dCB3ZSBjYW4ndAorICAgICAgICAvLyByZW1v
dmUgdGhpcyBjb2RlIGZyb20gZGVwcmVjYXRlZCBmbGV4Ym94LCBiZWNhdXNlIGl0IGVmZmVjdGl2
ZWx5CisgICAgICAgIC8vIGJyZWFrcyAtd2Via2l0LWxpbmUtY2xhbXAsIHdoaWNoIGlzIHVzZWQg
aW4gdGhlIHdpbGQgLS0gd2Ugd291bGQKKyAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBiYXNlbGlu
ZSBhcyBpZiAtd2Via2l0LWxpbmUtY2xhbXAgd2Fzbid0IHVzZWQuCisgICAgICAgIC8vIEZvciBz
aW1wbGljaXR5LCB3ZSB1c2UgdGhpcyBmb3IgYWxsIHVzZXMgb2YgZGVwcmVjYXRlZCBmbGV4Ym94
LgorICAgICAgICBhdXRvIGJvdHRvbU9mQ29udGVudCA9IGRlcHJlY2F0ZWRGbGV4Qm94LT5ib3Jk
ZXJCZWZvcmUoKSArIGRlcHJlY2F0ZWRGbGV4Qm94LT5wYWRkaW5nQmVmb3JlKCkgKyBkZXByZWNh
dGVkRmxleEJveC0+Y29udGVudEJveExvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgYXV0byBiYXNl
bGluZSA9IGxhc3RJbmZsb3dCb3hCYXNlbGluZSgqZGVwcmVjYXRlZEZsZXhCb3gpOworICAgICAg
ICBpZiAoYmFzZWxpbmUgJiYgKmJhc2VsaW5lIDw9IGJvdHRvbU9mQ29udGVudCkKKyAgICAgICAg
ICAgIHJldHVybiBtYXJnaW5CZWZvcmUgKyAqYmFzZWxpbmU7CisgICAgICAgIHJldHVybiByb3Vu
ZFRvSW50KGRlcHJlY2F0ZWRGbGV4Qm94LT5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdN
b2RlKSk7CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIgcmVuZGVyZXIgPSBkeW5hbWljRG93
bmNhc3Q8UmVuZGVyTGlzdE1hcmtlcj4ocmVuZGVyQm94KSkgeworICAgICAgICBpZiAoQ2hlY2tl
ZFB0ciBsaXN0SXRlbSA9IHJlbmRlcmVyLT5saXN0SXRlbSgpOyBsaXN0SXRlbSAmJiAhcmVuZGVy
ZXItPmlzSW1hZ2UoKSkgeworICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSByZW5kZXJl
ci0+c3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOworICAgICAgICAgICAgcmV0dXJuIExh
eW91dFVuaXQgeyBmb250TWV0cmljcy5pbnRBc2NlbnQoKSArIChyZW5kZXJlci0+bGluZUhlaWdo
dCgpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMiB9LnRvSW50KCk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQocmVuZGVyQm94Lm1hcmdpbkJveExvZ2ljYWxIZWln
aHQod3JpdGluZ01vZGUpKTsKKyAgICB9CisKKyNpZiBFTkFCTEUoTUFUSE1MKQorICAgIGlmIChp
czxSZW5kZXJNYXRoTUxCbG9jaz4ocmVuZGVyQm94KSkgeworICAgICAgICBpZiAoYXV0byBiYXNl
bGluZSA9IHJlbmRlckJveC5maXJzdExpbmVCYXNlbGluZSgpKQorICAgICAgICAgICAgcmV0dXJu
ICpiYXNlbGluZTsKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQocmVuZGVyQm94Lm1hcmdpbkJv
eExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChD
aGVja2VkUHRyIHJlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJsb2NrPihyZW5kZXJC
b3gpKSB7CisgICAgICAgIC8vIENTUzIuMSBzdGF0ZXMgdGhhdCB0aGUgYmFzZWxpbmUgb2YgYW4g
aW5saW5lIGJsb2NrIGlzIHRoZSBiYXNlbGluZSBvZiB0aGUgbGFzdCBsaW5lIGJveCBpbgorICAg
ICAgICAvLyB0aGUgbm9ybWFsIGZsb3cuIFdlIG1ha2UgYW4gZXhjZXB0aW9uIGZvciBtYXJxdWVl
cywgc2luY2UgdGhlaXIgYmFzZWxpbmVzIGFyZSBtZWFuaW5nbGVzcworICAgICAgICAvLyAodGhl
IGNvbnRlbnQgaW5zaWRlIHRoZW0gbW92ZXMpLiBUaGlzIG1hdGNoZXMgV2luSUUgYXMgd2VsbCwg
d2hpY2gganVzdCBib3R0b20tYWxpZ25zIHRoZW0uCisgICAgICAgIC8vIFdlIGFsc28gZ2l2ZSB1
cCBvbiBmaW5kaW5nIGEgYmFzZWxpbmUgaWYgd2UgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciwg
b3IgaWYgd2UgYXJlIHNjcm9sbGVkCisgICAgICAgIC8vIHZlcnRpY2FsbHkgKGUuZy4sIGFuIG92
ZXJmbG93OmhpZGRlbiBibG9jayB0aGF0IGhhcyBoYWQgc2Nyb2xsVG9wIG1vdmVkKS4KKyAgICAg
ICAgYXV0byBpZ25vcmVCYXNlbGluZSA9IFsmXSB7CisgICAgICAgICAgICBDaGVja2VkUHRyIHNj
cm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkgPyByZW5kZXJlci0+bGF5ZXIoKS0+c2Ny
b2xsYWJsZUFyZWEoKSA6IG51bGxwdHI7CisgICAgICAgICAgICBpZiAoIXNjcm9sbGFibGVBcmVh
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHNjcm9s
bGFibGVBcmVhLT5tYXJxdWVlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICAgICAgICAgIGlmICh3cml0aW5nTW9kZS5pc0hvcml6b250YWwoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsYWJs
ZUFyZWEtPnNjcm9sbE9mZnNldCgpLnkoKTsKKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxhYmxl
QXJlYS0+aG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZz
ZXQoKS54KCk7CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKGlnbm9yZUJhc2VsaW5lKCkpCisg
ICAgICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhl
aWdodCh3cml0aW5nTW9kZSkpOworCisgICAgICAgIGlmIChhdXRvIGlubGluZUJsb2NrQmFzZWxp
bmVQb3NpdGlvbiA9IGlubGluZUJsb2NrQmFzZWxpbmUocmVuZGVyQm94KSkKKyAgICAgICAgICAg
IHJldHVybiBtYXJnaW5CZWZvcmUgKyAqaW5saW5lQmxvY2tCYXNlbGluZVBvc2l0aW9uOworICAg
IH0KKworICAgIHJldHVybiByb3VuZFRvSW50KHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVp
Z2h0KHdyaXRpbmdNb2RlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlv
bkJhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogeworICAgIGlmIChyZW5kZXJC
b3guaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm47CisK
ICAgICBhdXRvIGhhc05vblN5bnRoZXRpY0Jhc2VsaW5lID0gWyZdIHsKICAgICAgICAgaWYgKGF1
dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyTGlzdE1hcmtlcj4o
cmVuZGVyQm94KSkKICAgICAgICAgICAgIHJldHVybiAhcmVuZGVyTGlzdE1hcmtlci0+aXNJbWFn
ZSgpOwpAQCAtMzE1LDExICs2MzAsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0SW50ZWdyYXRp
b25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCwgV3JpdGluZ01vZAogICAgICAg
ICByZXR1cm4gaGFzQXBwYXJlYW5jZSB8fCAhYmxvY2tGbG93LT5jaGlsZHJlbklubGluZSgpIHx8
IGJsb2NrRmxvdy0+aGFzTGluZXMoKSB8fCBibG9ja0Zsb3ctPmhhc0xpbmVJZkVtcHR5KCk7CiAg
ICAgfTsKIAotICAgIGlmICghaGFzTm9uU3ludGhldGljQmFzZWxpbmUoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgYXV0byBiYXNlbGluZSA9IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKGZh
bHNlIC8qIGZpcnN0TGluZSAqLywgd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9u
dGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKLSAgICBj
b25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNl
dEJhc2VsaW5lRm9ySW50ZWdyYXRpb24oYmFzZWxpbmUpOworICAgIGlmIChoYXNOb25TeW50aGV0
aWNCYXNlbGluZSgpKQorICAgICAgICBjb25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpy
ZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRpb24oYmFzZWxpbmVQ
b3NpdGlvbihyZW5kZXJCb3gpKTsKIH0KIAogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0
ZUxheW91dEJveERpbWVuc2lvbnMoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0OjpJ
bnRyaW5zaWNXaWR0aE1vZGU+IGludHJpbnNpY1dpZHRoTW9kZSkKQEAgLTQ4Nyw3ICs3OTksNyBA
QCB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlQm94R2VvbWV0cnlBZnRlckludGVncmF0
aW9uTGF5b3V0KGNvbnN0IExheW91dDo6RQogCiAgICAgYXV0byBpbnRlZ3JhdGlvbkFkanVzdG1l
bnRzID0gWyZdIHsKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBldmVudHVhbGx5IGJl
IGFsbCBhYnNvcmJlZCBieSBMRkMgbGF5b3V0LgotICAgICAgICBzZXRJbnRlZ3JhdGlvbkJhc2Vs
aW5lKCpyZW5kZXJCb3gsIHdyaXRpbmdNb2RlKCkpOworICAgICAgICBzZXRJbnRlZ3JhdGlvbkJh
c2VsaW5lKCpyZW5kZXJCb3gpOwogCiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJMaXN0TWFya2Vy
ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KCpyZW5kZXJCb3gpKSB7CiAgICAg
ICAgICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5wYXJlbnQoKS5zdHlsZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAKaW5kZXgg
MTJiODU2ZWNlYjE3Li5iNjkxNzk2ZGNlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRp
YyBMYXlvdXRSZWN0IGNvbXB1dGVDYXJldFJlY3RGb3JFbXB0eUVsZW1lbnQoY29uc3QgUmVuZGVy
Qm94TW9kZWxPYmplY3QmIHJlCiAgICAgfQogICAgIHggPSBzdGQ6Om1pbih4LCBzdGQ6Om1heDxM
YXlvdXRVbml0PihtYXhYIC0gY2FyZXRXaWR0aCgpLCAwKSk7CiAKLSAgICBhdXRvIGxpbmVIZWln
aHQgPSByZW5kZXJlci5saW5lSGVpZ2h0KHRydWUsIHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgp
ID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVC
b3hlcyk7CisgICAgYXV0byBsaW5lSGVpZ2h0ID0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChj
dXJyZW50U3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogICAgIGF1dG8gaGVpZ2h0ID0gc3Rk
OjptaW4obGluZUhlaWdodCwgTGF5b3V0VW5pdCB7IGN1cnJlbnRTdHlsZS5tZXRyaWNzT2ZQcmlt
YXJ5Rm9udCgpLmhlaWdodCgpIH0pOwogICAgIGF1dG8geSA9IHJlbmRlcmVyLmJvcmRlckFuZFBh
ZGRpbmdCZWZvcmUoKSArIChsaW5lSGVpZ2h0ID4gaGVpZ2h0ID8gKGxpbmVIZWlnaHQgLSBoZWln
aHQpIC8gMiA6IExheW91dFVuaXQgeyB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeUxpbmVMYXlvdXQuY3BwCmluZGV4IDJiN2E0MTZkODM2ZS4uNDllYTAzM2YwNTA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCkBAIC01
NzYsNyArNTc2LDcgQEAgdm9pZCBMZWdhY3lMaW5lTGF5b3V0OjpsYXlvdXRMaW5lQm94ZXMoKQog
ICAgIH0KIAogICAgIGlmICghbGVnYWN5Um9vdEJveCgpICYmIG1fZmxvdy5oYXNMaW5lSWZFbXB0
eSgpKQotICAgICAgICBtX2Zsb3cuc2V0TG9naWNhbEhlaWdodChtX2Zsb3cubG9naWNhbEhlaWdo
dCgpICsgbV9mbG93LmxpbmVIZWlnaHQodHJ1ZSwgbV9mbG93LmlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9y
TGluZUJveGVzKSk7CisgICAgICAgIG1fZmxvdy5zZXRMb2dpY2FsSGVpZ2h0KG1fZmxvdy5sb2dp
Y2FsSGVpZ2h0KCkgKyBtX2Zsb3cubGluZUhlaWdodCgpKTsKIH0KIAogdm9pZCBMZWdhY3lMaW5l
TGF5b3V0OjphZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKaW5kZXggN2MwMDAxZDViZmJkLi43M2Rm
YTczNGM0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRh
Y2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVu
dC5jcHAKQEAgLTEwMywyMCArMTAzLDYgQEAgdm9pZCBSZW5kZXJBdHRhY2htZW50OjpsYXlvdXQo
KQogICAgICAgICBsYXlvdXRTaGFkb3dDb250ZW50KG5ld0ludHJpbnNpY1NpemUpOwogfQogCi1M
YXlvdXRVbml0IFJlbmRlckF0dGFjaG1lbnQ6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8qIGJh
c2VsaW5lRWxlbWVudCA9IGF0dGFjaG1lbnRFbGVtZW50KCkud2lkZUxheW91dEltYWdlRWxlbWVu
dCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBiYXNlbGluZUVsZW1lbnRSZW5kZXJCb3ggPSBiYXNl
bGluZUVsZW1lbnQtPnJlbmRlckJveCgpKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBi
b3R0b20gb2YgdGhlIGltYWdlIGFzc3VtaW5nIGl0IGlzIHZlcnRpY2FsbHkgY2VudGVyZWQuCi0g
ICAgICAgICAgICByZXR1cm4gKGhlaWdodCgpICsgYmFzZWxpbmVFbGVtZW50UmVuZGVyQm94LT5o
ZWlnaHQoKSkgLyAyOwotICAgICAgICB9Ci0gICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBib3R0
b20gb2YgdGhlIGF0dGFjaG1lbnQgaWYgdGhlcmUgaXMgbm8gaW1hZ2UuCi0gICAgICAgIHJldHVy
biBoZWlnaHQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdGhlbWUoKS5hdHRhY2htZW50QmFzZWxp
bmUoKnRoaXMpOwotfQotCiBib29sIFJlbmRlckF0dGFjaG1lbnQ6OnNob3VsZERyYXdCb3JkZXIo
KSBjb25zdAogewogICAgIGlmIChzdHlsZSgpLnVzZWRBcHBlYXJhbmNlKCkgPT0gU3R5bGVBcHBl
YXJhbmNlOjpCb3JkZXJsZXNzQXR0YWNobWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQXR0YWNobWVudC5oCmluZGV4IGU0YzUyZTdiOWE2OC4uMDVlZGE3MDlkNDZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmgKQEAgLTY0LDggKzY0
LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKLSAgICBMYXlv
dXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgTGF5b3V0VW5pdCBtX21pbmltdW1JbnRy
aW5zaWNXaWR0aDsKICAgICBib29sIG1fc2hvdWxkRHJhd0JvcmRlciB7IHRydWUgfTsKICAgICBi
b29sIG1faGFzU2hhZG93Q29udHJvbHMgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggMjQzMTk3YmRlOGQ0Li40NTllMDU3ZjczZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjQ3Myw3NyArMjQ3Myw2
IEBAIGJvb2wgUmVuZGVyQmxvY2s6Omhhc0xpbmVJZkVtcHR5KCkgY29uc3QKICAgICByZXR1cm4g
ZWxlbWVudCAmJiBlbGVtZW50LT5pc1Jvb3RFZGl0YWJsZUVsZW1lbnQoKTsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJCbG9jazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
Ci17Ci0gICAgLy8gSW5saW5lIGJsb2NrcyBhcmUgcmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lz
ZSwganVzdCBwYXNzIG9mZiB0bwotICAgIC8vIHRoZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVp
bmcgcXVlcmllZCBhcyB0aG91Z2ggd2UncmUgdGhlIHJvb3QgbGluZQotICAgIC8vIGJveCwgdGhl
biB0aGUgZmFjdCB0aGF0IHdlJ3JlIGFuIGlubGluZS1ibG9jayBpcyBpcnJlbGV2YW50LCBhbmQg
d2UgYmVoYXZlCi0gICAgLy8ganVzdCBsaWtlIGEgYmxvY2suCi0gICAgaWYgKGlzQmxvY2tMZXZl
bFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSAmJiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChm
aXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7Ci0KLSAgICBhdXRvJiBsaW5l
U3R5bGUgPSBmaXJzdExpbmUgPyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsKLSAgICByZXR1
cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0
KCkpOwotfQotCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUg
bGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICAvLyBJbmxpbmUgYmxvY2tzIGFyZSByZXBs
YWNlZCBlbGVtZW50cy4gT3RoZXJ3aXNlLCBqdXN0IHBhc3Mgb2ZmIHRvCi0gICAgLy8gdGhlIGJh
c2UgY2xhc3MuICBJZiB3ZSdyZSBiZWluZyBxdWVyaWVkIGFzIHRob3VnaCB3ZSdyZSB0aGUgcm9v
dCBsaW5lCi0gICAgLy8gYm94LCB0aGVuIHRoZSBmYWN0IHRoYXQgd2UncmUgYW4gaW5saW5lLWJs
b2NrIGlzIGlycmVsZXZhbnQsIGFuZCB3ZSBiZWhhdmUKLSAgICAvLyBqdXN0IGxpa2UgYSBibG9j
ay4KLSAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lubGluZSgpICYmIGxpbmVQ
b3NpdGlvbk1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSB7Ci0gICAgICAgIC8vIEZv
ciAibGVhZiIgdGhlbWUgb2JqZWN0cywgbGV0IHRoZSB0aGVtZSBkZWNpZGUgd2hhdCB0aGUgYmFz
ZWxpbmUgcG9zaXRpb24gaXMuCi0gICAgICAgIC8vIEZJWE1FOiBNaWdodCBiZSBiZXR0ZXIgdG8g
aGF2ZSBhIGN1c3RvbSBDU1MgcHJvcGVydHkgaW5zdGVhZCwgc28gdGhhdCBpZiB0aGUgdGhlbWUK
LSAgICAgICAgLy8gaXMgdHVybmVkIG9mZiwgY2hlY2tib3hlcy9yYWRpb3Mgd2lsbCBzdGlsbCBo
YXZlIGRlY2VudCBiYXNlbGluZXMuCi0gICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIHBhdGNoIGZv
cm0gY29udHJvbHMgdG8gZGVhbCB3aXRoIHZlcnRpY2FsIGxpbmVzLgotICAgICAgICBpZiAoc3R5
bGUoKS5oYXNVc2VkQXBwZWFyYW5jZSgpICYmICF0aGVtZSgpLmlzQ29udHJvbENvbnRhaW5lcihz
dHlsZSgpLnVzZWRBcHBlYXJhbmNlKCkpKQotICAgICAgICAgICAgcmV0dXJuIHRoZW1lKCkuYmFz
ZWxpbmVQb3NpdGlvbigqdGhpcyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgLy8gQ1NTMi4xIHN0
YXRlcyB0aGF0IHRoZSBiYXNlbGluZSBvZiBhbiBpbmxpbmUgYmxvY2sgaXMgdGhlIGJhc2VsaW5l
IG9mIHRoZSBsYXN0IGxpbmUgYm94IGluCi0gICAgICAgIC8vIHRoZSBub3JtYWwgZmxvdy4gIFdl
IG1ha2UgYW4gZXhjZXB0aW9uIGZvciBtYXJxdWVlcywgc2luY2UgdGhlaXIgYmFzZWxpbmVzIGFy
ZSBtZWFuaW5nbGVzcwotICAgICAgICAvLyAodGhlIGNvbnRlbnQgaW5zaWRlIHRoZW0gbW92ZXMp
LiAgVGhpcyBtYXRjaGVzIFdpbklFIGFzIHdlbGwsIHdoaWNoIGp1c3QgYm90dG9tLWFsaWducyB0
aGVtLgotICAgICAgICAvLyBXZSBhbHNvIGdpdmUgdXAgb24gZmluZGluZyBhIGJhc2VsaW5lIGlm
IHdlIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIsIG9yIGlmIHdlIGFyZSBzY3JvbGxlZAotICAg
ICAgICAvLyB2ZXJ0aWNhbGx5IChlLmcuLCBhbiBvdmVyZmxvdzpoaWRkZW4gYmxvY2sgdGhhdCBo
YXMgaGFkIHNjcm9sbFRvcCBtb3ZlZCkuCi0gICAgICAgIGF1dG8gaWdub3JlQmFzZWxpbmUgPSBb
dGhpcywgZGlyZWN0aW9uXSgpIC0+IGJvb2wgewotICAgICAgICAgICAgaWYgKGlzV3JpdGluZ01v
ZGVSb290KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgICAgIENo
ZWNrZWRQdHIgc2Nyb2xsYWJsZUFyZWEgPSBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsYWJsZUFy
ZWEoKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICBpZiAoIXNjcm9sbGFibGVBcmVhKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVBcmVh
LT5tYXJxdWVlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgICAg
IGlmIChkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcigpIHx8IHNjcm9sbGFibGVBcmVhLT5z
Y3JvbGxPZmZzZXQoKS55KCk7Ci0gICAgICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEtPmhv
cml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsT2Zmc2V0KCkueCgp
OwotICAgICAgICB9OwotCi0gICAgICAgIGF1dG8gYmFzZWxpbmVQb3MgPSBpZ25vcmVCYXNlbGlu
ZSgpID8gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpIDogaW5saW5lQmxvY2tCYXNlbGluZShk
aXJlY3Rpb24pOwotICAgICAgICAKLSAgICAgICAgaWYgKGlzUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94KCkpIHsKLSAgICAgICAgICAgIC8vIEhpc3RvcmljYWxseSwgd2UgZGlkIHRoaXMgY2hl
Y2sgZm9yIGFsbCBiYXNlbGluZXMuIEJ1dCB3ZSBjYW4ndAotICAgICAgICAgICAgLy8gcmVtb3Zl
IHRoaXMgY29kZSBmcm9tIGRlcHJlY2F0ZWQgZmxleGJveCwgYmVjYXVzZSBpdCBlZmZlY3RpdmVs
eQotICAgICAgICAgICAgLy8gYnJlYWtzIC13ZWJraXQtbGluZS1jbGFtcCwgd2hpY2ggaXMgdXNl
ZCBpbiB0aGUgd2lsZCAtLSB3ZSB3b3VsZAotICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBi
YXNlbGluZSBhcyBpZiAtd2Via2l0LWxpbmUtY2xhbXAgd2Fzbid0IHVzZWQuCi0gICAgICAgICAg
ICAvLyBGb3Igc2ltcGxpY2l0eSwgd2UgdXNlIHRoaXMgZm9yIGFsbCB1c2VzIG9mIGRlcHJlY2F0
ZWQgZmxleGJveC4KLSAgICAgICAgICAgIExheW91dFVuaXQgYm90dG9tT2ZDb250ZW50ID0gZGly
ZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgKyBj
b250ZW50Qm94SGVpZ2h0KCkgOiBib3JkZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0KCkgKyBjb250
ZW50Qm94V2lkdGgoKTsKLSAgICAgICAgICAgIGlmIChiYXNlbGluZVBvcyAmJiBiYXNlbGluZVBv
cy52YWx1ZSgpID4gYm90dG9tT2ZDb250ZW50KQotICAgICAgICAgICAgICAgIGJhc2VsaW5lUG9z
ID0gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChi
YXNlbGluZVBvcykKLSAgICAgICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExp
bmUgPyBtYXJnaW5Ub3AoKSArIGJhc2VsaW5lUG9zLnZhbHVlKCkgOiBtYXJnaW5SaWdodCgpICsg
YmFzZWxpbmVQb3MudmFsdWUoKTsKLQotICAgICAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGlu
ZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKLSAgICB9
Ci0KLSAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSBmaXJzdExpbmUgPyBmaXJzdExpbmVT
dHlsZSgpIDogdGhpcy0+c3R5bGUoKTsKLSAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJp
Y3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0
IHsgZm9udE1ldHJpY3MuaW50QXNjZW50KCkgKyAobGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVj
dGlvbiwgbGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyIH0u
dG9JbnQoKTsKLX0KLQogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9jazo6Zmly
c3RMaW5lQmFzZWxpbmUoKSBjb25zdAogewogICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRh
aW5tZW50KCkpCkBAIC0yNTc4LDM2ICsyNTA3LDYgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJCbG9jazo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsK
IH0KIAotc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tC
YXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBsaW5lRGlyZWN0aW9uKSBjb25zdAotewotICAgIGlm
IChzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpIHsKLSAgICAgICAgaWYgKGlzSW5saW5l
KCkpCi0gICAgICAgICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVu
dFN0eWxlKCksIGxpbmVEaXJlY3Rpb24sIEJvcmRlckJveCkgKyAobGluZURpcmVjdGlvbiA9PSBI
b3Jpem9udGFsTGluZSA/IG1hcmdpbkJvdHRvbSgpIDogbWFyZ2luTGVmdCgpKTsKLSAgICAgICAg
cmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICBpZiAoaXNXcml0aW5nTW9kZVJvb3QoKSkKLSAgICAg
ICAgcmV0dXJuIHsgfTsKLQotICAgIGJvb2wgaGF2ZU5vcm1hbEZsb3dDaGlsZCA9IGZhbHNlOwot
ICAgIGZvciAoYXV0byogYm94ID0gbGFzdENoaWxkQm94KCk7IGJveDsgYm94ID0gYm94LT5wcmV2
aW91c1NpYmxpbmdCb3goKSkgewotICAgICAgICBpZiAoYm94LT5pc0Zsb2F0aW5nT3JPdXRPZkZs
b3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaGF2ZU5vcm1h
bEZsb3dDaGlsZCA9IHRydWU7Ci0gICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IGJveC0+aW5saW5l
QmxvY2tCYXNlbGluZShsaW5lRGlyZWN0aW9uKSkKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRV
bml0IHsgKGJveC0+bG9naWNhbFRvcCgpICsgcmVzdWx0LnZhbHVlKCkpLnRvSW50KCkgfTsgLy8g
VHJhbnNsYXRlIHRvIG91ciBjb29yZGluYXRlIHNwYWNlLgotICAgIH0KLQotICAgIGlmICghaGF2
ZU5vcm1hbEZsb3dDaGlsZCAmJiBoYXNMaW5lSWZFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8mIGZv
bnRNZXRyaWNzID0gZmlyc3RMaW5lU3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IExheW91dFVuaXQoZm9udE1ldHJpY3MuaW50QXNjZW50
KCkKLSAgICAgICAgICAgICsgKGxpbmVIZWlnaHQodHJ1ZSwgbGluZURpcmVjdGlvbiwgUG9zaXRp
b25PZkludGVyaW9yTGluZUJveGVzKSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIKLSAg
ICAgICAgICAgICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBib3JkZXJUb3Ao
KSArIHBhZGRpbmdUb3AoKSA6IGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSkpLnRvSW50
KCkgfTsKLSAgICB9Ci0KLSAgICByZXR1cm4geyB9OwotfQotCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNSZW5kZXJCbG9ja0Zsb3dPclJlbmRlckJ1dHRvbihSZW5kZXJFbGVtZW50JiByZW5kZXJFbGVt
ZW50KQogewogICAgIC8vIFdlIGluY2x1ZGUgaXNSZW5kZXJCdXR0b24gaW4gdGhpcyBjaGVjayBi
ZWNhdXNlIGJ1dHRvbnMgYXJlIGltcGxlbWVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCmluZGV4IDIxZDNmNzZmNGMwNy4uNDQwMDVmMWQzOTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNjUsMTAgKzY1LDYgQEAgcHJvdGVjdGVkOgog
ICAgIFJlbmRlckJsb2NrKFR5cGUsIERvY3VtZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0aW9uU2V0
PFR5cGVGbGFnPiwgVHlwZVNwZWNpZmljRmxhZ3MgPSB7IH0pOwogCiBwdWJsaWM6Ci0gICAgLy8g
VGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgb3ZlcnJpZGRlbiBmb3IgaW5saW5lLWJsb2NrLgotICAg
IExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUs
IExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFs
OwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8gRklYTUUtQkxPQ0tGTE9XOiBSZW1vdmUgdmlydHVh
bGl6YWlvbiB3aGVuIGFsbCBjYWxsZXJzIGhhdmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxpbmVzKCk7CiAKQEAgLTI4OSw3ICsyODUsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgCiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNl
bGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFz
dExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICAvLyBEZWxheSB1cGRhdGluZyBzY3JvbGxiYXJzIHVudGlsIGVuZEFuZENvbW1p
dFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKCkgaXMgY2FsbGVkLiBUaGVz
ZSBmdW5jdGlvbnMgYXJlIHVzZWQKICAgICAvLyB3aGVuIGEgZmxleGJveCBpcyBsYXlpbmcgb3V0
IGl0cyBkZXNjZW5kYW50cy4gSWYgbXVsdGlwbGUgY2FsbHMgYXJlIG1hZGUgdG8gYmVnaW5VcGRh
dGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDYyYjg4NjZhOTM4ZC4uM2ZhZjBmNDNl
MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApA
QCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja1dpdGhO
b0NoaWxkcmVuKCkKICAgICAgICAgICAgIHNldEhhc01hcmdpbkJlZm9yZVF1aXJrKHN0eWxlLm1h
cmdpbkJlZm9yZSgpLmhhc1F1aXJrKCkpOwogICAgICAgICAgICAgc2V0SGFzTWFyZ2luQWZ0ZXJR
dWlyayhzdHlsZS5tYXJnaW5BZnRlcigpLmhhc1F1aXJrKCkpOwogICAgICAgICB9Ci0gICAgICAg
IHNldExvZ2ljYWxIZWlnaHQoYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9s
bGJhckxvZ2ljYWxIZWlnaHQoKSArIChoYXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCh0cnVl
LCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExp
bmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykgOiAwX2x1KSk7CisgICAgICAgIHNldExv
Z2ljYWxIZWlnaHQoYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxv
Z2ljYWxIZWlnaHQoKSArIChoYXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCgpIDogMF9sdSkp
OwogICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgfTsKICAgICBjb21wdXRlQmxv
Y2tBeGlzU2l6ZSgpOwpAQCAtNzgwLDcgKzc4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojps
YXlvdXRJbkZsb3dDaGlsZHJlbihSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4sIExh
CiAKICAgICAgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxI
ZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgaWYgKGhhc0xpbmVJ
ZkVtcHR5KCkpCi0gICAgICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IGxpbmVIZWlnaHQodHJ1ZSwg
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5l
LCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOworICAgICAgICAgICAgbG9naWNhbEhlaWdo
dCArPSBsaW5lSGVpZ2h0KCk7CiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdo
dCk7CiAKICAgICAgICAgcmVwYWludExvZ2ljYWxUb3AgPSB7IH07CkBAIC0yNzQ5LDcgKzI3NDks
NyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0SW5pdGlhbExldHRlclBvc2l0aW9uKFJl
bmRlckJveCYgY2hpbGRCb3gsIExheW91dFVuaQogICAgIGlmICghZm9udE1ldHJpY3MuY2FwSGVp
Z2h0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQgaGVpZ2h0T2ZMaW5lID0g
bGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExp
bmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CisgICAgTGF5
b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBsaW5lSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBiZWZv
cmVNYXJnaW5Cb3JkZXJQYWRkaW5nID0gY2hpbGRCb3guYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgp
ICsgY2hpbGRCb3gubWFyZ2luQmVmb3JlKCk7CiAgICAgCiAgICAgLy8gTWFrZSBhbiBhZGp1c3Rt
ZW50IHRvIGFsaWduIHdpdGggdGhlIGNhcCBoZWlnaHQgb2YgYSB0aGVvcmV0aWNhbCBibG9jayBs
aW5lLgpAQCAtMzI5NSw2OSArMzI5NSw2IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVu
ZGVyQmxvY2tGbG93OjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKICAgICByZXR1cm4geyB9Owog
fQogCi1zdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJsb2NrRmxvdzo6aW5saW5lQmxv
Y2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBsaW5lRGlyZWN0aW9uKSBjb25zdAotewotICAg
IGlmIChpc1dyaXRpbmdNb2RlUm9vdCgpKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgaWYg
KHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckJs
b2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKGxpbmVEaXJlY3Rpb24pOwotCi0gICAgUmVmUHRyIGVs
ZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7Ci0gICAgYm9vbCBpc0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQgPSBlbGVtZW50ICYmIGVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCk7Ci0gICAgaWYg
KHN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jaykgewotICAgICAg
ICAvLyBUaGUgYmFzZWxpbmUgb2YgYW4gJ2lubGluZS1ibG9jaycgaXMgdGhlIGJhc2VsaW5lIG9m
IGl0cyBsYXN0IGxpbmUgYm94IGluIHRoZSBub3JtYWwgZmxvdywgdW5sZXNzIGl0IGhhcyBlaXRo
ZXIgbm8gaW4tZmxvdyBsaW5lIGJveGVzIG9yIGlmIGl0cyAnb3ZlcmZsb3cnCi0gICAgICAgIC8v
IHByb3BlcnR5IGhhcyBhIGNvbXB1dGVkIHZhbHVlIG90aGVyIHRoYW4gJ3Zpc2libGUnLiBzZWUg
aHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIyL3Zpc3VkZXQuaHRtbAotICAgICAgICBhdXRvIHNo
b3VsZFN5bnRoZXNpemVCYXNlbGluZSA9ICFzdHlsZSgpLmlzT3ZlcmZsb3dWaXNpYmxlKCkgJiYg
IWlzSFRNTEZvcm1Db250cm9sRWxlbWVudCAmJiAhaXNSZW5kZXJUZXh0Q29udHJvbElubmVyQmxv
Y2soKTsKLSAgICAgICAgaWYgKHNob3VsZFN5bnRoZXNpemVCYXNlbGluZSkKLSAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgfQotICAgIC8vIE5vdGUgdGhhdCBoZXJlIHdlIG9ubHkgdGFrZSB0
aGUgbGVmdCBhbmQgYm90dG9tIGludG8gY29uc2lkZXJhdGlvbi4gT3VyIGNhbGxlciB0YWtlcyB0
aGUgcmlnaHQgYW5kIHRvcCBpbnRvIGNvbnNpZGVyYXRpb24uCi0gICAgYXV0byBib3hIZWlnaHQg
PSBzeW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5bGUoKSwgbGluZURpcmVjdGlv
biwgQm9yZGVyQm94KSArIChsaW5lRGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbV9tYXJn
aW5Cb3guYm90dG9tKCkgOiBtX21hcmdpbkJveC5sZWZ0KCkpOwotICAgIExheW91dFVuaXQgbGFz
dEJhc2VsaW5lOwotICAgIGlmICghY2hpbGRyZW5JbmxpbmUoKSkgewotICAgICAgICBhdXRvIGlu
bGluZUJsb2NrQmFzZWxpbmUgPSBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShsaW5l
RGlyZWN0aW9uKTsKLSAgICAgICAgaWYgKCFpbmxpbmVCbG9ja0Jhc2VsaW5lKQotICAgICAgICAg
ICAgcmV0dXJuIGlubGluZUJsb2NrQmFzZWxpbmU7Ci0gICAgICAgIGxhc3RCYXNlbGluZSA9IGlu
bGluZUJsb2NrQmFzZWxpbmUudmFsdWUoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIWhh
c0xpbmVzKCkpIHsKLSAgICAgICAgICAgIGlmICghaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICAgICAgY29uc3QgYXV0byYgZm9u
dE1ldHJpY3MgPSBmaXJzdExpbmVTdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAg
ICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IExheW91dFVuaXQoZm9udE1ldHJpY3MuaW50QXNj
ZW50KCkKLSAgICAgICAgICAgICAgICArIChsaW5lSGVpZ2h0KHRydWUsIGxpbmVEaXJlY3Rpb24s
IFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkg
LyAyCi0gICAgICAgICAgICAgICAgKyAobGluZURpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/
IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpIDogYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdSaWdo
dCgpKSkudG9JbnQoKSB9OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHN2Z1RleHRMYXlvdXQo
KSkgewotICAgICAgICAgICAgYXV0byYgc3R5bGUgPSBmaXJzdExpbmVTdHlsZSgpOwotICAgICAg
ICAgICAgLy8gTGVnYWN5SW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24g
d2lsbCBmbGlwIGxpbmVzIGluIGNhc2Ugb2YgdmVydGljYWxMUiBtb2RlLCBzbyB3ZSBjYW4gYXNz
dW1lIHZlcnRpY2FsUkwgZm9yIG5vdy4KLSAgICAgICAgICAgIGxhc3RCYXNlbGluZSA9IHN0eWxl
Lm1ldHJpY3NPZlByaW1hcnlGb250KCkuaW50QXNjZW50KGxlZ2FjeVJvb3RCb3goKS0+YmFzZWxp
bmVUeXBlKCkpCi0gICAgICAgICAgICAgICAgKyAoc3R5bGUud3JpdGluZ01vZGUoKS5pc0xpbmVJ
bnZlcnRlZCgpID8gbG9naWNhbEhlaWdodCgpIC0gbGVnYWN5Um9vdEJveCgpLT5sb2dpY2FsQm90
dG9tKCkgOiBsZWdhY3lSb290Qm94KCktPmxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoaW5saW5lTGF5b3V0KCkpCi0gICAgICAgICAgICBsYXN0QmFzZWxpbmUgPSBmbG9vclRvSW50
KGlubGluZUxheW91dCgpLT5sYXN0TGluZUxvZ2ljYWxCYXNlbGluZSgpKTsKLSAgICB9Ci0KLSAg
ICBpZiAoc3R5bGUoKS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6VmlzaWJsZSkKLSAgICAgICAg
cmV0dXJuIGxhc3RCYXNlbGluZTsKLQotICAgIC8vIFdoaWxlIGNzcy1hbGlnbi0zIGRlZmluZXMg
dGhlIGxhc3QgYmFzZWxpbmUgZm9ybSBibG9jayBjb250YWluZXJzIHdoaWNoIGFyZQotICAgIC8v
IHNjcm9sbCBjb250YWluZXJzICh3aXRoIGFuIGluaXRpYWwgYmFzZWxpbmUtc291cmNlIHZhbHVl
KSBhcyB0aGUgYmxvY2stZW5kIG1hcmdpbgotICAgIC8vIGVkZ2UsIHdlIGluc3RlYWQgbWFpbnRh
aW4gb3VyIGxlZ2FjeSBiZWhhdmlvciBmb3IgZm9ybSBjb250cm9scyBhbmQgY29udGVudAotICAg
IC8vIGluc2lkZSBmb3JtIGNvbnRyb2xzIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkuCi0gICAg
YXV0byBpc0luRm9ybUNvbnRyb2wgPSBbJl0gewotICAgICAgICBpZiAoIWVsZW1lbnQpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChSZWZQdHIgc2hhZG93SG9zdCA9IGVs
ZW1lbnQtPnNoYWRvd0hvc3QoKSkKLSAgICAgICAgICAgIHJldHVybiBzaGFkb3dIb3N0LT5pc0Zv
cm1Db250cm9sRWxlbWVudCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfTsKLSAgICBp
ZiAoaXNIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHx8IGlzSW5Gb3JtQ29udHJvbCgpKQotICAgICAg
ICByZXR1cm4gc3RkOjptaW4oYm94SGVpZ2h0LCBsYXN0QmFzZWxpbmUpOwotICAgIHJldHVybiBi
b3hIZWlnaHQ7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RFbmNsb3Np
bmdUb3BGb3JQcmVjZWRpbmdCbG9jayhMYXlvdXRVbml0IHRvcCkgY29uc3QKIHsKICAgICBpZiAo
c2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpJbnNpZGUg
JiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQp
CkBAIC00MDQ1LDcgKzM5ODIsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5saW5l
Q29udGVudChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4sIExheQogICAgIGF1dG8g
cGFydGlhbFJlcGFpbnRSZWN0ID0gbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0Lmxh
eW91dChyZWxheW91dENoaWxkcmVuID09IFJlbGF5b3V0Q2hpbGRyZW46OlllcyA/IExheW91dElu
dGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1bGxMYXlvdXQ6OlllcyA6IExheW91dEludGVn
cmF0aW9uOjpMaW5lTGF5b3V0OjpGb3JjZUZ1bGxMYXlvdXQ6Ok5vKTsKIAogICAgIGF1dG8gYm9y
ZGVyQm94Qm90dG9tID0gWyZdIHsKLSAgICAgICAgYXV0byBjb250ZW50SGVpZ2h0ID0gIWhhc0xp
bmVzKCkgJiYgaGFzTGluZUlmRW1wdHkoKSA/IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9m
SW50ZXJpb3JMaW5lQm94ZXMpIDogbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNv
bnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIGF1dG8gY29udGVudEhlaWdodCA9ICFoYXNM
aW5lcygpICYmIGhhc0xpbmVJZkVtcHR5KCkgPyBsaW5lSGVpZ2h0KCkgOiBsYXlvdXRGb3JtYXR0
aW5nQ29udGV4dExpbmVMYXlvdXQuY29udGVudExvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgcmV0
dXJuIGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSArIGNvbnRlbnRIZWlnaHQgKyBib3JkZXJBbmRQ
YWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICB9OwogICAgIGF1
dG8gbmV3Qm9yZGVyQm94Qm90dG9tID0gYm9yZGVyQm94Qm90dG9tKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKaW5kZXggNGM3MzkxMjExYmE1Li44ZTQwYTE0
NmEwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKQEAg
LTQ0OSw3ICs0NDksNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25N
b2RlKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0Q29tcHV0ZWRDb2x1bW5Db3VudEFu
ZFdpZHRoKGludCwgTGF5b3V0VW5pdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggNmQ0M2Y0NjNmNmM3Li5jMzEzMDJkMmZjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIgog
I2luY2x1ZGUgIlJlbmRlckxheW91dFN0YXRlLmgiCisjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtl
ci5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTEJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVs
dGlDb2x1bW5GbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0SW5saW5lcy5oIgpAQCAtNDk1
OCwxOCArNDk1OSwxNSBAQCBib29sIFJlbmRlckJveDo6aXNVbnNwbGl0dGFibGVGb3JQYWdpbmF0
aW9uKCkgY29uc3QKICAgICAgICAgfHwgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKTsKIH0K
IAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoYm9vbCAvKmZpcnN0TGluZSovLCBM
aW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9zaXRp
b25Nb2RlKi8pIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6bGluZUhlaWdodCgpIGNvbnN0
CiB7Ci0gICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkKLSAgICAg
ICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1fbWFyZ2luQm94LnRvcCgp
ICsgaGVpZ2h0KCkgKyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFyZ2luQm94LnJpZ2h0KCkg
KyB3aWR0aCgpICsgbV9tYXJnaW5Cb3gubGVmdCgpOwotICAgIHJldHVybiAwOwotfQorICAgIGlm
IChpczxSZW5kZXJCbG9jaz4oKnRoaXMpIHx8IChpczxSZW5kZXJMaXN0TWFya2VyPigqdGhpcykg
JiYgIWRvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KCp0aGlzKS5pc0ltYWdlKCkpKQorICAgICAg
ICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChmaXJzdExpbmVTdHlsZSgpLmNvbXB1
dGVkTGluZUhlaWdodCgpKTsKIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCAvKmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQ
b3NpdGlvbk1vZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0Ci17CiAgICAgaWYgKGlzQmxv
Y2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkKLSAgICAgICAgcmV0dXJuIHJvdW5kVG9J
bnQoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWln
aHQoKSArIG1fbWFyZ2luQm94LmJvdHRvbSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRo
KCkgKyBtX21hcmdpbkJveC5sZWZ0KCkpOwotICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bWFyZ2luQmVmb3JlKCkgKyBsb2dpY2FsSGVpZ2h0KCkgKyBtYXJnaW5BZnRlcigpOworCisgICAg
cmV0dXJuIHsgfTsKIH0KIAogUmVuZGVyTGF5ZXIqIFJlbmRlckJveDo6ZW5jbG9zaW5nRmxvYXRQ
YWludGluZ0xheWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRl
eCBmYTMwMDY1ODdjNzIuLjE5ODY5MWIyNzIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaApAQCAtMjQyLDYgKzI0Miw4IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IG1hcmdp
blN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbWFyZ2luU3RhcnQod3JpdGluZ01vZGUoKSk7IH0KICAg
ICBMYXlvdXRVbml0IG1hcmdpbkVuZCgpIGNvbnN0IHsgcmV0dXJuIG1hcmdpbkVuZCh3cml0aW5n
TW9kZSgpKTsgfQogCisgICAgaW5saW5lIExheW91dFVuaXQgbWFyZ2luQm94TG9naWNhbEhlaWdo
dChXcml0aW5nTW9kZSkgY29uc3Q7CisKICAgICB2b2lkIHNldE1hcmdpbkJlZm9yZShMYXlvdXRV
bml0IHZhbHVlLCBjb25zdCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgeyBtX21hcmdpbkJveC5z
ZXRCZWZvcmUodmFsdWUsIHdyaXRpbmdNb2RlKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luQWZ0ZXIo
TGF5b3V0VW5pdCB2YWx1ZSwgY29uc3QgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIHsgbV9tYXJn
aW5Cb3guc2V0QWZ0ZXIodmFsdWUsIHdyaXRpbmdNb2RlKTsgfQogICAgIHZvaWQgc2V0TWFyZ2lu
U3RhcnQoTGF5b3V0VW5pdCB2YWx1ZSwgY29uc3QgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIHsg
bV9tYXJnaW5Cb3guc2V0U3RhcnQodmFsdWUsIHdyaXRpbmdNb2RlKTsgfQpAQCAtNTE4LDcgKzUy
MCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5p
dD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiB7IH07IH0KICAgICB2aXJ0dWFs
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IHsgcmV0
dXJuIHsgfTsgfQotICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVC
bG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCB7IHJldHVybiB7IH07IH0gLy8g
UmV0dXJucyBlbXB0eSBpZiB3ZSBzaG91bGQgc2tpcCB0aGlzIGJveCB3aGVuIGNvbXB1dGluZyB0
aGUgYmFzZWxpbmUgb2YgYW4gaW5saW5lLWJsb2NrLgorICAgIHZpcnR1YWwgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKCkgY29uc3QgeyByZXR1cm4geyB9OyB9
IC8vIFJldHVybnMgZW1wdHkgaWYgd2Ugc2hvdWxkIHNraXAgdGhpcyBib3ggd2hlbiBjb21wdXRp
bmcgdGhlIGJhc2VsaW5lIG9mIGFuIGlubGluZS1ibG9jay4KICAgICBMYXlvdXRVbml0IHN5bnRo
ZXNpemVCYXNlbGluZShGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlLCBCYXNlbGluZVN5bnRoZXNp
c0VkZ2UpIGNvbnN0OwogCiAgICAgYm9vbCBzaHJpbmtUb0F2b2lkRmxvYXRzKCkgY29uc3Q7CkBA
IC01MjYsOCArNTI4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG1hcmtGb3JQYWdp
bmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgpIHsgfQogICAgIAotICAgIExheW91dFVuaXQgbGluZUhl
aWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUg
PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExp
bmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRl
OworICAgIExheW91dFVuaXQgbGluZUhlaWdodCgpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBv
ZmZzZXRMZWZ0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBvZmZzZXRUb3AoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94SW5saW5l
cy5oCmluZGV4IDY1MTVmNTYwYTY0YS4uNmVkZWI2NmNjYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94SW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitpbmxpbmUgTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpbkJveExv
Z2ljYWxIZWlnaHQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0IHsgcmV0dXJuIHdyaXRp
bmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1f
bWFyZ2luQm94LmJvdHRvbSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21h
cmdpbkJveC5sZWZ0KCk7IH0KIGlubGluZSBMYXlvdXRTaXplIFJlbmRlckJveDo6Ym9yZGVyQm94
TG9naWNhbFNpemUoKSBjb25zdCB7IHJldHVybiBsb2dpY2FsU2l6ZSgpOyB9CiBpbmxpbmUgTGF5
b3V0UmVjdCBSZW5kZXJCb3g6OmNsaWVudEJveFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRS
ZWN0KGNsaWVudExlZnQoKSwgY2xpZW50VG9wKCksIGNsaWVudFdpZHRoKCksIGNsaWVudEhlaWdo
dCgpKTsgfQogaW5saW5lIExheW91dFVuaXQgUmVuZGVyQm94OjpjbGllbnRMZWZ0KCkgY29uc3Qg
eyByZXR1cm4gYm9yZGVyTGVmdCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDNmMjMwMzdhNjI0Mi4uZDcxYjM0ZmUzMDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApA
QCAtMzEsNyArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBNb2RlcyBmb3Igc29t
ZSBvZiB0aGUgbGluZS1yZWxhdGVkIGZ1bmN0aW9ucy4KLWVudW0gTGluZVBvc2l0aW9uTW9kZSB7
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzIH07
CiBlbnVtIExpbmVEaXJlY3Rpb25Nb2RlIHsgSG9yaXpvbnRhbExpbmUsIFZlcnRpY2FsTGluZSB9
OwogCiBlbnVtIGNsYXNzIEJsZWVkQXZvaWRhbmNlIDogdWludDhfdCB7CkBAIC0xOTQsMTAgKzE5
Myw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb250YWluaW5nQmxvY2tM
b2dpY2FsV2lkdGhGb3JDb250ZW50KCkgY29uc3Q7CiAKLSAgICAvLyBPdmVycmlkZGVuIGJ5IHN1
YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4K
LSAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29s
IGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlv
bk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsKLQogICAgIHZvaWQgbWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQoT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0YXRlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFNlbGVjdGlvblN0YXRlKEhpZ2hsaWdodFN0
YXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCdXR0b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAK
aW5kZXggMDA2ODNjNTliMzY2Li4yNzFiNTM2OTA5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCdXR0b24uY3BwCkBAIC0xNjEsMjIgKzE2MSw2IEBAIExheW91dFJlY3QgUmVu
ZGVyQnV0dG9uOjpjb250cm9sQ2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxP
ZmZzZXQpIGNvCiAgICAgcmV0dXJuIExheW91dFJlY3QoYWRkaXRpb25hbE9mZnNldC54KCkgKyBi
b3JkZXJMZWZ0KCksIGFkZGl0aW9uYWxPZmZzZXQueSgpICsgYm9yZGVyVG9wKCksIHdpZHRoKCkg
LSBib3JkZXJMZWZ0KCkgLSBib3JkZXJSaWdodCgpLCBoZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0g
Ym9yZGVyQm90dG9tKCkpOwogfQogCi1zdGF0aWMgTGF5b3V0VW5pdCBzeW50aGVzaXplZEJhc2Vs
aW5lRnJvbUNvbnRlbnRCb3goY29uc3QgUmVuZGVyQm94JiBib3gsIExpbmVEaXJlY3Rpb25Nb2Rl
IGRpcmVjdGlvbikKLXsKLSAgICByZXR1cm4gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8g
Ym94LmJvcmRlclRvcCgpICsgYm94LnBhZGRpbmdUb3AoKSArIGJveC5jb250ZW50Qm94SGVpZ2h0
KCkgOiBib3guYm9yZGVyUmlnaHQoKSArIGJveC5wYWRkaW5nUmlnaHQoKSArIGJveC5jb250ZW50
Qm94V2lkdGgoKTsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0
aW9uTW9kZSBtb2RlKSBjb25zdAotewotICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRhaW5t
ZW50KCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlv
bihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbW9kZSk7Ci0gICAgLy8gV2UgY2Fubm90IHJlbHkgb24g
UmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oKSBiZWNhdXNlIG9mIGZsZXhib3hl
cyBoYXZlIHNvbWUgc3BlY2lhbCBiZWhhdmlvcgotICAgIC8vIHJlZ2FyZGluZyBiYXNlbGluZXMg
dGhhdCBzaG91bGRuJ3QgYXBwbHkgdG8gYnV0dG9ucy4KLSAgICBMYXlvdXRVbml0IGJhc2VsaW5l
ID0gZmlyc3RMaW5lQmFzZWxpbmUoKS52YWx1ZV9vcihzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNv
bnRlbnRCb3goKnRoaXMsIGRpcmVjdGlvbikpOwotICAgIExheW91dFVuaXQgbWFyZ2luQXNjZW50
ID0gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdo
dCgpOwotICAgIHJldHVybiBiYXNlbGluZSArIG1hcmdpbkFzY2VudDsKLX0KLQogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiB2b2lkIFJlbmRlckJ1dHRvbjo6bGF5b3V0KCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAppbmRleCA4N2NmM2FlZjRkMDMuLmY2OGI2ZjRk
ZjFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaApAQCAtNjYsOCAr
NjYsNiBAQCBwdWJsaWM6CiAgICAgUmVuZGVyQmxvY2sqIGlubmVyUmVuZGVyZXIoKSBjb25zdCB7
IHJldHVybiBtX2lubmVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRJbm5lclJlbmRlcmVyKFJlbmRl
ckJsb2NrJik7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQo
KSBjb25zdCA9IGRlbGV0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBhZjg4NmY1ZTJlYjUuLjMx
OThkOWU5NGJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTUxMCw3ICs1MTAsNyBAQCB2b2lkIFJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChSZWxheW91dENo
aWxkcmVuIHJlbGF5b3V0QwogICAgICAgICBBU1NFUlQoY2hpbGRJbmRleCA9PSBjaGlsZExheW91
dERlbHRhcy5zaXplKCkpOwogCiAgICAgICAgIGlmICghaXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNM
aW5lSWZFbXB0eSgpKQotICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdo
dCh0cnVlLCB3cml0aW5nTW9kZSgpLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBW
ZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykpOworICAgICAgICAgICAg
c2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCgpKTsKIAogICAgICAgICBzZXRIZWlnaHQo
aGVpZ2h0KCkgKyB0b0FkZCk7CiAKQEAgLTg0OCw3ICs4NDgsNyBAQCB2b2lkIFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCb3goUmVsYXlvdXRDaGlsZHJlbiByZWxh
eW91dENoaQogICAgICAgICB5UG9zID0gaGVpZ2h0KCk7CiAKICAgICAgICAgaWYgKCFpdGVyYXRv
ci5maXJzdCgpICYmIGhhc0xpbmVJZkVtcHR5KCkpCi0gICAgICAgICAgICBzZXRIZWlnaHQoaGVp
Z2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUsIHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBI
b3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVz
KSk7CisgICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KCkpOwogCiAg
ICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIHRvQWRkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggZjAwODk1
YzRiN2Y0Li5mNWQ0M2Y0ZDNhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjA3LDggKzIwNyw4IEBAIHZvaWQg
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiByb3VuZFRvSW50KGJhc2Vs
aW5lUG9zaXRpb24odHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBIb3Jpem9udGFsTGlu
ZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSk7CisgICAgICAgICAg
ICAvLyBGaWxlIHVwbG9hZCBidXR0b24gaXMgZGlzcGxheTogbm9uZSAoc2VlIDo6ZmlsZS1zZWxl
Y3Rvci1idXR0b24pLgorICAgICAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQobWFyZ2luQm94TG9n
aWNhbEhlaWdodChjb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKSkpOwogICAgICAgICB9
KCk7CiAKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5zZXRGaWxsQ29sb3Ioc3R5bGUoKS52
aXNpdGVkRGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXgg
ZmQ3MjQ4YzdkYzI3Li5kZGNkZjZlMGUzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMjY0LDE1ICsyNjQsNiBAQCB2b2lkIFJlbmRl
ckZsZXhpYmxlQm94Ojpjb21wdXRlQ2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKFJlbmRlckJv
eCYgZmxleEJveENoaQogICAgIFJlbmRlckJsb2NrOjpjb21wdXRlQ2hpbGRJbnRyaW5zaWNMb2dp
Y2FsV2lkdGhzKGZsZXhCb3hDaGlsZCwgbWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBtYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94Ojpi
YXNlbGluZVBvc2l0aW9uKGJvb2wsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBv
c2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICBhdXRvIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxp
bmUoKTsKLSAgICBpZiAoIWJhc2VsaW5lKQotICAgICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNl
bGluZSgqdGhpcywgKnBhcmVudFN0eWxlKCksIGRpcmVjdGlvbiwgQm9yZGVyQm94KSArIG1hcmdp
bkxvZ2ljYWxIZWlnaHQoKTsKLQotICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKGRpcmVj
dGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9J
bnQoKTsKLX0KLQogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6
Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogewogICAgIGlmICgoaXNXcml0aW5nTW9kZVJvb3Qo
KSAmJiAhaXNGbGV4SXRlbSgpKSB8fCAhbV9udW1iZXJPZkZsZXhJdGVtc09uRmlyc3RMaW5lIHx8
IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKQEAgLTMyMywxMSArMzE0LDYgQEAgc3Rk
OjpvcHRpb25hbCA8TGF5b3V0VW5pdD4gUmVuZGVyRmxleGlibGVCb3g6Omxhc3RMaW5lQmFzZWxp
bmUoKSBjb25zdAogICAgIHJldHVybiBMYXlvdXRVbml0IHsgKGJhc2VsaW5lLnZhbHVlKCkgKyBi
YXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRvSW50KCkgfTsKIH0KIAotc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6aW5saW5lQmxvY2tCYXNlbGluZShM
aW5lRGlyZWN0aW9uTW9kZSkgY29uc3QKLXsKLSAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUo
KTsKLX0KLQogc3RhdGljIGNvbnN0IFN0eWxlQ29udGVudEFsaWdubWVudERhdGEmIGNvbnRlbnRB
bGlnbm1lbnROb3JtYWxCZWhhdmlvcigpCiB7CiAgICAgLy8gVGhlIGp1c3RpZnktY29udGVudCBw
cm9wZXJ0eSBhcHBsaWVzIGFsb25nIHRoZSBtYWluIGF4aXMsIGJ1dCBzaW5jZQpAQCAtMTM0Niw3
ICsxMzMyLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cGVyZm9ybUZsZXhMYXlvdXQoUmVs
YXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQogCiAgICAgaWYgKGFsbEl0ZW1zLmlzRW1w
dHkoKSkgewogICAgICAgICBpZiAoaGFzTGluZUlmRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0
byBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpICsgbGluZUhlaWdo
dCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0
aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykgKyBzY3JvbGxiYXJMb2dpY2Fs
SGVpZ2h0KCk7CisgICAgICAgICAgICBhdXRvIG1pbkhlaWdodCA9IGJvcmRlckFuZFBhZGRpbmdM
b2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7
CiAgICAgICAgICAgICBpZiAoaGVpZ2h0KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICAgICAg
c2V0TG9naWNhbEhlaWdodChtaW5IZWlnaHQpOwogICAgICAgICB9CkBAIC0xNDIzLDcgKzE0MDks
NyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENo
aWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgIC8vIGEgbGluZSBiZWNhdXNlIGFsbCBv
dXIgY2hpbGRyZW4gbWlnaHQgYmUgb3V0IG9mIGZsb3cgcG9zaXRpb25lZC4KICAgICAgICAgLy8g
SW5zdGVhZCBvZiBqdXN0IGNoZWNraW5nIGlmIHdlIGhhdmUgYSBsaW5lLCBtYWtlIHN1cmUgdGhl
IGZsZXhib3gKICAgICAgICAgLy8gaGFzIGF0IGxlYXN0IGEgbGluZSdzIHdvcnRoIG9mIGhlaWdo
dCB0byBjb3ZlciB0aGlzIGNhc2UuCi0gICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0gYm9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlv
bk9mSW50ZXJpb3JMaW5lQm94ZXMpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOworICAgICAg
ICBMYXlvdXRVbml0IG1pbkhlaWdodCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkg
KyBsaW5lSGVpZ2h0KCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIGlmIChz
aXplKCkuaGVpZ2h0KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0
KG1pbkhlaWdodCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guaAppbmRleCBlNjhjYWQyMDc2ZTMuLjkyYzUyZmU2ODM1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTU2LDEwICs1Niw4IEBA
IHB1YmxpYzoKICAgICBib29sIGNhbkRyb3BBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIGxheW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRy
ZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwX2x1KSBmaW5hbDsKIAotICAgIExh
eW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUo
KSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RMaW5l
QmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0
eWxlKikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoaXRUZXN0Q2hpbGRyZW4oY29uc3QgSGl0VGVzdFJl
cXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5
b3V0UG9pbnQmIGFkanVzdGVkTG9jYXRpb24sIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDQyZWUyMjg5YTU4Yi4uMTdi
ZWRhYTU5ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC00
ODksNyArNDg5LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkKFJlbGF5b3V0Q2hpbGRy
ZW4gcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgLy8gR3JpZCBjb250YWluZXIgc2hvdWxkIGhh
dmUgdGhlIG1pbmltdW0gaGVpZ2h0IG9mIGEgbGluZSBpZiBpdCdzIGVkaXRhYmxlLiBUaGF0IGRv
ZXMgbm90IGFmZmVjdCB0cmFjayBzaXppbmcgdGhvdWdoLgogICAgICAgICBpZiAoaGFzTGluZUlm
RW1wdHkoKSkgewogICAgICAgICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHRGb3JFbXB0eUxpbmUg
PSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpCi0gICAgICAgICAgICAgICAgKyBsaW5l
SGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6
IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKQorICAgICAgICAgICAg
ICAgICsgbGluZUhlaWdodCgpCiAgICAgICAgICAgICAgICAgKyBzY3JvbGxiYXJMb2dpY2FsSGVp
Z2h0KCk7CiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHN0ZDo6bWF4KGxvZ2ljYWxIZWln
aHQoKSwgbWluSGVpZ2h0Rm9yRW1wdHlMaW5lKSk7CiAgICAgICAgIH0KQEAgLTYyNiw3ICs2MjYs
NyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dE1hc29ucnkoUmVsYXlvdXRDaGlsZHJlbiByZWxh
eW91dENoaWxkcmVuKQogICAgICAgICAvLyBHcmlkIGNvbnRhaW5lciBzaG91bGQgaGF2ZSB0aGUg
bWluaW11bSBoZWlnaHQgb2YgYSBsaW5lIGlmIGl0J3MgZWRpdGFibGUuIFRoYXQgZG9lcyBub3Qg
YWZmZWN0IHRyYWNrIHNpemluZyB0aG91Z2guCiAgICAgICAgIGlmIChoYXNMaW5lSWZFbXB0eSgp
KSB7CiAgICAgICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodEZvckVtcHR5TGluZSA9IGJvcmRl
ckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkKLSAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQo
dHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGlj
YWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpCisgICAgICAgICAgICAgICAgKyBs
aW5lSGVpZ2h0KCkKICAgICAgICAgICAgICAgICArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsK
ICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBt
aW5IZWlnaHRGb3JFbXB0eUxpbmUpKTsKICAgICAgICAgfQpAQCAtMjAxMSwxNyArMjAxMSw2IEBA
IGJvb2wgUmVuZGVyR3JpZDo6aXNCYXNlbGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNvbnN0IFJl
bmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUCiAgICAgcmV0dXJuIGlzQmFzZWxpbmVQb3NpdGlvbihh
bGlnbikgJiYgIWhhc0F1dG9NYXJnaW5zOwogfQogCi0vLyBGSVhNRTogVGhpcyBsb2dpYyBpcyBz
aGFyZWQgYnkgUmVuZGVyRmxleGlibGVCb3gsIHNvIGl0IG1pZ2h0IGJlIHJlZmFjdG9yZWQgc29t
ZWhvdy4KLUxheW91dFVuaXQgUmVuZGVyR3JpZDo6YmFzZWxpbmVQb3NpdGlvbihib29sLCBMaW5l
RGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29uc3QKLXsK
LSAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KTsKLSAgICBhdXRvIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKTsKLSAgICBpZiAoIWJh
c2VsaW5lKQotICAgICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVu
dFN0eWxlKCksIGRpcmVjdGlvbiwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsK
LQotICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKGRpcmVjdGlvbiA9PSBIb3Jpem9udGFs
TGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9JbnQoKTsKLX0KLQogc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJHcmlkOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0
CiB7CiAgICAgaWYgKChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc0ZsZXhJdGVtKCkpIHx8ICFj
dXJyZW50R3JpZCgpLmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1l
bnQoKSkKQEAgLTIwOTAsMTEgKzIwNzksNiBAQCBTaW5nbGVUaHJlYWRXZWFrUHRyPFJlbmRlckJv
eD4gUmVuZGVyR3JpZDo6Z2V0QmFzZWxpbmVHcmlkSXRlbShJdGVtUG9zaXRpb24gYWxpZwogICAg
IHJldHVybiBiYXNlbGluZUdyaWRJdGVtOwogfQogCi1zdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+
IFJlbmRlckdyaWQ6OmlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lKCk7Ci19Ci0KIExheW91dFVuaXQgUmVu
ZGVyR3JpZDo6Y29sdW1uQXhpc0Jhc2VsaW5lT2Zmc2V0Rm9yR3JpZEl0ZW0oY29uc3QgUmVuZGVy
Qm94JiBncmlkSXRlbSkgY29uc3QKIHsKICAgICAvLyBGSVhNRSA6IENTUyBNYXNvbnJ5IGRvZXMg
bm90IHByb3Blcmx5IGhhbmRsZSBiYXNlbGluZSBjYWxjdWxhdGlvbnMgY3VycmVudGx5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggMjY5MDQyZjRlMDgwLi4yYTllYWIz
OTNlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtMjcwLDExICsy
NzAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQXV0b01hcmdpbnNJblJvd0F4aXNJZk5l
ZWRlZChSZW5kZXJCb3gmKTsKICAgICBib29sIGlzQ2hpbGRFbGlnaWJsZUZvck1hcmdpblRyaW0o
TWFyZ2luVHJpbVR5cGUsIGNvbnN0IFJlbmRlckJveCYpIGNvbnN0IGZpbmFsOwogCi0gICAgTGF5
b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmlu
YWw7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNv
bnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGlu
ZSgpIGNvbnN0IGZpbmFsOwogICAgIFNpbmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94PiBnZXRC
YXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0OwotICAgIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9k
ZSkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0lubGluZUJhc2VsaW5lQWxpZ25lZENoaWxkKGNv
bnN0IFJlbmRlckJveCYpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBjb2x1bW5BeGlzQmFzZWxp
bmVPZmZzZXRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDIxYmY2NTUwMDc3Mi4uZGQyOWMyNDUx
YmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTMwNiwx
OCArMzA2LDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6Y29tcHV0ZVJlcGxhY2VkTG9naWNh
bEhlaWdodChzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGUKICAgICByZXR1cm4gUmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoZXN0aW1hdGVkVXNlZFdpZHRoKTsK
IH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0
TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQ
b3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgTGF5b3V0VW5pdCBvZmZzZXQ7Ci0jaWYgRU5BQkxF
KE1VTFRJX1JFUFJFU0VOVEFUSU9OX0hFSUMpCi0gICAgaWYgKGlzTXVsdGlSZXByZXNlbnRhdGlv
bkhFSUMoKSkgewotICAgICAgICBhdXRvIG1ldHJpY3MgPSBzdHlsZSgpLmZvbnRDYXNjYWRlKCku
cHJpbWFyeUZvbnQoKS0+bWV0cmljc0Zvck11bHRpUmVwcmVzZW50YXRpb25IRUlDKCk7Ci0gICAg
ICAgIG9mZnNldCA9IExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKG1ldHJpY3MuZGVzY2VudCk7
Ci0gICAgfQotI2VuZGlmCi0gICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihm
aXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSkgLSBvZmZzZXQ7Ci19Ci0KIHZv
aWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIgbmV3SW1hZ2UsIGNv
bnN0IEludFJlY3QqIHJlY3QpCiB7CiAgICAgaWYgKHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCAwNTFkMTU2NGMzMTIu
LmM1ZWQ0N2ZmZjFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAg
LTEzOCw4ICsxMzgsNiBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgPSBTaG91bGRDb21wdXRlUHJlZmVy
cmVkOjpDb21wdXRlQWN0dWFsKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlc3RpbWF0
ZWRVc2VkV2lkdGggPSBzdGQ6Om51bGxvcHQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwg
TGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KICAgICBib29sIHNob3VsZENvbGxhcHNlVG9FbXB0eSgpIGNvbnN0OwogCiAgICAgLy8g
VGV4dCB0byBkaXNwbGF5IGFzIGxvbmcgYXMgdGhlIGltYWdlIGlzbid0IGF2YWlsYWJsZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggNTE2ZGYyNmU4MzIz
Li5mYmRhZjc3OWYxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwCkBAIC04MTcsMTkgKzgxNyw2IEBAIExlZ2FjeUlubGluZUZsb3dCb3gqIFJlbmRlcklubGlu
ZTo6Y3JlYXRlQW5kQXBwZW5kSW5saW5lRmxvd0JveCgpCiAgICAgcmV0dXJuIGZsb3dCb3g7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVjdGlvbiovLCBMaW5lUG9zaXRpb25Nb2RlIC8qbGluZVBv
c2l0aW9uTW9kZSovKSBjb25zdAotewotICAgIGF1dG8mIGxpbmVTdHlsZSA9IGZpcnN0TGluZSA/
IGZpcnN0TGluZVN0eWxlKCkgOiBzdHlsZSgpOwotICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9t
RmxvYXRDZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7Ci19Ci0KLUxheW91dFVu
aXQgUmVuZGVySW5saW5lOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkg
Y29uc3QKLXsKLSAgICBhdXRvJiBzdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkg
OiB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09m
UHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmFzY2Vu
dCgpICsgKGxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUp
IC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkpIC8gMiB9OwotfQotCiBMYXlvdXRTaXplIFJlbmRlcklu
bGluZTo6b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb25lZElubGluZShjb25zdCBSZW5kZXJCb3gqIGNo
aWxkKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzbid0IHJpZ2h0IHdp
dGggbWl4ZWQgd3JpdGluZyBtb2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuaAppbmRleCA3NWU2ZGIyZDg3ZDEuLjI0MzRiZTg4YmYwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAtMTM5LDkgKzEzOSw2IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIGRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKSBmaW5hbCB7IG1fbGVnYWN5TGluZUJv
eGVzLmRpcnR5TGluZUZyb21DaGFuZ2VkQ2hpbGQoKnRoaXMpOyB9CiAKLSAgICBMYXlvdXRVbml0
IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRp
b25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKLSAgICBMYXlv
dXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
LCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5h
bDsKLSAgICAKICAgICB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IExheW91dFBvaW50JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGltYWdlQ2hhbmdlZChX
cmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCmluZGV4IDRiNGQ3ODMyM2NlZC4uN2Uw
ZjI2ZmY3ZDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlu
ZUJyZWFrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcApAQCAtNTksMjYgKzU5LDYgQEAgUmVuZGVyTGluZUJyZWFrOjp+UmVuZGVyTGluZUJyZWFr
KCkKIHsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWN0aW9uKi8sIExpbmVQb3NpdGlvbk1v
ZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0Ci17Ci0gICAgaWYgKGZpcnN0TGluZSkgewot
ICAgICAgICBhdXRvJiBmaXJzdExpbmVTdHlsZSA9IHRoaXMtPmZpcnN0TGluZVN0eWxlKCk7Ci0g
ICAgICAgIGlmICgmZmlyc3RMaW5lU3R5bGUgIT0gJnN0eWxlKCkpCi0gICAgICAgICAgICByZXR1
cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChmaXJzdExpbmVTdHlsZS5jb21wdXRlZExpbmVI
ZWlnaHQoKSk7Ci0gICAgfQotCi0gICAgaWYgKCFtX2NhY2hlZExpbmVIZWlnaHQpCi0gICAgICAg
IG1fY2FjaGVkTGluZUhlaWdodCA9IExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwoc3R5bGUoKS5j
b21wdXRlZExpbmVIZWlnaHQoKSk7Ci0gICAgcmV0dXJuICptX2NhY2hlZExpbmVIZWlnaHQ7Ci19
Ci0KLUxheW91dFVuaXQgUmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGlu
ZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICBhdXRvJiBzdHlsZSA9IGZpcnN0TGluZSA/IGZp
cnN0TGluZVN0eWxlKCkgOiB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0g
c3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChm
b250TWV0cmljcy5hc2NlbnQoKSArIChsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBs
aW5lUG9zaXRpb25Nb2RlKSAtIGZvbnRNZXRyaWNzLmhlaWdodCgpKSAvIDIpIH07Ci19Ci0KIGlu
dCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0TWluT2Zmc2V0KCkgY29uc3QKIHsKICAgICByZXR1cm4g
MDsKQEAgLTEzMSw3ICsxMTEsNiBAQCB2b2lkIFJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVRdWFk
cyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIGJvb2wqIHdhc0ZpeGVkKSBjbwogCiB2b2lkIFJl
bmRlckxpbmVCcmVhazo6dXBkYXRlRnJvbVN0eWxlKCkKIHsKLSAgICBtX2NhY2hlZExpbmVIZWln
aHQgPSB7IH07CiAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihp
c0lubGluZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVh
ay5oCmluZGV4IGRmMTE5OGE1ZmNkNS4uYmViMzU5M2RmMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCkBAIC02MSw5ICs2MSw2IEBAIHByaXZhdGU6CiAg
ICAgaW50IGNhcmV0TWF4T2Zmc2V0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5CZVNlbGVj
dGlvbkxlYWYoKSBjb25zdCBmaW5hbDsKIAotICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29s
IGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZp
bmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotCiAgICAgTGF5
b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0
VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0
VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQpAQCAtODAsOCArNzcs
NiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBmaW5hbDsKICAgICBi
b29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotCi0gICAg
bXV0YWJsZSBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG1fY2FjaGVkTGluZUhlaWdodCB7IH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKaW5kZXggY2Y1M2JiOGFiNmFhLi4wZTQyNTIzZjEyNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTg3LDEwICs4Nyw2
IEBAIGNvbnN0IGludCBvcHRpb25zU3BhY2luZ0lubGluZVN0YXJ0ID0gMjsKIC8vIERlZmF1bHQg
c2l6ZSB3aGVuIHRoZSBtdWx0aXBsZSBhdHRyaWJ1dGUgaXMgcHJlc2VudCBidXQgc2l6ZSBhdHRy
aWJ1dGUgaXMgYWJzZW50LgogY29uc3QgaW50IGRlZmF1bHRTaXplID0gNDsKIAotLy8gRklYTUU6
IFRoaXMgaGFyZGNvZGVkIGJhc2VsaW5lQWRqdXN0bWVudCBpcyB3aGF0IHdlIHVzZWQgdG8gZG8g
Zm9yIHRoZSBvbGQKLS8vIHdpZGdldCwgYnV0IEknbSBub3Qgc3VyZSB0aGlzIGlzIHJpZ2h0IGZv
ciB0aGUgbmV3IGNvbnRyb2wuCi1jb25zdCBpbnQgYmFzZWxpbmVBZGp1c3RtZW50ID0gNzsKLQog
UmVuZGVyTGlzdEJveDo6UmVuZGVyTGlzdEJveChIVE1MU2VsZWN0RWxlbWVudCYgZWxlbWVudCwg
UmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckJsb2NrRmxvdyhUeXBlOjpMaXN0Qm94
LCBlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKIHsKQEAgLTMwOCwxNCArMzA0LDYgQEAgUmVuZGVy
Qm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUxv
Z2ljYWxIZWlnaHQoTGF5b3UKICAgICByZXR1cm4gUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhl
aWdodChsb2dpY2FsSGVpZ2h0LCBsb2dpY2FsVG9wKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJM
aXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSBsaW5lRGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
Ci17Ci0gICAgYXV0byBiYXNlbGluZSA9IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJz
dExpbmUsIGxpbmVEaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOwotICAgIGlmICghc2hvdWxk
QXBwbHlMYXlvdXRDb250YWlubWVudCgpKQotICAgICAgICBiYXNlbGluZSAtPSBiYXNlbGluZUFk
anVzdG1lbnQ7Ci0gICAgcmV0dXJuIGJhc2VsaW5lOwotfQotCiBMYXlvdXRSZWN0IFJlbmRlckxp
c3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxP
ZmZzZXQsIGludCBpbmRleCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFs
T2Zmc2V0LngoKSArIGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA0YTU0NzNmZTIzMDQuLjEyMWZkMzZjOGEw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC05Nyw3ICs5
Nyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhz
KExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhz
KCkgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250
YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFs
dWVzIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0
VW5pdCBsb2dpY2FsVG9wKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0KCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAK
aW5kZXggMTE2ZjhhNjIzMTVlLi5iYThiNTA4YTFhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTQyMiwyMCArNDIyLDYgQEAgdm9pZCBS
ZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVJbmxpbmVNYXJnaW5zKCkKICAgICBtdXRhYmxlU3R5bGUo
KS5zZXRNYXJnaW5FbmQoU3R5bGU6Ok1hcmdpbkVkZ2U6OkZpeGVkIHsgbWFyZ2luRW5kIH0pOwog
fQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9z
aXRpb25Nb2RlKSBjb25zdAotewotICAgIGlmICghaXNJbWFnZSgpKQotICAgICAgICByZXR1cm4g
bV9saXN0SXRlbS0+bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgUG9zaXRpb25PZklu
dGVyaW9yTGluZUJveGVzKTsKLSAgICByZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0
TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKLX0KLQotTGF5b3V0VW5pdCBSZW5k
ZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29u
c3QKLXsKLSAgICBpZiAoIWlzSW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0tPmJh
c2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIFBvc2l0aW9uT2ZJbnRlcmlvckxp
bmVCb3hlcyk7Ci0gICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExp
bmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7Ci19Ci0KIGJvb2wgUmVuZGVyTGlzdE1h
cmtlcjo6aXNJbnNpZGUoKSBjb25zdAogewogICAgIHJldHVybiBzdHlsZSgpLmxpc3RTdHlsZVBv
c2l0aW9uKCkgPT0gTGlzdFN0eWxlUG9zaXRpb246Okluc2lkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCmluZGV4IDI1OGM2YTBiMmQzMi4uMjYxZjg5ZTQy
YTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKQEAg
LTgxLDggKzgxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50JikgZmluYWw7CiAgICAgdm9pZCBsYXlvdXQoKSBmaW5hbDsKICAgICB2b2lk
IGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqKSBmaW5hbDsKLSAg
ICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
LCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5l
UG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25N
b2RlKSBjb25zdCBmaW5hbDsKICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xp
cFRvVmlzaWJsZUNvbnRlbnQpIGZpbmFsOwogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggNTUwMmQxNzc4Mzg5Li41
NTE3YWE2OTI1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
CkBAIC0xMjcsMTQgKzEyNyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0xpbmVJZkVtcHR5
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgLy8gRmxleGJveCBkZWZp
bmVzIGJhc2VsaW5lcyBkaWZmZXJlbnRseSB0aGFuIHJlZ3VsYXIgYmxvY2tzLgotICAgIC8vIEZv
ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgbWVudWxpc3RzIG5lZWQgdG8gZG8gdGhlIHJlZ3Vs
YXIgYmxvY2sgYmVoYXZpb3IuCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUg
cG9zaXRpb24pIGNvbnN0IG92ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4gUmVuZGVyQmxv
Y2s6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIHBvc2l0aW9uKTsKLSAg
ICB9CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9
Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVE
aXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxv
Y2s6OmlubGluZUJsb2NrQmFzZWxpbmUoZGlyZWN0aW9uKTsgfQogCiAgICAgdm9pZCBnZXRJdGVt
QmFja2dyb3VuZENvbG9yKHVuc2lnbmVkIGxpc3RJbmRleCwgQ29sb3ImLCBib29sJiBpdGVtSGFz
Q3VzdG9tQmFja2dyb3VuZENvbG9yKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU2xpZGVyLmNwcAppbmRleCA1NDM5Mjk4NmYyNmEuLmY2N2U1ZDE0NzM2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTcyLDEyICs3Miw2IEBA
IFJlZjxIVE1MSW5wdXRFbGVtZW50PiBSZW5kZXJTbGlkZXI6OnByb3RlY3RlZEVsZW1lbnQoKSBj
b25zdAogICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlRm9yTm9uQW5v
bnltb3VzKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclNsaWRlcjo6YmFzZWxpbmVQb3NpdGlv
bihib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2Rl
KSBjb25zdAotewotICAgIC8vIEZJWE1FOiBQYXRjaCB0aGlzIGZ1bmN0aW9uIGZvciB3cml0aW5n
LW1vZGUuCi0gICAgcmV0dXJuIGhlaWdodCgpICsgbWFyZ2luVG9wKCk7Ci19Ci0KIHZvaWQgUmVu
ZGVyU2xpZGVyOjpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5M
b2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QKIHsKICAgICBp
ZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCmluZGV4IDU4M2Q4MjMxOGI2Ny4uMTMwYzYzZDU0
ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCkBAIC00OCw3ICs0
OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyU2xpZGVyIl9zOyB9CiAKLSAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1p
bkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGYxYzE0MWVkNGUx
ZC4uNmYwMTczY2IzZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5j
cHAKQEAgLTE1ODIsMTkgKzE1ODIsNiBAQCBSZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlOjpj
ZWxsQWZ0ZXIoY29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsKSBjb25zdAogICAgIHJldHVybiBj
ZWxsLT5zZWN0aW9uKCktPnByaW1hcnlDZWxsQXQoY2VsbC0+cm93SW5kZXgoKSwgZWZmQ29sKTsK
IH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUYWJsZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0
TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQ
b3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8gYmFzZWxpbmVQb3MgPSBmaXJzdExp
bmVCYXNlbGluZSgpKQotICAgICAgICByZXR1cm4gKGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGlu
ZSA/IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwot
ICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rp
b24sIGxpbmVQb3NpdGlvbk1vZGUpOwotfQotCi1zdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJl
bmRlclRhYmxlOjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdAot
ewotICAgIC8vIFRhYmxlcyBhcmUgc2tpcHBlZCB3aGVuIGNvbXB1dGluZyBhbiBpbmxpbmUtYmxv
Y2sncyBiYXNlbGluZS4KLSAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpOwot
fQotCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlclRhYmxlOjpmaXJzdExpbmVCYXNl
bGluZSgpIGNvbnN0CiB7CiAgICAgLy8gVGhlIGJhc2VsaW5lIG9mIGEgJ3RhYmxlJyBpcyB0aGUg
c2FtZSBhcyB0aGUgJ2lubGluZS10YWJsZScgYmFzZWxpbmUgcGVyIENTUyAzIEZsZXhib3ggKENT
UyAyLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5kZXggMTljOTc0NDFl
NWMwLi42ZjJhMGZlMzZiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5o
CkBAIC0yMzEsMTAgKzIzMSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxv
Y2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwg
SGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVE
aXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5hbDsKIAogICAgIFJlbmRlclRhYmxlQ29sKiBzbG93Q29s
RWxlbWVudCh1bnNpZ25lZCBjb2wsIGJvb2wqIHN0YXJ0RWRnZSwgYm9vbCogZW5kRWRnZSkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
CmluZGV4IDk0ZGE5ZTJmNDhkMC4uNGRjMWU0MDlhZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBSZW5k
ZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBSZW5kZXJUZXh0Q29udHJvbDo6Y29t
cHV0ZUxvZ2ljYWxIZWlnaHQoTAogCiAgICAgaWYgKFJlbmRlckJveCogaW5uZXJUZXh0Qm94ID0g
aW5uZXJUZXh0LT5yZW5kZXJCb3goKSkgewogICAgICAgICBMYXlvdXRVbml0IG5vbkNvbnRlbnRI
ZWlnaHQgPSBpbm5lclRleHRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBp
bm5lclRleHRCb3gtPm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgbG9naWNhbEhlaWdo
dCA9IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChpbm5lclRleHRCb3gtPmxpbmVIZWlnaHQo
dHJ1ZSwgSG9yaXpvbnRhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyksIG5vbkNv
bnRlbnRIZWlnaHQpOworICAgICAgICBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xMb2dp
Y2FsSGVpZ2h0KGlubmVyVGV4dEJveC0+bGluZUhlaWdodCgpLCBub25Db250ZW50SGVpZ2h0KTsK
IAogICAgICAgICAvLyBXZSBhcmUgYWJsZSB0byBoYXZlIGEgaG9yaXpvbnRhbCBzY3JvbGxiYXIg
aWYgdGhlIG92ZXJmbG93IHN0eWxlIGlzIHNjcm9sbCwgb3IgaWYgaXRzIGF1dG8gYW5kIHRoZXJl
J3Mgbm8gd29yZCB3cmFwLgogICAgICAgICBhdXRvIHNob3VsZEluY2x1ZGVTY3JvbGxiYXJIZWln
aHQgPSBbJl0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
aAppbmRleCAzZjlmMDQ3MDY1OTUuLjQ0Yzk5ZDcwNmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTkwLDEyICs5MCw3IEBAIHB1YmxpYzoK
ICAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKEVsZW1lbnQmLCBSZW5kZXJTdHls
ZSYmKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKCk7CiAK
LSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJl
Y3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikgY29uc3Qgb3Zl
cnJpZGUKLSAgICB7Ci0gICAgICAgIHJldHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlv
bihmaXJzdExpbmUsIGRpcmVjdGlvbiwgcG9zaXRpb24pOwotICAgIH0KICAgICBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gUmVuZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0KLSAgICBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0
aW9uKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNl
bGluZShkaXJlY3Rpb24pOyB9CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc0ZsZXhpYmxlQm94SW1w
bCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCmluZGV4IDg0
YjNkNmY0MWIyMC4uYzg3Njg4ZjAwOGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKQEAgLTk4LDExICs5OCw2
IEBAIExheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmNvbXB1dGVDb250cm9s
TG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxpCiAgICAgcmV0dXJuIGxpbmVIZWlnaHQgKiB0ZXh0
QXJlYUVsZW1lbnQoKS5yb3dzKCkgKyBub25Db250ZW50SGVpZ2h0OwogfQogCi1MYXlvdXRVbml0
IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBv
c2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0
aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKLX0KLQogdm9pZCBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6bGF5b3V0RXhjbHVkZWRDaGlsZHJlbihSZWxheW91
dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4pCiB7CiAgICAgUmVuZGVyVGV4dENvbnRyb2w6Omxh
eW91dEV4Y2x1ZGVkQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJlbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCmluZGV4IGRl
MTdhZGEzZjViYS4uMjNlZGM2YjZkZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApAQCAtNDQsNyArNDQsNiBAQCBw
cml2YXRlOgogICAgIGZsb2F0IGdldEF2ZXJhZ2VDaGFyV2lkdGgoKSBvdmVycmlkZTsKICAgICBM
YXlvdXRVbml0IHByZWZlcnJlZENvbnRlbnRMb2dpY2FsV2lkdGgoZmxvYXQgY2hhcldpZHRoKSBj
b25zdCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdo
dChMYXlvdXRVbml0IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVudEhlaWdodCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RM
aW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250
YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dEV4Y2x1ZGVkQ2hp
bGRyZW4oUmVsYXlvdXRDaGlsZHJlbikgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRl
eCBiZmU1N2ViMDQ3ZmYuLjg0MThiZTc0Zjg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTQ5Niw2
ICs0OTYsMTEgQEAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6cHJvdGVjdGVkSW5wdXRFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8
SFRNTElucHV0RWxlbWVudD4oUmVuZGVyVGV4dENvbnRyb2w6OnRleHRGb3JtQ29udHJvbEVsZW1l
bnQoKSk7CiB9CiAKK1JlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayogUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjppbm5lclRleHRSZW5kZXJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlu
bmVyVGV4dEVsZW1lbnQoKSA/IGlubmVyVGV4dEVsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxw
dHI7Cit9CisKIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJ
bm5lckJsb2NrKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiAgICAgOiBS
ZW5kZXJCbG9ja0Zsb3coVHlwZTo6VGV4dENvbnRyb2xJbm5lckJsb2NrLCBlbGVtZW50LCBXVEZN
b3ZlKHN0eWxlKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCAwZWQ4MmM3ZDM0MjguLmJmZDZlMWE5Yjdk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHRD
b250cm9sLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlbmRlclRleHRDb250cm9s
SW5uZXJCbG9jazsKIAogY2xhc3MgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIDogcHVibGlj
IFJlbmRlclRleHRDb250cm9sIHsKICAgICBXVEZfTUFLRV9UWk9ORV9PUl9JU09fQUxMT0NBVEVE
KFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk7CkBAIC0zNCw2ICszNSw4IEBAIHB1YmxpYzoK
ICAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoVHlwZSwgSFRNTElucHV0RWxlbWVudCYs
IFJlbmRlclN0eWxlJiYpOwogICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZSgpOwogCisgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKiBpbm5lclRleHRSZW5kZXJl
cigpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEVsZW1lbnQqIGNvbnRhaW5lckVsZW1l
bnQoKSBjb25zdDsKICAgICBIVE1MRWxlbWVudCogaW5uZXJCbG9ja0VsZW1lbnQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwCmluZGV4IGJhMDk3
YmJlMzYyMC4uMzkxMDVhMGExMGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbGluZS9MaW5lV2lkdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5l
L0xpbmVXaWR0aC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBMaW5lV2lkdGg6OmZpdHNPbkxp
bmVFeGNsdWRpbmdUcmFpbGluZ0NvbGxhcHNlZFdoaXRlc3BhY2UoKSBjb25zdAogdm9pZCBMaW5l
V2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdpZHRoKCkKIHsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9
IG1fYmxvY2subG9naWNhbEhlaWdodCgpOwotICAgIGF1dG8gbGluZUhlaWdodCA9IHN0ZDo6bWF4
KDBfbHUsIG1fYmxvY2subGluZUhlaWdodCh0cnVlLCBtX2Jsb2NrLmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVy
aW9yTGluZUJveGVzKSk7CisgICAgYXV0byBsaW5lSGVpZ2h0ID0gc3RkOjptYXgoMF9sdSwgbV9i
bG9jay5saW5lSGVpZ2h0KCkpOwogICAgIG1fbGVmdCA9IG1fYmxvY2subG9naWNhbExlZnRPZmZz
ZXRGb3JMaW5lKGhlaWdodCwgbGluZUhlaWdodCk7CiAgICAgbV9yaWdodCA9IG1fYmxvY2subG9n
aWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShoZWlnaHQsIGxpbmVIZWlnaHQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCmlu
ZGV4IDVkMTY3YWVkNzY4Ny4uMWFkZWJlNTg0MThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcApAQCAtOTUsMTQgKzk1
LDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6bWlycm9ySWZOZWVkZWQoTGF5b3V0
VW5pdCBob3Jpem9udGFsT2Zmc2V0LCBMYXlvdXQKICAgICByZXR1cm4gaG9yaXpvbnRhbE9mZnNl
dDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25N
b2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgaWYgKGxpbmVQb3NpdGlvbk1vZGUg
PT0gUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IHJldHVybiBmaXJzdExpbmVCYXNlbGluZSgpLnZhbHVlX29yKFJlbmRlckJsb2NrOjpiYXNlbGlu
ZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSk7Ci19Ci0K
IExheW91dFVuaXQgdG9Vc2VyVW5pdHMoY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBsZW5n
dGgsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgTGF5b3V0VW5pdCYgcmVmZXJlbmNl
VmFsdWUpCiB7CiAgICAgc3dpdGNoIChsZW5ndGgudHlwZSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4IGIwNWI2ZWQw
NjU0ZC4uMzczYmI0YzgyODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCkBAIC01OSw4ICs1OSw2IEBAIHB1YmxpYzoKICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MTcuCiAgICAg
dmlydHVhbCBSZW5kZXJNYXRoTUxPcGVyYXRvciogdW5lbWJlbGxpc2hlZE9wZXJhdG9yKCkgY29u
c3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9u
KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7Ci0KIHByb3RlY3RlZDoKICAg
ICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50
eHQKaW5kZXggYmU3M2Y4NzdiNjJjLi44NDE0YTI1OGVlYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRp
Y2FsLXJsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAogKHJlcGFpbnQgcmVjdHMKLSAg
KHJlY3QgMTAgMjEgMTAgMTEpCisgIChyZWN0IDEwIDE0IDEwIDExKQogKQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTgvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9u
L2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy0xOC9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5w
dXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CmluZGV4IDRl
MjFhNjBlOWQyMC4uMzQwMzZlZDA0ZTRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MtMTgvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29y
ZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MtMTgvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29y
ZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMSwxMDAgKzEsMTAwIEBACiBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDIxMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4MjEzCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUg
Nzg0eDE4OQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTkwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHgxOTAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikg
c2l6ZSA3ODR4MTY2CiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAK
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzU4eDE5CiAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzU4OiAiVGhpcyB0ZXN0cyB0aGF0IHRoZSBTdHJv
bmcgUGFzc3dvcmQgQXV0b0ZpbGwgYnV0dG9uIHJlbmRlcnMgaW4gYW4gYXV0by1maWxsZWQgaW5w
dXQuIEl0IGNhbiBvbmx5IGJlIHRlc3RlZCBpbiB0aGUgdGVzdCB0b29sLiIKLSAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgxNTMKLSAgICAgICAgUmVuZGVyVGV4dENv
bnRyb2wge0lOUFVUfSBhdCAoMCwxMykgc2l6ZSAxNTN4MjAgW2JnY29sb3I9I0ZBRkZCRF0gW2Jv
cmRlcjogKDFweCBzb2xpZCAjM0MzQzQzOTkpXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDE1MywxMSkgc2l6ZSA0eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDE1MywxMSkgd2lk
dGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE1NywxMykg
c2l6ZSAxNTN4MjAgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDFweCBzb2xpZCAjM0MzQzQz
OTkpXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMxMCwxMSkgc2l6ZSA0eDE5Ci0g
ICAgICAgICAgdGV4dCBydW4gYXQgKDMxMCwxMSkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRl
clRleHRDb250cm9sIHtJTlBVVH0gYXQgKDMxNCwxMykgc2l6ZSAzMTN4MjAgW2JnY29sb3I9I0ZB
RkZCRF0gW2JvcmRlcjogKDFweCBzb2xpZCAjM0MzQzQzOTkpXQotICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDYyNywxMSkgc2l6ZSA0eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDYy
NywxMSkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQg
KDYzMSwwKSBzaXplIDMzeDIwIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHggc29saWQg
IzNDM0M0Mzk5KV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgx
MzAKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwzKSBzaXplIDE1M3gy
MCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTUzLDApIHNpemUgNHgxOQorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxNTMsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9s
IHtJTlBVVH0gYXQgKDE1NywzKSBzaXplIDE1M3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVy
OiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MzEwLDApIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgzMTAsMCkgd2lkdGggNDog
IiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDMxNCwzKSBzaXplIDMx
M3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjI3LDApIHNpemUgNHgxOQorICAgICAgICAg
IHRleHQgcnVuIGF0ICg2MjcsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250
cm9sIHtJTlBVVH0gYXQgKDYzMSwzKSBzaXplIDMzeDIwIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3Jk
ZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDAs
NDUpIHNpemUgMTUzeDEwOCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMz
QzNDNDM5OSldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTUzLDg3KSBzaXplIDR4
MjAKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTUzLDg3KSB3aWR0aCA0OiAiICIKLSAgICAgICAg
UmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTU3LDMyKSBzaXplIDMzeDEwOCBbYmdjb2xv
cj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCi0gICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMTkwLDg3KSBzaXplIDR4MjAKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTkwLDg3KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVU
fSBhdCAoMTk0LDg5KSBzaXplIDE1M3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4
IHNvbGlkICMzQzNDNDM5OSldCi1sYXllciBhdCAoMTUsNjcpIHNpemUgMTQweDE0CisgICAgICAg
IFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDAsMjIpIHNpemUgMTUzeDEwOCBbYmdjb2xv
cj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMTUzLDYzKSBzaXplIDR4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTUzLDYzKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVU
fSBhdCAoMTU3LDIyKSBzaXplIDMzeDEwOCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4
IHNvbGlkICMzQzNDNDM5OSldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTkwLDYz
KSBzaXplIDR4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkwLDYzKSB3aWR0aCA0OiAiICIK
KyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTk0LDY2KSBzaXplIDE1M3gy
MCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCitsYXll
ciBhdCAoMTUsNTcpIHNpemUgMTQweDE0CiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg2
LDIpIHNpemUgMTQxeDE1CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQ1LDApIHNpemUgOTV4
MTQgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBz
aXplIDg5eDE0CiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBh
c3N3b3JkIgotbGF5ZXIgYXQgKDE1LDY4KSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgx
NSw2OCkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNSw2OCkgc2l6ZSA0NXgxMgorbGF5ZXIgYXQgKDE1
LDU4KSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgxNSw1OCkgc2l6ZSA0NXgxMiBjbGlw
IGF0ICgxNSw1OCkgc2l6ZSA0NXgxMgogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxKSBzaXpl
IDQ2eDEyCi1sYXllciBhdCAoMTcyLDY3KSBzaXplIDE0MHgxNAorbGF5ZXIgYXQgKDE3Miw1Nykg
c2l6ZSAxNDB4MTQKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDYsMikgc2l6ZSAxNDF4
MTUKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNDUsMCkgc2l6ZSA5NXgxNCBbY29sb3I9IzAw
MDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTQKICAg
ICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXll
ciBhdCAoMTcyLDY4KSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgxNzIsNjgpIHNpemUg
NDV4MTIgY2xpcCBhdCAoMTcyLDY4KSBzaXplIDQ1eDEyCitsYXllciBhdCAoMTcyLDU4KSBzaXpl
IDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgxNzIsNTgpIHNpemUgNDV4MTIgY2xpcCBhdCAoMTcy
LDU4KSBzaXplIDQ1eDEyCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEpIHNpemUgNDZ4MTIK
LWxheWVyIGF0ICgzMjksNjcpIHNpemUgMzAweDE0CitsYXllciBhdCAoMzI5LDU3KSBzaXplIDMw
MHgxNAogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNiwyKSBzaXplIDMwMXgxNQogICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMDUsMCkgc2l6ZSA5NXgxNCBbY29sb3I9IzAwMDAwMEND
XQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTQKICAgICAgICAg
dGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAo
MzI5LDY4KSBzaXplIDIwNngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMzI5LDY4KSBzaXplIDIwNXgx
MiBjbGlwIGF0ICgzMjksNjgpIHNpemUgMjA1eDEyCitsYXllciBhdCAoMzI5LDU4KSBzaXplIDIw
NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMzI5LDU4KSBzaXplIDIwNXgxMiBjbGlwIGF0ICgzMjks
NTgpIHNpemUgMjA1eDEyCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEpIHNpemUgMjA2eDEy
Ci1sYXllciBhdCAoNjQ2LDU1KSBzaXplIDIweDEyIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdo
dCAyNgorbGF5ZXIgYXQgKDY0Niw1OCkgc2l6ZSAyMHgxMiBzY3JvbGxXaWR0aCA5NCBzY3JvbGxI
ZWlnaHQgMjYKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDYsMykgc2l6ZSAyMXgxMwog
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEyKSBzaXplIDk1eDE0IFtjb2xvcj0jMDAwMDAw
Q0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxNAogICAgICAg
ICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0
ICg2NDYsNTUpIHNpemUgMjB4MTIKK2xheWVyIGF0ICg2NDYsNTgpIHNpemUgMjB4MTIKICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMgotbGF5ZXIgYXQgKDE1LDE0NCkgc2l6
ZSAxNDB4MTQKK2xheWVyIGF0ICgxNSwxMjEpIHNpemUgMTQweDE0CiAgIFJlbmRlckZsZXhpYmxl
Qm94IHtESVZ9IGF0ICg2LDQ2KSBzaXplIDE0MXgxNQogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICg0NSwwKSBzaXplIDk1eDE0IFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxNAogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0
aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxNSwxNDUpIHNpemUgNDZ4MTIgYmFj
a2dyb3VuZENsaXAgYXQgKDE1LDE0NSkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNSwxNDUpIHNpemUg
NDV4MTIKK2xheWVyIGF0ICgxNSwxMjIpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE1
LDEyMikgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNSwxMjIpIHNpemUgNDV4MTIKICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMSkgc2l6ZSA0NngxMgotbGF5ZXIgYXQgKDE3MiwxMzIpIHNpemUgMjB4
MTIgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CitsYXllciBhdCAoMTcyLDEyMikgc2l6
ZSAyMHgxMiBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQgMjYKICAgUmVuZGVyRmxleGlibGVC
b3gge0RJVn0gYXQgKDYsNDcpIHNpemUgMjF4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwxMikgc2l6ZSA5NXgxNCBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICg2LDApIHNpemUgODl4MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGgg
ODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTcyLDEzMikgc2l6ZSAyMHgxMgorbGF5
ZXIgYXQgKDE3MiwxMjIpIHNpemUgMjB4MTIKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSAyMHgxMgotbGF5ZXIgYXQgKDIwOSwxNDQpIHNpemUgMTQweDE0CitsYXllciBhdCAoMjA5
LDEyMSkgc2l6ZSAxNDB4MTQKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDYsMikgc2l6
ZSAxNDF4MTUKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNDUsMCkgc2l6ZSA5NXgxNCBbY29s
b3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4
MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQi
Ci1sYXllciBhdCAoMjA5LDE0NSkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMjA5LDE0
NSkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgyMDksMTQ1KSBzaXplIDQ1eDEyCitsYXllciBhdCAoMjA5
LDEyMikgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMjA5LDEyMikgc2l6ZSA0NXgxMiBj
bGlwIGF0ICgyMDksMTIyKSBzaXplIDQ1eDEyCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEp
IHNpemUgNDZ4MTIKLWxheWVyIGF0ICgxNSw2OCkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBh
dCAoMTUsNjgpIHNpemUgNDV4MTIgY2xpcCBhdCAoMTUsNjgpIHNpemUgNDV4MTIgc2Nyb2xsV2lk
dGggMjg0CitsYXllciBhdCAoMTUsNTgpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE1
LDU4KSBzaXplIDQ1eDEyIGNsaXAgYXQgKDE1LDU4KSBzaXplIDQ1eDEyIHNjcm9sbFdpZHRoIDI4
NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDQ2eDEyIFtjb2xvcj0jMDAwMDAw
OTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEyCiAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3Zl
ciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDE3Miw2OCkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5k
Q2xpcCBhdCAoMTcyLDY4KSBzaXplIDQ1eDEyIGNsaXAgYXQgKDE3Miw2OCkgc2l6ZSA0NXgxMiBz
Y3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxNzIsNTgpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENs
aXAgYXQgKDE3Miw1OCkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNzIsNTgpIHNpemUgNDV4MTIgc2Ny
b2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNDZ4MTIgW2Nv
bG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4
MTIKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94
IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoMzI5LDY4KSBzaXplIDIwNngx
MiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMzI5LDY4KSBzaXplIDIwNXgxMiBjbGlwIGF0ICgzMjksNjgp
IHNpemUgMjA1eDEyIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDMyOSw1OCkgc2l6ZSAyMDZ4
MTIgYmFja2dyb3VuZENsaXAgYXQgKDMyOSw1OCkgc2l6ZSAyMDV4MTIgY2xpcCBhdCAoMzI5LDU4
KSBzaXplIDIwNXgxMiBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMDZ4MTIgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAyODR4MTIKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDog
IkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAo
NjQ2LDU1KSBzaXplIDIweDEyIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDY0Niw1OCkgc2l6
ZSAyMHgxMiBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSAyMHgxMiBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDI4NHgxMgogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWlj
ayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxNSwxNDUp
IHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE1LDE0NSkgc2l6ZSA0NXgxMiBjbGlwIGF0
ICgxNSwxNDUpIHNpemUgNDV4MTIgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTUsMTIyKSBz
aXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgxNSwxMjIpIHNpemUgNDV4MTIgY2xpcCBhdCAo
MTUsMTIyKSBzaXplIDQ1eDEyIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDQ2eDEyIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMjg0eDEyCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAy
ODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIg
YXQgKDE3MiwxMzIpIHNpemUgMjB4MTIgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTcyLDEy
Mikgc2l6ZSAyMHgxMiBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMHgxMiBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDI4NHgxMgogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAi
QSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmls
bC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNlcXVvaWEtd2syL2Zhc3QvZm9ybXMvYXV0
by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBl
Y3RlZC50eHQKaW5kZXggOThjNzEzZTY5ZTk2Li5jZDhhZjQ1NjIxNDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1i
dXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L2Zvcm1zL2F1
dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhw
ZWN0ZWQudHh0CkBAIC0xLDEwMCArMSwxMDAgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4MjA5Ci0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyMDkKLSAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MTg1CitsYXllciBhdCAoMCww
KSBzaXplIDgwMHgxODQKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE4
NAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgxNjAKICAgICAgIFJl
bmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAogICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA3NTd4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA3NTc6ICJUaGlzIHRlc3RzIHRoYXQgdGhlIFN0cm9uZyBQYXNzd29yZCBBdXRvRmlsbCBi
dXR0b24gcmVuZGVycyBpbiBhbiBhdXRvLWZpbGxlZCBpbnB1dC4gSXQgY2FuIG9ubHkgYmUgdGVz
dGVkIGluIHRoZSB0ZXN0IHRvb2wuIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQp
IHNpemUgNzg0eDE1MQotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDEz
KSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgw
ODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1OCwxMykgc2l6ZSA0eDE4Ci0g
ICAgICAgICAgdGV4dCBydW4gYXQgKDE1OCwxMykgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRl
clRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE2MiwxMykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZB
RkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgzMjAsMTMpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjAs
MTMpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgz
MjQsMTMpIHNpemUgMzA2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQg
IzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjMwLDEzKSBzaXplIDR4
MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMwLDEzKSB3aWR0aCA0OiAiICIKLSAgICAgICAg
UmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoNjM0LDApIHNpemUgMjZ4MTkgW2JnY29sb3I9
I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgxMjYKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wg
e0lOUFVUfSBhdCAoMCwxKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAo
MnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1OCww
KSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4LDApIHdpZHRoIDQ6ICIgIgor
ICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMSkgc2l6ZSAxNTh4MTkg
W2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMjAsMCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDMyMCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lO
UFVUfSBhdCAoMzI0LDEpIHNpemUgMzA2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgy
cHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjMwLDAp
IHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg2MzAsMCkgd2lkdGggNDogIiAiCisg
ICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDYzNCwxKSBzaXplIDI2eDE5IFti
Z2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCiAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5kZXJUZXh0Q29u
dHJvbCB7SU5QVVR9IGF0ICgwLDQ1KSBzaXplIDE1OHgxMDYgW2JnY29sb3I9I0ZBRkZCRF0gW2Jv
cmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxNTgsODgpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTgsODgpIHdpZHRo
IDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMzIpIHNp
emUgMjZ4MTA2IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCld
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTg4LDg4KSBzaXplIDR4MTgKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTg4LDg4KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4
dENvbnRyb2wge0lOUFVUfSBhdCAoMTkyLDg4KSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJE
XSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotbGF5ZXIgYXQgKDExLDY2KSBzaXplIDE1
MngxMworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDIwKSBzaXplIDE1
OHgxMDYgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTgsNjIpIHNpemUgNHgxOAorICAgICAgICAg
IHRleHQgcnVuIGF0ICgxNTgsNjIpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29u
dHJvbCB7SU5QVVR9IGF0ICgxNjIsMjApIHNpemUgMjZ4MTA2IFtiZ2NvbG9yPSNGQUZGQkRdIFti
b3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMTg4LDYyKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTg4LDYyKSB3aWR0
aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTkyLDYzKSBz
aXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODAp
XQorbGF5ZXIgYXQgKDExLDU0KSBzaXplIDE1MngxMwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElW
fSBhdCAoMywzKSBzaXplIDE1MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBz
aXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0
cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxMSw2Nikgc2l6ZSA1OHgxMworbGF5ZXIgYXQgKDEx
LDU0KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMK
LWxheWVyIGF0ICgxNzMsNjYpIHNpemUgMTUyeDEzCitsYXllciBhdCAoMTczLDU0KSBzaXplIDE1
MngxMwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwogICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0Nd
CiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0
ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgx
NzMsNjYpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgxNzMsNTQpIHNpemUgNTh4MTMKICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMwotbGF5ZXIgYXQgKDMzNSw2Nikgc2l6ZSAz
MDB4MTMKK2xheWVyIGF0ICgzMzUsNTQpIHNpemUgMzAweDEzCiAgIFJlbmRlckZsZXhpYmxlQm94
IHtESVZ9IGF0ICgzLDMpIHNpemUgMzAweDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIw
NSwwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4
OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgzMzUsNjYpIHNpemUgMjA2eDEzCitsYXll
ciBhdCAoMzM1LDU0KSBzaXplIDIwNngxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBz
aXplIDIwNngxMwotbGF5ZXIgYXQgKDY0NSw1Mykgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBz
Y3JvbGxIZWlnaHQgMjYKK2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGgg
OTQgc2Nyb2xsSGVpZ2h0IDI2CiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNp
emUgMjB4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMykgc2l6ZSA5NXgxMyBbY29s
b3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4
MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQi
Ci1sYXllciBhdCAoNjQ1LDUzKSBzaXplIDIweDEzCitsYXllciBhdCAoNjQ1LDU0KSBzaXplIDIw
eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMKLWxheWVyIGF0ICgx
MSwxNDIpIHNpemUgMTUyeDEzCitsYXllciBhdCAoMTEsMTE3KSBzaXplIDE1MngxMwogICBSZW5k
ZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMyw0Nikgc2l6ZSAxNTJ4MTQKICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQg
KDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTEsMTQyKSBzaXpl
IDU4eDEzCitsYXllciBhdCAoMTEsMTE3KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgNTh4MTMKLWxheWVyIGF0ICgxNzMsMTI5KSBzaXplIDIweDEzIHNjcm9s
bFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgorbGF5ZXIgYXQgKDE3MywxMTcpIHNpemUgMjB4MTMg
c2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9
IGF0ICgzLDQ2KSBzaXplIDIweDE0CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTMpIHNp
emUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
NiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ry
b25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDE3MywxMjkpIHNpemUgMjB4MTMKK2xheWVyIGF0ICgx
NzMsMTE3KSBzaXplIDIweDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4
MTMKLWxheWVyIGF0ICgyMDMsMTQxKSBzaXplIDE1MngxMworbGF5ZXIgYXQgKDIwMywxMTYpIHNp
emUgMTUyeDEzCiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNpemUgMTUyeDEz
CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3LDApIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAw
MDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAg
ICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIg
YXQgKDIwMywxNDEpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgyMDMsMTE2KSBzaXplIDU4eDEzCiAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxheWVyIGF0ICgxMSw2Nikg
c2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxMSw1NCkgc2l6ZSA1OHgxMyBz
Y3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMyBb
Y29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4
NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBm
b3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxNzMsNjYpIHNpemUgNTh4
MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTczLDU0KSBzaXplIDU4eDEzIHNjcm9sbFdp
ZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzIFtjb2xvcj0j
MDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1w
ZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDMzNSw2Nikgc2l6ZSAyMDZ4MTMgc2Ny
b2xsV2lkdGggMjg0CitsYXllciBhdCAoMzM1LDU0KSBzaXplIDIwNngxMyBzY3JvbGxXaWR0aCAy
ODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDZ4MTMgW2NvbG9yPSMwMDAw
MDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBv
dmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoNjQ1LDUzKSBzaXplIDIweDEzIHNjcm9sbFdp
ZHRoIDI4NAorbGF5ZXIgYXQgKDY0NSw1NCkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMyBbY29sb3I9IzAwMDAwMDk5XQog
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhl
IGxhenkgZG9nLiIKLWxheWVyIGF0ICgxMSwxNDIpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0
CitsYXllciBhdCAoMTEsMTE3KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBk
b2cuIgotbGF5ZXIgYXQgKDE3MywxMjkpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXll
ciBhdCAoMTczLDExNykgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L3Jl
cGFpbnQvY2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXNlcXVvaWEtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVy
Zmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKaW5kZXggYmU3M2Y4NzdiNjJjLi44NDE0YTI1
OGVlYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9m
YXN0L3JlcGFpbnQvY2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L3JlcGFpbnQvY2hl
Y2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAog
CiAocmVwYWludCByZWN0cwotICAocmVjdCAxMCAyMSAxMCAxMSkKKyAgKHJlY3QgMTAgMTQgMTAg
MTEpCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9m
b3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0
dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jt
cy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9u
LWV4cGVjdGVkLnR4dAppbmRleCA4NmE0NzY0ZjllMDAuLmNkOGFmNDU2MjE0NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0
b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0
dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dApA
QCAtMSwxMDAgKzEsMTAwIEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDIxMwot
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjEzCi0gICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDE4OQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
MTg0CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxODQKKyAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MTYwCiAgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzU3eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzU3OiAi
VGhpcyB0ZXN0cyB0aGF0IHRoZSBTdHJvbmcgUGFzc3dvcmQgQXV0b0ZpbGwgYnV0dG9uIHJlbmRl
cnMgaW4gYW4gYXV0by1maWxsZWQgaW5wdXQuIEl0IGNhbiBvbmx5IGJlIHRlc3RlZCBpbiB0aGUg
dGVzdCB0b29sLiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgx
NTUKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwxMykgc2l6ZSAxNjZ4
MjEgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNjYsMTQpIHNpemUgNHgxOAotICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxNjYsMTQpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJv
bCB7SU5QVVR9IGF0ICgxNzAsMTMpIHNpemUgMTY2eDIxIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3Jk
ZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MzM2LDE0KSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzM2LDE0KSB3aWR0aCA0
OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMzQwLDEzKSBzaXpl
IDMxNHgyMSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQot
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDY1NCwxNCkgc2l6ZSA0eDE4Ci0gICAgICAg
ICAgdGV4dCBydW4gYXQgKDY1NCwxNCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRD
b250cm9sIHtJTlBVVH0gYXQgKDY1OCwwKSBzaXplIDM0eDIxIFtiZ2NvbG9yPSNGQUZGQkRdIFti
b3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwzNCkgc2l6ZSA3ODR4MTI2CisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQg
KDAsMSkgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAj
ODA4MDgwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTgsMCkgc2l6ZSA0eDE4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE1OCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVu
ZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTYyLDEpIHNpemUgMTU4eDE5IFtiZ2NvbG9yPSNG
QUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMzIwLDApIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjAs
MCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDMy
NCwxKSBzaXplIDMwNngxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4
MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYzMCwwKSBzaXplIDR4MTgK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMwLDApIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5k
ZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICg2MzQsMSkgc2l6ZSAyNngxOSBbYmdjb2xvcj0jRkFG
RkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQogICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVU
fSBhdCAoMCw0Nykgc2l6ZSAxNjZ4MTA4IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHgg
aW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTY2LDkxKSBz
aXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTY2LDkxKSB3aWR0aCA0OiAiICIKLSAg
ICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTcwLDM0KSBzaXplIDM0eDEwOCBb
Ymdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIwNCw5MSkgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBy
dW4gYXQgKDIwNCw5MSkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJ
TlBVVH0gYXQgKDIwOCw5MCkgc2l6ZSAxNjZ4MjEgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjog
KDJweCBpbnNldCAjODA4MDgwKV0KLWxheWVyIGF0ICgxNSw2Nykgc2l6ZSAxNTJ4MTMKLSAgUmVu
ZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDcsNCkgc2l6ZSAxNTJ4MTMKKyAgICAgICAgUmVuZGVy
VGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwyMCkgc2l6ZSAxNTh4MTA2IFtiZ2NvbG9yPSNGQUZG
QkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTU4LDYyKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4LDYy
KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTYy
LDIwKSBzaXplIDI2eDEwNiBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4
MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE4OCw2Mikgc2l6ZSA0eDE4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE4OCw2Mikgd2lkdGggNDogIiAiCisgICAgICAgIFJl
bmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE5Miw2Mykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9
I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KK2xheWVyIGF0ICgxMSw1NCkg
c2l6ZSAxNTJ4MTMKKyAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAxNTJ4
MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAw
MDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAg
ICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXll
ciBhdCAoMTUsNjcpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgxMSw1NCkgc2l6ZSA1OHgxMwogICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzCi1sYXllciBhdCAoMTg1LDY3KSBz
aXplIDE1MngxMwotICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNyw0KSBzaXplIDE1Mngx
MworbGF5ZXIgYXQgKDE3Myw1NCkgc2l6ZSAxNTJ4MTMKKyAgUmVuZGVyRmxleGlibGVCb3gge0RJ
Vn0gYXQgKDMsMykgc2l6ZSAxNTJ4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkg
c2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJT
dHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTg1LDY3KSBzaXplIDU4eDEzCitsYXllciBhdCAo
MTczLDU0KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4
MTMKLWxheWVyIGF0ICgzNTUsNjcpIHNpemUgMzAweDEzCi0gIFJlbmRlckZsZXhpYmxlQm94IHtE
SVZ9IGF0ICg3LDQpIHNpemUgMzAweDEzCitsYXllciBhdCAoMzM1LDU0KSBzaXplIDMwMHgxMwor
ICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDMwMHgxMwogICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgyMDUsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBy
dW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMzU1LDY3
KSBzaXplIDIwNngxMworbGF5ZXIgYXQgKDMzNSw1NCkgc2l6ZSAyMDZ4MTMKICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDZ4MTMKLWxheWVyIGF0ICg2NzMsNTQpIHNpemUgMjB4
MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2Ci0gIFJlbmRlckZsZXhpYmxlQm94IHtE
SVZ9IGF0ICg3LDQpIHNpemUgMjB4MTMKK2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Ny
b2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CisgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0
ICgzLDMpIHNpemUgMjB4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMykgc2l6ZSA5
NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDAp
IHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcg
UGFzc3dvcmQiCi1sYXllciBhdCAoNjczLDU0KSBzaXplIDIweDEzCitsYXllciBhdCAoNjQ1LDU0
KSBzaXplIDIweDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMKLWxh
eWVyIGF0ICgxNSwxNDUpIHNpemUgMTUyeDEzCi0gIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0
ICg3LDQ3KSBzaXplIDE1MngxNAorbGF5ZXIgYXQgKDExLDExNykgc2l6ZSAxNTJ4MTMKKyAgUmVu
ZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsNDYpIHNpemUgMTUyeDE0CiAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDU3LDApIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0
ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDE1LDE0NSkgc2l6
ZSA1OHgxMworbGF5ZXIgYXQgKDExLDExNykgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDU4eDEzCi1sYXllciBhdCAoMTg1LDEzMikgc2l6ZSAyMHgxMyBzY3Jv
bGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQgMjYKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQg
KDcsNDcpIHNpemUgMjB4MTQKK2xheWVyIGF0ICgxNzMsMTE3KSBzaXplIDIweDEzIHNjcm9sbFdp
ZHRoIDk0IHNjcm9sbEhlaWdodCAyNgorICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMyw0
Nikgc2l6ZSAyMHgxNAogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEzKSBzaXplIDk1eDEz
IFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6
ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNz
d29yZCIKLWxheWVyIGF0ICgxODUsMTMyKSBzaXplIDIweDEzCitsYXllciBhdCAoMTczLDExNykg
c2l6ZSAyMHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEzCi1sYXll
ciBhdCAoMjIzLDE0NCkgc2l6ZSAxNTJ4MTMKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQg
KDcsNCkgc2l6ZSAxNTJ4MTMKK2xheWVyIGF0ICgyMDMsMTE2KSBzaXplIDE1MngxMworICBSZW5k
ZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwogICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAo
NiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgyMjMsMTQ0KSBzaXpl
IDU4eDEzCitsYXllciBhdCAoMjAzLDExNikgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDU4eDEzCi1sYXllciBhdCAoMTUsNjcpIHNpemUgNTh4MTMgc2Nyb2xs
V2lkdGggMjg0CitsYXllciBhdCAoMTEsNTQpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CiAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMgW2NvbG9yPSMwMDAwMDA5OV0K
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRo
ZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoMTg1LDY3KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4
NAorbGF5ZXIgYXQgKDE3Myw1NCkgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkg
ZG9nLiIKLWxheWVyIGF0ICgzNTUsNjcpIHNpemUgMjA2eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5
ZXIgYXQgKDMzNSw1NCkgc2l6ZSAyMDZ4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgMjA2eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu
IgotbGF5ZXIgYXQgKDY3Myw1NCkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0
ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgMjB4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXll
ciBhdCAoMTUsMTQ1KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDExLDEx
Nykgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAi
QSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgx
ODUsMTMyKSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDE3MywxMTcpIHNp
emUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgMjB4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVp
Y2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12
ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zh
c3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKaW5k
ZXggMmM2NzZiZjkzZWFmLi4xNDAzOGQ2MDY1YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJs
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvcmVw
YWludC9jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKQEAgLTEsNSAr
MSw1IEBACiAKIChyZXBhaW50IHJlY3RzCi0gIChyZWN0IDEwIDIxIDUgNSkKKyAgKHJlY3QgMTAg
MTQgNSA1KQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9m
b3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0
dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Zvcm1zL2F1
dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhw
ZWN0ZWQudHh0CmluZGV4IDk4YzcxM2U2OWU5Ni4uY2Q4YWY0NTYyMTQ0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0
LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0
cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMSwxMDAgKzEs
MTAwIEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDIwOQotICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjA5Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsMTYpIHNpemUgNzg0eDE4NQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTg0CisgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxODQKKyAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCwxNikgc2l6ZSA3ODR4MTYwCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkg
c2l6ZSA3ODR4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzU3
eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzU3OiAiVGhpcyB0ZXN0cyB0
aGF0IHRoZSBTdHJvbmcgUGFzc3dvcmQgQXV0b0ZpbGwgYnV0dG9uIHJlbmRlcnMgaW4gYW4gYXV0
by1maWxsZWQgaW5wdXQuIEl0IGNhbiBvbmx5IGJlIHRlc3RlZCBpbiB0aGUgdGVzdCB0b29sLiIK
LSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgxNTEKLSAgICAgICAg
UmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwxMykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9
I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxNTgsMTMpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgx
NTgsMTMpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0
ICgxNjIsMTMpIHNpemUgMTU4eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5z
ZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzIwLDEzKSBzaXpl
IDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzIwLDEzKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMzI0LDEzKSBzaXplIDMwNngxOSBbYmdj
b2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDYzMCwxMykgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4g
YXQgKDYzMCwxMykgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBV
VH0gYXQgKDYzNCwwKSBzaXplIDI2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHgg
aW5zZXQgIzgwODA4MCldCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3
ODR4MTI2CisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDAsMSkgc2l6ZSAx
NTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTgsMCkgc2l6ZSA0eDE4CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDE1OCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRy
b2wge0lOUFVUfSBhdCAoMTYyLDEpIHNpemUgMTU4eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3Jk
ZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MzIwLDApIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjAsMCkgd2lkdGggNDog
IiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDMyNCwxKSBzaXplIDMw
NngxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYzMCwwKSBzaXplIDR4MTgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNjMwLDApIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJv
bCB7SU5QVVR9IGF0ICg2MzQsMSkgc2l6ZSAyNngxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVy
OiAoMnB4IGluc2V0ICM4MDgwODApXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCw0NSkg
c2l6ZSAxNTh4MTA2IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4
MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTU4LDg4KSBzaXplIDR4MTgKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4LDg4KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTYyLDMyKSBzaXplIDI2eDEwNiBbYmdjb2xvcj0jRkFG
RkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDE4OCw4OCkgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDE4OCw4
OCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE5
Miw4OCkgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAj
ODA4MDgwKV0KLWxheWVyIGF0ICgxMSw2Nikgc2l6ZSAxNTJ4MTMKKyAgICAgICAgUmVuZGVyVGV4
dENvbnRyb2wge0lOUFVUfSBhdCAoMCwyMCkgc2l6ZSAxNTh4MTA2IFtiZ2NvbG9yPSNGQUZGQkRd
IFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMTU4LDYyKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4LDYyKSB3
aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTYyLDIw
KSBzaXplIDI2eDEwNiBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgw
ODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE4OCw2Mikgc2l6ZSA0eDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDE4OCw2Mikgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRl
clRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE5Miw2Mykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZB
RkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KK2xheWVyIGF0ICgxMSw1NCkgc2l6
ZSAxNTJ4MTMKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAxNTJ4MTMK
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAw
MENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAg
ICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBh
dCAoMTEsNjYpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgxMSw1NCkgc2l6ZSA1OHgxMwogICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzCi1sYXllciBhdCAoMTczLDY2KSBzaXpl
IDE1MngxMworbGF5ZXIgYXQgKDE3Myw1NCkgc2l6ZSAxNTJ4MTMKICAgUmVuZGVyRmxleGlibGVC
b3gge0RJVn0gYXQgKDMsMykgc2l6ZSAxNTJ4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
NTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGgg
ODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTczLDY2KSBzaXplIDU4eDEzCitsYXll
ciBhdCAoMTczLDU0KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgNTh4MTMKLWxheWVyIGF0ICgzMzUsNjYpIHNpemUgMzAweDEzCitsYXllciBhdCAoMzM1LDU0
KSBzaXplIDMwMHgxMwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDMw
MHgxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMDUsMCkgc2l6ZSA5NXgxMyBbY29sb3I9
IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMK
ICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1s
YXllciBhdCAoMzM1LDY2KSBzaXplIDIwNngxMworbGF5ZXIgYXQgKDMzNSw1NCkgc2l6ZSAyMDZ4
MTMKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDZ4MTMKLWxheWVyIGF0ICg2
NDUsNTMpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CitsYXllciBh
dCAoNjQ1LDU0KSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgogICBS
ZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDIweDEzCiAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMTMpIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0
ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDY0NSw1Mykgc2l6
ZSAyMHgxMworbGF5ZXIgYXQgKDY0NSw1NCkgc2l6ZSAyMHgxMwogICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDIweDEzCi1sYXllciBhdCAoMTEsMTQyKSBzaXplIDE1MngxMworbGF5
ZXIgYXQgKDExLDExNykgc2l6ZSAxNTJ4MTMKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQg
KDMsNDYpIHNpemUgMTUyeDE0CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3LDApIHNpemUg
OTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiww
KSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25n
IFBhc3N3b3JkIgotbGF5ZXIgYXQgKDExLDE0Mikgc2l6ZSA1OHgxMworbGF5ZXIgYXQgKDExLDEx
Nykgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzCi1s
YXllciBhdCAoMTczLDEyOSkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQg
MjYKK2xheWVyIGF0ICgxNzMsMTE3KSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhl
aWdodCAyNgogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMyw0Nikgc2l6ZSAyMHgxNAog
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEzKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAw
Q0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAg
ICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0
ICgxNzMsMTI5KSBzaXplIDIweDEzCitsYXllciBhdCAoMTczLDExNykgc2l6ZSAyMHgxMwogICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEzCi1sYXllciBhdCAoMjAzLDE0MSkg
c2l6ZSAxNTJ4MTMKK2xheWVyIGF0ICgyMDMsMTE2KSBzaXplIDE1MngxMwogICBSZW5kZXJGbGV4
aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3
aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgyMDMsMTQxKSBzaXplIDU4eDEz
CitsYXllciBhdCAoMjAzLDExNikgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDU4eDEzCi1sYXllciBhdCAoMTEsNjYpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGgg
Mjg0CitsYXllciBhdCAoMTEsNTQpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5
IGRvZy4iCi1sYXllciBhdCAoMTczLDY2KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5
ZXIgYXQgKDE3Myw1NCkgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIK
LWxheWVyIGF0ICgzMzUsNjYpIHNpemUgMjA2eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQg
KDMzNSw1NCkgc2l6ZSAyMDZ4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgMjA2eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5
ZXIgYXQgKDY0NSw1Mykgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICg2NDUs
NTQpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgMjB4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDog
IkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAo
MTEsMTQyKSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDExLDExNykgc2l6
ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWlj
ayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxNzMsMTI5
KSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDE3MywxMTcpIHNpemUgMjB4
MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4
MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJv
d24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475947</attachid>
            <date>2025-07-12 19:37:04 -0700</date>
            <delta_ts>2025-07-13 10:09:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295842-20250712193704.patch</filename>
            <type>text/plain</type>
            <size>5629</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA3ZWMxMTk5NDY1ZjViN2ZkM2MzMzkxNDBmNDUzZDZjODc0YjZlODhlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTIgSnVsIDIwMjUgMTk6MzY6MDYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBpbmxpbmVC
bG9ja0Jhc2VsaW5lIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGZsZXgsIGdyaWQsIHRhYmxlCiBh
bmQgdGV4dCBjb250cm9sJ3MgaW5uZXIgY29udGFpbmVyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1ODQyCgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCiog
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2Vv
bWV0cnlVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpsYXN0SW5mbG93
Qm94QmFzZWxpbmUpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmlubGluZUJsb2NrQmFz
ZWxpbmUpOgotLS0KIC4uLi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAg
ICB8IDM0ICsrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z
KCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0
cnlVcGRhdGVyLmNwcAppbmRleCBlZDAzODE0YWJmODIuLjJlNmIzNDdkYTYwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94
R2VvbWV0cnlVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCkBAIC0zMDEsNyArMzAx
LDYgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGlu
ZShjb25zdCBSZW5kZXJCb3gmKTsKIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
bGFzdEluZmxvd0JveEJhc2VsaW5lKGNvbnN0IFJlbmRlckJsb2NrJiBibG9ja0NvbnRhaW5lcikK
IHsKLSAgICBhdXRvIHdyaXRpbmdNb2RlID0gYmxvY2tDb250YWluZXIuY29udGFpbmluZ0Jsb2Nr
KCktPndyaXRpbmdNb2RlKCk7CiAgICAgYXV0byBoYXZlSW5GbG93Q2hpbGQgPSBmYWxzZTsKICAg
ICBmb3IgKGF1dG8qIGJveCA9IGJsb2NrQ29udGFpbmVyLmxhc3RDaGlsZEJveCgpOyBib3g7IGJv
eCA9IGJveC0+cHJldmlvdXNTaWJsaW5nQm94KCkpIHsKICAgICAgICAgaWYgKGJveC0+aXNGbG9h
dGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQpAQCAtMzE1LDYgKzMxNCwyMSBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBsYXN0SW5mbG93Qm94QmFzZWxpbmUoY29uc3QgUmVu
ZGVyQmxvY2smIGJsb2NrQwogICAgICAgICBpZiAoYm94LT5zaG91bGRBcHBseUxheW91dENvbnRh
aW5tZW50KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBpZiAoaXM8UmVuZGVy
VGFibGU+KCpib3gpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGlzPFJl
bmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KCpib3gpIHx8IGlzPFJlbmRlck1lbnVMaXN0
PigqYm94KSkgeworICAgICAgICAgICAgaWYgKGF1dG8gYmFzZWxpbmUgPSBsYXN0SW5mbG93Qm94
QmFzZWxpbmUoZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpib3gpKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gYm94LT5sb2dpY2FsVG9wKCkgKyAqYmFzZWxpbmU7CisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpczxSZW5kZXJGbGV4aWJsZUJveD4oKmJveCkg
fHwgaXM8UmVuZGVyR3JpZD4oKmJveCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGJhc2VsaW5l
ID0gYm94LT5maXJzdExpbmVCYXNlbGluZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBib3gt
PmxvZ2ljYWxUb3AoKSArICpiYXNlbGluZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisKICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gaW5saW5lQmxvY2tCYXNlbGluZSgqYm94
KSkKICAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgKGJveC0+bG9naWNhbFRvcCgpICsg
cmVzdWx0LnZhbHVlKCkpLnRvSW50KCkgfTsgLy8gVHJhbnNsYXRlIHRvIG91ciBjb29yZGluYXRl
IHNwYWNlLgogICAgIH0KQEAgLTMyMyw3ICszMzcsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBsYXN0SW5mbG93Qm94QmFzZWxpbmUoY29uc3QgUmVuZGVyQmxvY2smIGJsb2Nr
QwogICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IGJsb2NrQ29udGFpbmVyLmZpcnN0TGluZVN0
eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKICAgICAgICAgcmV0dXJuIExheW91dFVuaXQg
eyBMYXlvdXRVbml0KGZvbnRNZXRyaWNzLmludEFzY2VudCgpCiAgICAgICAgICAgICArIChibG9j
a0NvbnRhaW5lci5saW5lSGVpZ2h0KCkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyCi0g
ICAgICAgICAgICArICh3cml0aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IGJsb2NrQ29udGFpbmVy
LmJvcmRlclRvcCgpICsgYmxvY2tDb250YWluZXIucGFkZGluZ1RvcCgpIDogYmxvY2tDb250YWlu
ZXIuYm9yZGVyUmlnaHQoKSArIGJsb2NrQ29udGFpbmVyLnBhZGRpbmdSaWdodCgpKSkudG9JbnQo
KSB9OworICAgICAgICAgICAgKyAoYmxvY2tDb250YWluZXIuY29udGFpbmluZ0Jsb2NrKCktPndy
aXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBibG9ja0NvbnRhaW5lci5ib3JkZXJUb3AoKSAr
IGJsb2NrQ29udGFpbmVyLnBhZGRpbmdUb3AoKSA6IGJsb2NrQ29udGFpbmVyLmJvcmRlclJpZ2h0
KCkgKyBibG9ja0NvbnRhaW5lci5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkgfTsKICAgICB9CiAg
ICAgcmV0dXJuIHsgfTsKIH0KQEAgLTMzMiwxOCArMzQ2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRl
ckJveCkKIHsKICAgICBBU1NFUlQoIShyZW5kZXJCb3guZWxlbWVudCgpICYmIHJlbmRlckJveC5l
bGVtZW50KCktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpKTsKICAgICBBU1NFUlQoIShyZW5kZXJC
b3guZWxlbWVudCgpICYmIHJlbmRlckJveC5lbGVtZW50KCktPnNoYWRvd0hvc3QoKSAmJiByZW5k
ZXJCb3guZWxlbWVudCgpLT5zaGFkb3dIb3N0KCktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpKTsK
LQotICAgIGF1dG8gd3JpdGluZ01vZGUgPSByZW5kZXJCb3guY29udGFpbmluZ0Jsb2NrKCktPndy
aXRpbmdNb2RlKCk7Ci0gICAgYXV0byBsaW5lRGlyZWN0aW9uID0gd3JpdGluZ01vZGUuaXNIb3Jp
em9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZTsKLQotICAgIGlmIChpczxS
ZW5kZXJUYWJsZT4ocmVuZGVyQm94KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIGlmICgo
aXM8UmVuZGVyRmxleGlibGVCb3g+KHJlbmRlckJveCkgfHwgaXM8UmVuZGVyR3JpZD4ocmVuZGVy
Qm94KSkgJiYgIWlzPFJlbmRlck1lbnVMaXN0PihyZW5kZXJCb3gpICYmICFpczxSZW5kZXJUZXh0
Q29udHJvbElubmVyQ29udGFpbmVyPihyZW5kZXJCb3gpKQotICAgICAgICByZXR1cm4gcmVuZGVy
Qm94LmZpcnN0TGluZUJhc2VsaW5lKCk7Ci0KLSAgICBpZiAoQ2hlY2tlZFB0ciBpbm5lckNvbnRh
aW5lciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPihy
ZW5kZXJCb3gpKQotICAgICAgICByZXR1cm4gbGFzdEluZmxvd0JveEJhc2VsaW5lKCppbm5lckNv
bnRhaW5lcik7CisgICAgQVNTRVJUKCFpczxSZW5kZXJUYWJsZT4ocmVuZGVyQm94KSAmJiAhaXM8
UmVuZGVyRmxleGlibGVCb3g+KHJlbmRlckJveCkgJiYgIWlzPFJlbmRlckdyaWQ+KHJlbmRlckJv
eCkgJiYgIWlzPFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KHJlbmRlckJveCkpOwog
CiAgICAgaWYgKENoZWNrZWRQdHIgYmxvY2tGbG93ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJs
b2NrRmxvdz4ocmVuZGVyQm94KSkgewogICAgICAgICBpZiAoYmxvY2tGbG93LT5zdHlsZSgpLmRp
c3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lQmxvY2spIHsKQEAgLTM1NCw2ICszNTcsNyBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKGNv
bnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgIH0KIAorICAgICAgICBhdXRvIHdyaXRpbmdNb2RlID0gcmVuZGVyQm94LmNvbnRhaW5p
bmdCbG9jaygpLT53cml0aW5nTW9kZSgpOwogICAgICAgICBpZiAoYmxvY2tGbG93LT5zdHlsZSgp
Lm92ZXJmbG93WSgpICE9IE92ZXJmbG93OjpWaXNpYmxlKSB7CiAgICAgICAgICAgICAvLyBGSVhN
RTogQ2FsbGVyIGFkZHMgbWFyZ2luIGJlZm9yZSBzbyB3ZSBjYW4ndCB5ZXQgcmV0dXJuIG1hcmdp
biBib3ggaGVpZ2h0LgogICAgICAgICAgICAgYXV0byBib3JkZXJCb3hIZWlnaHRoV2l0aHRNYXJn
aW5Cb3R0b20gPSBibG9ja0Zsb3ctPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUp
IC0gICh3cml0aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IHJlbmRlckJveC5tYXJnaW5Ub3AoKSA6
IHJlbmRlckJveC5tYXJnaW5SaWdodCgpKTsKQEAgLTM3Miw3ICszNzYsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKGNvbnN0IFJlbmRlckJv
eCYgcmVuZGVyQm94KQogICAgICAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gYmxvY2tG
bG93LT5maXJzdExpbmVTdHlsZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHsgTGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQoKQogICAgICAg
ICAgICAgICAgICAgICArIChibG9ja0Zsb3ctPmxpbmVIZWlnaHQoKSAtIGZvbnRNZXRyaWNzLmlu
dEhlaWdodCgpKSAvIDIKLSAgICAgICAgICAgICAgICAgICAgKyAobGluZURpcmVjdGlvbiA9PSBI
b3Jpem9udGFsTGluZSA/IGJsb2NrRmxvdy0+Ym9yZGVyVG9wKCkgKyBibG9ja0Zsb3ctPnBhZGRp
bmdUb3AoKSA6IGJsb2NrRmxvdy0+Ym9yZGVyUmlnaHQoKSArIGJsb2NrRmxvdy0+cGFkZGluZ1Jp
Z2h0KCkpKS50b0ludCgpIH07CisgICAgICAgICAgICAgICAgICAgICsgKHdyaXRpbmdNb2RlLmlz
SG9yaXpvbnRhbCgpID8gYmxvY2tGbG93LT5ib3JkZXJUb3AoKSArIGJsb2NrRmxvdy0+cGFkZGlu
Z1RvcCgpIDogYmxvY2tGbG93LT5ib3JkZXJSaWdodCgpICsgYmxvY2tGbG93LT5wYWRkaW5nUmln
aHQoKSkpLnRvSW50KCkgfTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGF1dG8q
IGlubGluZUxheW91dCA9IGJsb2NrRmxvdy0+aW5saW5lTGF5b3V0KCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475948</attachid>
            <date>2025-07-12 19:37:59 -0700</date>
            <delta_ts>2025-07-13 10:04:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295842-20250712193758.patch</filename>
            <type>text/plain</type>
            <size>121875</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4MzM3MTAxNDhkMTBkYjQxNWYxMTZmMTExMWY5ODI5OWY0NTAwOTQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgNSBKdWwgMjAyNSAwODowNTowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBpbmxpbmVCbG9ja0Jhc2VsaW5lIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGZsZXgsCiBncmlk
LCB0YWJsZSBhbmQgdGV4dCBjb250cm9sJ3MgaW5uZXIgY29udGFpbmVyCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1ODQyCgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2
aXN0by4KCiogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRp
Y2FsLXJsLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTgvZmFzdC9m
b3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0
dG9uLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2VxdW9pYS13azIv
ZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZp
bGwtYnV0dG9uLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2VxdW9p
YS13azIvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVk
LnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxs
LWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L3JlcGFpbnQvY2hlY2tib3gt
b3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1
dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6bGFzdEluZmxvd0JveEJhc2VsaW5lKToKKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjppbmxpbmVCbG9ja0Jhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpiYXNlbGluZVBvc2l0aW9uKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9u
OjpzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpC
b3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUJveEdlb21ldHJ5QWZ0ZXJJbnRlZ3JhdGlvbkxheW91
dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcDoK
KFdlYkNvcmU6OmNvbXB1dGVDYXJldFJlY3RGb3JFbXB0eUVsZW1lbnQpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcDoKKFdlYkNvcmU6OkxlZ2FjeUxpbmVM
YXlvdXQ6OmxheW91dExpbmVCb3hlcyk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckF0dGFjaG1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyQXR0YWNobWVudDo6YmFzZWxpbmVQb3Np
dGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0
dGFjaG1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgoo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQgY29uc3QpOiBEZWxldGVkLgooV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgooV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFzZWxpbmUgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9j
a1dpdGhOb0NoaWxkcmVuKToKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5GbG93
Q2hpbGRyZW4pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjphZGp1c3RJbml0aWFsTGV0dGVy
UG9zaXRpb24pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50
KToKKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpsaW5l
SGVpZ2h0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25z
dCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oOgooV2Vi
Q29yZTo6UmVuZGVyQm94OjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94SW5saW5lcy5oOgooV2ViQ29yZTo6UmVuZGVyQm94Ojpt
YXJnaW5Cb3hMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QnV0dG9uLmNwcDoKKFdlYkNvcmU6OnN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVudEJveCk6
IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoK
KFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJv
eCk6CihXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2Fs
Qm94KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50Q29udHJvbCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6
OlJlbmRlckZsZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dCk6CihXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpS
ZW5kZXJGbGV4aWJsZUJveDo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0R3JpZCk6
CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRNYXNvbnJ5KToKKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVk
LgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVySW5saW5lOjps
aW5lSGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlcklubGluZTo6YmFzZWxp
bmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsu
Y3BwOgooV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjp1cGRhdGVGcm9tU3R5bGUpOgooV2ViQ29y
ZTo6UmVuZGVyTGluZUJyZWFrOjpsaW5lSGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6
OlJlbmRlckxpbmVCcmVhazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmJh
c2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6bGluZUhlaWdodCBjb25zdCk6
IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyU2xp
ZGVyOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0
KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlclRhYmxlOjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgooV2ViQ29yZTo6UmVuZGVy
VGV4dENvbnRyb2w6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGV4dENv
bnRyb2xNdWx0aUxpbmU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjppbm5lclRleHRSZW5kZXJlciBjb25z
dCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHA6CihXZWJD
b3JlOjpMaW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcDoKKFdlYkNvcmU6OlJlbmRlck1h
dGhNTEJsb2NrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmg6Ci0tLQogLi4uL0xheW91
dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCAgIHwgMzM4ICsrKysrKysrKysrKysr
KysrLQogLi4uL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAgICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcCB8ICAxNCAt
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oICAgfCAgIDIgLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgIHwgMTAxIC0tLS0t
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggICAgICAgIHwgICA1IC0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwICB8ICA3MSArLS0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggICAgfCAgIDEgLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgIDE2ICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgfCAgIDcgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hJbmxpbmVzLmggICB8ICAgMSArCiAuLi4v
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCAgfCAgIDUgLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgICAgIHwgIDE2IC0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaCAgICAgICB8ICAgMiAtCiAuLi4vcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgfCAgIDQgKy0KIC4uLi9yZW5kZXJp
bmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwICAgICB8ICAgNCArLQogLi4uL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCAgIHwgIDE4ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCAgfCAgIDIgLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwICAgICAgIHwgIDIwICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5oICAgICAgICAgfCAgIDIgLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcCAgICAgIHwgIDEyIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5oICAgICAgICB8ICAgMiAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcCAgICAgfCAgMTMgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oICAgICAgIHwgICAzIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaW5lQnJlYWsuY3BwICB8ICAyMSAtLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5oICAgIHwgICA1IC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcCAgICB8ICAxMiAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5oICAgICAgfCAgIDEgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuY3BwIHwgIDE0IC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmggICB8ICAgMiAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuaCAgICAgfCAgIDcgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5j
cHAgICAgIHwgICA2IC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCAg
ICAgICB8ICAgMSAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwICAg
ICAgfCAgMTMgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmggICAgICAg
IHwgICAyIC0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggIHwg
ICA1IC0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICB8ICAg
NSAtCiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggICAgfCAgIDEg
LQogLi4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIHwgICA1ICsK
IC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggICB8ICAgMyArCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwICAgfCAgIDIgKy0KIC4u
Li9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCAgICB8ICAgOCAtCiAuLi4v
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oICAgICAgfCAgIDIgLQogLi4uY2hl
Y2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi5vbmct
cGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQgfCAgODIgKystLS0KIC4uLm9u
Zy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCB8ICA4MiArKy0tLQogLi4u
Y2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi5v
bmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQgfCAgOTYgKystLS0KIC4u
LmNoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dCB8ICAgMiArLQogLi4u
b25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0IHwgIDgyICsrLS0tCiA1
MiBmaWxlcyBjaGFuZ2VkLCA1NDEgaW5zZXJ0aW9ucygrKSwgNTg3IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCmluZGV4IGM1YTE1
ZDA3YzM4NS4uMmU2YjM0N2RhNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdl
b21ldHJ5VXBkYXRlci5jcHAKQEAgLTI4LDMwICsyOCw0MyBAQAogCiAjaW5jbHVkZSAiRm9ybWF0
dGluZ0NvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiSW5saW5lV2Fsa2VyLmgiCisjaW5jbHVkZSAi
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgiCisjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZH
Um9vdC5oIgorI2lmIEVOQUJMRShNVUxUSV9SRVBSRVNFTlRBVElPTl9IRUlDKQorI2luY2x1ZGUg
Ik11bHRpUmVwcmVzZW50YXRpb25IRUlDTWV0cmljcy5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUmVu
ZGVyQXR0YWNobWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUg
IlJlbmRlckJveElubGluZXMuaCIKICNpbmNsdWRlICJSZW5kZXJCdXR0b24uaCIKICNpbmNsdWRl
ICJSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
SW5saW5lcy5oIgorI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAi
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5o
IgogI2luY2x1ZGUgIlJlbmRlckZyYW1lU2V0LmgiCiAjaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgor
I2luY2x1ZGUgIlJlbmRlckhUTUxDYW52YXMuaCIKKyNpbmNsdWRlICJSZW5kZXJJRnJhbWUuaCIK
ICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YS5oIgogI2luY2x1ZGUgIlJlbmRlckxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlu
ZUJyZWFrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2luY2x1ZGUgIlJlbmRlckxp
c3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRl
ck1hdGhNTEJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZS5oIgogI2luY2x1ZGUgIlJlbmRl
clRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlSW5saW5lcy5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgiCisjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJSZW5k
ZXJWaWV3VHJhbnNpdGlvbkNhcHR1cmUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIExheW91dEludGVncmF0aW9uIHsKQEAgLTI4NCw4ICsyOTcsMzIyIEBAIHN0YXRpYyBpbmxp
bmUgTGF5b3V0U2l6ZSBzY3JvbGxiYXJMb2dpY2FsU2l6ZShjb25zdCBSZW5kZXJCb3gmIHJlbmRl
cmVyKQogICAgIHJldHVybiB7IGhvcml6b250YWxTcGFjZVJlc2VydmVkRm9yU2Nyb2xsYmFyLCB2
ZXJ0aWNhbFNwYWNlUmVzZXJ2ZWRGb3JTY3JvbGxiYXIgfTsKIH0KIAotc3RhdGljIGlubGluZSB2
b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
aW5saW5lQmxvY2tCYXNlbGluZShjb25zdCBSZW5kZXJCb3gmKTsKKworc3RhdGljIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gbGFzdEluZmxvd0JveEJhc2VsaW5lKGNvbnN0IFJlbmRlckJsb2Nr
JiBibG9ja0NvbnRhaW5lcikKK3sKKyAgICBhdXRvIGhhdmVJbkZsb3dDaGlsZCA9IGZhbHNlOwor
ICAgIGZvciAoYXV0byogYm94ID0gYmxvY2tDb250YWluZXIubGFzdENoaWxkQm94KCk7IGJveDsg
Ym94ID0gYm94LT5wcmV2aW91c1NpYmxpbmdCb3goKSkgeworICAgICAgICBpZiAoYm94LT5pc0Zs
b2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBoYXZlSW5GbG93Q2hpbGQgPSB0cnVlOworCisgICAgICAgIGlmIChib3gtPmlzV3Jp
dGluZ01vZGVSb290KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoYm94
LT5zaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICBpZiAoaXM8UmVuZGVyVGFibGU+KCpib3gpKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgaWYgKGlzPFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KCpi
b3gpIHx8IGlzPFJlbmRlck1lbnVMaXN0PigqYm94KSkgeworICAgICAgICAgICAgaWYgKGF1dG8g
YmFzZWxpbmUgPSBsYXN0SW5mbG93Qm94QmFzZWxpbmUoZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpi
b3gpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYm94LT5sb2dpY2FsVG9wKCkgKyAqYmFzZWxp
bmU7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpczxS
ZW5kZXJGbGV4aWJsZUJveD4oKmJveCkgfHwgaXM8UmVuZGVyR3JpZD4oKmJveCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvIGJhc2VsaW5lID0gYm94LT5maXJzdExpbmVCYXNlbGluZSgpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBib3gtPmxvZ2ljYWxUb3AoKSArICpiYXNlbGluZTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0g
aW5saW5lQmxvY2tCYXNlbGluZSgqYm94KSkKKyAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0
IHsgKGJveC0+bG9naWNhbFRvcCgpICsgcmVzdWx0LnZhbHVlKCkpLnRvSW50KCkgfTsgLy8gVHJh
bnNsYXRlIHRvIG91ciBjb29yZGluYXRlIHNwYWNlLgorICAgIH0KKworICAgIGlmICghaGF2ZUlu
Rmxvd0NoaWxkICYmIGJsb2NrQ29udGFpbmVyLmhhc0xpbmVJZkVtcHR5KCkpIHsKKyAgICAgICAg
YXV0byYgZm9udE1ldHJpY3MgPSBibG9ja0NvbnRhaW5lci5maXJzdExpbmVTdHlsZSgpLm1ldHJp
Y3NPZlByaW1hcnlGb250KCk7CisgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgTGF5b3V0VW5p
dChmb250TWV0cmljcy5pbnRBc2NlbnQoKQorICAgICAgICAgICAgKyAoYmxvY2tDb250YWluZXIu
bGluZUhlaWdodCgpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgorICAgICAgICAgICAg
KyAoYmxvY2tDb250YWluZXIuY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jp
em9udGFsKCkgPyBibG9ja0NvbnRhaW5lci5ib3JkZXJUb3AoKSArIGJsb2NrQ29udGFpbmVyLnBh
ZGRpbmdUb3AoKSA6IGJsb2NrQ29udGFpbmVyLmJvcmRlclJpZ2h0KCkgKyBibG9ja0NvbnRhaW5l
ci5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkgfTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30K
Kworc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShj
b25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCkKK3sKKyAgICBBU1NFUlQoIShyZW5kZXJCb3guZWxl
bWVudCgpICYmIHJlbmRlckJveC5lbGVtZW50KCktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpKTsK
KyAgICBBU1NFUlQoIShyZW5kZXJCb3guZWxlbWVudCgpICYmIHJlbmRlckJveC5lbGVtZW50KCkt
PnNoYWRvd0hvc3QoKSAmJiByZW5kZXJCb3guZWxlbWVudCgpLT5zaGFkb3dIb3N0KCktPmlzRm9y
bUNvbnRyb2xFbGVtZW50KCkpKTsKKyAgICBBU1NFUlQoIWlzPFJlbmRlclRhYmxlPihyZW5kZXJC
b3gpICYmICFpczxSZW5kZXJGbGV4aWJsZUJveD4ocmVuZGVyQm94KSAmJiAhaXM8UmVuZGVyR3Jp
ZD4ocmVuZGVyQm94KSAmJiAhaXM8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4ocmVu
ZGVyQm94KSk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBibG9ja0Zsb3cgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVyQmxvY2tGbG93PihyZW5kZXJCb3gpKSB7CisgICAgICAgIGlmIChibG9ja0Zsb3ct
PnN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jaykgeworICAgICAg
ICAgICAgLy8gVGhlIGJhc2VsaW5lIG9mIGFuICdpbmxpbmUtYmxvY2snIGlzIHRoZSBiYXNlbGlu
ZSBvZiBpdHMgbGFzdCBsaW5lIGJveCBpbiB0aGUgbm9ybWFsIGZsb3csIHVubGVzcyBpdCBoYXMg
ZWl0aGVyIG5vIGluLWZsb3cgbGluZSBib3hlcyBvciBpZiBpdHMgJ292ZXJmbG93JworICAgICAg
ICAgICAgLy8gcHJvcGVydHkgaGFzIGEgY29tcHV0ZWQgdmFsdWUgb3RoZXIgdGhhbiAndmlzaWJs
ZScuIHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjIvdmlzdWRldC5odG1sCisgICAgICAg
ICAgICBhdXRvIHNob3VsZFN5bnRoZXNpemVCYXNlbGluZSA9ICFibG9ja0Zsb3ctPnN0eWxlKCku
aXNPdmVyZmxvd1Zpc2libGUoKSAmJiAhaXM8UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrPigq
YmxvY2tGbG93KTsKKyAgICAgICAgICAgIGlmIChzaG91bGRTeW50aGVzaXplQmFzZWxpbmUpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gd3Jp
dGluZ01vZGUgPSByZW5kZXJCb3guY29udGFpbmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCk7Cisg
ICAgICAgIGlmIChibG9ja0Zsb3ctPnN0eWxlKCkub3ZlcmZsb3dZKCkgIT0gT3ZlcmZsb3c6OlZp
c2libGUpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBDYWxsZXIgYWRkcyBtYXJnaW4gYmVmb3Jl
IHNvIHdlIGNhbid0IHlldCByZXR1cm4gbWFyZ2luIGJveCBoZWlnaHQuCisgICAgICAgICAgICBh
dXRvIGJvcmRlckJveEhlaWdodGhXaXRodE1hcmdpbkJvdHRvbSA9IGJsb2NrRmxvdy0+bWFyZ2lu
Qm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkgLSAgKHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRh
bCgpID8gcmVuZGVyQm94Lm1hcmdpblRvcCgpIDogcmVuZGVyQm94Lm1hcmdpblJpZ2h0KCkpOwor
ICAgICAgICAgICAgcmV0dXJuIGJvcmRlckJveEhlaWdodGhXaXRodE1hcmdpbkJvdHRvbTsKKyAg
ICAgICAgfQorCisgICAgICAgIGF1dG8gbGFzdEJhc2VsaW5lID0gWyZdIC0+IHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4geworICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGhlcmUgd2Ugb25seSB0
YWtlIHRoZSBsZWZ0IGFuZCBib3R0b20gaW50byBjb25zaWRlcmF0aW9uLiBPdXIgY2FsbGVyIHRh
a2VzIHRoZSByaWdodCBhbmQgdG9wIGludG8gY29uc2lkZXJhdGlvbi4KKyAgICAgICAgICAgIGlm
ICghYmxvY2tGbG93LT5jaGlsZHJlbklubGluZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBs
YXN0SW5mbG93Qm94QmFzZWxpbmUoKmJsb2NrRmxvdyk7CisKKyAgICAgICAgICAgIGlmICghYmxv
Y2tGbG93LT5oYXNMaW5lcygpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFibG9ja0Zsb3ctPmhh
c0xpbmVJZkVtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAg
ICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IGJsb2NrRmxvdy0+Zmlyc3RMaW5lU3R5bGUo
KS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOworICAgICAgICAgICAgICAgIHJldHVybiB7IExheW91
dFVuaXQoZm9udE1ldHJpY3MuaW50QXNjZW50KCkKKyAgICAgICAgICAgICAgICAgICAgKyAoYmxv
Y2tGbG93LT5saW5lSGVpZ2h0KCkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyCisgICAg
ICAgICAgICAgICAgICAgICsgKHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gYmxvY2tGbG93
LT5ib3JkZXJUb3AoKSArIGJsb2NrRmxvdy0+cGFkZGluZ1RvcCgpIDogYmxvY2tGbG93LT5ib3Jk
ZXJSaWdodCgpICsgYmxvY2tGbG93LT5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkgfTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGF1dG8qIGlubGluZUxheW91dCA9IGJsb2NrRmxv
dy0+aW5saW5lTGF5b3V0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZsb29yVG9JbnQoaW5s
aW5lTGF5b3V0LT5sYXN0TGluZUxvZ2ljYWxCYXNlbGluZSgpKTsKKworICAgICAgICAgICAgaWYg
KGJsb2NrRmxvdy0+c3ZnVGV4dExheW91dCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byYgc3R5
bGUgPSBibG9ja0Zsb3ctPmZpcnN0TGluZVN0eWxlKCk7CisgICAgICAgICAgICAgICAgLy8gTGVn
YWN5SW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24gd2lsbCBmbGlwIGxp
bmVzIGluIGNhc2Ugb2YgdmVydGljYWxMUiBtb2RlLCBzbyB3ZSBjYW4gYXNzdW1lIHZlcnRpY2Fs
UkwgZm9yIG5vdy4KKyAgICAgICAgICAgICAgICByZXR1cm4gTGF5b3V0VW5pdChzdHlsZS5tZXRy
aWNzT2ZQcmltYXJ5Rm9udCgpLmludEFzY2VudChibG9ja0Zsb3ctPmxlZ2FjeVJvb3RCb3goKS0+
YmFzZWxpbmVUeXBlKCkpICsgKHN0eWxlLndyaXRpbmdNb2RlKCkuaXNMaW5lSW52ZXJ0ZWQoKSA/
IGJsb2NrRmxvdy0+bG9naWNhbEhlaWdodCgpIC0gYmxvY2tGbG93LT5sZWdhY3lSb290Qm94KCkt
PmxvZ2ljYWxCb3R0b20oKSA6IGJsb2NrRmxvdy0+bGVnYWN5Um9vdEJveCgpLT5sb2dpY2FsVG9w
KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH07
CisgICAgICAgIHJldHVybiBsYXN0QmFzZWxpbmUoKTsKKyAgICB9CisKKyAgICBpZiAoQ2hlY2tl
ZFB0ciBibG9ja1JlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJsb2NrPihyZW5kZXJC
b3gpKQorICAgICAgICByZXR1cm4gbGFzdEluZmxvd0JveEJhc2VsaW5lKCpibG9ja1JlbmRlcmVy
KTsKKworICAgIHJldHVybiB7IH07Cit9CisKK0xheW91dFVuaXQgc3RhdGljIGJhc2VsaW5lUG9z
aXRpb24oY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCit7CisgICAgQVNTRVJUKHJlbmRlckJv
eC5pc0luRmxvdygpKTsKKworICAgIGF1dG8gd3JpdGluZ01vZGUgPSByZW5kZXJCb3guY29udGFp
bmluZ0Jsb2NrKCktPndyaXRpbmdNb2RlKCk7CisgICAgYXV0byBtYXJnaW5CZWZvcmUgPSB3cml0
aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IHJlbmRlckJveC5tYXJnaW5Ub3AoKSA6IHJlbmRlckJv
eC5tYXJnaW5SaWdodCgpOworCisgICAgaWYgKHJlbmRlckJveC5zaG91bGRBcHBseUxheW91dENv
bnRhaW5tZW50KCkpIHsKKyAgICAgICAgaWYgKHJlbmRlckJveC5pc0ZpZWxkc2V0KCkpIHsKKyAg
ICAgICAgICAgIC8vIFRoaXMgaXMgdG8gcHJlc2VydmUgbGVnYWN5IGJlaGF2aW9yLgorICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2Rl
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJCb3gubWFyZ2lu
Qm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpOworICAgIH0KKworICAgIGlmIChyZW5kZXJC
b3guaXNXcml0aW5nTW9kZVJvb3QoKSkKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQocmVuZGVy
Qm94Lm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKworICAgIGlmIChpczxS
ZW5kZXJJRnJhbWU+KHJlbmRlckJveCkKKyAgICAgICAgfHwgaXM8UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q+KHJlbmRlckJveCkKKyAgICAgICAgfHwgaXM8TGVnYWN5UmVuZGVyU1ZHUm9vdD4ocmVuZGVy
Qm94KQorICAgICAgICB8fCBpczxSZW5kZXJIVE1MQ2FudmFzPihyZW5kZXJCb3gpCisgICAgICAg
IHx8IGlzPFJlbmRlclZpZXdUcmFuc2l0aW9uQ2FwdHVyZT4ocmVuZGVyQm94KSkKKyAgICAgICAg
cmV0dXJuIHJvdW5kVG9JbnQocmVuZGVyQm94Lm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGlu
Z01vZGUpKTsKKworI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisgICAgaWYgKENoZWNr
ZWRQdHIgcmVuZGVyZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQXR0YWNobWVudD4ocmVuZGVy
Qm94KSkgeworICAgICAgICBpZiAoYXV0byogYmFzZWxpbmVFbGVtZW50ID0gcmVuZGVyZXItPmF0
dGFjaG1lbnRFbGVtZW50KCkud2lkZUxheW91dEltYWdlRWxlbWVudCgpKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byogYmFzZWxpbmVFbGVtZW50UmVuZGVyQm94ID0gYmFzZWxpbmVFbGVtZW50LT5y
ZW5kZXJCb3goKSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGJvdHRvbSBvZiB0
aGUgaW1hZ2UgYXNzdW1pbmcgaXQgaXMgdmVydGljYWxseSBjZW50ZXJlZC4KKyAgICAgICAgICAg
ICAgICByZXR1cm4gKHJlbmRlcmVyLT5oZWlnaHQoKSArIGJhc2VsaW5lRWxlbWVudFJlbmRlckJv
eC0+aGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEZhbGxiYWNr
IHRvIHRoZSBib3R0b20gb2YgdGhlIGF0dGFjaG1lbnQgaWYgdGhlcmUgaXMgbm8gaW1hZ2UuCisg
ICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPmhlaWdodCgpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiByZW5kZXJlci0+dGhlbWUoKS5hdHRhY2htZW50QmFzZWxpbmUoKnJlbmRlcmVyKTsK
KyAgICB9CisjZW5kaWYKKworICAgIGlmIChDaGVja2VkUHRyIHJlbmRlcmVyID0gZHluYW1pY0Rv
d25jYXN0PFJlbmRlckJ1dHRvbj4ocmVuZGVyQm94KSkgeworICAgICAgICAvLyBXZSBjYW5ub3Qg
cmVseSBvbiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbigpIGJlY2F1c2Ugb2Yg
ZmxleGJveGVzIGhhdmUgc29tZSBzcGVjaWFsIGJlaGF2aW9yCisgICAgICAgIC8vIHJlZ2FyZGlu
ZyBiYXNlbGluZXMgdGhhdCBzaG91bGRuJ3QgYXBwbHkgdG8gYnV0dG9ucy4KKyAgICAgICAgaWYg
KGF1dG8gYmFzZWxpbmUgPSByZW5kZXJCb3guZmlyc3RMaW5lQmFzZWxpbmUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBtYXJnaW5CZWZvcmUgKyAqYmFzZWxpbmU7CisgICAgICAgIGF1dG8gY29udGVu
dEJveEJvdHRvbSA9IHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gcmVuZGVyZXItPmJvcmRl
clRvcCgpICsgcmVuZGVyZXItPnBhZGRpbmdUb3AoKSArIHJlbmRlcmVyLT5jb250ZW50Qm94SGVp
Z2h0KCkgOiByZW5kZXJlci0+Ym9yZGVyUmlnaHQoKSArIHJlbmRlcmVyLT5wYWRkaW5nUmlnaHQo
KSArIHJlbmRlcmVyLT5jb250ZW50Qm94V2lkdGgoKTsKKyAgICAgICAgcmV0dXJuIG1hcmdpbkJl
Zm9yZSArIGNvbnRlbnRCb3hCb3R0b207CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIgcmVu
ZGVyZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVySW1hZ2U+KHJlbmRlckJveCkpIHsKKyAgICAg
ICAgYXV0byBvZmZzZXQgPSBMYXlvdXRVbml0IHsgfTsKKyNpZiBFTkFCTEUoTVVMVElfUkVQUkVT
RU5UQVRJT05fSEVJQykKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc011bHRpUmVwcmVzZW50YXRp
b25IRUlDKCkpIHsKKyAgICAgICAgICAgIGF1dG8gbWV0cmljcyA9IHJlbmRlcmVyLT5zdHlsZSgp
LmZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKS0+bWV0cmljc0Zvck11bHRpUmVwcmVzZW50YXRp
b25IRUlDKCk7CisgICAgICAgICAgICBvZmZzZXQgPSBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3Vu
ZChtZXRyaWNzLmRlc2NlbnQpOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIHJv
dW5kVG9JbnQocmVuZGVyZXItPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKSAt
IG9mZnNldDsKKyAgICB9CisKKyAgICBpZiAoQ2hlY2tlZFB0ciByZW5kZXJlciA9IGR5bmFtaWNE
b3duY2FzdDxSZW5kZXJMaXN0Qm94PihyZW5kZXJCb3gpKSB7CisgICAgICAgIC8vIEZJWE1FOiBU
aGlzIGhhcmRjb2RlZCBiYXNlbGluZUFkanVzdG1lbnQgaXMgd2hhdCB3ZSB1c2VkIHRvIGRvIGZv
ciB0aGUgb2xkCisgICAgICAgIC8vIHdpZGdldCwgYnV0IEknbSBub3Qgc3VyZSB0aGlzIGlzIHJp
Z2h0IGZvciB0aGUgbmV3IGNvbnRyb2wuCisgICAgICAgIGNvbnN0IGludCBiYXNlbGluZUFkanVz
dG1lbnQgPSA3OworICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJlci0+bWFyZ2luQm94
TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpIC0gYmFzZWxpbmVBZGp1c3RtZW50OworICAgIH0K
KworICAgIGlmIChDaGVja2VkUHRyIHRleHRDb250cm9sID0gZHluYW1pY0Rvd25jYXN0PFJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZT4ocmVuZGVyQm94KSkgeworICAgICAgICBpZiAoYXV0byog
aW5uZXJUZXh0UmVuZGVyZXIgPSB0ZXh0Q29udHJvbC0+aW5uZXJUZXh0UmVuZGVyZXIoKSkgewor
ICAgICAgICAgICAgYXV0byBiYXNlbGluZSA9IExheW91dFVuaXQgeyB9OworICAgICAgICAgICAg
aWYgKGlubmVyVGV4dFJlbmRlcmVyLT5pbmxpbmVMYXlvdXQoKSkKKyAgICAgICAgICAgICAgICBi
YXNlbGluZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGlubmVyVGV4dFJlbmRlcmVyLT5tYXJnaW5C
b3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSwgZmxvb3JUb0ludChpbm5lclRleHRSZW5kZXJl
ci0+aW5saW5lTGF5b3V0KCktPmxhc3RMaW5lTG9naWNhbEJhc2VsaW5lKCkpKTsKKyAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gaW5uZXJUZXh0
UmVuZGVyZXItPmZpcnN0TGluZVN0eWxlKCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKKyAgICAg
ICAgICAgICAgICBiYXNlbGluZSA9IGZvbnRNZXRyaWNzLmludEFzY2VudCgpICsgKGlubmVyVGV4
dFJlbmRlcmVyLT5saW5lSGVpZ2h0KCkgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYmFzZWxpbmUgPSBmbG9vclRvSW50KGlubmVyVGV4
dFJlbmRlcmVyLT5sb2dpY2FsVG9wKCkgKyBiYXNlbGluZSk7CisgICAgICAgICAgICBmb3IgKGF1
dG8qIGFuY2VzdG9yID0gaW5uZXJUZXh0UmVuZGVyZXItPmNvbnRhaW5pbmdCbG9jaygpOyBhbmNl
c3RvciAmJiBhbmNlc3RvciAhPSB0ZXh0Q29udHJvbDsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+Y29u
dGFpbmluZ0Jsb2NrKCkpCisgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBmbG9vclRvSW50KGFu
Y2VzdG9yLT5sb2dpY2FsVG9wKCkgKyBiYXNlbGluZSk7CisgICAgICAgICAgICByZXR1cm4gbWFy
Z2luQmVmb3JlICsgYmFzZWxpbmU7CisgICAgICAgIH0KKyAgICAgICAgLy8gaW5wdXQ6Oi13ZWJr
aXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIHsgZGlzcGxheTogbm9uZSB9CisgICAg
ICAgIHJldHVybiByb3VuZFRvSW50KHRleHRDb250cm9sLT5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0
KHdyaXRpbmdNb2RlKSk7CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIgcmVuZGVyZXIgPSBk
eW5hbWljRG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU+KHJlbmRlckJveCkpCisg
ICAgICAgIHJldHVybiByb3VuZFRvSW50KHJlbmRlcmVyLT5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0
KHdyaXRpbmdNb2RlKSk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBmaWxlVXBsb2FkID0gZHluYW1p
Y0Rvd25jYXN0PFJlbmRlckZpbGVVcGxvYWRDb250cm9sPihyZW5kZXJCb3gpKSB7CisgICAgICAg
IGlmIChhdXRvKiBpbmxpbmVMYXlvdXQgPSBmaWxlVXBsb2FkLT5pbmxpbmVMYXlvdXQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om1pbihyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdo
dCh3cml0aW5nTW9kZSksIG1hcmdpbkJlZm9yZSArIGZsb29yVG9JbnQoaW5saW5lTGF5b3V0LT5s
YXN0TGluZUxvZ2ljYWxCYXNlbGluZSgpKSk7CisgICAgICAgIHJldHVybiByb3VuZFRvSW50KHJl
bmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSk7CisgICAgfQorCisg
ICAgaWYgKENoZWNrZWRQdHIgcmVuZGVyZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyU2xpZGVy
PihyZW5kZXJCb3gpKSB7CisgICAgICAgIC8vIEZJWE1FOiBQYXRjaCB0aGlzIGZ1bmN0aW9uIGZv
ciB3cml0aW5nLW1vZGUuCisgICAgICAgIHJldHVybiByZW5kZXJlci0+aGVpZ2h0KCkgKyByZW5k
ZXJlci0+bWFyZ2luVG9wKCk7CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIgcmVuZGVyZXIg
PSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyVGFibGU+KHJlbmRlckJveCkpIHsKKyAgICAgICAgaWYg
KGF1dG8gYmFzZWxpbmVQb3MgPSByZW5kZXJCb3guZmlyc3RMaW5lQmFzZWxpbmUoKSkKKyAgICAg
ICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUgKyAqYmFzZWxpbmVQb3M7CisgICAgICAgIHJldHVy
biByb3VuZFRvSW50KHJlbmRlcmVyLT5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2Rl
KSk7CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIgbWVudUxpc3QgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVyTWVudUxpc3Q+KHJlbmRlckJveCkpIHsKKyAgICAgICAgaWYgKGF1dG8gYmFzZWxp
bmUgPSBsYXN0SW5mbG93Qm94QmFzZWxpbmUoKm1lbnVMaXN0KSkKKyAgICAgICAgICAgIHJldHVy
biBtYXJnaW5CZWZvcmUgKyAqYmFzZWxpbmU7CisgICAgICAgIHJldHVybiBtZW51TGlzdC0+bWFy
Z2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSk7CisgICAgfQorCisgICAgaWYgKGlzPFJl
bmRlckZsZXhpYmxlQm94PihyZW5kZXJCb3gpIHx8IGlzPFJlbmRlckdyaWQ+KHJlbmRlckJveCkp
IHsKKyAgICAgICAgaWYgKGF1dG8gYmFzZWxpbmUgPSByZW5kZXJCb3guZmlyc3RMaW5lQmFzZWxp
bmUoKSkKKyAgICAgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUudG9JbnQoKSArICpiYXNlbGlu
ZTsKKyAgICAgICAgcmV0dXJuIHN5bnRoZXNpemVkQmFzZWxpbmUocmVuZGVyQm94LCAqcmVuZGVy
Qm94LnBhcmVudFN0eWxlKCksIHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRh
bExpbmUgOiBWZXJ0aWNhbExpbmUsIEJvcmRlckJveCkgKyByZW5kZXJCb3gubWFyZ2luTG9naWNh
bEhlaWdodCgpOworICAgIH0KKworICAgIGlmIChyZW5kZXJCb3guaXNGaWVsZHNldCgpKSB7Cisg
ICAgICAgIC8vIE5vdGUgdGhhdCA8ZmllbGRzZXQ+IG1heSBzaW1wbHkgYmUgYSBmbGV4L2dyaWQg
Ym94IChhIG5vbi1SZW5kZXJCbG9ja0Zsb3cgUmVuZGVyQmxvY2spIGFuZCBhbHJlYWR5IGhhbmRs
ZWQgYWJvdmUuCisgICAgICAgIGlmIChDaGVja2VkUHRyIGJsb2NrRmxvdyA9IGR5bmFtaWNEb3du
Y2FzdDxSZW5kZXJCbG9ja0Zsb3c+KHJlbmRlckJveCkpIHsKKyAgICAgICAgICAgIC8vIDxmaWVs
ZHNldD4gd2l0aCBubyBsZWdlbmQuCisgICAgICAgICAgICBpZiAoQ2hlY2tlZFB0ciBpbmxpbmVM
YXlvdXQgPSBibG9ja0Zsb3ctPmlubGluZUxheW91dCgpKQorICAgICAgICAgICAgICAgIHJldHVy
biBtYXJnaW5CZWZvcmUgKyBmbG9vclRvSW50KGlubGluZUxheW91dC0+bGFzdExpbmVMb2dpY2Fs
QmFzZWxpbmUoKSk7CisgICAgICAgICAgICBpZiAoYXV0byBiYXNlbGluZSA9IGxhc3RJbmZsb3dC
b3hCYXNlbGluZSgqYmxvY2tGbG93KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFyZ2luQmVm
b3JlICsgKmJhc2VsaW5lOworICAgICAgICB9CisgICAgICAgIHJldHVybiByb3VuZFRvSW50KHJl
bmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSk7CisgICAgfQorCisg
ICAgaWYgKHJlbmRlckJveC5lbGVtZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+aXNGb3Jt
Q29udHJvbEVsZW1lbnQoKSkgeworICAgICAgICAvLyBGb3IgImxlYWYiIHRoZW1lIG9iamVjdHMg
bGlrZSBjaGVja2JveCwgbGV0IHRoZSB0aGVtZSBkZWNpZGUgd2hhdCB0aGUgYmFzZWxpbmUgcG9z
aXRpb24gaXMuCisgICAgICAgIGlmIChyZW5kZXJCb3guc3R5bGUoKS5oYXNVc2VkQXBwZWFyYW5j
ZSgpICYmICFyZW5kZXJCb3gudGhlbWUoKS5pc0NvbnRyb2xDb250YWluZXIocmVuZGVyQm94LnN0
eWxlKCkudXNlZEFwcGVhcmFuY2UoKSkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyQm94LnRo
ZW1lKCkuYmFzZWxpbmVQb3NpdGlvbihyZW5kZXJCb3gpOworCisgICAgICAgIC8vIE5vbi1SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgaW5wdXQgdHlwZSBsaWtlIGlucHV0IHR5cGUgY29sb3Iu
CisgICAgICAgIGlmIChDaGVja2VkUHRyIGNvbnRhaW5lciA9IGR5bmFtaWNEb3duY2FzdDxSZW5k
ZXJCb3g+KHJlbmRlckJveC5maXJzdEluRmxvd0NoaWxkKCkpKSB7CisgICAgICAgICAgICBpZiAo
YXV0byBiYXNlbGluZVBvcyA9IGNvbnRhaW5lci0+Zmlyc3RMaW5lQmFzZWxpbmUoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlICsgY29udGFpbmVyLT5sb2dpY2FsVG9wKCkg
KyAqYmFzZWxpbmVQb3M7CisgICAgICAgIH0KKyAgICAgICAgLy8gZS5nLiBsZWFmIHRoZW1lIG9i
amVjdHMgd2l0aCBubyBhcHBlYXJhbmNlIChub25lKSBhbmQgZW1wdHkgY29udGVudCAoZS5nLiBi
ZWZvcmUgcHNldWRvIGFuZCBjb250ZW50OiAiIikuCisgICAgICAgIHJldHVybiByb3VuZFRvSW50
KHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSk7CisgICAgfQor
CisgICAgaWYgKHJlbmRlckJveC5lbGVtZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+c2hh
ZG93SG9zdCgpICYmIHJlbmRlckJveC5lbGVtZW50KCktPnNoYWRvd0hvc3QoKS0+aXNGb3JtQ29u
dHJvbEVsZW1lbnQoKSkgeworICAgICAgICAvLyBJbnNpZGUgUmVuZGVyVGV4dENvbnRyb2wncyBz
aGFkb3cgRE9NIChlLmcuIHN0cm9uZy1wYXNzd29yZCB0ZXh0KQorICAgICAgICBhdXRvIGxhc3RC
YXNlbGluZSA9IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4geyB9OworICAgICAgICBpZiAoQ2hl
Y2tlZFB0ciBibG9ja0Zsb3cgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihyZW5k
ZXJCb3gpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogaW5saW5lTGF5b3V0ID0gYmxvY2tGbG93
LT5pbmxpbmVMYXlvdXQoKSkKKyAgICAgICAgICAgICAgICBsYXN0QmFzZWxpbmUgPSBmbG9vclRv
SW50KGlubGluZUxheW91dC0+bGFzdExpbmVMb2dpY2FsQmFzZWxpbmUoKSk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWluKHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0
KHdyaXRpbmdNb2RlKSwgbWFyZ2luQmVmb3JlICsgbGFzdEJhc2VsaW5lLnZhbHVlX29yKDBfbHUp
KTsKKyAgICB9CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBkZXByZWNhdGVkRmxleEJveCA9IGR5bmFt
aWNEb3duY2FzdDxSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g+KHJlbmRlckJveCkpIHsKKyAg
ICAgICAgLy8gSGlzdG9yaWNhbGx5LCB3ZSBkaWQgdGhpcyBjaGVjayBmb3IgYWxsIGJhc2VsaW5l
cy4gQnV0IHdlIGNhbid0CisgICAgICAgIC8vIHJlbW92ZSB0aGlzIGNvZGUgZnJvbSBkZXByZWNh
dGVkIGZsZXhib3gsIGJlY2F1c2UgaXQgZWZmZWN0aXZlbHkKKyAgICAgICAgLy8gYnJlYWtzIC13
ZWJraXQtbGluZS1jbGFtcCwgd2hpY2ggaXMgdXNlZCBpbiB0aGUgd2lsZCAtLSB3ZSB3b3VsZAor
ICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIGJhc2VsaW5lIGFzIGlmIC13ZWJraXQtbGluZS1jbGFt
cCB3YXNuJ3QgdXNlZC4KKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHksIHdlIHVzZSB0aGlzIGZv
ciBhbGwgdXNlcyBvZiBkZXByZWNhdGVkIGZsZXhib3guCisgICAgICAgIGF1dG8gYm90dG9tT2ZD
b250ZW50ID0gZGVwcmVjYXRlZEZsZXhCb3gtPmJvcmRlckJlZm9yZSgpICsgZGVwcmVjYXRlZEZs
ZXhCb3gtPnBhZGRpbmdCZWZvcmUoKSArIGRlcHJlY2F0ZWRGbGV4Qm94LT5jb250ZW50Qm94TG9n
aWNhbEhlaWdodCgpOworICAgICAgICBhdXRvIGJhc2VsaW5lID0gbGFzdEluZmxvd0JveEJhc2Vs
aW5lKCpkZXByZWNhdGVkRmxleEJveCk7CisgICAgICAgIGlmIChiYXNlbGluZSAmJiAqYmFzZWxp
bmUgPD0gYm90dG9tT2ZDb250ZW50KQorICAgICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSAr
ICpiYXNlbGluZTsKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQoZGVwcmVjYXRlZEZsZXhCb3gt
Pm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKyAgICB9CisKKyAgICBpZiAo
Q2hlY2tlZFB0ciByZW5kZXJlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPihy
ZW5kZXJCb3gpKSB7CisgICAgICAgIGlmIChDaGVja2VkUHRyIGxpc3RJdGVtID0gcmVuZGVyZXIt
Pmxpc3RJdGVtKCk7IGxpc3RJdGVtICYmICFyZW5kZXJlci0+aXNJbWFnZSgpKSB7CisgICAgICAg
ICAgICBhdXRvJiBmb250TWV0cmljcyA9IHJlbmRlcmVyLT5zdHlsZSgpLm1ldHJpY3NPZlByaW1h
cnlGb250KCk7CisgICAgICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmlu
dEFzY2VudCgpICsgKHJlbmRlcmVyLT5saW5lSGVpZ2h0KCkgLSBmb250TWV0cmljcy5pbnRIZWln
aHQoKSkgLyAyIH0udG9JbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcm91bmRUb0lu
dChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpOworICAgIH0K
KworI2lmIEVOQUJMRShNQVRITUwpCisgICAgaWYgKGlzPFJlbmRlck1hdGhNTEJsb2NrPihyZW5k
ZXJCb3gpKSB7CisgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lID0gcmVuZGVyQm94LmZpcnN0TGlu
ZUJhc2VsaW5lKCkpCisgICAgICAgICAgICByZXR1cm4gKmJhc2VsaW5lOworICAgICAgICByZXR1
cm4gcm91bmRUb0ludChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9k
ZSkpOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKENoZWNrZWRQdHIgcmVuZGVyZXIgPSBkeW5h
bWljRG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlckJveCkpIHsKKyAgICAgICAgLy8gQ1NTMi4x
IHN0YXRlcyB0aGF0IHRoZSBiYXNlbGluZSBvZiBhbiBpbmxpbmUgYmxvY2sgaXMgdGhlIGJhc2Vs
aW5lIG9mIHRoZSBsYXN0IGxpbmUgYm94IGluCisgICAgICAgIC8vIHRoZSBub3JtYWwgZmxvdy4g
V2UgbWFrZSBhbiBleGNlcHRpb24gZm9yIG1hcnF1ZWVzLCBzaW5jZSB0aGVpciBiYXNlbGluZXMg
YXJlIG1lYW5pbmdsZXNzCisgICAgICAgIC8vICh0aGUgY29udGVudCBpbnNpZGUgdGhlbSBtb3Zl
cykuIFRoaXMgbWF0Y2hlcyBXaW5JRSBhcyB3ZWxsLCB3aGljaCBqdXN0IGJvdHRvbS1hbGlnbnMg
dGhlbS4KKyAgICAgICAgLy8gV2UgYWxzbyBnaXZlIHVwIG9uIGZpbmRpbmcgYSBiYXNlbGluZSBp
ZiB3ZSBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyLCBvciBpZiB3ZSBhcmUgc2Nyb2xsZWQKKyAg
ICAgICAgLy8gdmVydGljYWxseSAoZS5nLiwgYW4gb3ZlcmZsb3c6aGlkZGVuIGJsb2NrIHRoYXQg
aGFzIGhhZCBzY3JvbGxUb3AgbW92ZWQpLgorICAgICAgICBhdXRvIGlnbm9yZUJhc2VsaW5lID0g
WyZdIHsKKyAgICAgICAgICAgIENoZWNrZWRQdHIgc2Nyb2xsYWJsZUFyZWEgPSByZW5kZXJlci0+
bGF5ZXIoKSA/IHJlbmRlcmVyLT5sYXllcigpLT5zY3JvbGxhYmxlQXJlYSgpIDogbnVsbHB0cjsK
KyAgICAgICAgICAgIGlmICghc2Nyb2xsYWJsZUFyZWEpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEtPm1hcnF1ZWUoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgaWYgKHdyaXRpbmdNb2Rl
LmlzSG9yaXpvbnRhbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzY3JvbGxhYmxlQXJlYS0+
dmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsT2Zmc2V0KCkueSgp
OworICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFy
KCkgfHwgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9mZnNldCgpLngoKTsKKyAgICAgICAgfTsKKwor
ICAgICAgICBpZiAoaWdub3JlQmFzZWxpbmUoKSkKKyAgICAgICAgICAgIHJldHVybiByb3VuZFRv
SW50KHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSk7CisKKyAg
ICAgICAgaWYgKGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZVBvc2l0aW9uID0gaW5saW5lQmxvY2tC
YXNlbGluZShyZW5kZXJCb3gpKQorICAgICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSArICpp
bmxpbmVCbG9ja0Jhc2VsaW5lUG9zaXRpb247CisgICAgfQorCisgICAgcmV0dXJuIHJvdW5kVG9J
bnQocmVuZGVyQm94Lm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKK30KKwor
c3RhdGljIGlubGluZSB2b2lkIHNldEludGVncmF0aW9uQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94
JiByZW5kZXJCb3gpCiB7CisgICAgaWYgKHJlbmRlckJveC5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGF1dG8gaGFzTm9uU3ludGhldGlj
QmFzZWxpbmUgPSBbJl0gewogICAgICAgICBpZiAoYXV0byogcmVuZGVyTGlzdE1hcmtlciA9IGR5
bmFtaWNEb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPihyZW5kZXJCb3gpKQogICAgICAgICAgICAg
cmV0dXJuICFyZW5kZXJMaXN0TWFya2VyLT5pc0ltYWdlKCk7CkBAIC0zMTUsMTEgKzY0Miw4IEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNvbnN0IFJlbmRlckJv
eCYgcmVuZGVyQm94LCBXcml0aW5nTW9kCiAgICAgICAgIHJldHVybiBoYXNBcHBhcmVhbmNlIHx8
ICFibG9ja0Zsb3ctPmNoaWxkcmVuSW5saW5lKCkgfHwgYmxvY2tGbG93LT5oYXNMaW5lcygpIHx8
IGJsb2NrRmxvdy0+aGFzTGluZUlmRW1wdHkoKTsKICAgICB9OwogCi0gICAgaWYgKCFoYXNOb25T
eW50aGV0aWNCYXNlbGluZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGJhc2VsaW5l
ID0gcmVuZGVyQm94LmJhc2VsaW5lUG9zaXRpb24oZmFsc2UgLyogZmlyc3RMaW5lICovLCB3cml0
aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQ
b3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpOwotICAgIGNvbnN0X2Nhc3Q8TGF5b3V0OjpFbGVtZW50
Qm94Jj4oKnJlbmRlckJveC5sYXlvdXRCb3goKSkuc2V0QmFzZWxpbmVGb3JJbnRlZ3JhdGlvbihi
YXNlbGluZSk7CisgICAgaWYgKGhhc05vblN5bnRoZXRpY0Jhc2VsaW5lKCkpCisgICAgICAgIGNv
bnN0X2Nhc3Q8TGF5b3V0OjpFbGVtZW50Qm94Jj4oKnJlbmRlckJveC5sYXlvdXRCb3goKSkuc2V0
QmFzZWxpbmVGb3JJbnRlZ3JhdGlvbihiYXNlbGluZVBvc2l0aW9uKHJlbmRlckJveCkpOwogfQog
CiB2b2lkIEJveEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlTGF5b3V0Qm94RGltZW5zaW9ucyhjb25z
dCBSZW5kZXJCb3gmIHJlbmRlckJveCwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFi
bGVXaWR0aCwgc3RkOjpvcHRpb25hbDxMYXlvdXQ6OkludHJpbnNpY1dpZHRoTW9kZT4gaW50cmlu
c2ljV2lkdGhNb2RlKQpAQCAtNDg3LDcgKzgxMSw3IEBAIHZvaWQgQm94R2VvbWV0cnlVcGRhdGVy
Ojp1cGRhdGVCb3hHZW9tZXRyeUFmdGVySW50ZWdyYXRpb25MYXlvdXQoY29uc3QgTGF5b3V0OjpF
CiAKICAgICBhdXRvIGludGVncmF0aW9uQWRqdXN0bWVudHMgPSBbJl0gewogICAgICAgICAvLyBG
SVhNRTogVGhlc2Ugc2hvdWxkIGV2ZW50dWFsbHkgYmUgYWxsIGFic29yYmVkIGJ5IExGQyBsYXlv
dXQuCi0gICAgICAgIHNldEludGVncmF0aW9uQmFzZWxpbmUoKnJlbmRlckJveCwgd3JpdGluZ01v
ZGUoKSk7CisgICAgICAgIHNldEludGVncmF0aW9uQmFzZWxpbmUoKnJlbmRlckJveCk7CiAKICAg
ICAgICAgaWYgKGF1dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVy
TGlzdE1hcmtlcj4oKnJlbmRlckJveCkpIHsKICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gbGF5
b3V0Qm94LnBhcmVudCgpLnN0eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcAppbmRleCAxMmI4NTZlY2ViMTcuLmI2OTE3OTZkY2Vl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRp
b24uY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIExheW91dFJlY3QgY29tcHV0ZUNhcmV0
UmVjdEZvckVtcHR5RWxlbWVudChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgcmUKICAgICB9
CiAgICAgeCA9IHN0ZDo6bWluKHgsIHN0ZDo6bWF4PExheW91dFVuaXQ+KG1heFggLSBjYXJldFdp
ZHRoKCksIDApKTsKIAotICAgIGF1dG8gbGluZUhlaWdodCA9IHJlbmRlcmVyLmxpbmVIZWlnaHQo
dHJ1ZSwgd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRp
Y2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKKyAgICBhdXRvIGxpbmVIZWln
aHQgPSBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGN1cnJlbnRTdHlsZS5jb21wdXRlZExpbmVI
ZWlnaHQoKSk7CiAgICAgYXV0byBoZWlnaHQgPSBzdGQ6Om1pbihsaW5lSGVpZ2h0LCBMYXlvdXRV
bml0IHsgY3VycmVudFN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCkuaGVpZ2h0KCkgfSk7CiAg
ICAgYXV0byB5ID0gcmVuZGVyZXIuYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgKGxpbmVIZWln
aHQgPiBoZWlnaHQgPyAobGluZUhlaWdodCAtIGhlaWdodCkgLyAyIDogTGF5b3V0VW5pdCB7IH0p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKaW5k
ZXggMmI3YTQxNmQ4MzZlLi40OWVhMDMzZjA1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKQEAgLTU3Niw3ICs1NzYsNyBAQCB2b2lkIExlZ2Fj
eUxpbmVMYXlvdXQ6OmxheW91dExpbmVCb3hlcygpCiAgICAgfQogCiAgICAgaWYgKCFsZWdhY3lS
b290Qm94KCkgJiYgbV9mbG93Lmhhc0xpbmVJZkVtcHR5KCkpCi0gICAgICAgIG1fZmxvdy5zZXRM
b2dpY2FsSGVpZ2h0KG1fZmxvdy5sb2dpY2FsSGVpZ2h0KCkgKyBtX2Zsb3cubGluZUhlaWdodCh0
cnVlLCBtX2Zsb3cuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDog
VmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpKTsKKyAgICAgICAgbV9m
bG93LnNldExvZ2ljYWxIZWlnaHQobV9mbG93LmxvZ2ljYWxIZWlnaHQoKSArIG1fZmxvdy5saW5l
SGVpZ2h0KCkpOwogfQogCiB2b2lkIExlZ2FjeUxpbmVMYXlvdXQ6OmFkZE92ZXJmbG93RnJvbUlu
bGluZUNoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJBdHRhY2htZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2ht
ZW50LmNwcAppbmRleCA3YzAwMDFkNWJmYmQuLjczZGZhNzM0YzQzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcApAQCAtMTAzLDIwICsxMDMsNiBA
QCB2b2lkIFJlbmRlckF0dGFjaG1lbnQ6OmxheW91dCgpCiAgICAgICAgIGxheW91dFNoYWRvd0Nv
bnRlbnQobmV3SW50cmluc2ljU2l6ZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQXR0YWNobWVu
dDo6YmFzZWxpbmVQb3NpdGlvbihib29sLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSkgY29uc3QKLXsKLSAgICBpZiAoYXV0byogYmFzZWxpbmVFbGVtZW50ID0gYXR0YWNobWVu
dEVsZW1lbnQoKS53aWRlTGF5b3V0SW1hZ2VFbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKGF1dG8q
IGJhc2VsaW5lRWxlbWVudFJlbmRlckJveCA9IGJhc2VsaW5lRWxlbWVudC0+cmVuZGVyQm94KCkp
IHsKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGJvdHRvbSBvZiB0aGUgaW1hZ2UgYXNzdW1p
bmcgaXQgaXMgdmVydGljYWxseSBjZW50ZXJlZC4KLSAgICAgICAgICAgIHJldHVybiAoaGVpZ2h0
KCkgKyBiYXNlbGluZUVsZW1lbnRSZW5kZXJCb3gtPmhlaWdodCgpKSAvIDI7Ci0gICAgICAgIH0K
LSAgICAgICAgLy8gRmFsbGJhY2sgdG8gdGhlIGJvdHRvbSBvZiB0aGUgYXR0YWNobWVudCBpZiB0
aGVyZSBpcyBubyBpbWFnZS4KLSAgICAgICAgcmV0dXJuIGhlaWdodCgpOwotICAgIH0KLQotICAg
IHJldHVybiB0aGVtZSgpLmF0dGFjaG1lbnRCYXNlbGluZSgqdGhpcyk7Ci19Ci0KIGJvb2wgUmVu
ZGVyQXR0YWNobWVudDo6c2hvdWxkRHJhd0JvcmRlcigpIGNvbnN0CiB7CiAgICAgaWYgKHN0eWxl
KCkudXNlZEFwcGVhcmFuY2UoKSA9PSBTdHlsZUFwcGVhcmFuY2U6OkJvcmRlcmxlc3NBdHRhY2ht
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmgKaW5kZXgg
ZTRjNTJlN2I5YTY4Li4wNWVkYTcwOWQ0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckF0dGFjaG1lbnQuaApAQCAtNjQsOCArNjQsNiBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBsYXlvdXQoKSBvdmVycmlkZTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihi
b29sLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7
Ci0KICAgICBMYXlvdXRVbml0IG1fbWluaW11bUludHJpbnNpY1dpZHRoOwogICAgIGJvb2wgbV9z
aG91bGREcmF3Qm9yZGVyIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9oYXNTaGFkb3dDb250cm9scyB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAy
NDMxOTdiZGU4ZDQuLjQ1OWUwNTdmNzNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC0yNDczLDc3ICsyNDczLDYgQEAgYm9vbCBSZW5kZXJCbG9jazo6aGFz
TGluZUlmRW1wdHkoKSBjb25zdAogICAgIHJldHVybiBlbGVtZW50ICYmIGVsZW1lbnQtPmlzUm9v
dEVkaXRhYmxlRWxlbWVudCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3Np
dGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICAvLyBJbmxpbmUgYmxvY2tz
IGFyZSByZXBsYWNlZCBlbGVtZW50cy4gT3RoZXJ3aXNlLCBqdXN0IHBhc3Mgb2ZmIHRvCi0gICAg
Ly8gdGhlIGJhc2UgY2xhc3MuICBJZiB3ZSdyZSBiZWluZyBxdWVyaWVkIGFzIHRob3VnaCB3ZSdy
ZSB0aGUgcm9vdCBsaW5lCi0gICAgLy8gYm94LCB0aGVuIHRoZSBmYWN0IHRoYXQgd2UncmUgYW4g
aW5saW5lLWJsb2NrIGlzIGlycmVsZXZhbnQsIGFuZCB3ZSBiZWhhdmUKLSAgICAvLyBqdXN0IGxp
a2UgYSBibG9jay4KLSAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lubGluZSgp
ICYmIGxpbmVQb3NpdGlvbk1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKQotICAgICAg
ICByZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5l
UG9zaXRpb25Nb2RlKTsKLQotICAgIGF1dG8mIGxpbmVTdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0
TGluZVN0eWxlKCkgOiBzdHlsZSgpOwotICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRD
ZWlsKGxpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7Ci19Ci0KLUxheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAot
ewotICAgIC8vIElubGluZSBibG9ja3MgYXJlIHJlcGxhY2VkIGVsZW1lbnRzLiBPdGhlcndpc2Us
IGp1c3QgcGFzcyBvZmYgdG8KLSAgICAvLyB0aGUgYmFzZSBjbGFzcy4gIElmIHdlJ3JlIGJlaW5n
IHF1ZXJpZWQgYXMgdGhvdWdoIHdlJ3JlIHRoZSByb290IGxpbmUKLSAgICAvLyBib3gsIHRoZW4g
dGhlIGZhY3QgdGhhdCB3ZSdyZSBhbiBpbmxpbmUtYmxvY2sgaXMgaXJyZWxldmFudCwgYW5kIHdl
IGJlaGF2ZQotICAgIC8vIGp1c3QgbGlrZSBhIGJsb2NrLgotICAgIGlmIChpc0Jsb2NrTGV2ZWxS
ZXBsYWNlZE9yQXRvbWljSW5saW5lKCkgJiYgbGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9u
Q29udGFpbmluZ0xpbmUpIHsKLSAgICAgICAgLy8gRm9yICJsZWFmIiB0aGVtZSBvYmplY3RzLCBs
ZXQgdGhlIHRoZW1lIGRlY2lkZSB3aGF0IHRoZSBiYXNlbGluZSBwb3NpdGlvbiBpcy4KLSAgICAg
ICAgLy8gRklYTUU6IE1pZ2h0IGJlIGJldHRlciB0byBoYXZlIGEgY3VzdG9tIENTUyBwcm9wZXJ0
eSBpbnN0ZWFkLCBzbyB0aGF0IGlmIHRoZSB0aGVtZQotICAgICAgICAvLyBpcyB0dXJuZWQgb2Zm
LCBjaGVja2JveGVzL3JhZGlvcyB3aWxsIHN0aWxsIGhhdmUgZGVjZW50IGJhc2VsaW5lcy4KLSAg
ICAgICAgLy8gRklYTUU6IE5lZWQgdG8gcGF0Y2ggZm9ybSBjb250cm9scyB0byBkZWFsIHdpdGgg
dmVydGljYWwgbGluZXMuCi0gICAgICAgIGlmIChzdHlsZSgpLmhhc1VzZWRBcHBlYXJhbmNlKCkg
JiYgIXRoZW1lKCkuaXNDb250cm9sQ29udGFpbmVyKHN0eWxlKCkudXNlZEFwcGVhcmFuY2UoKSkp
Ci0gICAgICAgICAgICByZXR1cm4gdGhlbWUoKS5iYXNlbGluZVBvc2l0aW9uKCp0aGlzKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAvLyBDU1MyLjEgc3RhdGVzIHRoYXQgdGhlIGJhc2VsaW5lIG9m
IGFuIGlubGluZSBibG9jayBpcyB0aGUgYmFzZWxpbmUgb2YgdGhlIGxhc3QgbGluZSBib3ggaW4K
LSAgICAgICAgLy8gdGhlIG5vcm1hbCBmbG93LiAgV2UgbWFrZSBhbiBleGNlcHRpb24gZm9yIG1h
cnF1ZWVzLCBzaW5jZSB0aGVpciBiYXNlbGluZXMgYXJlIG1lYW5pbmdsZXNzCi0gICAgICAgIC8v
ICh0aGUgY29udGVudCBpbnNpZGUgdGhlbSBtb3ZlcykuICBUaGlzIG1hdGNoZXMgV2luSUUgYXMg
d2VsbCwgd2hpY2gganVzdCBib3R0b20tYWxpZ25zIHRoZW0uCi0gICAgICAgIC8vIFdlIGFsc28g
Z2l2ZSB1cCBvbiBmaW5kaW5nIGEgYmFzZWxpbmUgaWYgd2UgaGF2ZSBhIHZlcnRpY2FsIHNjcm9s
bGJhciwgb3IgaWYgd2UgYXJlIHNjcm9sbGVkCi0gICAgICAgIC8vIHZlcnRpY2FsbHkgKGUuZy4s
IGFuIG92ZXJmbG93OmhpZGRlbiBibG9jayB0aGF0IGhhcyBoYWQgc2Nyb2xsVG9wIG1vdmVkKS4K
LSAgICAgICAgYXV0byBpZ25vcmVCYXNlbGluZSA9IFt0aGlzLCBkaXJlY3Rpb25dKCkgLT4gYm9v
bCB7Ci0gICAgICAgICAgICBpZiAoaXNXcml0aW5nTW9kZVJvb3QoKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICAgICAgQ2hlY2tlZFB0ciBzY3JvbGxhYmxlQXJlYSA9
IGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxhYmxlQXJlYSgpIDogbnVsbHB0cjsKLSAgICAgICAg
ICAgIGlmICghc2Nyb2xsYWJsZUFyZWEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEtPm1hcnF1ZWUoKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBIb3Jpem9u
dGFsTGluZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2Fs
U2Nyb2xsYmFyKCkgfHwgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9mZnNldCgpLnkoKTsKLSAgICAg
ICAgICAgIHJldHVybiBzY3JvbGxhYmxlQXJlYS0+aG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHNj
cm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKS54KCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAg
YXV0byBiYXNlbGluZVBvcyA9IGlnbm9yZUJhc2VsaW5lKCkgPyBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+KCkgOiBpbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7Ci0gICAgICAgIAotICAg
ICAgICBpZiAoaXNSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3goKSkgewotICAgICAgICAgICAg
Ly8gSGlzdG9yaWNhbGx5LCB3ZSBkaWQgdGhpcyBjaGVjayBmb3IgYWxsIGJhc2VsaW5lcy4gQnV0
IHdlIGNhbid0Ci0gICAgICAgICAgICAvLyByZW1vdmUgdGhpcyBjb2RlIGZyb20gZGVwcmVjYXRl
ZCBmbGV4Ym94LCBiZWNhdXNlIGl0IGVmZmVjdGl2ZWx5Ci0gICAgICAgICAgICAvLyBicmVha3Mg
LXdlYmtpdC1saW5lLWNsYW1wLCB3aGljaCBpcyB1c2VkIGluIHRoZSB3aWxkIC0tIHdlIHdvdWxk
Ci0gICAgICAgICAgICAvLyBjYWxjdWxhdGUgdGhlIGJhc2VsaW5lIGFzIGlmIC13ZWJraXQtbGlu
ZS1jbGFtcCB3YXNuJ3QgdXNlZC4KLSAgICAgICAgICAgIC8vIEZvciBzaW1wbGljaXR5LCB3ZSB1
c2UgdGhpcyBmb3IgYWxsIHVzZXMgb2YgZGVwcmVjYXRlZCBmbGV4Ym94LgotICAgICAgICAgICAg
TGF5b3V0VW5pdCBib3R0b21PZkNvbnRlbnQgPSBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUg
PyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSArIGNvbnRlbnRCb3hIZWlnaHQoKSA6IGJvcmRl
clJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSArIGNvbnRlbnRCb3hXaWR0aCgpOwotICAgICAgICAg
ICAgaWYgKGJhc2VsaW5lUG9zICYmIGJhc2VsaW5lUG9zLnZhbHVlKCkgPiBib3R0b21PZkNvbnRl
bnQpCi0gICAgICAgICAgICAgICAgYmFzZWxpbmVQb3MgPSBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+KCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGJhc2VsaW5lUG9zKQotICAgICAgICAgICAg
cmV0dXJuIGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpICsgYmFzZWxp
bmVQb3MudmFsdWUoKSA6IG1hcmdpblJpZ2h0KCkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwotCi0g
ICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJl
Y3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOwotICAgIH0KLQotICAgIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkgOiB0aGlzLT5zdHlsZSgpOwot
ICAgIGNvbnN0IEZvbnRNZXRyaWNzJiBmb250TWV0cmljcyA9IHN0eWxlLm1ldHJpY3NPZlByaW1h
cnlGb250KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBmb250TWV0cmljcy5pbnRBc2NlbnQo
KSArIChsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSAt
IGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIgfS50b0ludCgpOwotfQotCiBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7
CiAgICAgaWYgKHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKQEAgLTI1NzgsMzYgKzI1
MDcsNiBAQCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJsb2NrOjpsYXN0TGluZUJh
c2VsaW5lKCkgY29uc3QKICAgICByZXR1cm4geyB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2Rl
IGxpbmVEaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKHNob3VsZEFwcGx5TGF5b3V0Q29udGFp
bm1lbnQoKSkgewotICAgICAgICBpZiAoaXNJbmxpbmUoKSkKLSAgICAgICAgICAgIHJldHVybiBz
eW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5bGUoKSwgbGluZURpcmVjdGlvbiwg
Qm9yZGVyQm94KSArIChsaW5lRGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luQm90
dG9tKCkgOiBtYXJnaW5MZWZ0KCkpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLQotICAg
IGlmIChpc1dyaXRpbmdNb2RlUm9vdCgpKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgYm9v
bCBoYXZlTm9ybWFsRmxvd0NoaWxkID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvKiBib3ggPSBsYXN0
Q2hpbGRCb3goKTsgYm94OyBib3ggPSBib3gtPnByZXZpb3VzU2libGluZ0JveCgpKSB7Ci0gICAg
ICAgIGlmIChib3gtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICBoYXZlTm9ybWFsRmxvd0NoaWxkID0gdHJ1ZTsKLSAgICAg
ICAgaWYgKGF1dG8gcmVzdWx0ID0gYm94LT5pbmxpbmVCbG9ja0Jhc2VsaW5lKGxpbmVEaXJlY3Rp
b24pKQotICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyAoYm94LT5sb2dpY2FsVG9wKCkg
KyByZXN1bHQudmFsdWUoKSkudG9JbnQoKSB9OyAvLyBUcmFuc2xhdGUgdG8gb3VyIGNvb3JkaW5h
dGUgc3BhY2UuCi0gICAgfQotCi0gICAgaWYgKCFoYXZlTm9ybWFsRmxvd0NoaWxkICYmIGhhc0xp
bmVJZkVtcHR5KCkpIHsKLSAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBmaXJzdExpbmVTdHls
ZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsg
TGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQoKQotICAgICAgICAgICAgKyAobGluZUhl
aWdodCh0cnVlLCBsaW5lRGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpIC0g
Zm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMgotICAgICAgICAgICAgKyAobGluZURpcmVjdGlv
biA9PSBIb3Jpem9udGFsTGluZSA/IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpIDogYm9yZGVy
UmlnaHQoKSArIHBhZGRpbmdSaWdodCgpKSkudG9JbnQoKSB9OwotICAgIH0KLQotICAgIHJldHVy
biB7IH07Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlbmRlckJsb2NrRmxvd09yUmVuZGVy
QnV0dG9uKFJlbmRlckVsZW1lbnQmIHJlbmRlckVsZW1lbnQpCiB7CiAgICAgLy8gV2UgaW5jbHVk
ZSBpc1JlbmRlckJ1dHRvbiBpbiB0aGlzIGNoZWNrIGJlY2F1c2UgYnV0dG9ucyBhcmUgaW1wbGVt
ZW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggMjFkM2Y3NmY0
YzA3Li40NDAwNWYxZDM5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
CkBAIC02NSwxMCArNjUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyQmxvY2soVHlwZSwgRG9j
dW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBPcHRpb25TZXQ8VHlwZUZsYWc+LCBUeXBlU3BlY2lmaWNG
bGFncyA9IHsgfSk7CiAKIHB1YmxpYzoKLSAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBv
dmVycmlkZGVuIGZvciBpbmxpbmUtYmxvY2suCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0
aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICAv
LyBGSVhNRS1CTE9DS0ZMT1c6IFJlbW92ZSB2aXJ0dWFsaXphaW9uIHdoZW4gYWxsIGNhbGxlcnMg
aGF2ZSBtb3ZlZCB0byBSZW5kZXJCbG9ja0Zsb3cKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlTGlu
ZXMoKTsKIApAQCAtMjg5LDcgKzI4NSw2IEBAIHByb3RlY3RlZDoKICAgICAKICAgICBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5l
KExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIERlbGF5IHVwZGF0
aW5nIHNjcm9sbGJhcnMgdW50aWwgZW5kQW5kQ29tbWl0VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5
b3V0VHJhbnNhY3Rpb24oKSBpcyBjYWxsZWQuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZAogICAg
IC8vIHdoZW4gYSBmbGV4Ym94IGlzIGxheWluZyBvdXQgaXRzIGRlc2NlbmRhbnRzLiBJZiBtdWx0
aXBsZSBjYWxscyBhcmUgbWFkZSB0byBiZWdpblVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRy
YW5zYWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKaW5kZXggNjJiODg2NmE5MzhkLi4zZmFmMGY0M2UyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC00NjgsNyArNDY4LDcgQEAgdm9pZCBS
ZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrV2l0aE5vQ2hpbGRyZW4oKQogICAgICAgICAgICAg
c2V0SGFzTWFyZ2luQmVmb3JlUXVpcmsoc3R5bGUubWFyZ2luQmVmb3JlKCkuaGFzUXVpcmsoKSk7
CiAgICAgICAgICAgICBzZXRIYXNNYXJnaW5BZnRlclF1aXJrKHN0eWxlLm1hcmdpbkFmdGVyKCku
aGFzUXVpcmsoKSk7CiAgICAgICAgIH0KLSAgICAgICAgc2V0TG9naWNhbEhlaWdodChib3JkZXJB
bmRQYWRkaW5nTG9naWNhbEhlaWdodCgpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpICsgKGhh
c0xpbmVJZkVtcHR5KCkgPyBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGlu
ZUJveGVzKSA6IDBfbHUpKTsKKyAgICAgICAgc2V0TG9naWNhbEhlaWdodChib3JkZXJBbmRQYWRk
aW5nTG9naWNhbEhlaWdodCgpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpICsgKGhhc0xpbmVJ
ZkVtcHR5KCkgPyBsaW5lSGVpZ2h0KCkgOiAwX2x1KSk7CiAgICAgICAgIHVwZGF0ZUxvZ2ljYWxI
ZWlnaHQoKTsKICAgICB9OwogICAgIGNvbXB1dGVCbG9ja0F4aXNTaXplKCk7CkBAIC03ODAsNyAr
NzgwLDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEluRmxvd0NoaWxkcmVuKFJlbGF5
b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbiwgTGEKIAogICAgICAgICBhdXRvIGxvZ2ljYWxI
ZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpICsgc2Nyb2xsYmFyTG9naWNh
bEhlaWdodCgpOwogICAgICAgICBpZiAoaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgICAgIGxv
Z2ljYWxIZWlnaHQgKz0gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVC
b3hlcyk7CisgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IGxpbmVIZWlnaHQoKTsKICAgICAg
ICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KTsKIAogICAgICAgICByZXBhaW50TG9n
aWNhbFRvcCA9IHsgfTsKQEAgLTI3NDksNyArMjc0OSw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93
OjphZGp1c3RJbml0aWFsTGV0dGVyUG9zaXRpb24oUmVuZGVyQm94JiBjaGlsZEJveCwgTGF5b3V0
VW5pCiAgICAgaWYgKCFmb250TWV0cmljcy5jYXBIZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRp
b25PZkludGVyaW9yTGluZUJveGVzKTsKKyAgICBMYXlvdXRVbml0IGhlaWdodE9mTGluZSA9IGxp
bmVIZWlnaHQoKTsKICAgICBMYXlvdXRVbml0IGJlZm9yZU1hcmdpbkJvcmRlclBhZGRpbmcgPSBj
aGlsZEJveC5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBjaGlsZEJveC5tYXJnaW5CZWZvcmUo
KTsKICAgICAKICAgICAvLyBNYWtlIGFuIGFkanVzdG1lbnQgdG8gYWxpZ24gd2l0aCB0aGUgY2Fw
IGhlaWdodCBvZiBhIHRoZW9yZXRpY2FsIGJsb2NrIGxpbmUuCkBAIC0zMjk1LDY5ICszMjk1LDYg
QEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9ja0Zsb3c6Omxhc3RMaW5lQmFz
ZWxpbmUoKSBjb25zdAogICAgIHJldHVybiB7IH07CiB9CiAKLXN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyQmxvY2tGbG93OjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25N
b2RlIGxpbmVEaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGlzV3JpdGluZ01vZGVSb290KCkp
Ci0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBpZiAoc2hvdWxkQXBwbHlMYXlvdXRDb250YWlu
bWVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFzZWxpbmUo
bGluZURpcmVjdGlvbik7Ci0KLSAgICBSZWZQdHIgZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKTsK
LSAgICBib29sIGlzSFRNTEZvcm1Db250cm9sRWxlbWVudCA9IGVsZW1lbnQgJiYgZWxlbWVudC0+
aXNGb3JtQ29udHJvbEVsZW1lbnQoKTsKLSAgICBpZiAoc3R5bGUoKS5kaXNwbGF5KCkgPT0gRGlz
cGxheVR5cGU6OklubGluZUJsb2NrKSB7Ci0gICAgICAgIC8vIFRoZSBiYXNlbGluZSBvZiBhbiAn
aW5saW5lLWJsb2NrJyBpcyB0aGUgYmFzZWxpbmUgb2YgaXRzIGxhc3QgbGluZSBib3ggaW4gdGhl
IG5vcm1hbCBmbG93LCB1bmxlc3MgaXQgaGFzIGVpdGhlciBubyBpbi1mbG93IGxpbmUgYm94ZXMg
b3IgaWYgaXRzICdvdmVyZmxvdycKLSAgICAgICAgLy8gcHJvcGVydHkgaGFzIGEgY29tcHV0ZWQg
dmFsdWUgb3RoZXIgdGhhbiAndmlzaWJsZScuIHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvQ1NT
MjIvdmlzdWRldC5odG1sCi0gICAgICAgIGF1dG8gc2hvdWxkU3ludGhlc2l6ZUJhc2VsaW5lID0g
IXN0eWxlKCkuaXNPdmVyZmxvd1Zpc2libGUoKSAmJiAhaXNIVE1MRm9ybUNvbnRyb2xFbGVtZW50
ICYmICFpc1JlbmRlclRleHRDb250cm9sSW5uZXJCbG9jaygpOwotICAgICAgICBpZiAoc2hvdWxk
U3ludGhlc2l6ZUJhc2VsaW5lKQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAg
Ly8gTm90ZSB0aGF0IGhlcmUgd2Ugb25seSB0YWtlIHRoZSBsZWZ0IGFuZCBib3R0b20gaW50byBj
b25zaWRlcmF0aW9uLiBPdXIgY2FsbGVyIHRha2VzIHRoZSByaWdodCBhbmQgdG9wIGludG8gY29u
c2lkZXJhdGlvbi4KLSAgICBhdXRvIGJveEhlaWdodCA9IHN5bnRoZXNpemVkQmFzZWxpbmUoKnRo
aXMsICpwYXJlbnRTdHlsZSgpLCBsaW5lRGlyZWN0aW9uLCBCb3JkZXJCb3gpICsgKGxpbmVEaXJl
Y3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBtX21hcmdpbkJveC5ib3R0b20oKSA6IG1fbWFyZ2lu
Qm94LmxlZnQoKSk7Ci0gICAgTGF5b3V0VW5pdCBsYXN0QmFzZWxpbmU7Ci0gICAgaWYgKCFjaGls
ZHJlbklubGluZSgpKSB7Ci0gICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IFJlbmRl
ckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKGxpbmVEaXJlY3Rpb24pOwotICAgICAgICBpZiAo
IWlubGluZUJsb2NrQmFzZWxpbmUpCi0gICAgICAgICAgICByZXR1cm4gaW5saW5lQmxvY2tCYXNl
bGluZTsKLSAgICAgICAgbGFzdEJhc2VsaW5lID0gaW5saW5lQmxvY2tCYXNlbGluZS52YWx1ZSgp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghaGFzTGluZXMoKSkgewotICAgICAgICAgICAg
aWYgKCFoYXNMaW5lSWZFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0gICAgICAgICAgICBjb25zdCBhdXRvJiBmb250TWV0cmljcyA9IGZpcnN0TGluZVN0eWxl
KCkubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0
IHsgTGF5b3V0VW5pdChmb250TWV0cmljcy5pbnRBc2NlbnQoKQotICAgICAgICAgICAgICAgICsg
KGxpbmVIZWlnaHQodHJ1ZSwgbGluZURpcmVjdGlvbiwgUG9zaXRpb25PZkludGVyaW9yTGluZUJv
eGVzKSAtIGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIKLSAgICAgICAgICAgICAgICArIChs
aW5lRGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9w
KCkgOiBib3JkZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpIH07Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAoc3ZnVGV4dExheW91dCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBz
dHlsZSA9IGZpcnN0TGluZVN0eWxlKCk7Ci0gICAgICAgICAgICAvLyBMZWdhY3lJbmxpbmVGbG93
Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbiB3aWxsIGZsaXAgbGluZXMgaW4gY2FzZSBv
ZiB2ZXJ0aWNhbExSIG1vZGUsIHNvIHdlIGNhbiBhc3N1bWUgdmVydGljYWxSTCBmb3Igbm93Lgot
ICAgICAgICAgICAgbGFzdEJhc2VsaW5lID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKS5p
bnRBc2NlbnQobGVnYWN5Um9vdEJveCgpLT5iYXNlbGluZVR5cGUoKSkKLSAgICAgICAgICAgICAg
ICArIChzdHlsZS53cml0aW5nTW9kZSgpLmlzTGluZUludmVydGVkKCkgPyBsb2dpY2FsSGVpZ2h0
KCkgLSBsZWdhY3lSb290Qm94KCktPmxvZ2ljYWxCb3R0b20oKSA6IGxlZ2FjeVJvb3RCb3goKS0+
bG9naWNhbFRvcCgpKTsKLSAgICAgICAgfSBlbHNlIGlmIChpbmxpbmVMYXlvdXQoKSkKLSAgICAg
ICAgICAgIGxhc3RCYXNlbGluZSA9IGZsb29yVG9JbnQoaW5saW5lTGF5b3V0KCktPmxhc3RMaW5l
TG9naWNhbEJhc2VsaW5lKCkpOwotICAgIH0KLQotICAgIGlmIChzdHlsZSgpLm92ZXJmbG93WSgp
ID09IE92ZXJmbG93OjpWaXNpYmxlKQotICAgICAgICByZXR1cm4gbGFzdEJhc2VsaW5lOwotCi0g
ICAgLy8gV2hpbGUgY3NzLWFsaWduLTMgZGVmaW5lcyB0aGUgbGFzdCBiYXNlbGluZSBmb3JtIGJs
b2NrIGNvbnRhaW5lcnMgd2hpY2ggYXJlCi0gICAgLy8gc2Nyb2xsIGNvbnRhaW5lcnMgKHdpdGgg
YW4gaW5pdGlhbCBiYXNlbGluZS1zb3VyY2UgdmFsdWUpIGFzIHRoZSBibG9jay1lbmQgbWFyZ2lu
Ci0gICAgLy8gZWRnZSwgd2UgaW5zdGVhZCBtYWludGFpbiBvdXIgbGVnYWN5IGJlaGF2aW9yIGZv
ciBmb3JtIGNvbnRyb2xzIGFuZCBjb250ZW50Ci0gICAgLy8gaW5zaWRlIGZvcm0gY29udHJvbHMg
dG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eS4KLSAgICBhdXRvIGlzSW5Gb3JtQ29udHJvbCA9IFsm
XSB7Ci0gICAgICAgIGlmICghZWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgaWYgKFJlZlB0ciBzaGFkb3dIb3N0ID0gZWxlbWVudC0+c2hhZG93SG9zdCgpKQotICAg
ICAgICAgICAgcmV0dXJuIHNoYWRvd0hvc3QtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCk7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9OwotICAgIGlmIChpc0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQgfHwgaXNJbkZvcm1Db250cm9sKCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1pbihib3hIZWln
aHQsIGxhc3RCYXNlbGluZSk7Ci0gICAgcmV0dXJuIGJveEhlaWdodDsKLX0KLQogTGF5b3V0VW5p
dCBSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEVuY2xvc2luZ1RvcEZvclByZWNlZGluZ0Jsb2NrKExh
eW91dFVuaXQgdG9wKSBjb25zdAogewogICAgIGlmIChzZWxlY3Rpb25TdGF0ZSgpICE9IFJlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Okluc2lkZSAmJiBzZWxlY3Rpb25TdGF0ZSgpICE9IFJl
bmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OkVuZCkKQEAgLTQwNDUsNyArMzk4Miw3IEBAIHZv
aWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDb250ZW50KFJlbGF5b3V0Q2hpbGRyZW4g
cmVsYXlvdXRDaGlsZHJlbiwgTGF5CiAgICAgYXV0byBwYXJ0aWFsUmVwYWludFJlY3QgPSBsYXlv
dXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQubGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4gPT0g
UmVsYXlvdXRDaGlsZHJlbjo6WWVzID8gTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OkZv
cmNlRnVsbExheW91dDo6WWVzIDogTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OkZvcmNl
RnVsbExheW91dDo6Tm8pOwogCiAgICAgYXV0byBib3JkZXJCb3hCb3R0b20gPSBbJl0gewotICAg
ICAgICBhdXRvIGNvbnRlbnRIZWlnaHQgPSAhaGFzTGluZXMoKSAmJiBoYXNMaW5lSWZFbXB0eSgp
ID8gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRh
bExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykgOiBsYXlv
dXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY29udGVudExvZ2ljYWxIZWlnaHQoKTsKKyAg
ICAgICAgYXV0byBjb250ZW50SGVpZ2h0ID0gIWhhc0xpbmVzKCkgJiYgaGFzTGluZUlmRW1wdHko
KSA/IGxpbmVIZWlnaHQoKSA6IGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jb250
ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICByZXR1cm4gYm9yZGVyQW5kUGFkZGluZ0JlZm9y
ZSgpICsgY29udGVudEhlaWdodCArIGJvcmRlckFuZFBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFy
TG9naWNhbEhlaWdodCgpOwogICAgIH07CiAgICAgYXV0byBuZXdCb3JkZXJCb3hCb3R0b20gPSBi
b3JkZXJCb3hCb3R0b20oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuaAppbmRleCA0YzczOTEyMTFiYTUuLjhlNDBhMTQ2YTAyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaApAQCAtNDQ5LDcgKzQ0OSw2IEBAIHByb3RlY3Rl
ZDoKIAogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBj
b25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RMaW5lQmFz
ZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlu
bGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBzZXRDb21wdXRlZENvbHVtbkNvdW50QW5kV2lkdGgoaW50LCBMYXlvdXRVbml0KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA2ZDQzZjQ2M2Y2Yzcu
LmMzMTMwMmQyZmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAg
LTc5LDYgKzc5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllcklubGluZXMuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5b3V0U3Rh
dGUuaCIKKyNpbmNsdWRlICJSZW5kZXJMaXN0TWFya2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0
aE1MQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtbkZsb3cuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3RJbmxpbmVzLmgiCkBAIC00OTU4LDE4ICs0OTU5LDE1IEBAIGJvb2wgUmVu
ZGVyQm94Ojppc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSBjb25zdAogICAgICAgICB8fCBz
aG91bGRBcHBseVNpemVDb250YWlubWVudCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6
bGluZUhlaWdodChib29sIC8qZmlyc3RMaW5lKi8sIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlv
biwgTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykgY29uc3QKK0xheW91dFVu
aXQgUmVuZGVyQm94OjpsaW5lSGVpZ2h0KCkgY29uc3QKIHsKLSAgICBpZiAoaXNCbG9ja0xldmVs
UmVwbGFjZWRPckF0b21pY0lubGluZSgpKQotICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IEhv
cml6b250YWxMaW5lID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94
LmJvdHRvbSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5s
ZWZ0KCk7Ci0gICAgcmV0dXJuIDA7Ci19CisgICAgaWYgKGlzPFJlbmRlckJsb2NrPigqdGhpcykg
fHwgKGlzPFJlbmRlckxpc3RNYXJrZXI+KCp0aGlzKSAmJiAhZG93bmNhc3Q8UmVuZGVyTGlzdE1h
cmtlcj4oKnRoaXMpLmlzSW1hZ2UoKSkpCisgICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9t
RmxvYXRDZWlsKGZpcnN0TGluZVN0eWxlKCkuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogCi1MYXlv
dXRVbml0IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihib29sIC8qZmlyc3RMaW5lKi8sIExp
bmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlv
bk1vZGUqLykgY29uc3QKLXsKICAgICBpZiAoaXNCbG9ja0xldmVsUmVwbGFjZWRPckF0b21pY0lu
bGluZSgpKQotICAgICAgICByZXR1cm4gcm91bmRUb0ludChkaXJlY3Rpb24gPT0gSG9yaXpvbnRh
bExpbmUgPyBtX21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3guYm90dG9t
KCkgOiBtX21hcmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94LmxlZnQoKSk7
Ci0gICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUoKSArIGxvZ2ljYWxI
ZWlnaHQoKSArIG1hcmdpbkFmdGVyKCk7CisKKyAgICByZXR1cm4geyB9OwogfQogCiBSZW5kZXJM
YXllciogUmVuZGVyQm94OjplbmNsb3NpbmdGbG9hdFBhaW50aW5nTGF5ZXIoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGZhMzAwNjU4N2M3Mi4uMTk4NjkxYjI3
MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0yNDIsNiArMjQyLDgg
QEAgcHVibGljOgogICAgIExheW91dFVuaXQgbWFyZ2luU3RhcnQoKSBjb25zdCB7IHJldHVybiBt
YXJnaW5TdGFydCh3cml0aW5nTW9kZSgpKTsgfQogICAgIExheW91dFVuaXQgbWFyZ2luRW5kKCkg
Y29uc3QgeyByZXR1cm4gbWFyZ2luRW5kKHdyaXRpbmdNb2RlKCkpOyB9CiAKKyAgICBpbmxpbmUg
TGF5b3V0VW5pdCBtYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KFdyaXRpbmdNb2RlKSBjb25zdDsKKwog
ICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFdyaXRpbmdN
b2RlIHdyaXRpbmdNb2RlKSB7IG1fbWFyZ2luQm94LnNldEJlZm9yZSh2YWx1ZSwgd3JpdGluZ01v
ZGUpOyB9CiAgICAgdm9pZCBzZXRNYXJnaW5BZnRlcihMYXlvdXRVbml0IHZhbHVlLCBjb25zdCBX
cml0aW5nTW9kZSB3cml0aW5nTW9kZSkgeyBtX21hcmdpbkJveC5zZXRBZnRlcih2YWx1ZSwgd3Jp
dGluZ01vZGUpOyB9CiAgICAgdm9pZCBzZXRNYXJnaW5TdGFydChMYXlvdXRVbml0IHZhbHVlLCBj
b25zdCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgeyBtX21hcmdpbkJveC5zZXRTdGFydCh2YWx1
ZSwgd3JpdGluZ01vZGUpOyB9CkBAIC01MTgsNyArNTIwLDcgQEAgcHVibGljOgogICAgIAogICAg
IHZpcnR1YWwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNv
bnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QgeyByZXR1cm4geyB9OyB9Ci0gICAgdmlydHVhbCBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlv
bk1vZGUpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfSAvLyBSZXR1cm5zIGVtcHR5IGlmIHdlIHNob3Vs
ZCBza2lwIHRoaXMgYm94IHdoZW4gY29tcHV0aW5nIHRoZSBiYXNlbGluZSBvZiBhbiBpbmxpbmUt
YmxvY2suCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2Nr
QmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiB7IH07IH0gLy8gUmV0dXJucyBlbXB0eSBpZiB3ZSBz
aG91bGQgc2tpcCB0aGlzIGJveCB3aGVuIGNvbXB1dGluZyB0aGUgYmFzZWxpbmUgb2YgYW4gaW5s
aW5lLWJsb2NrLgogICAgIExheW91dFVuaXQgc3ludGhlc2l6ZUJhc2VsaW5lKEZvbnRCYXNlbGlu
ZSBiYXNlbGluZVR5cGUsIEJhc2VsaW5lU3ludGhlc2lzRWRnZSkgY29uc3Q7CiAKICAgICBib29s
IHNocmlua1RvQXZvaWRGbG9hdHMoKSBjb25zdDsKQEAgLTUyNiw4ICs1MjgsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVkKCkg
eyB9CiAgICAgCi0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5l
RGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KCkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IG9mZnNldExlZnQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBMYXlvdXRVbml0IG9mZnNldFRvcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveElubGluZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hJbmxpbmVzLmgKaW5kZXggNjUxNWY1NjBhNjRhLi42
ZWRlYjY2Y2NhYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveElubGlu
ZXMuaApAQCAtMjYsNiArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2lubGluZSBM
YXlvdXRVbml0IFJlbmRlckJveDo6bWFyZ2luQm94TG9naWNhbEhlaWdodChXcml0aW5nTW9kZSB3
cml0aW5nTW9kZSkgY29uc3QgeyByZXR1cm4gd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBt
X21hcmdpbkJveC50b3AoKSArIGhlaWdodCgpICsgbV9tYXJnaW5Cb3guYm90dG9tKCkgOiBtX21h
cmdpbkJveC5yaWdodCgpICsgd2lkdGgoKSArIG1fbWFyZ2luQm94LmxlZnQoKTsgfQogaW5saW5l
IExheW91dFNpemUgUmVuZGVyQm94Ojpib3JkZXJCb3hMb2dpY2FsU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIGxvZ2ljYWxTaXplKCk7IH0KIGlubGluZSBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y2xpZW50
Qm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3QoY2xpZW50TGVmdCgpLCBjbGllbnRU
b3AoKSwgY2xpZW50V2lkdGgoKSwgY2xpZW50SGVpZ2h0KCkpOyB9CiBpbmxpbmUgTGF5b3V0VW5p
dCBSZW5kZXJCb3g6OmNsaWVudExlZnQoKSBjb25zdCB7IHJldHVybiBib3JkZXJMZWZ0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5k
ZXggM2YyMzAzN2E2MjQyLi5kNzFiMzRmZTMwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0zMSw3ICszMSw2IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIC8vIE1vZGVzIGZvciBzb21lIG9mIHRoZSBsaW5lLXJlbGF0ZWQgZnVu
Y3Rpb25zLgotZW51bSBMaW5lUG9zaXRpb25Nb2RlIHsgUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
LCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMgfTsKIGVudW0gTGluZURpcmVjdGlvbk1vZGUg
eyBIb3Jpem9udGFsTGluZSwgVmVydGljYWxMaW5lIH07CiAKIGVudW0gY2xhc3MgQmxlZWRBdm9p
ZGFuY2UgOiB1aW50OF90IHsKQEAgLTE5NCwxMCArMTkzLDYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQoKSBj
b25zdDsKIAotICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byBkZXRlcm1pbmUgbGlu
ZSBoZWlnaHQgYW5kIGJhc2VsaW5lIHBvc2l0aW9uLgotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBs
aW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qg
PSAwOwotCiAgICAgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29v
cmRpbmF0ZXNNb2RlPiwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZv
aWQgc2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAppbmRleCAwMDY4M2M1OWIzNjYuLjI3MWI1
MzY5MDk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKQEAg
LTE2MSwyMiArMTYxLDYgQEAgTGF5b3V0UmVjdCBSZW5kZXJCdXR0b246OmNvbnRyb2xDbGlwUmVj
dChjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCkgY28KICAgICByZXR1cm4gTGF5
b3V0UmVjdChhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJvcmRlckxlZnQoKSwgYWRkaXRpb25hbE9m
ZnNldC55KCkgKyBib3JkZXJUb3AoKSwgd2lkdGgoKSAtIGJvcmRlckxlZnQoKSAtIGJvcmRlclJp
Z2h0KCksIGhlaWdodCgpIC0gYm9yZGVyVG9wKCkgLSBib3JkZXJCb3R0b20oKSk7CiB9CiAKLXN0
YXRpYyBMYXlvdXRVbml0IHN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVudEJveChjb25zdCBS
ZW5kZXJCb3gmIGJveCwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uKQotewotICAgIHJldHVy
biBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBib3guYm9yZGVyVG9wKCkgKyBib3gucGFk
ZGluZ1RvcCgpICsgYm94LmNvbnRlbnRCb3hIZWlnaHQoKSA6IGJveC5ib3JkZXJSaWdodCgpICsg
Ym94LnBhZGRpbmdSaWdodCgpICsgYm94LmNvbnRlbnRCb3hXaWR0aCgpOwotfQotCi1MYXlvdXRV
bml0IFJlbmRlckJ1dHRvbjo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIG1vZGUpIGNvbnN0Ci17Ci0g
ICAgaWYgKHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAgICAgICAgcmV0dXJuIFJl
bmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBt
b2RlKTsKLSAgICAvLyBXZSBjYW5ub3QgcmVseSBvbiBSZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxp
bmVQb3NpdGlvbigpIGJlY2F1c2Ugb2YgZmxleGJveGVzIGhhdmUgc29tZSBzcGVjaWFsIGJlaGF2
aW9yCi0gICAgLy8gcmVnYXJkaW5nIGJhc2VsaW5lcyB0aGF0IHNob3VsZG4ndCBhcHBseSB0byBi
dXR0b25zLgotICAgIExheW91dFVuaXQgYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpLnZh
bHVlX29yKHN5bnRoZXNpemVkQmFzZWxpbmVGcm9tQ29udGVudEJveCgqdGhpcywgZGlyZWN0aW9u
KSk7Ci0gICAgTGF5b3V0VW5pdCBtYXJnaW5Bc2NlbnQgPSBkaXJlY3Rpb24gPT0gSG9yaXpvbnRh
bExpbmUgPyBtYXJnaW5Ub3AoKSA6IG1hcmdpblJpZ2h0KCk7Ci0gICAgcmV0dXJuIGJhc2VsaW5l
ICsgbWFyZ2luQXNjZW50OwotfQotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgUmVu
ZGVyQnV0dG9uOjpsYXlvdXQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJ1dHRvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5oCmluZGV4IDg3Y2YzYWVmNGQwMy4uZjY4YjZmNGRmMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJ1dHRvbi5oCkBAIC02Niw4ICs2Niw2IEBAIHB1YmxpYzoKICAgICBSZW5k
ZXJCbG9jayogaW5uZXJSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5uZXIuZ2V0KCk7IH0K
ICAgICB2b2lkIHNldElubmVyUmVuZGVyZXIoUmVuZGVyQmxvY2smKTsKIAotICAgIExheW91dFVu
aXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExp
bmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRl
OwotCiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3guY3BwCmluZGV4IGFmODg2ZjVlMmViNS4uMzE5OGQ5ZTk0YmUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcApAQCAtNTEwLDcgKzUxMCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
OjpsYXlvdXRIb3Jpem9udGFsQm94KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDCiAgICAgICAg
IEFTU0VSVChjaGlsZEluZGV4ID09IGNoaWxkTGF5b3V0RGVsdGFzLnNpemUoKSk7CiAKICAgICAg
ICAgaWYgKCFpdGVyYXRvci5maXJzdCgpICYmIGhhc0xpbmVJZkVtcHR5KCkpCi0gICAgICAgICAg
ICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUsIHdyaXRpbmdNb2RlKCkuaXNI
b3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZklu
dGVyaW9yTGluZUJveGVzKSk7CisgICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5l
SGVpZ2h0KCkpOwogCiAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIHRvQWRkKTsKIApAQCAt
ODQ4LDcgKzg0OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRW
ZXJ0aWNhbEJveChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpCiAgICAgICAgIHlQb3MgPSBo
ZWlnaHQoKTsKIAogICAgICAgICBpZiAoIWl0ZXJhdG9yLmZpcnN0KCkgJiYgaGFzTGluZUlmRW1w
dHkoKSkKLSAgICAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwg
d3JpdGluZ01vZGUoKS5pc0hvcml6b250YWwoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxM
aW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpKTsKKyAgICAgICAgICAgIHNldEhlaWdo
dChoZWlnaHQoKSArIGxpbmVIZWlnaHQoKSk7CiAKICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgp
ICsgdG9BZGQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZp
bGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBmMDA4OTVjNGI3ZjQuLmY1ZDQzZjRkM2FlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuY3BwCkBAIC0yMDcsOCArMjA3LDggQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
cGFpbnRDb250cm9sKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2kKICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQoYmFzZWxpbmVQb3NpdGlvbih0cnVlLCBpc0hvcml6
b250YWxXcml0aW5nTW9kZSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlv
bk9uQ29udGFpbmluZ0xpbmUpKTsKKyAgICAgICAgICAgIC8vIEZpbGUgdXBsb2FkIGJ1dHRvbiBp
cyBkaXNwbGF5OiBub25lIChzZWUgOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbikuCisgICAgICAgICAg
ICByZXR1cm4gcm91bmRUb0ludChtYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KGNvbnRhaW5pbmdCbG9j
aygpLT53cml0aW5nTW9kZSgpKSk7CiAgICAgICAgIH0oKTsKIAogICAgICAgICBwYWludEluZm8u
Y29udGV4dCgpLnNldEZpbGxDb2xvcihzdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhD
b2xvckZpbHRlcihDU1NQcm9wZXJ0eUNvbG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCBmZDcyNDhjN2RjMjcuLmRkY2RmNmUwZTMw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
CkBAIC0yNjQsMTUgKzI2NCw2IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVDaGls
ZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoUmVuZGVyQm94JiBmbGV4Qm94Q2hpCiAgICAgUmVuZGVy
QmxvY2s6OmNvbXB1dGVDaGlsZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoZmxleEJveENoaWxkLCBt
aW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgsIG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwgTGlu
ZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAotewotICAg
IGF1dG8gYmFzZWxpbmUgPSBmaXJzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUp
Ci0gICAgICAgIHJldHVybiBzeW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5bGUo
KSwgZGlyZWN0aW9uLCBCb3JkZXJCb3gpICsgbWFyZ2luTG9naWNhbEhlaWdodCgpOwotCi0gICAg
cmV0dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyAoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8g
bWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpKS50b0ludCgpOwotfQotCiBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IFJlbmRlckZsZXhpYmxlQm94OjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0
CiB7CiAgICAgaWYgKChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc0ZsZXhJdGVtKCkpIHx8ICFt
X251bWJlck9mRmxleEl0ZW1zT25GaXJzdExpbmUgfHwgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlu
bWVudCgpKQpAQCAtMzIzLDExICszMTQsNiBAQCBzdGQ6Om9wdGlvbmFsIDxMYXlvdXRVbml0PiBS
ZW5kZXJGbGV4aWJsZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgcmV0dXJuIExh
eW91dFVuaXQgeyAoYmFzZWxpbmUudmFsdWUoKSArIGJhc2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxU
b3AoKSkudG9JbnQoKSB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckZs
ZXhpYmxlQm94OjppbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdAot
ewotICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZSgpOwotfQotCiBzdGF0aWMgY29uc3QgU3R5
bGVDb250ZW50QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yKCkK
IHsKICAgICAvLyBUaGUganVzdGlmeS1jb250ZW50IHByb3BlcnR5IGFwcGxpZXMgYWxvbmcgdGhl
IG1haW4gYXhpcywgYnV0IHNpbmNlCkBAIC0xMzQ2LDcgKzEzMzIsNyBAQCB2b2lkIFJlbmRlckZs
ZXhpYmxlQm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hp
bGRyZW4pCiAKICAgICBpZiAoYWxsSXRlbXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChoYXNM
aW5lSWZFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRvIG1pbkhlaWdodCA9IGJvcmRlckFuZFBh
ZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVy
aW9yTGluZUJveGVzKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgIGF1
dG8gbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIGxpbmVIZWln
aHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIGlmIChoZWlnaHQo
KSA8IG1pbkhlaWdodCkKICAgICAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KG1pbkhlaWdo
dCk7CiAgICAgICAgIH0KQEAgLTE0MjMsNyArMTQwOSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVC
b3g6OnBlcmZvcm1GbGV4TGF5b3V0KFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikK
ICAgICAgICAgLy8gYSBsaW5lIGJlY2F1c2UgYWxsIG91ciBjaGlsZHJlbiBtaWdodCBiZSBvdXQg
b2YgZmxvdyBwb3NpdGlvbmVkLgogICAgICAgICAvLyBJbnN0ZWFkIG9mIGp1c3QgY2hlY2tpbmcg
aWYgd2UgaGF2ZSBhIGxpbmUsIG1ha2Ugc3VyZSB0aGUgZmxleGJveAogICAgICAgICAvLyBoYXMg
YXQgbGVhc3QgYSBsaW5lJ3Mgd29ydGggb2YgaGVpZ2h0IHRvIGNvdmVyIHRoaXMgY2FzZS4KLSAg
ICAgICAgTGF5b3V0VW5pdCBtaW5IZWlnaHQgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdo
dCgpICsgbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpv
bnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykgKyBz
Y3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0g
Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIGxpbmVIZWlnaHQoKSArIHNjcm9sbGJh
ckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgaWYgKHNpemUoKS5oZWlnaHQoKSA8IG1pbkhlaWdo
dCkKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobWluSGVpZ2h0KTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmluZGV4IGU2OGNhZDIw
NzZlMy4uOTJjNTJmZTY4MzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmxleGlibGVCb3guaApAQCAtNTYsMTAgKzU2LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuRHJv
cEFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZvaWQgbGF5b3V0QmxvY2soUmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNh
bEhlaWdodCA9IDBfbHUpIGZpbmFsOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9u
KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRl
OwotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShMaW5l
RGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqKSBvdmVycmlkZTsKICAgICBib29s
IGhpdFRlc3RDaGlsZHJlbihjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBj
b25zdCBIaXRUZXN0TG9jYXRpb24mLCBjb25zdCBMYXlvdXRQb2ludCYgYWRqdXN0ZWRMb2NhdGlv
biwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAKaW5kZXggNDJlZTIyODlhNThiLi4xN2JlZGFhNTllOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lkIFJlbmRl
ckdyaWQ6OmxheW91dEdyaWQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQogICAg
ICAgICAvLyBHcmlkIGNvbnRhaW5lciBzaG91bGQgaGF2ZSB0aGUgbWluaW11bSBoZWlnaHQgb2Yg
YSBsaW5lIGlmIGl0J3MgZWRpdGFibGUuIFRoYXQgZG9lcyBub3QgYWZmZWN0IHRyYWNrIHNpemlu
ZyB0aG91Z2guCiAgICAgICAgIGlmIChoYXNMaW5lSWZFbXB0eSgpKSB7CiAgICAgICAgICAgICBM
YXlvdXRVbml0IG1pbkhlaWdodEZvckVtcHR5TGluZSA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2Fs
SGVpZ2h0KCkKLSAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9m
SW50ZXJpb3JMaW5lQm94ZXMpCisgICAgICAgICAgICAgICAgKyBsaW5lSGVpZ2h0KCkKICAgICAg
ICAgICAgICAgICArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIHNldExv
Z2ljYWxIZWlnaHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBtaW5IZWlnaHRGb3JFbXB0eUxp
bmUpKTsKICAgICAgICAgfQpAQCAtNjI2LDcgKzYyNiw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5
b3V0TWFzb25yeShSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgIC8v
IEdyaWQgY29udGFpbmVyIHNob3VsZCBoYXZlIHRoZSBtaW5pbXVtIGhlaWdodCBvZiBhIGxpbmUg
aWYgaXQncyBlZGl0YWJsZS4gVGhhdCBkb2VzIG5vdCBhZmZlY3QgdHJhY2sgc2l6aW5nIHRob3Vn
aC4KICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkpIHsKICAgICAgICAgICAgIExheW91dFVu
aXQgbWluSGVpZ2h0Rm9yRW1wdHlMaW5lID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQo
KQotICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlv
ckxpbmVCb3hlcykKKyAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQoKQogICAgICAgICAgICAg
ICAgICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgc2V0TG9naWNhbEhl
aWdodChzdGQ6Om1heChsb2dpY2FsSGVpZ2h0KCksIG1pbkhlaWdodEZvckVtcHR5TGluZSkpOwog
ICAgICAgICB9CkBAIC0yMDExLDE3ICsyMDExLDYgQEAgYm9vbCBSZW5kZXJHcmlkOjppc0Jhc2Vs
aW5lQWxpZ25tZW50Rm9yR3JpZEl0ZW0oY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFQK
ICAgICByZXR1cm4gaXNCYXNlbGluZVBvc2l0aW9uKGFsaWduKSAmJiAhaGFzQXV0b01hcmdpbnM7
CiB9CiAKLS8vIEZJWE1FOiBUaGlzIGxvZ2ljIGlzIHNoYXJlZCBieSBSZW5kZXJGbGV4aWJsZUJv
eCwgc28gaXQgbWlnaHQgYmUgcmVmYWN0b3JlZCBzb21laG93LgotTGF5b3V0VW5pdCBSZW5kZXJH
cmlkOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwg
TGluZVBvc2l0aW9uTW9kZSBtb2RlKSBjb25zdAotewotICAgIEFTU0VSVF9VTlVTRUQobW9kZSwg
bW9kZSA9PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpOwotICAgIGF1dG8gYmFzZWxpbmUgPSBm
aXJzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpCi0gICAgICAgIHJldHVybiBz
eW50aGVzaXplZEJhc2VsaW5lKCp0aGlzLCAqcGFyZW50U3R5bGUoKSwgZGlyZWN0aW9uLCBCb3Jk
ZXJCb3gpICsgbWFyZ2luTG9naWNhbEhlaWdodCgpOwotCi0gICAgcmV0dXJuIGJhc2VsaW5lLnZh
bHVlKCkgKyAoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJn
aW5SaWdodCgpKS50b0ludCgpOwotfQotCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRl
ckdyaWQ6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKIHsKICAgICBpZiAoKGlzV3JpdGluZ01v
ZGVSb290KCkgJiYgIWlzRmxleEl0ZW0oKSkgfHwgIWN1cnJlbnRHcmlkKCkuaGFzR3JpZEl0ZW1z
KCkgfHwgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKQpAQCAtMjA5MCwxMSArMjA3OSw2
IEBAIFNpbmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94PiBSZW5kZXJHcmlkOjpnZXRCYXNlbGlu
ZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnCiAgICAgcmV0dXJuIGJhc2VsaW5lR3JpZEl0ZW07
CiB9CiAKLXN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyR3JpZDo6aW5saW5lQmxvY2tC
YXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QKLXsKLSAgICByZXR1cm4gZmlyc3RMaW5l
QmFzZWxpbmUoKTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpjb2x1bW5BeGlzQmFzZWxp
bmVPZmZzZXRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtKSBjb25zdAogewog
ICAgIC8vIEZJWE1FIDogQ1NTIE1hc29ucnkgZG9lcyBub3QgcHJvcGVybHkgaGFuZGxlIGJhc2Vs
aW5lIGNhbGN1bGF0aW9ucyBjdXJyZW50bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuaAppbmRleCAyNjkwNDJmNGUwODAuLjJhOWVhYjM5M2U2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC0yNzAsMTEgKzI3MCw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCB1cGRhdGVBdXRvTWFyZ2luc0luUm93QXhpc0lmTmVlZGVkKFJlbmRlckJveCYpOwogICAgIGJv
b2wgaXNDaGlsZEVsaWdpYmxlRm9yTWFyZ2luVHJpbShNYXJnaW5UcmltVHlwZSwgY29uc3QgUmVu
ZGVyQm94JikgY29uc3QgZmluYWw7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9z
aXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAgU2lu
Z2xlVGhyZWFkV2Vha1B0cjxSZW5kZXJCb3g+IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0
aW9uIGFsaWdubWVudCkgY29uc3Q7Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxp
bmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5hbDsKICAgICBib29s
IGlzSW5saW5lQmFzZWxpbmVBbGlnbmVkQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAK
ICAgICBMYXlvdXRVbml0IGNvbHVtbkF4aXNCYXNlbGluZU9mZnNldEZvckdyaWRJdGVtKGNvbnN0
IFJlbmRlckJveCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHAKaW5kZXggMjFiZjY1NTAwNzcyLi5kZDI5YzI0NTFiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzA2LDE4ICszMDYsNiBAQCBMYXlvdXRVbml0IFJl
bmRlckltYWdlOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gZQogICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbEhlaWdodChlc3RpbWF0ZWRVc2VkV2lkdGgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlcklt
YWdlOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBk
aXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAg
ICBMYXlvdXRVbml0IG9mZnNldDsKLSNpZiBFTkFCTEUoTVVMVElfUkVQUkVTRU5UQVRJT05fSEVJ
QykKLSAgICBpZiAoaXNNdWx0aVJlcHJlc2VudGF0aW9uSEVJQygpKSB7Ci0gICAgICAgIGF1dG8g
bWV0cmljcyA9IHN0eWxlKCkuZm9udENhc2NhZGUoKS5wcmltYXJ5Rm9udCgpLT5tZXRyaWNzRm9y
TXVsdGlSZXByZXNlbnRhdGlvbkhFSUMoKTsKLSAgICAgICAgb2Zmc2V0ID0gTGF5b3V0VW5pdDo6
ZnJvbUZsb2F0Um91bmQobWV0cmljcy5kZXNjZW50KTsKLSAgICB9Ci0jZW5kaWYKLSAgICByZXR1
cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5l
UG9zaXRpb25Nb2RlKSAtIG9mZnNldDsKLX0KLQogdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFu
Z2VkKFdyYXBwZWRJbWFnZVB0ciBuZXdJbWFnZSwgY29uc3QgSW50UmVjdCogcmVjdCkKIHsKICAg
ICBpZiAocmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5oCmluZGV4IDA1MWQxNTY0YzMxMi4uYzVlZDQ3ZmZmMWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAtMTM4LDggKzEzOCw2IEBAIHByaXZhdGU6
CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0
ZVByZWZlcnJlZCA9IFNob3VsZENvbXB1dGVQcmVmZXJyZWQ6OkNvbXB1dGVBY3R1YWwpIGNvbnN0
IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGVzdGltYXRlZFVzZWRXaWR0aCA9IHN0ZDo6bnVsbG9w
dCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9v
bCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRp
b25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKLQogICAgIGJvb2wgc2hvdWxkQ29s
bGFwc2VUb0VtcHR5KCkgY29uc3Q7CiAKICAgICAvLyBUZXh0IHRvIGRpc3BsYXkgYXMgbG9uZyBh
cyB0aGUgaW1hZ2UgaXNuJ3QgYXZhaWxhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcAppbmRleCA1MTZkZjI2ZTgzMjMuLmZiZGFmNzc5ZjEyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTgxNywxOSArODE3LDYgQEAg
TGVnYWN5SW5saW5lRmxvd0JveCogUmVuZGVySW5saW5lOjpjcmVhdGVBbmRBcHBlbmRJbmxpbmVG
bG93Qm94KCkKICAgICByZXR1cm4gZmxvd0JveDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJbmxp
bmU6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIC8qZGlyZWN0
aW9uKi8sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0Ci17Ci0g
ICAgYXV0byYgbGluZVN0eWxlID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUoKSA6IHN0eWxl
KCk7Ci0gICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwobGluZVN0eWxlLmNvbXB1
dGVkTGluZUhlaWdodCgpKTsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6OmJhc2VsaW5l
UG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGlu
ZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAotewotICAgIGF1dG8mIHN0eWxl
ID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUoKSA6IHRoaXMtPnN0eWxlKCk7Ci0gICAgYXV0
byYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgIHJldHVy
biBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuYXNjZW50KCkgKyAobGluZUhlaWdodChmaXJzdExp
bmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSkgLSBmb250TWV0cmljcy5oZWlnaHQoKSkg
LyAyIH07Ci19Ci0KIExheW91dFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGb3JJbkZsb3dQb3Np
dGlvbmVkSW5saW5lKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0CiB7CiAgICAgLy8gRklY
TUU6IFRoaXMgZnVuY3Rpb24gaXNuJ3QgcmlnaHQgd2l0aCBtaXhlZCB3cml0aW5nIG1vZGVzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCmluZGV4IDc1ZTZkYjJkODdkMS4u
MjQzNGJlODhiZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBA
IC0xMzksOSArMTM5LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlydHlMaW5lRnJvbUNoYW5n
ZWRDaGlsZCgpIGZpbmFsIHsgbV9sZWdhY3lMaW5lQm94ZXMuZGlydHlMaW5lRnJvbUNoYW5nZWRD
aGlsZCgqdGhpcyk7IH0KIAotICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGlu
ZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFp
bmluZ0xpbmUpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOwotICAgIAogICAgIHZvaWQgdXBkYXRl
SGl0VGVzdFJlc3VsdChIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBm
aW5hbDsKIAogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50
UmVjdCogPSAwKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5jcHAKaW5kZXggNGI0ZDc4MzIzY2VkLi43ZTBmMjZmZjdkNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCkBAIC01OSwyNiArNTksNiBAQCBS
ZW5kZXJMaW5lQnJlYWs6On5SZW5kZXJMaW5lQnJlYWsoKQogewogfQogCi1MYXlvdXRVbml0IFJl
bmRlckxpbmVCcmVhazo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUgLypkaXJlY3Rpb24qLywgTGluZVBvc2l0aW9uTW9kZSAvKmxpbmVQb3NpdGlvbk1vZGUqLykg
Y29uc3QKLXsKLSAgICBpZiAoZmlyc3RMaW5lKSB7Ci0gICAgICAgIGF1dG8mIGZpcnN0TGluZVN0
eWxlID0gdGhpcy0+Zmlyc3RMaW5lU3R5bGUoKTsKLSAgICAgICAgaWYgKCZmaXJzdExpbmVTdHls
ZSAhPSAmc3R5bGUoKSkKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRD
ZWlsKGZpcnN0TGluZVN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKLSAgICB9Ci0KLSAgICBp
ZiAoIW1fY2FjaGVkTGluZUhlaWdodCkKLSAgICAgICAgbV9jYWNoZWRMaW5lSGVpZ2h0ID0gTGF5
b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChzdHlsZSgpLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKLSAg
ICByZXR1cm4gKm1fY2FjaGVkTGluZUhlaWdodDsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJMaW5l
QnJlYWs6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2Rl
IGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAotewot
ICAgIGF1dG8mIHN0eWxlID0gZmlyc3RMaW5lID8gZmlyc3RMaW5lU3R5bGUoKSA6IHRoaXMtPnN0
eWxlKCk7Ci0gICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9u
dCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgKGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxp
bmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9udE1l
dHJpY3MuaGVpZ2h0KCkpIC8gMikgfTsKLX0KLQogaW50IFJlbmRlckxpbmVCcmVhazo6Y2FyZXRN
aW5PZmZzZXQoKSBjb25zdAogewogICAgIHJldHVybiAwOwpAQCAtMTMxLDcgKzExMSw2IEBAIHZv
aWQgUmVuZGVyTGluZUJyZWFrOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFk
cywgYm9vbCogd2FzRml4ZWQpIGNvCiAKIHZvaWQgUmVuZGVyTGluZUJyZWFrOjp1cGRhdGVGcm9t
U3R5bGUoKQogewotICAgIG1fY2FjaGVkTGluZUhlaWdodCA9IHsgfTsKICAgICBSRUxFQVNFX0FT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzSW5saW5lKCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmgKaW5kZXggZGYxMTk4YTVmY2Q1Li5i
ZWIzNTkzZGYxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmgKQEAgLTYxLDkgKzYxLDYgQEAgcHJpdmF0ZToKICAgICBpbnQgY2FyZXRNYXhPZmZzZXQoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IGZpbmFsOwog
Ci0gICAgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QgZmluYWw7Ci0gICAgTGF5b3V0VW5pdCBiYXNl
bGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0
aW9uTW9kZSkgY29uc3QgZmluYWw7Ci0KICAgICBMYXlvdXRVbml0IG1hcmdpblRvcCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIDA7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIDA7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAwOyB9CkBAIC04MCw4ICs3Nyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IHVwZGF0ZUZyb21TdHlsZSgpIGZpbmFsOwogICAgIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8TGF5
b3V0VW5pdD4gbV9jYWNoZWRMaW5lSGVpZ2h0IHsgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBj
ZjUzYmI4YWI2YWEuLjBlNDI1MjNmMTI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcApAQCAtODcsMTAgKzg3LDYgQEAgY29uc3QgaW50IG9wdGlvbnNTcGFj
aW5nSW5saW5lU3RhcnQgPSAyOwogLy8gRGVmYXVsdCBzaXplIHdoZW4gdGhlIG11bHRpcGxlIGF0
dHJpYnV0ZSBpcyBwcmVzZW50IGJ1dCBzaXplIGF0dHJpYnV0ZSBpcyBhYnNlbnQuCiBjb25zdCBp
bnQgZGVmYXVsdFNpemUgPSA0OwogCi0vLyBGSVhNRTogVGhpcyBoYXJkY29kZWQgYmFzZWxpbmVB
ZGp1c3RtZW50IGlzIHdoYXQgd2UgdXNlZCB0byBkbyBmb3IgdGhlIG9sZAotLy8gd2lkZ2V0LCBi
dXQgSSdtIG5vdCBzdXJlIHRoaXMgaXMgcmlnaHQgZm9yIHRoZSBuZXcgY29udHJvbC4KLWNvbnN0
IGludCBiYXNlbGluZUFkanVzdG1lbnQgPSA3OwotCiBSZW5kZXJMaXN0Qm94OjpSZW5kZXJMaXN0
Qm94KEhUTUxTZWxlY3RFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAg
IDogUmVuZGVyQmxvY2tGbG93KFR5cGU6Okxpc3RCb3gsIGVsZW1lbnQsIFdURk1vdmUoc3R5bGUp
KQogewpAQCAtMzA4LDE0ICszMDQsNiBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRl
ZFZhbHVlcyBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdQogICAgIHJl
dHVybiBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQsIGxvZ2lj
YWxUb3ApOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRpb24o
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGxpbmVEaXJlY3Rpb24sIExpbmVQb3Np
dGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICBhdXRvIGJhc2VsaW5lID0g
UmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgbGluZURpcmVjdGlvbiwgbGlu
ZVBvc2l0aW9uTW9kZSk7Ci0gICAgaWYgKCFzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkp
Ci0gICAgICAgIGJhc2VsaW5lIC09IGJhc2VsaW5lQWRqdXN0bWVudDsKLSAgICByZXR1cm4gYmFz
ZWxpbmU7Ci19Ci0KIExheW91dFJlY3QgUmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVj
dChjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgaW50IGluZGV4KSBjb25zdAog
ewogICAgIExheW91dFVuaXQgeCA9IGFkZGl0aW9uYWxPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgp
ICsgcGFkZGluZ0xlZnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5o
CmluZGV4IDRhNTQ3M2ZlMjMwNC4uMTIxZmQzNmM4YTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTk3LDcgKzk3LDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdp
ZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKLSAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlk
ZTsKICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29tcHV0ZUxvZ2ljYWxIZWlnaHQo
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3ApIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCAxMTZmOGE2MjMxNWUuLmJhOGI1
MDhhMWExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcApAQCAtNDIyLDIwICs0MjIsNiBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUlu
bGluZU1hcmdpbnMoKQogICAgIG11dGFibGVTdHlsZSgpLnNldE1hcmdpbkVuZChTdHlsZTo6TWFy
Z2luRWRnZTo6Rml4ZWQgeyBtYXJnaW5FbmQgfSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGlz
dE1hcmtlcjo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGly
ZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAg
aWYgKCFpc0ltYWdlKCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RJdGVtLT5saW5lSGVpZ2h0KGZp
cnN0TGluZSwgZGlyZWN0aW9uLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOwotICAgIHJl
dHVybiBSZW5kZXJCb3g6OmxpbmVIZWlnaHQoZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3Np
dGlvbk1vZGUpOwotfQotCi1MYXlvdXRVbml0IFJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9z
aXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBv
c2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAotewotICAgIGlmICghaXNJbWFnZSgp
KQotICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUs
IGRpcmVjdGlvbiwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKLSAgICByZXR1cm4gUmVu
ZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRp
b25Nb2RlKTsKLX0KLQogYm9vbCBSZW5kZXJMaXN0TWFya2VyOjppc0luc2lkZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHN0eWxlKCkubGlzdFN0eWxlUG9zaXRpb24oKSA9PSBMaXN0U3R5bGVQb3Np
dGlvbjo6SW5zaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmgKaW5kZXggMjU4YzZhMGIyZDMyLi4yNjFmODllNDJhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaApAQCAtODEsOCArODEsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKICAg
ICB2b2lkIGxheW91dCgpIGZpbmFsOwogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFn
ZVB0ciwgY29uc3QgSW50UmVjdCopIGZpbmFsOwotICAgIExheW91dFVuaXQgbGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwogICAgIExh
eW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCkgZmluYWw7
CiAgICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSYgbmV3U3R5bGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuaAppbmRleCA1NTAyZDE3NzgzODkuLjU1MTdhYTY5MjUwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTEyNywxNCArMTI3LDcgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgaGFzTGluZUlmRW1wdHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiAKLSAgICAvLyBGbGV4Ym94IGRlZmluZXMgYmFzZWxpbmVzIGRpZmZlcmVudGx5
IHRoYW4gcmVndWxhciBibG9ja3MuCi0gICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5
LCBtZW51bGlzdHMgbmVlZCB0byBkbyB0aGUgcmVndWxhciBibG9jayBiZWhhdmlvci4KLSAgICBM
YXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikgY29uc3Qgb3ZlcnJpZGUK
LSAgICB7Ci0gICAgICAgIHJldHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihmaXJz
dExpbmUsIGRpcmVjdGlvbiwgcG9zaXRpb24pOwotICAgIH0KICAgICBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVu
ZGVyQmxvY2s6OmZpcnN0TGluZUJhc2VsaW5lKCk7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShk
aXJlY3Rpb24pOyB9CiAKICAgICB2b2lkIGdldEl0ZW1CYWNrZ3JvdW5kQ29sb3IodW5zaWduZWQg
bGlzdEluZGV4LCBDb2xvciYsIGJvb2wmIGl0ZW1IYXNDdXN0b21CYWNrZ3JvdW5kQ29sb3IpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDU0
MzkyOTg2ZjI2YS4uZjY3ZTVkMTQ3MzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2xpZGVyLmNwcApAQCAtNzIsMTIgKzcyLDYgQEAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IFJl
bmRlclNsaWRlcjo6cHJvdGVjdGVkRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGVGb3JOb25Bbm9ueW1vdXMoKSk7CiB9CiAKLUxheW91dFVu
aXQgUmVuZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgLypmaXJzdExpbmUqLywgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6
IFBhdGNoIHRoaXMgZnVuY3Rpb24gZm9yIHdyaXRpbmctbW9kZS4KLSAgICByZXR1cm4gaGVpZ2h0
KCkgKyBtYXJnaW5Ub3AoKTsKLX0KLQogdm9pZCBSZW5kZXJTbGlkZXI6OmNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYg
bWF4TG9naWNhbFdpZHRoKSBjb25zdAogewogICAgIGlmIChzaG91bGRBcHBseVNpemVPcklubGlu
ZVNpemVDb250YWlubWVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmgKaW5kZXggNTgzZDgyMzE4YjY3Li4xMzBjNjNkNTRlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBBU0NJSUxpdGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJS
ZW5kZXJTbGlkZXIiX3M7IH0KIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29s
IGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlv
bk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0
JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5jcHAKaW5kZXggZjFjMTQxZWQ0ZTFkLi42ZjAxNzNjYjNlM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTU4MiwxOSArMTU4Miw2IEBA
IFJlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGU6OmNlbGxBZnRlcihjb25zdCBSZW5kZXJUYWJs
ZUNlbGwqIGNlbGwpIGNvbnN0CiAgICAgcmV0dXJuIGNlbGwtPnNlY3Rpb24oKS0+cHJpbWFyeUNl
bGxBdChjZWxsLT5yb3dJbmRleCgpLCBlZmZDb2wpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclRh
YmxlOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBk
aXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAg
ICBpZiAoYXV0byBiYXNlbGluZVBvcyA9IGZpcnN0TGluZUJhc2VsaW5lKCkpCi0gICAgICAgIHJl
dHVybiAoZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5S
aWdodCgpKSArIGJhc2VsaW5lUG9zLnZhbHVlKCk7Ci0gICAgcmV0dXJuIFJlbmRlckJveDo6YmFz
ZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSk7Ci19
Ci0KLXN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyVGFibGU6OmlubGluZUJsb2NrQmFz
ZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgLy8gVGFibGVzIGFyZSBza2lw
cGVkIHdoZW4gY29tcHV0aW5nIGFuIGlubGluZS1ibG9jaydzIGJhc2VsaW5lLgotICAgIHJldHVy
biBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+KCk7Ci19Ci0KIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyVGFibGU6OmZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QKIHsKICAgICAvLyBU
aGUgYmFzZWxpbmUgb2YgYSAndGFibGUnIGlzIHRoZSBzYW1lIGFzIHRoZSAnaW5saW5lLXRhYmxl
JyBiYXNlbGluZSBwZXIgQ1NTIDMgRmxleGJveCAoQ1NTIDIuMQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuaAppbmRleCAxOWM5NzQ0MWU1YzAuLjZmMmEwZmUzNmJlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKQEAgLTIzMSwxMCArMjMxLDggQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlk
ZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJl
c3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsK
IAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFz
ZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxh
c3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IGZpbmFs
OwogCiAgICAgUmVuZGVyVGFibGVDb2wqIHNsb3dDb2xFbGVtZW50KHVuc2lnbmVkIGNvbCwgYm9v
bCogc3RhcnRFZGdlLCBib29sKiBlbmRFZGdlKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKaW5kZXggOTRkYTllMmY0OGQwLi40ZGMx
ZTQwOWFmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFJlbmRlckJveDo6TG9naWNhbEV4dGVudENvbXB1
dGVkVmFsdWVzIFJlbmRlclRleHRDb250cm9sOjpjb21wdXRlTG9naWNhbEhlaWdodChMCiAKICAg
ICBpZiAoUmVuZGVyQm94KiBpbm5lclRleHRCb3ggPSBpbm5lclRleHQtPnJlbmRlckJveCgpKSB7
CiAgICAgICAgIExheW91dFVuaXQgbm9uQ29udGVudEhlaWdodCA9IGlubmVyVGV4dEJveC0+Ym9y
ZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIGlubmVyVGV4dEJveC0+bWFyZ2luTG9naWNh
bEhlaWdodCgpOwotICAgICAgICBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xMb2dpY2Fs
SGVpZ2h0KGlubmVyVGV4dEJveC0+bGluZUhlaWdodCh0cnVlLCBIb3Jpem9udGFsTGluZSwgUG9z
aXRpb25PZkludGVyaW9yTGluZUJveGVzKSwgbm9uQ29udGVudEhlaWdodCk7CisgICAgICAgIGxv
Z2ljYWxIZWlnaHQgPSBjb21wdXRlQ29udHJvbExvZ2ljYWxIZWlnaHQoaW5uZXJUZXh0Qm94LT5s
aW5lSGVpZ2h0KCksIG5vbkNvbnRlbnRIZWlnaHQpOwogCiAgICAgICAgIC8vIFdlIGFyZSBhYmxl
IHRvIGhhdmUgYSBob3Jpem9udGFsIHNjcm9sbGJhciBpZiB0aGUgb3ZlcmZsb3cgc3R5bGUgaXMg
c2Nyb2xsLCBvciBpZiBpdHMgYXV0byBhbmQgdGhlcmUncyBubyB3b3JkIHdyYXAuCiAgICAgICAg
IGF1dG8gc2hvdWxkSW5jbHVkZVNjcm9sbGJhckhlaWdodCA9IFsmXSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCmluZGV4IDNmOWYwNDcwNjU5NS4uNDRj
OTlkNzA2Y2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaApAQCAtOTAsMTIgKzkwLDcgQEAgcHVibGljOgogICAgIFJlbmRlclRleHRDb250cm9sSW5u
ZXJDb250YWluZXIoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwogICAgIHZpcnR1YWwgflJlbmRl
clRleHRDb250cm9sSW5uZXJDb250YWluZXIoKTsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQ
b3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5l
UG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBvdmVycmlkZQotICAgIHsKLSAgICAgICAgcmV0
dXJuIFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9uLCBw
b3NpdGlvbik7Ci0gICAgfQogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5l
QmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5l
QmFzZWxpbmUoKTsgfQotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tC
YXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7IH0KIAogcHJp
dmF0ZToKICAgICBib29sIGlzRmxleGlibGVCb3hJbXBsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5jcHAKaW5kZXggODRiM2Q2ZjQxYjIwLi5jODc2ODhmMDA4YTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11
bHRpTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sTXVsdGlMaW5lLmNwcApAQCAtOTgsMTEgKzk4LDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJUZXh0
Q29udHJvbE11bHRpTGluZTo6Y29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQg
bGkKICAgICByZXR1cm4gbGluZUhlaWdodCAqIHRleHRBcmVhRWxlbWVudCgpLnJvd3MoKSArIG5v
bkNvbnRlbnRIZWlnaHQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmU6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRp
cmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAotewotICAg
IHJldHVybiBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24s
IGxpbmVQb3NpdGlvbk1vZGUpOwotfQotCiB2b2lkIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
OjpsYXlvdXRFeGNsdWRlZENoaWxkcmVuKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJl
bikKIHsKICAgICBSZW5kZXJUZXh0Q29udHJvbDo6bGF5b3V0RXhjbHVkZWRDaGlsZHJlbihyZWxh
eW91dENoaWxkcmVuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmgKaW5kZXggZGUxN2FkYTNmNWJhLi4yM2VkYzZiNmRmODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11
bHRpTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bE11bHRpTGluZS5oCkBAIC00NCw3ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgZ2V0QXZl
cmFnZUNoYXJXaWR0aCgpIG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgcHJlZmVycmVkQ29udGVu
dExvZ2ljYWxXaWR0aChmbG9hdCBjaGFyV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91
dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbGluZUhlaWdodCwg
TGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25zdCBvdmVycmlkZTsKLSAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHZvaWQgbGF5b3V0RXhjbHVkZWRDaGlsZHJlbihSZWxheW91dENoaWxkcmVuKSBv
dmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IGJmZTU3ZWIwNDdmZi4uODQxOGJlNzRm
ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtNDk2LDYgKzQ5NiwxMSBAQCBSZWY8SFRNTElucHV0
RWxlbWVudD4gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpwcm90ZWN0ZWRJbnB1dEVsZW1l
bnQoKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihSZW5kZXJU
ZXh0Q29udHJvbDo6dGV4dEZvcm1Db250cm9sRWxlbWVudCgpKTsKIH0KIAorUmVuZGVyVGV4dENv
bnRyb2xJbm5lckJsb2NrKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlubmVyVGV4dFJl
bmRlcmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW5uZXJUZXh0RWxlbWVudCgpID8gaW5uZXJU
ZXh0RWxlbWVudCgpLT5yZW5kZXJlcigpIDogbnVsbHB0cjsKK30KKwogUmVuZGVyVGV4dENvbnRy
b2xJbm5lckJsb2NrOjpSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soRWxlbWVudCYgZWxlbWVu
dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckJsb2NrRmxvdyhUeXBlOjpUZXh0
Q29udHJvbElubmVyQmxvY2ssIGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
CmluZGV4IDBlZDgyYzdkMzQyOC4uYmZkNmUxYTliN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrOwogCiBjbGFzcyBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUgOiBwdWJsaWMgUmVuZGVyVGV4dENvbnRyb2wgewogICAg
IFdURl9NQUtFX1RaT05FX09SX0lTT19BTExPQ0FURUQoUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lKTsKQEAgLTM0LDYgKzM1LDggQEAgcHVibGljOgogICAgIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZShUeXBlLCBIVE1MSW5wdXRFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAgICAgdmly
dHVhbCB+UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKCk7CiAKKyAgICBSZW5kZXJUZXh0Q29u
dHJvbElubmVyQmxvY2sqIGlubmVyVGV4dFJlbmRlcmVyKCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBIVE1MRWxlbWVudCogY29udGFpbmVyRWxlbWVudCgpIGNvbnN0OwogICAgIEhUTUxFbGVt
ZW50KiBpbm5lckJsb2NrRWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9saW5lL0xpbmVXaWR0aC5jcHAKaW5kZXggYmEwOTdiYmUzNjIwLi4zOTEwNWEwYTEwYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcApAQCAtNjksNyAr
NjksNyBAQCBib29sIExpbmVXaWR0aDo6Zml0c09uTGluZUV4Y2x1ZGluZ1RyYWlsaW5nQ29sbGFw
c2VkV2hpdGVzcGFjZSgpIGNvbnN0CiB2b2lkIExpbmVXaWR0aDo6dXBkYXRlQXZhaWxhYmxlV2lk
dGgoKQogewogICAgIExheW91dFVuaXQgaGVpZ2h0ID0gbV9ibG9jay5sb2dpY2FsSGVpZ2h0KCk7
Ci0gICAgYXV0byBsaW5lSGVpZ2h0ID0gc3RkOjptYXgoMF9sdSwgbV9ibG9jay5saW5lSGVpZ2h0
KHRydWUsIG1fYmxvY2suaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5l
IDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpKTsKKyAgICBhdXRv
IGxpbmVIZWlnaHQgPSBzdGQ6Om1heCgwX2x1LCBtX2Jsb2NrLmxpbmVIZWlnaHQoKSk7CiAgICAg
bV9sZWZ0ID0gbV9ibG9jay5sb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoaGVpZ2h0LCBsaW5lSGVp
Z2h0KTsKICAgICBtX3JpZ2h0ID0gbV9ibG9jay5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGhl
aWdodCwgbGluZUhlaWdodCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKaW5kZXggNWQxNjdhZWQ3Njg3Li4xYWRlYmU1
ODQxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MQmxvY2suY3BwCkBAIC05NSwxNCArOTUsNiBAQCBMYXlvdXRVbml0IFJlbmRlck1h
dGhNTEJsb2NrOjptaXJyb3JJZk5lZWRlZChMYXlvdXRVbml0IGhvcml6b250YWxPZmZzZXQsIExh
eW91dAogICAgIHJldHVybiBob3Jpem9udGFsT2Zmc2V0OwogfQogCi1MYXlvdXRVbml0IFJlbmRl
ck1hdGhNTEJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29u
c3QKLXsKLSAgICBpZiAobGluZVBvc2l0aW9uTW9kZSA9PSBQb3NpdGlvbk9mSW50ZXJpb3JMaW5l
Qm94ZXMpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5l
KCkudmFsdWVfb3IoUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJl
Y3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpKTsKLX0KLQogTGF5b3V0VW5pdCB0b1VzZXJVbml0cyhj
b25zdCBNYXRoTUxFbGVtZW50OjpMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlLCBjb25zdCBMYXlvdXRVbml0JiByZWZlcmVuY2VWYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGxl
bmd0aC50eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTEJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEJsb2NrLmgKaW5kZXggYjA1YjZlZDA2NTRkLi4zNzNiYjRjODI4MGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2Nr
LmgKQEAgLTU5LDggKzU5LDYgQEAgcHVibGljOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODYxNy4KICAgICB2aXJ0dWFsIFJlbmRlck1hdGhNTE9wZXJh
dG9yKiB1bmVtYmVsbGlzaGVkT3BlcmF0b3IoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAK
LSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJl
Y3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBj
b25zdCBvdmVycmlkZTsKLQogcHJvdGVjdGVkOgogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvY2hlY2tib3gtb3ZlcmZsb3ctdmVy
dGljYWwtcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2NoZWNrYm94
LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dAppbmRleCBiZTczZjg3N2I2MmMuLjg0
MTRhMjU4ZWViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2NoZWNrYm94
LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvY2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNSBAQAogCiAocmVwYWludCByZWN0cwotICAocmVjdCAxMCAyMSAxMCAxMSkKKyAgKHJl
Y3QgMTAgMTQgMTAgMTEpCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy0xOC9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1
dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLTE4
L2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFzc3dvcmQtYXV0by1m
aWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKaW5kZXggNGUyMWE2MGU5ZDIwLi4zNDAzNmVkMDRlNGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy0xOC9mYXN0L2Zvcm1zL2F1dG8t
ZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy0xOC9mYXN0L2Zvcm1zL2F1dG8t
ZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0
ZWQudHh0CkBAIC0xLDEwMCArMSwxMDAgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4MjEzCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyMTMKLSAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MTg5CitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHgxOTAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE5MAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgxNjYKICAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA3NTh4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA3NTg6ICJUaGlzIHRlc3RzIHRoYXQgdGhlIFN0cm9uZyBQYXNzd29yZCBBdXRvRmlsbCBidXR0
b24gcmVuZGVycyBpbiBhbiBhdXRvLWZpbGxlZCBpbnB1dC4gSXQgY2FuIG9ubHkgYmUgdGVzdGVk
IGluIHRoZSB0ZXN0IHRvb2wuIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNp
emUgNzg0eDE1MwotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDEzKSBz
aXplIDE1M3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5
OSldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTUzLDExKSBzaXplIDR4MTkKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTUzLDExKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVy
VGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTU3LDEzKSBzaXplIDE1M3gyMCBbYmdjb2xvcj0jRkFG
RkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCi0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMzEwLDExKSBzaXplIDR4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzEw
LDExKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAo
MzE0LDEzKSBzaXplIDMxM3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlk
ICMzQzNDNDM5OSldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjI3LDExKSBzaXpl
IDR4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjI3LDExKSB3aWR0aCA0OiAiICIKLSAgICAg
ICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoNjMxLDApIHNpemUgMzN4MjAgW2JnY29s
b3I9I0ZBRkZCRF0gW2JvcmRlcjogKDFweCBzb2xpZCAjM0MzQzQzOTkpXQorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0eDEzMAorICAgICAgICBSZW5kZXJUZXh0Q29u
dHJvbCB7SU5QVVR9IGF0ICgwLDMpIHNpemUgMTUzeDIwIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3Jk
ZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxNTMsMCkgc2l6ZSA0eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE1MywwKSB3aWR0aCA0
OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTU3LDMpIHNpemUg
MTUzeDIwIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0K
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMTAsMCkgc2l6ZSA0eDE5CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDMxMCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENv
bnRyb2wge0lOUFVUfSBhdCAoMzE0LDMpIHNpemUgMzEzeDIwIFtiZ2NvbG9yPSNGQUZGQkRdIFti
b3JkZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg2MjcsMCkgc2l6ZSA0eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDYyNywwKSB3aWR0
aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoNjMxLDMpIHNp
emUgMzN4MjAgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDFweCBzb2xpZCAjM0MzQzQzOTkp
XQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAg
UmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCw0NSkgc2l6ZSAxNTN4MTA4IFtiZ2NvbG9y
PSNGQUZGQkRdIFtib3JkZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KLSAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgxNTMsODcpIHNpemUgNHgyMAotICAgICAgICAgIHRleHQgcnVuIGF0
ICgxNTMsODcpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9
IGF0ICgxNTcsMzIpIHNpemUgMzN4MTA4IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHgg
c29saWQgIzNDM0M0Mzk5KV0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxOTAsODcp
IHNpemUgNHgyMAotICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTAsODcpIHdpZHRoIDQ6ICIgIgot
ICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxOTQsODkpIHNpemUgMTUzeDIw
IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KLWxheWVy
IGF0ICgxNSw2Nykgc2l6ZSAxNDB4MTQKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVU
fSBhdCAoMCwyMikgc2l6ZSAxNTN4MTA4IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHgg
c29saWQgIzNDM0M0Mzk5KV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTMsNjMp
IHNpemUgNHgyMAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTMsNjMpIHdpZHRoIDQ6ICIgIgor
ICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNTcsMjIpIHNpemUgMzN4MTA4
IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxOTAsNjMpIHNpemUgNHgyMAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxOTAsNjMpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJv
bCB7SU5QVVR9IGF0ICgxOTQsNjYpIHNpemUgMTUzeDIwIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3Jk
ZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KK2xheWVyIGF0ICgxNSw1Nykgc2l6ZSAxNDB4MTQK
ICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDYsMikgc2l6ZSAxNDF4MTUKICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoNDUsMCkgc2l6ZSA5NXgxNCBbY29sb3I9IzAwMDAwMENDXQogICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTQKICAgICAgICAgdGV4dCBy
dW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTUsNjgp
IHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE1LDY4KSBzaXplIDQ1eDEyIGNsaXAgYXQg
KDE1LDY4KSBzaXplIDQ1eDEyCitsYXllciBhdCAoMTUsNTgpIHNpemUgNDZ4MTIgYmFja2dyb3Vu
ZENsaXAgYXQgKDE1LDU4KSBzaXplIDQ1eDEyIGNsaXAgYXQgKDE1LDU4KSBzaXplIDQ1eDEyCiAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEpIHNpemUgNDZ4MTIKLWxheWVyIGF0ICgxNzIsNjcp
IHNpemUgMTQweDE0CitsYXllciBhdCAoMTcyLDU3KSBzaXplIDE0MHgxNAogICBSZW5kZXJGbGV4
aWJsZUJveCB7RElWfSBhdCAoNiwyKSBzaXplIDE0MXgxNQogICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICg0NSwwKSBzaXplIDk1eDE0IFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxNAogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3
aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxNzIsNjgpIHNpemUgNDZ4MTIg
YmFja2dyb3VuZENsaXAgYXQgKDE3Miw2OCkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNzIsNjgpIHNp
emUgNDV4MTIKK2xheWVyIGF0ICgxNzIsNTgpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQg
KDE3Miw1OCkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNzIsNTgpIHNpemUgNDV4MTIKICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMSkgc2l6ZSA0NngxMgotbGF5ZXIgYXQgKDMyOSw2Nykgc2l6ZSAz
MDB4MTQKK2xheWVyIGF0ICgzMjksNTcpIHNpemUgMzAweDE0CiAgIFJlbmRlckZsZXhpYmxlQm94
IHtESVZ9IGF0ICg2LDIpIHNpemUgMzAxeDE1CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIw
NSwwKSBzaXplIDk1eDE0IFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDYsMCkgc2l6ZSA4OXgxNAogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4
OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgzMjksNjgpIHNpemUgMjA2eDEyIGJhY2tn
cm91bmRDbGlwIGF0ICgzMjksNjgpIHNpemUgMjA1eDEyIGNsaXAgYXQgKDMyOSw2OCkgc2l6ZSAy
MDV4MTIKK2xheWVyIGF0ICgzMjksNTgpIHNpemUgMjA2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgz
MjksNTgpIHNpemUgMjA1eDEyIGNsaXAgYXQgKDMyOSw1OCkgc2l6ZSAyMDV4MTIKICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMSkgc2l6ZSAyMDZ4MTIKLWxheWVyIGF0ICg2NDYsNTUpIHNpemUg
MjB4MTIgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CitsYXllciBhdCAoNjQ2LDU4KSBz
aXplIDIweDEyIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgogICBSZW5kZXJGbGV4aWJs
ZUJveCB7RElWfSBhdCAoNiwzKSBzaXplIDIxeDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMTIpIHNpemUgOTV4MTQgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDE0CiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRo
IDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDY0Niw1NSkgc2l6ZSAyMHgxMgorbGF5
ZXIgYXQgKDY0Niw1OCkgc2l6ZSAyMHgxMgogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBz
aXplIDIweDEyCi1sYXllciBhdCAoMTUsMTQ0KSBzaXplIDE0MHgxNAorbGF5ZXIgYXQgKDE1LDEy
MSkgc2l6ZSAxNDB4MTQKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDYsNDYpIHNpemUg
MTQxeDE1CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQ1LDApIHNpemUgOTV4MTQgW2NvbG9y
PSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDE0
CiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgot
bGF5ZXIgYXQgKDE1LDE0NSkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMTUsMTQ1KSBz
aXplIDQ1eDEyIGNsaXAgYXQgKDE1LDE0NSkgc2l6ZSA0NXgxMgorbGF5ZXIgYXQgKDE1LDEyMikg
c2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMTUsMTIyKSBzaXplIDQ1eDEyIGNsaXAgYXQg
KDE1LDEyMikgc2l6ZSA0NXgxMgogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxKSBzaXplIDQ2
eDEyCi1sYXllciBhdCAoMTcyLDEzMikgc2l6ZSAyMHgxMiBzY3JvbGxXaWR0aCA5NCBzY3JvbGxI
ZWlnaHQgMjYKK2xheWVyIGF0ICgxNzIsMTIyKSBzaXplIDIweDEyIHNjcm9sbFdpZHRoIDk0IHNj
cm9sbEhlaWdodCAyNgogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNiw0Nykgc2l6ZSAy
MXgxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEyKSBzaXplIDk1eDE0IFtjb2xvcj0j
MDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxNAog
ICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxh
eWVyIGF0ICgxNzIsMTMyKSBzaXplIDIweDEyCitsYXllciBhdCAoMTcyLDEyMikgc2l6ZSAyMHgx
MgogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEyCi1sYXllciBhdCAoMjA5
LDE0NCkgc2l6ZSAxNDB4MTQKK2xheWVyIGF0ICgyMDksMTIxKSBzaXplIDE0MHgxNAogICBSZW5k
ZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNiwyKSBzaXplIDE0MXgxNQogICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICg0NSwwKSBzaXplIDk1eDE0IFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxNAogICAgICAgICB0ZXh0IHJ1biBhdCAo
NiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgyMDksMTQ1KSBzaXpl
IDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgyMDksMTQ1KSBzaXplIDQ1eDEyIGNsaXAgYXQgKDIw
OSwxNDUpIHNpemUgNDV4MTIKK2xheWVyIGF0ICgyMDksMTIyKSBzaXplIDQ2eDEyIGJhY2tncm91
bmRDbGlwIGF0ICgyMDksMTIyKSBzaXplIDQ1eDEyIGNsaXAgYXQgKDIwOSwxMjIpIHNpemUgNDV4
MTIKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMSkgc2l6ZSA0NngxMgotbGF5ZXIgYXQgKDE1
LDY4KSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgxNSw2OCkgc2l6ZSA0NXgxMiBjbGlw
IGF0ICgxNSw2OCkgc2l6ZSA0NXgxMiBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxNSw1OCkg
c2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMTUsNTgpIHNpemUgNDV4MTIgY2xpcCBhdCAo
MTUsNTgpIHNpemUgNDV4MTIgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgNDZ4MTIgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTIKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4
NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBh
dCAoMTcyLDY4KSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgxNzIsNjgpIHNpemUgNDV4
MTIgY2xpcCBhdCAoMTcyLDY4KSBzaXplIDQ1eDEyIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQg
KDE3Miw1OCkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMTcyLDU4KSBzaXplIDQ1eDEy
IGNsaXAgYXQgKDE3Miw1OCkgc2l6ZSA0NXgxMiBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA0NngxMiBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMgogICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9n
LiIKLWxheWVyIGF0ICgzMjksNjgpIHNpemUgMjA2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgzMjks
NjgpIHNpemUgMjA1eDEyIGNsaXAgYXQgKDMyOSw2OCkgc2l6ZSAyMDV4MTIgc2Nyb2xsV2lkdGgg
Mjg0CitsYXllciBhdCAoMzI5LDU4KSBzaXplIDIwNngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMzI5
LDU4KSBzaXplIDIwNXgxMiBjbGlwIGF0ICgzMjksNTgpIHNpemUgMjA1eDEyIHNjcm9sbFdpZHRo
IDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwNngxMiBbY29sb3I9IzAw
MDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMgogICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVk
IG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICg2NDYsNTUpIHNpemUgMjB4MTIgc2Nyb2xs
V2lkdGggMjg0CitsYXllciBhdCAoNjQ2LDU4KSBzaXplIDIweDEyIHNjcm9sbFdpZHRoIDI4NAog
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEyIFtjb2xvcj0jMDAwMDAwOTld
CiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEyCiAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0
aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDE1LDE0NSkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xp
cCBhdCAoMTUsMTQ1KSBzaXplIDQ1eDEyIGNsaXAgYXQgKDE1LDE0NSkgc2l6ZSA0NXgxMiBzY3Jv
bGxXaWR0aCAyODQKK2xheWVyIGF0ICgxNSwxMjIpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAg
YXQgKDE1LDEyMikgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNSwxMjIpIHNpemUgNDV4MTIgc2Nyb2xs
V2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNDZ4MTIgW2NvbG9y
PSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTIK
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1
bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoMTcyLDEzMikgc2l6ZSAyMHgxMiBz
Y3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxNzIsMTIyKSBzaXplIDIweDEyIHNjcm9sbFdpZHRo
IDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEyIFtjb2xvcj0jMDAw
MDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEyCiAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQg
b3ZlciB0aGUgbGF6eSBkb2cuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXNlcXVvaWEtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFz
c3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtc2VxdW9pYS13azIvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9u
Zy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dAppbmRleCA5OGM3MTNlNjll
OTYuLmNkOGFmNDU2MjE0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNl
cXVvaWEtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFzc3dv
cmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXNlcXVvaWEtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJv
bmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTEsMTAwICsxLDEw
MCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHgyMDkKLSAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDIwOQotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDE2KSBzaXplIDc4NHgxODUKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE4NAorICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTg0CisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsMTYpIHNpemUgNzg0eDE2MAogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc1N3gx
OAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDc1NzogIlRoaXMgdGVzdHMgdGhh
dCB0aGUgU3Ryb25nIFBhc3N3b3JkIEF1dG9GaWxsIGJ1dHRvbiByZW5kZXJzIGluIGFuIGF1dG8t
ZmlsbGVkIGlucHV0LiBJdCBjYW4gb25seSBiZSB0ZXN0ZWQgaW4gdGhlIHRlc3QgdG9vbC4iCi0g
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTUxCi0gICAgICAgIFJl
bmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDAsMTMpIHNpemUgMTU4eDE5IFtiZ2NvbG9yPSNG
QUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTU4LDEzKSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4
LDEzKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAo
MTYyLDEzKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMyMCwxMykgc2l6ZSA0
eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDMyMCwxMykgd2lkdGggNDogIiAiCi0gICAgICAg
IFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDMyNCwxMykgc2l6ZSAzMDZ4MTkgW2JnY29s
b3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg2MzAsMTMpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0
ICg2MzAsMTMpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9
IGF0ICg2MzQsMCkgc2l6ZSAyNngxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGlu
c2V0ICM4MDgwODApXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0
eDEyNgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDEpIHNpemUgMTU4
eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTU4LDApIHNpemUgNHgxOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxNTgsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9s
IHtJTlBVVH0gYXQgKDE2MiwxKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVy
OiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMy
MCwwKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzIwLDApIHdpZHRoIDQ6ICIg
IgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgzMjQsMSkgc2l6ZSAzMDZ4
MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2MzAsMCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDYzMCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wg
e0lOUFVUfSBhdCAoNjM0LDEpIHNpemUgMjZ4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjog
KDJweCBpbnNldCAjODA4MDgwKV0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDAsNDUpIHNp
emUgMTU4eDEwNiBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODAp
XQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1OCw4OCkgc2l6ZSA0eDE4Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDE1OCw4OCkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRl
eHRDb250cm9sIHtJTlBVVH0gYXQgKDE2MiwzMikgc2l6ZSAyNngxMDYgW2JnY29sb3I9I0ZBRkZC
RF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgxODgsODgpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgxODgsODgp
IHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxOTIs
ODgpIHNpemUgMTU4eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgw
ODA4MCldCi1sYXllciBhdCAoMTEsNjYpIHNpemUgMTUyeDEzCisgICAgICAgIFJlbmRlclRleHRD
b250cm9sIHtJTlBVVH0gYXQgKDAsMjApIHNpemUgMTU4eDEwNiBbYmdjb2xvcj0jRkFGRkJEXSBb
Ym9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDE1OCw2Mikgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE1OCw2Mikgd2lk
dGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE2MiwyMCkg
c2l6ZSAyNngxMDYgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgw
KV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxODgsNjIpIHNpemUgNHgxOAorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxODgsNjIpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJU
ZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxOTIsNjMpIHNpemUgMTU4eDE5IFtiZ2NvbG9yPSNGQUZG
QkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCitsYXllciBhdCAoMTEsNTQpIHNpemUg
MTUyeDEzCiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNpemUgMTUyeDEzCiAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3LDApIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBD
Q10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAg
IHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQg
KDExLDY2KSBzaXplIDU4eDEzCitsYXllciBhdCAoMTEsNTQpIHNpemUgNTh4MTMKICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMwotbGF5ZXIgYXQgKDE3Myw2Nikgc2l6ZSAx
NTJ4MTMKK2xheWVyIGF0ICgxNzMsNTQpIHNpemUgMTUyeDEzCiAgIFJlbmRlckZsZXhpYmxlQm94
IHtESVZ9IGF0ICgzLDMpIHNpemUgMTUyeDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3
LDApIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5
OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDE3Myw2Nikgc2l6ZSA1OHgxMworbGF5ZXIg
YXQgKDE3Myw1NCkgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDU4eDEzCi1sYXllciBhdCAoMzM1LDY2KSBzaXplIDMwMHgxMworbGF5ZXIgYXQgKDMzNSw1NCkg
c2l6ZSAzMDB4MTMKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAzMDB4
MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMjA1LDApIHNpemUgOTV4MTMgW2NvbG9yPSMw
MDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAg
ICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5
ZXIgYXQgKDMzNSw2Nikgc2l6ZSAyMDZ4MTMKK2xheWVyIGF0ICgzMzUsNTQpIHNpemUgMjA2eDEz
CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjA2eDEzCi1sYXllciBhdCAoNjQ1
LDUzKSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgorbGF5ZXIgYXQg
KDY0NSw1NCkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQgMjYKICAgUmVu
ZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAyMHgxMwogICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDEzKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAo
NiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICg2NDUsNTMpIHNpemUg
MjB4MTMKK2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMKICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMHgxMwotbGF5ZXIgYXQgKDExLDE0Mikgc2l6ZSAxNTJ4MTMKK2xheWVy
IGF0ICgxMSwxMTcpIHNpemUgMTUyeDEzCiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgz
LDQ2KSBzaXplIDE1MngxNAogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBzaXplIDk1
eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkg
c2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQ
YXNzd29yZCIKLWxheWVyIGF0ICgxMSwxNDIpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgxMSwxMTcp
IHNpemUgNTh4MTMKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMwotbGF5
ZXIgYXQgKDE3MywxMjkpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2
CitsYXllciBhdCAoMTczLDExNykgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWln
aHQgMjYKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsNDYpIHNpemUgMjB4MTQKICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMykgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMEND
XQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAg
dGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAo
MTczLDEyOSkgc2l6ZSAyMHgxMworbGF5ZXIgYXQgKDE3MywxMTcpIHNpemUgMjB4MTMKICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMwotbGF5ZXIgYXQgKDIwMywxNDEpIHNp
emUgMTUyeDEzCitsYXllciBhdCAoMjAzLDExNikgc2l6ZSAxNTJ4MTMKICAgUmVuZGVyRmxleGli
bGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAxNTJ4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lk
dGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMjAzLDE0MSkgc2l6ZSA1OHgxMwor
bGF5ZXIgYXQgKDIwMywxMTYpIHNpemUgNTh4MTMKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSA1OHgxMwotbGF5ZXIgYXQgKDExLDY2KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4
NAorbGF5ZXIgYXQgKDExLDU0KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBk
b2cuIgotbGF5ZXIgYXQgKDE3Myw2Nikgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVy
IGF0ICgxNzMsNTQpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDApIHNpemUgNTh4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1s
YXllciBhdCAoMzM1LDY2KSBzaXplIDIwNngxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgz
MzUsNTQpIHNpemUgMjA2eDEzIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDIwNngxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
Mjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVy
IGF0ICg2NDUsNTMpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoNjQ1LDU0
KSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDIweDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJB
IHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDEx
LDE0Mikgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxMSwxMTcpIHNpemUg
NTh4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUg
NTh4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sg
YnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoMTczLDEyOSkg
c2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxNzMsMTE3KSBzaXplIDIweDEz
IHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEz
IFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
Mjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3du
IGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXNlcXVvaWEtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12
ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2VxdW9p
YS13azIvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVk
LnR4dAppbmRleCBiZTczZjg3N2I2MmMuLjg0MTRhMjU4ZWViNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXNlcXVvaWEtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVy
Zmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXNlcXVvaWEtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1y
bC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIChyZXBhaW50IHJlY3RzCi0gIChyZWN0
IDEwIDIxIDEwIDExKQorICAocmVjdCAxMCAxNCAxMCAxMSkKICkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5w
dXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQt
c3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CmluZGV4IDg2YTQ3
NjRmOWUwMC4uY2Q4YWY0NTYyMTQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFzc3dvcmQt
YXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3Jk
LWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CkBAIC0xLDEwMCArMSwxMDAgQEAKIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MjEzCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHgyMTMKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3
ODR4MTg5CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxODQKKyAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDE4NAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBz
aXplIDc4NHgxNjAKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAog
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NTd4MTgKICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3NTc6ICJUaGlzIHRlc3RzIHRoYXQgdGhlIFN0cm9u
ZyBQYXNzd29yZCBBdXRvRmlsbCBidXR0b24gcmVuZGVycyBpbiBhbiBhdXRvLWZpbGxlZCBpbnB1
dC4gSXQgY2FuIG9ubHkgYmUgdGVzdGVkIGluIHRoZSB0ZXN0IHRvb2wuIgotICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0eDE1NQotICAgICAgICBSZW5kZXJUZXh0Q29u
dHJvbCB7SU5QVVR9IGF0ICgwLDEzKSBzaXplIDE2NngyMSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9y
ZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDE2NiwxNCkgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDE2NiwxNCkgd2lkdGgg
NDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE3MCwxMykgc2l6
ZSAxNjZ4MjEgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0K
LSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMzYsMTQpIHNpemUgNHgxOAotICAgICAg
ICAgIHRleHQgcnVuIGF0ICgzMzYsMTQpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0
Q29udHJvbCB7SU5QVVR9IGF0ICgzNDAsMTMpIHNpemUgMzE0eDIxIFtiZ2NvbG9yPSNGQUZGQkRd
IFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoNjU0LDE0KSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjU0LDE0KSB3
aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoNjU4LDAp
IHNpemUgMzR4MjEgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgw
KV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgxMjYKKyAgICAg
ICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwxKSBzaXplIDE1OHgxOSBbYmdjb2xv
cj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDE1OCwwKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MTU4LDApIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0
ICgxNjIsMSkgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNl
dCAjODA4MDgwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMjAsMCkgc2l6ZSA0
eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDMyMCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAg
UmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMzI0LDEpIHNpemUgMzA2eDE5IFtiZ2NvbG9y
PSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoNjMwLDApIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg2
MzAsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQg
KDYzNCwxKSBzaXplIDI2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQg
IzgwODA4MCldCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAot
ICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDQ3KSBzaXplIDE2NngxMDgg
W2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNjYsOTEpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQg
cnVuIGF0ICgxNjYsOTEpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7
SU5QVVR9IGF0ICgxNzAsMzQpIHNpemUgMzR4MTA4IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6
ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjA0
LDkxKSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjA0LDkxKSB3aWR0aCA0OiAi
ICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMjA4LDkwKSBzaXplIDE2
NngyMSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotbGF5
ZXIgYXQgKDE1LDY3KSBzaXplIDE1MngxMwotICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAo
Nyw0KSBzaXplIDE1MngxMworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgw
LDIwKSBzaXplIDE1OHgxMDYgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAj
ODA4MDgwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTgsNjIpIHNpemUgNHgx
OAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTgsNjIpIHdpZHRoIDQ6ICIgIgorICAgICAgICBS
ZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMjApIHNpemUgMjZ4MTA2IFtiZ2NvbG9y
PSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMTg4LDYyKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MTg4LDYyKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBh
dCAoMTkyLDYzKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGlu
c2V0ICM4MDgwODApXQorbGF5ZXIgYXQgKDExLDU0KSBzaXplIDE1MngxMworICBSZW5kZXJGbGV4
aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3
aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxNSw2Nykgc2l6ZSA1OHgxMwor
bGF5ZXIgYXQgKDExLDU0KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDAp
IHNpemUgNTh4MTMKLWxheWVyIGF0ICgxODUsNjcpIHNpemUgMTUyeDEzCi0gIFJlbmRlckZsZXhp
YmxlQm94IHtESVZ9IGF0ICg3LDQpIHNpemUgMTUyeDEzCitsYXllciBhdCAoMTczLDU0KSBzaXpl
IDE1MngxMworICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwog
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAw
Q0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAg
ICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0
ICgxODUsNjcpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgxNzMsNTQpIHNpemUgNTh4MTMKICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMwotbGF5ZXIgYXQgKDM1NSw2Nykgc2l6
ZSAzMDB4MTMKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDcsNCkgc2l6ZSAzMDB4MTMK
K2xheWVyIGF0ICgzMzUsNTQpIHNpemUgMzAweDEzCisgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9
IGF0ICgzLDMpIHNpemUgMzAweDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwNSwwKSBz
aXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0
cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgzNTUsNjcpIHNpemUgMjA2eDEzCitsYXllciBhdCAo
MzM1LDU0KSBzaXplIDIwNngxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIw
NngxMwotbGF5ZXIgYXQgKDY3Myw1NCkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxI
ZWlnaHQgMjYKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDcsNCkgc2l6ZSAyMHgxMwor
bGF5ZXIgYXQgKDY0NSw1NCkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQg
MjYKKyAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAyMHgxMwogICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDEzKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0
IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICg2NzMs
NTQpIHNpemUgMjB4MTMKK2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMKICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMwotbGF5ZXIgYXQgKDE1LDE0NSkgc2l6ZSAxNTJ4
MTMKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDcsNDcpIHNpemUgMTUyeDE0CitsYXll
ciBhdCAoMTEsMTE3KSBzaXplIDE1MngxMworICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAo
Myw0Nikgc2l6ZSAxNTJ4MTQKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5
NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDAp
IHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcg
UGFzc3dvcmQiCi1sYXllciBhdCAoMTUsMTQ1KSBzaXplIDU4eDEzCitsYXllciBhdCAoMTEsMTE3
KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxh
eWVyIGF0ICgxODUsMTMyKSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAy
NgotICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNyw0Nykgc2l6ZSAyMHgxNAorbGF5ZXIg
YXQgKDE3MywxMTcpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2Cisg
IFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDQ2KSBzaXplIDIweDE0CiAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMTMpIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVu
IGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDE4NSwxMzIp
IHNpemUgMjB4MTMKK2xheWVyIGF0ICgxNzMsMTE3KSBzaXplIDIweDEzCiAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMKLWxheWVyIGF0ICgyMjMsMTQ0KSBzaXplIDE1Mngx
MwotICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNyw0KSBzaXplIDE1MngxMworbGF5ZXIg
YXQgKDIwMywxMTYpIHNpemUgMTUyeDEzCisgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgz
LDMpIHNpemUgMTUyeDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3LDApIHNpemUgOTV4
MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBz
aXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBh
c3N3b3JkIgotbGF5ZXIgYXQgKDIyMywxNDQpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgyMDMsMTE2
KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxh
eWVyIGF0ICgxNSw2Nykgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxMSw1
NCkgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAi
QSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgx
ODUsNjcpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTczLDU0KSBzaXpl
IDU4eDEzIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDU4eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNr
IGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDM1NSw2Nykg
c2l6ZSAyMDZ4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMzM1LDU0KSBzaXplIDIwNngx
MyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDZ4
MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJv
d24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoNjczLDU0KSBzaXpl
IDIweDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDY0NSw1NCkgc2l6ZSAyMHgxMyBzY3Jv
bGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMyBbY29s
b3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgx
MwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gg
anVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxNSwxNDUpIHNpemUgNTh4MTMg
c2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTEsMTE3KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRo
IDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzIFtjb2xvcj0jMDAw
MDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQg
b3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDE4NSwxMzIpIHNpemUgMjB4MTMgc2Nyb2xs
V2lkdGggMjg0CitsYXllciBhdCAoMTczLDExNykgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQK
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMyBbY29sb3I9IzAwMDAwMDk5
XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIg
dGhlIGxhenkgZG9nLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
ZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJm
bG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dAppbmRleCAyYzY3NmJmOTNlYWYuLjE0MDM4ZDYw
NjViOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L3JlcGFp
bnQvY2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZl
cnRpY2FsLXJsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAogKHJlcGFpbnQgcmVjdHMK
LSAgKHJlY3QgMTAgMjEgNSA1KQorICAocmVjdCAxMCAxNCA1IDUpCiApCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5w
dXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJv
bmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKaW5kZXggOThjNzEzZTY5
ZTk2Li5jZDhhZjQ1NjIxNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmls
bC1idXR0b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8tZmlsbC1i
dXR0b24tZXhwZWN0ZWQudHh0CkBAIC0xLDEwMCArMSwxMDAgQEAKIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4MjA5Ci0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHgyMDkKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MTg1CitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHgxODQKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDE4NAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgxNjAK
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAogICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NTd4MTgKICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA3NTc6ICJUaGlzIHRlc3RzIHRoYXQgdGhlIFN0cm9uZyBQYXNzd29yZCBB
dXRvRmlsbCBidXR0b24gcmVuZGVycyBpbiBhbiBhdXRvLWZpbGxlZCBpbnB1dC4gSXQgY2FuIG9u
bHkgYmUgdGVzdGVkIGluIHRoZSB0ZXN0IHRvb2wuIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMzQpIHNpemUgNzg0eDE1MQotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9
IGF0ICgwLDEzKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGlu
c2V0ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1OCwxMykgc2l6
ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDE1OCwxMykgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE2MiwxMykgc2l6ZSAxNTh4MTkgW2Jn
Y29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgzMjAsMTMpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVu
IGF0ICgzMjAsMTMpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5Q
VVR9IGF0ICgzMjQsMTMpIHNpemUgMzA2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgy
cHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjMwLDEz
KSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMwLDEzKSB3aWR0aCA0OiAiICIK
LSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoNjM0LDApIHNpemUgMjZ4MTkg
W2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgxMjYKKyAgICAgICAgUmVuZGVyVGV4
dENvbnRyb2wge0lOUFVUfSBhdCAoMCwxKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBb
Ym9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDE1OCwwKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4LDApIHdpZHRo
IDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMSkgc2l6
ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0K
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMjAsMCkgc2l6ZSA0eDE4CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDMyMCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENv
bnRyb2wge0lOUFVUfSBhdCAoMzI0LDEpIHNpemUgMzA2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFti
b3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoNjMwLDApIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICg2MzAsMCkgd2lkdGgg
NDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDYzNCwxKSBzaXpl
IDI2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCiAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICBSZW5k
ZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDQ1KSBzaXplIDE1OHgxMDYgW2JnY29sb3I9I0ZB
RkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxNTgsODgpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTgs
ODgpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgx
NjIsMzIpIHNpemUgMjZ4MTA2IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQg
IzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTg4LDg4KSBzaXplIDR4
MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTg4LDg4KSB3aWR0aCA0OiAiICIKLSAgICAgICAg
UmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTkyLDg4KSBzaXplIDE1OHgxOSBbYmdjb2xv
cj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotbGF5ZXIgYXQgKDExLDY2
KSBzaXplIDE1MngxMworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDIw
KSBzaXplIDE1OHgxMDYgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4
MDgwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTgsNjIpIHNpemUgNHgxOAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTgsNjIpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5k
ZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMjApIHNpemUgMjZ4MTA2IFtiZ2NvbG9yPSNG
QUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTg4LDYyKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTg4
LDYyKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAo
MTkyLDYzKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICM4MDgwODApXQorbGF5ZXIgYXQgKDExLDU0KSBzaXplIDE1MngxMwogICBSZW5kZXJGbGV4aWJs
ZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0
aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxMSw2Nikgc2l6ZSA1OHgxMworbGF5
ZXIgYXQgKDExLDU0KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgNTh4MTMKLWxheWVyIGF0ICgxNzMsNjYpIHNpemUgMTUyeDEzCitsYXllciBhdCAoMTczLDU0
KSBzaXplIDE1MngxMwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1
MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0j
MDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwog
ICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxh
eWVyIGF0ICgxNzMsNjYpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgxNzMsNTQpIHNpemUgNTh4MTMK
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMwotbGF5ZXIgYXQgKDMzNSw2
Nikgc2l6ZSAzMDB4MTMKK2xheWVyIGF0ICgzMzUsNTQpIHNpemUgMzAweDEzCiAgIFJlbmRlckZs
ZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNpemUgMzAweDEzCiAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDIwNSwwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiww
KSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgzMzUsNjYpIHNpemUgMjA2
eDEzCitsYXllciBhdCAoMzM1LDU0KSBzaXplIDIwNngxMwogICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDIwNngxMwotbGF5ZXIgYXQgKDY0NSw1Mykgc2l6ZSAyMHgxMyBzY3JvbGxX
aWR0aCA5NCBzY3JvbGxIZWlnaHQgMjYKK2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Ny
b2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0
ICgzLDMpIHNpemUgMjB4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMykgc2l6ZSA5
NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDAp
IHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcg
UGFzc3dvcmQiCi1sYXllciBhdCAoNjQ1LDUzKSBzaXplIDIweDEzCitsYXllciBhdCAoNjQ1LDU0
KSBzaXplIDIweDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMKLWxh
eWVyIGF0ICgxMSwxNDIpIHNpemUgMTUyeDEzCitsYXllciBhdCAoMTEsMTE3KSBzaXplIDE1Mngx
MwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMyw0Nikgc2l6ZSAxNTJ4MTQKICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQog
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4
dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTEs
MTQyKSBzaXplIDU4eDEzCitsYXllciBhdCAoMTEsMTE3KSBzaXplIDU4eDEzCiAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxheWVyIGF0ICgxNzMsMTI5KSBzaXplIDIw
eDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgorbGF5ZXIgYXQgKDE3MywxMTcpIHNp
emUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CiAgIFJlbmRlckZsZXhpYmxl
Qm94IHtESVZ9IGF0ICgzLDQ2KSBzaXplIDIweDE0CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMTMpIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRo
IDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDE3MywxMjkpIHNpemUgMjB4MTMKK2xh
eWVyIGF0ICgxNzMsMTE3KSBzaXplIDIweDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDAp
IHNpemUgMjB4MTMKLWxheWVyIGF0ICgyMDMsMTQxKSBzaXplIDE1MngxMworbGF5ZXIgYXQgKDIw
MywxMTYpIHNpemUgMTUyeDEzCiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNp
emUgMTUyeDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3LDApIHNpemUgOTV4MTMgW2Nv
bG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5
eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3Jk
IgotbGF5ZXIgYXQgKDIwMywxNDEpIHNpemUgNTh4MTMKK2xheWVyIGF0ICgyMDMsMTE2KSBzaXpl
IDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxheWVyIGF0
ICgxMSw2Nikgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICgxMSw1NCkgc2l6
ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWlj
ayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxNzMsNjYp
IHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTczLDU0KSBzaXplIDU4eDEz
IHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEz
IFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
Mjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3du
IGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDMzNSw2Nikgc2l6ZSAy
MDZ4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMzM1LDU0KSBzaXplIDIwNngxMyBzY3Jv
bGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDZ4MTMgW2Nv
bG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4
MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94
IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoNjQ1LDUzKSBzaXplIDIweDEz
IHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDY0NSw1NCkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0
aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMyBbY29sb3I9IzAw
MDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVk
IG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxMSwxNDIpIHNpemUgNTh4MTMgc2Nyb2xs
V2lkdGggMjg0CitsYXllciBhdCAoMTEsMTE3KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAog
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzIFtjb2xvcj0jMDAwMDAwOTld
CiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0
aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDE3MywxMjkpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGgg
Mjg0CitsYXllciBhdCAoMTczLDExNykgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxh
enkgZG9nLiIK
</data>
<flag name="commit-queue"
          id="499129"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475958</attachid>
            <date>2025-07-13 10:09:32 -0700</date>
            <delta_ts>2025-07-22 09:08:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295842-20250713100932.patch</filename>
            <type>text/plain</type>
            <size>5484</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2MzI4NTZkMzQ2YWVhOTg5OGY1MzgzYTAxYTQ1NDFlM2JiYWUyZjllIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFN1biwgMTMgSnVsIDIwMjUgMTA6MDg6MDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gaW5saW5lQmxvY2tCYXNlbGluZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBmbGV4LAogZ3Jp
ZCwgdGFibGUgYW5kIHRleHQgY29udHJvbCdzIGlubmVyIGNvbnRhaW5lcgogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTg0MgoKUmV2aWV3ZWQgYnkgQW50dGkgS29p
dmlzdG8uCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
bGFzdEluZmxvd0JveEJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjppbmxp
bmVCbG9ja0Jhc2VsaW5lKToKLS0tCiAuLi4vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVw
ZGF0ZXIuY3BwICAgfCAzNCArKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkg
aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggM2I3MmIyNzQ3Njk3Li5hYzg1MjhhMmRjOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAt
MzA3LDcgKzMwNyw2IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJs
b2NrQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94Jik7CiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGxhc3RJbmZsb3dCb3hCYXNlbGluZShjb25zdCBSZW5kZXJCbG9jayYgYmxvY2tD
b250YWluZXIpCiB7Ci0gICAgYXV0byB3cml0aW5nTW9kZSA9IGJsb2NrQ29udGFpbmVyLmNvbnRh
aW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpOwogICAgIGF1dG8gaGF2ZUluRmxvd0NoaWxkID0g
ZmFsc2U7CiAgICAgZm9yIChhdXRvKiBib3ggPSBibG9ja0NvbnRhaW5lci5sYXN0Q2hpbGRCb3go
KTsgYm94OyBib3ggPSBib3gtPnByZXZpb3VzU2libGluZ0JveCgpKSB7CiAgICAgICAgIGlmIChi
b3gtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKQEAgLTMyMSwxMiArMzIwLDI3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RJbmZsb3dCb3hCYXNlbGlu
ZShjb25zdCBSZW5kZXJCbG9jayYgYmxvY2tDCiAgICAgICAgIGlmIChib3gtPnNob3VsZEFwcGx5
TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIGlm
IChpczxSZW5kZXJUYWJsZT4oKmJveCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICBpZiAoaXM8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4oKmJveCkgfHwgaXM8UmVu
ZGVyTWVudUxpc3Q+KCpib3gpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBiYXNlbGluZSA9IGxh
c3RJbmZsb3dCb3hCYXNlbGluZShkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmJveCkpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBib3gtPmxvZ2ljYWxUb3AoKSArICpiYXNlbGluZTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzPFJlbmRlckZsZXhpYmxl
Qm94PigqYm94KSB8fCBpczxSZW5kZXJHcmlkPigqYm94KSkgeworICAgICAgICAgICAgaWYgKGF1
dG8gYmFzZWxpbmUgPSBib3gtPmZpcnN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGJveC0+bG9naWNhbFRvcCgpICsgKmJhc2VsaW5lOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBpbmxpbmVCbG9ja0Jh
c2VsaW5lKCpib3gpKQogICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyAoYm94LT5sb2dp
Y2FsVG9wKCkgKyByZXN1bHQudmFsdWUoKSkudG9JbnQoKSB9OyAvLyBUcmFuc2xhdGUgdG8gb3Vy
IGNvb3JkaW5hdGUgc3BhY2UuCiAgICAgfQogCiAgICAgaWYgKCFoYXZlSW5GbG93Q2hpbGQgJiYg
YmxvY2tDb250YWluZXIuaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIChmb250TWV0
cmljc0Jhc2VkQmFzZWxpbmUoYmxvY2tDb250YWluZXIpICsgKHdyaXRpbmdNb2RlLmlzSG9yaXpv
bnRhbCgpID8gYmxvY2tDb250YWluZXIuYm9yZGVyVG9wKCkgKyBibG9ja0NvbnRhaW5lci5wYWRk
aW5nVG9wKCkgOiBibG9ja0NvbnRhaW5lci5ib3JkZXJSaWdodCgpICsgYmxvY2tDb250YWluZXIu
cGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpOworICAgICAgICByZXR1cm4gKGZvbnRNZXRyaWNzQmFz
ZWRCYXNlbGluZShibG9ja0NvbnRhaW5lcikgKyAoYmxvY2tDb250YWluZXIuY29udGFpbmluZ0Js
b2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBibG9ja0NvbnRhaW5lci5ib3Jk
ZXJUb3AoKSArIGJsb2NrQ29udGFpbmVyLnBhZGRpbmdUb3AoKSA6IGJsb2NrQ29udGFpbmVyLmJv
cmRlclJpZ2h0KCkgKyBibG9ja0NvbnRhaW5lci5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMzM0LDE4ICszNDgsNyBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVu
ZGVyQm94KQogewogICAgIEFTU0VSVCghKHJlbmRlckJveC5pc0lubGluZSgpICYmIHJlbmRlckJv
eC5lbGVtZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+aXNGb3JtQ29udHJvbEVsZW1lbnQo
KSkpOwogICAgIEFTU0VSVCghKHJlbmRlckJveC5pc0lubGluZSgpICYmIHJlbmRlckJveC5lbGVt
ZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+c2hhZG93SG9zdCgpICYmIHJlbmRlckJveC5l
bGVtZW50KCktPnNoYWRvd0hvc3QoKS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkpOwotCi0gICAg
YXV0byB3cml0aW5nTW9kZSA9IHJlbmRlckJveC5jb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01v
ZGUoKTsKLSAgICBhdXRvIGxpbmVEaXJlY3Rpb24gPSB3cml0aW5nTW9kZS5pc0hvcml6b250YWwo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lOwotCi0gICAgaWYgKGlzPFJlbmRlclRh
YmxlPihyZW5kZXJCb3gpKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgaWYgKChpczxSZW5k
ZXJGbGV4aWJsZUJveD4ocmVuZGVyQm94KSB8fCBpczxSZW5kZXJHcmlkPihyZW5kZXJCb3gpKSAm
JiAhaXM8UmVuZGVyTWVudUxpc3Q+KHJlbmRlckJveCkgJiYgIWlzPFJlbmRlclRleHRDb250cm9s
SW5uZXJDb250YWluZXI+KHJlbmRlckJveCkpCi0gICAgICAgIHJldHVybiByZW5kZXJCb3guZmly
c3RMaW5lQmFzZWxpbmUoKTsKLQotICAgIGlmIChDaGVja2VkUHRyIGlubmVyQ29udGFpbmVyID0g
ZHluYW1pY0Rvd25jYXN0PFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KHJlbmRlckJv
eCkpCi0gICAgICAgIHJldHVybiBsYXN0SW5mbG93Qm94QmFzZWxpbmUoKmlubmVyQ29udGFpbmVy
KTsKKyAgICBBU1NFUlQoIWlzPFJlbmRlclRhYmxlPihyZW5kZXJCb3gpICYmICFpczxSZW5kZXJG
bGV4aWJsZUJveD4ocmVuZGVyQm94KSAmJiAhaXM8UmVuZGVyR3JpZD4ocmVuZGVyQm94KSAmJiAh
aXM8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4ocmVuZGVyQm94KSk7CiAKICAgICBp
ZiAoQ2hlY2tlZFB0ciBibG9ja0Zsb3cgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93
PihyZW5kZXJCb3gpKSB7CiAgICAgICAgIGlmIChibG9ja0Zsb3ctPnN0eWxlKCkuZGlzcGxheSgp
ID09IERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jaykgewpAQCAtMzU2LDYgKzM1OSw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoY29uc3QgUmVu
ZGVyQm94JiByZW5kZXJCb3gpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
fQogCisgICAgICAgIGF1dG8gd3JpdGluZ01vZGUgPSByZW5kZXJCb3guY29udGFpbmluZ0Jsb2Nr
KCktPndyaXRpbmdNb2RlKCk7CiAgICAgICAgIGlmIChibG9ja0Zsb3ctPnN0eWxlKCkub3ZlcmZs
b3dZKCkgIT0gT3ZlcmZsb3c6OlZpc2libGUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBDYWxs
ZXIgYWRkcyBtYXJnaW4gYmVmb3JlIHNvIHdlIGNhbid0IHlldCByZXR1cm4gbWFyZ2luIGJveCBo
ZWlnaHQuCiAgICAgICAgICAgICBhdXRvIGJvcmRlckJveEhlaWdodGhXaXRodE1hcmdpbkJvdHRv
bSA9IGJsb2NrRmxvdy0+bWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkgLSAgKHdy
aXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gcmVuZGVyQm94Lm1hcmdpblRvcCgpIDogcmVuZGVy
Qm94Lm1hcmdpblJpZ2h0KCkpOwpAQCAtMzcwLDcgKzM3NCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJCb3gpCiAgICAgICAgICAgICBpZiAoIWJsb2NrRmxvdy0+aGFzTGluZXMoKSkgewogICAgICAg
ICAgICAgICAgIGlmICghYmxvY2tGbG93LT5oYXNMaW5lSWZFbXB0eSgpKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4geyB9OwotICAgICAgICAgICAgICAgIHJldHVybiAoZm9udE1ldHJpY3NC
YXNlZEJhc2VsaW5lKCpibG9ja0Zsb3cpICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExp
bmUgPyBibG9ja0Zsb3ctPmJvcmRlclRvcCgpICsgYmxvY2tGbG93LT5wYWRkaW5nVG9wKCkgOiBi
bG9ja0Zsb3ctPmJvcmRlclJpZ2h0KCkgKyBibG9ja0Zsb3ctPnBhZGRpbmdSaWdodCgpKSkudG9J
bnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGZvbnRNZXRyaWNzQmFzZWRCYXNlbGluZSgq
YmxvY2tGbG93KSArICh3cml0aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IGJsb2NrRmxvdy0+Ym9y
ZGVyVG9wKCkgKyBibG9ja0Zsb3ctPnBhZGRpbmdUb3AoKSA6IGJsb2NrRmxvdy0+Ym9yZGVyUmln
aHQoKSArIGJsb2NrRmxvdy0+cGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBpZiAoYXV0byogaW5saW5lTGF5b3V0ID0gYmxvY2tGbG93LT5pbmxp
bmVMYXlvdXQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>475959</attachid>
            <date>2025-07-13 10:10:21 -0700</date>
            <delta_ts>2025-07-14 16:45:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-295842-20250713101020.patch</filename>
            <type>text/plain</type>
            <size>121762</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjZWFhNjY2ZTVkYTY4MjEyYjk5YmE3ODRhM2Y4ZTYwYmQ3YmFjNjQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgNSBKdWwgMjAyNSAwODowNTowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtDbGVhbnVw
XSBpbmxpbmVCbG9ja0Jhc2VsaW5lIHNob3VsZCBub3QgYmUgY2FsbGVkIG9uIGZsZXgsCiBncmlk
LCB0YWJsZSBhbmQgdGV4dCBjb250cm9sJ3MgaW5uZXIgY29udGFpbmVyCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1ODQyCgpSZXZpZXdlZCBieSBBbnR0aSBLb2l2
aXN0by4KCiogTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRp
Y2FsLXJsLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTgvZmFzdC9m
b3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0
dG9uLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2VxdW9pYS13azIv
ZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZp
bGwtYnV0dG9uLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2VxdW9p
YS13azIvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVk
LnR4dDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxs
LWJ1dHRvbi9pbnB1dC1zdHJvbmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L3JlcGFpbnQvY2hlY2tib3gt
b3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1
dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6Zm9udE1ldHJpY3NCYXNlZEJhc2VsaW5lKToKKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpsYXN0SW5mbG93Qm94QmFzZWxpbmUpOgooV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246OmlubGluZUJsb2NrQmFzZWxpbmUpOgooV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OmJhc2VsaW5lUG9zaXRpb24pOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OnNldEludGVncmF0aW9uQmFzZWxpbmUpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJv
eEdlb21ldHJ5VXBkYXRlcjo6dXBkYXRlQm94R2VvbWV0cnlBZnRlckludGVncmF0aW9uTGF5b3V0
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2FyZXRSZWN0Q29tcHV0YXRpb24uY3BwOgoo
V2ViQ29yZTo6Y29tcHV0ZUNhcmV0UmVjdEZvckVtcHR5RWxlbWVudCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwOgooV2ViQ29yZTo6TGVnYWN5TGluZUxh
eW91dDo6bGF5b3V0TGluZUJveGVzKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QXR0YWNobWVudC5jcHA6CihXZWJDb3JlOjpSZW5kZXJBdHRhY2htZW50OjpiYXNlbGluZVBvc2l0
aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0
YWNobWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bGluZUhlaWdodCBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2Nr
V2l0aE5vQ2hpbGRyZW4pOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbkZsb3dD
aGlsZHJlbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdEluaXRpYWxMZXR0ZXJQ
b3NpdGlvbik6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dElubGluZUNvbnRlbnQp
OgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93Lmg6CiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6OmxpbmVI
ZWlnaHQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0
KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94Lmg6CihXZWJD
b3JlOjpSZW5kZXJCb3g6OmlubGluZUJsb2NrQmFzZWxpbmUgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hJbmxpbmVzLmg6CihXZWJDb3JlOjpSZW5kZXJCb3g6Om1h
cmdpbkJveExvZ2ljYWxIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
dXR0b24uY3BwOgooV2ViQ29yZTo6c3ludGhlc2l6ZWRCYXNlbGluZUZyb21Db250ZW50Qm94KTog
RGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlckJ1dHRvbjo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6
IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oOgoqIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgoo
V2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94
KToKKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxC
b3gpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHA6CihXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRDb250cm9sKToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgooV2ViQ29yZTo6
UmVuZGVyRmxleGlibGVCb3g6OnBlcmZvcm1GbGV4TGF5b3V0KToKKFdlYkNvcmU6OlJlbmRlckZs
ZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OlJl
bmRlckZsZXhpYmxlQm94OjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHA6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRHcmlkKToK
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dE1hc29ucnkpOgooV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpSZW5kZXJHcmlk
OjppbmxpbmVCbG9ja0Jhc2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6
CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Omxp
bmVIZWlnaHQgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVySW5saW5lOjpiYXNlbGlu
ZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5j
cHA6CihXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OnVwZGF0ZUZyb21TdHlsZSk6CihXZWJDb3Jl
OjpSZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQgY29uc3QpOiBEZWxldGVkLgooV2ViQ29yZTo6
UmVuZGVyTGluZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6YmFz
ZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0IGNvbnN0KTog
RGVsZXRlZC4KKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24gY29u
c3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJTbGlk
ZXI6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGFibGU6OmJhc2VsaW5lUG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgooV2ViQ29yZTo6UmVuZGVyVGFibGU6OmlubGluZUJsb2NrQmFzZWxpbmUgY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CihXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbE11bHRpTGluZTo6YmFzZWxpbmVQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CihXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlubmVyVGV4dFJlbmRlcmVyIGNvbnN0
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZVdpZHRoLmNwcDoKKFdlYkNv
cmU6OkxpbmVXaWR0aDo6dXBkYXRlQXZhaWxhYmxlV2lkdGgpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVyTWF0
aE1MQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaDoKLS0tCiAuLi4vTGF5b3V0
SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVwZGF0ZXIuY3BwICAgfCAzMzQgKysrKysrKysrKysrKysr
KystCiAuLi4vcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcCAgICAgICAgfCAgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCB8ICAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckF0dGFjaG1lbnQuY3BwIHwgIDE0IC0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmggICB8ICAgMiAtCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwICAgICAgfCAxMDEgLS0tLS0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCAgICAgICAgfCAgIDUgLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgIHwgIDcxICstLS0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCAgICB8ICAgMSAtCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgICAgfCAgMTYgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICB8ICAgNyArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveElubGluZXMuaCAgIHwgICAxICsKIC4uLi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICB8ICAgNSAtCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCAgICAgfCAgMTYgLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oICAgICAgIHwgICAyIC0KIC4uLi9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCB8ICAgNCArLQogLi4uL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgICAgIHwgICA0ICstCiAuLi4vV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwICAgfCAgMTggKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oICB8ICAgMiAtCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgICAgICAgfCAgMjAgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmggICAgICAgICB8ICAgMiAtCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuY3BwICAgICAgfCAgMTIgLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmggICAgICAgIHwgICAyIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwICAgICB8ICAxMyAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmggICAgICAgfCAgIDMgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpbmVCcmVhay5jcHAgIHwgIDIxIC0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGluZUJyZWFrLmggICAgfCAgIDUgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwICAgIHwgIDEyIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmggICAgICB8ICAgMSAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dE1hcmtlci5jcHAgfCAgMTQgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuaCAgIHwgICAyIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5oICAgICB8ICAgNyAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cCAgICAgfCAgIDYgLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oICAg
ICAgIHwgICAxIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgICAg
ICB8ICAxMyAtCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCAgICAgICAg
fCAgIDIgLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCAgIHwg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCAgfCAg
IDUgLQogLi4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgIHwgICA1
IC0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCAgICB8ICAgMSAt
CiAuLi4vcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgfCAgIDUgKwog
Li4uL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAgIHwgICAzICsKIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAgICB8ICAgMiArLQogLi4u
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwICAgIHwgICA4IC0KIC4uLi9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmggICAgICB8ICAgMiAtCiAuLi5jaGVj
a2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQgfCAgIDIgKy0KIC4uLm9uZy1w
YXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCB8ICA4MiArKy0tLQogLi4ub25n
LXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0IHwgIDgyICsrLS0tCiAuLi5j
aGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQgfCAgIDIgKy0KIC4uLm9u
Zy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCB8ICA5NiArKy0tLQogLi4u
Y2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IHwgICAyICstCiAuLi5v
bmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQgfCAgODIgKystLS0KIDUy
IGZpbGVzIGNoYW5nZWQsIDUzNyBpbnNlcnRpb25zKCspLCA1ODcgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggYzVhMTVk
MDdjMzg1Li5hYzg1MjhhMmRjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2Vv
bWV0cnlVcGRhdGVyLmNwcApAQCAtMjgsMzAgKzI4LDQzIEBACiAKICNpbmNsdWRlICJGb3JtYXR0
aW5nQ29uc3RyYWludHMuaCIKICNpbmNsdWRlICJJbmxpbmVXYWxrZXIuaCIKKyNpbmNsdWRlICJM
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCIKKyNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdS
b290LmgiCisjaWYgRU5BQkxFKE1VTFRJX1JFUFJFU0VOVEFUSU9OX0hFSUMpCisjaW5jbHVkZSAi
TXVsdGlSZXByZXNlbnRhdGlvbkhFSUNNZXRyaWNzLmgiCisjZW5kaWYKICNpbmNsdWRlICJSZW5k
ZXJBdHRhY2htZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAi
UmVuZGVyQm94SW5saW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlckJ1dHRvbi5oIgogI2luY2x1ZGUg
IlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnRJ
bmxpbmVzLmgiCisjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKKyNpbmNsdWRlICJS
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyRnJhbWVTZXQuaCIKICNpbmNsdWRlICJSZW5kZXJHcmlkLmgiCisj
aW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgorI2luY2x1ZGUgIlJlbmRlcklGcmFtZS5oIgog
I2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5b3V0U3RhdGUuaCIKICNpbmNsdWRlICJSZW5kZXJMaW5l
QnJlYWsuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0Qm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlz
dEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0TWFya2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TWF0aE1MQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgogI2luY2x1ZGUgIlJl
bmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGFibGVDZWxsLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRl
clZpZXdUcmFuc2l0aW9uQ2FwdHVyZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3Bh
Y2UgTGF5b3V0SW50ZWdyYXRpb24gewpAQCAtMjg0LDggKzI5NywzMTggQEAgc3RhdGljIGlubGlu
ZSBMYXlvdXRTaXplIHNjcm9sbGJhckxvZ2ljYWxTaXplKGNvbnN0IFJlbmRlckJveCYgcmVuZGVy
ZXIpCiAgICAgcmV0dXJuIHsgaG9yaXpvbnRhbFNwYWNlUmVzZXJ2ZWRGb3JTY3JvbGxiYXIsIHZl
cnRpY2FsU3BhY2VSZXNlcnZlZEZvclNjcm9sbGJhciB9OwogfQogCi1zdGF0aWMgaW5saW5lIHZv
aWQgc2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlckJveCwgV3Jp
dGluZ01vZGUgd3JpdGluZ01vZGUpCitzdGF0aWMgTGF5b3V0VW5pdCBmb250TWV0cmljc0Jhc2Vk
QmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJCb3gpCiB7CisgICAgYXV0byYgZm9udE1l
dHJpY3MgPSByZW5kZXJCb3guZmlyc3RMaW5lU3R5bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgp
OworICAgIHJldHVybiBmb250TWV0cmljcy5pbnRBc2NlbnQoKSArIChyZW5kZXJCb3gubGluZUhl
aWdodCgpIC0gZm9udE1ldHJpY3MuaW50SGVpZ2h0KCkpIC8gMjsKK30KKworc3RhdGljIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGluZShjb25zdCBSZW5kZXJCb3gm
KTsKKworc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdEluZmxvd0JveEJhc2Vs
aW5lKGNvbnN0IFJlbmRlckJsb2NrJiBibG9ja0NvbnRhaW5lcikKK3sKKyAgICBhdXRvIGhhdmVJ
bkZsb3dDaGlsZCA9IGZhbHNlOworICAgIGZvciAoYXV0byogYm94ID0gYmxvY2tDb250YWluZXIu
bGFzdENoaWxkQm94KCk7IGJveDsgYm94ID0gYm94LT5wcmV2aW91c1NpYmxpbmdCb3goKSkgewor
ICAgICAgICBpZiAoYm94LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBoYXZlSW5GbG93Q2hpbGQgPSB0cnVlOworCisg
ICAgICAgIGlmIChib3gtPmlzV3JpdGluZ01vZGVSb290KCkpCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBpZiAoYm94LT5zaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoaXM8UmVuZGVyVGFibGU+KCpib3gp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGlzPFJlbmRlclRleHRDb250
cm9sSW5uZXJDb250YWluZXI+KCpib3gpIHx8IGlzPFJlbmRlck1lbnVMaXN0PigqYm94KSkgewor
ICAgICAgICAgICAgaWYgKGF1dG8gYmFzZWxpbmUgPSBsYXN0SW5mbG93Qm94QmFzZWxpbmUoZG93
bmNhc3Q8UmVuZGVyQmxvY2s+KCpib3gpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYm94LT5s
b2dpY2FsVG9wKCkgKyAqYmFzZWxpbmU7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChpczxSZW5kZXJGbGV4aWJsZUJveD4oKmJveCkgfHwgaXM8UmVuZGVy
R3JpZD4oKmJveCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lID0gYm94LT5maXJz
dExpbmVCYXNlbGluZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBib3gtPmxvZ2ljYWxUb3Ao
KSArICpiYXNlbGluZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGF1dG8gcmVzdWx0ID0gaW5saW5lQmxvY2tCYXNlbGluZSgqYm94KSkKKyAgICAgICAg
ICAgIHJldHVybiBMYXlvdXRVbml0IHsgKGJveC0+bG9naWNhbFRvcCgpICsgcmVzdWx0LnZhbHVl
KCkpLnRvSW50KCkgfTsgLy8gVHJhbnNsYXRlIHRvIG91ciBjb29yZGluYXRlIHNwYWNlLgorICAg
IH0KKworICAgIGlmICghaGF2ZUluRmxvd0NoaWxkICYmIGJsb2NrQ29udGFpbmVyLmhhc0xpbmVJ
ZkVtcHR5KCkpCisgICAgICAgIHJldHVybiAoZm9udE1ldHJpY3NCYXNlZEJhc2VsaW5lKGJsb2Nr
Q29udGFpbmVyKSArIChibG9ja0NvbnRhaW5lci5jb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01v
ZGUoKS5pc0hvcml6b250YWwoKSA/IGJsb2NrQ29udGFpbmVyLmJvcmRlclRvcCgpICsgYmxvY2tD
b250YWluZXIucGFkZGluZ1RvcCgpIDogYmxvY2tDb250YWluZXIuYm9yZGVyUmlnaHQoKSArIGJs
b2NrQ29udGFpbmVyLnBhZGRpbmdSaWdodCgpKSkudG9JbnQoKTsKKyAgICByZXR1cm4geyB9Owor
fQorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5l
KGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQoreworICAgIEFTU0VSVCghKHJlbmRlckJveC5p
c0lubGluZSgpICYmIHJlbmRlckJveC5lbGVtZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+
aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkpOworICAgIEFTU0VSVCghKHJlbmRlckJveC5pc0lubGlu
ZSgpICYmIHJlbmRlckJveC5lbGVtZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+c2hhZG93
SG9zdCgpICYmIHJlbmRlckJveC5lbGVtZW50KCktPnNoYWRvd0hvc3QoKS0+aXNGb3JtQ29udHJv
bEVsZW1lbnQoKSkpOworICAgIEFTU0VSVCghaXM8UmVuZGVyVGFibGU+KHJlbmRlckJveCkgJiYg
IWlzPFJlbmRlckZsZXhpYmxlQm94PihyZW5kZXJCb3gpICYmICFpczxSZW5kZXJHcmlkPihyZW5k
ZXJCb3gpICYmICFpczxSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPihyZW5kZXJCb3gp
KTsKKworICAgIGlmIChDaGVja2VkUHRyIGJsb2NrRmxvdyA9IGR5bmFtaWNEb3duY2FzdDxSZW5k
ZXJCbG9ja0Zsb3c+KHJlbmRlckJveCkpIHsKKyAgICAgICAgaWYgKGJsb2NrRmxvdy0+c3R5bGUo
KS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZUJsb2NrKSB7CisgICAgICAgICAgICAv
LyBUaGUgYmFzZWxpbmUgb2YgYW4gJ2lubGluZS1ibG9jaycgaXMgdGhlIGJhc2VsaW5lIG9mIGl0
cyBsYXN0IGxpbmUgYm94IGluIHRoZSBub3JtYWwgZmxvdywgdW5sZXNzIGl0IGhhcyBlaXRoZXIg
bm8gaW4tZmxvdyBsaW5lIGJveGVzIG9yIGlmIGl0cyAnb3ZlcmZsb3cnCisgICAgICAgICAgICAv
LyBwcm9wZXJ0eSBoYXMgYSBjb21wdXRlZCB2YWx1ZSBvdGhlciB0aGFuICd2aXNpYmxlJy4gc2Vl
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMi92aXN1ZGV0Lmh0bWwKKyAgICAgICAgICAgIGF1
dG8gc2hvdWxkU3ludGhlc2l6ZUJhc2VsaW5lID0gIWJsb2NrRmxvdy0+c3R5bGUoKS5pc092ZXJm
bG93VmlzaWJsZSgpICYmICFpczxSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s+KCpibG9ja0Zs
b3cpOworICAgICAgICAgICAgaWYgKHNob3VsZFN5bnRoZXNpemVCYXNlbGluZSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisKKyAgICAgICAgYXV0byB3cml0aW5nTW9k
ZSA9IHJlbmRlckJveC5jb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKTsKKyAgICAgICAg
aWYgKGJsb2NrRmxvdy0+c3R5bGUoKS5vdmVyZmxvd1koKSAhPSBPdmVyZmxvdzo6VmlzaWJsZSkg
eworICAgICAgICAgICAgLy8gRklYTUU6IENhbGxlciBhZGRzIG1hcmdpbiBiZWZvcmUgc28gd2Ug
Y2FuJ3QgeWV0IHJldHVybiBtYXJnaW4gYm94IGhlaWdodC4KKyAgICAgICAgICAgIGF1dG8gYm9y
ZGVyQm94SGVpZ2h0aFdpdGh0TWFyZ2luQm90dG9tID0gYmxvY2tGbG93LT5tYXJnaW5Cb3hMb2dp
Y2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSAtICAod3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBy
ZW5kZXJCb3gubWFyZ2luVG9wKCkgOiByZW5kZXJCb3gubWFyZ2luUmlnaHQoKSk7CisgICAgICAg
ICAgICByZXR1cm4gYm9yZGVyQm94SGVpZ2h0aFdpdGh0TWFyZ2luQm90dG9tOworICAgICAgICB9
CisKKyAgICAgICAgYXV0byBsYXN0QmFzZWxpbmUgPSBbJl0gLT4gc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgaGVyZSB3ZSBvbmx5IHRha2UgdGhl
IGxlZnQgYW5kIGJvdHRvbSBpbnRvIGNvbnNpZGVyYXRpb24uIE91ciBjYWxsZXIgdGFrZXMgdGhl
IHJpZ2h0IGFuZCB0b3AgaW50byBjb25zaWRlcmF0aW9uLgorICAgICAgICAgICAgaWYgKCFibG9j
a0Zsb3ctPmNoaWxkcmVuSW5saW5lKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmZs
b3dCb3hCYXNlbGluZSgqYmxvY2tGbG93KTsKKworICAgICAgICAgICAgaWYgKCFibG9ja0Zsb3ct
Pmhhc0xpbmVzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJsb2NrRmxvdy0+aGFzTGluZUlm
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gKGZvbnRNZXRyaWNzQmFzZWRCYXNlbGluZSgqYmxvY2tGbG93KSArICh3cml0aW5n
TW9kZS5pc0hvcml6b250YWwoKSA/IGJsb2NrRmxvdy0+Ym9yZGVyVG9wKCkgKyBibG9ja0Zsb3ct
PnBhZGRpbmdUb3AoKSA6IGJsb2NrRmxvdy0+Ym9yZGVyUmlnaHQoKSArIGJsb2NrRmxvdy0+cGFk
ZGluZ1JpZ2h0KCkpKS50b0ludCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
YXV0byogaW5saW5lTGF5b3V0ID0gYmxvY2tGbG93LT5pbmxpbmVMYXlvdXQoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmxvb3JUb0ludChpbmxpbmVMYXlvdXQtPmxhc3RMaW5lTG9naWNhbEJh
c2VsaW5lKCkpOworCisgICAgICAgICAgICBpZiAoYmxvY2tGbG93LT5zdmdUZXh0TGF5b3V0KCkp
IHsKKyAgICAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGJsb2NrRmxvdy0+Zmlyc3RMaW5lU3R5
bGUoKTsKKyAgICAgICAgICAgICAgICAvLyBMZWdhY3lJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVz
SW5CbG9ja0RpcmVjdGlvbiB3aWxsIGZsaXAgbGluZXMgaW4gY2FzZSBvZiB2ZXJ0aWNhbExSIG1v
ZGUsIHNvIHdlIGNhbiBhc3N1bWUgdmVydGljYWxSTCBmb3Igbm93LgorICAgICAgICAgICAgICAg
IHJldHVybiBMYXlvdXRVbml0KHN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCkuaW50QXNjZW50
KGJsb2NrRmxvdy0+bGVnYWN5Um9vdEJveCgpLT5iYXNlbGluZVR5cGUoKSkgKyAoc3R5bGUud3Jp
dGluZ01vZGUoKS5pc0xpbmVJbnZlcnRlZCgpID8gYmxvY2tGbG93LT5sb2dpY2FsSGVpZ2h0KCkg
LSBibG9ja0Zsb3ctPmxlZ2FjeVJvb3RCb3goKS0+bG9naWNhbEJvdHRvbSgpIDogYmxvY2tGbG93
LT5sZWdhY3lSb290Qm94KCktPmxvZ2ljYWxUb3AoKSkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIGxhc3RCYXNlbGlu
ZSgpOworICAgIH0KKworICAgIGlmIChDaGVja2VkUHRyIGJsb2NrUmVuZGVyZXIgPSBkeW5hbWlj
RG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlckJveCkpCisgICAgICAgIHJldHVybiBsYXN0SW5m
bG93Qm94QmFzZWxpbmUoKmJsb2NrUmVuZGVyZXIpOworCisgICAgcmV0dXJuIHsgfTsKK30KKwor
TGF5b3V0VW5pdCBzdGF0aWMgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gmIHJlbmRl
ckJveCkKK3sKKyAgICBBU1NFUlQocmVuZGVyQm94LmlzSW5GbG93KCkpOworCisgICAgYXV0byB3
cml0aW5nTW9kZSA9IHJlbmRlckJveC5jb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01vZGUoKTsK
KyAgICBhdXRvIG1hcmdpbkJlZm9yZSA9IHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gcmVu
ZGVyQm94Lm1hcmdpblRvcCgpIDogcmVuZGVyQm94Lm1hcmdpblJpZ2h0KCk7CisKKyAgICBpZiAo
cmVuZGVyQm94LnNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkgeworICAgICAgICBpZiAo
cmVuZGVyQm94LmlzRmllbGRzZXQoKSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyB0byBwcmVz
ZXJ2ZSBsZWdhY3kgYmVoYXZpb3IuCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyQm94Lm1hcmdp
bkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biByb3VuZFRvSW50KHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2Rl
KSk7CisgICAgfQorCisgICAgaWYgKHJlbmRlckJveC5pc1dyaXRpbmdNb2RlUm9vdCgpKQorICAg
ICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3
cml0aW5nTW9kZSkpOworCisgICAgaWYgKGlzPFJlbmRlcklGcmFtZT4ocmVuZGVyQm94KQorICAg
ICAgICB8fCBpczxSZW5kZXJFbWJlZGRlZE9iamVjdD4ocmVuZGVyQm94KQorICAgICAgICB8fCBp
czxMZWdhY3lSZW5kZXJTVkdSb290PihyZW5kZXJCb3gpCisgICAgICAgIHx8IGlzPFJlbmRlckhU
TUxDYW52YXM+KHJlbmRlckJveCkKKyAgICAgICAgfHwgaXM8UmVuZGVyVmlld1RyYW5zaXRpb25D
YXB0dXJlPihyZW5kZXJCb3gpKQorICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJCb3gu
bWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpOworCisjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkKKyAgICBpZiAoQ2hlY2tlZFB0ciByZW5kZXJlciA9IGR5bmFtaWNEb3du
Y2FzdDxSZW5kZXJBdHRhY2htZW50PihyZW5kZXJCb3gpKSB7CisgICAgICAgIGlmIChhdXRvKiBi
YXNlbGluZUVsZW1lbnQgPSByZW5kZXJlci0+YXR0YWNobWVudEVsZW1lbnQoKS53aWRlTGF5b3V0
SW1hZ2VFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBiYXNlbGluZUVsZW1lbnRS
ZW5kZXJCb3ggPSBiYXNlbGluZUVsZW1lbnQtPnJlbmRlckJveCgpKSB7CisgICAgICAgICAgICAg
ICAgLy8gVGhpcyBpcyB0aGUgYm90dG9tIG9mIHRoZSBpbWFnZSBhc3N1bWluZyBpdCBpcyB2ZXJ0
aWNhbGx5IGNlbnRlcmVkLgorICAgICAgICAgICAgICAgIHJldHVybiAocmVuZGVyZXItPmhlaWdo
dCgpICsgYmFzZWxpbmVFbGVtZW50UmVuZGVyQm94LT5oZWlnaHQoKSkgLyAyOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgLy8gRmFsbGJhY2sgdG8gdGhlIGJvdHRvbSBvZiB0aGUgYXR0YWNo
bWVudCBpZiB0aGVyZSBpcyBubyBpbWFnZS4KKyAgICAgICAgICAgIHJldHVybiByZW5kZXJlci0+
aGVpZ2h0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT50aGVtZSgpLmF0
dGFjaG1lbnRCYXNlbGluZSgqcmVuZGVyZXIpOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKENo
ZWNrZWRQdHIgcmVuZGVyZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQnV0dG9uPihyZW5kZXJC
b3gpKSB7CisgICAgICAgIC8vIFdlIGNhbm5vdCByZWx5IG9uIFJlbmRlckZsZXhpYmxlQm94Ojpi
YXNlbGluZVBvc2l0aW9uKCkgYmVjYXVzZSBvZiBmbGV4Ym94ZXMgaGF2ZSBzb21lIHNwZWNpYWwg
YmVoYXZpb3IKKyAgICAgICAgLy8gcmVnYXJkaW5nIGJhc2VsaW5lcyB0aGF0IHNob3VsZG4ndCBh
cHBseSB0byBidXR0b25zLgorICAgICAgICBpZiAoYXV0byBiYXNlbGluZSA9IHJlbmRlckJveC5m
aXJzdExpbmVCYXNlbGluZSgpKQorICAgICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSArICpi
YXNlbGluZTsKKyAgICAgICAgYXV0byBjb250ZW50Qm94Qm90dG9tID0gd3JpdGluZ01vZGUuaXNI
b3Jpem9udGFsKCkgPyByZW5kZXJlci0+Ym9yZGVyVG9wKCkgKyByZW5kZXJlci0+cGFkZGluZ1Rv
cCgpICsgcmVuZGVyZXItPmNvbnRlbnRCb3hIZWlnaHQoKSA6IHJlbmRlcmVyLT5ib3JkZXJSaWdo
dCgpICsgcmVuZGVyZXItPnBhZGRpbmdSaWdodCgpICsgcmVuZGVyZXItPmNvbnRlbnRCb3hXaWR0
aCgpOworICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlICsgY29udGVudEJveEJvdHRvbTsKKyAg
ICB9CisKKyAgICBpZiAoQ2hlY2tlZFB0ciByZW5kZXJlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5k
ZXJJbWFnZT4ocmVuZGVyQm94KSkgeworICAgICAgICBhdXRvIG9mZnNldCA9IExheW91dFVuaXQg
eyB9OworI2lmIEVOQUJMRShNVUxUSV9SRVBSRVNFTlRBVElPTl9IRUlDKQorICAgICAgICBpZiAo
cmVuZGVyZXItPmlzTXVsdGlSZXByZXNlbnRhdGlvbkhFSUMoKSkgeworICAgICAgICAgICAgYXV0
byBtZXRyaWNzID0gcmVuZGVyZXItPnN0eWxlKCkuZm9udENhc2NhZGUoKS5wcmltYXJ5Rm9udCgp
LT5tZXRyaWNzRm9yTXVsdGlSZXByZXNlbnRhdGlvbkhFSUMoKTsKKyAgICAgICAgICAgIG9mZnNl
dCA9IExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKG1ldHJpY3MuZGVzY2VudCk7CisgICAgICAg
IH0KKyNlbmRpZgorICAgICAgICByZXR1cm4gcm91bmRUb0ludChyZW5kZXJlci0+bWFyZ2luQm94
TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpIC0gb2Zmc2V0OworICAgIH0KKworICAgIGlmIChD
aGVja2VkUHRyIHJlbmRlcmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RCb3g+KHJlbmRl
ckJveCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaGFyZGNvZGVkIGJhc2VsaW5lQWRqdXN0
bWVudCBpcyB3aGF0IHdlIHVzZWQgdG8gZG8gZm9yIHRoZSBvbGQKKyAgICAgICAgLy8gd2lkZ2V0
LCBidXQgSSdtIG5vdCBzdXJlIHRoaXMgaXMgcmlnaHQgZm9yIHRoZSBuZXcgY29udHJvbC4KKyAg
ICAgICAgY29uc3QgaW50IGJhc2VsaW5lQWRqdXN0bWVudCA9IDc7CisgICAgICAgIHJldHVybiBy
b3VuZFRvSW50KHJlbmRlcmVyLT5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSkg
LSBiYXNlbGluZUFkanVzdG1lbnQ7CisgICAgfQorCisgICAgaWYgKENoZWNrZWRQdHIgdGV4dENv
bnRyb2wgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lPihyZW5k
ZXJCb3gpKSB7CisgICAgICAgIGlmIChhdXRvKiBpbm5lclRleHRSZW5kZXJlciA9IHRleHRDb250
cm9sLT5pbm5lclRleHRSZW5kZXJlcigpKSB7CisgICAgICAgICAgICBhdXRvIGJhc2VsaW5lID0g
TGF5b3V0VW5pdCB7IH07CisgICAgICAgICAgICBpZiAoaW5uZXJUZXh0UmVuZGVyZXItPmlubGlu
ZUxheW91dCgpKQorICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gc3RkOjptaW48TGF5b3V0VW5p
dD4oaW5uZXJUZXh0UmVuZGVyZXItPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUp
LCBmbG9vclRvSW50KGlubmVyVGV4dFJlbmRlcmVyLT5pbmxpbmVMYXlvdXQoKS0+bGFzdExpbmVM
b2dpY2FsQmFzZWxpbmUoKSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJh
c2VsaW5lID0gZm9udE1ldHJpY3NCYXNlZEJhc2VsaW5lKCppbm5lclRleHRSZW5kZXJlcik7Cisg
ICAgICAgICAgICBiYXNlbGluZSA9IGZsb29yVG9JbnQoaW5uZXJUZXh0UmVuZGVyZXItPmxvZ2lj
YWxUb3AoKSArIGJhc2VsaW5lKTsKKyAgICAgICAgICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSBp
bm5lclRleHRSZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9yICYmIGFuY2VzdG9y
ICE9IHRleHRDb250cm9sOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkK
KyAgICAgICAgICAgICAgICBiYXNlbGluZSA9IGZsb29yVG9JbnQoYW5jZXN0b3ItPmxvZ2ljYWxU
b3AoKSArIGJhc2VsaW5lKTsKKyAgICAgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUgKyBiYXNl
bGluZTsKKyAgICAgICAgfQorICAgICAgICAvLyBpbnB1dDo6LXdlYmtpdC10ZXh0ZmllbGQtZGVj
b3JhdGlvbi1jb250YWluZXIgeyBkaXNwbGF5OiBub25lIH0KKyAgICAgICAgcmV0dXJuIHJvdW5k
VG9JbnQodGV4dENvbnRyb2wtPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsK
KyAgICB9CisKKyAgICBpZiAoQ2hlY2tlZFB0ciByZW5kZXJlciA9IGR5bmFtaWNEb3duY2FzdDxS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZT4ocmVuZGVyQm94KSkKKyAgICAgICAgcmV0dXJuIHJv
dW5kVG9JbnQocmVuZGVyZXItPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsK
KworICAgIGlmIChDaGVja2VkUHRyIGZpbGVVcGxvYWQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVy
RmlsZVVwbG9hZENvbnRyb2w+KHJlbmRlckJveCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGlubGlu
ZUxheW91dCA9IGZpbGVVcGxvYWQtPmlubGluZUxheW91dCgpKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bWluKHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSwg
bWFyZ2luQmVmb3JlICsgZmxvb3JUb0ludChpbmxpbmVMYXlvdXQtPmxhc3RMaW5lTG9naWNhbEJh
c2VsaW5lKCkpKTsKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQocmVuZGVyQm94Lm1hcmdpbkJv
eExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKyAgICB9CisKKyAgICBpZiAoQ2hlY2tlZFB0
ciByZW5kZXJlciA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJTbGlkZXI+KHJlbmRlckJveCkpIHsK
KyAgICAgICAgLy8gRklYTUU6IFBhdGNoIHRoaXMgZnVuY3Rpb24gZm9yIHdyaXRpbmctbW9kZS4K
KyAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5oZWlnaHQoKSArIHJlbmRlcmVyLT5tYXJnaW5Ub3Ao
KTsKKyAgICB9CisKKyAgICBpZiAoQ2hlY2tlZFB0ciByZW5kZXJlciA9IGR5bmFtaWNEb3duY2Fz
dDxSZW5kZXJUYWJsZT4ocmVuZGVyQm94KSkgeworICAgICAgICBpZiAoYXV0byBiYXNlbGluZVBv
cyA9IHJlbmRlckJveC5maXJzdExpbmVCYXNlbGluZSgpKQorICAgICAgICAgICAgcmV0dXJuIG1h
cmdpbkJlZm9yZSArICpiYXNlbGluZVBvczsKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQocmVu
ZGVyZXItPm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKyAgICB9CisKKyAg
ICBpZiAoQ2hlY2tlZFB0ciBtZW51TGlzdCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJNZW51TGlz
dD4ocmVuZGVyQm94KSkgeworICAgICAgICBpZiAoYXV0byBiYXNlbGluZSA9IGxhc3RJbmZsb3dC
b3hCYXNlbGluZSgqbWVudUxpc3QpKQorICAgICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSAr
ICpiYXNlbGluZTsKKyAgICAgICAgcmV0dXJuIG1lbnVMaXN0LT5tYXJnaW5Cb3hMb2dpY2FsSGVp
Z2h0KHdyaXRpbmdNb2RlKTsKKyAgICB9CisKKyAgICBpZiAoaXM8UmVuZGVyRmxleGlibGVCb3g+
KHJlbmRlckJveCkgfHwgaXM8UmVuZGVyR3JpZD4ocmVuZGVyQm94KSkgeworICAgICAgICBpZiAo
YXV0byBiYXNlbGluZSA9IHJlbmRlckJveC5maXJzdExpbmVCYXNlbGluZSgpKQorICAgICAgICAg
ICAgcmV0dXJuIG1hcmdpbkJlZm9yZS50b0ludCgpICsgKmJhc2VsaW5lOworICAgICAgICByZXR1
cm4gc3ludGhlc2l6ZWRCYXNlbGluZShyZW5kZXJCb3gsICpyZW5kZXJCb3gucGFyZW50U3R5bGUo
KSwgd3JpdGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2Fs
TGluZSwgQm9yZGVyQm94KSArIHJlbmRlckJveC5tYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7CisgICAg
fQorCisgICAgaWYgKHJlbmRlckJveC5pc0ZpZWxkc2V0KCkpIHsKKyAgICAgICAgLy8gTm90ZSB0
aGF0IDxmaWVsZHNldD4gbWF5IHNpbXBseSBiZSBhIGZsZXgvZ3JpZCBib3ggKGEgbm9uLVJlbmRl
ckJsb2NrRmxvdyBSZW5kZXJCbG9jaykgYW5kIGFscmVhZHkgaGFuZGxlZCBhYm92ZS4KKyAgICAg
ICAgaWYgKENoZWNrZWRQdHIgYmxvY2tGbG93ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJsb2Nr
Rmxvdz4ocmVuZGVyQm94KSkgeworICAgICAgICAgICAgLy8gPGZpZWxkc2V0PiB3aXRoIG5vIGxl
Z2VuZC4KKyAgICAgICAgICAgIGlmIChDaGVja2VkUHRyIGlubGluZUxheW91dCA9IGJsb2NrRmxv
dy0+aW5saW5lTGF5b3V0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZSAr
IGZsb29yVG9JbnQoaW5saW5lTGF5b3V0LT5sYXN0TGluZUxvZ2ljYWxCYXNlbGluZSgpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lID0gbGFzdEluZmxvd0JveEJhc2VsaW5lKCpibG9j
a0Zsb3cpKQorICAgICAgICAgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUgKyAqYmFzZWxpbmU7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQocmVuZGVyQm94Lm1hcmdpbkJv
eExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKyAgICB9CisKKyAgICBpZiAocmVuZGVyQm94
LmVsZW1lbnQoKSAmJiByZW5kZXJCb3guZWxlbWVudCgpLT5pc0Zvcm1Db250cm9sRWxlbWVudCgp
KSB7CisgICAgICAgIC8vIEZvciAibGVhZiIgdGhlbWUgb2JqZWN0cyBsaWtlIGNoZWNrYm94LCBs
ZXQgdGhlIHRoZW1lIGRlY2lkZSB3aGF0IHRoZSBiYXNlbGluZSBwb3NpdGlvbiBpcy4KKyAgICAg
ICAgaWYgKHJlbmRlckJveC5zdHlsZSgpLmhhc1VzZWRBcHBlYXJhbmNlKCkgJiYgIXJlbmRlckJv
eC50aGVtZSgpLmlzQ29udHJvbENvbnRhaW5lcihyZW5kZXJCb3guc3R5bGUoKS51c2VkQXBwZWFy
YW5jZSgpKSkKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJCb3gudGhlbWUoKS5iYXNlbGluZVBv
c2l0aW9uKHJlbmRlckJveCk7CisKKyAgICAgICAgLy8gTm9uLVJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZSBpbnB1dCB0eXBlIGxpa2UgaW5wdXQgdHlwZSBjb2xvci4KKyAgICAgICAgaWYgKENo
ZWNrZWRQdHIgY29udGFpbmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyQm94
LmZpcnN0SW5GbG93Q2hpbGQoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGJhc2VsaW5lUG9z
ID0gY29udGFpbmVyLT5maXJzdExpbmVCYXNlbGluZSgpKQorICAgICAgICAgICAgICAgIHJldHVy
biBtYXJnaW5CZWZvcmUgKyBjb250YWluZXItPmxvZ2ljYWxUb3AoKSArICpiYXNlbGluZVBvczsK
KyAgICAgICAgfQorICAgICAgICAvLyBlLmcuIGxlYWYgdGhlbWUgb2JqZWN0cyB3aXRoIG5vIGFw
cGVhcmFuY2UgKG5vbmUpIGFuZCBlbXB0eSBjb250ZW50IChlLmcuIGJlZm9yZSBwc2V1ZG8gYW5k
IGNvbnRlbnQ6ICIiKS4KKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQocmVuZGVyQm94Lm1hcmdp
bkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKyAgICB9CisKKyAgICBpZiAocmVuZGVy
Qm94LmVsZW1lbnQoKSAmJiByZW5kZXJCb3guZWxlbWVudCgpLT5zaGFkb3dIb3N0KCkgJiYgcmVu
ZGVyQm94LmVsZW1lbnQoKS0+c2hhZG93SG9zdCgpLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7
CisgICAgICAgIC8vIEluc2lkZSBSZW5kZXJUZXh0Q29udHJvbCdzIHNoYWRvdyBET00gKGUuZy4g
c3Ryb25nLXBhc3N3b3JkIHRleHQpCisgICAgICAgIGF1dG8gbGFzdEJhc2VsaW5lID0gc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiB7IH07CisgICAgICAgIGlmIChDaGVja2VkUHRyIGJsb2NrRmxv
dyA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KHJlbmRlckJveCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBpbmxpbmVMYXlvdXQgPSBibG9ja0Zsb3ctPmlubGluZUxheW91dCgp
KQorICAgICAgICAgICAgICAgIGxhc3RCYXNlbGluZSA9IGZsb29yVG9JbnQoaW5saW5lTGF5b3V0
LT5sYXN0TGluZUxvZ2ljYWxCYXNlbGluZSgpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWxh
c3RCYXNlbGluZSkKKyAgICAgICAgICAgIGxhc3RCYXNlbGluZSA9IChmb250TWV0cmljc0Jhc2Vk
QmFzZWxpbmUocmVuZGVyQm94KSArICh3cml0aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IHJlbmRl
ckJveC5ib3JkZXJUb3AoKSArIHJlbmRlckJveC5wYWRkaW5nVG9wKCkgOiByZW5kZXJCb3guYm9y
ZGVyUmlnaHQoKSArIHJlbmRlckJveC5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCk7CisgICAgICAg
IHJldHVybiBzdGQ6Om1pbihyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5n
TW9kZSksIG1hcmdpbkJlZm9yZSArICpsYXN0QmFzZWxpbmUpOworICAgIH0KKworICAgIGlmIChD
aGVja2VkUHRyIGRlcHJlY2F0ZWRGbGV4Qm94ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveD4ocmVuZGVyQm94KSkgeworICAgICAgICAvLyBIaXN0b3JpY2FsbHks
IHdlIGRpZCB0aGlzIGNoZWNrIGZvciBhbGwgYmFzZWxpbmVzLiBCdXQgd2UgY2FuJ3QKKyAgICAg
ICAgLy8gcmVtb3ZlIHRoaXMgY29kZSBmcm9tIGRlcHJlY2F0ZWQgZmxleGJveCwgYmVjYXVzZSBp
dCBlZmZlY3RpdmVseQorICAgICAgICAvLyBicmVha3MgLXdlYmtpdC1saW5lLWNsYW1wLCB3aGlj
aCBpcyB1c2VkIGluIHRoZSB3aWxkIC0tIHdlIHdvdWxkCisgICAgICAgIC8vIGNhbGN1bGF0ZSB0
aGUgYmFzZWxpbmUgYXMgaWYgLXdlYmtpdC1saW5lLWNsYW1wIHdhc24ndCB1c2VkLgorICAgICAg
ICAvLyBGb3Igc2ltcGxpY2l0eSwgd2UgdXNlIHRoaXMgZm9yIGFsbCB1c2VzIG9mIGRlcHJlY2F0
ZWQgZmxleGJveC4KKyAgICAgICAgYXV0byBib3R0b21PZkNvbnRlbnQgPSBkZXByZWNhdGVkRmxl
eEJveC0+Ym9yZGVyQmVmb3JlKCkgKyBkZXByZWNhdGVkRmxleEJveC0+cGFkZGluZ0JlZm9yZSgp
ICsgZGVwcmVjYXRlZEZsZXhCb3gtPmNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAg
IGF1dG8gYmFzZWxpbmUgPSBsYXN0SW5mbG93Qm94QmFzZWxpbmUoKmRlcHJlY2F0ZWRGbGV4Qm94
KTsKKyAgICAgICAgaWYgKGJhc2VsaW5lICYmICpiYXNlbGluZSA8PSBib3R0b21PZkNvbnRlbnQp
CisgICAgICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlICsgKmJhc2VsaW5lOworICAgICAgICBy
ZXR1cm4gcm91bmRUb0ludChkZXByZWNhdGVkRmxleEJveC0+bWFyZ2luQm94TG9naWNhbEhlaWdo
dCh3cml0aW5nTW9kZSkpOworICAgIH0KKworICAgIGlmIChDaGVja2VkUHRyIHJlbmRlcmVyID0g
ZHluYW1pY0Rvd25jYXN0PFJlbmRlckxpc3RNYXJrZXI+KHJlbmRlckJveCkpIHsKKyAgICAgICAg
aWYgKENoZWNrZWRQdHIgbGlzdEl0ZW0gPSByZW5kZXJlci0+bGlzdEl0ZW0oKTsgbGlzdEl0ZW0g
JiYgIXJlbmRlcmVyLT5pc0ltYWdlKCkpCisgICAgICAgICAgICByZXR1cm4gZm9udE1ldHJpY3NC
YXNlZEJhc2VsaW5lKCpyZW5kZXJlcikudG9JbnQoKTsKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9J
bnQocmVuZGVyQm94Lm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01vZGUpKTsKKyAgICB9
CisKKyNpZiBFTkFCTEUoTUFUSE1MKQorICAgIGlmIChpczxSZW5kZXJNYXRoTUxCbG9jaz4ocmVu
ZGVyQm94KSkgeworICAgICAgICBpZiAoYXV0byBiYXNlbGluZSA9IHJlbmRlckJveC5maXJzdExp
bmVCYXNlbGluZSgpKQorICAgICAgICAgICAgcmV0dXJuICpiYXNlbGluZTsKKyAgICAgICAgcmV0
dXJuIHJvdW5kVG9JbnQocmVuZGVyQm94Lm1hcmdpbkJveExvZ2ljYWxIZWlnaHQod3JpdGluZ01v
ZGUpKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChDaGVja2VkUHRyIHJlbmRlcmVyID0gZHlu
YW1pY0Rvd25jYXN0PFJlbmRlckJsb2NrPihyZW5kZXJCb3gpKSB7CisgICAgICAgIC8vIENTUzIu
MSBzdGF0ZXMgdGhhdCB0aGUgYmFzZWxpbmUgb2YgYW4gaW5saW5lIGJsb2NrIGlzIHRoZSBiYXNl
bGluZSBvZiB0aGUgbGFzdCBsaW5lIGJveCBpbgorICAgICAgICAvLyB0aGUgbm9ybWFsIGZsb3cu
IFdlIG1ha2UgYW4gZXhjZXB0aW9uIGZvciBtYXJxdWVlcywgc2luY2UgdGhlaXIgYmFzZWxpbmVz
IGFyZSBtZWFuaW5nbGVzcworICAgICAgICAvLyAodGhlIGNvbnRlbnQgaW5zaWRlIHRoZW0gbW92
ZXMpLiBUaGlzIG1hdGNoZXMgV2luSUUgYXMgd2VsbCwgd2hpY2gganVzdCBib3R0b20tYWxpZ25z
IHRoZW0uCisgICAgICAgIC8vIFdlIGFsc28gZ2l2ZSB1cCBvbiBmaW5kaW5nIGEgYmFzZWxpbmUg
aWYgd2UgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciwgb3IgaWYgd2UgYXJlIHNjcm9sbGVkCisg
ICAgICAgIC8vIHZlcnRpY2FsbHkgKGUuZy4sIGFuIG92ZXJmbG93OmhpZGRlbiBibG9jayB0aGF0
IGhhcyBoYWQgc2Nyb2xsVG9wIG1vdmVkKS4KKyAgICAgICAgYXV0byBpZ25vcmVCYXNlbGluZSA9
IFsmXSB7CisgICAgICAgICAgICBDaGVja2VkUHRyIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXIt
PmxheWVyKCkgPyByZW5kZXJlci0+bGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSA6IG51bGxwdHI7
CisgICAgICAgICAgICBpZiAoIXNjcm9sbGFibGVBcmVhKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVBcmVhLT5tYXJxdWVlKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgIGlmICh3cml0aW5nTW9k
ZS5pc0hvcml6b250YWwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEt
PnZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9mZnNldCgpLnko
KTsKKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxhYmxlQXJlYS0+aG9yaXpvbnRhbFNjcm9sbGJh
cigpIHx8IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKS54KCk7CisgICAgICAgIH07CisK
KyAgICAgICAgaWYgKGlnbm9yZUJhc2VsaW5lKCkpCisgICAgICAgICAgICByZXR1cm4gcm91bmRU
b0ludChyZW5kZXJCb3gubWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkpOworCisg
ICAgICAgIGlmIChhdXRvIGlubGluZUJsb2NrQmFzZWxpbmVQb3NpdGlvbiA9IGlubGluZUJsb2Nr
QmFzZWxpbmUocmVuZGVyQm94KSkKKyAgICAgICAgICAgIHJldHVybiBtYXJnaW5CZWZvcmUgKyAq
aW5saW5lQmxvY2tCYXNlbGluZVBvc2l0aW9uOworICAgIH0KKworICAgIHJldHVybiByb3VuZFRv
SW50KHJlbmRlckJveC5tYXJnaW5Cb3hMb2dpY2FsSGVpZ2h0KHdyaXRpbmdNb2RlKSk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKGNvbnN0IFJlbmRlckJv
eCYgcmVuZGVyQm94KQoreworICAgIGlmIChyZW5kZXJCb3guaXNGbG9hdGluZ09yT3V0T2ZGbG93
UG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvIGhhc05vblN5bnRoZXRp
Y0Jhc2VsaW5lID0gWyZdIHsKICAgICAgICAgaWYgKGF1dG8qIHJlbmRlckxpc3RNYXJrZXIgPSBk
eW5hbWljRG93bmNhc3Q8UmVuZGVyTGlzdE1hcmtlcj4ocmVuZGVyQm94KSkKICAgICAgICAgICAg
IHJldHVybiAhcmVuZGVyTGlzdE1hcmtlci0+aXNJbWFnZSgpOwpAQCAtMzE1LDExICs2MzgsOCBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0SW50ZWdyYXRpb25CYXNlbGluZShjb25zdCBSZW5kZXJC
b3gmIHJlbmRlckJveCwgV3JpdGluZ01vZAogICAgICAgICByZXR1cm4gaGFzQXBwYXJlYW5jZSB8
fCAhYmxvY2tGbG93LT5jaGlsZHJlbklubGluZSgpIHx8IGJsb2NrRmxvdy0+aGFzTGluZXMoKSB8
fCBibG9ja0Zsb3ctPmhhc0xpbmVJZkVtcHR5KCk7CiAgICAgfTsKIAotICAgIGlmICghaGFzTm9u
U3ludGhldGljQmFzZWxpbmUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBiYXNlbGlu
ZSA9IHJlbmRlckJveC5iYXNlbGluZVBvc2l0aW9uKGZhbHNlIC8qIGZpcnN0TGluZSAqLywgd3Jp
dGluZ01vZGUuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwg
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKLSAgICBjb25zdF9jYXN0PExheW91dDo6RWxlbWVu
dEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNldEJhc2VsaW5lRm9ySW50ZWdyYXRpb24o
YmFzZWxpbmUpOworICAgIGlmIChoYXNOb25TeW50aGV0aWNCYXNlbGluZSgpKQorICAgICAgICBj
b25zdF9jYXN0PExheW91dDo6RWxlbWVudEJveCY+KCpyZW5kZXJCb3gubGF5b3V0Qm94KCkpLnNl
dEJhc2VsaW5lRm9ySW50ZWdyYXRpb24oYmFzZWxpbmVQb3NpdGlvbihyZW5kZXJCb3gpKTsKIH0K
IAogdm9pZCBCb3hHZW9tZXRyeVVwZGF0ZXI6OnVwZGF0ZUxheW91dEJveERpbWVuc2lvbnMoY29u
c3QgUmVuZGVyQm94JiByZW5kZXJCb3gsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxh
YmxlV2lkdGgsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0OjpJbnRyaW5zaWNXaWR0aE1vZGU+IGludHJp
bnNpY1dpZHRoTW9kZSkKQEAgLTQ4Nyw3ICs4MDcsNyBAQCB2b2lkIEJveEdlb21ldHJ5VXBkYXRl
cjo6dXBkYXRlQm94R2VvbWV0cnlBZnRlckludGVncmF0aW9uTGF5b3V0KGNvbnN0IExheW91dDo6
RQogCiAgICAgYXV0byBpbnRlZ3JhdGlvbkFkanVzdG1lbnRzID0gWyZdIHsKICAgICAgICAgLy8g
RklYTUU6IFRoZXNlIHNob3VsZCBldmVudHVhbGx5IGJlIGFsbCBhYnNvcmJlZCBieSBMRkMgbGF5
b3V0LgotICAgICAgICBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKCpyZW5kZXJCb3gsIHdyaXRpbmdN
b2RlKCkpOworICAgICAgICBzZXRJbnRlZ3JhdGlvbkJhc2VsaW5lKCpyZW5kZXJCb3gpOwogCiAg
ICAgICAgIGlmIChhdXRvKiByZW5kZXJMaXN0TWFya2VyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRl
ckxpc3RNYXJrZXI+KCpyZW5kZXJCb3gpKSB7CiAgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGxh
eW91dEJveC5wYXJlbnQoKS5zdHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DYXJldFJlY3RDb21wdXRhdGlvbi5jcHAKaW5kZXggMTJiODU2ZWNlYjE3Li5iNjkxNzk2ZGNl
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DYXJldFJlY3RDb21wdXRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NhcmV0UmVjdENvbXB1dGF0
aW9uLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBMYXlvdXRSZWN0IGNvbXB1dGVDYXJl
dFJlY3RGb3JFbXB0eUVsZW1lbnQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlCiAgICAg
fQogICAgIHggPSBzdGQ6Om1pbih4LCBzdGQ6Om1heDxMYXlvdXRVbml0PihtYXhYIC0gY2FyZXRX
aWR0aCgpLCAwKSk7CiAKLSAgICBhdXRvIGxpbmVIZWlnaHQgPSByZW5kZXJlci5saW5lSGVpZ2h0
KHRydWUsIHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0
aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CisgICAgYXV0byBsaW5lSGVp
Z2h0ID0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChjdXJyZW50U3R5bGUuY29tcHV0ZWRMaW5l
SGVpZ2h0KCkpOwogICAgIGF1dG8gaGVpZ2h0ID0gc3RkOjptaW4obGluZUhlaWdodCwgTGF5b3V0
VW5pdCB7IGN1cnJlbnRTdHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpLmhlaWdodCgpIH0pOwog
ICAgIGF1dG8geSA9IHJlbmRlcmVyLmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSArIChsaW5lSGVp
Z2h0ID4gaGVpZ2h0ID8gKGxpbmVIZWlnaHQgLSBoZWlnaHQpIC8gMiA6IExheW91dFVuaXQgeyB9
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlv
dXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCmlu
ZGV4IDJiN2E0MTZkODM2ZS4uNDllYTAzM2YwNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUxpbmVMYXlvdXQuY3BwCkBAIC01NzYsNyArNTc2LDcgQEAgdm9pZCBMZWdh
Y3lMaW5lTGF5b3V0OjpsYXlvdXRMaW5lQm94ZXMoKQogICAgIH0KIAogICAgIGlmICghbGVnYWN5
Um9vdEJveCgpICYmIG1fZmxvdy5oYXNMaW5lSWZFbXB0eSgpKQotICAgICAgICBtX2Zsb3cuc2V0
TG9naWNhbEhlaWdodChtX2Zsb3cubG9naWNhbEhlaWdodCgpICsgbV9mbG93LmxpbmVIZWlnaHQo
dHJ1ZSwgbV9mbG93LmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6
IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKSk7CisgICAgICAgIG1f
Zmxvdy5zZXRMb2dpY2FsSGVpZ2h0KG1fZmxvdy5sb2dpY2FsSGVpZ2h0KCkgKyBtX2Zsb3cubGlu
ZUhlaWdodCgpKTsKIH0KIAogdm9pZCBMZWdhY3lMaW5lTGF5b3V0OjphZGRPdmVyZmxvd0Zyb21J
bmxpbmVDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNo
bWVudC5jcHAKaW5kZXggN2MwMDAxZDViZmJkLi43M2RmYTczNGM0MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5jcHAKQEAgLTEwMywyMCArMTAzLDYg
QEAgdm9pZCBSZW5kZXJBdHRhY2htZW50OjpsYXlvdXQoKQogICAgICAgICBsYXlvdXRTaGFkb3dD
b250ZW50KG5ld0ludHJpbnNpY1NpemUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckF0dGFjaG1l
bnQ6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8qIGJhc2VsaW5lRWxlbWVudCA9IGF0dGFjaG1l
bnRFbGVtZW50KCkud2lkZUxheW91dEltYWdlRWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiBiYXNlbGluZUVsZW1lbnRSZW5kZXJCb3ggPSBiYXNlbGluZUVsZW1lbnQtPnJlbmRlckJveCgp
KSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBib3R0b20gb2YgdGhlIGltYWdlIGFzc3Vt
aW5nIGl0IGlzIHZlcnRpY2FsbHkgY2VudGVyZWQuCi0gICAgICAgICAgICByZXR1cm4gKGhlaWdo
dCgpICsgYmFzZWxpbmVFbGVtZW50UmVuZGVyQm94LT5oZWlnaHQoKSkgLyAyOwotICAgICAgICB9
Ci0gICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBib3R0b20gb2YgdGhlIGF0dGFjaG1lbnQgaWYg
dGhlcmUgaXMgbm8gaW1hZ2UuCi0gICAgICAgIHJldHVybiBoZWlnaHQoKTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gdGhlbWUoKS5hdHRhY2htZW50QmFzZWxpbmUoKnRoaXMpOwotfQotCiBib29sIFJl
bmRlckF0dGFjaG1lbnQ6OnNob3VsZERyYXdCb3JkZXIoKSBjb25zdAogewogICAgIGlmIChzdHls
ZSgpLnVzZWRBcHBlYXJhbmNlKCkgPT0gU3R5bGVBcHBlYXJhbmNlOjpCb3JkZXJsZXNzQXR0YWNo
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBdHRhY2ht
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCmluZGV4
IGU0YzUyZTdiOWE2OC4uMDVlZGE3MDlkNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJBdHRhY2htZW50LmgKQEAgLTY0LDggKzY0LDYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
Ym9vbCwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRl
OwotCiAgICAgTGF5b3V0VW5pdCBtX21pbmltdW1JbnRyaW5zaWNXaWR0aDsKICAgICBib29sIG1f
c2hvdWxkRHJhd0JvcmRlciB7IHRydWUgfTsKICAgICBib29sIG1faGFzU2hhZG93Q29udHJvbHMg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
MjQzMTk3YmRlOGQ0Li40NTllMDU3ZjczZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcApAQCAtMjQ3Myw3NyArMjQ3Myw2IEBAIGJvb2wgUmVuZGVyQmxvY2s6Omhh
c0xpbmVJZkVtcHR5KCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50LT5pc1Jv
b3RFZGl0YWJsZUVsZW1lbnQoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bGluZUhl
aWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9z
aXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgLy8gSW5saW5lIGJsb2Nr
cyBhcmUgcmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lzZSwganVzdCBwYXNzIG9mZiB0bwotICAg
IC8vIHRoZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVpbmcgcXVlcmllZCBhcyB0aG91Z2ggd2Un
cmUgdGhlIHJvb3QgbGluZQotICAgIC8vIGJveCwgdGhlbiB0aGUgZmFjdCB0aGF0IHdlJ3JlIGFu
IGlubGluZS1ibG9jayBpcyBpcnJlbGV2YW50LCBhbmQgd2UgYmVoYXZlCi0gICAgLy8ganVzdCBs
aWtlIGEgYmxvY2suCi0gICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJbmxpbmUo
KSAmJiBsaW5lUG9zaXRpb25Nb2RlID09IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkKLSAgICAg
ICAgcmV0dXJuIFJlbmRlckJveDo6bGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGlu
ZVBvc2l0aW9uTW9kZSk7Ci0KLSAgICBhdXRvJiBsaW5lU3R5bGUgPSBmaXJzdExpbmUgPyBmaXJz
dExpbmVTdHlsZSgpIDogc3R5bGUoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0
Q2VpbChsaW5lU3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwotfQotCi1MYXlvdXRVbml0IFJl
bmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QK
LXsKLSAgICAvLyBJbmxpbmUgYmxvY2tzIGFyZSByZXBsYWNlZCBlbGVtZW50cy4gT3RoZXJ3aXNl
LCBqdXN0IHBhc3Mgb2ZmIHRvCi0gICAgLy8gdGhlIGJhc2UgY2xhc3MuICBJZiB3ZSdyZSBiZWlu
ZyBxdWVyaWVkIGFzIHRob3VnaCB3ZSdyZSB0aGUgcm9vdCBsaW5lCi0gICAgLy8gYm94LCB0aGVu
IHRoZSBmYWN0IHRoYXQgd2UncmUgYW4gaW5saW5lLWJsb2NrIGlzIGlycmVsZXZhbnQsIGFuZCB3
ZSBiZWhhdmUKLSAgICAvLyBqdXN0IGxpa2UgYSBibG9jay4KLSAgICBpZiAoaXNCbG9ja0xldmVs
UmVwbGFjZWRPckF0b21pY0lubGluZSgpICYmIGxpbmVQb3NpdGlvbk1vZGUgPT0gUG9zaXRpb25P
bkNvbnRhaW5pbmdMaW5lKSB7Ci0gICAgICAgIC8vIEZvciAibGVhZiIgdGhlbWUgb2JqZWN0cywg
bGV0IHRoZSB0aGVtZSBkZWNpZGUgd2hhdCB0aGUgYmFzZWxpbmUgcG9zaXRpb24gaXMuCi0gICAg
ICAgIC8vIEZJWE1FOiBNaWdodCBiZSBiZXR0ZXIgdG8gaGF2ZSBhIGN1c3RvbSBDU1MgcHJvcGVy
dHkgaW5zdGVhZCwgc28gdGhhdCBpZiB0aGUgdGhlbWUKLSAgICAgICAgLy8gaXMgdHVybmVkIG9m
ZiwgY2hlY2tib3hlcy9yYWRpb3Mgd2lsbCBzdGlsbCBoYXZlIGRlY2VudCBiYXNlbGluZXMuCi0g
ICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIHBhdGNoIGZvcm0gY29udHJvbHMgdG8gZGVhbCB3aXRo
IHZlcnRpY2FsIGxpbmVzLgotICAgICAgICBpZiAoc3R5bGUoKS5oYXNVc2VkQXBwZWFyYW5jZSgp
ICYmICF0aGVtZSgpLmlzQ29udHJvbENvbnRhaW5lcihzdHlsZSgpLnVzZWRBcHBlYXJhbmNlKCkp
KQotICAgICAgICAgICAgcmV0dXJuIHRoZW1lKCkuYmFzZWxpbmVQb3NpdGlvbigqdGhpcyk7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgLy8gQ1NTMi4xIHN0YXRlcyB0aGF0IHRoZSBiYXNlbGluZSBv
ZiBhbiBpbmxpbmUgYmxvY2sgaXMgdGhlIGJhc2VsaW5lIG9mIHRoZSBsYXN0IGxpbmUgYm94IGlu
Ci0gICAgICAgIC8vIHRoZSBub3JtYWwgZmxvdy4gIFdlIG1ha2UgYW4gZXhjZXB0aW9uIGZvciBt
YXJxdWVlcywgc2luY2UgdGhlaXIgYmFzZWxpbmVzIGFyZSBtZWFuaW5nbGVzcwotICAgICAgICAv
LyAodGhlIGNvbnRlbnQgaW5zaWRlIHRoZW0gbW92ZXMpLiAgVGhpcyBtYXRjaGVzIFdpbklFIGFz
IHdlbGwsIHdoaWNoIGp1c3QgYm90dG9tLWFsaWducyB0aGVtLgotICAgICAgICAvLyBXZSBhbHNv
IGdpdmUgdXAgb24gZmluZGluZyBhIGJhc2VsaW5lIGlmIHdlIGhhdmUgYSB2ZXJ0aWNhbCBzY3Jv
bGxiYXIsIG9yIGlmIHdlIGFyZSBzY3JvbGxlZAotICAgICAgICAvLyB2ZXJ0aWNhbGx5IChlLmcu
LCBhbiBvdmVyZmxvdzpoaWRkZW4gYmxvY2sgdGhhdCBoYXMgaGFkIHNjcm9sbFRvcCBtb3ZlZCku
Ci0gICAgICAgIGF1dG8gaWdub3JlQmFzZWxpbmUgPSBbdGhpcywgZGlyZWN0aW9uXSgpIC0+IGJv
b2wgewotICAgICAgICAgICAgaWYgKGlzV3JpdGluZ01vZGVSb290KCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgICAgIENoZWNrZWRQdHIgc2Nyb2xsYWJsZUFyZWEg
PSBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSA6IG51bGxwdHI7Ci0gICAgICAg
ICAgICBpZiAoIXNjcm9sbGFibGVBcmVhKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVBcmVhLT5tYXJxdWVlKCkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gSG9yaXpv
bnRhbExpbmUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNh
bFNjcm9sbGJhcigpIHx8IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKS55KCk7Ci0gICAg
ICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBz
Y3JvbGxhYmxlQXJlYS0+c2Nyb2xsT2Zmc2V0KCkueCgpOwotICAgICAgICB9OwotCi0gICAgICAg
IGF1dG8gYmFzZWxpbmVQb3MgPSBpZ25vcmVCYXNlbGluZSgpID8gc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PigpIDogaW5saW5lQmxvY2tCYXNlbGluZShkaXJlY3Rpb24pOwotICAgICAgICAKLSAg
ICAgICAgaWYgKGlzUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KCkpIHsKLSAgICAgICAgICAg
IC8vIEhpc3RvcmljYWxseSwgd2UgZGlkIHRoaXMgY2hlY2sgZm9yIGFsbCBiYXNlbGluZXMuIEJ1
dCB3ZSBjYW4ndAotICAgICAgICAgICAgLy8gcmVtb3ZlIHRoaXMgY29kZSBmcm9tIGRlcHJlY2F0
ZWQgZmxleGJveCwgYmVjYXVzZSBpdCBlZmZlY3RpdmVseQotICAgICAgICAgICAgLy8gYnJlYWtz
IC13ZWJraXQtbGluZS1jbGFtcCwgd2hpY2ggaXMgdXNlZCBpbiB0aGUgd2lsZCAtLSB3ZSB3b3Vs
ZAotICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBiYXNlbGluZSBhcyBpZiAtd2Via2l0LWxp
bmUtY2xhbXAgd2Fzbid0IHVzZWQuCi0gICAgICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgd2Ug
dXNlIHRoaXMgZm9yIGFsbCB1c2VzIG9mIGRlcHJlY2F0ZWQgZmxleGJveC4KLSAgICAgICAgICAg
IExheW91dFVuaXQgYm90dG9tT2ZDb250ZW50ID0gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5l
ID8gYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgKyBjb250ZW50Qm94SGVpZ2h0KCkgOiBib3Jk
ZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0KCkgKyBjb250ZW50Qm94V2lkdGgoKTsKLSAgICAgICAg
ICAgIGlmIChiYXNlbGluZVBvcyAmJiBiYXNlbGluZVBvcy52YWx1ZSgpID4gYm90dG9tT2ZDb250
ZW50KQotICAgICAgICAgICAgICAgIGJhc2VsaW5lUG9zID0gc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PigpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChiYXNlbGluZVBvcykKLSAgICAgICAgICAg
IHJldHVybiBkaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExpbmUgPyBtYXJnaW5Ub3AoKSArIGJhc2Vs
aW5lUG9zLnZhbHVlKCkgOiBtYXJnaW5SaWdodCgpICsgYmFzZWxpbmVQb3MudmFsdWUoKTsKLQot
ICAgICAgICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGly
ZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKTsKLSAgICB9Ci0KLSAgICBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUgPSBmaXJzdExpbmUgPyBmaXJzdExpbmVTdHlsZSgpIDogdGhpcy0+c3R5bGUoKTsK
LSAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJpY3MgPSBzdHlsZS5tZXRyaWNzT2ZQcmlt
YXJ5Rm9udCgpOwotICAgIHJldHVybiBMYXlvdXRVbml0IHsgZm9udE1ldHJpY3MuaW50QXNjZW50
KCkgKyAobGluZUhlaWdodChmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSkg
LSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyIH0udG9JbnQoKTsKLX0KLQogc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAog
ewogICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCkBAIC0yNTc4LDM2ICsy
NTA3LDYgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCbG9jazo6bGFzdExpbmVC
YXNlbGluZSgpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9k
ZSBsaW5lRGlyZWN0aW9uKSBjb25zdAotewotICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRh
aW5tZW50KCkpIHsKLSAgICAgICAgaWYgKGlzSW5saW5lKCkpCi0gICAgICAgICAgICByZXR1cm4g
c3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVudFN0eWxlKCksIGxpbmVEaXJlY3Rpb24s
IEJvcmRlckJveCkgKyAobGluZURpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpbkJv
dHRvbSgpIDogbWFyZ2luTGVmdCgpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAg
ICBpZiAoaXNXcml0aW5nTW9kZVJvb3QoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIGJv
b2wgaGF2ZU5vcm1hbEZsb3dDaGlsZCA9IGZhbHNlOwotICAgIGZvciAoYXV0byogYm94ID0gbGFz
dENoaWxkQm94KCk7IGJveDsgYm94ID0gYm94LT5wcmV2aW91c1NpYmxpbmdCb3goKSkgewotICAg
ICAgICBpZiAoYm94LT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgaGF2ZU5vcm1hbEZsb3dDaGlsZCA9IHRydWU7Ci0gICAg
ICAgIGlmIChhdXRvIHJlc3VsdCA9IGJveC0+aW5saW5lQmxvY2tCYXNlbGluZShsaW5lRGlyZWN0
aW9uKSkKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgKGJveC0+bG9naWNhbFRvcCgp
ICsgcmVzdWx0LnZhbHVlKCkpLnRvSW50KCkgfTsgLy8gVHJhbnNsYXRlIHRvIG91ciBjb29yZGlu
YXRlIHNwYWNlLgotICAgIH0KLQotICAgIGlmICghaGF2ZU5vcm1hbEZsb3dDaGlsZCAmJiBoYXNM
aW5lSWZFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gZmlyc3RMaW5lU3R5
bGUoKS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpOwotICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCB7
IExheW91dFVuaXQoZm9udE1ldHJpY3MuaW50QXNjZW50KCkKLSAgICAgICAgICAgICsgKGxpbmVI
ZWlnaHQodHJ1ZSwgbGluZURpcmVjdGlvbiwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKSAt
IGZvbnRNZXRyaWNzLmludEhlaWdodCgpKSAvIDIKLSAgICAgICAgICAgICsgKGxpbmVEaXJlY3Rp
b24gPT0gSG9yaXpvbnRhbExpbmUgPyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSA6IGJvcmRl
clJpZ2h0KCkgKyBwYWRkaW5nUmlnaHQoKSkpLnRvSW50KCkgfTsKLSAgICB9Ci0KLSAgICByZXR1
cm4geyB9OwotfQotCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNSZW5kZXJCbG9ja0Zsb3dPclJlbmRl
ckJ1dHRvbihSZW5kZXJFbGVtZW50JiByZW5kZXJFbGVtZW50KQogewogICAgIC8vIFdlIGluY2x1
ZGUgaXNSZW5kZXJCdXR0b24gaW4gdGhpcyBjaGVjayBiZWNhdXNlIGJ1dHRvbnMgYXJlIGltcGxl
bWVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDIxZDNmNzZm
NGMwNy4uNDQwMDVmMWQzOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aApAQCAtNjUsMTAgKzY1LDYgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlckJsb2NrKFR5cGUsIERv
Y3VtZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0aW9uU2V0PFR5cGVGbGFnPiwgVHlwZVNwZWNpZmlj
RmxhZ3MgPSB7IH0pOwogCiBwdWJsaWM6Ci0gICAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUg
b3ZlcnJpZGRlbiBmb3IgaW5saW5lLWJsb2NrLgotICAgIExheW91dFVuaXQgbGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3Np
dGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFzZWxp
bmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAg
Ly8gRklYTUUtQkxPQ0tGTE9XOiBSZW1vdmUgdmlydHVhbGl6YWlvbiB3aGVuIGFsbCBjYWxsZXJz
IGhhdmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxp
bmVzKCk7CiAKQEAgLTI4OSw3ICsyODUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5saW5lQmxvY2tCYXNlbGlu
ZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBEZWxheSB1cGRh
dGluZyBzY3JvbGxiYXJzIHVudGlsIGVuZEFuZENvbW1pdFVwZGF0ZVNjcm9sbEluZm9BZnRlckxh
eW91dFRyYW5zYWN0aW9uKCkgaXMgY2FsbGVkLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHVzZWQKICAg
ICAvLyB3aGVuIGEgZmxleGJveCBpcyBsYXlpbmcgb3V0IGl0cyBkZXNjZW5kYW50cy4gSWYgbXVs
dGlwbGUgY2FsbHMgYXJlIG1hZGUgdG8gYmVnaW5VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRU
cmFuc2FjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCmluZGV4IDYyYjg4NjZhOTM4ZC4uM2ZhZjBmNDNlMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNDY4LDcgKzQ2OCw3IEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja1dpdGhOb0NoaWxkcmVuKCkKICAgICAgICAgICAg
IHNldEhhc01hcmdpbkJlZm9yZVF1aXJrKHN0eWxlLm1hcmdpbkJlZm9yZSgpLmhhc1F1aXJrKCkp
OwogICAgICAgICAgICAgc2V0SGFzTWFyZ2luQWZ0ZXJRdWlyayhzdHlsZS5tYXJnaW5BZnRlcigp
Lmhhc1F1aXJrKCkpOwogICAgICAgICB9Ci0gICAgICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSArICho
YXNMaW5lSWZFbXB0eSgpID8gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxp
bmVCb3hlcykgOiAwX2x1KSk7CisgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVyQW5kUGFk
ZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSArIChoYXNMaW5l
SWZFbXB0eSgpID8gbGluZUhlaWdodCgpIDogMF9sdSkpOwogICAgICAgICB1cGRhdGVMb2dpY2Fs
SGVpZ2h0KCk7CiAgICAgfTsKICAgICBjb21wdXRlQmxvY2tBeGlzU2l6ZSgpOwpAQCAtNzgwLDcg
Kzc4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbkZsb3dDaGlsZHJlbihSZWxh
eW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4sIExhCiAKICAgICAgICAgYXV0byBsb2dpY2Fs
SGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIHNjcm9sbGJhckxvZ2lj
YWxIZWlnaHQoKTsKICAgICAgICAgaWYgKGhhc0xpbmVJZkVtcHR5KCkpCi0gICAgICAgICAgICBs
b2dpY2FsSGVpZ2h0ICs9IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5l
Qm94ZXMpOworICAgICAgICAgICAgbG9naWNhbEhlaWdodCArPSBsaW5lSGVpZ2h0KCk7CiAgICAg
ICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCk7CiAKICAgICAgICAgcmVwYWludExv
Z2ljYWxUb3AgPSB7IH07CkBAIC0yNzQ5LDcgKzI3NDksNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6YWRqdXN0SW5pdGlhbExldHRlclBvc2l0aW9uKFJlbmRlckJveCYgY2hpbGRCb3gsIExheW91
dFVuaQogICAgIGlmICghZm9udE1ldHJpY3MuY2FwSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIExheW91dFVuaXQgaGVpZ2h0T2ZMaW5lID0gbGluZUhlaWdodCh0cnVlLCBpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0
aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CisgICAgTGF5b3V0VW5pdCBoZWlnaHRPZkxpbmUgPSBs
aW5lSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBiZWZvcmVNYXJnaW5Cb3JkZXJQYWRkaW5nID0g
Y2hpbGRCb3guYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgY2hpbGRCb3gubWFyZ2luQmVmb3Jl
KCk7CiAgICAgCiAgICAgLy8gTWFrZSBhbiBhZGp1c3RtZW50IHRvIGFsaWduIHdpdGggdGhlIGNh
cCBoZWlnaHQgb2YgYSB0aGVvcmV0aWNhbCBibG9jayBsaW5lLgpAQCAtMzI5NSw2OSArMzI5NSw2
IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQmxvY2tGbG93OjpsYXN0TGluZUJh
c2VsaW5lKCkgY29uc3QKICAgICByZXR1cm4geyB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IFJlbmRlckJsb2NrRmxvdzo6aW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9u
TW9kZSBsaW5lRGlyZWN0aW9uKSBjb25zdAotewotICAgIGlmIChpc1dyaXRpbmdNb2RlUm9vdCgp
KQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgaWYgKHNob3VsZEFwcGx5TGF5b3V0Q29udGFp
bm1lbnQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jhc2VsaW5l
KGxpbmVEaXJlY3Rpb24pOwotCi0gICAgUmVmUHRyIGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7
Ci0gICAgYm9vbCBpc0hUTUxGb3JtQ29udHJvbEVsZW1lbnQgPSBlbGVtZW50ICYmIGVsZW1lbnQt
PmlzRm9ybUNvbnRyb2xFbGVtZW50KCk7Ci0gICAgaWYgKHN0eWxlKCkuZGlzcGxheSgpID09IERp
c3BsYXlUeXBlOjpJbmxpbmVCbG9jaykgewotICAgICAgICAvLyBUaGUgYmFzZWxpbmUgb2YgYW4g
J2lubGluZS1ibG9jaycgaXMgdGhlIGJhc2VsaW5lIG9mIGl0cyBsYXN0IGxpbmUgYm94IGluIHRo
ZSBub3JtYWwgZmxvdywgdW5sZXNzIGl0IGhhcyBlaXRoZXIgbm8gaW4tZmxvdyBsaW5lIGJveGVz
IG9yIGlmIGl0cyAnb3ZlcmZsb3cnCi0gICAgICAgIC8vIHByb3BlcnR5IGhhcyBhIGNvbXB1dGVk
IHZhbHVlIG90aGVyIHRoYW4gJ3Zpc2libGUnLiBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL0NT
UzIyL3Zpc3VkZXQuaHRtbAotICAgICAgICBhdXRvIHNob3VsZFN5bnRoZXNpemVCYXNlbGluZSA9
ICFzdHlsZSgpLmlzT3ZlcmZsb3dWaXNpYmxlKCkgJiYgIWlzSFRNTEZvcm1Db250cm9sRWxlbWVu
dCAmJiAhaXNSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soKTsKLSAgICAgICAgaWYgKHNob3Vs
ZFN5bnRoZXNpemVCYXNlbGluZSkKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotICAg
IC8vIE5vdGUgdGhhdCBoZXJlIHdlIG9ubHkgdGFrZSB0aGUgbGVmdCBhbmQgYm90dG9tIGludG8g
Y29uc2lkZXJhdGlvbi4gT3VyIGNhbGxlciB0YWtlcyB0aGUgcmlnaHQgYW5kIHRvcCBpbnRvIGNv
bnNpZGVyYXRpb24uCi0gICAgYXV0byBib3hIZWlnaHQgPSBzeW50aGVzaXplZEJhc2VsaW5lKCp0
aGlzLCAqcGFyZW50U3R5bGUoKSwgbGluZURpcmVjdGlvbiwgQm9yZGVyQm94KSArIChsaW5lRGly
ZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gbV9tYXJnaW5Cb3guYm90dG9tKCkgOiBtX21hcmdp
bkJveC5sZWZ0KCkpOwotICAgIExheW91dFVuaXQgbGFzdEJhc2VsaW5lOwotICAgIGlmICghY2hp
bGRyZW5JbmxpbmUoKSkgewotICAgICAgICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUgPSBSZW5k
ZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShsaW5lRGlyZWN0aW9uKTsKLSAgICAgICAgaWYg
KCFpbmxpbmVCbG9ja0Jhc2VsaW5lKQotICAgICAgICAgICAgcmV0dXJuIGlubGluZUJsb2NrQmFz
ZWxpbmU7Ci0gICAgICAgIGxhc3RCYXNlbGluZSA9IGlubGluZUJsb2NrQmFzZWxpbmUudmFsdWUo
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIWhhc0xpbmVzKCkpIHsKLSAgICAgICAgICAg
IGlmICghaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotICAgICAgICAgICAgY29uc3QgYXV0byYgZm9udE1ldHJpY3MgPSBmaXJzdExpbmVTdHls
ZSgpLm1ldHJpY3NPZlByaW1hcnlGb250KCk7Ci0gICAgICAgICAgICByZXR1cm4gTGF5b3V0VW5p
dCB7IExheW91dFVuaXQoZm9udE1ldHJpY3MuaW50QXNjZW50KCkKLSAgICAgICAgICAgICAgICAr
IChsaW5lSGVpZ2h0KHRydWUsIGxpbmVEaXJlY3Rpb24sIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVC
b3hlcykgLSBmb250TWV0cmljcy5pbnRIZWlnaHQoKSkgLyAyCi0gICAgICAgICAgICAgICAgKyAo
bGluZURpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IGJvcmRlclRvcCgpICsgcGFkZGluZ1Rv
cCgpIDogYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdSaWdodCgpKSkudG9JbnQoKSB9OwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHN2Z1RleHRMYXlvdXQoKSkgewotICAgICAgICAgICAgYXV0byYg
c3R5bGUgPSBmaXJzdExpbmVTdHlsZSgpOwotICAgICAgICAgICAgLy8gTGVnYWN5SW5saW5lRmxv
d0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24gd2lsbCBmbGlwIGxpbmVzIGluIGNhc2Ug
b2YgdmVydGljYWxMUiBtb2RlLCBzbyB3ZSBjYW4gYXNzdW1lIHZlcnRpY2FsUkwgZm9yIG5vdy4K
LSAgICAgICAgICAgIGxhc3RCYXNlbGluZSA9IHN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCku
aW50QXNjZW50KGxlZ2FjeVJvb3RCb3goKS0+YmFzZWxpbmVUeXBlKCkpCi0gICAgICAgICAgICAg
ICAgKyAoc3R5bGUud3JpdGluZ01vZGUoKS5pc0xpbmVJbnZlcnRlZCgpID8gbG9naWNhbEhlaWdo
dCgpIC0gbGVnYWN5Um9vdEJveCgpLT5sb2dpY2FsQm90dG9tKCkgOiBsZWdhY3lSb290Qm94KCkt
PmxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaW5saW5lTGF5b3V0KCkpCi0gICAg
ICAgICAgICBsYXN0QmFzZWxpbmUgPSBmbG9vclRvSW50KGlubGluZUxheW91dCgpLT5sYXN0TGlu
ZUxvZ2ljYWxCYXNlbGluZSgpKTsKLSAgICB9Ci0KLSAgICBpZiAoc3R5bGUoKS5vdmVyZmxvd1ko
KSA9PSBPdmVyZmxvdzo6VmlzaWJsZSkKLSAgICAgICAgcmV0dXJuIGxhc3RCYXNlbGluZTsKLQot
ICAgIC8vIFdoaWxlIGNzcy1hbGlnbi0zIGRlZmluZXMgdGhlIGxhc3QgYmFzZWxpbmUgZm9ybSBi
bG9jayBjb250YWluZXJzIHdoaWNoIGFyZQotICAgIC8vIHNjcm9sbCBjb250YWluZXJzICh3aXRo
IGFuIGluaXRpYWwgYmFzZWxpbmUtc291cmNlIHZhbHVlKSBhcyB0aGUgYmxvY2stZW5kIG1hcmdp
bgotICAgIC8vIGVkZ2UsIHdlIGluc3RlYWQgbWFpbnRhaW4gb3VyIGxlZ2FjeSBiZWhhdmlvciBm
b3IgZm9ybSBjb250cm9scyBhbmQgY29udGVudAotICAgIC8vIGluc2lkZSBmb3JtIGNvbnRyb2xz
IHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkuCi0gICAgYXV0byBpc0luRm9ybUNvbnRyb2wgPSBb
Jl0gewotICAgICAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIGlmIChSZWZQdHIgc2hhZG93SG9zdCA9IGVsZW1lbnQtPnNoYWRvd0hvc3QoKSkKLSAg
ICAgICAgICAgIHJldHVybiBzaGFkb3dIb3N0LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfTsKLSAgICBpZiAoaXNIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50IHx8IGlzSW5Gb3JtQ29udHJvbCgpKQotICAgICAgICByZXR1cm4gc3RkOjptaW4oYm94SGVp
Z2h0LCBsYXN0QmFzZWxpbmUpOwotICAgIHJldHVybiBib3hIZWlnaHQ7Ci19Ci0KIExheW91dFVu
aXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RFbmNsb3NpbmdUb3BGb3JQcmVjZWRpbmdCbG9jayhM
YXlvdXRVbml0IHRvcCkgY29uc3QKIHsKICAgICBpZiAoc2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5k
ZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpJbnNpZGUgJiYgc2VsZWN0aW9uU3RhdGUoKSAhPSBS
ZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpFbmQpCkBAIC00MDQ1LDcgKzM5ODIsNyBAQCB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5saW5lQ29udGVudChSZWxheW91dENoaWxkcmVu
IHJlbGF5b3V0Q2hpbGRyZW4sIExheQogICAgIGF1dG8gcGFydGlhbFJlcGFpbnRSZWN0ID0gbGF5
b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmxheW91dChyZWxheW91dENoaWxkcmVuID09
IFJlbGF5b3V0Q2hpbGRyZW46OlllcyA/IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpG
b3JjZUZ1bGxMYXlvdXQ6OlllcyA6IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpGb3Jj
ZUZ1bGxMYXlvdXQ6Ok5vKTsKIAogICAgIGF1dG8gYm9yZGVyQm94Qm90dG9tID0gWyZdIHsKLSAg
ICAgICAgYXV0byBjb250ZW50SGVpZ2h0ID0gIWhhc0xpbmVzKCkgJiYgaGFzTGluZUlmRW1wdHko
KSA/IGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250
YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpIDogbGF5
b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7Cisg
ICAgICAgIGF1dG8gY29udGVudEhlaWdodCA9ICFoYXNMaW5lcygpICYmIGhhc0xpbmVJZkVtcHR5
KCkgPyBsaW5lSGVpZ2h0KCkgOiBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY29u
dGVudExvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgcmV0dXJuIGJvcmRlckFuZFBhZGRpbmdCZWZv
cmUoKSArIGNvbnRlbnRIZWlnaHQgKyBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJh
ckxvZ2ljYWxIZWlnaHQoKTsKICAgICB9OwogICAgIGF1dG8gbmV3Qm9yZGVyQm94Qm90dG9tID0g
Ym9yZGVyQm94Qm90dG9tKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmgKaW5kZXggNGM3MzkxMjExYmE1Li44ZTQwYTE0NmEwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKQEAgLTQ0OSw3ICs0NDksNiBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGluZUJh
c2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBp
bmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIHZvaWQgc2V0Q29tcHV0ZWRDb2x1bW5Db3VudEFuZFdpZHRoKGludCwgTGF5b3V0VW5pdCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNmQ0M2Y0NjNmNmM3
Li5jMzEzMDJkMmZjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBA
IC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlJlbmRlckxheW91dFN0
YXRlLmgiCisjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlck1h
dGhNTEJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlDb2x1bW5GbG93LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0SW5saW5lcy5oIgpAQCAtNDk1OCwxOCArNDk1OSwxNSBAQCBib29sIFJl
bmRlckJveDo6aXNVbnNwbGl0dGFibGVGb3JQYWdpbmF0aW9uKCkgY29uc3QKICAgICAgICAgfHwg
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6
OmxpbmVIZWlnaHQoYm9vbCAvKmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rp
b24sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0CitMYXlvdXRV
bml0IFJlbmRlckJveDo6bGluZUhlaWdodCgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzQmxvY2tMZXZl
bFJlcGxhY2VkT3JBdG9taWNJbmxpbmUoKSkKLSAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBI
b3Jpem9udGFsTGluZSA/IG1fbWFyZ2luQm94LnRvcCgpICsgaGVpZ2h0KCkgKyBtX21hcmdpbkJv
eC5ib3R0b20oKSA6IG1fbWFyZ2luQm94LnJpZ2h0KCkgKyB3aWR0aCgpICsgbV9tYXJnaW5Cb3gu
bGVmdCgpOwotICAgIHJldHVybiAwOwotfQorICAgIGlmIChpczxSZW5kZXJCbG9jaz4oKnRoaXMp
IHx8IChpczxSZW5kZXJMaXN0TWFya2VyPigqdGhpcykgJiYgIWRvd25jYXN0PFJlbmRlckxpc3RN
YXJrZXI+KCp0aGlzKS5pc0ltYWdlKCkpKQorICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJv
bUZsb2F0Q2VpbChmaXJzdExpbmVTdHlsZSgpLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKIAotTGF5
b3V0VW5pdCBSZW5kZXJCb3g6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCAvKmZpcnN0TGluZSovLCBM
aW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9zaXRp
b25Nb2RlKi8pIGNvbnN0Ci17CiAgICAgaWYgKGlzQmxvY2tMZXZlbFJlcGxhY2VkT3JBdG9taWNJ
bmxpbmUoKSkKLSAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQoZGlyZWN0aW9uID09IEhvcml6b250
YWxMaW5lID8gbV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94LmJvdHRv
bSgpIDogbV9tYXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5sZWZ0KCkp
OwotICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbWFyZ2luQmVmb3JlKCkgKyBsb2dpY2Fs
SGVpZ2h0KCkgKyBtYXJnaW5BZnRlcigpOworCisgICAgcmV0dXJuIHsgfTsKIH0KIAogUmVuZGVy
TGF5ZXIqIFJlbmRlckJveDo6ZW5jbG9zaW5nRmxvYXRQYWludGluZ0xheWVyKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBmYTMwMDY1ODdjNzIuLjE5ODY5MWIy
NzIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtMjQyLDYgKzI0Miw4
IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KCkgY29uc3QgeyByZXR1cm4g
bWFyZ2luU3RhcnQod3JpdGluZ01vZGUoKSk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkVuZCgp
IGNvbnN0IHsgcmV0dXJuIG1hcmdpbkVuZCh3cml0aW5nTW9kZSgpKTsgfQogCisgICAgaW5saW5l
IExheW91dFVuaXQgbWFyZ2luQm94TG9naWNhbEhlaWdodChXcml0aW5nTW9kZSkgY29uc3Q7CisK
ICAgICB2b2lkIHNldE1hcmdpbkJlZm9yZShMYXlvdXRVbml0IHZhbHVlLCBjb25zdCBXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSkgeyBtX21hcmdpbkJveC5zZXRCZWZvcmUodmFsdWUsIHdyaXRpbmdN
b2RlKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luQWZ0ZXIoTGF5b3V0VW5pdCB2YWx1ZSwgY29uc3Qg
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIHsgbV9tYXJnaW5Cb3guc2V0QWZ0ZXIodmFsdWUsIHdy
aXRpbmdNb2RlKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGF5b3V0VW5pdCB2YWx1ZSwg
Y29uc3QgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIHsgbV9tYXJnaW5Cb3guc2V0U3RhcnQodmFs
dWUsIHdyaXRpbmdNb2RlKTsgfQpAQCAtNTE4LDcgKzUyMCw3IEBAIHB1YmxpYzoKICAgICAKICAg
ICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBj
b25zdCB7IHJldHVybiB7IH07IH0KICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5p
dD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQotICAgIHZpcnR1YWwg
c3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rp
b25Nb2RlKSBjb25zdCB7IHJldHVybiB7IH07IH0gLy8gUmV0dXJucyBlbXB0eSBpZiB3ZSBzaG91
bGQgc2tpcCB0aGlzIGJveCB3aGVuIGNvbXB1dGluZyB0aGUgYmFzZWxpbmUgb2YgYW4gaW5saW5l
LWJsb2NrLgorICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9j
a0Jhc2VsaW5lKCkgY29uc3QgeyByZXR1cm4geyB9OyB9IC8vIFJldHVybnMgZW1wdHkgaWYgd2Ug
c2hvdWxkIHNraXAgdGhpcyBib3ggd2hlbiBjb21wdXRpbmcgdGhlIGJhc2VsaW5lIG9mIGFuIGlu
bGluZS1ibG9jay4KICAgICBMYXlvdXRVbml0IHN5bnRoZXNpemVCYXNlbGluZShGb250QmFzZWxp
bmUgYmFzZWxpbmVUeXBlLCBCYXNlbGluZVN5bnRoZXNpc0VkZ2UpIGNvbnN0OwogCiAgICAgYm9v
bCBzaHJpbmtUb0F2b2lkRmxvYXRzKCkgY29uc3Q7CkBAIC01MjYsOCArNTI4LDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIG1hcmtGb3JQYWdpbmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgp
IHsgfQogICAgIAotICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xp
bmUpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29s
IGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlv
bk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgbGluZUhl
aWdodCgpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgTGF5b3V0VW5pdCBvZmZzZXRUb3AoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hJbmxpbmVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94SW5saW5lcy5oCmluZGV4IDY1MTVmNTYwYTY0YS4u
NmVkZWI2NmNjYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94SW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hJbmxp
bmVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitpbmxpbmUg
TGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpbkJveExvZ2ljYWxIZWlnaHQoV3JpdGluZ01vZGUg
d3JpdGluZ01vZGUpIGNvbnN0IHsgcmV0dXJuIHdyaXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8g
bV9tYXJnaW5Cb3gudG9wKCkgKyBoZWlnaHQoKSArIG1fbWFyZ2luQm94LmJvdHRvbSgpIDogbV9t
YXJnaW5Cb3gucmlnaHQoKSArIHdpZHRoKCkgKyBtX21hcmdpbkJveC5sZWZ0KCk7IH0KIGlubGlu
ZSBMYXlvdXRTaXplIFJlbmRlckJveDo6Ym9yZGVyQm94TG9naWNhbFNpemUoKSBjb25zdCB7IHJl
dHVybiBsb2dpY2FsU2l6ZSgpOyB9CiBpbmxpbmUgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmNsaWVu
dEJveFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KGNsaWVudExlZnQoKSwgY2xpZW50
VG9wKCksIGNsaWVudFdpZHRoKCksIGNsaWVudEhlaWdodCgpKTsgfQogaW5saW5lIExheW91dFVu
aXQgUmVuZGVyQm94OjpjbGllbnRMZWZ0KCkgY29uc3QgeyByZXR1cm4gYm9yZGVyTGVmdCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmlu
ZGV4IDNmMjMwMzdhNjI0Mi4uZDcxYjM0ZmUzMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMzEsNyArMzEsNiBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBNb2RlcyBmb3Igc29tZSBvZiB0aGUgbGluZS1yZWxhdGVkIGZ1
bmN0aW9ucy4KLWVudW0gTGluZVBvc2l0aW9uTW9kZSB7IFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzIH07CiBlbnVtIExpbmVEaXJlY3Rpb25Nb2Rl
IHsgSG9yaXpvbnRhbExpbmUsIFZlcnRpY2FsTGluZSB9OwogCiBlbnVtIGNsYXNzIEJsZWVkQXZv
aWRhbmNlIDogdWludDhfdCB7CkBAIC0xOTQsMTAgKzE5Myw2IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCkg
Y29uc3Q7CiAKLSAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gZGV0ZXJtaW5lIGxp
bmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBwb3NpdGlvbi4KLSAgICB2aXJ0dWFsIExheW91dFVuaXQg
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0
ID0gMDsKLQogICAgIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoT3B0aW9uU2V0PE1hcENv
b3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0YXRlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIHNldFNlbGVjdGlvblN0YXRlKEhpZ2hsaWdodFN0YXRlKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAKaW5kZXggMDA2ODNjNTliMzY2Li4yNzFi
NTM2OTA5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCkBA
IC0xNjEsMjIgKzE2MSw2IEBAIExheW91dFJlY3QgUmVuZGVyQnV0dG9uOjpjb250cm9sQ2xpcFJl
Y3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQpIGNvCiAgICAgcmV0dXJuIExh
eW91dFJlY3QoYWRkaXRpb25hbE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCksIGFkZGl0aW9uYWxP
ZmZzZXQueSgpICsgYm9yZGVyVG9wKCksIHdpZHRoKCkgLSBib3JkZXJMZWZ0KCkgLSBib3JkZXJS
aWdodCgpLCBoZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gYm9yZGVyQm90dG9tKCkpOwogfQogCi1z
dGF0aWMgTGF5b3V0VW5pdCBzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goY29uc3Qg
UmVuZGVyQm94JiBib3gsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikKLXsKLSAgICByZXR1
cm4gZGlyZWN0aW9uID09IEhvcml6b250YWxMaW5lID8gYm94LmJvcmRlclRvcCgpICsgYm94LnBh
ZGRpbmdUb3AoKSArIGJveC5jb250ZW50Qm94SGVpZ2h0KCkgOiBib3guYm9yZGVyUmlnaHQoKSAr
IGJveC5wYWRkaW5nUmlnaHQoKSArIGJveC5jb250ZW50Qm94V2lkdGgoKTsKLX0KLQotTGF5b3V0
VW5pdCBSZW5kZXJCdXR0b246OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBtb2RlKSBjb25zdAotewot
ICAgIGlmIChzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KCkpCi0gICAgICAgIHJldHVybiBS
ZW5kZXJGbGV4aWJsZUJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwg
bW9kZSk7Ci0gICAgLy8gV2UgY2Fubm90IHJlbHkgb24gUmVuZGVyRmxleGlibGVCb3g6OmJhc2Vs
aW5lUG9zaXRpb24oKSBiZWNhdXNlIG9mIGZsZXhib3hlcyBoYXZlIHNvbWUgc3BlY2lhbCBiZWhh
dmlvcgotICAgIC8vIHJlZ2FyZGluZyBiYXNlbGluZXMgdGhhdCBzaG91bGRuJ3QgYXBwbHkgdG8g
YnV0dG9ucy4KLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKS52
YWx1ZV9vcihzeW50aGVzaXplZEJhc2VsaW5lRnJvbUNvbnRlbnRCb3goKnRoaXMsIGRpcmVjdGlv
bikpOwotICAgIExheW91dFVuaXQgbWFyZ2luQXNjZW50ID0gZGlyZWN0aW9uID09IEhvcml6b250
YWxMaW5lID8gbWFyZ2luVG9wKCkgOiBtYXJnaW5SaWdodCgpOwotICAgIHJldHVybiBiYXNlbGlu
ZSArIG1hcmdpbkFzY2VudDsKLX0KLQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFJl
bmRlckJ1dHRvbjo6bGF5b3V0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCdXR0b24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0
b24uaAppbmRleCA4N2NmM2FlZjRkMDMuLmY2OGI2ZjRkZjFjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCdXR0b24uaApAQCAtNjYsOCArNjYsNiBAQCBwdWJsaWM6CiAgICAgUmVu
ZGVyQmxvY2sqIGlubmVyUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX2lubmVyLmdldCgpOyB9
CiAgICAgdm9pZCBzZXRJbm5lclJlbmRlcmVyKFJlbmRlckJsb2NrJik7CiAKLSAgICBMYXlvdXRV
bml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBM
aW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlk
ZTsKLQogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LmNwcAppbmRleCBhZjg4NmY1ZTJlYjUuLjMxOThkOWU5NGJlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eC5jcHAKQEAgLTUxMCw3ICs1MTAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6bGF5b3V0SG9yaXpvbnRhbEJveChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0QwogICAgICAg
ICBBU1NFUlQoY2hpbGRJbmRleCA9PSBjaGlsZExheW91dERlbHRhcy5zaXplKCkpOwogCiAgICAg
ICAgIGlmICghaXRlcmF0b3IuZmlyc3QoKSAmJiBoYXNMaW5lSWZFbXB0eSgpKQotICAgICAgICAg
ICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCB3cml0aW5nTW9kZSgpLmlz
SG9yaXpvbnRhbCgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJ
bnRlcmlvckxpbmVCb3hlcykpOworICAgICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgbGlu
ZUhlaWdodCgpKTsKIAogICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyB0b0FkZCk7CiAKQEAg
LTg0OCw3ICs4NDgsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0
VmVydGljYWxCb3goUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaQogICAgICAgICB5UG9zID0g
aGVpZ2h0KCk7CiAKICAgICAgICAgaWYgKCFpdGVyYXRvci5maXJzdCgpICYmIGhhc0xpbmVJZkVt
cHR5KCkpCi0gICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KHRydWUs
IHdyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2Fs
TGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKSk7CisgICAgICAgICAgICBzZXRIZWln
aHQoaGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KCkpOwogCiAgICAgICAgIHNldEhlaWdodChoZWlnaHQo
KSArIHRvQWRkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZpbGVVcGxvYWRDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWxlVXBsb2FkQ29udHJvbC5jcHAKaW5kZXggZjAwODk1YzRiN2Y0Li5mNWQ0M2Y0ZDNhZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250
cm9sLmNwcApAQCAtMjA3LDggKzIwNyw4IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6
OnBhaW50Q29udHJvbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pCiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHJldHVybiByb3VuZFRvSW50KGJhc2VsaW5lUG9zaXRpb24odHJ1ZSwgaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRp
b25PbkNvbnRhaW5pbmdMaW5lKSk7CisgICAgICAgICAgICAvLyBGaWxlIHVwbG9hZCBidXR0b24g
aXMgZGlzcGxheTogbm9uZSAoc2VlIDo6ZmlsZS1zZWxlY3Rvci1idXR0b24pLgorICAgICAgICAg
ICAgcmV0dXJuIHJvdW5kVG9JbnQobWFyZ2luQm94TG9naWNhbEhlaWdodChjb250YWluaW5nQmxv
Y2soKS0+d3JpdGluZ01vZGUoKSkpOwogICAgICAgICB9KCk7CiAKICAgICAgICAgcGFpbnRJbmZv
LmNvbnRleHQoKS5zZXRGaWxsQ29sb3Ioc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3JXaXRo
Q29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlDb2xvcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggZmQ3MjQ4YzdkYzI3Li5kZGNkZjZlMGUz
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cApAQCAtMjY0LDE1ICsyNjQsNiBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlQ2hp
bGRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKFJlbmRlckJveCYgZmxleEJveENoaQogICAgIFJlbmRl
ckJsb2NrOjpjb21wdXRlQ2hpbGRJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKGZsZXhCb3hDaGlsZCwg
bWluUHJlZmVycmVkTG9naWNhbFdpZHRoLCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgpOwogfQog
Ci1MYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wsIExp
bmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAg
ICBhdXRvIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmUoKTsKLSAgICBpZiAoIWJhc2VsaW5l
KQotICAgICAgICByZXR1cm4gc3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVudFN0eWxl
KCksIGRpcmVjdGlvbiwgQm9yZGVyQm94KSArIG1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLQotICAg
IHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgKGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/
IG1hcmdpblRvcCgpIDogbWFyZ2luUmlnaHQoKSkudG9JbnQoKTsKLX0KLQogc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25z
dAogewogICAgIGlmICgoaXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNGbGV4SXRlbSgpKSB8fCAh
bV9udW1iZXJPZkZsZXhJdGVtc09uRmlyc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFp
bm1lbnQoKSkKQEAgLTMyMywxMSArMzE0LDYgQEAgc3RkOjpvcHRpb25hbCA8TGF5b3V0VW5pdD4g
UmVuZGVyRmxleGlibGVCb3g6Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIHJldHVybiBM
YXlvdXRVbml0IHsgKGJhc2VsaW5lLnZhbHVlKCkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2Fs
VG9wKCkpLnRvSW50KCkgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJG
bGV4aWJsZUJveDo6aW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QK
LXsKLSAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUoKTsKLX0KLQogc3RhdGljIGNvbnN0IFN0
eWxlQ29udGVudEFsaWdubWVudERhdGEmIGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvcigp
CiB7CiAgICAgLy8gVGhlIGp1c3RpZnktY29udGVudCBwcm9wZXJ0eSBhcHBsaWVzIGFsb25nIHRo
ZSBtYWluIGF4aXMsIGJ1dCBzaW5jZQpAQCAtMTM0Niw3ICsxMzMyLDcgQEAgdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6cGVyZm9ybUZsZXhMYXlvdXQoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENo
aWxkcmVuKQogCiAgICAgaWYgKGFsbEl0ZW1zLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoaGFz
TGluZUlmRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0byBtaW5IZWlnaHQgPSBib3JkZXJBbmRQ
YWRkaW5nTG9naWNhbEhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRl
cmlvckxpbmVCb3hlcykgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBh
dXRvIG1pbkhlaWdodCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVp
Z2h0KCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBpZiAoaGVpZ2h0
KCkgPCBtaW5IZWlnaHQpCiAgICAgICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChtaW5IZWln
aHQpOwogICAgICAgICB9CkBAIC0xNDIzLDcgKzE0MDksNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxl
Qm94OjpwZXJmb3JtRmxleExheW91dChSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRyZW4p
CiAgICAgICAgIC8vIGEgbGluZSBiZWNhdXNlIGFsbCBvdXIgY2hpbGRyZW4gbWlnaHQgYmUgb3V0
IG9mIGZsb3cgcG9zaXRpb25lZC4KICAgICAgICAgLy8gSW5zdGVhZCBvZiBqdXN0IGNoZWNraW5n
IGlmIHdlIGhhdmUgYSBsaW5lLCBtYWtlIHN1cmUgdGhlIGZsZXhib3gKICAgICAgICAgLy8gaGFz
IGF0IGxlYXN0IGEgbGluZSdzIHdvcnRoIG9mIGhlaWdodCB0byBjb3ZlciB0aGlzIGNhc2UuCi0g
ICAgICAgIExheW91dFVuaXQgbWluSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWln
aHQoKSArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6
b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpICsg
c2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOworICAgICAgICBMYXlvdXRVbml0IG1pbkhlaWdodCA9
IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBsaW5lSGVpZ2h0KCkgKyBzY3JvbGxi
YXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIGlmIChzaXplKCkuaGVpZ2h0KCkgPCBtaW5IZWln
aHQpCiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KG1pbkhlaWdodCk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAppbmRleCBlNjhjYWQy
MDc2ZTMuLjkyYzUyZmU2ODM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmgKQEAgLTU2LDEwICs1Niw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkRy
b3BBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2b2lkIGxheW91dEJsb2NrKFJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2lj
YWxIZWlnaHQgPSAwX2x1KSBmaW5hbDsKIAotICAgIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlv
bihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQ
b3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoTGlu
ZURpcmVjdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKikgb3ZlcnJpZGU7CiAgICAgYm9v
bCBoaXRUZXN0Q2hpbGRyZW4oY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0Jiwg
Y29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkanVzdGVkTG9jYXRp
b24sIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwCmluZGV4IDQyZWUyMjg5YTU4Yi4uMTdiZWRhYTU5ZThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC00ODksNyArNDg5LDcgQEAgdm9pZCBSZW5k
ZXJHcmlkOjpsYXlvdXRHcmlkKFJlbGF5b3V0Q2hpbGRyZW4gcmVsYXlvdXRDaGlsZHJlbikKICAg
ICAgICAgLy8gR3JpZCBjb250YWluZXIgc2hvdWxkIGhhdmUgdGhlIG1pbmltdW0gaGVpZ2h0IG9m
IGEgbGluZSBpZiBpdCdzIGVkaXRhYmxlLiBUaGF0IGRvZXMgbm90IGFmZmVjdCB0cmFjayBzaXpp
bmcgdGhvdWdoLgogICAgICAgICBpZiAoaGFzTGluZUlmRW1wdHkoKSkgewogICAgICAgICAgICAg
TGF5b3V0VW5pdCBtaW5IZWlnaHRGb3JFbXB0eUxpbmUgPSBib3JkZXJBbmRQYWRkaW5nTG9naWNh
bEhlaWdodCgpCi0gICAgICAgICAgICAgICAgKyBsaW5lSGVpZ2h0KHRydWUsIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25P
ZkludGVyaW9yTGluZUJveGVzKQorICAgICAgICAgICAgICAgICsgbGluZUhlaWdodCgpCiAgICAg
ICAgICAgICAgICAgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBzZXRM
b2dpY2FsSGVpZ2h0KHN0ZDo6bWF4KGxvZ2ljYWxIZWlnaHQoKSwgbWluSGVpZ2h0Rm9yRW1wdHlM
aW5lKSk7CiAgICAgICAgIH0KQEAgLTYyNiw3ICs2MjYsNyBAQCB2b2lkIFJlbmRlckdyaWQ6Omxh
eW91dE1hc29ucnkoUmVsYXlvdXRDaGlsZHJlbiByZWxheW91dENoaWxkcmVuKQogICAgICAgICAv
LyBHcmlkIGNvbnRhaW5lciBzaG91bGQgaGF2ZSB0aGUgbWluaW11bSBoZWlnaHQgb2YgYSBsaW5l
IGlmIGl0J3MgZWRpdGFibGUuIFRoYXQgZG9lcyBub3QgYWZmZWN0IHRyYWNrIHNpemluZyB0aG91
Z2guCiAgICAgICAgIGlmIChoYXNMaW5lSWZFbXB0eSgpKSB7CiAgICAgICAgICAgICBMYXlvdXRV
bml0IG1pbkhlaWdodEZvckVtcHR5TGluZSA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0
KCkKLSAgICAgICAgICAgICAgICArIGxpbmVIZWlnaHQodHJ1ZSwgaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJp
b3JMaW5lQm94ZXMpCisgICAgICAgICAgICAgICAgKyBsaW5lSGVpZ2h0KCkKICAgICAgICAgICAg
ICAgICArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIHNldExvZ2ljYWxI
ZWlnaHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBtaW5IZWlnaHRGb3JFbXB0eUxpbmUpKTsK
ICAgICAgICAgfQpAQCAtMjAxMSwxNyArMjAxMSw2IEBAIGJvb2wgUmVuZGVyR3JpZDo6aXNCYXNl
bGluZUFsaWdubWVudEZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRU
CiAgICAgcmV0dXJuIGlzQmFzZWxpbmVQb3NpdGlvbihhbGlnbikgJiYgIWhhc0F1dG9NYXJnaW5z
OwogfQogCi0vLyBGSVhNRTogVGhpcyBsb2dpYyBpcyBzaGFyZWQgYnkgUmVuZGVyRmxleGlibGVC
b3gsIHNvIGl0IG1pZ2h0IGJlIHJlZmFjdG9yZWQgc29tZWhvdy4KLUxheW91dFVuaXQgUmVuZGVy
R3JpZDo6YmFzZWxpbmVQb3NpdGlvbihib29sLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24s
IExpbmVQb3NpdGlvbk1vZGUgbW9kZSkgY29uc3QKLXsKLSAgICBBU1NFUlRfVU5VU0VEKG1vZGUs
IG1vZGUgPT0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKTsKLSAgICBhdXRvIGJhc2VsaW5lID0g
Zmlyc3RMaW5lQmFzZWxpbmUoKTsKLSAgICBpZiAoIWJhc2VsaW5lKQotICAgICAgICByZXR1cm4g
c3ludGhlc2l6ZWRCYXNlbGluZSgqdGhpcywgKnBhcmVudFN0eWxlKCksIGRpcmVjdGlvbiwgQm9y
ZGVyQm94KSArIG1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKLQotICAgIHJldHVybiBiYXNlbGluZS52
YWx1ZSgpICsgKGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFy
Z2luUmlnaHQoKSkudG9JbnQoKTsKLX0KLQogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5k
ZXJHcmlkOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgaWYgKChpc1dyaXRpbmdN
b2RlUm9vdCgpICYmICFpc0ZsZXhJdGVtKCkpIHx8ICFjdXJyZW50R3JpZCgpLmhhc0dyaWRJdGVt
cygpIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKQEAgLTIwOTAsMTEgKzIwNzks
NiBAQCBTaW5nbGVUaHJlYWRXZWFrUHRyPFJlbmRlckJveD4gUmVuZGVyR3JpZDo6Z2V0QmFzZWxp
bmVHcmlkSXRlbShJdGVtUG9zaXRpb24gYWxpZwogICAgIHJldHVybiBiYXNlbGluZUdyaWRJdGVt
OwogfQogCi1zdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckdyaWQ6OmlubGluZUJsb2Nr
QmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZpcnN0TGlu
ZUJhc2VsaW5lKCk7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVyR3JpZDo6Y29sdW1uQXhpc0Jhc2Vs
aW5lT2Zmc2V0Rm9yR3JpZEl0ZW0oY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRSA6IENTUyBNYXNvbnJ5IGRvZXMgbm90IHByb3Blcmx5IGhhbmRsZSBiYXNl
bGluZSBjYWxjdWxhdGlvbnMgY3VycmVudGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmgKaW5kZXggMjY5MDQyZjRlMDgwLi4yYTllYWIzOTNlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtMjcwLDExICsyNzAsOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgdXBkYXRlQXV0b01hcmdpbnNJblJvd0F4aXNJZk5lZWRlZChSZW5kZXJCb3gmKTsKICAgICBi
b29sIGlzQ2hpbGRFbGlnaWJsZUZvck1hcmdpblRyaW0oTWFyZ2luVHJpbVR5cGUsIGNvbnN0IFJl
bmRlckJveCYpIGNvbnN0IGZpbmFsOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9u
KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIFNp
bmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94PiBnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3Np
dGlvbiBhbGlnbm1lbnQpIGNvbnN0OwotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gaW5s
aW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBpc0lubGluZUJhc2VsaW5lQWxpZ25lZENoaWxkKGNvbnN0IFJlbmRlckJveCYpIGNvbnN0Owog
CiAgICAgTGF5b3V0VW5pdCBjb2x1bW5BeGlzQmFzZWxpbmVPZmZzZXRGb3JHcmlkSXRlbShjb25z
dCBSZW5kZXJCb3gmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwCmluZGV4IDIxYmY2NTUwMDc3Mi4uZGQyOWMyNDUxYmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTMwNiwxOCArMzA2LDYgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJJbWFnZTo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGUKICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxIZWlnaHQoZXN0aW1hdGVkVXNlZFdpZHRoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJ
bWFnZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUg
ZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0g
ICAgTGF5b3V0VW5pdCBvZmZzZXQ7Ci0jaWYgRU5BQkxFKE1VTFRJX1JFUFJFU0VOVEFUSU9OX0hF
SUMpCi0gICAgaWYgKGlzTXVsdGlSZXByZXNlbnRhdGlvbkhFSUMoKSkgewotICAgICAgICBhdXRv
IG1ldHJpY3MgPSBzdHlsZSgpLmZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKS0+bWV0cmljc0Zv
ck11bHRpUmVwcmVzZW50YXRpb25IRUlDKCk7Ci0gICAgICAgIG9mZnNldCA9IExheW91dFVuaXQ6
OmZyb21GbG9hdFJvdW5kKG1ldHJpY3MuZGVzY2VudCk7Ci0gICAgfQotI2VuZGlmCi0gICAgcmV0
dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGlu
ZVBvc2l0aW9uTW9kZSkgLSBvZmZzZXQ7Ci19Ci0KIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hh
bmdlZChXcmFwcGVkSW1hZ2VQdHIgbmV3SW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCiB7CiAg
ICAgaWYgKHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuaAppbmRleCAwNTFkMTU2NGMzMTIuLmM1ZWQ0N2ZmZjFlMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTEzOCw4ICsxMzgsNiBAQCBwcml2YXRl
OgogICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1
dGVQcmVmZXJyZWQgPSBTaG91bGRDb21wdXRlUHJlZmVycmVkOjpDb21wdXRlQWN0dWFsKSBjb25z
dCBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQo
c3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBlc3RpbWF0ZWRVc2VkV2lkdGggPSBzdGQ6Om51bGxv
cHQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJv
b2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0
aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICBib29sIHNob3VsZENv
bGxhcHNlVG9FbXB0eSgpIGNvbnN0OwogCiAgICAgLy8gVGV4dCB0byBkaXNwbGF5IGFzIGxvbmcg
YXMgdGhlIGltYWdlIGlzbid0IGF2YWlsYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHAKaW5kZXggNTE2ZGYyNmU4MzIzLi5mYmRhZjc3OWYxMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC04MTcsMTkgKzgxNyw2IEBA
IExlZ2FjeUlubGluZUZsb3dCb3gqIFJlbmRlcklubGluZTo6Y3JlYXRlQW5kQXBwZW5kSW5saW5l
Rmxvd0JveCgpCiAgICAgcmV0dXJuIGZsb3dCb3g7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5s
aW5lOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSAvKmRpcmVj
dGlvbiovLCBMaW5lUG9zaXRpb25Nb2RlIC8qbGluZVBvc2l0aW9uTW9kZSovKSBjb25zdAotewot
ICAgIGF1dG8mIGxpbmVTdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkgOiBzdHls
ZSgpOwotICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGxpbmVTdHlsZS5jb21w
dXRlZExpbmVIZWlnaHQoKSk7Ci19Ci0KLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjpiYXNlbGlu
ZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExp
bmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICBhdXRvJiBzdHls
ZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkgOiB0aGlzLT5zdHlsZSgpOwotICAgIGF1
dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLSAgICByZXR1
cm4gTGF5b3V0VW5pdCB7IGZvbnRNZXRyaWNzLmFzY2VudCgpICsgKGxpbmVIZWlnaHQoZmlyc3RM
aW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpIC0gZm9udE1ldHJpY3MuaGVpZ2h0KCkp
IC8gMiB9OwotfQotCiBMYXlvdXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb25lZElubGluZShjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAogewogICAgIC8vIEZJ
WE1FOiBUaGlzIGZ1bmN0aW9uIGlzbid0IHJpZ2h0IHdpdGggbWl4ZWQgd3JpdGluZyBtb2Rlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA3NWU2ZGIyZDg3ZDEu
LjI0MzRiZTg4YmYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApA
QCAtMTM5LDkgKzEzOSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpcnR5TGluZUZyb21DaGFu
Z2VkQ2hpbGQoKSBmaW5hbCB7IG1fbGVnYWN5TGluZUJveGVzLmRpcnR5TGluZUZyb21DaGFuZ2Vk
Q2hpbGQoKnRoaXMpOyB9CiAKLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24o
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9z
aXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBmaW5hbDsKLSAgICAKICAgICB2b2lkIHVwZGF0
ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JikgY29uc3Qg
ZmluYWw7CiAKICAgICB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IElu
dFJlY3QqID0gMCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGluZUJyZWFrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5l
QnJlYWsuY3BwCmluZGV4IDRiNGQ3ODMyM2NlZC4uN2UwZjI2ZmY3ZDZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcApAQCAtNTksMjYgKzU5LDYgQEAg
UmVuZGVyTGluZUJyZWFrOjp+UmVuZGVyTGluZUJyZWFrKCkKIHsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJMaW5lQnJlYWs6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlIC8qZGlyZWN0aW9uKi8sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8p
IGNvbnN0Ci17Ci0gICAgaWYgKGZpcnN0TGluZSkgewotICAgICAgICBhdXRvJiBmaXJzdExpbmVT
dHlsZSA9IHRoaXMtPmZpcnN0TGluZVN0eWxlKCk7Ci0gICAgICAgIGlmICgmZmlyc3RMaW5lU3R5
bGUgIT0gJnN0eWxlKCkpCi0gICAgICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0
Q2VpbChmaXJzdExpbmVTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7Ci0gICAgfQotCi0gICAg
aWYgKCFtX2NhY2hlZExpbmVIZWlnaHQpCi0gICAgICAgIG1fY2FjaGVkTGluZUhlaWdodCA9IExh
eW91dFVuaXQ6OmZyb21GbG9hdENlaWwoc3R5bGUoKS5jb21wdXRlZExpbmVIZWlnaHQoKSk7Ci0g
ICAgcmV0dXJuICptX2NhY2hlZExpbmVIZWlnaHQ7Ci19Ci0KLUxheW91dFVuaXQgUmVuZGVyTGlu
ZUJyZWFrOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9k
ZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsK
LSAgICBhdXRvJiBzdHlsZSA9IGZpcnN0TGluZSA/IGZpcnN0TGluZVN0eWxlKCkgOiB0aGlzLT5z
dHlsZSgpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUubWV0cmljc09mUHJpbWFyeUZv
bnQoKTsKLSAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChmb250TWV0cmljcy5hc2NlbnQoKSArIChs
aW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSAtIGZvbnRN
ZXRyaWNzLmhlaWdodCgpKSAvIDIpIH07Ci19Ci0KIGludCBSZW5kZXJMaW5lQnJlYWs6OmNhcmV0
TWluT2Zmc2V0KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKQEAgLTEzMSw3ICsxMTEsNiBAQCB2
b2lkIFJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVh
ZHMsIGJvb2wqIHdhc0ZpeGVkKSBjbwogCiB2b2lkIFJlbmRlckxpbmVCcmVhazo6dXBkYXRlRnJv
bVN0eWxlKCkKIHsKLSAgICBtX2NhY2hlZExpbmVIZWlnaHQgPSB7IH07CiAgICAgUkVMRUFTRV9B
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0lubGluZSgpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oCmluZGV4IGRmMTE5OGE1ZmNkNS4u
YmViMzU5M2RmMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGluZUJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVh
ay5oCkBAIC02MSw5ICs2MSw2IEBAIHByaXZhdGU6CiAgICAgaW50IGNhcmV0TWF4T2Zmc2V0KCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBmaW5hbDsK
IAotICAgIExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFVuaXQgYmFz
ZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0IGZpbmFsOwotCiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25z
dCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gMDsgfQpAQCAtODAsOCArNzcsNiBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCB1cGRhdGVGcm9tU3R5bGUoKSBmaW5hbDsKICAgICBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IG1fY2FjaGVkTGluZUhlaWdodCB7IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXgg
Y2Y1M2JiOGFiNmFhLi4wZTQyNTIzZjEyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKQEAgLTg3LDEwICs4Nyw2IEBAIGNvbnN0IGludCBvcHRpb25zU3Bh
Y2luZ0lubGluZVN0YXJ0ID0gMjsKIC8vIERlZmF1bHQgc2l6ZSB3aGVuIHRoZSBtdWx0aXBsZSBh
dHRyaWJ1dGUgaXMgcHJlc2VudCBidXQgc2l6ZSBhdHRyaWJ1dGUgaXMgYWJzZW50LgogY29uc3Qg
aW50IGRlZmF1bHRTaXplID0gNDsKIAotLy8gRklYTUU6IFRoaXMgaGFyZGNvZGVkIGJhc2VsaW5l
QWRqdXN0bWVudCBpcyB3aGF0IHdlIHVzZWQgdG8gZG8gZm9yIHRoZSBvbGQKLS8vIHdpZGdldCwg
YnV0IEknbSBub3Qgc3VyZSB0aGlzIGlzIHJpZ2h0IGZvciB0aGUgbmV3IGNvbnRyb2wuCi1jb25z
dCBpbnQgYmFzZWxpbmVBZGp1c3RtZW50ID0gNzsKLQogUmVuZGVyTGlzdEJveDo6UmVuZGVyTGlz
dEJveChIVE1MU2VsZWN0RWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAg
ICA6IFJlbmRlckJsb2NrRmxvdyhUeXBlOjpMaXN0Qm94LCBlbGVtZW50LCBXVEZNb3ZlKHN0eWxl
KSkKIHsKQEAgLTMwOCwxNCArMzA0LDYgQEAgUmVuZGVyQm94OjpMb2dpY2FsRXh0ZW50Q29tcHV0
ZWRWYWx1ZXMgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3UKICAgICBy
ZXR1cm4gUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0LCBsb2dp
Y2FsVG9wKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9u
KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBsaW5lRGlyZWN0aW9uLCBMaW5lUG9z
aXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0gICAgYXV0byBiYXNlbGluZSA9
IFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGxpbmVEaXJlY3Rpb24sIGxp
bmVQb3NpdGlvbk1vZGUpOwotICAgIGlmICghc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgp
KQotICAgICAgICBiYXNlbGluZSAtPSBiYXNlbGluZUFkanVzdG1lbnQ7Ci0gICAgcmV0dXJuIGJh
c2VsaW5lOwotfQotCiBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJl
Y3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGludCBpbmRleCkgY29uc3QK
IHsKICAgICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJvcmRlckxlZnQo
KSArIHBhZGRpbmdMZWZ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aAppbmRleCA0YTU0NzNmZTIzMDQuLjEyMWZkMzZjOGEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC05Nyw3ICs5Nyw2IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxX
aWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwg
TGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzIGNvbXB1dGVMb2dpY2FsSGVpZ2h0
KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKSBjb25zdCBv
dmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggMTE2ZjhhNjIzMTVlLi5iYThi
NTA4YTFhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHAKQEAgLTQyMiwyMCArNDIyLDYgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVJ
bmxpbmVNYXJnaW5zKCkKICAgICBtdXRhYmxlU3R5bGUoKS5zZXRNYXJnaW5FbmQoU3R5bGU6Ok1h
cmdpbkVkZ2U6OkZpeGVkIHsgbWFyZ2luRW5kIH0pOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxp
c3RNYXJrZXI6OmxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRp
cmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBsaW5lUG9zaXRpb25Nb2RlKSBjb25zdAotewotICAg
IGlmICghaXNJbWFnZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0SXRlbS0+bGluZUhlaWdodChm
aXJzdExpbmUsIGRpcmVjdGlvbiwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKLSAgICBy
ZXR1cm4gUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGZpcnN0TGluZSwgZGlyZWN0aW9uLCBsaW5lUG9z
aXRpb25Nb2RlKTsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBv
c2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24sIExpbmVQ
b3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAgICBpZiAoIWlzSW1hZ2Uo
KSkKLSAgICAgICAgcmV0dXJuIG1fbGlzdEl0ZW0tPmJhc2VsaW5lUG9zaXRpb24oZmlyc3RMaW5l
LCBkaXJlY3Rpb24sIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7Ci0gICAgcmV0dXJuIFJl
bmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwgbGluZVBvc2l0
aW9uTW9kZSk7Ci19Ci0KIGJvb2wgUmVuZGVyTGlzdE1hcmtlcjo6aXNJbnNpZGUoKSBjb25zdAog
ewogICAgIHJldHVybiBzdHlsZSgpLmxpc3RTdHlsZVBvc2l0aW9uKCkgPT0gTGlzdFN0eWxlUG9z
aXRpb246Okluc2lkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5oCmluZGV4IDI1OGM2YTBiMmQzMi4uMjYxZjg5ZTQyYTdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKQEAgLTgxLDggKzgxLDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgZmluYWw7CiAg
ICAgdm9pZCBsYXlvdXQoKSBmaW5hbDsKICAgICB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1h
Z2VQdHIsIGNvbnN0IEludFJlY3QqKSBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGxpbmVIZWlnaHQo
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25z
dCBmaW5hbDsKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUs
IExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdCBmaW5hbDsKICAgICBM
YXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGZpbmFs
OwogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVu
ZGVyU3R5bGUmIG5ld1N0eWxlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmgKaW5kZXggNTUwMmQxNzc4Mzg5Li41NTE3YWE2OTI1MDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0xMjcsMTQgKzEyNyw3IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIGhhc0xpbmVJZkVtcHR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgLy8gRmxleGJveCBkZWZpbmVzIGJhc2VsaW5lcyBkaWZmZXJlbnRs
eSB0aGFuIHJlZ3VsYXIgYmxvY2tzLgotICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0
eSwgbWVudWxpc3RzIG5lZWQgdG8gZG8gdGhlIHJlZ3VsYXIgYmxvY2sgYmVoYXZpb3IuCi0gICAg
TGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSBkaXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgcG9zaXRpb24pIGNvbnN0IG92ZXJyaWRl
Ci0gICAgewotICAgICAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oZmly
c3RMaW5lLCBkaXJlY3Rpb24sIHBvc2l0aW9uKTsKLSAgICB9CiAgICAgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJl
bmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbikg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxvY2s6OmlubGluZUJsb2NrQmFzZWxpbmUo
ZGlyZWN0aW9uKTsgfQogCiAgICAgdm9pZCBnZXRJdGVtQmFja2dyb3VuZENvbG9yKHVuc2lnbmVk
IGxpc3RJbmRleCwgQ29sb3ImLCBib29sJiBpdGVtSGFzQ3VzdG9tQmFja2dyb3VuZENvbG9yKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCA1
NDM5Mjk4NmYyNmEuLmY2N2U1ZDE0NzM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5jcHAKQEAgLTcyLDEyICs3Miw2IEBAIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBS
ZW5kZXJTbGlkZXI6OnByb3RlY3RlZEVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBkb3duY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Pihub2RlRm9yTm9uQW5vbnltb3VzKCkpOwogfQogCi1MYXlvdXRV
bml0IFJlbmRlclNsaWRlcjo6YmFzZWxpbmVQb3NpdGlvbihib29sIC8qZmlyc3RMaW5lKi8sIExp
bmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlKSBjb25zdAotewotICAgIC8vIEZJWE1F
OiBQYXRjaCB0aGlzIGZ1bmN0aW9uIGZvciB3cml0aW5nLW1vZGUuCi0gICAgcmV0dXJuIGhlaWdo
dCgpICsgbWFyZ2luVG9wKCk7Ci19Ci0KIHZvaWQgUmVuZGVyU2xpZGVyOjpjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQm
IG1heExvZ2ljYWxXaWR0aCkgY29uc3QKIHsKICAgICBpZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxp
bmVTaXplQ29udGFpbm1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5oCmluZGV4IDU4M2Q4MjMxOGI2Ny4uMTMwYzYzZDU0ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5oCkBAIC00OCw3ICs0OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAi
UmVuZGVyU2xpZGVyIl9zOyB9CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9v
bCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRp
b25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJbnRy
aW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5p
dCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGUuY3BwCmluZGV4IGYxYzE0MWVkNGUxZC4uNmYwMTczY2IzZTNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTE1ODIsMTkgKzE1ODIsNiBA
QCBSZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlOjpjZWxsQWZ0ZXIoY29uc3QgUmVuZGVyVGFi
bGVDZWxsKiBjZWxsKSBjb25zdAogICAgIHJldHVybiBjZWxsLT5zZWN0aW9uKCktPnByaW1hcnlD
ZWxsQXQoY2VsbC0+cm93SW5kZXgoKSwgZWZmQ29sKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJU
YWJsZTo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUg
ZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0Ci17Ci0g
ICAgaWYgKGF1dG8gYmFzZWxpbmVQb3MgPSBmaXJzdExpbmVCYXNlbGluZSgpKQotICAgICAgICBy
ZXR1cm4gKGRpcmVjdGlvbiA9PSBIb3Jpem9udGFsTGluZSA/IG1hcmdpblRvcCgpIDogbWFyZ2lu
UmlnaHQoKSkgKyBiYXNlbGluZVBvcy52YWx1ZSgpOwotICAgIHJldHVybiBSZW5kZXJCb3g6OmJh
c2VsaW5lUG9zaXRpb24oZmlyc3RMaW5lLCBkaXJlY3Rpb24sIGxpbmVQb3NpdGlvbk1vZGUpOwot
fQotCi1zdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlclRhYmxlOjppbmxpbmVCbG9ja0Jh
c2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdAotewotICAgIC8vIFRhYmxlcyBhcmUgc2tp
cHBlZCB3aGVuIGNvbXB1dGluZyBhbiBpbmxpbmUtYmxvY2sncyBiYXNlbGluZS4KLSAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpOwotfQotCiBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IFJlbmRlclRhYmxlOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgLy8g
VGhlIGJhc2VsaW5lIG9mIGEgJ3RhYmxlJyBpcyB0aGUgc2FtZSBhcyB0aGUgJ2lubGluZS10YWJs
ZScgYmFzZWxpbmUgcGVyIENTUyAzIEZsZXhib3ggKENTUyAyLjEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmgKaW5kZXggMTljOTc0NDFlNWMwLi42ZjJhMGZlMzZiZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCkBAIC0yMzEsMTAgKzIzMSw4IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7
CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVE
aXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5l
KSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGluZUJh
c2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBs
YXN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBmaW5h
bDsKIAogICAgIFJlbmRlclRhYmxlQ29sKiBzbG93Q29sRWxlbWVudCh1bnNpZ25lZCBjb2wsIGJv
b2wqIHN0YXJ0RWRnZSwgYm9vbCogZW5kRWRnZSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCmluZGV4IDk0ZGE5ZTJmNDhkMC4uNGRj
MWU0MDlhZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21w
dXRlZFZhbHVlcyBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTAogCiAg
ICAgaWYgKFJlbmRlckJveCogaW5uZXJUZXh0Qm94ID0gaW5uZXJUZXh0LT5yZW5kZXJCb3goKSkg
ewogICAgICAgICBMYXlvdXRVbml0IG5vbkNvbnRlbnRIZWlnaHQgPSBpbm5lclRleHRCb3gtPmJv
cmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkgKyBpbm5lclRleHRCb3gtPm1hcmdpbkxvZ2lj
YWxIZWlnaHQoKTsKLSAgICAgICAgbG9naWNhbEhlaWdodCA9IGNvbXB1dGVDb250cm9sTG9naWNh
bEhlaWdodChpbm5lclRleHRCb3gtPmxpbmVIZWlnaHQodHJ1ZSwgSG9yaXpvbnRhbExpbmUsIFBv
c2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyksIG5vbkNvbnRlbnRIZWlnaHQpOworICAgICAgICBs
b2dpY2FsSGVpZ2h0ID0gY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KGlubmVyVGV4dEJveC0+
bGluZUhlaWdodCgpLCBub25Db250ZW50SGVpZ2h0KTsKIAogICAgICAgICAvLyBXZSBhcmUgYWJs
ZSB0byBoYXZlIGEgaG9yaXpvbnRhbCBzY3JvbGxiYXIgaWYgdGhlIG92ZXJmbG93IHN0eWxlIGlz
IHNjcm9sbCwgb3IgaWYgaXRzIGF1dG8gYW5kIHRoZXJlJ3Mgbm8gd29yZCB3cmFwLgogICAgICAg
ICBhdXRvIHNob3VsZEluY2x1ZGVTY3JvbGxiYXJIZWlnaHQgPSBbJl0gewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCAzZjlmMDQ3MDY1OTUuLjQ0
Yzk5ZDcwNmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmgKQEAgLTkwLDEyICs5MCw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJUZXh0Q29udHJvbElu
bmVyQ29udGFpbmVyKEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKICAgICB2aXJ0dWFsIH5SZW5k
ZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKCk7CiAKLSAgICBMYXlvdXRVbml0IGJhc2VsaW5l
UG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGlu
ZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikgY29uc3Qgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBSZW5kZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGRpcmVjdGlvbiwg
cG9zaXRpb24pOwotICAgIH0KICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGZpcnN0TGlu
ZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUmVuZGVyQmxvY2s6OmZpcnN0TGlu
ZUJhc2VsaW5lKCk7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2Nr
QmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxvY2tCYXNlbGluZShkaXJlY3Rpb24pOyB9CiAKIHBy
aXZhdGU6CiAgICAgYm9vbCBpc0ZsZXhpYmxlQm94SW1wbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCmluZGV4IDg0YjNkNmY0MWIyMC4uYzg3Njg4ZjAwOGE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbE11bHRpTGluZS5jcHAKQEAgLTk4LDExICs5OCw2IEBAIExheW91dFVuaXQgUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmU6OmNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxpCiAgICAgcmV0dXJuIGxpbmVIZWlnaHQgKiB0ZXh0QXJlYUVsZW1lbnQoKS5yb3dzKCkgKyBu
b25Db250ZW50SGVpZ2h0OwogfQogCi1MYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBk
aXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgbGluZVBvc2l0aW9uTW9kZSkgY29uc3QKLXsKLSAg
ICByZXR1cm4gUmVuZGVyQm94OjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGlyZWN0aW9u
LCBsaW5lUG9zaXRpb25Nb2RlKTsKLX0KLQogdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZTo6bGF5b3V0RXhjbHVkZWRDaGlsZHJlbihSZWxheW91dENoaWxkcmVuIHJlbGF5b3V0Q2hpbGRy
ZW4pCiB7CiAgICAgUmVuZGVyVGV4dENvbnRyb2w6OmxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4ocmVs
YXlvdXRDaGlsZHJlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZS5oCmluZGV4IGRlMTdhZGEzZjViYS4uMjNlZGM2YjZkZjg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuaApAQCAtNDQsNyArNDQsNiBAQCBwcml2YXRlOgogICAgIGZsb2F0IGdldEF2
ZXJhZ2VDaGFyV2lkdGgoKSBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IHByZWZlcnJlZENvbnRl
bnRMb2dpY2FsV2lkdGgoZmxvYXQgY2hhcldpZHRoKSBjb25zdCBvdmVycmlkZTsKICAgICBMYXlv
dXRVbml0IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxpbmVIZWlnaHQs
IExheW91dFVuaXQgbm9uQ29udGVudEhlaWdodCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0
VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwg
TGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGxheW91dEV4Y2x1ZGVkQ2hpbGRyZW4oUmVsYXlvdXRDaGlsZHJlbikg
b3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBiZmU1N2ViMDQ3ZmYuLjg0MThiZTc0
Zjg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTQ5Niw2ICs0OTYsMTEgQEAgUmVmPEhUTUxJbnB1
dEVsZW1lbnQ+IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6cHJvdGVjdGVkSW5wdXRFbGVt
ZW50KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oUmVuZGVy
VGV4dENvbnRyb2w6OnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKSk7CiB9CiAKK1JlbmRlclRleHRD
b250cm9sSW5uZXJCbG9jayogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjppbm5lclRleHRS
ZW5kZXJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlubmVyVGV4dEVsZW1lbnQoKSA/IGlubmVy
VGV4dEVsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7Cit9CisKIFJlbmRlclRleHRDb250
cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKEVsZW1lbnQmIGVsZW1l
bnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiAgICAgOiBSZW5kZXJCbG9ja0Zsb3coVHlwZTo6VGV4
dENvbnRyb2xJbm5lckJsb2NrLCBlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
aAppbmRleCAwZWQ4MmM3ZDM0MjguLmJmZDZlMWE5YjdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazsKIAogY2xhc3MgUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIDogcHVibGljIFJlbmRlclRleHRDb250cm9sIHsKICAg
ICBXVEZfTUFLRV9UWk9ORV9PUl9JU09fQUxMT0NBVEVEKFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZSk7CkBAIC0zNCw2ICszNSw4IEBAIHB1YmxpYzoKICAgICBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUoVHlwZSwgSFRNTElucHV0RWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwogICAgIHZp
cnR1YWwgflJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSgpOwogCisgICAgUmVuZGVyVGV4dENv
bnRyb2xJbm5lckJsb2NrKiBpbm5lclRleHRSZW5kZXJlcigpIGNvbnN0OworCiBwcm90ZWN0ZWQ6
CiAgICAgSFRNTEVsZW1lbnQqIGNvbnRhaW5lckVsZW1lbnQoKSBjb25zdDsKICAgICBIVE1MRWxl
bWVudCogaW5uZXJCbG9ja0VsZW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbGluZS9MaW5lV2lkdGguY3BwCmluZGV4IGJhMDk3YmJlMzYyMC4uMzkxMDVhMGExMGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lV2lkdGguY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVXaWR0aC5jcHAKQEAgLTY5LDcg
KzY5LDcgQEAgYm9vbCBMaW5lV2lkdGg6OmZpdHNPbkxpbmVFeGNsdWRpbmdUcmFpbGluZ0NvbGxh
cHNlZFdoaXRlc3BhY2UoKSBjb25zdAogdm9pZCBMaW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdp
ZHRoKCkKIHsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9IG1fYmxvY2subG9naWNhbEhlaWdodCgp
OwotICAgIGF1dG8gbGluZUhlaWdodCA9IHN0ZDo6bWF4KDBfbHUsIG1fYmxvY2subGluZUhlaWdo
dCh0cnVlLCBtX2Jsb2NrLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGlu
ZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKSk7CisgICAgYXV0
byBsaW5lSGVpZ2h0ID0gc3RkOjptYXgoMF9sdSwgbV9ibG9jay5saW5lSGVpZ2h0KCkpOwogICAg
IG1fbGVmdCA9IG1fYmxvY2subG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbGluZUhl
aWdodCk7CiAgICAgbV9yaWdodCA9IG1fYmxvY2subG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZSho
ZWlnaHQsIGxpbmVIZWlnaHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCmluZGV4IDVkMTY3YWVkNzY4Ny4uMWFkZWJl
NTg0MThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEJsb2NrLmNwcApAQCAtOTUsMTQgKzk1LDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJN
YXRoTUxCbG9jazo6bWlycm9ySWZOZWVkZWQoTGF5b3V0VW5pdCBob3Jpem9udGFsT2Zmc2V0LCBM
YXlvdXQKICAgICByZXR1cm4gaG9yaXpvbnRhbE9mZnNldDsKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJNYXRoTUxCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgTGluZURpcmVj
dGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNv
bnN0Ci17Ci0gICAgaWYgKGxpbmVQb3NpdGlvbk1vZGUgPT0gUG9zaXRpb25PZkludGVyaW9yTGlu
ZUJveGVzKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGlu
ZSgpLnZhbHVlX29yKFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKGZpcnN0TGluZSwgZGly
ZWN0aW9uLCBsaW5lUG9zaXRpb25Nb2RlKSk7Ci19Ci0KIExheW91dFVuaXQgdG9Vc2VyVW5pdHMo
Y29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBsZW5ndGgsIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgTGF5b3V0VW5pdCYgcmVmZXJlbmNlVmFsdWUpCiB7CiAgICAgc3dpdGNoIChs
ZW5ndGgudHlwZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxCbG9jay5oCmluZGV4IGIwNWI2ZWQwNjU0ZC4uMzczYmI0YzgyODBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2Nr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9j
ay5oCkBAIC01OSw4ICs1OSw2IEBAIHB1YmxpYzoKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MTcuCiAgICAgdmlydHVhbCBSZW5kZXJNYXRoTUxPcGVy
YXRvciogdW5lbWJlbGxpc2hlZE9wZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQog
Ci0gICAgTGF5b3V0VW5pdCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBMaW5lRGly
ZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkg
Y29uc3Qgb3ZlcnJpZGU7Ci0KIHByb3RlY3RlZDoKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZl
cnRpY2FsLXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9jaGVja2Jv
eC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKaW5kZXggYmU3M2Y4NzdiNjJjLi44
NDE0YTI1OGVlYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9jaGVja2Jv
eC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dApAQCAt
MSw1ICsxLDUgQEAKIAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMTAgMjEgMTAgMTEpCisgIChy
ZWN0IDEwIDE0IDEwIDExKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MtMTgvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1h
dXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy0x
OC9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3JkLWF1dG8t
ZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CmluZGV4IDRlMjFhNjBlOWQyMC4uMzQwMzZlZDA0ZTRl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTgvZmFzdC9mb3Jtcy9hdXRv
LWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTgvZmFzdC9mb3Jtcy9hdXRv
LWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVj
dGVkLnR4dApAQCAtMSwxMDAgKzEsMTAwIEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUg
ODAweDIxMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjEzCi0gICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDE4OQorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4MTkwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxOTAK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MTY2CiAgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNzU4eDE5CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNzU4OiAiVGhpcyB0ZXN0cyB0aGF0IHRoZSBTdHJvbmcgUGFzc3dvcmQgQXV0b0ZpbGwgYnV0
dG9uIHJlbmRlcnMgaW4gYW4gYXV0by1maWxsZWQgaW5wdXQuIEl0IGNhbiBvbmx5IGJlIHRlc3Rl
ZCBpbiB0aGUgdGVzdCB0b29sLiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBz
aXplIDc4NHgxNTMKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwxMykg
c2l6ZSAxNTN4MjAgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDFweCBzb2xpZCAjM0MzQzQz
OTkpXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1MywxMSkgc2l6ZSA0eDE5Ci0g
ICAgICAgICAgdGV4dCBydW4gYXQgKDE1MywxMSkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRl
clRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE1NywxMykgc2l6ZSAxNTN4MjAgW2JnY29sb3I9I0ZB
RkZCRF0gW2JvcmRlcjogKDFweCBzb2xpZCAjM0MzQzQzOTkpXQotICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDMxMCwxMSkgc2l6ZSA0eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDMx
MCwxMSkgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQg
KDMxNCwxMykgc2l6ZSAzMTN4MjAgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDFweCBzb2xp
ZCAjM0MzQzQzOTkpXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYyNywxMSkgc2l6
ZSA0eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDYyNywxMSkgd2lkdGggNDogIiAiCi0gICAg
ICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDYzMSwwKSBzaXplIDMzeDIwIFtiZ2Nv
bG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5KV0KKyAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgxMzAKKyAgICAgICAgUmVuZGVyVGV4dENv
bnRyb2wge0lOUFVUfSBhdCAoMCwzKSBzaXplIDE1M3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9y
ZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMTUzLDApIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTMsMCkgd2lkdGgg
NDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE1NywzKSBzaXpl
IDE1M3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSld
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzEwLDApIHNpemUgNHgxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgzMTAsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRD
b250cm9sIHtJTlBVVH0gYXQgKDMxNCwzKSBzaXplIDMxM3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBb
Ym9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoNjI3LDApIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICg2MjcsMCkgd2lk
dGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDYzMSwzKSBz
aXplIDMzeDIwIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgxcHggc29saWQgIzNDM0M0Mzk5
KV0KICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAg
IFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDAsNDUpIHNpemUgMTUzeDEwOCBbYmdjb2xv
cj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCi0gICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMTUzLDg3KSBzaXplIDR4MjAKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTUzLDg3KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVU
fSBhdCAoMTU3LDMyKSBzaXplIDMzeDEwOCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4
IHNvbGlkICMzQzNDNDM5OSldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTkwLDg3
KSBzaXplIDR4MjAKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkwLDg3KSB3aWR0aCA0OiAiICIK
LSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTk0LDg5KSBzaXplIDE1M3gy
MCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCi1sYXll
ciBhdCAoMTUsNjcpIHNpemUgMTQweDE0CisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBV
VH0gYXQgKDAsMjIpIHNpemUgMTUzeDEwOCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4
IHNvbGlkICMzQzNDNDM5OSldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTUzLDYz
KSBzaXplIDR4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTUzLDYzKSB3aWR0aCA0OiAiICIK
KyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTU3LDIyKSBzaXplIDMzeDEw
OCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTkwLDYzKSBzaXplIDR4MjAKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTkwLDYzKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRy
b2wge0lOUFVUfSBhdCAoMTk0LDY2KSBzaXplIDE1M3gyMCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9y
ZGVyOiAoMXB4IHNvbGlkICMzQzNDNDM5OSldCitsYXllciBhdCAoMTUsNTcpIHNpemUgMTQweDE0
CiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg2LDIpIHNpemUgMTQxeDE1CiAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDQ1LDApIHNpemUgOTV4MTQgW2NvbG9yPSMwMDAwMDBDQ10KICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDE0CiAgICAgICAgIHRleHQg
cnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDE1LDY4
KSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0ICgxNSw2OCkgc2l6ZSA0NXgxMiBjbGlwIGF0
ICgxNSw2OCkgc2l6ZSA0NXgxMgorbGF5ZXIgYXQgKDE1LDU4KSBzaXplIDQ2eDEyIGJhY2tncm91
bmRDbGlwIGF0ICgxNSw1OCkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNSw1OCkgc2l6ZSA0NXgxMgog
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxKSBzaXplIDQ2eDEyCi1sYXllciBhdCAoMTcyLDY3
KSBzaXplIDE0MHgxNAorbGF5ZXIgYXQgKDE3Miw1Nykgc2l6ZSAxNDB4MTQKICAgUmVuZGVyRmxl
eGlibGVCb3gge0RJVn0gYXQgKDYsMikgc2l6ZSAxNDF4MTUKICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoNDUsMCkgc2l6ZSA5NXgxNCBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkg
d2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTcyLDY4KSBzaXplIDQ2eDEy
IGJhY2tncm91bmRDbGlwIGF0ICgxNzIsNjgpIHNpemUgNDV4MTIgY2xpcCBhdCAoMTcyLDY4KSBz
aXplIDQ1eDEyCitsYXllciBhdCAoMTcyLDU4KSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlwIGF0
ICgxNzIsNTgpIHNpemUgNDV4MTIgY2xpcCBhdCAoMTcyLDU4KSBzaXplIDQ1eDEyCiAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDEpIHNpemUgNDZ4MTIKLWxheWVyIGF0ICgzMjksNjcpIHNpemUg
MzAweDE0CitsYXllciBhdCAoMzI5LDU3KSBzaXplIDMwMHgxNAogICBSZW5kZXJGbGV4aWJsZUJv
eCB7RElWfSBhdCAoNiwyKSBzaXplIDMwMXgxNQogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgy
MDUsMCkgc2l6ZSA5NXgxNCBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICg2LDApIHNpemUgODl4MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGgg
ODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMzI5LDY4KSBzaXplIDIwNngxMiBiYWNr
Z3JvdW5kQ2xpcCBhdCAoMzI5LDY4KSBzaXplIDIwNXgxMiBjbGlwIGF0ICgzMjksNjgpIHNpemUg
MjA1eDEyCitsYXllciBhdCAoMzI5LDU4KSBzaXplIDIwNngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAo
MzI5LDU4KSBzaXplIDIwNXgxMiBjbGlwIGF0ICgzMjksNTgpIHNpemUgMjA1eDEyCiAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDEpIHNpemUgMjA2eDEyCi1sYXllciBhdCAoNjQ2LDU1KSBzaXpl
IDIweDEyIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgorbGF5ZXIgYXQgKDY0Niw1OCkg
c2l6ZSAyMHgxMiBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQgMjYKICAgUmVuZGVyRmxleGli
bGVCb3gge0RJVn0gYXQgKDYsMykgc2l6ZSAyMXgxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDEyKSBzaXplIDk1eDE0IFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxNAogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0
aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICg2NDYsNTUpIHNpemUgMjB4MTIKK2xh
eWVyIGF0ICg2NDYsNTgpIHNpemUgMjB4MTIKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSAyMHgxMgotbGF5ZXIgYXQgKDE1LDE0NCkgc2l6ZSAxNDB4MTQKK2xheWVyIGF0ICgxNSwx
MjEpIHNpemUgMTQweDE0CiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg2LDQ2KSBzaXpl
IDE0MXgxNQogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0NSwwKSBzaXplIDk1eDE0IFtjb2xv
cj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgx
NAogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIK
LWxheWVyIGF0ICgxNSwxNDUpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE1LDE0NSkg
c2l6ZSA0NXgxMiBjbGlwIGF0ICgxNSwxNDUpIHNpemUgNDV4MTIKK2xheWVyIGF0ICgxNSwxMjIp
IHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE1LDEyMikgc2l6ZSA0NXgxMiBjbGlwIGF0
ICgxNSwxMjIpIHNpemUgNDV4MTIKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMSkgc2l6ZSA0
NngxMgotbGF5ZXIgYXQgKDE3MiwxMzIpIHNpemUgMjB4MTIgc2Nyb2xsV2lkdGggOTQgc2Nyb2xs
SGVpZ2h0IDI2CitsYXllciBhdCAoMTcyLDEyMikgc2l6ZSAyMHgxMiBzY3JvbGxXaWR0aCA5NCBz
Y3JvbGxIZWlnaHQgMjYKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDYsNDcpIHNpemUg
MjF4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMikgc2l6ZSA5NXgxNCBbY29sb3I9
IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTQK
ICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1s
YXllciBhdCAoMTcyLDEzMikgc2l6ZSAyMHgxMgorbGF5ZXIgYXQgKDE3MiwxMjIpIHNpemUgMjB4
MTIKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMgotbGF5ZXIgYXQgKDIw
OSwxNDQpIHNpemUgMTQweDE0CitsYXllciBhdCAoMjA5LDEyMSkgc2l6ZSAxNDB4MTQKICAgUmVu
ZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDYsMikgc2l6ZSAxNDF4MTUKICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoNDUsMCkgc2l6ZSA5NXgxNCBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTQKICAgICAgICAgdGV4dCBydW4gYXQg
KDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMjA5LDE0NSkgc2l6
ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMjA5LDE0NSkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgy
MDksMTQ1KSBzaXplIDQ1eDEyCitsYXllciBhdCAoMjA5LDEyMikgc2l6ZSA0NngxMiBiYWNrZ3Jv
dW5kQ2xpcCBhdCAoMjA5LDEyMikgc2l6ZSA0NXgxMiBjbGlwIGF0ICgyMDksMTIyKSBzaXplIDQ1
eDEyCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEpIHNpemUgNDZ4MTIKLWxheWVyIGF0ICgx
NSw2OCkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMTUsNjgpIHNpemUgNDV4MTIgY2xp
cCBhdCAoMTUsNjgpIHNpemUgNDV4MTIgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTUsNTgp
IHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE1LDU4KSBzaXplIDQ1eDEyIGNsaXAgYXQg
KDE1LDU4KSBzaXplIDQ1eDEyIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDQ2eDEyIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMjg0eDEyCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAy
ODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIg
YXQgKDE3Miw2OCkgc2l6ZSA0NngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMTcyLDY4KSBzaXplIDQ1
eDEyIGNsaXAgYXQgKDE3Miw2OCkgc2l6ZSA0NXgxMiBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0
ICgxNzIsNTgpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDE3Miw1OCkgc2l6ZSA0NXgx
MiBjbGlwIGF0ICgxNzIsNTgpIHNpemUgNDV4MTIgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNDZ4MTIgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTIKICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRv
Zy4iCi1sYXllciBhdCAoMzI5LDY4KSBzaXplIDIwNngxMiBiYWNrZ3JvdW5kQ2xpcCBhdCAoMzI5
LDY4KSBzaXplIDIwNXgxMiBjbGlwIGF0ICgzMjksNjgpIHNpemUgMjA1eDEyIHNjcm9sbFdpZHRo
IDI4NAorbGF5ZXIgYXQgKDMyOSw1OCkgc2l6ZSAyMDZ4MTIgYmFja2dyb3VuZENsaXAgYXQgKDMy
OSw1OCkgc2l6ZSAyMDV4MTIgY2xpcCBhdCAoMzI5LDU4KSBzaXplIDIwNXgxMiBzY3JvbGxXaWR0
aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDZ4MTIgW2NvbG9yPSMw
MDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTIKICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBl
ZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoNjQ2LDU1KSBzaXplIDIweDEyIHNjcm9s
bFdpZHRoIDI4NAorbGF5ZXIgYXQgKDY0Niw1OCkgc2l6ZSAyMHgxMiBzY3JvbGxXaWR0aCAyODQK
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMiBbY29sb3I9IzAwMDAwMDk5
XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMgogICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIg
dGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxNSwxNDUpIHNpemUgNDZ4MTIgYmFja2dyb3VuZENs
aXAgYXQgKDE1LDE0NSkgc2l6ZSA0NXgxMiBjbGlwIGF0ICgxNSwxNDUpIHNpemUgNDV4MTIgc2Ny
b2xsV2lkdGggMjg0CitsYXllciBhdCAoMTUsMTIyKSBzaXplIDQ2eDEyIGJhY2tncm91bmRDbGlw
IGF0ICgxNSwxMjIpIHNpemUgNDV4MTIgY2xpcCBhdCAoMTUsMTIyKSBzaXplIDQ1eDEyIHNjcm9s
bFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDQ2eDEyIFtjb2xv
cj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEy
CiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBq
dW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDE3MiwxMzIpIHNpemUgMjB4MTIg
c2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTcyLDEyMikgc2l6ZSAyMHgxMiBzY3JvbGxXaWR0
aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgxMiBbY29sb3I9IzAw
MDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMgogICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVk
IG92ZXIgdGhlIGxhenkgZG9nLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1zZXF1b2lhLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBh
c3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXNlcXVvaWEtd2syL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9pbnB1dC1zdHJv
bmctcGFzc3dvcmQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKaW5kZXggOThjNzEzZTY5
ZTk2Li5jZDhhZjQ1NjIxNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1z
ZXF1b2lhLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3
b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ry
b25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CkBAIC0xLDEwMCArMSwx
MDAgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MjA5Ci0gIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyMDkKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCwxNikgc2l6ZSA3ODR4MTg1CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxODQKKyAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE4NAorICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDE2KSBzaXplIDc4NHgxNjAKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBz
aXplIDc4NHgxOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3NTd4
MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3NTc6ICJUaGlzIHRlc3RzIHRo
YXQgdGhlIFN0cm9uZyBQYXNzd29yZCBBdXRvRmlsbCBidXR0b24gcmVuZGVycyBpbiBhbiBhdXRv
LWZpbGxlZCBpbnB1dC4gSXQgY2FuIG9ubHkgYmUgdGVzdGVkIGluIHRoZSB0ZXN0IHRvb2wuIgot
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0eDE1MQotICAgICAgICBS
ZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDEzKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0j
RkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDE1OCwxMykgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDE1
OCwxMykgd2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQg
KDE2MiwxMykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNl
dCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMjAsMTMpIHNpemUg
NHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjAsMTMpIHdpZHRoIDQ6ICIgIgotICAgICAg
ICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgzMjQsMTMpIHNpemUgMzA2eDE5IFtiZ2Nv
bG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNjMwLDEzKSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNjMwLDEzKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVU
fSBhdCAoNjM0LDApIHNpemUgMjZ4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBp
bnNldCAjODA4MDgwKV0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4
NHgxMjYKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwxKSBzaXplIDE1
OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1OCwwKSBzaXplIDR4MTgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTU4LDApIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJv
bCB7SU5QVVR9IGF0ICgxNjIsMSkgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRl
cjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgz
MjAsMCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDMyMCwwKSB3aWR0aCA0OiAi
ICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMzI0LDEpIHNpemUgMzA2
eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNjMwLDApIHNpemUgNHgxOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICg2MzAsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9s
IHtJTlBVVH0gYXQgKDYzNCwxKSBzaXplIDI2eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6
ICgycHggaW5zZXQgIzgwODA4MCldCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgwLDQ1KSBz
aXplIDE1OHgxMDYgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgw
KV0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTgsODgpIHNpemUgNHgxOAotICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxNTgsODgpIHdpZHRoIDQ6ICIgIgotICAgICAgICBSZW5kZXJU
ZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMzIpIHNpemUgMjZ4MTA2IFtiZ2NvbG9yPSNGQUZG
QkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTg4LDg4KSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTg4LDg4
KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTky
LDg4KSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4
MDgwODApXQotbGF5ZXIgYXQgKDExLDY2KSBzaXplIDE1MngxMworICAgICAgICBSZW5kZXJUZXh0
Q29udHJvbCB7SU5QVVR9IGF0ICgwLDIwKSBzaXplIDE1OHgxMDYgW2JnY29sb3I9I0ZBRkZCRF0g
W2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxNTgsNjIpIHNpemUgNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTgsNjIpIHdp
ZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMjAp
IHNpemUgMjZ4MTA2IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4
MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTg4LDYyKSBzaXplIDR4MTgKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTg4LDYyKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVy
VGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTkyLDYzKSBzaXplIDE1OHgxOSBbYmdjb2xvcj0jRkFG
RkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorbGF5ZXIgYXQgKDExLDU0KSBzaXpl
IDE1MngxMwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwog
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAw
Q0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAg
ICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0
ICgxMSw2Nikgc2l6ZSA1OHgxMworbGF5ZXIgYXQgKDExLDU0KSBzaXplIDU4eDEzCiAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxheWVyIGF0ICgxNzMsNjYpIHNpemUg
MTUyeDEzCitsYXllciBhdCAoMTczLDU0KSBzaXplIDE1MngxMwogICBSZW5kZXJGbGV4aWJsZUJv
eCB7RElWfSBhdCAoMywzKSBzaXplIDE1MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1
NywwKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4
OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxNzMsNjYpIHNpemUgNTh4MTMKK2xheWVy
IGF0ICgxNzMsNTQpIHNpemUgNTh4MTMKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSA1OHgxMwotbGF5ZXIgYXQgKDMzNSw2Nikgc2l6ZSAzMDB4MTMKK2xheWVyIGF0ICgzMzUsNTQp
IHNpemUgMzAweDEzCiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNpemUgMzAw
eDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIwNSwwKSBzaXplIDk1eDEzIFtjb2xvcj0j
MDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwog
ICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxh
eWVyIGF0ICgzMzUsNjYpIHNpemUgMjA2eDEzCitsYXllciBhdCAoMzM1LDU0KSBzaXplIDIwNngx
MwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwNngxMwotbGF5ZXIgYXQgKDY0
NSw1Mykgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQgMjYKK2xheWVyIGF0
ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CiAgIFJl
bmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNpemUgMjB4MTMKICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwxMykgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQg
KDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoNjQ1LDUzKSBzaXpl
IDIweDEzCitsYXllciBhdCAoNjQ1LDU0KSBzaXplIDIweDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgMjB4MTMKLWxheWVyIGF0ICgxMSwxNDIpIHNpemUgMTUyeDEzCitsYXll
ciBhdCAoMTEsMTE3KSBzaXplIDE1MngxMwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAo
Myw0Nikgc2l6ZSAxNTJ4MTQKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5
NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDAp
IHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcg
UGFzc3dvcmQiCi1sYXllciBhdCAoMTEsMTQyKSBzaXplIDU4eDEzCitsYXllciBhdCAoMTEsMTE3
KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxh
eWVyIGF0ICgxNzMsMTI5KSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAy
NgorbGF5ZXIgYXQgKDE3MywxMTcpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVp
Z2h0IDI2CiAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDQ2KSBzaXplIDIweDE0CiAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTMpIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBD
Q10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAg
IHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQg
KDE3MywxMjkpIHNpemUgMjB4MTMKK2xheWVyIGF0ICgxNzMsMTE3KSBzaXplIDIweDEzCiAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMKLWxheWVyIGF0ICgyMDMsMTQxKSBz
aXplIDE1MngxMworbGF5ZXIgYXQgKDIwMywxMTYpIHNpemUgMTUyeDEzCiAgIFJlbmRlckZsZXhp
YmxlQm94IHtESVZ9IGF0ICgzLDMpIHNpemUgMTUyeDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDU3LDApIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdp
ZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDIwMywxNDEpIHNpemUgNTh4MTMK
K2xheWVyIGF0ICgyMDMsMTE2KSBzaXplIDU4eDEzCiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgNTh4MTMKLWxheWVyIGF0ICgxMSw2Nikgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAy
ODQKK2xheWVyIGF0ICgxMSw1NCkgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkg
ZG9nLiIKLWxheWVyIGF0ICgxNzMsNjYpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXll
ciBhdCAoMTczLDU0KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgot
bGF5ZXIgYXQgKDMzNSw2Nikgc2l6ZSAyMDZ4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAo
MzM1LDU0KSBzaXplIDIwNngxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMDZ4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXll
ciBhdCAoNjQ1LDUzKSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDY0NSw1
NCkgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSAyMHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAi
QSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgx
MSwxNDIpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTEsMTE3KSBzaXpl
IDU4eDEzIHNjcm9sbFdpZHRoIDI4NAogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDU4eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNr
IGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDE3MywxMjkp
IHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTczLDExNykgc2l6ZSAyMHgx
MyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMHgx
MyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93
biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L3JlcGFpbnQvY2hlY2tib3gtb3ZlcmZsb3ct
dmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNlcXVv
aWEtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3Rl
ZC50eHQKaW5kZXggYmU3M2Y4NzdiNjJjLi44NDE0YTI1OGVlYjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1zZXF1b2lhLXdrMi9mYXN0L3JlcGFpbnQvY2hlY2tib3gtb3Zl
cmZsb3ctdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1zZXF1b2lhLXdrMi9mYXN0L3JlcGFpbnQvY2hlY2tib3gtb3ZlcmZsb3ctdmVydGljYWwt
cmwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCiAocmVwYWludCByZWN0cwotICAocmVj
dCAxMCAyMSAxMCAxMSkKKyAgKHJlY3QgMTAgMTQgMTAgMTEpCiApCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lu
cHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0
LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dAppbmRleCA4NmE0
NzY0ZjllMDAuLmNkOGFmNDU2MjE0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ryb25nLXBhc3N3b3Jk
LWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29y
ZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMSwxMDAgKzEsMTAwIEBACiBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDIxMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4MjEzCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUg
Nzg0eDE4OQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTg0CisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHgxODQKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikg
c2l6ZSA3ODR4MTYwCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgK
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzU3eDE4CiAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzU3OiAiVGhpcyB0ZXN0cyB0aGF0IHRoZSBTdHJv
bmcgUGFzc3dvcmQgQXV0b0ZpbGwgYnV0dG9uIHJlbmRlcnMgaW4gYW4gYXV0by1maWxsZWQgaW5w
dXQuIEl0IGNhbiBvbmx5IGJlIHRlc3RlZCBpbiB0aGUgdGVzdCB0b29sLiIKLSAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgxNTUKLSAgICAgICAgUmVuZGVyVGV4dENv
bnRyb2wge0lOUFVUfSBhdCAoMCwxMykgc2l6ZSAxNjZ4MjEgW2JnY29sb3I9I0ZBRkZCRF0gW2Jv
cmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxNjYsMTQpIHNpemUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgxNjYsMTQpIHdpZHRo
IDQ6ICIgIgotICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNzAsMTMpIHNp
emUgMTY2eDIxIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCld
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzM2LDE0KSBzaXplIDR4MTgKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMzM2LDE0KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4
dENvbnRyb2wge0lOUFVUfSBhdCAoMzQwLDEzKSBzaXplIDMxNHgyMSBbYmdjb2xvcj0jRkFGRkJE
XSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDY1NCwxNCkgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDY1NCwxNCkg
d2lkdGggNDogIiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDY1OCww
KSBzaXplIDM0eDIxIFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4
MCldCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTI2CisgICAg
ICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDAsMSkgc2l6ZSAxNTh4MTkgW2JnY29s
b3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgxNTgsMCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDE1OCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBh
dCAoMTYyLDEpIHNpemUgMTU4eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5z
ZXQgIzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzIwLDApIHNpemUg
NHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgzMjAsMCkgd2lkdGggNDogIiAiCisgICAgICAg
IFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDMyNCwxKSBzaXplIDMwNngxOSBbYmdjb2xv
cj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDYzMCwwKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NjMwLDApIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0
ICg2MzQsMSkgc2l6ZSAyNngxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICM4MDgwODApXQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
LSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCw0Nykgc2l6ZSAxNjZ4MTA4
IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTY2LDkxKSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTY2LDkxKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wg
e0lOUFVUfSBhdCAoMTcwLDM0KSBzaXplIDM0eDEwOCBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVy
OiAoMnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIw
NCw5MSkgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDIwNCw5MSkgd2lkdGggNDog
IiAiCi0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDIwOCw5MCkgc2l6ZSAx
NjZ4MjEgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLWxh
eWVyIGF0ICgxNSw2Nykgc2l6ZSAxNTJ4MTMKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQg
KDcsNCkgc2l6ZSAxNTJ4MTMKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAo
MCwyMCkgc2l6ZSAxNTh4MTA2IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQg
IzgwODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTU4LDYyKSBzaXplIDR4
MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4LDYyKSB3aWR0aCA0OiAiICIKKyAgICAgICAg
UmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTYyLDIwKSBzaXplIDI2eDEwNiBbYmdjb2xv
cj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDE4OCw2Mikgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDE4OCw2Mikgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0g
YXQgKDE5Miw2Mykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBp
bnNldCAjODA4MDgwKV0KK2xheWVyIGF0ICgxMSw1NCkgc2l6ZSAxNTJ4MTMKKyAgUmVuZGVyRmxl
eGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAxNTJ4MTMKICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkg
d2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTUsNjcpIHNpemUgNTh4MTMK
K2xheWVyIGF0ICgxMSw1NCkgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDU4eDEzCi1sYXllciBhdCAoMTg1LDY3KSBzaXplIDE1MngxMwotICBSZW5kZXJGbGV4
aWJsZUJveCB7RElWfSBhdCAoNyw0KSBzaXplIDE1MngxMworbGF5ZXIgYXQgKDE3Myw1NCkgc2l6
ZSAxNTJ4MTMKKyAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAxNTJ4MTMK
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAw
MENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAg
ICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBh
dCAoMTg1LDY3KSBzaXplIDU4eDEzCitsYXllciBhdCAoMTczLDU0KSBzaXplIDU4eDEzCiAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxheWVyIGF0ICgzNTUsNjcpIHNp
emUgMzAweDEzCi0gIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg3LDQpIHNpemUgMzAweDEz
CitsYXllciBhdCAoMzM1LDU0KSBzaXplIDMwMHgxMworICBSZW5kZXJGbGV4aWJsZUJveCB7RElW
fSBhdCAoMywzKSBzaXplIDMwMHgxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMDUsMCkg
c2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJT
dHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMzU1LDY3KSBzaXplIDIwNngxMworbGF5ZXIgYXQg
KDMzNSw1NCkgc2l6ZSAyMDZ4MTMKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAy
MDZ4MTMKLWxheWVyIGF0ICg2NzMsNTQpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xs
SGVpZ2h0IDI2Ci0gIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg3LDQpIHNpemUgMjB4MTMK
K2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggOTQgc2Nyb2xsSGVpZ2h0
IDI2CisgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgzLDMpIHNpemUgMjB4MTMKICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMykgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQog
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4
dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoNjcz
LDU0KSBzaXplIDIweDEzCitsYXllciBhdCAoNjQ1LDU0KSBzaXplIDIweDEzCiAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMKLWxheWVyIGF0ICgxNSwxNDUpIHNpemUgMTUy
eDEzCi0gIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICg3LDQ3KSBzaXplIDE1MngxNAorbGF5
ZXIgYXQgKDExLDExNykgc2l6ZSAxNTJ4MTMKKyAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQg
KDMsNDYpIHNpemUgMTUyeDE0CiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3LDApIHNpemUg
OTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiww
KSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25n
IFBhc3N3b3JkIgotbGF5ZXIgYXQgKDE1LDE0NSkgc2l6ZSA1OHgxMworbGF5ZXIgYXQgKDExLDEx
Nykgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzCi1s
YXllciBhdCAoMTg1LDEzMikgc2l6ZSAyMHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQg
MjYKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDcsNDcpIHNpemUgMjB4MTQKK2xheWVy
IGF0ICgxNzMsMTE3KSBzaXplIDIweDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgor
ICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMyw0Nikgc2l6ZSAyMHgxNAogICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDEzKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1
biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxODUsMTMy
KSBzaXplIDIweDEzCitsYXllciBhdCAoMTczLDExNykgc2l6ZSAyMHgxMwogICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEzCi1sYXllciBhdCAoMjIzLDE0NCkgc2l6ZSAxNTJ4
MTMKLSAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDcsNCkgc2l6ZSAxNTJ4MTMKK2xheWVy
IGF0ICgyMDMsMTE2KSBzaXplIDE1MngxMworICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAo
MywzKSBzaXplIDE1MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBzaXplIDk1
eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkg
c2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQ
YXNzd29yZCIKLWxheWVyIGF0ICgyMjMsMTQ0KSBzaXplIDU4eDEzCitsYXllciBhdCAoMjAzLDEx
Nikgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzCi1s
YXllciBhdCAoMTUsNjcpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTEs
NTQpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgNTh4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDog
IkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAo
MTg1LDY3KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDE3Myw1NCkgc2l6
ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWlj
ayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgzNTUsNjcp
IHNpemUgMjA2eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDMzNSw1NCkgc2l6ZSAyMDZ4
MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjA2
eDEzIFtjb2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMjg0eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJy
b3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDY3Myw1NCkgc2l6
ZSAyMHgxMyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Ny
b2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMgW2Nv
bG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4
MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94
IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoMTUsMTQ1KSBzaXplIDU4eDEz
IHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDExLDExNykgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0
aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMyBbY29sb3I9IzAw
MDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVk
IG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxODUsMTMyKSBzaXplIDIweDEzIHNjcm9s
bFdpZHRoIDI4NAorbGF5ZXIgYXQgKDE3MywxMTcpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0
CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMgW2NvbG9yPSMwMDAwMDA5
OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVy
IHRoZSBsYXp5IGRvZy4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVy
Zmxvdy12ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKaW5kZXggMmM2NzZiZjkzZWFmLi4xNDAzOGQ2
MDY1YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9yZXBh
aW50L2NoZWNrYm94LW92ZXJmbG93LXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2Zhc3QvcmVwYWludC9jaGVja2JveC1vdmVyZmxvdy12
ZXJ0aWNhbC1ybC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIChyZXBhaW50IHJlY3Rz
Ci0gIChyZWN0IDEwIDIxIDUgNSkKKyAgKHJlY3QgMTAgMTQgNSA1KQogKQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lu
cHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vaW5wdXQtc3Ry
b25nLXBhc3N3b3JkLWF1dG8tZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0CmluZGV4IDk4YzcxM2U2
OWU5Ni4uY2Q4YWY0NTYyMTQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZp
bGwtYnV0dG9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9uL2lucHV0LXN0cm9uZy1wYXNzd29yZC1hdXRvLWZpbGwt
YnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMSwxMDAgKzEsMTAwIEBACiBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0
ICgwLDApIHNpemUgODAweDIwOQotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4MjA5Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDE4NQorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTg0CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDgwMHgxODQKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MTYw
CiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzU3eDE4CiAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNzU3OiAiVGhpcyB0ZXN0cyB0aGF0IHRoZSBTdHJvbmcgUGFzc3dvcmQg
QXV0b0ZpbGwgYnV0dG9uIHJlbmRlcnMgaW4gYW4gYXV0by1maWxsZWQgaW5wdXQuIEl0IGNhbiBv
bmx5IGJlIHRlc3RlZCBpbiB0aGUgdGVzdCB0b29sLiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDM0KSBzaXplIDc4NHgxNTEKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVU
fSBhdCAoMCwxMykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBp
bnNldCAjODA4MDgwKV0KLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTgsMTMpIHNp
emUgNHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTgsMTMpIHdpZHRoIDQ6ICIgIgotICAg
ICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgxNjIsMTMpIHNpemUgMTU4eDE5IFti
Z2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMzIwLDEzKSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMzIwLDEzKSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lO
UFVUfSBhdCAoMzI0LDEzKSBzaXplIDMwNngxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAo
MnB4IGluc2V0ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYzMCwx
Mykgc2l6ZSA0eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDYzMCwxMykgd2lkdGggNDogIiAi
Ci0gICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDYzNCwwKSBzaXplIDI2eDE5
IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCisgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTI2CisgICAgICAgIFJlbmRlclRl
eHRDb250cm9sIHtJTlBVVH0gYXQgKDAsMSkgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0g
W2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxNTgsMCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE1OCwwKSB3aWR0
aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTYyLDEpIHNp
emUgMTU4eDE5IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCld
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzIwLDApIHNpemUgNHgxOAorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgzMjAsMCkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRD
b250cm9sIHtJTlBVVH0gYXQgKDMyNCwxKSBzaXplIDMwNngxOSBbYmdjb2xvcj0jRkFGRkJEXSBb
Ym9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDYzMCwwKSBzaXplIDR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMwLDApIHdpZHRo
IDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICg2MzQsMSkgc2l6
ZSAyNngxOSBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQog
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgUmVu
ZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCw0NSkgc2l6ZSAxNTh4MTA2IFtiZ2NvbG9yPSNG
QUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTU4LDg4KSBzaXplIDR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4
LDg4KSB3aWR0aCA0OiAiICIKLSAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAo
MTYyLDMyKSBzaXplIDI2eDEwNiBbYmdjb2xvcj0jRkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0
ICM4MDgwODApXQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE4OCw4OCkgc2l6ZSA0
eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDE4OCw4OCkgd2lkdGggNDogIiAiCi0gICAgICAg
IFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDE5Miw4OCkgc2l6ZSAxNTh4MTkgW2JnY29s
b3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNldCAjODA4MDgwKV0KLWxheWVyIGF0ICgxMSw2
Nikgc2l6ZSAxNTJ4MTMKKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMCwy
MCkgc2l6ZSAxNTh4MTA2IFtiZ2NvbG9yPSNGQUZGQkRdIFtib3JkZXI6ICgycHggaW5zZXQgIzgw
ODA4MCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTU4LDYyKSBzaXplIDR4MTgK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU4LDYyKSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVu
ZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMTYyLDIwKSBzaXplIDI2eDEwNiBbYmdjb2xvcj0j
RkFGRkJEXSBbYm9yZGVyOiAoMnB4IGluc2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDE4OCw2Mikgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE4
OCw2Mikgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQg
KDE5Miw2Mykgc2l6ZSAxNTh4MTkgW2JnY29sb3I9I0ZBRkZCRF0gW2JvcmRlcjogKDJweCBpbnNl
dCAjODA4MDgwKV0KK2xheWVyIGF0ICgxMSw1NCkgc2l6ZSAxNTJ4MTMKICAgUmVuZGVyRmxleGli
bGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAxNTJ4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lk
dGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMTEsNjYpIHNpemUgNTh4MTMKK2xh
eWVyIGF0ICgxMSw1NCkgc2l6ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBz
aXplIDU4eDEzCi1sYXllciBhdCAoMTczLDY2KSBzaXplIDE1MngxMworbGF5ZXIgYXQgKDE3Myw1
NCkgc2l6ZSAxNTJ4MTMKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsMykgc2l6ZSAx
NTJ4MTMKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNTcsMCkgc2l6ZSA5NXgxMyBbY29sb3I9
IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMK
ICAgICAgICAgdGV4dCBydW4gYXQgKDYsMCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1s
YXllciBhdCAoMTczLDY2KSBzaXplIDU4eDEzCitsYXllciBhdCAoMTczLDU0KSBzaXplIDU4eDEz
CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTh4MTMKLWxheWVyIGF0ICgzMzUs
NjYpIHNpemUgMzAweDEzCitsYXllciBhdCAoMzM1LDU0KSBzaXplIDMwMHgxMwogICBSZW5kZXJG
bGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBzaXplIDMwMHgxMwogICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgyMDUsMCkgc2l6ZSA5NXgxMyBbY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICg2LDApIHNpemUgODl4MTMKICAgICAgICAgdGV4dCBydW4gYXQgKDYs
MCkgd2lkdGggODk6ICJTdHJvbmcgUGFzc3dvcmQiCi1sYXllciBhdCAoMzM1LDY2KSBzaXplIDIw
NngxMworbGF5ZXIgYXQgKDMzNSw1NCkgc2l6ZSAyMDZ4MTMKICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAyMDZ4MTMKLWxheWVyIGF0ICg2NDUsNTMpIHNpemUgMjB4MTMgc2Nyb2xs
V2lkdGggOTQgc2Nyb2xsSGVpZ2h0IDI2CitsYXllciBhdCAoNjQ1LDU0KSBzaXplIDIweDEzIHNj
cm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBh
dCAoMywzKSBzaXplIDIweDEzCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTMpIHNpemUg
OTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiww
KSBzaXplIDg5eDEzCiAgICAgICAgIHRleHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25n
IFBhc3N3b3JkIgotbGF5ZXIgYXQgKDY0NSw1Mykgc2l6ZSAyMHgxMworbGF5ZXIgYXQgKDY0NSw1
NCkgc2l6ZSAyMHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIweDEzCi1s
YXllciBhdCAoMTEsMTQyKSBzaXplIDE1MngxMworbGF5ZXIgYXQgKDExLDExNykgc2l6ZSAxNTJ4
MTMKICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDMsNDYpIHNpemUgMTUyeDE0CiAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDU3LDApIHNpemUgOTV4MTMgW2NvbG9yPSMwMDAwMDBDQ10K
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNiwwKSBzaXplIDg5eDEzCiAgICAgICAgIHRl
eHQgcnVuIGF0ICg2LDApIHdpZHRoIDg5OiAiU3Ryb25nIFBhc3N3b3JkIgotbGF5ZXIgYXQgKDEx
LDE0Mikgc2l6ZSA1OHgxMworbGF5ZXIgYXQgKDExLDExNykgc2l6ZSA1OHgxMwogICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzCi1sYXllciBhdCAoMTczLDEyOSkgc2l6ZSAy
MHgxMyBzY3JvbGxXaWR0aCA5NCBzY3JvbGxIZWlnaHQgMjYKK2xheWVyIGF0ICgxNzMsMTE3KSBz
aXplIDIweDEzIHNjcm9sbFdpZHRoIDk0IHNjcm9sbEhlaWdodCAyNgogICBSZW5kZXJGbGV4aWJs
ZUJveCB7RElWfSBhdCAoMyw0Nikgc2l6ZSAyMHgxNAogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDEzKSBzaXplIDk1eDEzIFtjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDYsMCkgc2l6ZSA4OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0
aCA4OTogIlN0cm9uZyBQYXNzd29yZCIKLWxheWVyIGF0ICgxNzMsMTI5KSBzaXplIDIweDEzCits
YXllciBhdCAoMTczLDExNykgc2l6ZSAyMHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDIweDEzCi1sYXllciBhdCAoMjAzLDE0MSkgc2l6ZSAxNTJ4MTMKK2xheWVyIGF0ICgy
MDMsMTE2KSBzaXplIDE1MngxMwogICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMywzKSBz
aXplIDE1MngxMwogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1NywwKSBzaXplIDk1eDEzIFtj
b2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYsMCkgc2l6ZSA4
OXgxMwogICAgICAgICB0ZXh0IHJ1biBhdCAoNiwwKSB3aWR0aCA4OTogIlN0cm9uZyBQYXNzd29y
ZCIKLWxheWVyIGF0ICgyMDMsMTQxKSBzaXplIDU4eDEzCitsYXllciBhdCAoMjAzLDExNikgc2l6
ZSA1OHgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDU4eDEzCi1sYXllciBh
dCAoMTEsNjYpIHNpemUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CitsYXllciBhdCAoMTEsNTQpIHNp
emUgNTh4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgNTh4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVp
Y2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoMTczLDY2
KSBzaXplIDU4eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDE3Myw1NCkgc2l6ZSA1OHgx
MyBzY3JvbGxXaWR0aCAyODQKICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgx
MyBbY29sb3I9IzAwMDAwMDk5XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDI4NHgxMwogICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93
biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgzMzUsNjYpIHNpemUg
MjA2eDEzIHNjcm9sbFdpZHRoIDI4NAorbGF5ZXIgYXQgKDMzNSw1NCkgc2l6ZSAyMDZ4MTMgc2Ny
b2xsV2lkdGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjA2eDEzIFtj
b2xvcj0jMDAwMDAwOTldCiAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg0
eDEzCiAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyODQ6ICJBIHF1aWNrIGJyb3duIGZv
eCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIgotbGF5ZXIgYXQgKDY0NSw1Mykgc2l6ZSAyMHgx
MyBzY3JvbGxXaWR0aCAyODQKK2xheWVyIGF0ICg2NDUsNTQpIHNpemUgMjB4MTMgc2Nyb2xsV2lk
dGggMjg0CiAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMgW2NvbG9yPSMw
MDAwMDA5OV0KICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBl
ZCBvdmVyIHRoZSBsYXp5IGRvZy4iCi1sYXllciBhdCAoMTEsMTQyKSBzaXplIDU4eDEzIHNjcm9s
bFdpZHRoIDI4NAorbGF5ZXIgYXQgKDExLDExNykgc2l6ZSA1OHgxMyBzY3JvbGxXaWR0aCAyODQK
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1OHgxMyBbY29sb3I9IzAwMDAwMDk5
XQogICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI4NHgxMwogICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMjg0OiAiQSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIg
dGhlIGxhenkgZG9nLiIKLWxheWVyIGF0ICgxNzMsMTI5KSBzaXplIDIweDEzIHNjcm9sbFdpZHRo
IDI4NAorbGF5ZXIgYXQgKDE3MywxMTcpIHNpemUgMjB4MTMgc2Nyb2xsV2lkdGggMjg0CiAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjB4MTMgW2NvbG9yPSMwMDAwMDA5OV0KICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyODR4MTMKICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDI4NDogIkEgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBs
YXp5IGRvZy4iCg==
</data>
<flag name="commit-queue"
          id="499136"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476150</attachid>
            <date>2025-07-22 09:08:18 -0700</date>
            <delta_ts>2025-07-22 13:21:02 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-295842-20250722090818.patch</filename>
            <type>text/plain</type>
            <size>5484</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmNWRlZWY1MjcyMTkzOTI1MGI5NWIxZjg2MzU2ZjVmOThjYmU2ODY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFN1biwgMTMgSnVsIDIwMjUgMTA6MDg6MDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gaW5saW5lQmxvY2tCYXNlbGluZSBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiBmbGV4LAogZ3Jp
ZCwgdGFibGUgYW5kIHRleHQgY29udHJvbCdzIGlubmVyIGNvbnRhaW5lcgogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTg0MgoKUmV2aWV3ZWQgYnkgQW50dGkgS29p
dmlzdG8uCgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
bGFzdEluZmxvd0JveEJhc2VsaW5lKToKKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjppbmxp
bmVCbG9ja0Jhc2VsaW5lKToKLS0tCiAuLi4vTGF5b3V0SW50ZWdyYXRpb25Cb3hHZW9tZXRyeVVw
ZGF0ZXIuY3BwICAgfCAzNCArKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkg
aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkJveEdlb21ldHJ5VXBkYXRlci5jcHAKaW5kZXggM2I3MmIyNzQ3Njk3Li5hYzg1MjhhMmRjOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkJveEdlb21ldHJ5VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94R2VvbWV0cnlVcGRhdGVyLmNwcApAQCAt
MzA3LDcgKzMwNyw2IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJs
b2NrQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94Jik7CiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IGxhc3RJbmZsb3dCb3hCYXNlbGluZShjb25zdCBSZW5kZXJCbG9jayYgYmxvY2tD
b250YWluZXIpCiB7Ci0gICAgYXV0byB3cml0aW5nTW9kZSA9IGJsb2NrQ29udGFpbmVyLmNvbnRh
aW5pbmdCbG9jaygpLT53cml0aW5nTW9kZSgpOwogICAgIGF1dG8gaGF2ZUluRmxvd0NoaWxkID0g
ZmFsc2U7CiAgICAgZm9yIChhdXRvKiBib3ggPSBibG9ja0NvbnRhaW5lci5sYXN0Q2hpbGRCb3go
KTsgYm94OyBib3ggPSBib3gtPnByZXZpb3VzU2libGluZ0JveCgpKSB7CiAgICAgICAgIGlmIChi
b3gtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKQEAgLTMyMSwxMiArMzIwLDI3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGxhc3RJbmZsb3dCb3hCYXNlbGlu
ZShjb25zdCBSZW5kZXJCbG9jayYgYmxvY2tDCiAgICAgICAgIGlmIChib3gtPnNob3VsZEFwcGx5
TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIGlm
IChpczxSZW5kZXJUYWJsZT4oKmJveCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICBpZiAoaXM8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4oKmJveCkgfHwgaXM8UmVu
ZGVyTWVudUxpc3Q+KCpib3gpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBiYXNlbGluZSA9IGxh
c3RJbmZsb3dCb3hCYXNlbGluZShkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmJveCkpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBib3gtPmxvZ2ljYWxUb3AoKSArICpiYXNlbGluZTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzPFJlbmRlckZsZXhpYmxl
Qm94PigqYm94KSB8fCBpczxSZW5kZXJHcmlkPigqYm94KSkgeworICAgICAgICAgICAgaWYgKGF1
dG8gYmFzZWxpbmUgPSBib3gtPmZpcnN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGJveC0+bG9naWNhbFRvcCgpICsgKmJhc2VsaW5lOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBpbmxpbmVCbG9ja0Jh
c2VsaW5lKCpib3gpKQogICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyAoYm94LT5sb2dp
Y2FsVG9wKCkgKyByZXN1bHQudmFsdWUoKSkudG9JbnQoKSB9OyAvLyBUcmFuc2xhdGUgdG8gb3Vy
IGNvb3JkaW5hdGUgc3BhY2UuCiAgICAgfQogCiAgICAgaWYgKCFoYXZlSW5GbG93Q2hpbGQgJiYg
YmxvY2tDb250YWluZXIuaGFzTGluZUlmRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIChmb250TWV0
cmljc0Jhc2VkQmFzZWxpbmUoYmxvY2tDb250YWluZXIpICsgKHdyaXRpbmdNb2RlLmlzSG9yaXpv
bnRhbCgpID8gYmxvY2tDb250YWluZXIuYm9yZGVyVG9wKCkgKyBibG9ja0NvbnRhaW5lci5wYWRk
aW5nVG9wKCkgOiBibG9ja0NvbnRhaW5lci5ib3JkZXJSaWdodCgpICsgYmxvY2tDb250YWluZXIu
cGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpOworICAgICAgICByZXR1cm4gKGZvbnRNZXRyaWNzQmFz
ZWRCYXNlbGluZShibG9ja0NvbnRhaW5lcikgKyAoYmxvY2tDb250YWluZXIuY29udGFpbmluZ0Js
b2NrKCktPndyaXRpbmdNb2RlKCkuaXNIb3Jpem9udGFsKCkgPyBibG9ja0NvbnRhaW5lci5ib3Jk
ZXJUb3AoKSArIGJsb2NrQ29udGFpbmVyLnBhZGRpbmdUb3AoKSA6IGJsb2NrQ29udGFpbmVyLmJv
cmRlclJpZ2h0KCkgKyBibG9ja0NvbnRhaW5lci5wYWRkaW5nUmlnaHQoKSkpLnRvSW50KCk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMzM0LDE4ICszNDgsNyBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxMYXlvdXRVbml0PiBpbmxpbmVCbG9ja0Jhc2VsaW5lKGNvbnN0IFJlbmRlckJveCYgcmVu
ZGVyQm94KQogewogICAgIEFTU0VSVCghKHJlbmRlckJveC5pc0lubGluZSgpICYmIHJlbmRlckJv
eC5lbGVtZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+aXNGb3JtQ29udHJvbEVsZW1lbnQo
KSkpOwogICAgIEFTU0VSVCghKHJlbmRlckJveC5pc0lubGluZSgpICYmIHJlbmRlckJveC5lbGVt
ZW50KCkgJiYgcmVuZGVyQm94LmVsZW1lbnQoKS0+c2hhZG93SG9zdCgpICYmIHJlbmRlckJveC5l
bGVtZW50KCktPnNoYWRvd0hvc3QoKS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkpOwotCi0gICAg
YXV0byB3cml0aW5nTW9kZSA9IHJlbmRlckJveC5jb250YWluaW5nQmxvY2soKS0+d3JpdGluZ01v
ZGUoKTsKLSAgICBhdXRvIGxpbmVEaXJlY3Rpb24gPSB3cml0aW5nTW9kZS5pc0hvcml6b250YWwo
KSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxMaW5lOwotCi0gICAgaWYgKGlzPFJlbmRlclRh
YmxlPihyZW5kZXJCb3gpKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgaWYgKChpczxSZW5k
ZXJGbGV4aWJsZUJveD4ocmVuZGVyQm94KSB8fCBpczxSZW5kZXJHcmlkPihyZW5kZXJCb3gpKSAm
JiAhaXM8UmVuZGVyTWVudUxpc3Q+KHJlbmRlckJveCkgJiYgIWlzPFJlbmRlclRleHRDb250cm9s
SW5uZXJDb250YWluZXI+KHJlbmRlckJveCkpCi0gICAgICAgIHJldHVybiByZW5kZXJCb3guZmly
c3RMaW5lQmFzZWxpbmUoKTsKLQotICAgIGlmIChDaGVja2VkUHRyIGlubmVyQ29udGFpbmVyID0g
ZHluYW1pY0Rvd25jYXN0PFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KHJlbmRlckJv
eCkpCi0gICAgICAgIHJldHVybiBsYXN0SW5mbG93Qm94QmFzZWxpbmUoKmlubmVyQ29udGFpbmVy
KTsKKyAgICBBU1NFUlQoIWlzPFJlbmRlclRhYmxlPihyZW5kZXJCb3gpICYmICFpczxSZW5kZXJG
bGV4aWJsZUJveD4ocmVuZGVyQm94KSAmJiAhaXM8UmVuZGVyR3JpZD4ocmVuZGVyQm94KSAmJiAh
aXM8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4ocmVuZGVyQm94KSk7CiAKICAgICBp
ZiAoQ2hlY2tlZFB0ciBibG9ja0Zsb3cgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93
PihyZW5kZXJCb3gpKSB7CiAgICAgICAgIGlmIChibG9ja0Zsb3ctPnN0eWxlKCkuZGlzcGxheSgp
ID09IERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jaykgewpAQCAtMzU2LDYgKzM1OSw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoY29uc3QgUmVu
ZGVyQm94JiByZW5kZXJCb3gpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
fQogCisgICAgICAgIGF1dG8gd3JpdGluZ01vZGUgPSByZW5kZXJCb3guY29udGFpbmluZ0Jsb2Nr
KCktPndyaXRpbmdNb2RlKCk7CiAgICAgICAgIGlmIChibG9ja0Zsb3ctPnN0eWxlKCkub3ZlcmZs
b3dZKCkgIT0gT3ZlcmZsb3c6OlZpc2libGUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBDYWxs
ZXIgYWRkcyBtYXJnaW4gYmVmb3JlIHNvIHdlIGNhbid0IHlldCByZXR1cm4gbWFyZ2luIGJveCBo
ZWlnaHQuCiAgICAgICAgICAgICBhdXRvIGJvcmRlckJveEhlaWdodGhXaXRodE1hcmdpbkJvdHRv
bSA9IGJsb2NrRmxvdy0+bWFyZ2luQm94TG9naWNhbEhlaWdodCh3cml0aW5nTW9kZSkgLSAgKHdy
aXRpbmdNb2RlLmlzSG9yaXpvbnRhbCgpID8gcmVuZGVyQm94Lm1hcmdpblRvcCgpIDogcmVuZGVy
Qm94Lm1hcmdpblJpZ2h0KCkpOwpAQCAtMzcwLDcgKzM3NCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGlubGluZUJsb2NrQmFzZWxpbmUoY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJCb3gpCiAgICAgICAgICAgICBpZiAoIWJsb2NrRmxvdy0+aGFzTGluZXMoKSkgewogICAgICAg
ICAgICAgICAgIGlmICghYmxvY2tGbG93LT5oYXNMaW5lSWZFbXB0eSgpKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4geyB9OwotICAgICAgICAgICAgICAgIHJldHVybiAoZm9udE1ldHJpY3NC
YXNlZEJhc2VsaW5lKCpibG9ja0Zsb3cpICsgKGxpbmVEaXJlY3Rpb24gPT0gSG9yaXpvbnRhbExp
bmUgPyBibG9ja0Zsb3ctPmJvcmRlclRvcCgpICsgYmxvY2tGbG93LT5wYWRkaW5nVG9wKCkgOiBi
bG9ja0Zsb3ctPmJvcmRlclJpZ2h0KCkgKyBibG9ja0Zsb3ctPnBhZGRpbmdSaWdodCgpKSkudG9J
bnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGZvbnRNZXRyaWNzQmFzZWRCYXNlbGluZSgq
YmxvY2tGbG93KSArICh3cml0aW5nTW9kZS5pc0hvcml6b250YWwoKSA/IGJsb2NrRmxvdy0+Ym9y
ZGVyVG9wKCkgKyBibG9ja0Zsb3ctPnBhZGRpbmdUb3AoKSA6IGJsb2NrRmxvdy0+Ym9yZGVyUmln
aHQoKSArIGJsb2NrRmxvdy0+cGFkZGluZ1JpZ2h0KCkpKS50b0ludCgpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBpZiAoYXV0byogaW5saW5lTGF5b3V0ID0gYmxvY2tGbG93LT5pbmxp
bmVMYXlvdXQoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>