<?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>193933</bug_id>
          
          <creation_ts>2019-01-28 16:10:12 -0800</creation_ts>
          <short_desc>Use lambdas instead of member pointer functions for TransactionOperationImpl</short_desc>
          <delta_ts>2019-01-29 08:45:24 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1499251</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-28 16:10:12 -0800</bug_when>
    <thetext>Use lambdas instead of member pointer functions for TransactionOperationImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499253</commentid>
    <comment_count>1</comment_count>
      <attachid>360396</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-28 16:11:51 -0800</bug_when>
    <thetext>Created attachment 360396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499329</commentid>
    <comment_count>2</comment_count>
      <attachid>360396</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-28 17:58:48 -0800</bug_when>
    <thetext>Comment on attachment 360396
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=360396&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:-1299
&gt; -    scheduleOperation(IDBClient::createTransactionOperation(*this, &amp;IDBTransaction::didDeleteIndexOnServer, &amp;IDBTransaction::deleteIndexOnServer, objectStoreIdentifier, indexName));

Seems so weird in all of these that the &quot;did&quot; comes after the &quot;do&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499539</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-29 08:40:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/r240658</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499540</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-29 08:40:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/47633376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499541</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-29 08:45:24 -0800</bug_when>
    <thetext>That is strange indeed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360396</attachid>
            <date>2019-01-28 16:11:51 -0800</date>
            <delta_ts>2019-01-28 17:58:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193933-20190128161151.patch</filename>
            <type>text/plain</type>
            <size>29676</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDYwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE5LTAxLTI4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIGxhbWJk
YXMgaW5zdGVhZCBvZiBtZW1iZXIgcG9pbnRlciBmdW5jdGlvbnMgZm9yIFRyYW5zYWN0aW9uT3Bl
cmF0aW9uSW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkzOTMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLiAgVGhpcyBqdXN0IG1ha2VzIGl0IGVhc2llciB0byBh
ZGQgbmV3IHBhcmFtZXRlcnMgdG8gdGhlc2UgZnVuY3Rpb25zIGluIGEgc3RyYWlnaHRmb3J3YXJk
IG1hbm5lci4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXRPckFkZCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb246OmludGVybmFsQWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb246OmNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJl
bmFtZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVh
dGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmRvUmVxdWVzdE9wZW5DdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Oml0ZXJhdGVDdXJzb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRBbGxPYmplY3RTdG9yZVJl
Y29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRBbGxJ
bmRleFJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3RH
ZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3RJbmRl
eFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6cmVxdWVzdENvdW50
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0RGVsZXRlUmVjb3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0Q2xlYXJPYmplY3RT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6cmVxdWVzdFB1dE9yQWRk
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkZWxldGVPYmplY3RTdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGVsZXRlSW5kZXgpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uOjpkb0NvbXBsZXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24pOiBEZWxl
dGVkLgorCiAyMDE5LTAxLTI4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBNYWtlIFdpbmRvdyB2aXJ0dWFsIGtleSBjb2RlIGNvbXB1dGF0aW9uIG1h
dGNoIE1hYwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmNwcAkocmV2aXNpb24gMjQwNTg5KQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTcsNyArMzU3LDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBJREJPYmplY3RTdAog
ICAgIH0gZWxzZSBpZiAoIXVzZXNLZXlHZW5lcmF0b3IgJiYgIWtleSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxlZCB0byBzdG9yZSByZWNvcmQgaW4gYW4gSURC
T2JqZWN0U3RvcmU6IFRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzIGFuZCBo
YXMgbm8ga2V5IGdlbmVyYXRvciBhbmQgdGhlIGtleSBwYXJhbWV0ZXIgd2FzIG5vdCBwcm92aWRl
ZC4iX3MgfTsKIAotICAgIHJldHVybiBtX3RyYW5zYWN0aW9uLnJlcXVlc3RQdXRPckFkZChzdGF0
ZSwgKnRoaXMsIGtleS5nZXQoKSwgKnNlcmlhbGl6ZWRWYWx1ZSwgb3ZlcndyaXRlTW9kZSk7Cisg
ICAgcmV0dXJuIG1fdHJhbnNhY3Rpb24ucmVxdWVzdFB1dE9yQWRkKHN0YXRlLCAqdGhpcywgV1RG
TW92ZShrZXkpLCAqc2VyaWFsaXplZFZhbHVlLCBvdmVyd3JpdGVNb2RlKTsKIH0KIAogRXhjZXB0
aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBJREJPYmplY3RTdG9yZTo6ZGVsZXRlRnVuY3Rpb24oRXhl
Y1N0YXRlJiBleGVjU3RhdGUsIElEQktleVJhbmdlKiBrZXlSYW5nZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAJKHJl
dmlzaW9uIDI0MDU4OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ2LDcgKzI0Niw5IEBAIHZvaWQgSURC
VHJhbnNhY3Rpb246OmludGVybmFsQWJvcnQoKQogICAgIG1fYWJvcnRRdWV1ZS5zd2FwKG1fcGVu
ZGluZ1RyYW5zYWN0aW9uT3BlcmF0aW9uUXVldWUpOwogCiAgICAgTE9HKEluZGV4ZWREQk9wZXJh
dGlvbnMsICJJREIgYWJvcnQtb24tc2VydmVyIG9wZXJhdGlvbjogVHJhbnNhY3Rpb24gJXMiLCBp
bmZvKCkuaWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBz
Y2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0
aGlzLCBudWxscHRyLCAmSURCVHJhbnNhY3Rpb246OmFib3J0T25TZXJ2ZXJBbmRDYW5jZWxSZXF1
ZXN0cykpOworICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVy
YXRpb25JbXBsOjpjcmVhdGUoKnRoaXMsIG51bGxwdHIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldIChhdXRvJiBvcGVyYXRpb24pIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+YWJv
cnRPblNlcnZlckFuZENhbmNlbFJlcXVlc3RzKG9wZXJhdGlvbik7CisgICAgfSkpOwogfQogCiB2
b2lkIElEQlRyYW5zYWN0aW9uOjphYm9ydEluUHJvZ3Jlc3NPcGVyYXRpb25zKGNvbnN0IElEQkVy
cm9yJiBlcnJvcikKQEAgLTUwMSw3ICs1MDMsOSBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpjb21t
aXQoKQogICAgIG1fZGF0YWJhc2UtPndpbGxDb21taXRUcmFuc2FjdGlvbigqdGhpcyk7CiAKICAg
ICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklEQiBjb21taXQgb3BlcmF0aW9uOiBUcmFuc2Fj
dGlvbiAlcyIsIGluZm8oKS5pZGVudGlmaWVyKCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25P
cGVyYXRpb24oKnRoaXMsIG51bGxwdHIsICZJREJUcmFuc2FjdGlvbjo6Y29tbWl0T25TZXJ2ZXIp
KTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9u
SW1wbDo6Y3JlYXRlKCp0aGlzLCBudWxscHRyLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSAoYXV0byYgb3BlcmF0aW9uKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmNvbW1pdE9u
U2VydmVyKG9wZXJhdGlvbik7CisgICAgfSkpOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpj
b21taXRPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24p
CkBAIC02NTksNyArNjYzLDExIEBAIFJlZjxJREJPYmplY3RTdG9yZT4gSURCVHJhbnNhY3Rpb246
OmNyZWEKICAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KGluZm8ubmFtZSgpLCBXVEZN
b3ZlKG9iamVjdFN0b3JlKSk7CiAKICAgICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklEQiBj
cmVhdGUgb2JqZWN0IHN0b3JlIG9wZXJhdGlvbjogJXMiLCBpbmZvLmNvbmRlbnNlZExvZ2dpbmdT
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6
OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCAmSURCVHJhbnNhY3Rpb246OmRpZENy
ZWF0ZU9iamVjdFN0b3JlT25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2JqZWN0U3Rv
cmVPblNlcnZlciwgaW5mbykpOworICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6VHJh
bnNhY3Rpb25PcGVyYXRpb25JbXBsOjpjcmVhdGUoKnRoaXMsIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIChjb25zdCBhdXRvJiByZXN1bHQpIHsKKyAgICAgICAgcHJvdGVjdGVkVGhp
cy0+ZGlkQ3JlYXRlT2JqZWN0U3RvcmVPblNlcnZlcihyZXN1bHQpOworICAgIH0sIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGluZm8gPSBpbmZvLmlzb2xhdGVkQ29weSgpXSAoYXV0
byYgb3BlcmF0aW9uKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmNyZWF0ZU9iamVjdFN0b3Jl
T25TZXJ2ZXIob3BlcmF0aW9uLCBpbmZvKTsKKyAgICB9KSk7CiAKICAgICByZXR1cm4gKnJhd09i
amVjdFN0b3JlOwogfQpAQCAtNjk3LDcgKzcwNSwxMSBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpy
ZW5hbWVPYmplY3RTdG9yZShJCiAgICAgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyID0g
b2JqZWN0U3RvcmUuaW5mbygpLmlkZW50aWZpZXIoKTsKIAogICAgIExPRyhJbmRleGVkREJPcGVy
YXRpb25zLCAiSURCIHJlbmFtZSBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uOiAlcyB0byAlcyIsIG9i
amVjdFN0b3JlLmluZm8oKS5jb25kZW5zZWRMb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
bmV3TmFtZS51dGY4KCkuZGF0YSgpKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6
OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCAmSURCVHJhbnNhY3Rpb246OmRpZFJl
bmFtZU9iamVjdFN0b3JlT25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6cmVuYW1lT2JqZWN0U3Rv
cmVPblNlcnZlciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lKSk7CisgICAgc2NoZWR1
bGVPcGVyYXRpb24oSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGw6OmNyZWF0ZSgq
dGhpcywgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKGNvbnN0IGF1dG8mIHJlc3Vs
dCkgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRSZW5hbWVPYmplY3RTdG9yZU9uU2VydmVy
KHJlc3VsdCk7CisgICAgfSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lID0gbmV3TmFtZS5pc29sYXRlZENvcHkoKV0gKGF1dG8m
IG9wZXJhdGlvbikgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yZW5hbWVPYmplY3RTdG9yZU9u
U2VydmVyKG9wZXJhdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lKTsKKyAgICB9
KSk7CiAKICAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KG5ld05hbWUsIG1fcmVmZXJl
bmNlZE9iamVjdFN0b3Jlcy50YWtlKG9iamVjdFN0b3JlLmluZm8oKS5uYW1lKCkpKTsKIH0KQEAg
LTcyOCw3ICs3NDAsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPElEQkluZGV4PiBJREJUcmFuc2FjdGlv
bgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIExPRyhJbmRleGVkREJPcGVyYXRpb25z
LCAiSURCIGNyZWF0ZSBpbmRleCBvcGVyYXRpb246ICVzIHVuZGVyIG9iamVjdCBzdG9yZSAlcyIs
IGluZm8uY29uZGVuc2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9iamVjdFN0b3Jl
LmluZm8oKS5jb25kZW5zZWRMb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgc2No
ZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhp
cywgJklEQlRyYW5zYWN0aW9uOjpkaWRDcmVhdGVJbmRleE9uU2VydmVyLCAmSURCVHJhbnNhY3Rp
b246OmNyZWF0ZUluZGV4T25TZXJ2ZXIsIGluZm8pKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJ
REJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDo6Y3JlYXRlKCp0aGlzLCBbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoY29uc3QgYXV0byYgcmVzdWx0KSB7CisgICAgICAg
IHByb3RlY3RlZFRoaXMtPmRpZENyZWF0ZUluZGV4T25TZXJ2ZXIocmVzdWx0KTsKKyAgICB9LCBb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpbmZvID0gaW5mby5pc29sYXRlZENvcHko
KV0gKGF1dG8mIG9wZXJhdGlvbikgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jcmVhdGVJbmRl
eE9uU2VydmVyKG9wZXJhdGlvbiwgaW5mbyk7CisgICAgfSkpOwogCiAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8SURCSW5kZXg+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8sIG9i
amVjdFN0b3JlKTsKIH0KQEAgLTc3OCw3ICs3OTQsMTEgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6
cmVuYW1lSW5kZXgoSURCSW5kZQogICAgIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciA9IGluZGV4
LmluZm8oKS5pZGVudGlmaWVyKCk7CiAKICAgICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklE
QiByZW5hbWUgaW5kZXggb3BlcmF0aW9uOiAlcyB0byAlcyB1bmRlciBvYmplY3Qgc3RvcmUgJSIg
UFJJdTY0LCBpbmRleC5pbmZvKCkuY29uZGVuc2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRh
KCksIG5ld05hbWUudXRmOCgpLmRhdGEoKSwgaW5kZXguaW5mbygpLm9iamVjdFN0b3JlSWRlbnRp
ZmllcigpKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0
aW9uT3BlcmF0aW9uKCp0aGlzLCAmSURCVHJhbnNhY3Rpb246OmRpZFJlbmFtZUluZGV4T25TZXJ2
ZXIsICZJREJUcmFuc2FjdGlvbjo6cmVuYW1lSW5kZXhPblNlcnZlciwgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUpKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlv
bihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDo6Y3JlYXRlKCp0aGlzLCBbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSAoY29uc3QgYXV0byYgcmVzdWx0KSB7CisgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmRpZFJlbmFtZUluZGV4T25TZXJ2ZXIocmVzdWx0KTsKKyAgICB9
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSA9IG5ld05hbWUuaXNvbGF0ZWRDb3B5KCldIChhdXRv
JiBvcGVyYXRpb24pIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmVuYW1lSW5kZXhPblNlcnZl
cihvcGVyYXRpb24sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdO
YW1lKTsKKyAgICB9KSk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OnJlbmFtZUluZGV4T25T
ZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCB1
aW50NjRfdCYgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCB1aW50NjRfdCYgaW5kZXhJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCkBAIC04MzAsNyArODUwLDExIEBAIFJlZjxJ
REJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6ZG9SZXF1ZXMKICAgICBhZGRSZXF1ZXN0KHJlcXVl
c3QuZ2V0KCkpOwogCiAgICAgTE9HKEluZGV4ZWREQk9wZXJhdGlvbnMsICJJREIgb3BlbiBjdXJz
b3Igb3BlcmF0aW9uOiAlcyIsIGN1cnNvci0+aW5mbygpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRyYW5zYWN0
aW9uT3BlcmF0aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJhbnNhY3Rpb246OmRpZE9w
ZW5DdXJzb3JPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpvcGVuQ3Vyc29yT25TZXJ2ZXIsIGN1
cnNvci0+aW5mbygpKSk7CisgICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpUcmFuc2Fj
dGlvbk9wZXJhdGlvbkltcGw6OmNyZWF0ZSgqdGhpcywgcmVxdWVzdC5nZXQoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdCA9IHJlcXVlc3QuY29weVJlZigpXSAoY29u
c3QgYXV0byYgcmVzdWx0KSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZE9wZW5DdXJzb3JP
blNlcnZlcihyZXF1ZXN0LmdldCgpLCByZXN1bHQpOworICAgIH0sIFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGluZm8gPSBjdXJzb3ItPmluZm8oKS5pc29sYXRlZENvcHkoKV0gKGF1
dG8mIG9wZXJhdGlvbikgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5vcGVuQ3Vyc29yT25TZXJ2
ZXIob3BlcmF0aW9uLCBpbmZvKTsKKyAgICB9KSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0K
QEAgLTg2MSw3ICs4ODUsMTEgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6aXRlcmF0ZUN1cnNvcihJ
REJDdQogICAgIGFkZFJlcXVlc3QoKmN1cnNvci5yZXF1ZXN0KCkpOwogCiAgICAgTE9HKEluZGV4
ZWREQk9wZXJhdGlvbnMsICJJREIgaXRlcmF0ZSBjdXJzb3Igb3BlcmF0aW9uOiAlcyAlcyIsIGN1
cnNvci5pbmZvKCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGRhdGEubG9nZ2luZ1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6
Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsICpjdXJzb3IucmVxdWVzdCgpLCAmSURC
VHJhbnNhY3Rpb246OmRpZEl0ZXJhdGVDdXJzb3JPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpp
dGVyYXRlQ3Vyc29yT25TZXJ2ZXIsIGRhdGEpKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJD
bGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDo6Y3JlYXRlKCp0aGlzLCAqY3Vyc29yLnJl
cXVlc3QoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdCA9IG1ha2VS
ZWYoKmN1cnNvci5yZXF1ZXN0KCkpXSAoY29uc3QgYXV0byYgcmVzdWx0KSB7CisgICAgICAgIHBy
b3RlY3RlZFRoaXMtPmRpZEl0ZXJhdGVDdXJzb3JPblNlcnZlcihyZXF1ZXN0LmdldCgpLCByZXN1
bHQpOworICAgIH0sIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGRhdGEgPSBkYXRh
Lmlzb2xhdGVkQ29weSgpXSAoYXV0byYgb3BlcmF0aW9uKSB7CisgICAgICAgIHByb3RlY3RlZFRo
aXMtPml0ZXJhdGVDdXJzb3JPblNlcnZlcihvcGVyYXRpb24sIGRhdGEpOworICAgIH0pKTsKIH0K
IAogLy8gRklYTUU6IGNoYW5nZXMgaGVyZQpAQCAtODk1LDcgKzkyMywxMSBAQCBSZWY8SURCUmVx
dWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RHCiAgICAgSURCR2V0QWxsUmVjb3Jkc0RhdGEg
Z2V0QWxsUmVjb3Jkc0RhdGEgeyBrZXlSYW5nZURhdGEsIGdldEFsbFR5cGUsIGNvdW50LCBvYmpl
Y3RTdG9yZS5pbmZvKCkuaWRlbnRpZmllcigpLCAwIH07CiAKICAgICBMT0coSW5kZXhlZERCT3Bl
cmF0aW9ucywgIklEQiBnZXQgYWxsIG9iamVjdCBzdG9yZSByZWNvcmRzIG9wZXJhdGlvbjogJXMi
LCBnZXRBbGxSZWNvcmRzRGF0YS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
c2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigq
dGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5zYWN0aW9uOjpkaWRHZXRBbGxSZWNvcmRzT25T
ZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6Z2V0QWxsUmVjb3Jkc09uU2VydmVyLCBnZXRBbGxSZWNv
cmRzRGF0YSkpOworICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6VHJhbnNhY3Rpb25P
cGVyYXRpb25JbXBsOjpjcmVhdGUoKnRoaXMsIHJlcXVlc3QuZ2V0KCksIFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3QgPSByZXF1ZXN0LmNvcHlSZWYoKV0gKGNvbnN0IGF1
dG8mIHJlc3VsdCkgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRHZXRBbGxSZWNvcmRzT25T
ZXJ2ZXIocmVxdWVzdC5nZXQoKSwgcmVzdWx0KTsKKyAgICB9LCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBnZXRBbGxSZWNvcmRzRGF0YSA9IGdldEFsbFJlY29yZHNEYXRhLmlzb2xh
dGVkQ29weSgpXSAoYXV0byYgb3BlcmF0aW9uKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmdl
dEFsbFJlY29yZHNPblNlcnZlcihvcGVyYXRpb24sIGdldEFsbFJlY29yZHNEYXRhKTsKKyAgICB9
KSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTkxNCw3ICs5NDYsMTEgQEAgUmVmPElE
QlJlcXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0RwogICAgIElEQkdldEFsbFJlY29yZHNE
YXRhIGdldEFsbFJlY29yZHNEYXRhIHsga2V5UmFuZ2VEYXRhLCBnZXRBbGxUeXBlLCBjb3VudCwg
aW5kZXgub2JqZWN0U3RvcmUoKS5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmRleC5pbmZvKCkuaWRl
bnRpZmllcigpIH07CiAKICAgICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklEQiBnZXQgYWxs
IGluZGV4IHJlY29yZHMgb3BlcmF0aW9uOiAlcyIsIGdldEFsbFJlY29yZHNEYXRhLmxvZ2dpbmdT
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6
OmNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJh
bnNhY3Rpb246OmRpZEdldEFsbFJlY29yZHNPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpnZXRB
bGxSZWNvcmRzT25TZXJ2ZXIsIGdldEFsbFJlY29yZHNEYXRhKSk7CisgICAgc2NoZWR1bGVPcGVy
YXRpb24oSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGw6OmNyZWF0ZSgqdGhpcywg
cmVxdWVzdC5nZXQoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdCA9
IHJlcXVlc3QuY29weVJlZigpXSAoY29uc3QgYXV0byYgcmVzdWx0KSB7CisgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmRpZEdldEFsbFJlY29yZHNPblNlcnZlcihyZXF1ZXN0LmdldCgpLCByZXN1bHQp
OworICAgIH0sIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGdldEFsbFJlY29yZHNE
YXRhID0gZ2V0QWxsUmVjb3Jkc0RhdGEuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBvcGVyYXRpb24p
IHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+Z2V0QWxsUmVjb3Jkc09uU2VydmVyKG9wZXJhdGlv
biwgZ2V0QWxsUmVjb3Jkc0RhdGEpOworICAgIH0pKTsKIAogICAgIHJldHVybiByZXF1ZXN0Owog
fQpAQCAtOTY3LDcgKzEwMDMsMTEgQEAgUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpy
ZXF1ZXN0RwogICAgIGFkZFJlcXVlc3QocmVxdWVzdC5nZXQoKSk7CiAKICAgICBMT0coSW5kZXhl
ZERCT3BlcmF0aW9ucywgIklEQiBnZXQgcmVjb3JkIG9wZXJhdGlvbjogJXMgJXMiLCBvYmplY3RT
dG9yZS5pbmZvKCkuY29uZGVuc2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGdldFJl
Y29yZERhdGEubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHNjaGVkdWxlT3Bl
cmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIHJlcXVl
c3QuZ2V0KCksICZJREJUcmFuc2FjdGlvbjo6ZGlkR2V0UmVjb3JkT25TZXJ2ZXIsICZJREJUcmFu
c2FjdGlvbjo6Z2V0UmVjb3JkT25TZXJ2ZXIsIGdldFJlY29yZERhdGEpKTsKKyAgICBzY2hlZHVs
ZU9wZXJhdGlvbihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDo6Y3JlYXRlKCp0
aGlzLCByZXF1ZXN0LmdldCgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1
ZXN0ID0gcmVxdWVzdC5jb3B5UmVmKCldIChjb25zdCBhdXRvJiByZXN1bHQpIHsKKyAgICAgICAg
cHJvdGVjdGVkVGhpcy0+ZGlkR2V0UmVjb3JkT25TZXJ2ZXIocmVxdWVzdC5nZXQoKSwgcmVzdWx0
KTsKKyAgICB9LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBnZXRSZWNvcmREYXRh
ID0gZ2V0UmVjb3JkRGF0YS5pc29sYXRlZENvcHkoKV0gKGF1dG8mIG9wZXJhdGlvbikgeworICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5nZXRSZWNvcmRPblNlcnZlcihvcGVyYXRpb24sIGdldFJlY29y
ZERhdGEpOworICAgIH0pKTsKIAogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtMTAwMyw3ICsx
MDQzLDExIEBAIFJlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2FjdGlvbjo6cmVxdWVzdEkKICAgICBJ
REJHZXRSZWNvcmREYXRhIGdldFJlY29yZERhdGEgPSB7IHJhbmdlLCBJREJHZXRSZWNvcmREYXRh
VHlwZTo6S2V5QW5kVmFsdWUgfTsKIAogICAgIExPRyhJbmRleGVkREJPcGVyYXRpb25zLCAiSURC
IGdldCBpbmRleCByZWNvcmQgb3BlcmF0aW9uOiAlcyAlcyIsIGluZGV4LmluZm8oKS5jb25kZW5z
ZWRMb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZ2V0UmVjb3JkRGF0YS5sb2dnaW5nU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50Ojpj
cmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5z
YWN0aW9uOjpkaWRHZXRSZWNvcmRPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRP
blNlcnZlciwgZ2V0UmVjb3JkRGF0YSkpOworICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVu
dDo6VHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsOjpjcmVhdGUoKnRoaXMsIHJlcXVlc3QuZ2V0KCks
IFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3QgPSByZXF1ZXN0LmNvcHlS
ZWYoKV0gKGNvbnN0IGF1dG8mIHJlc3VsdCkgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRH
ZXRSZWNvcmRPblNlcnZlcihyZXF1ZXN0LmdldCgpLCByZXN1bHQpOworICAgIH0sIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGdldFJlY29yZERhdGEgPSBnZXRSZWNvcmREYXRhLmlz
b2xhdGVkQ29weSgpXSAoYXV0byYgb3BlcmF0aW9uKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMt
PmdldFJlY29yZE9uU2VydmVyKG9wZXJhdGlvbiwgZ2V0UmVjb3JkRGF0YSk7CisgICAgfSkpOwog
CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0xMDYyLDcgKzExMDYsMTEgQEAgUmVmPElEQlJl
cXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0QwogICAgIGFkZFJlcXVlc3QocmVxdWVzdC5n
ZXQoKSk7CiAKICAgICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklEQiBvYmplY3Qgc3RvcmUg
Y291bnQgb3BlcmF0aW9uOiAlcywgcmFuZ2UgJXMiLCBvYmplY3RTdG9yZS5pbmZvKCkuY29uZGVu
c2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJhbmdlLmxvZ2dpbmdTdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OmNyZWF0ZVRy
YW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJhbnNhY3Rpb246
OmRpZEdldENvdW50T25TZXJ2ZXIsICZJREJUcmFuc2FjdGlvbjo6Z2V0Q291bnRPblNlcnZlciwg
cmFuZ2UpKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3Bl
cmF0aW9uSW1wbDo6Y3JlYXRlKCp0aGlzLCByZXF1ZXN0LmdldCgpLCBbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0ID0gcmVxdWVzdC5jb3B5UmVmKCldIChjb25zdCBhdXRv
JiByZXN1bHQpIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlkR2V0Q291bnRPblNlcnZlcihy
ZXF1ZXN0LmdldCgpLCByZXN1bHQpOworICAgIH0sIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHJhbmdlID0gcmFuZ2UuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBvcGVyYXRpb24pIHsK
KyAgICAgICAgcHJvdGVjdGVkVGhpcy0+Z2V0Q291bnRPblNlcnZlcihvcGVyYXRpb24sIHJhbmdl
KTsKKyAgICB9KSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTEwODAsNyArMTEyOCwx
MSBAQCBSZWY8SURCUmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RDCiAgICAgYWRkUmVx
dWVzdChyZXF1ZXN0LmdldCgpKTsKIAogICAgIExPRyhJbmRleGVkREJPcGVyYXRpb25zLCAiSURC
IGluZGV4IGNvdW50IG9wZXJhdGlvbjogJXMsIHJhbmdlICVzIiwgaW5kZXguaW5mbygpLmNvbmRl
bnNlZExvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByYW5nZS5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpjcmVhdGVU
cmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5zYWN0aW9u
OjpkaWRHZXRDb3VudE9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246OmdldENvdW50T25TZXJ2ZXIs
IHJhbmdlKSk7CisgICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9w
ZXJhdGlvbkltcGw6OmNyZWF0ZSgqdGhpcywgcmVxdWVzdC5nZXQoKSwgW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdCA9IHJlcXVlc3QuY29weVJlZigpXSAoY29uc3QgYXV0
byYgcmVzdWx0KSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZEdldENvdW50T25TZXJ2ZXIo
cmVxdWVzdC5nZXQoKSwgcmVzdWx0KTsKKyAgICB9LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCByYW5nZSA9IHJhbmdlLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgb3BlcmF0aW9uKSB7
CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmdldENvdW50T25TZXJ2ZXIob3BlcmF0aW9uLCByYW5n
ZSk7CisgICAgfSkpOwogCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0xMTE1LDcgKzExNjcs
MTEgQEAgUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0RAogICAgIGFkZFJl
cXVlc3QocmVxdWVzdC5nZXQoKSk7CiAKICAgICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklE
QiBkZWxldGUgcmVjb3JkIG9wZXJhdGlvbjogJXMsIHJhbmdlICVzIiwgb2JqZWN0U3RvcmUuaW5m
bygpLmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByYW5nZS5sb2dnaW5n
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50
OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRy
YW5zYWN0aW9uOjpkaWREZWxldGVSZWNvcmRPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpkZWxl
dGVSZWNvcmRPblNlcnZlciwgcmFuZ2UpKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGll
bnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDo6Y3JlYXRlKCp0aGlzLCByZXF1ZXN0LmdldCgp
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0ID0gcmVxdWVzdC5jb3B5
UmVmKCldIChjb25zdCBhdXRvJiByZXN1bHQpIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlk
RGVsZXRlUmVjb3JkT25TZXJ2ZXIocmVxdWVzdC5nZXQoKSwgcmVzdWx0KTsKKyAgICB9LCBbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByYW5nZSA9IHJhbmdlLmlzb2xhdGVkQ29weSgp
XSAoYXV0byYgb3BlcmF0aW9uKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRlbGV0ZVJlY29y
ZE9uU2VydmVyKG9wZXJhdGlvbiwgcmFuZ2UpOworICAgIH0pKTsKICAgICByZXR1cm4gcmVxdWVz
dDsKIH0KIApAQCAtMTE1MCw3ICsxMjA2LDExIEBAIFJlZjxJREJSZXF1ZXN0PiBJREJUcmFuc2Fj
dGlvbjo6cmVxdWVzdEMKICAgICB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBvYmpl
Y3RTdG9yZS5pbmZvKCkuaWRlbnRpZmllcigpOwogCiAgICAgTE9HKEluZGV4ZWREQk9wZXJhdGlv
bnMsICJJREIgY2xlYXIgb2JqZWN0IHN0b3JlIG9wZXJhdGlvbjogJXMiLCBvYmplY3RTdG9yZS5p
bmZvKCkuY29uZGVuc2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHNjaGVk
dWxlT3BlcmF0aW9uKElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMs
IHJlcXVlc3QuZ2V0KCksICZJREJUcmFuc2FjdGlvbjo6ZGlkQ2xlYXJPYmplY3RTdG9yZU9uU2Vy
dmVyLCAmSURCVHJhbnNhY3Rpb246OmNsZWFyT2JqZWN0U3RvcmVPblNlcnZlciwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyKSk7CisgICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpUcmFuc2Fj
dGlvbk9wZXJhdGlvbkltcGw6OmNyZWF0ZSgqdGhpcywgcmVxdWVzdC5nZXQoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdCA9IHJlcXVlc3QuY29weVJlZigpXSAoY29u
c3QgYXV0byYgcmVzdWx0KSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpZENsZWFyT2JqZWN0
U3RvcmVPblNlcnZlcihyZXF1ZXN0LmdldCgpLCByZXN1bHQpOworICAgIH0sIFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIG9iamVjdFN0b3JlSWRlbnRpZmllcl0gKGF1dG8mIG9wZXJh
dGlvbikgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jbGVhck9iamVjdFN0b3JlT25TZXJ2ZXIo
b3BlcmF0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIH0pKTsKIAogICAgIHJldHVy
biByZXF1ZXN0OwogfQpAQCAtMTE3Miw3ICsxMjMyLDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6
ZGlkQ2xlYXJPYmplY3RTdG9yZQogICAgIGNvbXBsZXRlTm9uY3Vyc29yUmVxdWVzdChyZXF1ZXN0
LCByZXN1bHREYXRhKTsKIH0KIAotUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1
ZXN0UHV0T3JBZGQoRXhlY1N0YXRlJiBzdGF0ZSwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3Jl
LCBJREJLZXkqIGtleSwgU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1ZSwgSW5kZXhlZERCOjpP
YmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3ZlcndyaXRlTW9kZSkKK1JlZjxJREJSZXF1ZXN0PiBJ
REJUcmFuc2FjdGlvbjo6cmVxdWVzdFB1dE9yQWRkKEV4ZWNTdGF0ZSYgc3RhdGUsIElEQk9iamVj
dFN0b3JlJiBvYmplY3RTdG9yZSwgUmVmUHRyPElEQktleT4mJiBrZXksIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSYgdmFsdWUsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlIG92ZXJ3
cml0ZU1vZGUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0
UHV0T3JBZGQiKTsKICAgICBBU1NFUlQoaXNBY3RpdmUoKSk7CkBAIC0xMTg2LDcgKzEyNDYsMTEg
QEAgUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0UAogICAgIGFkZFJlcXVl
c3QocmVxdWVzdC5nZXQoKSk7CiAKICAgICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklEQiBw
dXRPckFkZCBvcGVyYXRpb246ICVzIGtleTogJXMiLCBvYmplY3RTdG9yZS5pbmZvKCkuY29uZGVu
c2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGtleSA/IGtleS0+bG9nZ2luZ1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkgOiAiPG51bGwga2V5PiIpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9u
KElEQkNsaWVudDo6Y3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsIHJlcXVlc3QuZ2V0
KCksICZJREJUcmFuc2FjdGlvbjo6ZGlkUHV0T3JBZGRPblNlcnZlciwgJklEQlRyYW5zYWN0aW9u
OjpwdXRPckFkZE9uU2VydmVyLCBrZXksICZ2YWx1ZSwgb3ZlcndyaXRlTW9kZSkpOworICAgIHNj
aGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsOjpjcmVh
dGUoKnRoaXMsIHJlcXVlc3QuZ2V0KCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3QgPSByZXF1ZXN0LmNvcHlSZWYoKV0gKGNvbnN0IGF1dG8mIHJlc3VsdCkgeworICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRQdXRPckFkZE9uU2VydmVyKHJlcXVlc3QuZ2V0KCksIHJl
c3VsdCk7CisgICAgfSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwga2V5LCB2YWx1
ZSA9IG1ha2VSZWYodmFsdWUpLCBvdmVyd3JpdGVNb2RlXSAoYXV0byYgb3BlcmF0aW9uKSB7Cisg
ICAgICAgIHByb3RlY3RlZFRoaXMtPnB1dE9yQWRkT25TZXJ2ZXIob3BlcmF0aW9uLCBrZXkuZ2V0
KCksIHZhbHVlLnB0cigpLCBvdmVyd3JpdGVNb2RlKTsKKyAgICB9KSk7CiAKICAgICByZXR1cm4g
cmVxdWVzdDsKIH0KQEAgLTEyNzAsNyArMTMzNCwxMSBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpk
ZWxldGVPYmplY3RTdG9yZShjCiAgICAgfQogCiAgICAgTE9HKEluZGV4ZWREQk9wZXJhdGlvbnMs
ICJJREIgZGVsZXRlIG9iamVjdCBzdG9yZSBvcGVyYXRpb246ICVzIiwgb2JqZWN0U3RvcmVOYW1l
LnV0ZjgoKS5kYXRhKCkpOwotICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVudDo6Y3JlYXRl
VHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsICZJREJUcmFuc2FjdGlvbjo6ZGlkRGVsZXRlT2Jq
ZWN0U3RvcmVPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpkZWxldGVPYmplY3RTdG9yZU9uU2Vy
dmVyLCBvYmplY3RTdG9yZU5hbWUpKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihJREJDbGllbnQ6
OlRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDo6Y3JlYXRlKCp0aGlzLCBbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSAoY29uc3QgYXV0byYgcmVzdWx0KSB7CisgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPmRpZERlbGV0ZU9iamVjdFN0b3JlT25TZXJ2ZXIocmVzdWx0KTsKKyAgICB9LCBbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvYmplY3RTdG9yZU5hbWUgPSBvYmplY3RTdG9y
ZU5hbWUuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBvcGVyYXRpb24pIHsKKyAgICAgICAgcHJvdGVj
dGVkVGhpcy0+ZGVsZXRlT2JqZWN0U3RvcmVPblNlcnZlcihvcGVyYXRpb24sIG9iamVjdFN0b3Jl
TmFtZSk7CisgICAgfSkpOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpkZWxldGVPYmplY3RT
dG9yZU9uU2VydmVyKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCkBAIC0xMjk2LDcgKzEzNjQsMTEgQEAgdm9p
ZCBJREJUcmFuc2FjdGlvbjo6ZGVsZXRlSW5kZXgodWludDY0XwogICAgIEFTU0VSVChpc1ZlcnNp
b25DaGFuZ2UoKSk7CiAKICAgICBMT0coSW5kZXhlZERCT3BlcmF0aW9ucywgIklEQiBkZWxldGUg
aW5kZXggb3BlcmF0aW9uOiAlcyAoJSIgUFJJdTY0ICIpIiwgaW5kZXhOYW1lLnV0ZjgoKS5kYXRh
KCksIG9iamVjdFN0b3JlSWRlbnRpZmllcik7Ci0gICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xp
ZW50OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgJklEQlRyYW5zYWN0aW9uOjpk
aWREZWxldGVJbmRleE9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246OmRlbGV0ZUluZGV4T25TZXJ2
ZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lKSk7CisgICAgc2NoZWR1bGVPcGVy
YXRpb24oSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGw6OmNyZWF0ZSgqdGhpcywg
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKGNvbnN0IGF1dG8mIHJlc3VsdCkgewor
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWREZWxldGVJbmRleE9uU2VydmVyKHJlc3VsdCk7Cisg
ICAgfSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBpbmRleE5hbWUgPSBpbmRleE5hbWUuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBvcGVyYXRp
b24pIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGVsZXRlSW5kZXhPblNlcnZlcihvcGVyYXRp
b24sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lKTsKKyAgICB9KSk7CiB9CiAKIHZv
aWQgSURCVHJhbnNhY3Rpb246OmRlbGV0ZUluZGV4T25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2Fj
dGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCB1aW50NjRfdCYgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAkocmV2aXNpb24gMjQwNTg5
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SURCSW5kZXg+IGNyZWF0ZUluZGV4KElEQk9iamVjdFN0b3JlJiwgY29uc3QgSURCSW5k
ZXhJbmZvJik7CiAgICAgdm9pZCByZW5hbWVJbmRleChJREJJbmRleCYsIGNvbnN0IFN0cmluZyYg
bmV3TmFtZSk7CiAKLSAgICBSZWY8SURCUmVxdWVzdD4gcmVxdWVzdFB1dE9yQWRkKEpTQzo6RXhl
Y1N0YXRlJiwgSURCT2JqZWN0U3RvcmUmLCBJREJLZXkqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUm
LCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7CisgICAgUmVmPElEQlJlcXVl
c3Q+IHJlcXVlc3RQdXRPckFkZChKU0M6OkV4ZWNTdGF0ZSYsIElEQk9iamVjdFN0b3JlJiwgUmVm
UHRyPElEQktleT4mJiwgU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgSW5kZXhlZERCOjpPYmplY3RT
dG9yZU92ZXJ3cml0ZU1vZGUpOwogICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0R2V0UmVjb3Jk
KEpTQzo6RXhlY1N0YXRlJiwgSURCT2JqZWN0U3RvcmUmLCBjb25zdCBJREJHZXRSZWNvcmREYXRh
Jik7CiAgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RHZXRBbGxPYmplY3RTdG9yZVJlY29yZHMo
SlNDOjpFeGVjU3RhdGUmLCBJREJPYmplY3RTdG9yZSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYs
IEluZGV4ZWREQjo6R2V0QWxsVHlwZSwgT3B0aW9uYWw8dWludDMyX3Q+IGNvdW50KTsKICAgICBS
ZWY8SURCUmVxdWVzdD4gcmVxdWVzdEdldEFsbEluZGV4UmVjb3JkcyhKU0M6OkV4ZWNTdGF0ZSYs
IElEQkluZGV4JiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSW5kZXhlZERCOjpHZXRBbGxUeXBl
LCBPcHRpb25hbDx1aW50MzJfdD4gY291bnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1RyYW5zYWN0aW9uT3BlcmF0
aW9uLmgJKHJldmlzaW9uIDI0MDU4OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3
ICs5Niw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBtX2NvbXBsZXRlRnVuY3Rpb24gbWlnaHQg
YmUgaG9sZGluZyB0aGUgbGFzdCByZWYgdG8gdGhpcyBUcmFuc2FjdGlvbk9wZXJhdGlvbiwKICAg
ICAgICAgLy8gc28gd2UgbmVlZCB0byBkbyB0aGlzIHRyaWNrIHRvIG51bGwgaXQgb3V0IHdpdGhv
dXQgZmlyc3QgZGVzdHJveWluZyBpdC4KLSAgICAgICAgV1RGOjpGdW5jdGlvbjx2b2lkIChjb25z
dCBJREJSZXN1bHREYXRhJik+IG9sZENvbXBsZXRlRnVuY3Rpb247CisgICAgICAgIEZ1bmN0aW9u
PHZvaWQoY29uc3QgSURCUmVzdWx0RGF0YSYpPiBvbGRDb21wbGV0ZUZ1bmN0aW9uOwogICAgICAg
ICBzdGQ6OnN3YXAobV9jb21wbGV0ZUZ1bmN0aW9uLCBvbGRDb21wbGV0ZUZ1bmN0aW9uKTsKIAog
ICAgICAgICBtX3BlcmZvcm1GdW5jdGlvbiA9IHsgfTsKQEAgLTEyNiw4ICsxMjYsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdWludDY0X3QgbV9pbmRleElkZW50aWZpZXIgeyAwIH07CiAgICAgc3RkOjp1
bmlxdWVfcHRyPElEQlJlc291cmNlSWRlbnRpZmllcj4gbV9jdXJzb3JJZGVudGlmaWVyOwogICAg
IEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlIG1faW5kZXhSZWNvcmRUeXBlOwotICAgIFdURjo6
RnVuY3Rpb248dm9pZCAoKT4gbV9wZXJmb3JtRnVuY3Rpb247Ci0gICAgV1RGOjpGdW5jdGlvbjx2
b2lkIChjb25zdCBJREJSZXN1bHREYXRhJik+IG1fY29tcGxldGVGdW5jdGlvbjsKKyAgICBGdW5j
dGlvbjx2b2lkKCk+IG1fcGVyZm9ybUZ1bmN0aW9uOworICAgIEZ1bmN0aW9uPHZvaWQoY29uc3Qg
SURCUmVzdWx0RGF0YSYpPiBtX2NvbXBsZXRlRnVuY3Rpb247CiAKIHByaXZhdGU6CiAgICAgSURC
UmVzb3VyY2VJZGVudGlmaWVyIHRyYW5zYWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhbnNhY3Rpb24tPmluZm8oKS5pZGVudGlmaWVyKCk7IH0KQEAgLTE0MiwxMjQgKzE0Miw0
MSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZXh0UmVxdWVzdENhbkdvVG9TZXJ2ZXIgeyB0cnVl
IH07CiB9OwogCi10ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogY2xhc3MgVHJhbnNh
Y3Rpb25PcGVyYXRpb25JbXBsIGZpbmFsIDogcHVibGljIFRyYW5zYWN0aW9uT3BlcmF0aW9uIHsK
IHB1YmxpYzoKLSAgICBUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGwoSURCVHJhbnNhY3Rpb24mIHRy
YW5zYWN0aW9uLCB2b2lkIChJREJUcmFuc2FjdGlvbjo6KmNvbXBsZXRlTWV0aG9kKShjb25zdCBJ
REJSZXN1bHREYXRhJiksIHZvaWQgKElEQlRyYW5zYWN0aW9uOjoqcGVyZm9ybU1ldGhvZCkoVHJh
bnNhY3Rpb25PcGVyYXRpb24mLCBBcmd1bWVudHMuLi4pLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVu
dHMpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxUcmFuc2FjdGlv
bk9wZXJhdGlvbkltcGw+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGwoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4u
KSk7IH0KK3ByaXZhdGU6CisgICAgVHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsKElEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbiwgRnVuY3Rpb248dm9pZChjb25zdCBJREJSZXN1bHREYXRhJik+IGNv
bXBsZXRlTWV0aG9kLCBGdW5jdGlvbjx2b2lkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJik+IHBlcmZv
cm1NZXRob2QpCiAgICAgICAgIDogVHJhbnNhY3Rpb25PcGVyYXRpb24odHJhbnNhY3Rpb24pCiAg
ICAgewotICAgICAgICBSZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+IHByb3RlY3RlZFRoaXMo
dGhpcyk7Ci0KICAgICAgICAgQVNTRVJUKHBlcmZvcm1NZXRob2QpOwotICAgICAgICBtX3BlcmZv
cm1GdW5jdGlvbiA9IFtwcm90ZWN0ZWRUaGlzLCB0aGlzLCBwZXJmb3JtTWV0aG9kLCBhcmd1bWVu
dHMuLi5dIHsKLSAgICAgICAgICAgICgmbV90cmFuc2FjdGlvbi5nZXQoKS0+KnBlcmZvcm1NZXRo
b2QpKCp0aGlzLCBhcmd1bWVudHMuLi4pOworICAgICAgICBtX3BlcmZvcm1GdW5jdGlvbiA9IFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBlcmZvcm1NZXRob2QgPSBXVEZNb3ZlKHBl
cmZvcm1NZXRob2QpXSB7CisgICAgICAgICAgICBwZXJmb3JtTWV0aG9kKHByb3RlY3RlZFRoaXMu
Z2V0KCkpOwogICAgICAgICB9OwogCiAgICAgICAgIGlmIChjb21wbGV0ZU1ldGhvZCkgewotICAg
ICAgICAgICAgbV9jb21wbGV0ZUZ1bmN0aW9uID0gW3Byb3RlY3RlZFRoaXMsIHRoaXMsIGNvbXBs
ZXRlTWV0aG9kXShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGNvbXBsZXRlTWV0aG9kKQotICAgICAgICAgICAgICAgICAgICAoJm1fdHJhbnNh
Y3Rpb24uZ2V0KCktPipjb21wbGV0ZU1ldGhvZCkocmVzdWx0RGF0YSk7CisgICAgICAgICAgICBt
X2NvbXBsZXRlRnVuY3Rpb24gPSBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21w
bGV0ZU1ldGhvZCA9IFdURk1vdmUoY29tcGxldGVNZXRob2QpXSAoY29uc3QgSURCUmVzdWx0RGF0
YSYgcmVzdWx0RGF0YSkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRlTWV0aG9kKHJlc3VsdERh
dGEpOwogICAgICAgICAgICAgfTsKICAgICAgICAgfQogICAgIH0KIAotICAgIFRyYW5zYWN0aW9u
T3BlcmF0aW9uSW1wbChJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIElEQlJlcXVlc3QmIHJl
cXVlc3QsIHZvaWQgKElEQlRyYW5zYWN0aW9uOjoqY29tcGxldGVNZXRob2QpKElEQlJlcXVlc3Qm
LCBjb25zdCBJREJSZXN1bHREYXRhJiksIHZvaWQgKElEQlRyYW5zYWN0aW9uOjoqcGVyZm9ybU1l
dGhvZCkoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBBcmd1bWVudHMuLi4pLCBBcmd1bWVudHMmJi4u
LiBhcmd1bWVudHMpCisgICAgVHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsKElEQlRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbiwgSURCUmVxdWVzdCYgcmVxdWVzdCwgRnVuY3Rpb248dm9pZChjb25zdCBJ
REJSZXN1bHREYXRhJik+IGNvbXBsZXRlTWV0aG9kLCBGdW5jdGlvbjx2b2lkKFRyYW5zYWN0aW9u
T3BlcmF0aW9uJik+IHBlcmZvcm1NZXRob2QpCiAgICAgICAgIDogVHJhbnNhY3Rpb25PcGVyYXRp
b24odHJhbnNhY3Rpb24sIHJlcXVlc3QpCiAgICAgewotICAgICAgICBSZWZQdHI8VHJhbnNhY3Rp
b25PcGVyYXRpb24+IHByb3RlY3RlZFRoaXModGhpcyk7Ci0KICAgICAgICAgQVNTRVJUKHBlcmZv
cm1NZXRob2QpOwotICAgICAgICBtX3BlcmZvcm1GdW5jdGlvbiA9IFtwcm90ZWN0ZWRUaGlzLCB0
aGlzLCBwZXJmb3JtTWV0aG9kLCBhcmd1bWVudHMuLi5dIHsKLSAgICAgICAgICAgICgmbV90cmFu
c2FjdGlvbi5nZXQoKS0+KnBlcmZvcm1NZXRob2QpKCp0aGlzLCBhcmd1bWVudHMuLi4pOworICAg
ICAgICBtX3BlcmZvcm1GdW5jdGlvbiA9IFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHBlcmZvcm1NZXRob2QgPSBXVEZNb3ZlKHBlcmZvcm1NZXRob2QpXSB7CisgICAgICAgICAgICBw
ZXJmb3JtTWV0aG9kKHByb3RlY3RlZFRoaXMuZ2V0KCkpOwogICAgICAgICB9OwogCiAgICAgICAg
IGlmIChjb21wbGV0ZU1ldGhvZCkgewotICAgICAgICAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJl
ZlJlcXVlc3QoJnJlcXVlc3QpOwotICAgICAgICAgICAgbV9jb21wbGV0ZUZ1bmN0aW9uID0gW3By
b3RlY3RlZFRoaXMsIHRoaXMsIHJlZlJlcXVlc3QsIGNvbXBsZXRlTWV0aG9kXShjb25zdCBJREJS
ZXN1bHREYXRhJiByZXN1bHREYXRhKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlTWV0
aG9kKQotICAgICAgICAgICAgICAgICAgICAoJm1fdHJhbnNhY3Rpb24uZ2V0KCktPipjb21wbGV0
ZU1ldGhvZCkoKnJlZlJlcXVlc3QsIHJlc3VsdERhdGEpOworICAgICAgICAgICAgbV9jb21wbGV0
ZUZ1bmN0aW9uID0gW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGVNZXRo
b2QgPSBXVEZNb3ZlKGNvbXBsZXRlTWV0aG9kKV0gKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3Vs
dERhdGEpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0ZU1ldGhvZChyZXN1bHREYXRhKTsKICAg
ICAgICAgICAgIH07CiAgICAgICAgIH0KICAgICB9CiB9OwogCi1pbmxpbmUgUmVmPFRyYW5zYWN0
aW9uT3BlcmF0aW9uPiBjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigKLSAgICBJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sCi0gICAgdm9pZCAoSURCVHJhbnNhY3Rpb246Oipjb21wbGV0ZSko
Y29uc3QgSURCUmVzdWx0RGF0YSYpLAotICAgIHZvaWQgKElEQlRyYW5zYWN0aW9uOjoqcGVyZm9y
bSkoVHJhbnNhY3Rpb25PcGVyYXRpb24mKSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
cmFuc2FjdGlvbk9wZXJhdGlvbkltcGw8Pih0cmFuc2FjdGlvbiwgY29tcGxldGUsIHBlcmZvcm0p
KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMT4KLVJlZjxUcmFuc2Fj
dGlvbk9wZXJhdGlvbj4gY3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oCi0gICAgSURCVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLAotICAgIHZvaWQgKElEQlRyYW5zYWN0aW9uOjoqY29tcGxldGUp
KGNvbnN0IElEQlJlc3VsdERhdGEmKSwKLSAgICB2b2lkIChJREJUcmFuc2FjdGlvbjo6KnBlcmZv
cm0pKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgTVAxKSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVy
MSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGw8
TVAxPih0cmFuc2FjdGlvbiwgY29tcGxldGUsIHBlcmZvcm0sIHBhcmFtZXRlcjEpKTsKLX0KLQot
dGVtcGxhdGU8dHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAyLCB0eXBlbmFt
ZSBQMj4KLVJlZjxUcmFuc2FjdGlvbk9wZXJhdGlvbj4gY3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRp
b24oCi0gICAgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLAotICAgIHZvaWQgKElEQlRyYW5z
YWN0aW9uOjoqY29tcGxldGUpKGNvbnN0IElEQlJlc3VsdERhdGEmKSwKLSAgICB2b2lkIChJREJU
cmFuc2FjdGlvbjo6KnBlcmZvcm0pKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgTVAxLCBNUDIpLAot
ICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyKQotewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDxNUDEsIE1Q
Mj4odHJhbnNhY3Rpb24sIGNvbXBsZXRlLCBwZXJmb3JtLCBwYXJhbWV0ZXIxLCBwYXJhbWV0ZXIy
KSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1Q
MiwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMywgdHlwZW5hbWUgUDM+Ci1SZWY8VHJhbnNhY3Rp
b25PcGVyYXRpb24+IGNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKAotICAgIElEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbiwKLSAgICB2b2lkIChJREJUcmFuc2FjdGlvbjo6KmNvbXBsZXRlKShj
b25zdCBJREJSZXN1bHREYXRhJiksCi0gICAgdm9pZCAoSURCVHJhbnNhY3Rpb246OipwZXJmb3Jt
KShUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAxJiBw
YXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJh
bWV0ZXIzKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zYWN0aW9uT3BlcmF0aW9u
SW1wbDxNUDEsIE1QMiwgTVAzPih0cmFuc2FjdGlvbiwgY29tcGxldGUsIHBlcmZvcm0sIHBhcmFt
ZXRlcjEsIHBhcmFtZXRlcjIsIHBhcmFtZXRlcjMpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUg
TVAxLCB0eXBlbmFtZSBQMT4KLVJlZjxUcmFuc2FjdGlvbk9wZXJhdGlvbj4gY3JlYXRlVHJhbnNh
Y3Rpb25PcGVyYXRpb24oCi0gICAgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLAotICAgIElE
QlJlcXVlc3QmIHJlcXVlc3QsCi0gICAgdm9pZCAoSURCVHJhbnNhY3Rpb246Oipjb21wbGV0ZSko
SURCUmVxdWVzdCYsIGNvbnN0IElEQlJlc3VsdERhdGEmKSwKLSAgICB2b2lkIChJREJUcmFuc2Fj
dGlvbjo6KnBlcmZvcm0pKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgTVAxKSwKLSAgICBjb25zdCBQ
MSYgcGFyYW1ldGVyMSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmFuc2FjdGlvbk9w
ZXJhdGlvbkltcGw8TVAxPih0cmFuc2FjdGlvbiwgcmVxdWVzdCwgY29tcGxldGUsIHBlcmZvcm0s
IHBhcmFtZXRlcjEpKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMSwg
dHlwZW5hbWUgTVAyLCB0eXBlbmFtZSBQMj4KLVJlZjxUcmFuc2FjdGlvbk9wZXJhdGlvbj4gY3Jl
YXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oCi0gICAgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9u
LAotICAgIElEQlJlcXVlc3QmIHJlcXVlc3QsCi0gICAgdm9pZCAoSURCVHJhbnNhY3Rpb246Oipj
b21wbGV0ZSkoSURCUmVxdWVzdCYsIGNvbnN0IElEQlJlc3VsdERhdGEmKSwKLSAgICB2b2lkIChJ
REJUcmFuc2FjdGlvbjo6KnBlcmZvcm0pKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgTVAxLCBNUDIp
LAotICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyKQot
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDxNUDEs
IE1QMj4odHJhbnNhY3Rpb24sIHJlcXVlc3QsIGNvbXBsZXRlLCBwZXJmb3JtLCBwYXJhbWV0ZXIx
LCBwYXJhbWV0ZXIyKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIE1QMSwgdHlwZW5hbWUgTVAy
LCB0eXBlbmFtZSBNUDMsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDM+Ci1S
ZWY8VHJhbnNhY3Rpb25PcGVyYXRpb24+IGNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKAotICAg
IElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwKLSAgICBJREJSZXF1ZXN0JiByZXF1ZXN0LAot
ICAgIHZvaWQgKElEQlRyYW5zYWN0aW9uOjoqY29tcGxldGUpKElEQlJlcXVlc3QmLCBjb25zdCBJ
REJSZXN1bHREYXRhJiksCi0gICAgdm9pZCAoSURCVHJhbnNhY3Rpb246OipwZXJmb3JtKShUcmFu
c2FjdGlvbk9wZXJhdGlvbiYsIE1QMSwgTVAyLCBNUDMpLAotICAgIGNvbnN0IFAxJiBwYXJhbWV0
ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIz
KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYW5zYWN0aW9uT3BlcmF0aW9uSW1wbDxN
UDEsIE1QMiwgTVAzPih0cmFuc2FjdGlvbiwgcmVxdWVzdCwgY29tcGxldGUsIHBlcmZvcm0sIHBh
cmFtZXRlcjEsIHBhcmFtZXRlcjIsIHBhcmFtZXRlcjMpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
SURCQ2xpZW50CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
</data>
<flag name="review"
          id="377102"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>