<?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>125325</bug_id>
          
          <creation_ts>2013-12-05 17:12:04 -0800</creation_ts>
          <short_desc>REGRESSION(r160133): broke bindings tests on all the bots (Requested by thorton on #webkit).</short_desc>
          <delta_ts>2013-12-05 17:16:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124461</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>957097</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-05 17:12:04 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/160133 broke the build:
broke bindings tests on all the bots (Requested by thorton on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957099</commentid>
    <comment_count>1</comment_count>
      <attachid>218555</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-05 17:12:32 -0800</bug_when>
    <thetext>Created attachment 218555
ROLLOUT of r160133

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957101</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-05 17:14:11 -0800</bug_when>
    <thetext>Darin mentioned yesterday in https://bugs.webkit.org/show_bug.cgi?id=124461 that the patch needed a bindings test rebaseline, but it&apos;s nonobvious to me that the changes are intentional, and the reviewer and author both did not perform said rebaseline nor are online. So, cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957102</commentid>
    <comment_count>3</comment_count>
      <attachid>218555</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-05 17:16:50 -0800</bug_when>
    <thetext>Comment on attachment 218555
ROLLOUT of r160133

Clearing flags on attachment: 218555

Committed r160204: &lt;http://trac.webkit.org/changeset/160204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957103</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-05 17:16:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218555</attachid>
            <date>2013-12-05 17:12:32 -0800</date>
            <delta_ts>2013-12-05 17:16:50 -0800</delta_ts>
            <desc>ROLLOUT of r160133</desc>
            <filename>bug-125325-20131205171232.patch</filename>
            <type>text/plain</type>
            <size>113318</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
M2VmYTkxNzNlNmY0MDU2ODllZGJkYzZkYzY0NTYwM2EyOTJkNjdkLi5jOTM2NzBjM2E0ZmY5NzUw
Y2U1OTNkMDEwOTIxY2RjMzI5YTRkMTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxMy0xMi0wNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2MDEzMy4KKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTYwMTMzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjUzMjUKKworICAgICAgICBicm9r
ZSBiaW5kaW5ncyB0ZXN0cyBvbiBhbGwgdGhlIGJvdHMgKFJlcXVlc3RlZCBieSB0aG9ydG9uIG9u
CisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlND
Ojo6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKEpTQzo6OjpjYWxsYmFja0dldHRl
cik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjphcmd1bWVudHNH
ZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXJndW1lbnRz
R2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKToKKyAgICAg
ICAgKEpTQzo6SlNGdW5jdGlvbjo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNGdW5j
dGlvbjo6bmFtZUdldHRlcik6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAg
ICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6Omdl
dFZhbHVlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6bnVtYmVyQ29uc3RydWN0b3JOYU5WYWx1ZSk6CisgICAgICAgIChKU0M6Om51bWJl
ckNvbnN0cnVjdG9yTmVnSW5maW5pdHkpOgorICAgICAgICAoSlNDOjpudW1iZXJDb25zdHJ1Y3Rv
clBvc0luZmluaXR5KToKKyAgICAgICAgKEpTQzo6bnVtYmVyQ29uc3RydWN0b3JNYXhWYWx1ZSk6
CisgICAgICAgIChKU0M6Om51bWJlckNvbnN0cnVjdG9yTWluVmFsdWUpOgorICAgICAgICAqIHJ1
bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSk6CisgICAgICAg
IChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMik6CisgICAgICAgIChKU0M6OnJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyMyk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
NCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSk6CisgICAgICAgIChK
U0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNik6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNyk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk6
CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSk6CisgICAgICAgIChKU0M6
OnJlZ0V4cENvbnN0cnVjdG9ySW5wdXQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rv
ck11bHRpbGluZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKToK
KyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4pOgorICAgICAgICAoSlND
OjpyZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29u
c3RydWN0b3JSaWdodENvbnRleHQpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0R2xvYmFsKToKKyAgICAgICAgKEpTQzo6cmVn
RXhwT2JqZWN0SWdub3JlQ2FzZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdE11bHRpbGlu
ZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdFNvdXJjZSk6CisKIDIwMTMtMTItMDUgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdGhlIEMgTG9vcCBM
TElOVCB3b3JrIHdpdGggY2FsbFRvSmF2YVNjcmlwdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNzc3MjY1MzQw
MGU4YWQ2MTA5NmFlMjM1ZTcxMjY2M2M1MmM4ZTczLi4zNGI2YWQ5MGE0MGJkZmY3NjYyZmFhYmFk
NWRlZGJjYjE2NWE5NjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMTMtMTItMDUg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjAxMzMuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0LzE2MDEzMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI1MzI1CisKKyAgICAgICAgYnJva2UgYmluZGluZ3MgdGVzdHMgb24gYWxs
IHRoZSBib3RzIChSZXF1ZXN0ZWQgYnkgdGhvcnRvbiBvbgorICAgICAgICAjd2Via2l0KS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUdldHRlclBpeGVsT3JQb3NQcmVmaXhDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUdldHRlckNhbGxiYWNrKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b2Jq
ZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01NaW1lVHlwZUFycmF5Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NTWltZVR5cGVBcnJheTo6bmFtZUdldHRlcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVBsdWdpbkFycmF5OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTVBsdWdpbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVBsdWdpbjo6bmFtZUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdNYXA6Om5hbWVHZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjaGlsZEZyYW1lR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmluZGV4R2V0dGVy
KToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVkSXRlbUdldHRlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0hUTUxBbGxDb2xsZWN0aW9uOjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxl
Y3Rpb246Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTERvY3VtZW50OjpuYW1lR2V0dGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246
Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTEZvcm1FbGVtZW50OjpuYW1lR2V0dGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRnJhbWVTZXRFbGVtZW50OjpuYW1lR2V0dGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bm9uQ2FjaGluZ1N0YXRpY0JhY2tGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpub25DYWNoaW5nU3RhdGljRm9yd2FyZEZ1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNHb0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpzY29wZVR5cGUpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uQ2FjaGluZ1N0
YXRpY1JlcGxhY2VGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpub25DYWNoaW5n
U3RhdGljUmVsb2FkRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6bm9uQ2FjaGlu
Z1N0YXRpY0Fzc2lnbkZ1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05h
bWVkTm9kZU1hcEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05hbWVkTm9kZU1hcDo6
bmFtZUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVMaXN0OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JUQ1N0
YXRzUmVzcG9uc2VDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNSVENTdGF0c1Jlc3Bv
bnNlOjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNTdG9yYWdlOjpuYW1lR2V0dGVyKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTU3R5bGVTaGVldExpc3Q6Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjayk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAo
SlNDOjpSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcik6CisgICAgICAgIChKU0M6OlJ1bnRpbWVB
cnJheTo6aW5kZXhHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6Cisg
ICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGlt
ZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2Qu
aDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOgorICAgICAgICAo
SlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKToKKyAgICAgICAgKiBicmlk
Z2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxMy0xMi0wNSAgU2Vva2p1IEt3b24gIDxzZW9ranVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgJ2Nvb2tpZXNTdHJp
bmcnIG91dHB1dCBmcm9tIFBhZ2UuZ2V0Q29va2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY1OTUzNmNmYmU2
YzMzY2M0ZDcyOWRkZmNhMWEzNWYzMWVlMTRhNzYuLmZmYTZkMDM0OTA1MDM1N2RkYjg0Y2U5ZDBm
MDM1YzExNzRlNjE1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0xMi0wNSAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE2MDEzMy4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTYwMTMzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjUzMjUKKworICAgICAgICBicm9rZSBiaW5kaW5ncyB0ZXN0cyBvbiBhbGwg
dGhlIGJvdHMgKFJlcXVlc3RlZCBieSB0aG9ydG9uIG9uCisgICAgICAgICN3ZWJraXQpLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpjYWxsTWV0aG9kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNhbGxOUEpTT2JqZWN0
KToKKyAgICAgICAgKFdlYktpdDo6Y29uc3RydWN0V2l0aENvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYktpdDo6SlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViS2l0OjpK
U05QT2JqZWN0OjptZXRob2RHZXR0ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5QUnVudGltZU9i
amVjdE1hcDo6Z2V0T3JDcmVhdGVOUE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6Ok5QUnVudGlt
ZU9iamVjdE1hcDo6ZmluYWxpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjb3VudGVyVmFsdWUpOgorCiAy
MDEzLTEyLTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQVg6IFNlZWQ6IHNhZmFyaSBleHRlbnNpb24gaW5zdGFsbGF0aW9uIGNyYXNoZXMgc2FmYXJp
IHVuZGVyIHZvaWNlIG92ZXIgYW5kIGZyZWV6ZXMgdm9pY2Ugb3ZlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCA3YWQxNjA4MDNkZTk3NTc0NzRh
OWRiMjE5MjRmOTA1NDY1MmEwYzk4Li41MTAxNjRkOWRmMTlhNjE0MTU3Y2M3YmY3MWFmNGE3OTU1
NmEwODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
aApAQCAtMjA1LDE0ICsyMDUsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXQoRXhlY1N0YXRl
Kik7CiAgCiAgICAgc3RhdGljIEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoSlNW
YWx1ZSk7Ci0gICAgc3RhdGljIEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoRW5j
b2RlZEpTVmFsdWUpOwogIAogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGwoRXhlY1N0YXRlKik7CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0KEV4ZWNTdGF0ZSopOwogICAgCiAgICAgSlNWYWx1ZSBnZXRTdGF0aWNWYWx1
ZShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBz
dGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNhbGxiYWNr
R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3Rh
dGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBKU1ZhbHVlIGNhbGxiYWNr
R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBPd25QdHI8
SlNDYWxsYmFja09iamVjdERhdGE+IG1fY2FsbGJhY2tPYmplY3REYXRhOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgK
aW5kZXggNWJlMDUzZjFlMDg2YjQzZTY4NmMzNjc0ZGFlN2M1MTYwNWEyODZlNy4uODM5OTJkM2Zi
MTc2YTc0ZGE0MGUwMDY1ZGQwOTNjNTg1ZTQ2ZTAxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTUwLDEzICs1
MCw2IEBAIGlubGluZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD4qIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6YXNDYWxsYmFja09iamVjdChKU1ZhCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJl
bnQ+Ci1pbmxpbmUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+KiBKU0NhbGxiYWNrT2JqZWN0PFBh
cmVudD46OmFzQ2FsbGJhY2tPYmplY3QoRW5jb2RlZEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNT
RVJUKGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpLT5pbmhlcml0cyhpbmZvKCkpKTsK
LSAgICByZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3QqPihhc09iamVjdChKU1ZhbHVlOjpk
ZWNvZGUodmFsdWUpKSk7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBKU0NhbGxiYWNr
T2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKQogICAgIDogUGFy
ZW50KGV4ZWMtPnZtKCksIHN0cnVjdHVyZSkKICAgICAsIG1fY2FsbGJhY2tPYmplY3REYXRhKGFk
b3B0UHRyKG5ldyBKU0NhbGxiYWNrT2JqZWN0RGF0YShkYXRhLCBqc0NsYXNzKSkpCkBAIC01OTEs
MTQgKzU4NCwxNCBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0U3RhdGlj
VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcAogfQogCiB0ZW1wbGF0ZSA8Y2xh
c3MgUGFyZW50PgotRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0
aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RQYXJl
bnQsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNWYWx1ZSBK
U0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90UGFyZW50LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewog
ICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHNsb3RQYXJl
bnQpOwogICAgIAogICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHku
CiAgICAgUHJvcGVydHlTbG90IHNsb3QyKHRoaXNPYmopOwogICAgIGlmIChQYXJlbnQ6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QyKSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90Mi5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpKTsKKyAgICAgICAgcmV0dXJuIHNsb3QyLmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7
CiAKICAgICBpZiAoU3RyaW5nSW1wbCogbmFtZSA9IHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCkp
IHsKICAgICAgICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqLT5jbGFzc1JlZigp
OyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsKQEAgLTYwOCwxOCAr
NjAxLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6c3RhdGlj
RnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFCiAgICAgICAgICAgICAgICAgICAgICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3Qq
IG8gPSBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpc09iai0+Z2xvYmFsT2JqZWN0
KCksIGNhbGxBc0Z1bmN0aW9uLCBuYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPnB1dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCBvLCBlbnRyeS0+YXR0cmlidXRlcyk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG8pOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG87CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
UmVmZXJlbmNlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJTdGF0aWMgZnVuY3Rpb24gcHJvcGVy
dHkgZGVmaW5lZCB3aXRoIE5VTEwgY2FsbEFzRnVuY3Rpb24gY2FsbGJhY2suIikpKSk7CisgICAg
cmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJy
b3IoZXhlYywgQVNDSUlMaXRlcmFsKCJTdGF0aWMgZnVuY3Rpb24gcHJvcGVydHkgZGVmaW5lZCB3
aXRoIE5VTEwgY2FsbEFzRnVuY3Rpb24gY2FsbGJhY2suIikpKTsKIH0KIAogdGVtcGxhdGUgPGNs
YXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90UGFyZW50LCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTVmFsdWUgSlNDYWxs
YmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgc2xvdFBhcmVudCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0NhbGxi
YWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdChzbG90UGFyZW50KTsKICAgICAK
QEAgLTYzOSwxNSArNjMyLDE1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6Y2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkCiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKICAgICAgICAgICAgICAg
ICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCB0b0pTKGV4ZWMsIGV4Y2VwdGlv
bikpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKHZhbHVlKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywgdmFsdWUpKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdmFsdWUpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgiaGFzUHJvcGVydHkgY2FsbGJhY2sgcmV0dXJuZWQgdHJ1ZSBmb3IgYSBwcm9wZXJ0eSB0aGF0
IGRvZXNuJ3QgZXhpc3QuIikpKSk7CisgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRp
b24oZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJoYXNQcm9w
ZXJ0eSBjYWxsYmFjayByZXR1cm5lZCB0cnVlIGZvciBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBl
eGlzdC4iKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGRjMGNlNWRlOTAzNzNiNzEzMTJhMjExZjRl
Yzc2MTA3MTQzYjU3MzcuLjkxNGZlYWQ1ODliMjI2ZTBhYmJjYzQzMWE5YmRhMjY4NDY0NjM5ZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjIy
LDcgKzIyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEN1
c3RvbUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCoKICAgICAKICAgICBJZGVudGlmaWVy
IGlkZW50KHZtLCB1aWQpOwogICAgIAotICAgIHJldHVybiBmdW5jdGlvbihleGVjLCBKU1ZhbHVl
OjplbmNvZGUoYmFzZSksIEpTVmFsdWU6OmVuY29kZShiYXNlKSwgaWRlbnQpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoZnVuY3Rpb24oZXhlYywgYXNPYmplY3QoYmFzZSksIGlkZW50KSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgSlNDZWxsKiBnZXR0ZXJTZXR0ZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA3MmVk
MWM3MTI0MDYxMTY4YjBhZGRkMzExNmY3NTVhMTE3YjhmYjkwLi5hODM5Yzk0MTFmZDZhOGE5ZWZi
N2ZkMWFhODg3Y2VkNjU1MDY2OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAgLTIxMCwxNyArMjEwLDE3IEBAIEpTVmFsdWUgSlNBY3Rp
dmF0aW9uOjp0b1RoaXMoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjLCBFQ01BTW9kZSBlY21hTW9k
ZSkKICAgICByZXR1cm4gZXhlYy0+Z2xvYmFsVGhpc1ZhbHVlKCk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQWN0aXZhdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBKU0Fj
dGl2YXRpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBQ
cm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNBY3RpdmF0aW9uKiBhY3RpdmF0aW9uID0ganNDYXN0PEpT
QWN0aXZhdGlvbio+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpOworICAgIEpTQWN0aXZhdGlv
biogYWN0aXZhdGlvbiA9IGpzQ2FzdDxKU0FjdGl2YXRpb24qPihzbG90QmFzZSk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PFJl
Z2lzdGVyKj4oYWN0aXZhdGlvbi0+bV9yZWdpc3RlcnMpKTsKICAgICBBU1NFUlQoIWFjdGl2YXRp
b24tPmlzVG9ybk9mZigpICYmIChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT51c2VzQXJndW1lbnRz
KCkgfHwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+dXNlc0V2YWwoKSkpOwogICAgIGlmIChhY3Rp
dmF0aW9uLT5pc1Rvcm5PZmYoKSB8fCAhKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPnVzZXNBcmd1
bWVudHMoKSB8fCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT51c2VzRXZhbCgpKSkKLSAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAKICAgICBWaXJ0dWFsUmVnaXN0ZXIgYXJndW1lbnRzUmVnaXN0ZXIgPSBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpLT5hcmd1bWVudHNSZWdpc3RlcigpOwogICAgIGlmIChKU1Zh
bHVlIGFyZ3VtZW50cyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkUihhcmd1bWVudHNSZWdpc3Rlci5v
ZmZzZXQoKSkuanNWYWx1ZSgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFyZ3Vt
ZW50cyk7CisgICAgICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgaW50IHJlYWxBcmd1bWVudHNS
ZWdpc3RlciA9IHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rlcihhcmd1bWVudHNSZWdpc3Rlciku
b2Zmc2V0KCk7CiAKICAgICBKU1ZhbHVlIGFyZ3VtZW50cyA9IEpTVmFsdWUoQXJndW1lbnRzOjpj
cmVhdGUoY2FsbEZyYW1lLT52bSgpLCBjYWxsRnJhbWUpKTsKQEAgLTIyOCw3ICsyMjgsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0FjdGl2YXRpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBzbG90QmFzZQogICAgIGNhbGxGcmFtZS0+dW5jaGVja2VkUihyZWFsQXJn
dW1lbnRzUmVnaXN0ZXIpID0gYXJndW1lbnRzOwogICAgIAogICAgIEFTU0VSVChjYWxsRnJhbWUt
PnVuY2hlY2tlZFIocmVhbEFyZ3VtZW50c1JlZ2lzdGVyKS5qc1ZhbHVlKCkuaW5oZXJpdHMoQXJn
dW1lbnRzOjppbmZvKCkpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+
dW5jaGVja2VkUihyZWFsQXJndW1lbnRzUmVnaXN0ZXIpLmpzVmFsdWUoKSk7CisgICAgcmV0dXJu
IGNhbGxGcmFtZS0+dW5jaGVja2VkUihyZWFsQXJndW1lbnRzUmVnaXN0ZXIpLmpzVmFsdWUoKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5oCmluZGV4IDY3ZWFmZWVlYmFkNGM5NTczYzFhMjgzOWMzMjdiNGQ4ZWZm
NzFjNTMuLjk2YmZkN2YzZjcxMDgxZDQ3YjU4OWU2NmVhNzA0MmFlYTgyMWIzMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN5bWJvbFRhYmxlUHV0KEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgYm9vbCBzeW1ib2xUYWJs
ZVB1dFdpdGhBdHRyaWJ1dGVzKFZNJiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTsKIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHNHZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
OworICAgIHN0YXRpYyBKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZShTeW1i
b2xUYWJsZSopOwogICAgIHN0YXRpYyBzaXplX3Qgc3RvcmFnZU9mZnNldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwYzc1NDgwZTM5NDYz
Mzk5OGM2ZGU1NjhhMzY4ZmNkYTNkYjdjNjk0Li44OGYxOTc5MGJhMWU0ODE5Nzk2MjA5NjY2MzE0
YzNmNDkwN2E3ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcApAQCAtMjEyLDEyICsyMTIsMTIgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmlldmVBcmd1
bWVudHMoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKICAgICByZXR1
cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJn
dW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50
c0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkK
IHsKLSAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVl
OjpkZWNvZGUoc2xvdEJhc2UpKTsKKyAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpT
RnVuY3Rpb24qPihzbG90QmFzZSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlv
bigpKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmV0cmlldmVBcmd1bWVudHMoZXhl
YywgdGhpc09iaikpOworICAgIHJldHVybiByZXRyaWV2ZUFyZ3VtZW50cyhleGVjLCB0aGlzT2Jq
KTsKIH0KIAogY2xhc3MgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3IgewpAQCAtMjY3LDMz
ICsyNjcsMzMgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmlldmVDYWxsZXJGdW5jdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uT2JqKQogICAgIHJldHVybiBmdW5jdG9yLnJl
c3VsdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTRnVuY3Rpb24q
IHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkp
OworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KHNsb3RCYXNl
KTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwogICAgIEpTVmFsdWUg
Y2FsbGVyID0gcmV0cmlldmVDYWxsZXJGdW5jdGlvbihleGVjLCB0aGlzT2JqKTsKIAogICAgIC8v
IFNlZSBFUzUuMSAxNS4zLjUuNCAtIEZ1bmN0aW9uLmNhbGxlciBtYXkgbm90IGJlIHVzZWQgdG8g
cmV0cmlldmUgYSBzdHJpY3QgY2FsbGVyLgogICAgIGlmICghY2FsbGVyLmlzT2JqZWN0KCkgfHwg
IWFzT2JqZWN0KGNhbGxlciktPmluaGVyaXRzKEpTRnVuY3Rpb246OmluZm8oKSkpCi0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbGVyKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlcjsK
ICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oY2FsbGVyKTsK
ICAgICBpZiAoZnVuY3Rpb24tPmlzSG9zdEZ1bmN0aW9uKCkgfHwgIWZ1bmN0aW9uLT5qc0V4ZWN1
dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FsbGVyKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiRnVuY3Rpb24uY2FsbGVyIHVzZWQgdG8gcmV0cmlldmUgc3RyaWN0IGNh
bGxlciIpKSk7CisgICAgICAgIHJldHVybiBjYWxsZXI7CisgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiRnVuY3Rpb24uY2FsbGVyIHVzZWQgdG8gcmV0cmlldmUg
c3RyaWN0IGNhbGxlciIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3Ro
R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBKU0Z1bmN0aW9uOjpsZW5ndGhHZXR0ZXIoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTRnVuY3Rpb24q
IHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkp
OworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KHNsb3RCYXNl
KTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iai0+anNFeGVjdXRhYmxlKCktPnBhcmFtZXRl
ckNvdW50KCkpKTsKKyAgICByZXR1cm4ganNOdW1iZXIodGhpc09iai0+anNFeGVjdXRhYmxlKCkt
PnBhcmFtZXRlckNvdW50KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpuYW1l
R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBKU0Z1bmN0aW9uOjpuYW1lR2V0dGVyKEV4ZWNTdGF0
ZSosIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0Z1bmN0aW9uKiB0
aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVlOjpkZWNvZGUoc2xvdEJhc2UpKTsK
KyAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihzbG90QmFzZSk7
CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRoaXNPYmotPmpzRXhlY3V0YWJsZSgpLT5uYW1lVmFsdWUoKSk7CisgICAg
cmV0dXJuIHRoaXNPYmotPmpzRXhlY3V0YWJsZSgpLT5uYW1lVmFsdWUoKTsKIH0KIAogYm9vbCBK
U0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggN2NkMTRiOGMy
ZDgwMGY2MWJkYzEyZWRkMmRmMDRkMzVmYTA2MTliNi4uY2VkNjIzYjBhODI4MDY3MGM1M2JiYjA3
OWJkMzEwMzZhODlmMGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaApAQCAtMTcxLDEwICsxNzEsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAog
ICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzSG9zdEZ1bmN0aW9uTm9uSW5saW5lKCkg
Y29uc3Q7CiAKLSAgICAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
Ci0gICAgICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgICAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICAgICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIG5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgICAgICBzdGF0aWMgSlNWYWx1ZSBhcmd1bWVudHNH
ZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICAgICAgc3RhdGlj
IEpTVmFsdWUgY2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
CisgICAgICAgIHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOworICAgICAgICBzdGF0aWMgSlNWYWx1ZSBuYW1lR2V0dGVyKEV4ZWNT
dGF0ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgV3JpdGVCYXJyaWVyPEV4
ZWN1dGFibGVCYXNlPiBtX2V4ZWN1dGFibGU7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU1Njb3Bl
PiBtX3Njb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXgg
Y2Y1N2ViZGU0OWUxZDgxNGM2OWRjMjE5ZDEyZjJhYzVmNDVkZjM2MC4uNjBhZTE2ODBlZWVkNGRi
YTk0ZjY4ZTRiODU2ZjlhNjk5N2QzNjc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCkBAIC0xNTM1LDEwICsxNTM1LDEwIEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1
ZSBQcm9wZXJ0eVNsb3Q6OmdldFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlCiAgICAgaWYgKG1fcHJvcGVydHlUeXBlID09IFR5cGVWYWx1ZSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmRlY29kZShtX2RhdGEudmFsdWUpOwogICAgIGlmIChtX3Byb3BlcnR5VHlwZSA9
PSBUeXBlQ3VzdG9tSW5kZXgpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRh
LmN1c3RvbUluZGV4LmdldEluZGV4VmFsdWUoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHNsb3RCYXNl
KCkpLCBKU1ZhbHVlOjplbmNvZGUobV90aGlzVmFsdWUpLCBtX2RhdGEuY3VzdG9tSW5kZXguaW5k
ZXgpKTsKKyAgICAgICAgcmV0dXJuIG1fZGF0YS5jdXN0b21JbmRleC5nZXRJbmRleFZhbHVlKGV4
ZWMsIHNsb3RCYXNlKCksIG1fZGF0YS5jdXN0b21JbmRleC5pbmRleCk7CiAgICAgaWYgKG1fcHJv
cGVydHlUeXBlID09IFR5cGVHZXR0ZXIpCiAgICAgICAgIHJldHVybiBmdW5jdGlvbkdldHRlcihl
eGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUo
ZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHNsb3RCYXNlKCkpLCBKU1ZhbHVlOjplbmNvZGUobV90aGlz
VmFsdWUpLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gbV9kYXRhLmN1c3RvbS5nZXRWYWx1
ZShleGVjLCBzbG90QmFzZSgpLCBwcm9wZXJ0eU5hbWUpOwogfQogCiBBTFdBWVNfSU5MSU5FIEpT
VmFsdWUgUHJvcGVydHlTbG90OjpnZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSkgY29uc3QKQEAgLTE1NDYsMTAgKzE1NDYsMTAgQEAgQUxXQVlTX0lOTElORSBK
U1ZhbHVlIFByb3BlcnR5U2xvdDo6Z2V0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU4KICAgICBpZiAobV9wcm9wZXJ0eVR5cGUgPT0gVHlwZVZhbHVlKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS52YWx1ZSk7CiAgICAgaWYgKG1fcHJvcGVydHlU
eXBlID09IFR5cGVDdXN0b21JbmRleCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSht
X2RhdGEuY3VzdG9tSW5kZXguZ2V0SW5kZXhWYWx1ZShleGVjLCBKU1ZhbHVlOjplbmNvZGUoc2xv
dEJhc2UoKSksIEpTVmFsdWU6OmVuY29kZShtX3RoaXNWYWx1ZSksIG1fZGF0YS5jdXN0b21JbmRl
eC5pbmRleCkpOworICAgICAgICByZXR1cm4gbV9kYXRhLmN1c3RvbUluZGV4LmdldEluZGV4VmFs
dWUoZXhlYywgc2xvdEJhc2UoKSwgbV9kYXRhLmN1c3RvbUluZGV4LmluZGV4KTsKICAgICBpZiAo
bV9wcm9wZXJ0eVR5cGUgPT0gVHlwZUdldHRlcikKICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uR2V0
dGVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRW
YWx1ZShleGVjLCBKU1ZhbHVlOjplbmNvZGUoc2xvdEJhc2UoKSksIEpTVmFsdWU6OmVuY29kZSht
X3RoaXNWYWx1ZSksIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSkpOworICAg
IHJldHVybiBtX2RhdGEuY3VzdG9tLmdldFZhbHVlKGV4ZWMsIHNsb3RCYXNlKCksIElkZW50aWZp
ZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDE3OTYzYTE1ZGJhMTRhOTkzMTgwZDY1NDQxYzY2YzY5OTA1YzQ3N2IuLjEyZmMx
NGQ5NjQxNDk4MjdjYzg1ZWU3YTlmMGJjZmRlNGE2MTA0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTI5LDExICsy
OSwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG51bWJl
ckNvbnN0cnVjdG9yTmFOVmFsdWUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG51bWJlckNvbnN0
cnVjdG9yTmVnSW5maW5pdHkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG51bWJlckNvbnN0cnVj
dG9yUG9zSW5maW5pdHkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9y
TWF4VmFsdWUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9yTWluVmFs
dWUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOworc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JOYU5WYWx1ZShFeGVjU3RhdGUq
LCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0
b3JOZWdJbmZpbml0eShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGlj
IEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JQb3NJbmZpbml0eShFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JNYXhWYWx1
ZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUgbnVt
YmVyQ29uc3RydWN0b3JNaW5WYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApAQCAtODIsMjkgKzgyLDI5IEBAIHZvaWQgTnVtYmVy
Q29uc3RydWN0b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5CiAgICAgbG9va3VwUHV0PE51bWJlckNvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1
bmN0aW9uPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6Om51bWJlckNvbnN0
cnVjdG9yVGFibGUoZXhlYyksIGpzQ2FzdDxOdW1iZXJDb25zdHJ1Y3Rvcio+KGNlbGwpLCBzbG90
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9yTmFOVmFsdWUo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitzdGF0aWMgSlNWYWx1ZSBudW1iZXJDb25zdHJ1Y3Rvck5hTlZhbHVlKEV4ZWNTdGF0ZSosIEpT
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOworICAgIHJldHVybiBqc05hTigpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgbnVt
YmVyQ29uc3RydWN0b3JOZWdJbmZpbml0eShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVj
dG9yTmVnSW5maW5pdHkoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6aW5maW5pdHkoKSkpOworICAgIHJldHVybiBqc051bWJlcigtc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG51
bWJlckNvbnN0cnVjdG9yUG9zSW5maW5pdHkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0aWMgSlNWYWx1ZSBudW1iZXJDb25zdHJ1
Y3RvclBvc0luZmluaXR5KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6aW5maW5pdHkoKSkpOworICAgIHJldHVybiBqc051bWJlcihzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OmluZmluaXR5KCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgbnVt
YmVyQ29uc3RydWN0b3JNYXhWYWx1ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9y
TWF4VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpKTsKKyAg
ICByZXR1cm4ganNOdW1iZXIoMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JNaW5WYWx1ZShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBKU1ZhbHVl
IG51bWJlckNvbnN0cnVjdG9yTWluVmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoNUUtMzI0KSk7Cisg
ICAgcmV0dXJuIGpzTnVtYmVyKDVFLTMyNCk7CiB9CiAKIC8vIEVDTUEgMTUuNy4xCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCmluZGV4IGFlOTM0NTVhNDg0
NzgzNzg0NzZjNDNhMjUxMmM4NThmNjQ4NTZjYTYuLjcxNDU3N2UyMDkxYmYzZDYyN2I5NTI1NTcy
OTBiMzE3NDkwYTc2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5U2xvdC5oCkBAIC02MCw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAg
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKLSAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgqR2V0SW5kZXhWYWx1ZUZ1bmMpKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IHVuc2lnbmVkKTsKKyAgICB0eXBlZGVmIEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0
ZSosIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSk7CisgICAgdHlwZWRlZiBKU1ZhbHVl
ICgqR2V0SW5kZXhWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIHVuc2ln
bmVkKTsKIAogICAgIEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBj
b25zdDsKICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSkgY29uc3Q7CkBAIC0yMjYsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgIFByb3BlcnR5
VHlwZSBtX3Byb3BlcnR5VHlwZTsKICAgICBQcm9wZXJ0eU9mZnNldCBtX29mZnNldDsKLSAgICBj
b25zdCBKU1ZhbHVlIG1fdGhpc1ZhbHVlOworICAgIEpTVmFsdWUgbV90aGlzVmFsdWU7CiAgICAg
SlNPYmplY3QqIG1fc2xvdEJhc2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDRmNTYwMmY3MWYwMWU4MzQ0
YjcyMGU0ZGI0NzVkOGRkMDNjOWQwMS4uNjc1NjAxMThhMTY0NGExNzFmMzY2NTJhOWYyMzI2ZTMy
ODk0MjMzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmNwcApAQCAtMjksMjEgKzI5LDIxIEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJ
bnB1dChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKK3N0YXRpYyBKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKEV4ZWNTdGF0
ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGlj
IEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENv
bnRleHQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSos
IEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjMoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KEV4ZWNTdGF0
ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjYoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KEV4ZWNT
dGF0ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjkoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogc3Rh
dGljIHZvaWQgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBKU09iamVjdCos
IEpTVmFsdWUpOwogc3RhdGljIHZvaWQgc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlKTsKQEAgLTE1OCw4NCArMTU4LDc5IEBAIGJvb2wg
UmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIGV4ZWMsIFByCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBD
b25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBDb25z
dHJ1Y3RvclRhYmxlKGV4ZWMpLCBqc0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihvYmplY3QpLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1zdGF0aWMgaW5saW5lIFJlZ0V4cENvbnN0cnVjdG9y
KiBhc1JlZ0V4cENvbnN0cnVjdG9yKEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorSlNWYWx1ZSByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQ
cm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIGpzQ2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KEpT
VmFsdWU6OmRlY29kZSh2YWx1ZSkpOwotfQotICAgIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXIxKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAxKSk7
CisgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4
ZWMsIDEpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0pTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhl
YywgMikpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFj
a3JlZihleGVjLCAyKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNr
cmVmKGV4ZWMsIDMpKTsKKyAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSkt
PmdldEJhY2tyZWYoZXhlYywgMyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyNChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+
Z2V0QmFja3JlZihleGVjLCA0KSk7CisgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xv
dEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI1KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1l
KQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90
QmFzZSktPmdldEJhY2tyZWYoZXhlYywgNSkpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0cnVj
dG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA1KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3Bl
cnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0
b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDYpKTsKKyAgICByZXR1cm4gYXNSZWdFeHBD
b25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgNik7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENv
bnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA3KSk7CisgICAgcmV0dXJuIGFz
UmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDcpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBz
bG90QmFzZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNS
ZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgOCkpOworICAgIHJl
dHVybiBhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA4KTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDkpKTsK
KyAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhl
YywgOSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgSlNWYWx1ZSBz
bG90QmFzZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNS
ZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmlucHV0KCkpOworICAgIHJldHVybiBhc1JlZ0V4
cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+aW5wdXQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkK
IHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cENvbnN0cnVj
dG9yKHNsb3RCYXNlKS0+bXVsdGlsaW5lKCkpKTsKKyAgICByZXR1cm4ganNCb29sZWFuKGFzUmVn
RXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5tdWx0aWxpbmUoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yTGFzdE1hdGNoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFz
ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBD
b25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgMCkpOworICAgIHJldHVybiBh
c1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAwKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0pTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0TGFzdFBhcmVuKGV4ZWMpKTsKKyAg
ICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldExhc3RQYXJlbihleGVj
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldExlZnRDb250
ZXh0KGV4ZWMpKTsKKyAgICByZXR1cm4gYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdl
dExlZnRDb250ZXh0KGV4ZWMpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
clJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJp
Z2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFt
ZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xv
dEJhc2UpLT5nZXRSaWdodENvbnRleHQoZXhlYykpOworICAgIHJldHVybiBhc1JlZ0V4cENvbnN0
cnVjdG9yKHNsb3RCYXNlKS0+Z2V0UmlnaHRDb250ZXh0KGV4ZWMpOwogfQogCiB2b2lkIFJlZ0V4
cENvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4
IDAwOWNhYzEyY2NlMWM1NTVkNjIzMzU4ZjVjYWJiN2Y2ZTZlNzZlN2QuLmNjZWE3MDg4MGZiZGE2
OWI0NmYxMjIyMGI5MDVhZTdjOTIzNDEzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMzksMTAgKzM5LDEwIEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwT2JqZWN0R2xvYmFsKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBPYmplY3RJZ25vcmVDYXNlKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSByZWdFeHBPYmplY3RNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHJlZ0V4cE9iamVjdFNvdXJjZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgSlNWYWx1ZSByZWdFeHBPYmplY3RHbG9iYWwo
RXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBKU1ZhbHVlIHJlZ0V4
cE9iamVjdElnbm9yZUNhc2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0
YXRpYyBKU1ZhbHVlIHJlZ0V4cE9iamVjdE11bHRpbGluZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOworc3RhdGljIEpTVmFsdWUgcmVnRXhwT2JqZWN0U291cmNlKEV4ZWNTdGF0
ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkBAIC0x
NTUsMjQgKzE1NSwxOSBAQCBib29sIFJlZ0V4cE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eQogICAgIHJldHVybiBCYXNl
OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
ciwgc2hvdWxkVGhyb3cpOwogfQogCi1zdGF0aWMgaW5saW5lIFJlZ0V4cE9iamVjdCogYXNSZWdF
eHBPYmplY3QoRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitKU1ZhbHVlIHJlZ0V4cE9iamVjdEdsb2Jh
bChFeGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0
dXJuIGpzQ2FzdDxSZWdFeHBPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKKyAgICBy
ZXR1cm4ganNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+cmVnRXhwKCktPmdsb2Jh
bCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwT2JqZWN0R2xvYmFsKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
SlNWYWx1ZSByZWdFeHBPYmplY3RJZ25vcmVDYXNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJh
c2UsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihhc1JlZ0V4cE9iamVjdChzbG90QmFzZSktPnJlZ0V4cCgpLT5nbG9iYWwoKSkpOwotfQotCi1F
bmNvZGVkSlNWYWx1ZSByZWdFeHBPYmplY3RJZ25vcmVDYXNlKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+
cmVnRXhwKCktPmlnbm9yZUNhc2UoKSkpOworICAgIHJldHVybiBqc0Jvb2xlYW4oYXNSZWdFeHBP
YmplY3Qoc2xvdEJhc2UpLT5yZWdFeHAoKS0+aWdub3JlQ2FzZSgpKTsKIH0KICAKLUVuY29kZWRK
U1ZhbHVlIHJlZ0V4cE9iamVjdE11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0pTVmFsdWUgcmVnRXhwT2Jq
ZWN0TXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkK
IHsgICAgICAgICAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1Jl
Z0V4cE9iamVjdChzbG90QmFzZSktPnJlZ0V4cCgpLT5tdWx0aWxpbmUoKSkpOworICAgIHJldHVy
biBqc0Jvb2xlYW4oYXNSZWdFeHBPYmplY3Qoc2xvdEJhc2UpLT5yZWdFeHAoKS0+bXVsdGlsaW5l
KCkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KQEAgLTI4MSwxNCAr
Mjc2LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSByZWdFeHBPYmplY3RTb3VyY2VJbnRlcm5h
bChFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZyBwYXR0ZXJuCiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4
ZWMsIHJlc3VsdC50b1N0cmluZygpKTsKIH0KIAotICAgIAotICAgIAotRW5jb2RlZEpTVmFsdWUg
cmVnRXhwT2JqZWN0U291cmNlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIHJlZ0V4cE9iamVjdFNv
dXJjZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBTdHJpbmcgcGF0dGVybiA9IGFzUmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+cmVnRXhwKCkt
PnBhdHRlcm4oKTsKICAgICBpZiAocGF0dGVybi5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZWdFeHBPYmplY3RTb3VyY2VJbnRlcm5hbChleGVjLCBwYXR0ZXJuLCBw
YXR0ZXJuLmNoYXJhY3RlcnM4KCksIHBhdHRlcm4ubGVuZ3RoKCkpKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlZ0V4cE9iamVjdFNvdXJjZUludGVybmFsKGV4ZWMsIHBhdHRlcm4sIHBh
dHRlcm4uY2hhcmFjdGVyczE2KCksIHBhdHRlcm4ubGVuZ3RoKCkpKTsKKyAgICAgICAgcmV0dXJu
IHJlZ0V4cE9iamVjdFNvdXJjZUludGVybmFsKGV4ZWMsIHBhdHRlcm4sIHBhdHRlcm4uY2hhcmFj
dGVyczgoKSwgcGF0dGVybi5sZW5ndGgoKSk7CisgICAgcmV0dXJuIHJlZ0V4cE9iamVjdFNvdXJj
ZUludGVybmFsKGV4ZWMsIHBhdHRlcm4sIHBhdHRlcm4uY2hhcmFjdGVyczE2KCksIHBhdHRlcm4u
bGVuZ3RoKCkpOwogfQogCiB2b2lkIFJlZ0V4cE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAppbmRleCAwYzA0YTE5OTQ5
MDc3ZGVkZjhlNDUzYmYwMDcwZGQwNDRjYTIzMGFkLi5jNjIxM2FhMGEwMTgxODg5MjJiM2NmYTQx
YjIwN2QxOWE1ZTZjNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKQEAgLTMwMyw5ICszMDMsOSBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgY3NzUHJvcGVydHlHZXR0ZXJQaXhlbE9yUG9zUHJlZml4
KEV4ZWNTdGF0ZSogZXhlYywgSlNDU1NTdAogICAgIHJldHVybiBnZXRQcm9wZXJ0eVZhbHVlRmFs
bGJhY2soZXhlYywgdGhpc09iaiwgcHJvcGVydHlJRCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBjc3NQcm9wZXJ0eUdldHRlclBpeGVsT3JQb3NQcmVmaXhDYWxsYmFjayhFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgdW5zaWduZWQg
cHJvcGVydHlJRCkKK3N0YXRpYyBKU1ZhbHVlIGNzc1Byb3BlcnR5R2V0dGVyUGl4ZWxPclBvc1By
ZWZpeENhbGxiYWNrKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgdW5zaWduZWQg
cHJvcGVydHlJRCkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNzc1Byb3BlcnR5R2V0
dGVyUGl4ZWxPclBvc1ByZWZpeChleGVjLCBqc0Nhc3Q8SlNDU1NTdHlsZURlY2xhcmF0aW9uKj4o
SlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSksIHByb3BlcnR5SUQpKTsKKyAgICByZXR1cm4gY3Nz
UHJvcGVydHlHZXR0ZXJQaXhlbE9yUG9zUHJlZml4KGV4ZWMsIGpzQ2FzdDxKU0NTU1N0eWxlRGVj
bGFyYXRpb24qPihhc09iamVjdChzbG90QmFzZSkpLCBwcm9wZXJ0eUlEKTsKIH0KIAogc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGNzc1Byb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDU1NT
dHlsZURlY2xhcmF0aW9uKiB0aGlzT2JqLCB1bnNpZ25lZCBwcm9wZXJ0eUlEKQpAQCAtMzE3LDkg
KzMxNyw5IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBjc3NQcm9wZXJ0eUdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbioKICAgICByZXR1cm4gZ2V0UHJvcGVydHlW
YWx1ZUZhbGxiYWNrKGV4ZWMsIHRoaXNPYmosIHByb3BlcnR5SUQpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgY3NzUHJvcGVydHlHZXR0ZXJDYWxsYmFjayhFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgdW5zaWduZWQgcHJvcGVydHlJ
RCkKK3N0YXRpYyBKU1ZhbHVlIGNzc1Byb3BlcnR5R2V0dGVyQ2FsbGJhY2soRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCB1bnNpZ25lZCBwcm9wZXJ0eUlEKQogewotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY3NzUHJvcGVydHlHZXR0ZXIoZXhlYywganNDYXN0PEpTQ1NTU3R5
bGVEZWNsYXJhdGlvbio+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpLCBwcm9wZXJ0eUlEKSk7
CisgICAgcmV0dXJuIGNzc1Byb3BlcnR5R2V0dGVyKGV4ZWMsIGpzQ2FzdDxKU0NTU1N0eWxlRGVj
bGFyYXRpb24qPihhc09iamVjdChzbG90QmFzZSkpLCBwcm9wZXJ0eUlEKTsKIH0KIAogYm9vbCBK
U0NTU1N0eWxlRGVjbGFyYXRpb246OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEV4ZWNTdGF0
ZSosIFByb3BlcnR5TmFtZSBwcm9wZXJ0eUlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IGRlY2M0
ZDA5ZDFkMjg1YWY0ZWIxNDlmMzk0YTQ2YWI1NmNkN2E1NzEuLmU2YTllZWE0YjQ3MDk5ZGFiZmY1
MTRhMWFmZmJkMDgyZjgyOGFiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcApAQCAtMjcxLDkgKzI3MSw5IEBAIHZvaWQgcHJpbnRFcnJvck1lc3NhZ2VG
b3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBmcmFtZS0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnByaW50RXJyb3JNZXNzYWdlKG1lc3NhZ2UpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKQorSlNWYWx1ZSBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIDAsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIG9iamVjdFBy
b3RvRnVuY1RvU3RyaW5nKSk7CisgICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52
bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIDAsIHByb3BlcnR5TmFtZS5wdWJsaWNO
YW1lKCksIG9iamVjdFByb3RvRnVuY1RvU3RyaW5nKTsKIH0KIAogU3RydWN0dXJlKiBnZXRDYWNo
ZWRET01TdHJ1Y3R1cmUoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQ2xh
c3NJbmZvKiBjbGFzc0luZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCmluZGV4IDM5NmIzMzBlNGI1ZjYwYmViNzM0OTQ2NDE1NDdlNGEzMjljNzIxNjEuLjFjZmU3
ZTEzZTY1ZGE5M2E2MmNiMTA4YTMxNzkxZDdiNzJjNTgwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC01NzIsNyArNTcyLDcgQEAgYm9vbCBzaG91bGRB
bGxvd0FjY2Vzc1RvRnJhbWUoSlNDOjpFeGVjU3RhdGUqLCBGcmFtZSosIFN0cmluZyYgbWVzc2Fn
ZSk7CiBib29sIHNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coSlNDOjpFeGVjU3RhdGUqLCBE
T01XaW5kb3cmLCBTdHJpbmcmIG1lc3NhZ2UpOwogCiB2b2lkIHByaW50RXJyb3JNZXNzYWdlRm9y
RnJhbWUoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlND
OjpKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogaW5saW5lIEpTQzo6SlNWYWx1ZSBq
c1N0cmluZ1dpdGhDYWNoZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBzKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01NaW1lVHlwZUFy
cmF5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTWltZVR5cGVB
cnJheUN1c3RvbS5jcHAKaW5kZXggZTFjOTEwNTkwNjM1MzJmZDM2ODY3YmFjZjAzMGJhYmRmOTYz
ZGU2Ny4uMjk4NWJkZjU4ZTE5MTcxNTg5N2M0OWI5N2JhOGNmY2U0ZGQ4ZDY3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01NaW1lVHlwZUFycmF5Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTU1pbWVUeXBlQXJyYXlDdXN0
b20uY3BwCkBAIC0zMywxMiArMzMsMTAgQEAgYm9vbCBKU0RPTU1pbWVUeXBlQXJyYXk6OmNhbkdl
dEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBET01NaW1lVHlwZUFycmF5KiBtaW1lVHkKICAgICBy
ZXR1cm4gbWltZVR5cGVBcnJheS0+Y2FuR2V0SXRlbXNGb3JOYW1lKHByb3BlcnR5TmFtZVRvQXRv
bWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0RPTU1pbWVU
eXBlQXJyYXk6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90
QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU1ZhbHVl
IEpTRE9NTWltZVR5cGVBcnJheTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
c2xvdEJhc2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNET01NaW1lVHlw
ZUFycmF5KiB0aGlzT2JqID0ganNEeW5hbWljQ2FzdDxKU0RPTU1pbWVUeXBlQXJyYXkqPihKU1Zh
bHVlOjpkZWNvZGUoc2xvdEJhc2UpKTsKLSAgICBpZiAoIXRoaXNPYmopCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9K
UyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhpc09iai0+aW1wbCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKSkpOworICAgIEpTRE9N
TWltZVR5cGVBcnJheSogdGhpc09iaiA9IGpzQ2FzdDxKU0RPTU1pbWVUeXBlQXJyYXkqPihhc09i
amVjdChzbG90QmFzZSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9i
amVjdCgpLCB0aGlzT2JqLT5pbXBsKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01QbHVnaW5BcnJheUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNw
cAppbmRleCA4MDdmNjNhZmVhYmQ0MWRiNzYzMWM1NWFmZTE4MWU4ODAxYjkxOTlhLi43ZTE2NWQ1
M2U4NzE0MWUwODg4ZWMyODYwM2U3NDc1YzVlYmE0NDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcApAQCAtMzMsMTAg
KzMzLDEwIEBAIGJvb2wgSlNET01QbHVnaW5BcnJheTo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNT
dGF0ZSosIERPTVBsdWdpbkFycmF5KiBwbHVnaW5BcnJhCiAgICAgcmV0dXJuIHBsdWdpbkFycmF5
LT5jYW5HZXRJdGVtc0Zvck5hbWUocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTRE9NUGx1Z2luQXJyYXk6Om5hbWVHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIEpTRE9NUGx1Z2luQXJyYXk6Om5h
bWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKQogewotICAgIEpTRE9NUGx1Z2luQXJyYXkqIHRoaXNPYmogPSBqc0Nhc3Q8
SlNET01QbHVnaW5BcnJheSo+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhp
c09iai0+aW1wbCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0
eU5hbWUpKSkpOworICAgIEpTRE9NUGx1Z2luQXJyYXkqIHRoaXNPYmogPSBqc0Nhc3Q8SlNET01Q
bHVnaW5BcnJheSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywg
dGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVBs
dWdpbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkN1
c3RvbS5jcHAKaW5kZXggZTIzZTYwZjc2NzE3ZmMwZGEwMmI0NGYyNDliNmI1ZmQ1ZmE2NWUwYi4u
YzE5NjEwNmE0OTA5ZmY0NjQ4OWJhMWFkODg1MDhhNDM3OTgxNmU4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01QbHVnaW5DdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUGx1Z2luQ3VzdG9tLmNwcApAQCAtMzIsMTAgKzMy
LDEwIEBAIGJvb2wgSlNET01QbHVnaW46OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBE
T01QbHVnaW4qIHBsdWdpbiwgUHJvcGVydHlOYW1lCiAgICAgcmV0dXJuIHBsdWdpbi0+Y2FuR2V0
SXRlbXNGb3JOYW1lKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0RPTVBsdWdpbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKK0pTVmFsdWUgSlNET01QbHVnaW46Om5hbWVHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewot
ICAgIEpTRE9NUGx1Z2luKiB0aGlzT2JqID0ganNDYXN0PEpTRE9NUGx1Z2luKj4oSlNWYWx1ZTo6
ZGVjb2RlKHNsb3RCYXNlKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMs
IHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCkubmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKSk7CisgICAgSlNET01QbHVnaW4q
IHRoaXNPYmogPSBqc0Nhc3Q8SlNET01QbHVnaW4qPihhc09iamVjdChzbG90QmFzZSkpOworICAg
IHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBs
KCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20uY3BwCmluZGV4IDZmZjZiOWMwNWVlMzI4NzU4
MmFmZGEyM2NlOWVjMTlhNmVlODYwMTkuLjVlYTY3NTJjYWRjYWZhNDg2MDI2MjAyMDMwODhmNjU4
ZTk1YjVkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0
cmluZ01hcEN1c3RvbS5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQCBib29sIEpTRE9NU3RyaW5nTWFw
OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgRE9NU3RyaW5nTWFwKiBpbXBsLCBQcm9w
ZXJ0eQogICAgIHJldHVybiBpbXBsLT5jb250YWlucyhwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNET01TdHJpbmdNYXA6Om5h
bWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIEpTRE9NU3RyaW5n
TWFwOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0RPTVN0cmluZ01hcCogdGhpc09iaiA9IGpz
Q2FzdDxKU0RPTVN0cmluZ01hcCo+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgdGhpc09iai0+aW1w
bCgpLml0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpKTsKKyAg
ICBKU0RPTVN0cmluZ01hcCogdGhpc09iaiA9IGpzQ2FzdDxKU0RPTVN0cmluZ01hcCo+KGFzT2Jq
ZWN0KHNsb3RCYXNlKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHRoaXNP
YmotPmltcGwoKS5pdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
KTsKIH0KIAogdm9pZCBKU0RPTVN0cmluZ01hcDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5h
bWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAyMTA5YWYwNGQ4Y2M5ZmE0ODc4ZWRmOWUy
YmEyMWQ5NWMzYmU3N2FlLi4zNWFiZmQzMTY1YjJkOGE4YTE4OTRmMGVlY2VmM2VlYWQ4OWEzNzNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwCkBAIC02NywyNCArNjcsMjQgQEAgdm9pZCBKU0RPTVdpbmRvdzo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogfQogCiB0ZW1wbGF0ZTxOYXRpdmVG
dW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4KLUVuY29kZWRKU1ZhbHVlIG5vbkNh
Y2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTVmFsdWUgbm9u
Q2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
RnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCks
IGxlbmd0aCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbmF0aXZlRnVuY3Rpb24pKTsKKyAg
ICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgbGVuZ3RoLCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBuYXRpdmVGdW5j
dGlvbik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjaGlsZEZyYW1lR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorc3RhdGljIEpTVmFsdWUgY2hpbGRGcmFtZUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIGpzQ2FzdDxKU0RP
TVdpbmRvdyo+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpLT5pbXBsKCkuZnJhbWUoKS0+dHJl
ZSgpLnNjb3BlZENoaWxkKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGpzQ2Fz
dDxKU0RPTVdpbmRvdyo+KGFzT2JqZWN0KHNsb3RCYXNlKSktPmltcGwoKS5mcmFtZSgpLT50cmVl
KCkuc2NvcGVkQ2hpbGQocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkt
PmRvY3VtZW50KCktPmRvbVdpbmRvdygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIGlu
ZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlLCB1bnNpZ25lZCBpbmRleCkKK3N0YXRpYyBKU1ZhbHVlIGluZGV4R2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIGpzQ2FzdDxKU0RPTVdpbmRvdyo+KEpT
VmFsdWU6OmRlY29kZShzbG90QmFzZSkpLT5pbXBsKCkuZnJhbWUoKS0+dHJlZSgpLnNjb3BlZENo
aWxkKGluZGV4KS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKTsKKyAgICByZXR1cm4gdG9KUyhl
eGVjLCBqc0Nhc3Q8SlNET01XaW5kb3cqPihhc09iamVjdChzbG90QmFzZSkpLT5pbXBsKCkuZnJh
bWUoKS0+dHJlZSgpLnNjb3BlZENoaWxkKGluZGV4KS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgbmFtZWRJdGVtR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKQorc3RhdGljIEpTVmFsdWUgbmFtZWRJdGVtR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsK
LSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmogPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihKU1Zh
bHVlOjpkZWNvZGUoc2xvdEJhc2UpKTsKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmogPSBq
c0Nhc3Q8SlNET01XaW5kb3cqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IHRoaXNPYmotPmltcGwoKS5mcmFtZSgpLT5kb2N1bWVudCgpOwogCiAgICAgQVNT
RVJUKEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhleGVjLCB0
aGlzT2JqLT5pbXBsKCkpKTsKQEAgLTkzLDE1ICs5MywxNSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgbmFtZWRJdGVtR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJh
c2UsCiAKICAgICBBdG9taWNTdHJpbmdJbXBsKiBhdG9taWNQcm9wZXJ0eU5hbWUgPSBmaW5kQXRv
bWljU3RyaW5nKHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKCFhdG9taWNQcm9wZXJ0eU5hbWUgfHwg
IXRvSFRNTERvY3VtZW50KGRvY3VtZW50KS0+aGFzV2luZG93TmFtZWRJdGVtKCphdG9taWNQcm9w
ZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIGlmIChVTkxJS0VMWSh0b0hU
TUxEb2N1bWVudChkb2N1bWVudCktPndpbmRvd05hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVt
ZW50cygqYXRvbWljUHJvcGVydHlOYW1lKSkpIHsKICAgICAgICAgUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiBjb2xsZWN0aW9uID0gZG9jdW1lbnQtPndpbmRvd05hbWVkSXRlbXMoYXRvbWljUHJvcGVy
dHlOYW1lKTsKICAgICAgICAgQVNTRVJUKGNvbGxlY3Rpb24tPmxlbmd0aCgpID4gMSk7Ci0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmpl
Y3QoKSwgV1RGOjpnZXRQdHIoY29sbGVjdGlvbikpKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGNvbGxlY3Rpb24pKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywgdGhpc09iai0+Z2xv
YmFsT2JqZWN0KCksIHRvSFRNTERvY3VtZW50KGRvY3VtZW50KS0+d2luZG93TmFtZWRJdGVtKCph
dG9taWNQcm9wZXJ0eU5hbWUpKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xv
YmFsT2JqZWN0KCksIHRvSFRNTERvY3VtZW50KGRvY3VtZW50KS0+d2luZG93TmFtZWRJdGVtKCph
dG9taWNQcm9wZXJ0eU5hbWUpKTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCAyMjdj
MzRkZmIwZDYyMmVkNzVhNGJjMDQ3MzYzMDE1ZTkzNmYzNjMxLi4xMWY1NTE5MjJhN2JlYjQyYjkx
ZGJmODVkYjU4NGJiZTQzMzRhYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtMTAwLDEwICsxMDAs
MTAgQEAgYm9vbCBKU0hUTUxBbGxDb2xsZWN0aW9uOjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0
YXRlKiwgSFRNTEFsbENvbGxlY3Rpb24qIGNvbGwKICAgICByZXR1cm4gY29sbGVjdGlvbi0+aGFz
TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0hUTUxBbGxDb2xsZWN0aW9uOjpuYW1lR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKQorSlNWYWx1ZSBKU0hUTUxBbGxDb2xsZWN0aW9uOjpuYW1lR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkKIHsKLSAgICBKU0hUTUxBbGxDb2xsZWN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpT
SFRNTEFsbENvbGxlY3Rpb24qPihKU1ZhbHVlOjpkZWNvZGUoc2xvdEJhc2UpKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldE5hbWVkSXRlbXMoZXhlYywgdGhpc09iaiwgcHJvcGVydHlO
YW1lKSk7CisgICAgSlNIVE1MQWxsQ29sbGVjdGlvbiogdGhpc09iaiA9IGpzQ2FzdDxKU0hUTUxB
bGxDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICByZXR1cm4gZ2V0TmFtZWRJ
dGVtcyhleGVjLCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUpOwogfQogCiBKU1ZhbHVlIEpTSFRNTEFs
bENvbGxlY3Rpb246Oml0ZW0oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCBlZWNjMDhi
MGE1ODY0NjI5ODBiMDc2MTc0MDljZjFkZGQ2MGE3NTdjLi4yNmEyYzJjNzBlODA2OTRmNmM0ZmRl
MDNhZTBmYzQzODdiNjcxMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtNDUsMTEgKzQ1LDExIEBAIGJvb2wg
SlNIVE1MQ29sbGVjdGlvbjo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIEhUTUxDb2xs
ZWN0aW9uKiBjb2xsZWN0aW9uCiAgICAgcmV0dXJuIGNvbGxlY3Rpb24tPmhhc05hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSkKK0pTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAg
SlNIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IGpzQ2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4o
SlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7CisgICAgSlNIVE1MQ29sbGVjdGlvbiogY29sbGVj
dGlvbiA9IGpzQ2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBjb2xs
ZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgY29sbGVjdGlvbi0+aW1wbCgpLm5hbWVkSXRlbShuYW1l
KSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBj
b2xsZWN0aW9uLT5pbXBsKCkubmFtZWRJdGVtKG5hbWUpKTsKIH0KIAogSlNWYWx1ZSB0b0pTKEV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSFRNTENvbGxl
Y3Rpb24qIGNvbGxlY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKaW5kZXggN2U3YmI1YTQ0ZTliODgwNDFmZmI1YzI5NWU2
YWZkNThmYWI0YTcwNi4uM2Y0Y2FmMGQ2MmI2NzdiYTczY2IyYmUzZjA2ZmY5MTM1Njk2NDNjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3Vz
dG9tLmNwcApAQCAtNTcsMjggKzU3LDI4IEBAIGJvb2wgSlNIVE1MRG9jdW1lbnQ6OmNhbkdldEl0
ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBQcm9wCiAgICAg
cmV0dXJuIGF0b21pY1Byb3BlcnR5TmFtZSAmJiBkb2N1bWVudC0+aGFzRG9jdW1lbnROYW1lZEl0
ZW0oKmF0b21pY1Byb3BlcnR5TmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTSFRNTERvY3Vt
ZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNWYWx1ZSBKU0hU
TUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNIVE1MRG9jdW1lbnQqIHRoaXNP
YmogPSBqc0Nhc3Q8SlNIVE1MRG9jdW1lbnQqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdEJhc2UpKTsK
KyAgICBKU0hUTUxEb2N1bWVudCogdGhpc09iaiA9IGpzQ2FzdDxKU0hUTUxEb2N1bWVudCo+KGFz
T2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgSFRNTERvY3VtZW50JiBkb2N1bWVudCA9IHRoaXNPYmot
PmltcGwoKTsKIAogICAgIEF0b21pY1N0cmluZ0ltcGwqIGF0b21pY1Byb3BlcnR5TmFtZSA9IGZp
bmRBdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKTsKICAgICBpZiAoIWF0b21pY1Byb3BlcnR5TmFt
ZSB8fCAhZG9jdW1lbnQuaGFzRG9jdW1lbnROYW1lZEl0ZW0oKmF0b21pY1Byb3BlcnR5TmFtZSkp
Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgaWYgKFVOTElLRUxZKGRvY3VtZW50LmRvY3Vt
ZW50TmFtZWRJdGVtQ29udGFpbnNNdWx0aXBsZUVsZW1lbnRzKCphdG9taWNQcm9wZXJ0eU5hbWUp
KSkgewogICAgICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNvbGxlY3Rpb24gPSBkb2N1bWVu
dC5kb2N1bWVudE5hbWVkSXRlbXMoYXRvbWljUHJvcGVydHlOYW1lKTsKICAgICAgICAgQVNTRVJU
KGNvbGxlY3Rpb24tPmxlbmd0aCgpID4gMSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoY29sbGVj
dGlvbikpKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0
KCksIFdURjo6Z2V0UHRyKGNvbGxlY3Rpb24pKTsKICAgICB9CiAKICAgICBFbGVtZW50KiBlbGVt
ZW50ID0gZG9jdW1lbnQuZG9jdW1lbnROYW1lZEl0ZW0oKmF0b21pY1Byb3BlcnR5TmFtZSk7CiAg
ICAgaWYgKFVOTElLRUxZKGVsZW1lbnQtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkpIHsKICAgICAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRvSFRNTElGcmFtZUVsZW1lbnQoZWxlbWVudCktPmNvbnRl
bnRGcmFtZSgpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMs
IGZyYW1lKSk7CisgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBmcmFtZSk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9i
amVjdCgpLCBlbGVtZW50KSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFs
T2JqZWN0KCksIGVsZW1lbnQpOwogfQogCiAvLyBDdXN0b20gYXR0cmlidXRlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtQ29udHJv
bHNDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCBmYzQxZWI2MWEwYzRkOTEwMWNhOTZmYjFlZTAy
NTk0YmVhNjAzZWY3Li45MDA4NzY1ZGI2MWM1YmY1MDdiNjEzNzY3YTZlYzAwMjhkZGQ5MDY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtNTcsMTAgKzU3LDEwIEBAIGJv
b2wgSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNT
dGF0ZSosIEhUTUxGb3JtQ29udHJvCiAgICAgcmV0dXJuIGNvbGxlY3Rpb24tPmhhc05hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6bmFtZUdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTVmFsdWUgSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbiog
dGhpc09iaiA9IGpzQ2FzdDxKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uKj4oSlNWYWx1ZTo6
ZGVjb2RlKHNsb3RCYXNlKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnZXROYW1lZEl0
ZW1zKGV4ZWMsIHRoaXNPYmosIHByb3BlcnR5TmFtZSkpOworICAgIEpTSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywg
dGhpc09iaiwgcHJvcGVydHlOYW1lKTsKIH0KIAogSlNWYWx1ZSBKU0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uOjpuYW1lZEl0ZW0oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDQx
Njg4NzI2MWJkZDY2OTAwZmNhNDAzYmVhNjYwODY4ZGYzYzIyYTAuLjMwMmY4ODMyYjY1NTc3MmYz
MjhmZTI4NTVkYTM4MGYzZjBmMDVlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAKQEAgLTQyLDIxICs0MiwyMSBA
QCBib29sIEpTSFRNTEZvcm1FbGVtZW50OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwg
SFRNTEZvcm1FbGVtZW50KiBmb3JtLCBQcgogICAgIHJldHVybiBmb3JtLT5oYXNOYW1lZEVsZW1l
bnQocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTSFRNTEZvcm1FbGVtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKQorSlNWYWx1ZSBKU0hUTUxGb3JtRWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7
Ci0gICAgSlNIVE1MRm9ybUVsZW1lbnQqIGpzRm9ybSA9IGpzQ2FzdDxKU0hUTUxGb3JtRWxlbWVu
dCo+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpOworICAgIEpTSFRNTEZvcm1FbGVtZW50KiBq
c0Zvcm0gPSBqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdChzbG90QmFzZSkpOwog
ICAgIEhUTUxGb3JtRWxlbWVudCYgZm9ybSA9IGpzRm9ybS0+aW1wbCgpOwogCiAgICAgVmVjdG9y
PFJlZjxFbGVtZW50Pj4gbmFtZWRJdGVtczsKICAgICBmb3JtLmdldE5hbWVkRWxlbWVudHMocHJv
cGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSwgbmFtZWRJdGVtcyk7CiAgICAg
CiAgICAgaWYgKG5hbWVkSXRlbXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAg
ICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0b0pTKGV4ZWMsIGpzRm9ybS0+Z2xvYmFsT2JqZWN0KCksICZuYW1lZEl0ZW1zWzBdLmdl
dCgpKSk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGpzRm9ybS0+Z2xvYmFsT2JqZWN0KCks
ICZuYW1lZEl0ZW1zWzBdLmdldCgpKTsKIAogICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjaWZpZXMg
dGhhdCB0aGlzIHNob3VsZCBiZSBhIFJhZGlvTm9kZUxpc3QuCi0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh0b0pTKGV4ZWMsIGpzRm9ybS0+Z2xvYmFsT2JqZWN0KCksIFN0YXRpY0VsZW1lbnRM
aXN0OjphZG9wdChuYW1lZEl0ZW1zKS5nZXQoKSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGpz
Rm9ybS0+Z2xvYmFsT2JqZWN0KCksIFN0YXRpY0VsZW1lbnRMaXN0OjphZG9wdChuYW1lZEl0ZW1z
KS5nZXQoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDZkZjYxZDFjMTY3OTQ5
ZDUzMDYwYmNhMDBlMGNmMjMwZjE3NTRiZjIuLmY4OWM4NWJlMjFiMzg0YWJhYjMwMDlkNTUyODhh
YmQ5NWIwMDk3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDcsMTUgKzQ3LDE1IEBAIGJv
b2wgSlNIVE1MRnJhbWVTZXRFbGVtZW50OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwg
SFRNTEZyYW1lU2V0RWxlbWVudCoKICAgICByZXR1cm4gZnJhbWUgJiYgZnJhbWUtPmhhc1RhZ05h
bWUoZnJhbWVUYWcpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0hUTUxGcmFtZVNldEVsZW1lbnQ6
Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIEpTSFRNTEZy
YW1lU2V0RWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJh
c2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSFRNTEVsZW1lbnQmIGVsZW1l
bnQgPSBqc0Nhc3Q8SlNIVE1MRWxlbWVudCo+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpLT5p
bXBsKCk7CisgICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBqc0Nhc3Q8SlNIVE1MRWxlbWVudCo+
KGFzT2JqZWN0KHNsb3RCYXNlKSktPmltcGwoKTsKICAgICBOb2RlKiBmcmFtZUVsZW1lbnQgPSBl
bGVtZW50LmNoaWxkcmVuKCktPm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9IVE1MRnJhbWVF
bGVtZW50KGZyYW1lRWxlbWVudCktPmNvbnRlbnREb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChK
U0RPTVdpbmRvd1NoZWxsKiB3aW5kb3cgPSB0b0pTRE9NV2luZG93U2hlbGwoZG9jdW1lbnQtPmZy
YW1lKCksIGN1cnJlbnRXb3JsZChleGVjKSkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHdpbmRvdyk7CisgICAgICAgICAgICByZXR1cm4gd2luZG93OwogICAgIH0KLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcAppbmRleCAwOWIxMmEyOWQ2NDM1ZDNlMzgx
MTEzNTJiNzgyNmI5NTM2NDVhNzBjLi41ZWE2YjM4MzA3MDBiNDNmZDlhN2FkOGMyZmY4ZWZiZGE1
YWVkNDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3Rv
bS5jcHAKQEAgLTM4LDE5ICszOCwxOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljQmFj
a0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorc3RhdGljIEpTVmFsdWUgbm9uQ2Fj
aGluZ1N0YXRpY0JhY2tGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LCAwLCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBqc0hpc3RvcnlQcm90b3R5cGVGdW5jdGlv
bkJhY2spKTsKKyAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgMCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwganNI
aXN0b3J5UHJvdG90eXBlRnVuY3Rpb25CYWNrKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IG5vbkNhY2hpbmdTdGF0aWNGb3J3YXJkRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
CitzdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRm9yd2FyZEZ1bmN0aW9uR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIDAsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCks
IGpzSGlzdG9yeVByb3RvdHlwZUZ1bmN0aW9uRm9yd2FyZCkpOworICAgIHJldHVybiBKU0Z1bmN0
aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAwLCBw
cm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBqc0hpc3RvcnlQcm90b3R5cGVGdW5jdGlvbkZvcndh
cmQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0dvRnVuY3Rp
b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitzdGF0aWMgSlNWYWx1ZSBub25DYWNoaW5nU3Rh
dGljR29GdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Z1bmN0aW9u
OjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAxLCBwcm9w
ZXJ0eU5hbWUucHVibGljTmFtZSgpLCBqc0hpc3RvcnlQcm90b3R5cGVGdW5jdGlvbkdvKSk7Cisg
ICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCksIDEsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIGpzSGlzdG9yeVByb3Rv
dHlwZUZ1bmN0aW9uR28pOwogfQogCiBib29sIEpTSGlzdG9yeTo6Z2V0T3duUHJvcGVydHlTbG90
RGVsZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcAppbmRleCA5NTM1NDZlNTkwNjhmNmJh
MmQ1NDljOGZmYmYwOWYyMWNlYjY1YTIwLi42NWUwOTJhODgzZDI2YzkxZDFjMzU5NzE3ZDU1ZDY0
MDZmMjcyOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFT
Y3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAKQEAgLTEwNiwxNyArMTA2LDE3IEBAIEpT
VmFsdWUgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lOjpzY29wZVR5cGUoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgaWYgKCFmb3VuZExvY2FsU2NvcGUpIHsKICAgICAgICAgICAgICAgICAvLyBG
aXJzdCBhY3RpdmF0aW9uIG9iamVjdCBpcyBsb2NhbCBzY29wZSwgZWFjaCBzdWNjZXNzaXZlIGFj
dGl2YXRpb24gb2JqZWN0IGlzIGNsb3N1cmUuCiAgICAgICAgICAgICAgICAgaWYgKCFpbmRleCkK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZShqc0phdmFTY3JpcHRD
YWxsRnJhbWVMT0NBTF9TQ09QRShleGVjLCBFbmNvZGVkSlNWYWx1ZSgpLCBFbmNvZGVkSlNWYWx1
ZSgpLCBJZGVudGlmaWVyKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzSmF2YVNj
cmlwdENhbGxGcmFtZUxPQ0FMX1NDT1BFKGV4ZWMsIEpTVmFsdWUoKSwgSWRlbnRpZmllcigpKTsK
ICAgICAgICAgICAgICAgICBmb3VuZExvY2FsU2NvcGUgPSB0cnVlOwogICAgICAgICAgICAgfSBl
bHNlIGlmICghaW5kZXgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZShq
c0phdmFTY3JpcHRDYWxsRnJhbWVDTE9TVVJFX1NDT1BFKGV4ZWMsIEVuY29kZWRKU1ZhbHVlKCks
IEVuY29kZWRKU1ZhbHVlKCksIElkZW50aWZpZXIoKSkpOworICAgICAgICAgICAgICAgIHJldHVy
biBqc0phdmFTY3JpcHRDYWxsRnJhbWVDTE9TVVJFX1NDT1BFKGV4ZWMsIEpTVmFsdWUoKSwgSWRl
bnRpZmllcigpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghaW5kZXgpIHsKICAgICAgICAg
ICAgIC8vIExhc3QgaW4gdGhlIGNoYWluIGlzIGdsb2JhbCBzY29wZS4KICAgICAgICAgICAgIGlm
ICgrK2l0ZXIgPT0gZW5kKQotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUo
anNKYXZhU2NyaXB0Q2FsbEZyYW1lR0xPQkFMX1NDT1BFKGV4ZWMsIEVuY29kZWRKU1ZhbHVlKCks
IEVuY29kZWRKU1ZhbHVlKCksIElkZW50aWZpZXIoKSkpOwotICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmRlY29kZShqc0phdmFTY3JpcHRDYWxsRnJhbWVXSVRIX1NDT1BFKGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlKCksIEVuY29kZWRKU1ZhbHVlKCksIElkZW50aWZpZXIoKSkpOworICAgICAgICAg
ICAgICAgIHJldHVybiBqc0phdmFTY3JpcHRDYWxsRnJhbWVHTE9CQUxfU0NPUEUoZXhlYywgSlNW
YWx1ZSgpLCBJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgcmV0dXJuIGpzSmF2YVNjcmlwdENh
bGxGcmFtZVdJVEhfU0NPUEUoZXhlYywgSlNWYWx1ZSgpLCBJZGVudGlmaWVyKCkpOwogICAgICAg
ICB9CiAKICAgICAgICAgLS1pbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggYzk5ZjkwNGQ4MDYyNzJkNDJjNDU2YTc2NTY0NGM5
YzVkYWI3YzUwZi4uNWI0YWQyNjlkMzk5NjE5YjA3ZDY0YjI4NjI5ZDQzNjc3MmY3ZGU0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAg
LTMwLDE5ICszMCwxOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljUmVwbGFjZUZ1bmN0
aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorc3RhdGljIEpTVmFsdWUgbm9uQ2FjaGluZ1N0
YXRpY1JlcGxhY2VGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Z1
bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAx
LCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBqc0xvY2F0aW9uUHJvdG90eXBlRnVuY3Rpb25S
ZXBsYWNlKSk7CisgICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIDEsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIGpz
TG9jYXRpb25Qcm90b3R5cGVGdW5jdGlvblJlcGxhY2UpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgbm9uQ2FjaGluZ1N0YXRpY1JlbG9hZEZ1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKQorc3RhdGljIEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY1JlbG9hZEZ1bmN0aW9uR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgp
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIDAsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1l
KCksIGpzTG9jYXRpb25Qcm90b3R5cGVGdW5jdGlvblJlbG9hZCkpOworICAgIHJldHVybiBKU0Z1
bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAw
LCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBqc0xvY2F0aW9uUHJvdG90eXBlRnVuY3Rpb25S
ZWxvYWQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Fzc2ln
bkZ1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorc3RhdGljIEpTVmFsdWUgbm9uQ2Fj
aGluZ1N0YXRpY0Fzc2lnbkZ1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIDEsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIGpzTG9jYXRpb25Qcm90b3R5cGVGdW5j
dGlvbkFzc2lnbikpOworICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAxLCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgp
LCBqc0xvY2F0aW9uUHJvdG90eXBlRnVuY3Rpb25Bc3NpZ24pOwogfQogCiBib29sIEpTTG9jYXRp
b246OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCmluZGV4IDVlM2M4OThm
YmRmMGU2NzY0MzQ4NWUxMmUxN2M5YjVkZTk5ZTY1MWUuLjk0MGNlNTAzNGEwZGFjOTQ4NjE5NjU0
ZWUzMWM5OWRhYjAwMDRlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQCBib29sIEpTTmFt
ZWROb2RlTWFwOjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgTmFtZWROb2RlTWFwKiBp
bXBsLCBQcm9wZXJ0eQogICAgIHJldHVybiBpbXBsLT5nZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1l
VG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTTmFt
ZWROb2RlTWFwOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xv
dEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNWYWx1
ZSBKU05hbWVkTm9kZU1hcDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xv
dEJhc2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNOYW1lZE5vZGVNYXAq
IHRoaXNPYmogPSBqc0Nhc3Q8SlNOYW1lZE5vZGVNYXAqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdEJh
c2UpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywgdGhpc09iai0+Z2xv
YmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS5nZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9B
dG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpKTsKKyAgICBKU05hbWVkTm9kZU1hcCogdGhpc09i
aiA9IGpzQ2FzdDxKU05hbWVkTm9kZU1hcCo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgcmV0
dXJuIHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS5n
ZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCmluZGV4IDRhYTM3NDM4YzRiNTk3OWY3ODlhMGUwNzNh
YWFjYjIyMDlmMDEwMjQuLjI5ZTllODgzZDY3NDEwNzA4MjMyMmU4ZDg5M2NmMTU0NjkyMWVhN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3Bw
CkBAIC01NiwxMCArNTYsMTAgQEAgYm9vbCBKU05vZGVMaXN0OjpjYW5HZXRJdGVtc0Zvck5hbWUo
RXhlY1N0YXRlKiwgTm9kZUxpc3QqIGltcGwsIFByb3BlcnR5TmFtZSBwcm8KICAgICByZXR1cm4g
aW1wbC0+bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU05vZGVMaXN0OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKQorSlNWYWx1ZSBKU05vZGVMaXN0OjpuYW1lR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsK
LSAgICBKU05vZGVMaXN0KiB0aGlzT2JqID0ganNDYXN0PEpTTm9kZUxpc3QqPihKU1ZhbHVlOjpk
ZWNvZGUoc2xvdEJhc2UpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywg
dGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpKTsKKyAgICBKU05vZGVMaXN0KiB0
aGlzT2JqID0ganNDYXN0PEpTTm9kZUxpc3QqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIHJl
dHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCku
bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKaW5kZXggOTc4ODFjNjI3NjE1
N2Y3NDZlYmZiMjZmNTllMGNjM2ZjNjJjNjNmNi4uYWRiM2UzYTNmOTk5NzY3N2ZjMWQ4ODNlNzM1
NWViMGY4MmZkMzBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCkBAIC0xMDAsMTQgKzEwMCwxNCBAQCBKU09i
amVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1MRWxlbWVudCog
anNIVE1MRWxlbWVudCkKICAgICByZXR1cm4gaW5zdGFuY2UtPmNyZWF0ZVJ1bnRpbWVPYmplY3Qo
ZXhlYyk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9w
ZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNIVE1MRWxlbWVudCogZWxlbWVudCA9IGpzQ2FzdDxK
U0hUTUxFbGVtZW50Kj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7CisgICAgSlNIVE1MRWxl
bWVudCogZWxlbWVudCA9IGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3Qoc2xvdEJhc2Up
KTsKICAgICBKU09iamVjdCogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0KGV4ZWMs
IGVsZW1lbnQpOwogICAgIGlmICghc2NyaXB0T2JqZWN0KQotICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
ICAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNjcmlwdE9iamVjdC0+Z2V0KGV4ZWMs
IHByb3BlcnR5TmFtZSkpOworICAgIHJldHVybiBzY3JpcHRPYmplY3QtPmdldChleGVjLCBwcm9w
ZXJ0eU5hbWUpOwogfQogCiBib29sIHBsdWdpbkVsZW1lbnRDdXN0b21HZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QsIEpTSFRNTEVsZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCmluZGV4IDhhMmU5OWQ1
OTY1MDVkOWYyMzU0ODg1MzQyNmNiNDUwM2JkMTc3ZTQuLjdhZDM3ZGMzOGQ2YjJhNGFmNGJlYjAx
Zjg1NjRjM2Y0NjU5NzQ4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2Uo
SFRNTEVsZW1lbnQmKTsKICAgICBKU0M6OkpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3QoSlND
OjpFeGVjU3RhdGUqLCBKU0hUTUxFbGVtZW50Kik7CiAKLSAgICBKU0M6OkVuY29kZWRKU1ZhbHVl
IHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKKyAgICBK
U0M6OkpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlTbG90JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wgcGx1Z2lu
RWxlbWVudEN1c3RvbVB1dChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTSFRNTEVsZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIEpT
Qzo6Q2FsbFR5cGUgcGx1Z2luRWxlbWVudEdldENhbGxEYXRhKEpTSFRNTEVsZW1lbnQqLCBKU0M6
OkNhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JU
Q1N0YXRzUmVzcG9uc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
VENTdGF0c1Jlc3BvbnNlQ3VzdG9tLmNwcAppbmRleCA4MjFkYzFiMWY2MmQ1NTJhZTEyMjA3MGZk
YWZhMjkzNWZiNzZiNDc3Li5jY2RkZjBlNmYyNzlhZGM5ODUzN2JhZWI1MjVhOTQzYTYxMjk2NDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JUQ1N0YXRzUmVzcG9u
c2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDU3RhdHNS
ZXNwb25zZUN1c3RvbS5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQCBib29sIEpTUlRDU3RhdHNSZXNw
b25zZTo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIFJUQ1N0YXRzUmVzcG9uc2UqIHJl
c3BvbgogICAgIHJldHVybiByZXNwb25zZS0+Y2FuR2V0SXRlbXNGb3JOYW1lKHByb3BlcnR5TmFt
ZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU1JU
Q1N0YXRzUmVzcG9uc2U6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitK
U1ZhbHVlIEpTUlRDU3RhdHNSZXNwb25zZTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNSVENT
dGF0c1Jlc3BvbnNlKiB0aGlzT2JqID0ganNDYXN0PEpTUlRDU3RhdHNSZXNwb25zZSo+KEpTVmFs
dWU6OmRlY29kZShzbG90QmFzZSkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhl
eGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhpc09iai0+aW1wbCgpLm5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKSkpOworICAgIEpTUlRDU3Rh
dHNSZXNwb25zZSogdGhpc09iaiA9IGpzQ2FzdDxKU1JUQ1N0YXRzUmVzcG9uc2UqPihhc09iamVj
dChzbG90QmFzZSkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVj
dCgpLCB0aGlzT2JqLT5pbXBsKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5n
KHByb3BlcnR5TmFtZSkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHAKaW5kZXggZjJlMjJhM2I2
YTVlYjkyOTBjOTgzOGFjOTI0YzM0NWQ0MTkzNzBkZC4uYjI3Njk0YzFjYTgxODlkZGQ3YTc1MTNi
YTBkYTlmNGNkZDRlMzRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNTdG9yYWdlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0
b3JhZ2VDdXN0b20uY3BwCkBAIC00MiwxOCArNDIsMTggQEAgYm9vbCBKU1N0b3JhZ2U6OmNhbkdl
dEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqIGV4ZWMsIFN0b3JhZ2UqIGltcGwsIFByb3BlcnR5TmFt
ZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTU3RvcmFnZTo6bmFt
ZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTVmFsdWUgSlNTdG9yYWdlOjpu
YW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1N0b3JhZ2UqIHRoaXNPYmogPSBqc0Nhc3Q8SlNTdG9y
YWdlKj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7CisgICAgSlNTdG9yYWdlKiB0aGlzT2Jq
ID0ganNDYXN0PEpTU3RvcmFnZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgICAgIAotICAg
IEpTVmFsdWUgcHJvdG90eXBlID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSkt
PnByb3RvdHlwZSgpOworICAgIEpTVmFsdWUgcHJvdG90eXBlID0gYXNPYmplY3Qoc2xvdEJhc2Up
LT5wcm90b3R5cGUoKTsKICAgICBpZiAocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
cHJvdG90eXBlKS0+aGFzUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdChwcm90b3R5cGUpLT5nZXQoZXhlYywgcHJvcGVy
dHlOYW1lKSk7CisgICAgICAgIHJldHVybiBhc09iamVjdChwcm90b3R5cGUpLT5nZXQoZXhlYywg
cHJvcGVydHlOYW1lKTsKICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGpzU3RyaW5nT3JOdWxsKGV4ZWMsIHRoaXNPYmotPmltcGwoKS5nZXRJdGVtKHBy
b3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIGVjKSk7CiAgICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBKU1N0b3JhZ2U6OmRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9t
LmNwcAppbmRleCBhNWI0ZWVmODUxODc3ZWU5ZGFhNjc5OTNhZTAwNmY4ZTBkNzYxM2M1Li45YWM0
ZTExODQ1YTMwMTZiMDZmZGQwMWY0MDQ1NDliN2JkNDAwNmNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcApAQCAtNDAs
MTIgKzQwLDEyIEBAIGJvb2wgSlNTdHlsZVNoZWV0TGlzdDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4
ZWNTdGF0ZSosIFN0eWxlU2hlZXRMaXN0KiBzdHlsZVNoZWV0CiAgICAgcmV0dXJuIHN0eWxlU2hl
ZXRMaXN0LT5nZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTU3R5bGVTaGVldExpc3Q6Om5hbWVHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIEpTU3R5bGVTaGVldExpc3Q6Om5hbWVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKQogewotICAgIEpTU3R5bGVTaGVldExpc3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNTdHls
ZVNoZWV0TGlzdCo+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpOworICAgIEpTU3R5bGVTaGVl
dExpc3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNTdHlsZVNoZWV0TGlzdCo+KGFzT2JqZWN0KHNsb3RC
YXNlKSk7CiAgICAgSFRNTFN0eWxlRWxlbWVudCogZWxlbWVudCA9IHRoaXNPYmotPmltcGwoKS5n
ZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgQVNT
RVJUKGVsZW1lbnQpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCB0aGlz
T2JqLT5nbG9iYWxPYmplY3QoKSwgZWxlbWVudC0+c2hlZXQoKSkpOworICAgIHJldHVybiB0b0pT
KGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBlbGVtZW50LT5zaGVldCgpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhZjA0NDJhYzViYjg0YzQ5M2I1M2M3NDJk
MjAzNzFjNDU4Nzk2NjkwLi5kNmJmZTg1MWUxYjdkNzUzZmQzNWZlMjU5ZjMwM2U4NGYxMzE5NmFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtODkzLDcgKzg5Myw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBp
ZiAoJGhhc051bWVyaWNJbmRleGVkR2V0dGVyKSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSBnZXRCeUluZGV4KEpTQzo6RXhlY1N0YXRlKiwgdW5z
aWduZWQgaW5kZXgpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIGluZGV4R2V0dGVy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgdW5zaWduZWQpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgaW5kZXhHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIHVuc2lnbmVkKTtcbiIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC05MDUsNyArOTA1
LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKCRuYW1lZEdldHRlckZ1bmN0aW9uIHx8
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9KSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcml2YXRlOlxuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgY2FuR2V0SXRlbXNGb3JOYW1lKEpT
Qzo6RXhlY1N0YXRlKiwgJGludGVyZmFjZU5hbWUqLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsK
LSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBuYW1lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBuYW1lR2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKICAgICB9
CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CkBAIC0xMDQxLDcgKzEwNDEs
NyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmlu
ZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lmICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBt
eSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNz
TmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlND
OjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgJHtnZXR0ZXJ9KEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKICAg
ICAgICAgICAgIGlmICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewogICAgICAgICAgICAgICAg
IG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xh
c3NOYW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAidm9pZCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpK
U1ZhbHVlKTtcbiIpOwpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgICAgIAogICAgICAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJO
b0ludGVyZmFjZU9iamVjdCJ9KSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRp
bnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSAk
e2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTtcbiIpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJSZXBsYWNlYWJsZUNvbnN0cnVjdG9yIn0pIHsKQEAgLTEwNjYsNyArMTA2Niw3
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5n
ID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGNvbnN0YW50KTsK
ICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmlu
Z31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAi
anMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY29uc3Rh
bnQtPm5hbWUpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2Rl
ZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7
CiAgICAgICAgIH0KICAgICB9CkBAIC0xODc1LDExICsxODc1LDExIEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAk
e2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFs
U3RyaW5nOwogCi0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNW
YWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogCiAgICAgICAgICAgICAgICAgaWYg
KCEkYXR0cmlidXRlLT5pc1N0YXRpYyB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4g
L0NvbnN0cnVjdG9yJC8pIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDwkY2xhc3NOYW1l
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0ganNDYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5V
U0VEX1BBUkFNKHNsb3RCYXNlKTtcbiIpOwogICAgICAgICAgICAgICAgIH0KQEAgLTE4OTAsMTYg
KzE4OTAsMTYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIG15ICRlbmFibGVfZnVuY3Rpb24gPSBHZXRSdW50aW1lRW5h
YmxlRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoISR7ZW5hYmxlX2Z1bmN0aW9ufSgp
KVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkVuYWJsZWRCeVNldHRpbmcifSkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZyYW1lLmgiKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTZXR0aW5ncy5oIik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBteSAkZW5hYmxlX2Z1bmN0aW9uID0gVG9NZXRob2ROYW1lKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkVuYWJsZWRCeVNldHRp
bmcifSkgLiAiRW5hYmxlZCI7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoIWNhc3RlZFRoaXMtPmltcGwoKS5mcmFtZSgpKVxuIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBTZXR0aW5ncyYg
c2V0dGluZ3MgPSBjYXN0ZWRUaGlzLT5pbXBsKCkuZnJhbWUoKS0+c2V0dGluZ3MoKTtcbiIpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFzZXR0
aW5ncy4kZW5hYmxlX2Z1bmN0aW9uKCkpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIH0KIApAQCAtMTkxMSwxNSArMTkxMSwxNSBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAhJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja1NlY3VyaXR5In0gJiYKICAgICAg
ICAgICAgICAgICAgICAgISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyIn0pIHsKICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93
QWNjZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpKSlcbiIpOwotICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7XG4iKTsKICAgICAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoSGFzQ3VzdG9tR2V0dGVyKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSkgewotICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRo
aXMtPiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKGV4ZWMpKTtcbiIpOworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY2FzdGVkVGhpcy0+JGltcGxHZXR0
ZXJGdW5jdGlvbk5hbWUoZXhlYyk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5Rm9y
Tm9kZSJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NQmluZGlu
Zy5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
aW50ZXJmYWNlTmFtZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTtcbiIpOwotICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHNob3VsZEFsbG93QWNjZXNzVG9Ob2RlKGV4ZWMsIGltcGwuIiAuICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZSAuICIoKSkgPyAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZSwgMCwgJGludGVyZmFjZU5hbWUsICJpbXBsLiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCki
LCAiY2FzdGVkVGhpcyIpIC4gIiA6IGpzTnVsbCgpKTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gc2hvdWxkQWxsb3dBY2Nlc3NUb05vZGUo
ZXhlYywgaW1wbC4iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIC4gIigpKSA/ICIgLiBO
YXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAwLCAkaW50ZXJmYWNlTmFtZSwg
ImltcGwuJGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoKSIsICJjYXN0ZWRUaGlzIikgLiAiIDoganNO
dWxsKCk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2lmICgkdHlwZSBlcSAiRXZlbnRMaXN0
ZW5lciIpIHsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siRXZlbnRMaXN0ZW5l
ci5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBV
TlVTRURfUEFSQU0oZXhlYyk7XG4iKTsKQEAgLTE5MzEsMTAgKzE5MzEsMTAgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgaWYgKEpTT2Jq
ZWN0KiBqc0Z1bmN0aW9uID0ganNMaXN0ZW5lci0+anNGdW5jdGlvbihpbXBsLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkpXG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzRnVuY3Rpb24pO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICAgICAgICAgIHJldHVybiBqc0Z1bmN0aW9uO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB9XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7Ci0gICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdWxsKCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHJldHVybiBqc051bGwoKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLykgewogICAgICAgICAgICAg
ICAgICAgICBteSAkY29uc3RydWN0b3JUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBl
OwogICAgICAgICAgICAgICAgICAgICAkY29uc3RydWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3Ik
Ly87CkBAIC0xOTQzLDEwICsxOTQzLDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikgewog
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJG5hbWVkID0gKCRjb25zdHJ1Y3RvclR5cGUgPX4g
L05hbWVkJC8pID8gIk5hbWVkIiA6ICIiOwogICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnN0
cnVjdG9yVHlwZSA9fiBzL05hbWVkJC8vOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKUyIgLiAkY29uc3RydWN0
b3JUeXBlIC4gIjo6Z2V0JHtuYW1lZH1Db25zdHJ1Y3RvcihleGVjLT52bSgpLCBjYXN0ZWRUaGlz
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIjo6Z2V0JHtuYW1lZH1Db25zdHJ1Y3Rv
cihleGVjLT52bSgpLCBjYXN0ZWRUaGlzKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMiIC4gJGNv
bnN0cnVjdG9yVHlwZSAuICIuaCIsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkNvbmRpdGlvbmFsIn0pOwotICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTIiAuICRjb25zdHJ1Y3Rv
clR5cGUgLiAiOjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIjo6Z2V0Q29uc3RydWN0b3Io
ZXhlYy0+dm0oKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2lmICghJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2V0dGVyUmFpc2VzRXhjZXB0aW9uIn0pIHsKICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpO1xuIikgaWYgISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNhbGxXaXRoIn07CkBAIC0xOTU3LDEwICsxOTU3LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAkY2FjaGVJbmRleCA9ICRjdXJyZW50Q2Fj
aGVkQXR0cmlidXRlOwogICAgICAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnRDYWNoZWRBdHRy
aWJ1dGUrKzsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gY2FzdGVkVGhpcy0+bV8iIC4gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5uYW1lIC4gIi5nZXQoKSlcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FjaGVk
VmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgcmV0dXJuIGNhY2hlZFZhbHVlO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgICAgICBteSBAY2FsbFdpdGhBcmdzID0gR2VuZXJhdGVDYWxsV2l0
aCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9
LCBcQGltcGxDb250ZW50LCAiSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpIik7CisgICAg
ICAgICAgICAgICAgICAgIG15IEBjYWxsV2l0aEFyZ3MgPSBHZW5lcmF0ZUNhbGxXaXRoKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0sIFxAaW1w
bENvbnRlbnQsICJqc1VuZGVmaW5lZCgpIik7CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKCRz
dmdMaXN0UHJvcGVydHlUeXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBKU1ZhbHVlIHJlc3VsdCA9ICAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGludGVyZmFjZU5hbWUsICJjYXN0ZWRUaGlzLT5pbXBsKCku
JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoIiAuIChqb2luICIsICIsIEBjYWxsV2l0aEFyZ3MpIC4g
IikiLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIpOwpAQCAtMTk5OCwxMiArMTk5OCwxMiBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGlz
TnVsbGFibGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBpZiAoaXNOdWxsKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiBqc051bGwoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgY2FzdGVkVGhpcy0+bV8iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1l
IC4gIi5zZXQoZXhlYy0+dm0oKSwgY2FzdGVkVGhpcywgcmVzdWx0KTtcbiIpIGlmICgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNoZWRBdHRyaWJ1dGUifSk7
Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gcmVzdWx0O1xuIik7CiAKICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICBteSBAYXJndW1lbnRzID0gKCJlYyIpOwpAQCAtMjAx
NCw3ICsyMDE0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgImlzTnVsbCIpOwogICAgICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCBHZW5lcmF0
ZUNhbGxXaXRoKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNh
bGxXaXRoIn0sIFxAaW1wbENvbnRlbnQsICJKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSki
KSk7CisgICAgICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgR2VuZXJhdGVDYWxs
V2l0aCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0
aCJ9LCBcQGltcGxDb250ZW50LCAianNVbmRlZmluZWQoKSIpKTsKIAogICAgICAgICAgICAgICAg
ICAgICBpZiAoJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkc3ZnUHJvcGVydHlPckxpc3RQcm9w
ZXJ0eVR5cGUgaW1wbCgqY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOwpAQCAtMjAyNiwxMSArMjAy
NiwxMSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAgICAgICAg
IGlmICgkaXNOdWxsYWJsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKGlzTnVsbClcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIGpzTnVsbCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgZWMpO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gcmVzdWx0O1xuIik7CiAgICAgICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwpA
QCAtMjA0MywxNiArMjA0MywxNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgaWYgKCEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9JbnRlcmZhY2VP
YmplY3QifSkgewogICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9
ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlv
bk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIkpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDwkY2xhc3NO
YW1lKj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IGpzQ2FzdDwk
Y2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTtcbiIpOwogCiAgICAgICAgICAgICAgICAg
aWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0pIHsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFCaW5kaW5n
U2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywgZG9tT2JqZWN0LT5p
bXBsKCkpKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTtcbiIpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoJHtjbGFzc05hbWV9OjpnZXRD
b25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7XG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gJHtjbGFzc05h
bWV9OjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgp
KTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjM4NCw5ICsyMzg0LDkgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7XG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KHRoaXNWYWx1ZSk7XG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0ZWRUaGlzKVxuIik7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghdGhpc1Zh
bHVlLmluaGVyaXRzKCR7Y2xhc3NOYW1lfTo6aW5mbygpKSlcbiIpOwogICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IGpzQ2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3QodGhp
c1ZhbHVlKSk7XG4iKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMs
ICR7Y2xhc3NOYW1lfTo6aW5mbygpKTtcbiIpOwpAQCAtMjQ4NCwxMyArMjQ4NCwxMyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAjIEZJ
WE1FOiB0aGlzIGNhc3RzIGludG8gaW50IHRvIG1hdGNoIG91ciBwcmV2aW91cyBiZWhhdmlvciB3
aGljaCB0dXJuZWQgMHhGRkZGRkZGRiBpbiAtMSBmb3IgTm9kZUZpbHRlci5TSE9XX0FMTAotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7Z2V0dGVy
fShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIGlmICgkY29uc3RhbnQt
PnR5cGUgZXEgIkRPTVN0cmluZyIpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nT3JOdWxsKGV4ZWMsIFN0cmlu
ZygiIC4gJGNvbnN0YW50LT52YWx1ZSAuICIpKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4ganNTdHJpbmdPck51bGwoZXhlYywgU3RyaW5nKCIg
LiAkY29uc3RhbnQtPnZhbHVlIC4gIikpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShleGVjKTtc
biIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50PigiIC4gJGNvbnN0YW50LT52YWx1
ZSAuICIpKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4ganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50PigiIC4gJGNvbnN0YW50LT52YWx1ZSAuICIp
KTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRj
b25kaXRpb25hbDsKQEAgLTI0OTgsMTUgKzI0OTgsMTUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICB9CiAKICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbiAmJiAhJGhhc051
bWVyaWNJbmRleGVkR2V0dGVyKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5FbmNv
ZGVkSlNWYWx1ZSAke2NsYXNzTmFtZX06OmluZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCB1bnNpZ25lZCBpbmRleClcbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuSlNWYWx1ZSAke2NsYXNzTmFtZX06Omlu
ZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgdW5zaWduZWQgaW5k
ZXgpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqID0ganNDYXN0PCRjbGFz
c05hbWUqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdEJhc2UpKTtcbiIpOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmogPSBqc0Nhc3Q8JGNsYXNzTmFt
ZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBpbmZvKCkpO1xuIik7CiAg
ICAgICAgIGlmICgkaW5kZXhlZEdldHRlckZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgIkRP
TVN0cmluZyIpIHsKICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlVSTC5oIn0gPSAxOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1N0cmluZ09yVW5kZWZpbmVkKGV4ZWMsIHRoaXNPYmotPmltcGwoKS5pdGVtKGluZGV4KSkpO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4ganNTdHJpbmdP
clVuZGVmaW5lZChleGVjLCB0aGlzT2JqLT5pbXBsKCkuaXRlbShpbmRleCkpO1xuIik7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIHRoaXNP
YmotPmltcGwoKS5pdGVtKGluZGV4KSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhp
c09iai0+aW1wbCgpLml0ZW0oaW5kZXgpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lID1+IC9e
SFRNTFx3KkNvbGxlY3Rpb24kLyBvciAkaW50ZXJmYWNlTmFtZSBlcSAiUmFkaW9Ob2RlTGlzdCIp
IHsKQEAgLTI1MzcsMTAgKzI1MzcsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICByZXR1cm4gY29sbGVjdGlvbi0+aGFzTmFtZWRJdGVtKHByb3BlcnR5
TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IkVuY29kZWRKU1ZhbHVlICR7Y2xhc3NOYW1lfTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVl
ICR7Y2xhc3NOYW1lfTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJh
c2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
e2NsYXNzTmFtZX0qIHRoaXNPYmogPSBqc0Nhc3Q8JGNsYXNzTmFtZSo+KEpTVmFsdWU6OmRlY29k
ZShzbG90QmFzZSkpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywgdGhpc09iai0+Z2xvYmFsT2JqZWN0KCks
IHRoaXNPYmotPmltcGwoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJv
cGVydHlOYW1lKSkpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JHtjbGFzc05hbWV9KiB0aGlzT2JqID0ganNDYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90
QmFzZSkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
dG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhpc09iai0+aW1wbCgpLm5hbWVk
SXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKSk7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICAgICAgfQogICAgIH0K
QEAgLTI3MzEsNyArMjczMSw3IEBAIEVORAogICAgIGlmICgoISRoYXNQYXJlbnQgb3IgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSBh
bmQgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbVRvTmF0aXZlT2Jq
ZWN0In0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIkaW1wbFR5cGUqIHRvJHtpbnRl
cmZhY2VOYW1lfShKU0M6OkpTVmFsdWUgdmFsdWUpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHZh
bHVlLmluaGVyaXRzKCR7Y2xhc3NOYW1lfTo6aW5mbygpKSA/ICZqc0Nhc3Q8JGNsYXNzTmFtZSo+
KHZhbHVlKS0+aW1wbCgpIDogMCIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gdmFsdWUuaW5oZXJpdHMoJHtjbGFzc05hbWV9OjppbmZvKCkpID8gJmpzQ2FzdDwkY2xh
c3NOYW1lKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogMCIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIjtcbn1cbiIpOwogICAgIH0KIApAQCAtMjg3MSw3ICsyODcxLDcgQEAgc3Vi
IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKICAg
ICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgewogICAgICAgICAgICAgICAg
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ2FsbGJhY2tGdW5jdGlvbi5oIik7Ci0gICAgICAgICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUgPSBjcmVhdGVGdW5j
dGlvbk9ubHlDYWxsYmFjazwke2NhbGxiYWNrQ2xhc3NOYW1lfT4oZXhlYywganNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFj
azwke2NhbGxiYWNrQ2xhc3NOYW1lfT4oZXhlYywgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgkYXJnc0luZGV4KSk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lID0gJHtjYWxsYmFj
a0NsYXNzTmFtZX06OmNyZWF0ZShhc09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgkYXJn
c0luZGV4KSksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICAgICAg
ICAgIH0KQEAgLTI4ODEsNyArMjg4MSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawog
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKICAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5p
c1N0YXRpYykgewogICAgICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ2FsbGJh
Y2tGdW5jdGlvbi5oIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBSZWZQdHI8JGFyZ1R5cGU+ICRuYW1lID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2FsbGJhY2s8
JHtjYWxsYmFja0NsYXNzTmFtZX0+KGV4ZWMsIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KCRhcmdz
SW5kZXgpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgUmVmUHRyPCRhcmdUeXBlPiAkbmFtZSA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPCR7
Y2FsbGJhY2tDbGFzc05hbWV9PihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KCRh
cmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8JGFyZ1R5cGU+ICRuYW1lID0g
JHtjYWxsYmFja0NsYXNzTmFtZX06OmNyZWF0ZShhc09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgkYXJnc0luZGV4KSksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAg
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRl
eCBjODM0ZDdjMzMzNjZlZDZjOGMyYTk0YjU3ZDM1NDRhMGIyYzA2M2Q4Li5mZDBkYmI4NDIzODc5
MGJiZGU0NjdhNTNjNDRhMTA1ZmNkZjM1NmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwCkBAIC02MCwxNiArNjAsMTYgQEAgdm9pZCBSdW50aW1lQXJyYXk6OmRlc3Ry
b3koSlNDZWxsKiBjZWxsKQogICAgIHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpLT5S
dW50aW1lQXJyYXk6On5SdW50aW1lQXJyYXkoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGlt
ZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVu
Z3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsK
LSAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cih0aGlzT2JqLT5nZXRMZW5ndGgoKSkpOworICAgIFJ1bnRpbWVBcnJheSogdGhpc09iaiA9IHN0
YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgcmV0dXJu
IGpzTnVtYmVyKHRoaXNPYmotPmdldExlbmd0aCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVu
dGltZUFycmF5OjppbmRleEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgdW5zaWduZWQgaW5kZXgpCitKU1ZhbHVlIFJ1bnRpbWVB
cnJheTo6aW5kZXhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCB1bnNp
Z25lZCBpbmRleCkKIHsKLSAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGlt
ZUFycmF5Kj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh0aGlzT2JqLT5nZXRDb25jcmV0ZUFycmF5KCktPnZhbHVlQXQoZXhlYywgaW5kZXgp
KTsKKyAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxSdW50aW1lQXJyYXkq
Pihhc09iamVjdChzbG90QmFzZSkpOworICAgIHJldHVybiB0aGlzT2JqLT5nZXRDb25jcmV0ZUFy
cmF5KCktPnZhbHVlQXQoZXhlYywgaW5kZXgpOwogfQogCiB2b2lkIFJ1bnRpbWVBcnJheTo6Z2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IDVlMDFmNzNhZTA0ZTgwZThmNzk0NzY2
OThhZTE2MWEzMzMwM2RkOTQuLjc4MDBiZTU3NjVjYjJkZDFhYzFjYjlhZjAwNDgzMzQ2ZWM2MDhl
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtODQsOCArODQsOCBA
QCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgUnVudGltZUFycmF5KEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAg
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBpbmRleEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVuc2lnbmVkKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBsZW5n
dGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMg
SlNWYWx1ZSBpbmRleEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCB1bnNpZ25lZCk7CiAKICAg
ICBCaW5kaW5nc0FycmF5KiBtX2FycmF5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwCmluZGV4IGY1NTFhZDA2NmYwNTA4OTQ1MThmNTBhOTkwZGE3MTNlYzlmMGZi
MDIuLjZhZDE3NGZlZDlmYWEzMjY5ZGE2YTk1OTIwYTg2OWFkNTY2ZTBiYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNTQsMTEgKzU0LDExIEBAIHZvaWQg
UnVudGltZU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBTdHJpbmcmIGlkZW50
KQogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVu
dGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBSdW50aW1lTWV0aG9k
OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1l
KQogewotICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU1ldGhvZCo+
KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkpOworICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmog
PSBzdGF0aWNfY2FzdDxSdW50aW1lTWV0aG9kKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKIAotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iai0+bV9tZXRob2QtPm51bVBh
cmFtZXRlcnMoKSkpOworICAgIHJldHVybiBqc051bWJlcih0aGlzT2JqLT5tX21ldGhvZC0+bnVt
UGFyYW1ldGVycygpKTsKIH0KIAogYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5oCmluZGV4IGUxNDE5NjhhZWUzNTI1ZTQ5NzYwM2U4ZThhMmVhYzZjOWMxMDY3ZmYuLmZm
ZmU2MWNiMjllNmIxOGUxZGUzMjJhNTVhNzI3YmUxNWYxZmJhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByb3RlY3RlZDoKICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBKU1ZhbHVlIGxlbmd0aEdldHRlcihF
eGVjU3RhdGUqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgQmluZGluZ3M6Ok1ldGhv
ZCogbV9tZXRob2Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
aW5kZXggMzI1MjRmNDlhN2NmYTZlZWZlYTEwZTFmOTM5YTAwMDM2OWY2Y2Q3ZS4uZWY0NzlkMGZm
Mzk4NGZmYWMxMDg3ODE1ZTUyYmY5MTU5NWZmNDYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuY3BwCkBAIC02MiwxMyArNjIsMTMgQEAgdm9pZCBSdW50aW1lT2JqZWN0
OjppbnZhbGlkYXRlKCkKICAgICBtX2luc3RhbmNlID0gMDsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
UnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUpCitKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkK
IHsKLSAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihK
U1ZhbHVlOjpkZWNvZGUoc2xvdEJhc2UpKTsKKyAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0g
c3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgUmVm
UHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CiAKICAgICBpZiAo
IWluc3RhbmNlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93SW52YWxpZEFj
Y2Vzc0Vycm9yKGV4ZWMpKTsKKyAgICAgICAgcmV0dXJuIHRocm93SW52YWxpZEFjY2Vzc0Vycm9y
KGV4ZWMpOwogICAgIAogICAgIGluc3RhbmNlLT5iZWdpbigpOwogCkBAIC03NywxNiArNzcsMTYg
QEAgRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWwKIAogICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAg
ICAgICAgIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0pTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKQogeyAgICAKLSAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1
bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUoc2xvdEJhc2UpKTsKKyAgICBSdW50aW1lT2Jq
ZWN0KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGFzT2JqZWN0KHNsb3RC
YXNlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFu
Y2U7CiAKICAgICBpZiAoIWluc3RhbmNlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpKTsKKyAgICAgICAgcmV0dXJuIHRocm93SW52
YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogICAgIAogICAgIGluc3RhbmNlLT5iZWdpbigpOwogCkBA
IC05NiwxNiArOTYsMTYgQEAgRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmEKICAgICAKICAgICBpbnN0
YW5jZS0+ZW5kKCk7CiAgICAgICAgICAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9i
amVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNWYWx1ZSBS
dW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAgIFJ1bnRpbWVPYmplY3QqIHRo
aXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZShzbG90QmFzZSkp
OworICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0g
dGhpc09iai0+bV9pbnN0YW5jZTsKIAogICAgIGlmICghaW5zdGFuY2UpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYykpOworICAgICAg
ICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAgICAgCiAgICAgaW5zdGFu
Y2UtPmJlZ2luKCk7CiAKQEAgLTExMyw3ICsxMTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1l
T2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90
QgogCiAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAgCi0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShtZXRob2QpOworICAgIHJldHVybiBtZXRob2Q7CiB9CiAKIGJvb2wgUnVudGlt
ZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSAq
ZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCA5N2I1NTUwNmY3OThlYzAyMGRl
ZGI0NmFiYWFhNmZiNWJkYzc3ZWEyLi4zODVkZTM0ZjdhZmE1NTA3OTA3NDA3OTAzYjI4NjAxYjJk
ZWQ2NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNzgsOSAr
NzgsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVy
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqLCBK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4
ZWNTdGF0ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEpTVmFsdWUgbWV0
aG9kR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBSZWZQ
dHI8SW5zdGFuY2U+IG1faW5zdGFuY2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IGQ4MTZj
ZGNlODY0NGExMDA4N2U3YjAyZWY1NmZlZTAxYjk0YjAzZmUuLjRlYTYzZDEzZWRjODgyOTc3NTY3
Mjg3NGE2MzkwNjAyNzkyYjhjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKQEAgLTU5LDEzICs1OSwx
MyBAQCB2b2lkIEpTTlBNZXRob2Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5n
JiBuYW1lKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU05QTWV0aG9kKiBqc05QTWV0aG9kID0ganNDYXN0
PEpTTlBNZXRob2QqPihleGVjLT5jYWxsZWUoKSk7CisgICAgSlNOUE1ldGhvZCoganNOUE1ldGhv
ZCA9IHN0YXRpY19jYXN0PEpTTlBNZXRob2QqPihleGVjLT5jYWxsZWUoKSk7CiAKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKIAogICAgIC8vIENoZWNrIGlm
IHdlJ3JlIGNhbGxpbmcgYSBtZXRob2Qgb24gdGhlIHBsdWctaW4gc2NyaXB0IG9iamVjdC4KICAg
ICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsKLSAgICAg
ICAgSlNIVE1MRWxlbWVudCogZWxlbWVudCA9IGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmpl
Y3QodGhpc1ZhbHVlKSk7CisgICAgICAgIEpTSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNf
Y2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAKICAgICAgICAgLy8g
VHJ5IHRvIGdldCB0aGUgc2NyaXB0IG9iamVjdCBmcm9tIHRoZSBlbGVtZW50CiAgICAgICAgIGlm
IChKU09iamVjdCogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0KGV4ZWMsIGVsZW1l
bnQpKQpAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICB9CiAKICAgICBpZiAodGhpc1ZhbHVl
LmluaGVyaXRzKEpTTlBPYmplY3Q6OmluZm8oKSkpIHsKLSAgICAgICAgSlNOUE9iamVjdCoganNO
UE9iamVjdCA9IGpzQ2FzdDxKU05QT2JqZWN0Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAg
ICAgIEpTTlBPYmplY3QqIGpzTlBPYmplY3QgPSBzdGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4oYXNP
YmplY3QodGhpc1ZhbHVlKSk7CiAKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05Q
T2JqZWN0LT5jYWxsTWV0aG9kKGV4ZWMsIGpzTlBNZXRob2QtPm5wSWRlbnRpZmllcigpKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDk2NzRjYTNlOTBmMGE3ZjZiZjFjOGEyY2NmOTI3
YmM3YzU0MmEzMWEuLjQ0NDdhYjBjYjQ0YTQ1ZmE5OTM3Mjc1NDJhZTkxODY2MDM4OGQ5MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsTlBKU09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNP
YmplY3QqIG9iamVjdCA9IGV4ZWMtPmNhbGxlZSgpOwogICAgIEFTU0VSVChvYmplY3QtPmluaGVy
aXRzKEpTTlBPYmplY3Q6OmluZm8oKSkpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Nhc3Q8SlNOUE9iamVjdCo+KG9iamVjdCktPmNhbGxPYmplY3QoZXhlYykpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoc3RhdGljX2Nhc3Q8SlNOUE9iamVjdCo+KG9iamVjdCktPmNhbGxP
YmplY3QoZXhlYykpOwogfQogCiBKU0M6OkNhbGxUeXBlIEpTTlBPYmplY3Q6OmdldENhbGxEYXRh
KEpTQzo6SlNDZWxsKiBjZWxsLCBKU0M6OkNhbGxEYXRhJiBjYWxsRGF0YSkKQEAgLTI0NCw3ICsy
NDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRo
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9
IGV4ZWMtPmNhbGxlZSgpOwogICAgIEFTU0VSVChjb25zdHJ1Y3Rvci0+aW5oZXJpdHMoSlNOUE9i
amVjdDo6aW5mbygpKSk7CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQ2FzdDxKU05Q
T2JqZWN0Kj4oY29uc3RydWN0b3IpLT5jYWxsQ29uc3RydWN0b3IoZXhlYykpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoc3RhdGljX2Nhc3Q8SlNOUE9iamVjdCo+KGNvbnN0cnVjdG9yKS0+
Y2FsbENvbnN0cnVjdG9yKGV4ZWMpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBKU05QT2JqZWN0Ojpn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCogY2VsbCwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKQEAgLTQxNywxNiArNDE3LDE2IEBAIHZvaWQgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlO
YW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5CiAgICAgbnBu
TWVtRnJlZShpZGVudGlmaWVycyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6OnBy
b3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorSlNWYWx1ZSBKU05QT2Jq
ZWN0Ojpwcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNOUE9iamVjdCogdGhpc09iaiA9IGpz
Q2FzdDxKU05QT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7CisgICAgSlNOUE9i
amVjdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihhc09iamVjdChzbG90QmFz
ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iaiwgaW5mbygpKTsKICAg
ICAKICAgICBpZiAoIXRoaXNPYmotPm1fbnBPYmplY3QpCi0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYykpOworICAgICAgICByZXR1cm4g
dGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAKICAgICBpZiAoIXRoaXNPYmotPm1fbnBP
YmplY3QtPl9jbGFzcy0+Z2V0UHJvcGVydHkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAg
TlBWYXJpYW50IHJlc3VsdDsKICAgICBWT0lEX1RPX05QVkFSSUFOVChyZXN1bHQpOwpAQCAtNDQ2
LDIzICs0NDYsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmEKICAgICB9CiAKICAgICBpZiAo
IXJldHVyblZhbHVlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIEpTVmFsdWUgcHJvcGVy
dHlWYWx1ZSA9IHRoaXNPYmotPm1fb2JqZWN0TWFwLT5jb252ZXJ0TlBWYXJpYW50VG9KU1ZhbHVl
KGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCByZXN1bHQpOwogICAgIHJlbGVhc2VOUFZh
cmlhbnRWYWx1ZSgmcmVzdWx0KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3BlcnR5
VmFsdWUpOworICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitKU1Zh
bHVlIEpTTlBPYmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xv
dEJhc2UsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNOUE9iamVjdCogdGhp
c09iaiA9IGpzQ2FzdDxKU05QT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHNsb3RCYXNlKSk7Cisg
ICAgSlNOUE9iamVjdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihhc09iamVj
dChzbG90QmFzZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iaiwgaW5m
bygpKTsKICAgICAKICAgICBpZiAoIXRoaXNPYmotPm1fbnBPYmplY3QpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYykpOworICAgICAg
ICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAKICAgICBOUElkZW50aWZp
ZXIgbnBJZGVudGlmaWVyID0gbnBJZGVudGlmaWVyRnJvbUlkZW50aWZpZXIocHJvcGVydHlOYW1l
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTTlBNZXRob2Q6OmNyZWF0ZShleGVjLCB0
aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbnBJZGVu
dGlmaWVyKSk7CisgICAgcmV0dXJuIEpTTlBNZXRob2Q6OmNyZWF0ZShleGVjLCB0aGlzT2JqLT5n
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbnBJZGVudGlmaWVyKTsK
IH0KIAogSlNPYmplY3QqIEpTTlBPYmplY3Q6OnRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEV4ZWNT
dGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDI1MGQyNmIwZjBjZDNmZTg5NDJiMDhjNzYx
ZDE4NGRmNjVkMmM0YzMuLjI2ZWM0NWNmMGNlNWU5NjU3OGIzMGZhM2E4N2IyMzg4YTA1YTQyOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuaApAQCAtOTUsOCArOTUsOCBAQCBwcml2YXRlOgogCiAgICAgc3RhdGlj
IHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAg
c3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgcHJvcGVydHlHZXR0ZXIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKKyAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIG1ldGhvZEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiB0aHJv
d0ludmFsaWRBY2Nlc3NFcnJvcihKU0M6OkV4ZWNTdGF0ZSopOwogCiAgICAgTlBSdW50aW1lT2Jq
ZWN0TWFwKiBtX29iamVjdE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHAKaW5k
ZXggNTZhYTA5M2RiOGUwYTlhZTI0Y2NmMzY3M2ZlMmJjOWE1YmYyMTViMy4uYWUxOTk4NDBmNGQ1
ZTliNDdlMjU2MzVlMjM0NDhhZDQ2NDY0M2Q5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVj
dE1hcC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgTlBPYmplY3QqIE5QUnVudGltZU9iamVjdE1hcDo6
Z2V0T3JDcmVhdGVOUE9iamVjdChWTSYgdm0sIEpTT2JqZWN0KiBqc09iamVjdCkKIHsKICAgICAv
LyBJZiB0aGlzIGlzIGEgSlNOUE9iamVjdCwgd2UgY2FuIGp1c3QgZ2V0IGl0cyB1bmRlcmx5aW5n
IE5QT2JqZWN0LgogICAgIGlmIChqc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gSlNOUE9iamVjdDo6
aW5mbygpKSB7Ci0gICAgICAgIEpTTlBPYmplY3QqIGpzTlBPYmplY3QgPSBqc0Nhc3Q8SlNOUE9i
amVjdCo+KGpzT2JqZWN0KTsKKyAgICAgICAgSlNOUE9iamVjdCoganNOUE9iamVjdCA9IHN0YXRp
Y19jYXN0PEpTTlBPYmplY3QqPihqc09iamVjdCk7CiAgICAgICAgIE5QT2JqZWN0KiBucE9iamVj
dCA9IGpzTlBPYmplY3QtPm5wT2JqZWN0KCk7CiAgICAgICAgIAogICAgICAgICByZXRhaW5OUE9i
amVjdChucE9iamVjdCk7CkBAIC0zMDIsNyArMzAyLDcgQEAgdm9pZCBOUFJ1bnRpbWVPYmplY3RN
YXA6OmFkZFRvSW52YWxpZGF0aW9uUXVldWUoTlBPYmplY3QqIG5wT2JqZWN0KQogCiB2b2lkIE5Q
UnVudGltZU9iamVjdE1hcDo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNOUE9iamVjdCogb2JqZWN0ID0ganNDYXN0PEpT
TlBPYmplY3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTTlBPYmplY3QqIG9iamVj
dCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOwogICAg
IHdlYWtSZW1vdmUobV9qc05QT2JqZWN0cywgc3RhdGljX2Nhc3Q8TlBPYmplY3QqPihjb250ZXh0
KSwgb2JqZWN0KTsKICAgICBhZGRUb0ludmFsaWRhdGlvblF1ZXVlKG9iamVjdC0+bGVha05QT2Jq
ZWN0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKaW5kZXggNjRiYTVlOWM5MDM3ZGZkZGI5NjNlMDBlNzYzYTVmYjZjYzcxM2JiMi4uZmU4
OGJkNzMxMTQwY2YwOWUxYTdmZDllNDAxOTQ4ZTRhNTA5YzMwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC02NjQsNyArNjY0LDcgQEAg
U3RyaW5nIFdlYkZyYW1lOjpjb3VudGVyVmFsdWUoSlNPYmplY3RSZWYgZWxlbWVudCkKICAgICBp
ZiAoIXRvSlMoZWxlbWVudCktPmluaGVyaXRzKEpTRWxlbWVudDo6aW5mbygpKSkKICAgICAgICAg
cmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnQoJmpz
Q2FzdDxKU0VsZW1lbnQqPih0b0pTKGVsZW1lbnQpKS0+aW1wbCgpKTsKKyAgICByZXR1cm4gY291
bnRlclZhbHVlRm9yRWxlbWVudCgmc3RhdGljX2Nhc3Q8SlNFbGVtZW50Kj4odG9KUyhlbGVtZW50
KSktPmltcGwoKSk7CiB9CiAKIFN0cmluZyBXZWJGcmFtZTo6cHJvdmlzaW9uYWxVUkwoKSBjb25z
dAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>