<?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>136928</bug_id>
          
          <creation_ts>2014-09-18 12:33:09 -0700</creation_ts>
          <short_desc>[DoNotReview] Casting helpers experiments for ews</short_desc>
          <delta_ts>2014-09-18 13:17:18 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035967</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 12:33:09 -0700</bug_when>
    <thetext>Casting helpers experiments for ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035968</commentid>
    <comment_count>1</comment_count>
      <attachid>238319</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 12:34:01 -0700</bug_when>
    <thetext>Created attachment 238319
WIP patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238319</attachid>
            <date>2014-09-18 12:34:01 -0700</date>
            <delta_ts>2014-09-18 12:34:01 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>136839_generate_cast_helpers_wip1.patch</filename>
            <type>text/plain</type>
            <size>145661</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NmM1ZDZlLi43ZWIyMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEx
IEBACisyMDE0LTA5LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgR2VuZXJhdGUgRWxlbWVudCBjYXN0aW5nIGhlbHBlciBmdW5jdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgzOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2Fz
dGluZyBoZWxwZXIgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmVxdWlyaW5nIGV4cGxpY2l0CisgICAg
ICAgIHVzZSBvZiBOT0RFX1RZUEVfQ0FTVFMoKSBtYWNyby4gQ2FzdGluZyBpcyBub3cgZG9uZSB1
c2luZyB0aGUgZm9sbG93aW5nCisgICAgICAgIGZvcm06IGRvd25jYXN0PEhUTUxEaXZFbGVtZW50
PigpLCBpbnN0ZWFkIG9mIHRvSFRNTERpdkVsZW1lbnQoKS4KKworICAgICAgICBUaGUgcHJldmlv
dXMgZm9ybSAoaS5lLiB0b0hUTUxEaXZFbGVtZW50KCkpIGlzIHN0aWxsIHN1cHBvcnRlZCBmb3Ig
bm93CisgICAgICAgIGJ5IGdlbmVyYXRpbmcgbWFjcm9zIHRoYXQgY29udmVydCB0aGVzZSBjYWxs
cyBpbnRvIHRoZSBuZXcgZm9ybSwgdW50aWwKKyAgICAgICAgdGhlIGNvZGUgYmFzZSBpcyBwb3J0
ZWQgdG8gdGhlIG5ldyBjYXN0aW5nIGhlbHBlcnMuCisKKyAgICAgICAgVGhlIHBsYW4gaXMgYWxz
byB0byB1c2UgaXM8SFRNTERpdkVsZW1lbnQ+KCkgaW5zdGVhZCBvZgorICAgICAgICBpc0hUTUxE
aXZFbGVtZW50KCkgZm9yIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIHdhcyBub3QgY2hhbmdlZCBpbiB0
aGlzCisgICAgICAgIHBhdGNoIHRvIGF2b2lkIGJsb3dpbmcgdXAgdGhlIHNpemUuCisKKyAgICAg
ICAgVGhpcyBDTCBhbHNvIHVwZGF0ZXMgdGhlIHdheSB3ZSBjb252ZXJ0IGEgSlNWYWx1ZSBpbnRv
IGFuCisgICAgICAgIGltcGxlbWVudGF0aW9uIHBvaW50ZXIuIEluc3RlYWQgb2YgdXNpbmcgdG9I
VE1MRGl2RWxlbWVudCgpLCB3aGljaAorICAgICAgICBsb29rZWQgbGlrZSBhIGNhc3QsIHdlIG5v
dyB1c2UgSlNIVE1MRGl2RWxlbWVudDo6dG9JbXBsKCkuIFRoaXMKKyAgICAgICAgYXZvaWRzIGNv
bmZsaWN0aW5nIHdpdGggdGhlIHRvWFhYRWxlbWVudCgpIG1hY3JvcyBhbmQgbWFrZXMgaXQKKyAg
ICAgICAgY2xlYXJlciB0aGlzIGlzIG5vdCBhIHNpbXBsZSBjYXN0LgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudCk6CisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5v
ZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb0J1ZmZlclNvdXJjZU5vZGU6
OnNldEJ1ZmZlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEpTQmxvYik6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDb21t
YW5kTGluZUFQSUhvc3Q6OmdldEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
Q29tbWFuZExpbmVBUElIb3N0OjpkYXRhYmFzZUlkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29t
bWFuZExpbmVBUElIb3N0OjpzdG9yYWdlSWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Rm9ybURhdGFDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MRm9ybUVsZW1lbnRP
ck51bGwpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNET01Gb3JtRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTUZvcm1EYXRhOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
dG9IVE1MRm9ybUVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVN0cmluZ0xpc3Q6
OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b0RPTVN0cmluZ0xpc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93Ojp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9ET01XaW5k
b3cpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Rv
Y3VtZW50OjpjcmVhdGVUb3VjaExpc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRU
YXJnZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudFRhcmdldDo6dG9JbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvRXZlbnRUYXJnZXQpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0V4
Y2VwdGlvbkJhc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRy
b2xsZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjphZGQp
OgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnJlbW92ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0hUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUpOgorICAgICAgICAoV2Vi
Q29yZTo6c2VsZWN0SW5kZXhTZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5zcGVj
dG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW5zcGVjdG9y
RnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZUluaXRNZXNz
YWdlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE1lc3NhZ2VQb3J0QXJyYXkpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6Omlu
c2VydEJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnJlcGxhY2VDaGlsZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRl
ckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXI6OnRvSW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b05vZGVGaWx0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU3Vi
dGxlQ3J5cHRvOjplbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpk
ZWNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpzaWduKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjp2ZXJpZnkpOgorICAgICAgICAoV2ViQ29yZTo6
SlNTdWJ0bGVDcnlwdG86OmV4cG9ydEtleSk6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNy
eXB0bzo6d3JhcEtleSk6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6dW53cmFw
S2V5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0
YWNoZWRTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRQcm9ncmFtUGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1
bmN0aW9uZik6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25pKToKKyAgICAgICAgKFdl
YkNvcmU6OmRhdGFGdW5jdGlvbk1hdHJpeCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0
OjpzZW5kKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wSWZUZXJtaW5hbCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAg
ICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAgKEpTVmFsdWVUb05hdGl2ZSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVG
dW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZl
RE9NT2JqZWN0Ojp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0QWN0aXZlRE9NT2Jq
ZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dEV2ZW50Q29uc3RydWN0b3I6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFdmVu
dENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RF
dmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uRGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RFdmVudFRhcmdldDo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVz
dEV2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV4Y2VwdGlv
bjo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEV4Y2VwdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnRv
SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbkltcGxlbWVudHNNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMik6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RJbnRlcmZhY2U6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RJbnRl
cmZhY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjp0b0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9UZXN0TmFtZWRDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjp0b0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6dG9UZXN0Tm9uZGV0ZXJtaW5pc3RpYyk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdE9ialRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9ialhNTE9iakF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9k
V2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
YmpNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDgpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db252ZXJ0NSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2Qp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9UZXN0T2JqKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzMyk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dG9JbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNl
VGhhdFJlcXVpcmVzSW5jbHVkZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmczo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdFR5cGVkZWZzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNhdHRyaWJ1dGU6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b2F0dHJp
YnV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0
cmlidXRlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNyZWFkb25seTo6dG9JbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvcmVhZG9ubHkpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU3JlYWRvbmx5Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmRvd25jYXN0KToKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAg
ICAgKHByaW50VHlwZUhlbHBlcnMpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TEF1ZGlvRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJhc2VFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MQm9keUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MRmllbGRTZXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxNYXBFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TE1ldGVyRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9MaXN0RWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU3R5bGVFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNhcHRp
b25FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjpzY3JpcHRWYWx1ZUFzTm9kZSk6CisgICAgICAgICogbWF0aG1sL01hdGhN
TE1lbmNsb3NlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FsdEdseXBoSXRlbUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0
aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3RhbnRMaWdo
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jR0VsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHRkVNZXJnZU5vZGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFUG9pbnRMaWdodEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlTmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdHbHlwaEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhSZWZFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0hLZXJuRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHUG9seWdvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
UG9seWxpbmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdT
VkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHU3RvcEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUaXRsZUVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdWS2VybkVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQuaDoKKwogMjAxNC0wOS0xOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBmYXN0SGFzQXR0cmlidXRlKCkg
LyBmYXN0R2V0QXR0cmlidXRlKCkgd2hlbiBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
CmluZGV4IDM2OWFiYjEuLjNkYmZkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTIx
Myw3ICsyMTMsNyBAQCBib29sIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjppbnN0YWxsUmVw
bGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAvLyBHZXQgdGhlIDx2aWRlbz4gY3JlYXRl
ZCB0byByZXBsYWNlIHRoZSBwbHVnLWluLgogICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IHJlcGxh
Y2VtZW50LmdldChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgInZpZGVvIikpOwogICAgIGlm
ICghZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0g
ICAgICAgIG1fbWVkaWFFbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KHZhbHVlKTsKKyAgICAg
ICAgbV9tZWRpYUVsZW1lbnQgPSBKU0hUTUxWaWRlb0VsZW1lbnQ6OnRvSW1wbCh2YWx1ZSk7CiAK
ICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KSB7CiAgICAgICAgIExPRyhQbHVnaW5zLCAiJXAgLSBG
YWlsZWQgdG8gZmluZCA8dmlkZW8+IGVsZW1lbnQgY3JlYXRlZCBieSBRdWlja1RpbWUgcGx1Z2lu
IHJlcGxhY2VtZW50IHNjcmlwdC4iLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggODc0
ZTUxZS4uMjNmNmZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc3LDYgKzc3LDcgQEAgX19a
TjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUks3Q0dQb2ludAogX19aTjdXZWJDb3JlMTBGbG9hdFBv
aW50QzFFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMEZvbnRHbHlwaHMxNXJlbGVhc2VG
b250RGF0YUV2CiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQorX19aTjdXZWJDb3Jl
MTBKU0RvY3VtZW50NnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTBMYXlvdXRS
ZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDV1bml0ZUVSS1MwXwogX19aTjdX
ZWJDb3JlMTBMYXlvdXRSZWN0QzFFUktOU185RmxvYXRSZWN0RQpAQCAtMTI0LDcgKzEyNSw2IEBA
IF9fWk43V2ViQ29yZTEwVGltZVJhbmdlc0MxRWRkCiBfX1pON1dlYkNvcmUxMGRlbGV0ZUZpbGVF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMGZpbGVFeGlzdHNFUktOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmUxMHNldENvb2tpZXNFUE5TXzhEb2N1bWVudEVSS05TXzNVUkxFUktOM1dU
RjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNKU0M3SlNWYWx1ZUUKIF9fWk43
V2ViQ29yZTExQml0bWFwSW1hZ2UxM2dldENHSW1hZ2VSZWZFdgogX19aTjdXZWJDb3JlMTFCaXRt
YXBJbWFnZUMxRVA3Q0dJbWFnZVBOU18xM0ltYWdlT2JzZXJ2ZXJFCiBfX1pON1dlYkNvcmUxMUJp
dG1hcEltYWdlQzFFUE5TXzEzSW1hZ2VPYnNlcnZlckUKQEAgLTY2Nyw3ICs2NjcsNiBAQCBfX1pO
N1dlYkNvcmUxNW9yaWdpbmFsVVJMRGF0YUVQNU5TVVJMCiBfX1pON1dlYkNvcmUxNXBhdGhHZXRG
aWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1cmVwb3J0RXhjZXB0aW9uRVBO
M0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18xMkNhY2hlZFNjcmlwdEUKIF9fWk43V2Vi
Q29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFaQotX19aTjdXZWJDb3JlMTV0
b0RPTVN0cmluZ0xpc3RFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFCiBfX1pON1dlYkNv
cmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCiBfX1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVS
S04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRpb25DYWNoZTE4ZGlza1VzYWdl
Rm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpAQCAtMTI0Miw2ICsxMjQxLDcgQEAgX19a
TjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVk
aXRvcjdjb3B5VVJMRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0
b3I3b3V0ZGVudEV2CiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0UKK19fWk43V2ViQ29yZTZK
U05vZGU2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU2TGVuZ3RoQzFFTjNXVEY3
UGFzc1JlZklOU18xNkNhbGN1bGF0aW9uVmFsdWVFRUUKIF9fWk43V2ViQ29yZTZSZWdpb24yMXVw
ZGF0ZUJvdW5kc0Zyb21TaGFwZUV2CiBfX1pON1dlYkNvcmU2UmVnaW9uNXVuaXRlRVJLUzBfCkBA
IC0xMjU5LDcgKzEyNTksNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0OHNldEZvY3VzRWIKIF9fWk43
V2ViQ29yZTZXaWRnZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9sbFZpZXdFCiBfX1pON1dlYkNvcmU2
V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvSW50OEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNW
YWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKLV9fWk43V2ViQ29yZTZ0
b05vZGVFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVF
UktOM1dURjEyQXRvbWljU3RyaW5nRVM0X1JpCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0
cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk43
V2ViQ29yZTdFbGVtZW50MTZjcmVhdGVTaGFkb3dSb290RVJpCkBAIC0xMjczLDYgKzEyNzIsNyBA
QCBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfMTBMYXlvdXRSZWN0RQogX19aTjdXZWJDb3Jl
N0ludFJlY3RDMUVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmU3SW50U2l6ZUMxRVJLNkNH
U2l6ZQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSS05TXzlGbG9hdFNpemVFCitfX1pON1dlYkNv
cmU3SlNSYW5nZTZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdUZXh0UnVuMTlh
bGxvd3NSb3VuZGluZ0hhY2tzRXYKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjFzX2FsbG93c1JvdW5k
aW5nSGFja3NFCiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIyc2V0QWxsb3dzUm91bmRpbmdIYWNrc0Vi
CkBAIC0xMjgxLDcgKzEyODEsNiBAQCBfX1pON1dlYkNvcmU3anNBcnJheUVQTjNKU0M5RXhlY1N0
YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RGMTBQYXNzUmVmUHRySQogX19aTjdXZWJD
b3JlN21ha2VSR0JFaWlpCiBfX1pON1dlYkNvcmU3dG9JbnQxNkVQTjNKU0M5RXhlY1N0YXRlRU5T
MF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKIF9fWk43V2Vi
Q29yZTd0b0ludDY0RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNv
bnZlcnNpb25Db25maWd1cmF0aW9uRQotX19aTjdXZWJDb3JlN3RvUmFuZ2VFTjNKU0M3SlNWYWx1
ZUUKIF9fWk43V2ViQ29yZTd0b1VJbnQ4RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5T
XzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQogX19aTjdXZWJDb3JlOEJsb2JEYXRh
MTRzZXRDb250ZW50VHlwZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThDU1NWYWx1ZTdk
ZXN0cm95RXYKQEAgLTE0OTUsNiArMTQ5NCw3IEBAIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNGRp
cnR5TGluZUJveGVzRXYKIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNHNlbGVjdGlvblN0YXRlRXYK
IF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNnBsYWNlRWxsaXBzaXNCb3hFYmZmZlJmUmIKIF9fWk43
V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRQorX19aTjdXZWJDb3JlOUpTRWxlbWVudDZ0b0ltcGxF
TjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTlMYXllclBvb2xDMUV2CiBfX1pON1dlYkNvcmU5
TGF5ZXJQb29sRDFFdgogX19aTjdXZWJDb3JlOVBhZ2VDYWNoZTExc2V0Q2FwYWNpdHlFaQpAQCAt
MTUzNSw3ICsxNTM1LDYgQEAgX19aTjdXZWJDb3JlOWZvbnRDYWNoZUV2CiBfX1pON1dlYkNvcmU5
bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBfX1pON1dlYkNvcmU5cGFnZUNh
Y2hlRXYKIF9fWk43V2ViQ29yZTlwbGFpblRleHRFUEtOU181UmFuZ2VFdGIKLV9fWk43V2ViQ29y
ZTl0b0VsZW1lbnRFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTl1bmlvblJlY3RFUktOM1dU
RjZWZWN0b3JJTlNfOUZsb2F0UmVjdEVMbTBFTlMwXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCiBfX1pO
SzNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3Ry
aW5nMTRjcmVhdGVDRlN0cmluZ0V2CkBAIC0zMjU3LDcgKzMyNTYsNyBAQCBfX1pON1dlYkNvcmUx
Mk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hFcnJvckV2ZW50RXYKIF9fWk43V2ViQ29yZTEyTm90aWZp
Y2F0aW9uOGZpbmFsaXplRXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uQzFFdgogX19aTjdX
ZWJDb3JlMTJOb3RpZmljYXRpb25EMUV2Ci1fX1pON1dlYkNvcmUxNHRvTm90aWZpY2F0aW9uRU4z
SlNDN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxNEpTTm90aWZpY2F0aW9uNnRvSW1wbEVOM0pTQzdK
U1ZhbHVlRQogX19aTjdXZWJDb3JlMTlwcm92aWRlTm90aWZpY2F0aW9uRVBOU180UGFnZUVQTlNf
MThOb3RpZmljYXRpb25DbGllbnRFCiBfX1pON1dlYkNvcmUyMk5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIxMGNsaWVudEZyb21FUE5TXzRQYWdlRQogI2VuZGlmCkBAIC0zMzY5LDcgKzMzNjgsNyBAQCBf
X1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE2aGFuZGxlVG91Y2hFdmVudEVSS05TXzE4UGxhdGZv
cm1Ub3VjaEV2ZW50RQogI2lmIEVOQUJMRShWSURFTykKIC5vYmpjX2NsYXNzX25hbWVfV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlcgogX19aTjdXZWJDb3JlMTBUaW1lUmFuZ2VzM2FkZEVkZAot
X19aTjdXZWJDb3JlMTJ0b1RpbWVSYW5nZXNFTjNKU0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTEy
SlNUaW1lUmFuZ2VzNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTZIVE1MTWVk
aWFFbGVtZW50MTJlbmRTY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
MTRiZWdpblNjcnViYmluZ0V2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxNGV4aXRG
dWxsc2NyZWVuRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVk
aW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAppbmRleCBlNmI1MDY0Li5hYmIwMDgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291
cmNlTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRp
b0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogdm9pZCBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBdWRpb0J1ZmZlciogYnVmZmVyID0g
dG9BdWRpb0J1ZmZlcih2YWx1ZSk7CisgICAgQXVkaW9CdWZmZXIqIGJ1ZmZlciA9IEpTQXVkaW9C
dWZmZXI6OnRvSW1wbCh2YWx1ZSk7CiAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAgZXhlYy0+
dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlZhbHVlIGlz
IG5vdCBvZiB0eXBlIEF1ZGlvQnVmZmVyIikpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcAppbmRleCAyOTNhZmIzLi4wNmE5MTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKQEAgLTEy
MSw3ICsxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQmxv
YihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlC
dWZmZXIpOwogICAgICAgICBlbHNlIGlmIChSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheUJ1
ZmZlclZpZXcgPSB0b0FycmF5QnVmZmVyVmlldyhpdGVtKSkKICAgICAgICAgICAgIGJsb2JCdWls
ZGVyLmFwcGVuZChhcnJheUJ1ZmZlclZpZXcucmVsZWFzZSgpKTsKLSAgICAgICAgZWxzZSBpZiAo
QmxvYiogYmxvYiA9IHRvQmxvYihpdGVtKSkKKyAgICAgICAgZWxzZSBpZiAoQmxvYiogYmxvYiA9
IEpTQmxvYjo6dG9JbXBsKGl0ZW0pKQogICAgICAgICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5kKGJs
b2IpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBpdGVtLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcAppbmRleCA3OTU0OGU4
Li5mMmZmYzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1h
bmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNWYWx1
ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6Z2V0RXZlbnRMaXN0ZW5lcnMoRXhlY1N0YXRlKiBleGVj
KQogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwoKSkKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBOb2RlKiBub2RlID0gdG9Ob2RlKHZhbHVlKTsK
KyAgICBOb2RlKiBub2RlID0gSlNOb2RlOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghbm9kZSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBKU1Zh
bHVlIEpTQ29tbWFuZExpbmVBUElIb3N0OjpkYXRhYmFzZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQot
ICAgIERhdGFiYXNlKiBkYXRhYmFzZSA9IHRvRGF0YWJhc2UoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMCkpOworICAgIERhdGFiYXNlKiBkYXRhYmFzZSA9IEpTRGF0YWJhc2U6OnRvSW1wbChleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKGRhdGFiYXNlKQogICAgICAgICByZXR1
cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW1wbCgpLmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNl
KSk7CiAjZW5kaWYKQEAgLTE2Miw3ICsxNjIsNyBAQCBKU1ZhbHVlIEpTQ29tbWFuZExpbmVBUElI
b3N0OjpzdG9yYWdlSWQoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAxKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIFN0b3JhZ2Uq
IHN0b3JhZ2UgPSB0b1N0b3JhZ2UoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFN0
b3JhZ2UqIHN0b3JhZ2UgPSBKU1N0b3JhZ2U6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CiAgICAgaWYgKHN0b3JhZ2UpCiAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNo
ZShleGVjLCBpbXBsKCkuc3RvcmFnZUlkSW1wbChzdG9yYWdlKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKaW5kZXggMzFiMTgw
Yi4uZTllMGJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01G
b3JtRGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01G
b3JtRGF0YUN1c3RvbS5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgSFRNTEZvcm1FbGVtZW50KiB0b0hUTUxG
b3JtRWxlbWVudChKU0M6OkpTVmFsdWUgdmFsdWUpCitzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiB0
b0hUTUxGb3JtRWxlbWVudE9yTnVsbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJu
IHZhbHVlLmluaGVyaXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpzQ2FzdDxKU0hU
TUxGb3JtRWxlbWVudCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IDA7CisgICAgcmV0dXJu
IHZhbHVlLmluaGVyaXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpzQ2FzdDxKU0hU
TUxGb3JtRWxlbWVudCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IG51bGxwdHI7CiB9CiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNET01Gb3JtRGF0YShFeGVj
U3RhdGUqIGV4ZWMpCkBAIC01Miw3ICs1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0SlNET01Gb3JtRGF0YShFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBIVE1MRm9y
bUVsZW1lbnQqIGZvcm0gPSAwOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwKQot
ICAgICAgICBmb3JtID0gdG9IVE1MRm9ybUVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAg
ICAgICBmb3JtID0gdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoZXhlYy0+YXJndW1lbnQoMCkpOwog
ICAgIFJlZlB0cjxET01Gb3JtRGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0YTo6Y3JlYXRl
KGZvcm0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBq
c0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgZG9tRm9ybURhdGEuZ2V0KCkpKSk7CiB9CkBA
IC02Niw3ICs2Niw3IEBAIEpTVmFsdWUgSlNET01Gb3JtRGF0YTo6YXBwZW5kKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgIFN0cmluZyBmaWxlbmFtZTsKICAgICAgICAgICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPj0gMyAmJiAhZXhlYy0+YXJndW1lbnQoMikuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICAgICAgICAgIGltcGwoKS5hcHBlbmQobmFt
ZSwgdG9CbG9iKHZhbHVlKSwgZmlsZW5hbWUpOworICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChu
YW1lLCBKU0Jsb2I6OnRvSW1wbCh2YWx1ZSksIGZpbGVuYW1lKTsKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1
ZShleGVjKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAKaW5kZXggMjMzMzdiMi4uYWQzYWM0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
CkBAIC0yNSw3ICsyNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b0RPTVN0cmluZ0xpc3QoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBKU0RP
TVN0cmluZ0xpc3Q6OnRvSW1wbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTRE9NU3RyaW5nTGlzdDo6aW5mbygpKSkKICAgICAgICAg
cmV0dXJuICZqc0Nhc3Q8SlNET01TdHJpbmdMaXN0Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
CmluZGV4IDVmM2I1MTcuLmU4NGQzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTY4NCw3ICs2ODQsNyBAQCBKU1ZhbHVlIEpT
RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKIH0KIAotRE9NV2luZG93KiB0b0RPTVdpbmRvdyhKU1ZhbHVlIHZh
bHVlKQorRE9NV2luZG93KiBKU0RPTVdpbmRvdzo6dG9JbXBsKEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCmluZGV4IDFhZjAyNmQuLmQzMGIyNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtMTU1
LDIyICsxNTUsMjIgQEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxTZXJpYWxpemUKIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NV2lu
ZG93PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRE9NV2luZG93KHZhbHVlKTsKKyAgICBy
ZXN1bHQgPSBKU0RPTVdpbmRvdzo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RXZlbnRU
YXJnZXQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9FdmVudFRhcmdldCh2YWx1ZSk7Cisg
ICAgcmVzdWx0ID0gSlNFdmVudFRhcmdldDo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8
Tm9kZT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b05vZGUodmFsdWUpOworICAgIHJlc3Vs
dCA9IEpTTm9kZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZl
cnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8U3RvcmFnZT4mIHJlc3Vs
dCkKIHsKLSAgICByZXN1bHQgPSB0b1N0b3JhZ2UodmFsdWUpOworICAgIHJlc3VsdCA9IEpTU3Rv
cmFnZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIE1lc3NhZ2VQb3J0QXJyYXkmIHJlc3Vs
dCkKQEAgLTIyMiwzMSArMjIyLDMxIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxVaW50CiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxNZWRpYUtleUVycm9yPiYg
cmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTWVkaWFLZXlFcnJvcih2YWx1ZSk7CisgICAgcmVz
dWx0ID0gSlNNZWRpYUtleUVycm9yOjp0b0ltcGwodmFsdWUpOwogfQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE1lZGlhU3RyZWFtPiYgcmVz
dWx0KQogewotICAgIHJlc3VsdCA9IHRvTWVkaWFTdHJlYW0odmFsdWUpOworICAgIHJlc3VsdCA9
IEpTTWVkaWFTdHJlYW06OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTWVkaWFTdHJlYW1U
cmFjayh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYVN0cmVhbVRyYWNrOjp0b0ltcGwodmFs
dWUpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9D
U1NGb250RmFjZVJ1bGUodmFsdWUpOworICAgIHJlc3VsdCA9IEpTQ1NTRm9udEZhY2VSdWxlOjp0
b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+JiByZXN1bHQp
CiB7Ci0gICAgcmVzdWx0ID0gdG9ET01FcnJvcih2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNET01F
cnJvcjo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1
ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Vm9pZENh
bGxiYWNrPiYgcmVzdWx0KQpAQCAtMjYxLDcgKzI2MSw3IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8R2FtZXBhZD4mIHJl
c3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0dhbWVwYWQodmFsdWUpOworICAgIHJlc3VsdCA9IEpT
R2FtZXBhZDo6dG9JbXBsKHZhbHVlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IGZhMjQ0NDMuLjNiOGE5OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3Bw
CkBAIC0xMjEsNyArMTIxLDcgQEAgSlNWYWx1ZSBKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3Qo
RXhlY1N0YXRlKiBleGVjKQogICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRvdWNoTGlzdCA9IFRvdWNo
TGlzdDo6Y3JlYXRlKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKTsgaSsrKQotICAgICAgICB0b3VjaExpc3QtPmFwcGVuZCh0b1RvdWNoKGV4ZWMt
PmFyZ3VtZW50KGkpKSk7CisgICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKEpTVG91Y2g6OnRvSW1w
bChleGVjLT5hcmd1bWVudChpKSkpOwogCiAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0KCksIHRvdWNoTGlzdC5yZWxlYXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAppbmRleCA1MjEwZjEyLi5mNTRhNTk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmNwcApAQCAtNTgsNyArNTgsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCogdGFyZwogICAgIGlm
ICh2YWx1ZS5pbmhlcml0cyhKUyMjaW50ZXJmYWNlTmFtZTo6aW5mbygpKSkgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgICAgICByZXR1cm4gJmpzQ2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFz
T2JqZWN0KHZhbHVlKSktPmltcGwoKTsKIAotRXZlbnRUYXJnZXQqIHRvRXZlbnRUYXJnZXQoSlND
OjpKU1ZhbHVlIHZhbHVlKQorRXZlbnRUYXJnZXQqIEpTRXZlbnRUYXJnZXQ6OnRvSW1wbChKU0M6
OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShET01X
aW5kb3dTaGVsbCkKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKEV2ZW50VGFyZ2V0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKaW5k
ZXggYmRlMjViMC4uZjYyNjJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFeGNlcHRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V4Y2VwdGlvbkJhc2UuY3BwCkBAIC00MSwyMCArNDEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBFeGNlcHRpb25CYXNlKiB0b0V4Y2VwdGlvbkJhc2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewotICAgIGlmIChET01Db3JlRXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSB0b0RPTUNvcmVFeGNl
cHRpb24odmFsdWUpKQorICAgIGlmIChET01Db3JlRXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSBK
U0RPTUNvcmVFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihkb21FeGNlcHRpb24pOwotICAgIGlmIChSYW5nZUV4
Y2VwdGlvbiogcmFuZ2VFeGNlcHRpb24gPSB0b1JhbmdlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBp
ZiAoUmFuZ2VFeGNlcHRpb24qIHJhbmdlRXhjZXB0aW9uID0gSlNSYW5nZUV4Y2VwdGlvbjo6dG9J
bXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFz
ZSo+KHJhbmdlRXhjZXB0aW9uKTsKLSAgICBpZiAoRXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0
aW9uID0gdG9FdmVudEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKEV2ZW50RXhjZXB0aW9uKiBl
dmVudEV4Y2VwdGlvbiA9IEpTRXZlbnRFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihldmVudEV4Y2VwdGlvbik7
Ci0gICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gdG9Y
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6dG9J
bXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFz
ZSo+KHhtbEh0dHBFeGNlcHRpb24pOwotICAgIGlmIChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlv
biA9IHRvU1ZHRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoU1ZHRXhjZXB0aW9uKiBzdmdFeGNl
cHRpb24gPSBKU1NWR0V4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHN2Z0V4Y2VwdGlvbik7Ci0gICAgaWYgKFhQ
YXRoRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gdG9YUGF0aEV4Y2VwdGlvbih2YWx1ZSkpCisg
ICAgaWYgKFhQYXRoRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gSlNYUGF0aEV4Y2VwdGlvbjo6
dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9u
QmFzZSo+KHBhdGhFeGNlcHRpb24pOwogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgaWYg
KFNRTEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9IHRvU1FMRXhjZXB0aW9uKHZhbHVlKSkKKyAg
ICBpZiAoU1FMRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gSlNTUUxFeGNlcHRpb246OnRvSW1w
bCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2Uq
PihwYXRoRXhjZXB0aW9uKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAxZDQwYzYwLi5i
ZmMxZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRp
YUVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdm9pZCBKU0hUTUxNZWRp
YUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSkKICAgICAv
LyBPbiBzZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJlbW92ZSB0aGUgZWxlbWVudCdzIG1lZGlhZ3Jv
dXAgYXR0cmlidXRlLCBpZiBhbnksIAogICAgIGltcGwoKS5zZXRNZWRpYUdyb3VwKFN0cmluZygp
KTsKICAgICAvLyBhbmQgdGhlbiBzZXQgdGhlIGN1cnJlbnQgbWVkaWEgY29udHJvbGxlciB0byB0
aGUgZ2l2ZW4gdmFsdWUuCi0gICAgaW1wbCgpLnNldENvbnRyb2xsZXIodG9NZWRpYUNvbnRyb2xs
ZXIodmFsdWUpKTsKKyAgICBpbXBsKCkuc2V0Q29udHJvbGxlcihKU01lZGlhQ29udHJvbGxlcjo6
dG9JbXBsKHZhbHVlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCA3NGE1
ODY3Li43MWYzZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCkBAIC02Myw3ICs2Myw3IEBA
IHZvaWQgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmluZGV4U2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaW5kZXgsIEpTVmFsCiBKU1ZhbHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9u
OjphZGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEhUTUxPcHRpb25zQ29sbGVjdGlvbiYgaW1w
ID0gaW1wbCgpOwotICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25F
bGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9u
ID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikK
ICAgICAgICAgaW1wLmFkZChvcHRpb24sIGVjKTsKQEAgLTgxLDcgKzgxLDcgQEAgSlNWYWx1ZSBK
U0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6cmVtb3ZlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAv
LyBUaGUgYXJndW1lbnQgY2FuIGJlIGFuIEhUTUxPcHRpb25FbGVtZW50IG9yIGFuIGluZGV4Lgog
ICAgIEpTVmFsdWUgYXJndW1lbnQgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBpZiAoSFRNTE9w
dGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoYXJndW1lbnQpKQorICAg
IGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9J
bXBsKGFyZ3VtZW50KSkKICAgICAgICAgaW1wbCgpLnJlbW92ZShvcHRpb24pOwogICAgIGVsc2UK
ICAgICAgICAgaW1wbCgpLnJlbW92ZShhcmd1bWVudC50b0ludDMyKGV4ZWMpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3Rv
bS5jcHAKaW5kZXggNDNmNjk0Yi4uZGRkMDkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAKQEAgLTQzLDcg
KzQzLDcgQEAgSlNWYWx1ZSBKU0hUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIC8vIFRoZSBIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKCkgZnVuY3Rpb24gY2FuIHRh
a2UgZWl0aGVyIGFuIG9wdGlvbiBvYmplY3Qgb3IgdGhlIGluZGV4IG9mIGFuIG9wdGlvbi4KLSAg
ICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50
KGV4ZWMtPmFyZ3VtZW50KDApKSkKKyAgICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRp
b24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKQogICAg
ICAgICAgICAgc2VsZWN0LnJlbW92ZShvcHRpb24pOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBzZWxlY3QucmVtb3ZlQnlJbmRleChleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpKTsK
QEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBzZWxlY3RJbmRleFNldHRlcihIVE1MU2VsZWN0RWxlbWVu
dCogc2VsZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQKICAgICAgICAgc2VsZWN0
LT5yZW1vdmVCeUluZGV4KGluZGV4KTsKICAgICBlbHNlIHsKICAgICAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRp
b25FbGVtZW50KHZhbHVlKTsKKyAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpT
SFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbCh2YWx1ZSk7CiAgICAgICAgIGlmICghb3B0aW9uKQog
ICAgICAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKICAgICAgICAgZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVu
ZEhvc3RDdXN0b20uY3BwCmluZGV4IGY0YjU1NWYuLmY1NzQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1
c3RvbS5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0OjpzaG93Q29udGV4dE1lbnUoRXhlY1N0YXRlKiBleGVjKQogI2lmIEVOQUJMRShDT05URVhU
X01FTlVTKQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICBFdmVudCogZXZlbnQgPSB0b0V2ZW50KGV4ZWMtPmFyZ3Vt
ZW50KDApKTsKKyAgICBFdmVudCogZXZlbnQgPSBKU0V2ZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1l
bnQoMCkpOwogCiAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGV4ZWMtPmFyZ3VtZW50KDEp
KTsKICAgICBDb250ZXh0TWVudSBtZW51OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCmluZGV4IGJhOWUzY2MuLjliYjNmZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBoYW5kbGVJbml0TWVz
c2FnZUV2ZW50KEpTTWVzc2FnZUV2ZW50KiBqc0V2ZW50LCBKU0M6OkV4ZWNTdGEKICAgICBib29s
IGNhbmNlbGFibGVBcmcgPSBleGVjLT5hcmd1bWVudCgyKS50b0Jvb2xlYW4oZXhlYyk7CiAgICAg
Y29uc3QgU3RyaW5nIG9yaWdpbkFyZyA9IGV4ZWMtPmFyZ3VtZW50KDQpLnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKICAgICBjb25zdCBTdHJpbmcgbGFzdEV2ZW50SWRBcmcgPSBleGVjLT5h
cmd1bWVudCg1KS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgRE9NV2luZG93KiBz
b3VyY2VBcmcgPSB0b0RPTVdpbmRvdyhleGVjLT5hcmd1bWVudCg2KSk7CisgICAgRE9NV2luZG93
KiBzb3VyY2VBcmcgPSBKU0RPTVdpbmRvdzo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDYpKTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRBcnJheT4gbWVzc2FnZVBvcnRzOwogICAgIE93
blB0cjxBcnJheUJ1ZmZlckFycmF5PiBhcnJheUJ1ZmZlcnM7CiAgICAgaWYgKCFleGVjLT5hcmd1
bWVudCg3KS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCmluZGV4IDc1YWJlMTguLjk0NmZlMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0
b20uY3BwCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgZmlsbE1lc3NhZ2VQb3J0QXJyYXkoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgTWVzc2FnZVBvcnRBCiAgICAgICAg
IH0KIAogICAgICAgICAvLyBWYWxpZGF0aW9uIG9mIE9iamVjdHMgaW1wbGVtZW50aW5nIGFuIGlu
dGVyZmFjZSwgcGVyIFdlYklETCBzcGVjIDQuMS4xNS4KLSAgICAgICAgUmVmUHRyPE1lc3NhZ2VQ
b3J0PiBwb3J0ID0gdG9NZXNzYWdlUG9ydCh2YWx1ZSk7CisgICAgICAgIFJlZlB0cjxNZXNzYWdl
UG9ydD4gcG9ydCA9IEpTTWVzc2FnZVBvcnQ6OnRvSW1wbCh2YWx1ZSk7CiAgICAgICAgIGlmIChw
b3J0KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIHBvcnRzLgogICAgICAg
ICAgICAgaWYgKHBvcnRBcnJheS5jb250YWlucyhwb3J0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggZDM2MjRlMS4uZGQ3YjIzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xMzUsNyArMTM1
LDcgQEAgYm9vbCBKU05vZGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHYKIEpTVmFsdWUgSlNOb2RlOjppbnNlcnRCZWZv
cmUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJv
b2wgb2sgPSBpbXBsKCkuaW5zZXJ0QmVmb3JlKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRv
Tm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLmluc2Vy
dEJlZm9yZShKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSksIEpTTm9kZTo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNDUs
NyArMTQ1LDcgQEAgSlNWYWx1ZSBKU05vZGU6Omluc2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMp
CiBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZCh0
b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7
CisgICAgYm9vbCBvayA9IGltcGwoKS5yZXBsYWNlQ2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMCkpLCBKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJu
IGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpy
ZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxk
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29s
IG9rID0gaW1wbCgpLnJlbW92ZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsK
KyAgICBib29sIG9rID0gaW1wbCgpLnJlbW92ZUNoaWxkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFy
Z3VtZW50KDApKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYg
KG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNjUsNyArMTY1LDcg
QEAgSlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUg
SlNOb2RlOjphcHBlbmRDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwoKS5hcHBlbmRDaGlsZCh0b05vZGUoZXhlYy0+
YXJndW1lbnQoMCkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5hcHBlbmRDaGlsZChKU05v
ZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5j
cHAKaW5kZXggMjhjMTZjMS4uNGUxNDdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCkBAIC0zNSw3ICszNSw3IEBAIHZvaWQgSlNO
b2RlRmlsdGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmaW1wbCgpKTsKIH0KIAotUGFzc1JlZlB0
cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKK1Bhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVyOjp0b0ltcGwoSlNDOjpWTSYg
dm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNOb2Rl
RmlsdGVyOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gJkpTQzo6anNDYXN0PEpTTm9kZUZpbHRl
cio+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAppbmRleCBmNDA1YTAzLi42ODgwYTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9D
dXN0b20uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZW5j
cnlwdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAg
IH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tl
eTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0xOTcsNyArMTk3LDcgQEAg
SlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtl
eSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8
Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOwogCkBAIC0yNDgsNyArMjQ4LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6c2lnbihF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAot
ICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAg
cmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0yOTksNyArMjk5LDcgQEAgSlNWYWx1
ZSBKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9D
cnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9L
ZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkp
OwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAK
QEAgLTYwMCw3ICs2MDAsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpleHBvcnRLZXkoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1w
bChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtNjMwLDExICs2MzAsMTEgQEAgSlNWYWx1
ZSBKU1N1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRv
Q3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRv
S2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
Ci0gICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSB0b0NyeXB0b0tleShleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkg
PSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKICAgICBp
ZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC03MTMs
NyArNzEzLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dW53cmFwS2V5KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRy
PENyeXB0b0tleT4gdW53cmFwcGluZ0tleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5ID0gSlNDcnlw
dG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CiAgICAgaWYgKCF1bndy
YXBwaW5nS2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcAppbmRleCBjNWYyMTYxLi5mZTUxZmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJu
IGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0g
PSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
ZXhlYyk7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7CkBAIC0zNDEs
NyArMzQxLDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBh
cmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBsKCk7Ci0gICAgV2ViR0xQcm9n
cmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkp
OworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFtOjp0b0ltcGwoZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3JhbSAmJiAhZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRo
cm93VHlwZUVycm9yKGV4ZWMpOwogICAgIHVuc2lnbmVkIHBuYW1lID0gZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKQEAgLTM2OSw3ICszNjksNyBAQCBKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVj
KQogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKICAgICBpZiAo
IWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApLmluaGVyaXRzKEpTV2ViR0xTaGFkZXI6OmluZm8oKSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICBXZWJHTFNoYWRlciogc2hh
ZGVyID0gdG9XZWJHTFNoYWRlcihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2Vi
R0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xTaGFkZXI6OnRvSW1wbChleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC00MDUsMTAgKzQwNSwxMCBAQCBKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4
dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0g
SlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAg
aWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9y
TnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7Ci0gICAgV2ViR0xV
bmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9u
ID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDEpKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
CiAgICAgV2ViR0xHZXRJbmZvIGluZm8gPSBjb250ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9j
YXRpb24sIGVjKTsKQEAgLTQ3OCw3ICs0NzgsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFG
dW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZQog
ICAgIGxvbmcgaW5kZXggPSAtMTsKICAgICAKICAgICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3JtKGYp
KSB7Ci0gICAgICAgIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CisgICAgICAgIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICAgICAgaWYgKCFs
b2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwo
KSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICB9IGVsc2UK
QEAgLTU2NCw3ICs1NjQsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0
YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZQogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dF
eGNlcHRpb24oZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCi0g
ICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlv
bihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24q
IGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYyk7CiAgIApAQCAtNjI0LDcgKzYyNCw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0
YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gZXhl
Yy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdM
VW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFVu
aWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCBjOWVkY2ZhLi5mOWFlMTY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcApAQCAtMTQ4LDExICsxNDgsMTEgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1
ZXN0OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodmFsLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCiAgICAgICAgIGltcGwoKS5zZW5kKGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMo
SlNEb2N1bWVudDo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9Eb2N1bWVudCh2YWwp
LCBlYyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpTRG9jdW1lbnQ6OnRvSW1wbCh2YWwpLCBlYyk7
CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQmxvYjo6aW5mbygpKSkKLSAgICAgICAgaW1w
bCgpLnNlbmQodG9CbG9iKHZhbCksIGVjKTsKKyAgICAgICAgaW1wbCgpLnNlbmQoSlNCbG9iOjp0
b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0RPTUZvcm1EYXRh
OjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0b0RPTUZvcm1EYXRhKHZhbCksIGVjKTsK
KyAgICAgICAgaW1wbCgpLnNlbmQoSlNET01Gb3JtRGF0YTo6dG9JbXBsKHZhbCksIGVjKTsKICAg
ICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNBcnJheUJ1ZmZlcjo6aW5mbygpKSkKICAgICAgICAg
aW1wbCgpLnNlbmQodG9BcnJheUJ1ZmZlcih2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmlu
aGVyaXRzKEpTQXJyYXlCdWZmZXJWaWV3OjppbmZvKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCAyOGYyMmRh
Li43MGU5MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTc4NCwxMiArNzg0LDEyIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgd3JpdGUob2JqLT5pbnRlcm5hbFZhbHVlKCkuYXNOdW1iZXIoKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
RmlsZSogZmlsZSA9IHRvRmlsZShvYmopKSB7CisgICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9
IEpTRmlsZTo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShGaWxlVGFnKTsK
ICAgICAgICAgICAgICAgICB3cml0ZShmaWxlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChGaWxlTGlzdCogbGlzdCA9IHRvRmls
ZUxpc3Qob2JqKSkgeworICAgICAgICAgICAgaWYgKEZpbGVMaXN0KiBsaXN0ID0gSlNGaWxlTGlz
dDo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShGaWxlTGlzdFRhZyk7CiAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAg
ICAgICAgICAgd3JpdGUobGVuZ3RoKTsKQEAgLTc5Nyw3ICs3OTcsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICB3cml0ZShsaXN0LT5pdGVtKGkpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChCbG9iKiBibG9iID0g
dG9CbG9iKG9iaikpIHsKKyAgICAgICAgICAgIGlmIChCbG9iKiBibG9iID0gSlNCbG9iOjp0b0lt
cGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEJsb2JUYWcpOwogICAgICAgICAgICAg
ICAgIG1fYmxvYlVSTHMuYXBwZW5kKGJsb2ItPnVybCgpKTsKICAgICAgICAgICAgICAgICB3cml0
ZShibG9iLT51cmwoKSk7CkBAIC04MDUsNyArODA1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICB3cml0ZShibG9iLT5zaXplKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKEltYWdlRGF0YSogZGF0YSA9IHRvSW1hZ2VE
YXRhKG9iaikpIHsKKyAgICAgICAgICAgIGlmIChJbWFnZURhdGEqIGRhdGEgPSBKU0ltYWdlRGF0
YTo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShJbWFnZURhdGFUYWcpOwog
ICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEtPndpZHRoKCkpOwogICAgICAgICAgICAgICAgIHdy
aXRlKGRhdGEtPmhlaWdodCgpKTsKQEAgLTg2NSw3ICs4NjUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgIHJldHVybiBzdWNjZXNzOwogICAgICAgICAgICAgfQogI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQotICAgICAgICAgICAgaWYgKENyeXB0b0tleSoga2V5ID0gdG9DcnlwdG9LZXko
b2JqKSkgeworICAgICAgICAgICAgaWYgKENyeXB0b0tleSoga2V5ID0gSlNDcnlwdG9LZXk6OnRv
SW1wbChvYmopKSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoQ3J5cHRvS2V5VGFnKTsKICAgICAg
ICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gc2VyaWFsaXplZEtleTsKICAgICAgICAgICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBkdW1teUJsb2JVUkxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4ZDU0ZGExLi40OWFhOTY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtODc0LDYgKzg3NCwxNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7XG4iKTsKICAgICB9CiAKKyAgICAj
IEpTVmFsdWUgdG8gaW1wbGVtZW50YXRpb24gdHlwZQorICAgIGlmICghJGhhc1BhcmVudCB8fCAk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0
In0pIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlRmlsdGVyIikgeworICAg
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2Rl
RmlsdGVyPiB0b0ltcGwoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBl
bHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xpc3QiKSB7CisgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+
IHRvSW1wbChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRpbXBs
VHlwZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAg
ICRoZWFkZXJUcmFpbGluZ0luY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21IZWFkZXIifTsKIAogICAg
IG15ICRuYW1lZEdldHRlckZ1bmN0aW9uID0gR2V0TmFtZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJm
YWNlKTsKQEAgLTExNjYsMTUgKzExNzcsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAo
U2hvdWxkR2VuZXJhdGVUb0pTRGVjbGFyYXRpb24oJGhhc1BhcmVudCwgJGludGVyZmFjZSkpIHsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW1wbFR5cGUqKTtc
biIpOwogICAgIH0KLSAgICBpZiAoISRoYXNQYXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSB7Ci0gICAgICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiTm9kZUZpbHRlciIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiwg
SlNDOjpKU1ZhbHVlKTtcbiIpOwotICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NU3RyaW5nTGlzdCIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQYXNz
UmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9NU3RyaW5nTGlzdChKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJXRUJDT1JFX0VYUE9SVCAkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1l
fShKU0M6OkpTVmFsdWUpO1xuIik7Ci0gICAgICAgIH0KLSAgICB9CiAgICAgaWYgKCR1c2VzVG9K
U05ld2x5Q3JlYXRlZHskaW50ZXJmYWNlTmFtZX0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCAkaW50ZXJmYWNlTmFtZSopO1xuIik7CiAgICAgfQpAQCAtMzExMiw3
ICszMTE0LDcgQEAgRU5ECiAgICAgfQogCiAgICAgaWYgKCghJGhhc1BhcmVudCBvciAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIGFu
ZCAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tVG9OYXRpdmVPYmpl
Y3QifSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsVHlwZSogdG8ke2ludGVy
ZmFjZU5hbWV9KEpTQzo6SlNWYWx1ZSB2YWx1ZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiRpbXBsVHlwZSogJHtjbGFzc05hbWV9Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVl
KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmIChhdXRvKiB3cmFwcGVyID0gIiAuIEdldENhc3RpbmdIZWxw
ZXJGb3JUaGlzT2JqZWN0KCRpbnRlcmZhY2UpIC4gIih2YWx1ZSkpXG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpO1xuIik7CkBA
IC0zMjQzLDcgKzMyNDUsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIAogICAgICAg
ICBpZiAoJGFyZ1R5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKICAgICAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZl
cjtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNv
bHZlciogcmVzb2x2ZXIgPSB0b1hQYXRoTlNSZXNvbHZlcihleGVjLT5hcmd1bWVudCgkYXJnc0lu
ZGV4KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBYUGF0aE5T
UmVzb2x2ZXIqIHJlc29sdmVyID0gSlNYUGF0aE5TUmVzb2x2ZXI6OnRvSW1wbChleGVjLT5hcmd1
bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBpZiAoIXJlc29sdmVyKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgY3VzdG9tUmVzb2x2ZXIgPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3Jl
YXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKVxuIik7CkBAIC0zMjk2LDcgKzMyOTgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJz
Q2hlY2sKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZm9yICh1bnNp
Z25lZCBpID0gJGFyZ3NJbmRleCwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBj
b3VudDsgKytpKSB7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlMke2FyZ1R5
cGV9OjppbmZvKCkpKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIGksIFwiJG5h
bWVcIiwgXCIkaW50ZXJmYWNlTmFtZVwiLCAkcXVvdGVkRnVuY3Rpb25OYW1lLCBcIiRhcmdUeXBl
XCIpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAk
bmFtZS5hcHBlbmQodG8kYXJnVHlwZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7
CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBl
bmQoSlMke2FyZ1R5cGV9Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIp
OwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKQogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
VmVjdG9yPCRuYXRpdmVFbGVtZW50VHlwZT4gJG5hbWUgPSB0b05hdGl2ZUFyZ3VtZW50czwkbmF0
aXZlRWxlbWVudFR5cGU+KGV4ZWMsICRhcmdzSW5kZXgpO1xuIik7CkBAIC0zODQ5LDcgKzM4NTEs
NyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIi
KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwp
OwotICAgICAgICByZXR1cm4gInRvJHR5cGUoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CisgICAgICAg
IHJldHVybiAiSlMke3R5cGV9Ojp0b0ltcGwoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CiAgICAgfQog
CiAgICAgaWYgKCR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CkBAIC0zODgxLDcg
KzM4ODMsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgaWYgKCRhcnJheU9yU2VxdWVuY2VU
eXBlKSB7CiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNSZWZQdHJUeXBlKCRhcnJheU9y
U2VxdWVuY2VUeXBlKSkgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHthcnJh
eU9yU2VxdWVuY2VUeXBlfS5oIik7Ci0gICAgICAgICAgICByZXR1cm4gIih0b1JlZlB0ck5hdGl2
ZUFycmF5PCR7YXJyYXlPclNlcXVlbmNlVHlwZX0sIEpTJHthcnJheU9yU2VxdWVuY2VUeXBlfT4o
ZXhlYywgJHZhbHVlLCAmdG8ke2FycmF5T3JTZXF1ZW5jZVR5cGV9KSkiOworICAgICAgICAgICAg
cmV0dXJuICIodG9SZWZQdHJOYXRpdmVBcnJheTwke2FycmF5T3JTZXF1ZW5jZVR5cGV9LCBKUyR7
YXJyYXlPclNlcXVlbmNlVHlwZX0+KGV4ZWMsICR2YWx1ZSwgJkpTJHthcnJheU9yU2VxdWVuY2VU
eXBlfTo6dG9JbXBsKSkiOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAidG9OYXRpdmVBcnJh
eTwiIC4gR2V0TmF0aXZlVmVjdG9ySW5uZXJUeXBlKCRhcnJheU9yU2VxdWVuY2VUeXBlKSAuICI+
KGV4ZWMsICR2YWx1ZSkiOwogICAgIH0KQEAgLTM4OTIsNyArMzg5NCw3IEBAIHN1YiBKU1ZhbHVl
VG9OYXRpdmUKIAogICAgICMgRGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBjb252
ZXJzaW9uIHJvdXRpbmVzCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25k
aXRpb25hbCk7Ci0gICAgcmV0dXJuICJ0byR0eXBlKCR2YWx1ZSkiOworICAgIHJldHVybiAiSlMk
e3R5cGV9Ojp0b0ltcGwoJHZhbHVlKSI7CiB9CiAKIHN1YiBOYXRpdmVUb0pTVmFsdWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggNzE5MzhmYi4uYTE2MTE2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0
aW9uRXhjaXRpbmdGdW5jdAogICAgIFRlc3RBY3RpdmVET01PYmplY3QmIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
ZXhlYykpOwotICAgIE5vZGUqIG5leHRDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsK
KyAgICBOb2RlKiBuZXh0Q2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuZXhjaXRpbmdGdW5jdGlv
bihuZXh0Q2hpbGQpOwpAQCAtMjg5LDcgKzI4OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEFjdGl2ZURP
CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0QWN0aXZlRE9NT2JqZWN0PihnbG9i
YWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0QWN0aXZlRE9NT2JqZWN0KiB0b1Rlc3RBY3RpdmVE
T01PYmplY3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEFjdGl2ZURPTU9iamVjdCogSlNUZXN0
QWN0aXZlRE9NT2JqZWN0Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChh
dXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPih2YWx1
ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5oCmluZGV4IDU1YzJlZjkuLmVlNjY0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9JbXBsKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNU
ZXN0QWN0aXZlRE9NT2JqZWN0KCk7CkBAIC05Myw3ICs5NCw2IEBAIGlubGluZSB2b2lkKiB3cmFw
cGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0QWN0aXZlRE9NT2JqZWN0KikK
IH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RBY3RpdmVET01PYmplY3QqKTsKLVdFQkNPUkVfRVhQT1JU
IFRlc3RBY3RpdmVET01PYmplY3QqIHRvVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OkpTVmFsdWUp
OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwCmluZGV4IDU2OGM5ZGUuLmFlMTcxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcApAQCAtMjYzLDcgKzI2Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEN1c3Rv
bU5hCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+
KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RDdXN0b21OYW1lZEdldHRlciogdG9UZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRleCAxZWIzNWQ4Li4xMjE5YjQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQzo6SlNDZWxsKik7CkBAIC05Nyw3ICs5OCw2IEBAIGlubGluZSB2b2lkKiB3cmFw
cGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIq
KQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKik7Ci1XRUJDT1JFX0VY
UE9SVCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKEpTQzo6
SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwCmluZGV4IDhlYWZhMDcuLjRlZTdlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RF
dmVudENvbgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV2ZW50Q29uc3RydWN0
b3I+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RFdmVudENvbnN0cnVjdG9yKiB0b1Rl
c3RFdmVudENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFdmVudENvbnN0cnVj
dG9yKiBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0
cnVjdG9yKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IDViYmVlYzguLmIzZTI5ZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXZlbnRDb25z
dHJ1Y3RvciogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShK
U0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RFdmVudENvbnN0cnVjdG9yKCk7CiAKQEAgLTkzLDcg
Kzk0LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RFdmVudENvbnN0cnVjdG9yKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudENv
bnN0cnVjdG9yKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0RXZlbnRDb25zdHJ1Y3RvciogdG9UZXN0
RXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUpOwogCiBib29sIGZpbGxUZXN0RXZlbnRDb25z
dHJ1Y3RvckluaXQoVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0JiwgSlNEaWN0aW9uYXJ5Jik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IGRiMzMzZDIuLmU3NzZjYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMjk0LDcgKzI5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkRpc3BhdGNoRXZl
bnQoRXhlCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIEV2ZW50KiBldnQodG9FdmVudChleGVj
LT5hcmd1bWVudCgwKSkpOworICAgIEV2ZW50KiBldnQoSlNFdmVudDo6dG9JbXBsKGV4ZWMtPmFy
Z3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGpzQm9vbGVhbihpbXBsLmRpc3BhdGNoRXZlbnQoZXZ0LCBlYykpOwpAQCAtMzY0
LDcgKzM2NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50VGFyCiAgICAgcmV0dXJuIGNyZWF0ZU5l
d1dyYXBwZXI8SlNUZXN0RXZlbnRUYXJnZXQ+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRl
c3RFdmVudFRhcmdldCogdG9UZXN0RXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVz
dEV2ZW50VGFyZ2V0KiBKU1Rlc3RFdmVudFRhcmdldDo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRU
YXJnZXQqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuaAppbmRleCBlYjBhMmQ5Li5kNWExNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJn
ZXQuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvSW1wbChKU0M6OkpTVmFs
dWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkBAIC0xMDEsNyAr
MTAyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RFdmVudFRhcmdldCopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0RXZlbnRUYXJnZXQq
KTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RFdmVudFRhcmdldCogdG9UZXN0RXZlbnRUYXJnZXQoSlND
OjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwCmluZGV4IDRhZGU3NmUuLmMwMmM3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCkBAIC0y
MzksNyArMjM5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXhjZXB0aW8KICAgICByZXR1cm4gY3JlYXRl
TmV3V3JhcHBlcjxKU1Rlc3RFeGNlcHRpb24+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRl
c3RFeGNlcHRpb24qIHRvVGVzdEV4Y2VwdGlvbihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0RXhj
ZXB0aW9uKiBKU1Rlc3RFeGNlcHRpb246OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KHZh
bHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgK
aW5kZXggMzk4NDU3NC4uMjM2MGE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaApAQCAtMzksNiArMzks
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0
YXRpYyBUZXN0RXhjZXB0aW9uKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RFeGNlcHRpb24oKTsKQEAgLTk0LDcgKzk1
LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
IFRlc3RFeGNlcHRpb24qKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV4Y2VwdGlvbiopOwotV0VC
Q09SRV9FWFBPUlQgVGVzdEV4Y2VwdGlvbiogdG9UZXN0RXhjZXB0aW9uKEpTQzo6SlNWYWx1ZSk7
CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUuY3BwCmluZGV4IDQyN2FiYTguLmViYTlmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3RHZW5lcmF0ZQogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGU+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlKiB0b1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlKiBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwoSlND
OjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndy
YXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCmluZGV4
IGRmN2JkZGIuLjZlZDM1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
aApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9JbXBsKEpTQzo6
SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5K
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZv
aWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKik7
Ci1XRUJDT1JFX0VYUE9SVCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9UZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAKaW5kZXggYjE0M2NjNC4uOWExYmYxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAKQEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxl
bWVudHNOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuYwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7Ci0gICAgTm9kZSogbmF0aXZlVmFsdWUodG9Ob2RlKHZhbHVlKSk7CisgICAgTm9k
ZSogbmF0aXZlVmFsdWUoSlNOb2RlOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRJbXBs
ZW1lbnRzTm9kZShuYXRpdmVWYWx1ZSk7CkBAIC03OTUsNyArNzk1LDcgQEAgdm9pZCBzZXRKU1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJmYWNlJiBp
bXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIE5vZGUqIG5hdGl2ZVZhbHVlKHRvTm9kZSh2
YWx1ZSkpOworICAgIE5vZGUqIG5hdGl2ZVZhbHVlKEpTTm9kZTo6dG9JbXBsKHZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoJmltcGwsIG5hdGl2ZVZh
bHVlKTsKQEAgLTg0MSw3ICs4NDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDIoRQogICAgIGNv
bnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlzRW1wdHkoKSA/IFN0cmluZygp
IDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgV1RGOjpnZXRQdHIoaW1wbC5pbXBsZW1lbnRzTWV0aG9kMihzY3JpcHRDb250ZXh0LCBzdHJB
cmcsIG9iakFyZywgZWMpKSk7CkBAIC05MDcsNyArOTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDIKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5
KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpT
VGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRh
bE1ldGhvZDIoJmltcGwsIHNjcmlwdENvbnRleHQsIHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAg
LTk3Myw3ICs5NzMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbnRlcmZhYwogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdEludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAot
VGVzdEludGVyZmFjZSogdG9UZXN0SW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RJ
bnRlcmZhY2UqIEpTVGVzdEludGVyZmFjZTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4o
dmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
aAppbmRleCA3ZGQ4ZDAzLi4xYTQ3NDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC00MCw2ICs0
MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIFRlc3RJbnRlcmZhY2UqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJ
bmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwpAQCAtMTIwLDcgKzEyMSw2IEBAIGlu
bGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0SW50
ZXJmYWNlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RJbnRlcmZhY2UqKTsKLVdFQkNPUkVfRVhQ
T1JUIFRlc3RJbnRlcmZhY2UqIHRvVGVzdEludGVyZmFjZShKU0M6OkpTVmFsdWUpOwogCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAppbmRleCAzZTkzMTFlLi5lYjE2YjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0TWVkaWFRdWUKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciogdG9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihKU0M6OkpTVmFsdWUg
dmFsdWUpCitUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3Jh
cHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KHZhbHVl
KSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCA1NTczNWViLi43Yzg2NTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcigpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4
dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopCiB9
CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopOwotV0VCQ09SRV9F
WFBPUlQgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzU0NmRjYy4uNzdmOTdjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdE5hbWVkQ29uCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE5hbWVkQ29uc3Ry
dWN0b3IqIHRvVGVzdE5hbWVkQ29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE5h
bWVkQ29uc3RydWN0b3IqIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OnRvSW1wbChKU0M6OkpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE5hbWVkQ29uc3RydWN0b3IqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1w
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggZWNlOTg4Ny4uOTYxN2M4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRl
c3ROYW1lZENvbnN0cnVjdG9yKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE5hbWVkQ29uc3RydWN0b3IoKTsK
IApAQCAtOTIsNyArOTMsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKQogfQogCiBXRUJDT1JFX0VYUE9S
VCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
VGVzdE5hbWVkQ29uc3RydWN0b3IqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3ROYW1lZENvbnN0cnVj
dG9yKiB0b1Rlc3ROYW1lZENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCmluZGV4IGUx
NzNhYWMuLjhiNWE1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKQEAg
LTUzNCw3ICs1MzQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROb25kZXRlcgogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdE5vbmRldGVybWluaXN0aWM+KGdsb2JhbE9iamVjdCwgaW1wbCk7
CiB9CiAKLVRlc3ROb25kZXRlcm1pbmlzdGljKiB0b1Rlc3ROb25kZXRlcm1pbmlzdGljKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKK1Rlc3ROb25kZXRlcm1pbmlzdGljKiBKU1Rlc3ROb25kZXRlcm1pbmlz
dGljOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4odmFsdWUpKQogICAgICAg
ICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5o
CmluZGV4IGY1MmViYmQuLmE2NDIxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
aApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9JbXBsKEpTQzo6SlNW
YWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rl
c3ROb25kZXRlcm1pbmlzdGljKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdy
YXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3ROb25kZXRlcm1pbmlzdGlj
KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3ROb25kZXRlcm1pbmlzdGljKik7Ci1XRUJDT1JFX0VY
UE9SVCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9UZXN0Tm9uZGV0ZXJtaW5pc3RpYyhKU0M6OkpT
VmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggZTQzNGRl
Yy4uZjhmNDg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTIwNzgsNyArMjA3OCw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoo
dmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybjsKICAgICBpbXBsLnNldFRlc3RPYmpBdHRyKG5hdGl2ZVZhbHVlKTsKQEAgLTIwOTgsNyAr
MjA5OCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBu
YXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShK
U1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFhNTE9iakF0dHIobmF0aXZl
VmFsdWUpOwpAQCAtMjQ1NCw3ICsyNDU0LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KgogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBs
KCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVz
dE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
LSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2Jq
KiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCBuYXRpdmVWYWx1ZSk7CkBAIC0yNDk3
LDcgKzI0OTcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYgogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFs
dWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1MjAsNyAr
MjUyMCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBu
YXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShK
U1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjU0Myw3ICsyNTQz
LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2
ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVz
dE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNTY2LDcgKzI1NjYsNyBA
QCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4ZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFs
dWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2Jq
Ojp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29u
dGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1ODksNyArMjU4OSw3IEBAIHZv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0
b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRv
SW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2tBdHRyaWJ1dGUobmF0aXZlVmFsdWUpOwpAQCAtMjc0MCw3ICsyNzQwLDcgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVj
dCwgRW5jb2RlZEpTVmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4q
IG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFsdWUpKTsKKyAgICBTVkdQcm9wZXJ0eVRlYXJPZmY8
U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NWR1BvaW50Ojp0b0ltcGwodmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAg
aW1wbC5zZXRNdXRhYmxlUG9pbnQobmF0aXZlVmFsdWUpOwpAQCAtMjc2MCw3ICsyNzYwLDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFNWR1Byb3BlcnR5VGVhck9mZjxT
VkdQb2ludD4qIG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFsdWUpKTsKKyAgICBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NWR1BvaW50Ojp0b0ltcGwodmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm47CiAgICAgaW1wbC5zZXRJbW11dGFibGVQb2ludChuYXRpdmVWYWx1ZSk7CkBAIC0yOTM5LDcg
KzI5MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNvbnN0IFN0cmluZyYgc3Ry
QXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1l
bnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQo
MikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1l
bnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwudm9pZE1l
dGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKQEAgLTI5NzQsNyArMjk3NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25CeXRlTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhl
Yy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOwor
ICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBq
c051bWJlcihpbXBsLmJ5dGVNZXRob2RXaXRoQXJncyhieXRlQXJnLCBzdHJBcmcsIG9iakFyZykp
OwpAQCAtMzAwOSw3ICszMDA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3MoRXhlY1MKICAgICBjb25z
dCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6
IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4
ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwub2N0ZXRNZXRob2RXaXRoQXJncyhvY3Rl
dEFyZywgc3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwNDQsNyArMzA0NCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0
aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSku
aXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9i
aiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9i
akFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLmxv
bmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykpOwpAQCAtMzA3OSw3ICsz
MDc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAgICBjb25zdCBTdHJpbmcmIHN0ckFy
ZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50
KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDIp
KSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50
KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGlt
cGwub2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpKSk7CkBAIC0zMDk2
LDcgKzMwOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEV4ZQogICAgIFRlc3RPYmomIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8U2NyaXB0UHJvZmlsZT4+IHNlcXVl
bmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNjcmlwdFByb2ZpbGUsIEpTU2NyaXB0UHJvZmls
ZT4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1NjcmlwdFByb2ZpbGUpKSk7CisgICAgVmVj
dG9yPFJlZlB0cjxTY3JpcHRQcm9maWxlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJy
YXk8U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihleGVjLCBleGVjLT5hcmd1bWVudCgw
KSwgJkpTU2NyaXB0UHJvZmlsZTo6dG9JbXBsKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VBcmcoc2VxdWVuY2VBcmcpOwpAQCAt
MzE1Myw3ICszMTUzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3MKICAgICBjb25zdCBTdHJp
bmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMt
PmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFy
Z3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMt
PmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1Zh
bHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6
Z2V0UHRyKGltcGwubWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhzdHJBcmcsIG9i
akFyZywgZWMpKSk7CkBAIC0zNjY5LDcgKzM2NjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qx
KAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3RPYmoqIG9iakFy
Zyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNU
ZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlz
RW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpKTsKQEAgLTM2ODksNyArMzY4OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIo
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJn
KHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rl
c3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAKQEAgLTM4MDEsNyArMzgwMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDgo
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJn
KHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rl
c3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kKG9iakFyZyk7CkBAIC00MTIxLDcg
KzQxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3Vt
ZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5h
cmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5j
b252ZXJ0MSh2YWx1ZSk7CkBAIC00MTM4LDcgKzQxMzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBl
eGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhl
YywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2
YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVl
KEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0Mih2YWx1ZSk7CkBAIC00MTU1LDcgKzQx
NTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29udmVydDQoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50
KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1
bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252
ZXJ0NCh2YWx1ZSk7CkBAIC00MTcyLDcgKzQxNzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUoRXhlY1N0YXRlKiBleGVj
KQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1
ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpT
VGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0NSh2YWx1ZSk7CkBAIC00MjU0LDcgKzQyNTQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uU3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuYwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwog
ICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+
YXJndW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQogICAgICAgICByZXR1cm4g
dGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgMCwgIm9iakFyZyIsICJUZXN0T2JqIiwgInN0
cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmNlIiwgIlRlc3RPYmoiKTsKLSAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpT
VGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8dW5zaWduZWQ+IGEodG9OYXRpdmVBcnJheTx1bnNpZ25l
ZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKQEAgLTQyNzksNyArNDI3OSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RG
dW5jdGlvbldpdGhBcnJheShFCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKCFl
eGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgw
KS5pbmhlcml0cyhKU1Rlc3RPYmo6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd0FyZ3Vt
ZW50VHlwZUVycm9yKCpleGVjLCAwLCAib2JqQXJnIiwgIlRlc3RPYmoiLCAic3RyaWN0RnVuY3Rp
b25XaXRoQXJyYXkiLCAiVGVzdE9iaiIpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIFZlY3RvcjxpbnQ+IGFycmF5KHRvTmF0aXZlQXJyYXk8aW50PihleGVjLCBleGVjLT5hcmd1
bWVudCgxKSkpOwpAQCAtNDM0MSwxNCArNDM0MSwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKEV4ZWNT
dAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIE5vZGUqIGhlYWQodG9O
b2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgTm9kZSogaGVhZChKU05vZGU6OnRvSW1wbChl
eGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
VmVjdG9yPE5vZGUqPiB0YWlsOwogICAgIGZvciAodW5zaWduZWQgaSA9IDEsIGNvdW50ID0gZXhl
Yy0+YXJndW1lbnRDb3VudCgpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBpZiAoIWV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KGkpLmluaGVyaXRzKEpTTm9kZTo6aW5mbygpKSkKICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCBpLCAidGFpbCIsICJUZXN0
T2JqIiwgInZhcmlhZGljTm9kZU1ldGhvZCIsICJOb2RlIik7Ci0gICAgICAgIHRhaWwuYXBwZW5k
KHRvTm9kZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpOworICAgICAgICB0YWlsLmFwcGVu
ZChKU05vZGU6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpOwogICAgIH0KICAg
ICBpbXBsLnZhcmlhZGljTm9kZU1ldGhvZChoZWFkLCB0YWlsKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtNDQzNCw3ICs0NDM0LDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0T2JqKiBpbXAKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RPYmo+KGds
b2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RPYmoqIHRvVGVzdE9iaihKU0M6OkpTVmFsdWUg
dmFsdWUpCitUZXN0T2JqKiBKU1Rlc3RPYmo6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHZhbHVl
KSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggM2MwYmZjNS4u
MzJlZWFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0T2JqKiB0b0ltcGwoSlNDOjpK
U1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RP
YmooKTsKQEAgLTEwNiw3ICsxMDcsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE9iaiopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T2Jq
Kik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0T2JqKiB0b1Rlc3RPYmooSlNDOjpKU1ZhbHVlKTsKIAog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5jcHAKaW5kZXggNjMwOGQ5ZS4uMjM0NjUyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0
cnVjdG9yOjpjb25zdHJ1Y3RKCiAgICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0
cnVjdG9yKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgQmxvYiogYmxvYih0b0Jsb2IoZXhlYy0+YXJn
dW1lbnQoMCkpKTsKKyAgICBCbG9iKiBibG9iKEpTQmxvYjo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50
KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBSZWZQdHI8VGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+IG9iamVjdCA9IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
OjpjcmVhdGUoYmxvYik7CkBAIC0yODMsNyArMjgzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T3Zlcmxv
YWQKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cyogdG9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9J
bXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyo+KHZhbHVlKSkKICAgICAgICAg
cmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuaAppbmRleCA5Yzc2YmFlLi40ODI1NjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlND
OjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycygpOwog
CkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVy
V29ybGQmIHdvcmxkLCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopCiB9CiAKIFdFQkNPUkVf
RVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoSlNDOjpK
U1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDg2N2QwYzAu
LjY1MzcwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0zNjIsNyArMzYyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0U2Vy
aWFsaXoKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2U+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZShKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
KiBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbChKU0M6OkpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJu
ICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggYTQ4YmM4ZS4uZWEwMGRlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtNDAs
NiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b0ltcGwoSlND
OjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAg
fkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSgpOwogCkBAIC05Nyw3ICs5OCw2
IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50CiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmNwcAppbmRleCBlMmE5M2FhLi4wZjZkMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAg
LTU3NCw3ICs1NzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcgogICAgIFRlc3RUeXBlZGVm
cyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTZXJpYWxpemVkU2Ny
aXB0VmFsdWUsIEpTU2VyaWFsaXplZFNjcmlwdFZhbHVlPihleGVjLCBleGVjLT5hcmd1bWVudCgw
KSwgJnRvU2VyaWFsaXplZFNjcmlwdFZhbHVlKSkpOworICAgIFZlY3RvcjxSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2VyaWFs
aXplZFNjcmlwdFZhbHVlLCBKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oZXhlYywgZXhlYy0+YXJn
dW1lbnQoMCksICZKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9JbXBsKSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBs
Lm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhzZXF1ZW5jZUFyZykpOwpAQCAtNjk3LDcgKzY5Nyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVk
VGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGV4ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRyPFRlc3RFdmVudFRhcmdldD4+IHNlcXVlbmNlQXJn
KCh0b1JlZlB0ck5hdGl2ZUFycmF5PFRlc3RFdmVudFRhcmdldCwgSlNUZXN0RXZlbnRUYXJnZXQ+
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9UZXN0RXZlbnRUYXJnZXQpKSk7CisgICAgVmVj
dG9yPFJlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVB
cnJheTxUZXN0RXZlbnRUYXJnZXQsIEpTVGVzdEV2ZW50VGFyZ2V0PihleGVjLCBleGVjLT5hcmd1
bWVudCgwKSwgJkpTVGVzdEV2ZW50VGFyZ2V0Ojp0b0ltcGwpKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihpbXBsLmNhbGxX
aXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKHNlcXVlbmNlQXJnKSk7CkBAIC03NjksNyAr
NzY5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0VHlwZWRlZnMKICAgICByZXR1cm4gY3JlYXRlTmV3V3Jh
cHBlcjxKU1Rlc3RUeXBlZGVmcz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdFR5cGVk
ZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0VHlwZWRlZnMqIEpT
VGVzdFR5cGVkZWZzOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHZhbHVlKSkKICAgICAg
ICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCmluZGV4IDdlNWVjOGQu
Ljk1YWQyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RUeXBlZGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RUeXBlZGVm
cyogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwq
KTsKICAgICB+SlNUZXN0VHlwZWRlZnMoKTsKQEAgLTkzLDcgKzk0LDYgQEAgaW5saW5lIHZvaWQq
IHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RUeXBlZGVmcyopCiB9
CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBUZXN0VHlwZWRlZnMqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RUeXBl
ZGVmcyogdG9UZXN0VHlwZWRlZnMoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCBiYTQ2ZDhjLi4wMTM0Zjk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5j
cHAKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGF0dHJpYnV0ZSogaQogICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTYXR0cmlidXRlPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQog
Ci1hdHRyaWJ1dGUqIHRvYXR0cmlidXRlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK2F0dHJpYnV0ZSog
SlNhdHRyaWJ1dGU6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8q
IHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTYXR0cmlidXRlKj4odmFsdWUpKQogICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKaW5kZXggMjk3YWQyNi4uNWM4MWMwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0
cmlidXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
YXR0cmlidXRlLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCop
OwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgYXR0cmlidXRlKiB0b0ltcGwoSlNDOjpKU1Zh
bHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTYXR0
cmlidXRlKCk7CiAKQEAgLTkyLDcgKzkzLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0
KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIGF0dHJpYnV0ZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBh
dHRyaWJ1dGUqKTsKLVdFQkNPUkVfRVhQT1JUIGF0dHJpYnV0ZSogdG9hdHRyaWJ1dGUoSlNDOjpK
U1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggZWQ0
YTQ0Yi4uY2NiZjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgcmVhZG9ubHkqIGltCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNyZWFkb25seT4o
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotcmVhZG9ubHkqIHRvcmVhZG9ubHkoSlNDOjpKU1Zh
bHVlIHZhbHVlKQorcmVhZG9ubHkqIEpTcmVhZG9ubHk6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTcmVhZG9ubHkq
Pih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5kZXgg
YjZlZmE0YS4uNGVhNjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHJlYWRvbmx5KiB0
b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CiAgICAgfkpTcmVhZG9ubHkoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCog
d3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgcmVhZG9ubHkqKQogfQogCiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgcmVhZG9ubHkqKTsKLVdFQkNPUkVfRVhQT1JUIHJlYWRvbmx5KiB0b3JlYWRv
bmx5KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKaW5kZXggMWUzN2VlYy4uZjRjNTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC02ODks
NiArNjg5LDQwIEBAIHN0cnVjdCBFbGVtZW50VHlwZUNhc3RUcmFpdHM8RXhwZWN0ZWRUeXBlLCBF
eHBlY3RlZFR5cGU+IHsKICAgICBzdGF0aWMgYm9vbCBpcyhFeHBlY3RlZFR5cGUmKSB7IHJldHVy
biB0cnVlOyB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJj
ZSwgYm9vbCBpc19wb2ludGVyPgorc3RydWN0IERvd25jYXN0SGVscGVyOworCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4KK3N0cnVjdCBEb3duY2FzdEhlbHBlcjxU
YXJnZXQsIFNvdXJjZSwgZmFsc2U+IHsKKyAgICBzdGF0aWMgVGFyZ2V0JiBkb3duY2FzdChTb3Vy
Y2UmIHNvdXJjZSkKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9v
ZjxUYXJnZXQsIFNvdXJjZT46OnZhbHVlLCAiVW5uZWNlc3NhcnkgY2FzdCIpOworICAgICAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0VsZW1lbnRPZlR5cGU8Y29uc3QgVGFy
Z2V0Pihzb3VyY2UpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRhcmdldCY+KHNvdXJj
ZSk7CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3Vy
Y2U+CitzdHJ1Y3QgRG93bmNhc3RIZWxwZXI8VGFyZ2V0LCBTb3VyY2UsIHRydWU+IHsKKyAgICBz
dGF0aWMgVGFyZ2V0KiBkb3duY2FzdCh0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPFNvdXJj
ZT46OnR5cGUqIHNvdXJjZSkKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNf
YmFzZV9vZjxUYXJnZXQsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8U291cmNlPjo6dHlw
ZT46OnZhbHVlLCAiVW5uZWNlc3NhcnkgY2FzdCIpOworICAgICAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighc291cmNlIHx8IGlzRWxlbWVudE9mVHlwZTxjb25zdCBUYXJnZXQ+
KCpzb3VyY2UpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRhcmdldCo+KHNvdXJjZSk7
CisgICAgfQorfTsKKworLy8gRG93bmNhc3RpbmcgZnVuY3Rpb25zIGZvciBFbGVtZW50IHR5cGVz
LgordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyY2U+CitpbmxpbmUgdHlw
ZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2NvbnN0PFNvdXJjZT46OnZhbHVlLCBjb25z
dCBUYXJnZXQmLCBUYXJnZXQmPjo6dHlwZSBkb3duY2FzdChTb3VyY2UmIHNvdXJjZSkKK3sKKyAg
ICByZXR1cm4gRG93bmNhc3RIZWxwZXI8dHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6Omlz
X2NvbnN0PFNvdXJjZT46OnZhbHVlLCBjb25zdCBUYXJnZXQsIFRhcmdldD46OnR5cGUsIFNvdXJj
ZSwgZmFsc2U+Ojpkb3duY2FzdChzb3VyY2UpOworfQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0
LCB0eXBlbmFtZSBTb3VyY2U+IGlubGluZSB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6
aXNfY29uc3Q8U291cmNlPjo6dmFsdWUsIGNvbnN0IFRhcmdldCosIFRhcmdldCo+Ojp0eXBlIGRv
d25jYXN0KFNvdXJjZSogc291cmNlKQoreworICAgIHJldHVybiBEb3duY2FzdEhlbHBlcjx0eXBl
bmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfY29uc3Q8U291cmNlPjo6dmFsdWUsIGNvbnN0
IFRhcmdldCwgVGFyZ2V0Pjo6dHlwZSwgU291cmNlLCB0cnVlPjo6ZG93bmNhc3Qoc291cmNlKTsK
K30KKwogaW5saW5lIGJvb2wgTm9kZTo6aGFzQXR0cmlidXRlcygpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQodGhpcyktPmhhc0F0dHJpYnV0ZXMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dl
YkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5kZXggMzg5YzJiOC4uY2E4MzllOSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKQEAgLTYzMyw2ICs2MzMsNyBAQCBzdWIgcHJpbnRUeXBlSGVscGVy
cwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNsYXNzID0gJHBhcnNlZFRhZ3N7JG5hbWV9e2lu
dGVyZmFjZU5hbWV9OworICAgICAgICAjIEZJWE1FOiBSZW5hbWUgdGhlc2UgaGVscGVycyB0byBp
czwqRWxlbWVudD4oKS4KICAgICAgICAgbXkgJGNoZWNrSGVscGVyID0gImlzJGNsYXNzIjsKIAog
ICAgICAgICBwcmludCBGIDw8RU5ECkBAIC02NjMsNiArNjY0LDEwIEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBBcmdUeXBlPgogc3RydWN0IEVsZW1lbnRUeXBlQ2FzdFRyYWl0czxjb25zdCAkY2xhc3Ms
IEFyZ1R5cGU+IHsKICAgICBzdGF0aWMgYm9vbCBpcyhBcmdUeXBlJiBub2RlKSB7IHJldHVybiAk
Y2hlY2tIZWxwZXIobm9kZSk7IH0KIH07CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgbWFjcm9z
IG9uY2UgdGhlIGNvZGUgaGFzIGJlZW4gcG9ydGVkIHRvIHVzaW5nCisvLyBkb3duY2FzdDwqRWxl
bWVudD4oKS4KKyNkZWZpbmUgdG8kY2xhc3MoeCkgV2ViQ29yZTo6ZG93bmNhc3Q8V2ViQ29yZTo6
JGNsYXNzPih4KQogRU5ECiAgICAgICAgIDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5oCmluZGV4IDQ2NjkxNjMuLjIzMmIwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmgKQEAgLTE1NSw4ICsxNTUsNiBAQCBib29sIGlzRW50ZXJLZXlLZXlk
b3duRXZlbnQoRXZlbnQqKTsKIGJvb2wgaXNMaW5rQ2xpY2soRXZlbnQqKTsKIGJvb2wgc2hvdWxk
UHJvaGliaXRMaW5rcyhFbGVtZW50Kik7CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQW5jaG9yRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEFuY2hvckVs
ZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5kZXggYWMwN2U5OC4u
OGRiNzU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBAIC03MSw4ICs3
MSw2IEBAIHByaXZhdGU6CiAgICAgU2hhcGUgbV9zaGFwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhIVE1MQXJlYUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCmluZGV4IDMwZDJhOGYuLjdlODY1OGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCkBAIC00Myw4ICs0Myw2IEBAIHByaXZhdGU6
CiAgICAgSFRNTEF1ZGlvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQXVkaW9FbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFz
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKaW5kZXgg
NDA1NGUxNy4uYjc5OWYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFz
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBA
IC00NCw4ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENv
bnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQmFzZUVs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJv
ZHlFbGVtZW50LmgKaW5kZXggMDE3ZWZjMi4uMGQ0ZDYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5oCkBAIC04MSw4ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJvZHlFbGVtZW50KQotCiB9IC8v
bmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CmluZGV4IDg4MzdkMDguLjhhYmRlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmgKQEAgLTE4MCw4ICsxODAsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRy
PEltYWdlPiBtX2NvcGllZEltYWdlOyAvLyBGSVhNRTogVGhpcyBpcyB0ZW1wb3JhcnkgZm9yIHBs
YXRmb3JtcyB0aGF0IGhhdmUgdG8gY29weSB0aGUgaW1hZ2UgYnVmZmVyIHRvIHJlbmRlciAoYW5k
IGZvciBDU1NDYW52YXNWYWx1ZSkuCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTENhbnZhc0Vs
ZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERhdGFMaXN0RWxlbWVudC5oCmluZGV4IDY3ZmIxZGIuLmNmMWQzZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6
CiAgICAgSFRNTERhdGFMaXN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRGF0YUxpc3RFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCmluZGV4IGM0MWY2ZjQuLjA3M2Nk
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtNDQsOCAr
NDQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc09wZW47CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTERldGFpbHNFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBIVE1MRGV0YWlsc0VsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGl2RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5o
CmluZGV4IDFiNWQyMGEuLmZmODFiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERpdkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50
LmgKQEAgLTQwLDggKzQwLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTERpdkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEhUTUxEaXZFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmgKaW5kZXggZDlmZDQ1Mi4uY2RkM2JlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmgKQEAgLTUyLDggKzUyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhcmFt
ZXRlcnNGb3JQbHVnaW4oVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxTdHJpbmc+
JiBwYXJhbVZhbHVlcyk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEVtYmVkRWxlbWVudCkK
LQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgK
aW5kZXggN2MxM2VhMC4uM2EwMjIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmgKQEAgLTY0LDggKzY0LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVpbnQ2
NF90IG1fZG9jdW1lbnRWZXJzaW9uOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGaWVsZFNl
dEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmgKaW5kZXggYzQ2OWRjZS4uZmMzZGI5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5oCkBAIC0yMDEsOCArMjAxLDYgQEAgcHJpdmF0ZToKICNlbmRpZgog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGb3JtRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEZvcm1FbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVFbGVtZW50LmgKaW5kZXggNTU3OWM5OC4uNmU0ZmIwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fZnJhbWVCb3JkZXJTZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZyYW1lRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEZyYW1lRWxl
bWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IDgw
ZTdmMmEuLjI3MjkzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVu
dC5oCkBAIC0xMDAsOCArMTAwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbm9yZXNpemU7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZyYW1lU2V0RWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEZyYW1lU2V0RWxlbWVudF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSHRtbEVsZW1lbnQuaAppbmRleCBiOTY2Yzg3Li4wZjgzYjlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKQEAgLTQxLDggKzQxLDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEh0bWxFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApp
bmRleCA5YWUxOTMyLi5mMGViY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJRnJhbWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5oCkBAIC00Nyw4ICs0Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
KSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MSUZyYW1lRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTElGcmFtZUVsZW1lbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCBmZDQ0MDE4Li45OWZlMjVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTQzLDggKzE0Myw2
IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MSW1hZ2VFbGVt
ZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAppbmRleCBlMzg4NWJjYy4uZDdhNjVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0OCw3ICs0NDgsNSBAQCBwcml2YXRlOgogI2VuZGlmCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElucHV0RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCmluZGV4IGFlYTUyMzcu
LmNhOGVlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC01NSw4
ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoSFRNTExhYmVsRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAppbmRleCAyNDU2OGJkLi45MTA0YWJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC00NSw4ICs0NSw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkg
Y29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExlZ2VuZEVsZW1lbnQp
Ci0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1l
bnQuaAppbmRleCA0OTcwMWY4Li41Y2FjYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmgKQEAgLTEzNyw4ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIFBlbmRpbmdTaGVldFR5
cGUgbV9wZW5kaW5nU2hlZXRUeXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxMaW5rRWxl
bWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVs
ZW1lbnQuaAppbmRleCA5YWU0NDY3Li42MTdhYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFw
RWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1f
bmFtZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWFwRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2VzCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFy
cXVlZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgK
aW5kZXggZDEwOTgyYi4uOTYzOWU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWFycXVlZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVl
RWxlbWVudC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTWFycXVlZSog
cmVuZGVyTWFycXVlZSgpIGNvbnN0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNYXJxdWVl
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTE1hcnF1
ZWVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDI1ZDFh
NzcuLjhiZTZkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtNDQs
OCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxNZXRhRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKaW5kZXggOWQ4MjE3Mi4uYTI4
Y2I0NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtODEsOCAr
ODEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZXRlclZhbHVlRWxlbWVudD4gbV92YWx1ZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWV0ZXJFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKaW5kZXggOTg5
ZDc5NS4uMWYwYWFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKQEAg
LTY1LDggKzY1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkUmVjYWxjdWxhdGVJdGVt
Q291bnQgOiAxOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPTGlzdEVsZW1lbnQpCi0KIH0g
Ly9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmgKaW5kZXggMmM0OTE5My4uZjhlN2E2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaApAQCAtMTAzLDggKzEwMyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZUZh
bGxiYWNrQ29udGVudCA6IDE7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9iamVjdEVsZW1l
bnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVu
dC5oCmluZGV4IDY4OWNlNGIuLjU3YTM3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNh
bGNTZWxlY3RPcHRpb25zKCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9wdEdyb3VwRWxl
bWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbkVsZW1lbnQuaAppbmRleCA2NDdkMDFlLi42NTRlZjExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5oCkBAIC04Nyw4ICs4Nyw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lzU2VsZWN0ZWQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9wdGlvbkVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGFyYW1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaAppbmRleCA0ZTgxZDJkLi5lZDliNGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
YXJhbUVsZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92
ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxQYXJhbUVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oCmluZGV4IGVlZGI4ODAuLmM3ZmQ5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCkBAIC02Nyw4ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAg
UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQqIG1fdmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TFByb2dyZXNzRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggYjg1MDFiNC4uNjhkOTZhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0
QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
SFRNTFNjcmlwdEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggZmE5Y2JlNDcuLjI3ZmVmZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTIxMiw4ICsyMTIsNiBAQCBw
cml2YXRlOgogICAgIG11dGFibGUgYm9vbCBtX3Nob3VsZFJlY2FsY0xpc3RJdGVtczsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MU2VsZWN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggNTU1ODc1
Yy4uNTIyZDc0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKQEAg
LTU3LDggKzU3LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxIVE1MU291cmNlRWxlbWVudD4gbV9l
cnJvckV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFNvdXJjZUVsZW1lbnQp
Ci0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxl
bWVudC5oCmluZGV4IDk5NTdiYTUuLjkxZjBiN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0
eWxlRWxlbWVudC5oCkBAIC03MCw4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xvYWRl
ZFNoZWV0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTdHlsZUVsZW1lbnQpCi0KIH0gLy9u
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
aAppbmRleCBmYmFiY2RlLi5iYzIyODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdW1tYXJ5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmgKQEAgLTQ2LDggKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU3VtbWFy
eUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmIC8vIEhUTUxTdW1tYXJ5RWxlbWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKaW5kZXggZjA2NGUyOC4u
OTA0YzMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuaApAQCAtNDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVDYXB0aW9uRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4IGU1
OTZhYjQuLjg3M2RmMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCkBA
IC0xMDEsOCArMTAxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBt
X3NoYXJlZENlbGxTdHlsZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVFbGVtZW50
KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuaAppbmRleCAzMzhiODc5Li5jNGIwZjc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaApAQCAtNTIsOCArNTIsNiBAQCBwcml2YXRlOgogICAg
IEhUTUxUYWJsZVJvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRhYmxlUm93RWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCmlu
ZGV4IGQ3ZmY5NTEuLmM4MWY3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5oCkBAIC01Niw4ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8
VGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxUZW1wbGF0ZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCBhODAxZjk5Li5iZWRkMGExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtMTI2LDggKzEyNiw2IEBAIHBy
aXZhdGU6CiAgICAgbXV0YWJsZSBib29sIG1fd2FzTW9kaWZpZWRCeVVzZXI7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTFRleHRBcmVhRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgKaW5kZXggZWJlMWQzYy4uNWRl
MWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgKQEAgLTQ2LDggKzQ2
LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmdXaXRoRGlyZWN0aW9uIG1fdGl0bGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTFRpdGxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggODMxNzE3Yi4uNTI2
ZGMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTk0LDggKzk0
LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxIVE1MVHJhY2tFbGVtZW50PiBtX2xvYWRUaW1lcjsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVHJhY2tFbGVtZW50KQotCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCBjNGQ0ZjlkLi43NmYwMTY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2
IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fZGVmYXVsdFBvc3RlclVSTDsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MVmlkZW9FbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAK
aW5kZXggZmQ3ZTkyMy4uMzc4NjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0yMDEwLDcgKzIwMTAsNyBAQCBOb2RlKiBJbnNwZWN0
b3JET01BZ2VudDo6c2NyaXB0VmFsdWVBc05vZGUoRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgdmFs
dWUpCiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiB0b05vZGUodmFsdWUuanNWYWx1ZSgpKTsK
KyAgICByZXR1cm4gSlNOb2RlOjp0b0ltcGwodmFsdWUuanNWYWx1ZSgpKTsKIH0KIAogRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUgSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVBc1NjcmlwdFZhbHVlKEpT
Qzo6RXhlY1N0YXRlKiBzdGF0ZSwgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAppbmRleCBkYzY5YzExLi5lZTk3MzM1IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCkBAIC01MCw4ICs1
MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUmFkaWNhbFZhbHVlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKE1hdGhNTE1lbmNsb3NlRWxlbWVudCkKLQogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KE1BVEhNTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaAppbmRl
eCBhY2IyZjM1Li5jNjNlMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0
R2x5cGhEZWZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVm
RWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FsdEdseXBoRGVmRWxlbWVudCkKLQogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAppbmRleCA1MDk1
YWI1Li42YmU5Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCkBA
IC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVS
VElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FsdEdseXBoRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5
cGhJdGVtRWxlbWVudC5oCmluZGV4IDgyNDljYjguLmM3YWZlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdBbHRH
bHlwaEl0ZW1FbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuaAppbmRleCAzNjY3ODE0Li40MTdkNWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaApAQCAtNzAsOCArNzAsNiBA
QCBwcml2YXRlOgogICAgIFBhdGggbV9wYXRoOwogICAgIFBhdGggbV9hbmltYXRpb25QYXRoOwog
fTsKLQotTk9ERV9UWVBFX0NBU1RTKFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50KQogICAgIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudC5oCmluZGV4IGJkY2ZmNzAuLmIxYTQ0ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCkBAIC00Nyw4ICs0Nyw2
IEBAIHByaXZhdGU6CiAgICAgU1ZHVHJhbnNmb3JtOjpTVkdUcmFuc2Zvcm1UeXBlIG1fdHlwZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggMDc5ZmE5OS4uZWMx
ODJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2
IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKFNWR0NpcmNsZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFNWR0NpcmNsZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5oCmluZGV4IDhmZGViMDIuLjkzOGNmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKQEAgLTU2LDggKzU2LDYgQEAgcHJpdmF0ZToKICAgICBF
TkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
Q2xpcFBhdGhFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JF
bGVtZW50LmgKaW5kZXggYTUzMDFlNC4uZWEyMjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vy
c29yRWxlbWVudC5oCkBAIC03Miw4ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTVkdF
bGVtZW50Kj4gbV9jbGllbnRzOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0N1cnNvckVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5oCmluZGV4IGQ2YjIwZjYuLjViOWY5MmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAg
RU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0VsbGlwc2VFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCmluZGV4IDc5OWY2
ZDUuLjYwZWE0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRM
aWdodEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRF
bGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y0FFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaAppbmRl
eCAzMWViYjRmLi5hNGU2YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVG
dW5jQUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQu
aApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0FFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZF
RnVuY0FFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAppbmRleCAzNWJjNDQ4Li5hZjQ5ZDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2
YXRlOgogICAgIFNWR0ZFRnVuY0JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFRnVuY0JFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1l
bnQuaAppbmRleCAzOTg1N2VkLi4xYWZhNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVGdW5jR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5j
R0VsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0dFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR0ZFRnVuY0dFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAppbmRleCA5ZTczMjdjLi5iMGQw
ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaApAQCAtMzMsOCArMzMs
NiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY1JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFRnVuY1JFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5oCmluZGV4IDUxNTk3ZWIuLjcyMzNmMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJp
dmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHRkVNZXJnZU5vZGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdo
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgK
aW5kZXggYjcwMWJlNS4uMzQ1NzkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFUG9pbnRMaWdodEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2lu
dExpZ2h0RWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVTcG90TGlnaHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRF
bGVtZW50LmgKaW5kZXggODAzOWFmMi4uZmY2YjQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwb3RMaWdodEVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlk
ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRVNwb3RMaWdodEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuaAppbmRleCA4ZWE3M2ZiLi4xOTM5ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmgKQEAgLTc1LDggKzc1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRmlsdGVyRWxlbWVudCkK
LQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKaW5kZXggOGU0Mjc0
ZC4uZWI1YzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKQEAgLTEwMiw4ICsx
MDIsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0dseXBoQ2FjaGVWYWxpZDsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhTVkdGb250RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZUVsZW1lbnQuaAppbmRleCA2YTIxMTZhLi5kY2QwMWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oCkBAIC02Niw4ICs2Niw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRm9u
dEVsZW1lbnQqIG1fZm9udEVsZW1lbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZh
Y2VFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
U1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgK
aW5kZXggM2YyNTQ0NS4uYzY4NWY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VOYW1lRWxlbWVudC5oCkBAIC0zOSw4ICszOSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKaW5kZXggM2IwOTE0
Yy4uYmE1YTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3Jj
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQu
aApAQCAtNDAsOCArNDAsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZVNyY0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKaW5kZXggMTg5YTc4OS4uMzUwZjFmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaApAQCAtNTAsOCArNTAs
NiBAQCBwcml2YXRlOgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IG1fY2Fj
aGVkRm9udDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZVVyaUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCmluZGV4IDc1YmI3
NGIuLmFiNGQxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5oCkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dseXBoRWxlbWVudC5oCmluZGV4IDdiN2QzOGEuLjQwMDlmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR2x5cGhFbGVtZW50LmgKQEAgLTU3LDggKzU3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlu
dmFsaWRhdGVHbHlwaENhY2hlKCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZP
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCmluZGV4IDZkOGNhYzcu
LjQ2NGZlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKQEAgLTYx
LDggKzYxLDYgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2R5OwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR0dseXBoUmVmRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdI
S2VybkVsZW1lbnQuaAppbmRleCBlNWQ4Yjc4Zi4uMWMxOWUwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdIS2VybkVsZW1lbnQuaApAQCAtNDIsOCArNDIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdIS2VybkVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKaW5kZXggMWEzNjFjNS4uMTc2NzYxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRlOgog
ICAgIFNWR0ltYWdlTG9hZGVyIG1faW1hZ2VMb2FkZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHSW1hZ2VFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAppbmRleCA2NGU3ODYzLi41M2ZlYWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAg
IEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdMaW5lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAppbmRleCA2OGFjNmI4
Li40NmQ5MmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0xpbmVhckdyYWRpZW50RWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNUGF0aEVsZW1lbnQuaAppbmRleCA5NzMyNjQ4Li4xYmU2NGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01QYXRoRWxlbWVudC5oCkBAIC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01QYXRo
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHTVBhdGhF
bGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDFiOTMwZTYu
LmI1MjJjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApAQCAtMTY0LDgg
KzE2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVk
UHJvcGVydHk8U1ZHTWFya2VyT3JpZW50VHlwZT4gbV9vcmllbnRUeXBlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR01hcmtlckVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5oCmluZGV4IGY1MGE5NDYuLjIyZWRkYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5oCkBAIC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5j
aHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
TWFza0VsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaAppbmRleCBmNTYzN2VlLi45NGE0MjY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgKQEAgLTM2LDggKzM2LDYgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTWlz
c2luZ0dseXBoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKaW5kZXggMDIx
YjZmMS4uYjY0YjRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKQEAgLTEyOSw4
ICsxMjksNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0FuaW1WYWxPYnNlcnZlZDsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdQYXRoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggMjJj
N2MyMC4uNDkyY2Q2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKQEAg
LTg2LDggKzg2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0
ZW1MYW5ndWFnZSgpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3Vh
Z2UodGhpcyk7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQYXR0ZXJuRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHln
b25FbGVtZW50LmgKaW5kZXggYTYyZGUyMC4uZDkwZGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvbHlnb25FbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdQb2x5
Z29uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhTVkdQb2x5Z29uRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAppbmRleCA0YjVl
ODQxLi5hMDkxZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCkBA
IC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHUG9seWxpbmVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1BvbHls
aW5lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAppbmRleCBlNTZmYjJmLi4x
MmJmNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oCkBAIC01Niw4ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jl
Y3RFbGVtZW50LmgKaW5kZXggNzJlYjg3NS4uM2NlZThkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jl
Y3RFbGVtZW50LmgKQEAgLTU4LDggKzU4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUmVjdEVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaAppbmRleCBlZmI0MmVkLi4yNzgyMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgKQEAgLTE3NSw4ICsxNzUsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTVkdWaWV3U3Bl
Yz4gbV92aWV3U3BlYzsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTVkdFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRF
bGVtZW50LmgKaW5kZXggNTcyZjc5ZC4uOWFjZGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCkBAIC04Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgVGltZXI8U1ZHRWxl
bWVudD4gbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTY3Jp
cHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RvcEVsZW1lbnQuaAppbmRleCBkODc5YjRlLi43ZGEzN2M2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RvcEVsZW1lbnQuaApAQCAtNDksOCArNDksNiBAQCBwcml2YXRlOgogICAgIEVORF9E
RUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTdG9w
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuaAppbmRleCA2YTkxZTM4Li4xZTczMTc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5oCkBAIC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXI8U1ZHRWxlbWVudD4gbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdTdHlsZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IFNWR1N0eWxlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCmluZGV4IGE4
YzBiNzIuLjQzMDg0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCkBAIC0zOCw4
ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR1RleHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCmluZGV4IDBhNGZmNjcuLmYyNDRiYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKQEAgLTE0Myw4ICsxNDMs
NiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdUZXh0UGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKaW5kZXggYzg0
YTYwMy4uMDc1YjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaApAQCAtNDAs
OCArNDAsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhTVkdUaXRsZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCAzZjEwZWU5Li5iNzMyZjE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTEyOCw4ICsxMjgsNiBAQCBwcml2
YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHVXNlRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWS2VybkVsZW1lbnQuaAppbmRleCBjZTg4ZGU1Li4xODBiYzc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZLZXJuRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1ZLZXJuRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKaW5kZXggMjUxZDczMC4uNGI0NGQ5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTY1LDggKzY1LDYgQEAgcHJpdmF0ZToK
ICAgICBTVkdTdHJpbmdMaXN0IG1fdmlld1RhcmdldDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdWaWV3RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCBjMGZkZWViLi40MTk5MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTQtMDktMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIEpTWFhYOjp0b0lt
cGwoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBET00vV2ViRE9N
T3BlcmF0aW9ucy5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgX25vdGlmaWNhdGlvbklERm9yVGVzdGluZzpdKToKKwogMjAxNC0wOS0xNyAgRGFu
aWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE3MzY5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJE
T01PcGVyYXRpb25zLm1tIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMu
bW0KaW5kZXggZTRmYjc2Ni4uMTA1NGRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
RE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRP
TU9wZXJhdGlvbnMubW0KQEAgLTc0LDcgKzc0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2soZXhlYyk7Ci0gICAgcmV0dXJuIGtpdCh0b0VsZW1lbnQodG9KUyhleGVjLCB2YWx1ZSkpKTsK
KyAgICByZXR1cm4ga2l0KEpTRWxlbWVudDo6dG9JbXBsKHRvSlMoZXhlYywgdmFsdWUpKSk7CiB9
CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhNmYzYjU0Li45
Y2U2MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04NjIxLDcgKzg2
MjEsNyBAQCBzdGF0aWMgdm9pZCBnbGliQ29udGV4dEl0ZXJhdGlvbkNhbGxiYWNrKENGUnVuTG9v
cE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgSlNDb250ZXh0UmVmIGNv
bnRleHQgPSBbW3NlbGYgbWFpbkZyYW1lXSBnbG9iYWxDb250ZXh0XTsKLSAgICBXZWJDb3JlOjpO
b3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZpY2F0aW9uKHRvSlModG9KUyhjb250
ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0b0ltcGwodG9KUyh0b0pTKGNvbnRleHQpLCBqc05v
dGlmaWNhdGlvbikpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJOb3RpZmljYXRpb25DbGll
bnQqPihOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKF9wcml2YXRlLT5wYWdlKSkt
Pm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhub3RpZmljYXRpb24pOwogI2Vsc2UKICAgICByZXR1
cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBjMTRiNGMyLi4zZjNjNWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTQtMDktMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIEpTWFhYOjp0b0lt
cGwoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0
T3JDcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0
aW9uSUQpOgorCiAyMDE0LTA5LTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIE9jY2FzaW9uYWwgdW5yZXByb2R1Y2libGUgY3Jhc2hlcyBpbiBNZXNz
YWdlUmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXggY2RkZGM4MS4uMDQ1YTY2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCkBAIC03MCw3ICs3MCw3
IEBAIHN0YXRpYyBET01IYW5kbGVDYWNoZSYgZG9tSGFuZGxlQ2FjaGUoKQogCiBQYXNzUmVmUHRy
PEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRP
ckNyZWF0ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdCkKIHsKLSAgICBOb2RlKiBu
b2RlID0gdG9Ob2RlKHRvSlMob2JqZWN0KSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9J
bXBsKHRvSlMob2JqZWN0KSk7CiAgICAgcmV0dXJuIGdldE9yQ3JlYXRlKG5vZGUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCmluZGV4IGY2
MzM5MWIuLjY1ZjhlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBET01IYW5kbGVDYWNoZSYgZG9t
SGFuZGxlQ2FjaGUoKQogCiBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmpl
Y3RSZWYgb2JqZWN0KQogewotICAgIFJhbmdlKiByYW5nZSA9IHRvUmFuZ2UodG9KUyhvYmplY3Qp
KTsKKyAgICBSYW5nZSogcmFuZ2UgPSBKU1JhbmdlOjp0b0ltcGwodG9KUyhvYmplY3QpKTsKICAg
ICByZXR1cm4gZ2V0T3JDcmVhdGUocmFuZ2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmlu
ZGV4IDFhNjcyN2IuLmI2NGU4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC01OTcsNyAr
NTk3LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvbnMoV2ViUGFnZSogcGFnZSkKIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlOjp3ZWJOb3Rp
ZmljYXRpb25JRChKU0NvbnRleHRSZWYganNDb250ZXh0LCBKU1ZhbHVlUmVmIGpzTm90aWZpY2F0
aW9uKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElG
SUNBVElPTlMpCi0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05v
dGlmaWNhdGlvbih0b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICBX
ZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0b0lt
cGwodG9KUyh0b0pTKGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CiAgICAgaWYgKCFub3Rp
ZmljYXRpb24pCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPm5vdGlmaWNhdGlvbklE
Rm9yVGVzdGluZyhub3RpZmljYXRpb24pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>