<?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>123475</bug_id>
          
          <creation_ts>2013-10-29 15:21:46 -0700</creation_ts>
          <short_desc>Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface::Transaction</short_desc>
          <delta_ts>2013-10-29 15:51:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>123449</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>944646</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-29 15:21:46 -0700</bug_when>
    <thetext>Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface::Transaction

Currently it&apos;s using IDBBackingStoreLevelDB::Transaction, which hinders the goal of https://bugs.webkit.org/show_bug.cgi?id=123449 - IDBTransactionBackend should be cross platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944653</commentid>
    <comment_count>1</comment_count>
      <attachid>215439</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-29 15:42:11 -0700</bug_when>
    <thetext>Created attachment 215439
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944656</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-29 15:51:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/158234</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215439</attachid>
            <date>2013-10-29 15:42:11 -0700</date>
            <delta_ts>2013-10-29 15:43:49 -0700</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>45691</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmNjc4MTEwLi5hMDdhMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTYg
QEAKIDIwMTMtMTAtMjkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIE1vdmUgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiB0byBnZW5lcmljIElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgaXQncyB1c2luZyBJREJCYWNraW5nU3Rv
cmVMZXZlbERCOjpUcmFuc2FjdGlvbiwgd2hpY2ggaGluZGVycyB0aGUgZ29hbCBvZjoKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzQ0OSAtIElEQlRy
YW5zYWN0aW9uQmFja2VuZCBzaG91bGQgYmUgY3Jvc3MgcGxhdGZvcm0KKworICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oOgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCSW5kZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQklu
ZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhX
cml0ZXI6OmFkZGluZ0tleUFsbG93ZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4V3JpdGVyLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJC
YWNraW5nU3RvcmVMZXZlbERCOjp1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6dXBkYXRlSURCRGF0YWJhc2VNZXRh
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVP
YmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpk
ZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZl
bERCOjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6cHV0UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6
OmNsZWFyT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxl
dmVsREI6OmdldEtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVt
YmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0
c0luT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdT
dG9yZUxldmVsREI6OmZpbmRLZXlJbkluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tp
bmdTdG9yZUxldmVsREI6OmdldFByaW1hcnlLZXlWaWFJbmRleCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjprZXlFeGlzdHNJbkluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUN1cnNvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERCOjpvcGVuT2JqZWN0U3RvcmVL
ZXlDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Bl
bkluZGV4S2V5Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZUxldmVs
REI6Om9wZW5JbmRleEN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
Ojpjb21taXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxE
Qjo6dGFza1RpbWVyRmlyZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5oOgorCisyMDEzLTEwLTI5ICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBHZXQgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQk9wZXJhdGlvbnMgKmFsbW9zdCogcmVhZHkgdG8gZ28gY3Jvc3MgcGxhdGZvcm0u
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NTEK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJC
YWNraW5nU3RvcmVJbnRlcmZhY2UuaAppbmRleCA1MWYzZTk5Li4wZjhhODJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2UuaApAQCAtNTMsNiArNTMsMTEgQEAgcHVibGljOgogICAgIGNsYXNzIFRyYW5z
YWN0aW9uIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgflRyYW5zYWN0aW9uKCkgeyB9
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGJlZ2luKCkgPSAwOworICAgICAgICB2aXJ0dWFsIGJv
b2wgY29tbWl0KCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soKSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZXNldFRyYW5zYWN0aW9uKCkgPSAwOwogICAgIH07CiAKICAg
ICBjbGFzcyBDdXJzb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxDdXJzb3I+IHsKQEAgLTc0LDM3ICs3
OSwzOSBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgY29uc3QgSURCUmVjb3JkSWRlbnRpZmll
ciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB9OwogCisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8VHJhbnNhY3Rpb24+IGNyZWF0ZUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
KCkgPSAwOworCiAgICAgdmlydHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3Qg
U3RyaW5nJiBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhKiwgYm9vbCYgZm91bmQpID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0
YWJhc2VNZXRhZGF0YTo6T2JqZWN0U3RvcmVNYXAqIG9iamVjdFN0b3JlcykgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBpbnQ2NF90IGludFZlcnNpb24sIGludDY0X3QmIHJvd0lk
KSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBSZWZQdHI8SURCUmVjb3JkSWRlbnRpZmll
cj4mIGZvdW5kSURCUmVjb3JkSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBrZXlF
eGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24m
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5
JiwgUmVmUHRyPElEQlJlY29yZElkZW50aWZpZXI+JiBmb3VuZElEQlJlY29yZElkZW50aWZpZXIp
ID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIGNvbnN0IElE
QlJlY29yZElkZW50aWZpZXIqKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5k
ZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktl
eSYsIFJlZlB0cjxJREJLZXk+JiBmb3VuZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIGNvbnN0IElEQlJlY29yZElk
ZW50aWZpZXIqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYsIFJlZlB0
cjxJREJLZXk+JiBmb3VuZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykgPSAwOwogCiAgICAgdmly
dHVhbCBib29sIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCB1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24oSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24oSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3Qgcm93SWQsIGludDY0X3Qg
aW50VmVyc2lvbikgPSAwOwogCi0gICAgdmlydHVhbCBib29sIGdldFJlY29yZChJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFZlY3RvcjxjaGFyPiYgcmVjb3JkKSA9IDA7
Ci0gICAgdmlydHVhbCBib29sIHB1dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNv
bnN0IElEQktleSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgSURCUmVjb3JkSWRl
bnRpZmllciopID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgY29uc3QgSURCUmVjb3JkSWRlbnRpZmllciYpID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24m
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5
JiwgVmVjdG9yPGNoYXI+JiByZWNvcmQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3Jk
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+IHZhbHVlLCBJREJSZWNvcmRJZGVudGlmaWVyKikgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYs
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJSZWNv
cmRJZGVudGlmaWVyJikgPSAwOwogCi0gICAgdmlydHVhbCBib29sIGNyZWF0ZU9iamVjdFN0b3Jl
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJL
ZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGRlbGV0
ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgPSAwOwotICAgIHZpcnR1YWwg
Ym9vbCBjbGVhck9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVu
dCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY2xlYXJPYmplY3RTdG9yZShJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQpID0gMDsKIAotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRl
eChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9vbCBpc011bHRpRW50
cnkpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSW5k
ZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVu
dHJ5KSA9IDA7CisgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUtleUN1cnNv
cihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERC
OjpDdXJzb3JEaXJlY3Rpb24pID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5n
U3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJl
Y3Rpb24pID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpDdXJzb3I+IG9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRp
cmVjdGlvbikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OkN1cnNvcj4gb3BlbkluZGV4Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6
VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGly
ZWN0aW9uKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6Q3Vyc29yPiBvcGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSA9
IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vy
c29yPiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBJREJLZXlSYW5nZSosIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSA9IDA7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBvcGVuSW5k
ZXhLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNv
bnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pID0gMDsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5J
bmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29u
c3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbikgPSAwOwogCi0gICAg
dmlydHVhbCBib29sIGdldFByaW1hcnlLZXlWaWFJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgUmVmUHRyPElEQktleT4mIHByaW1h
cnlLZXkpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJpbWFyeUtleVZpYUluZGV4KElEQkJh
Y2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBSZWZQ
dHI8SURCS2V5PiYgcHJpbWFyeUtleSkgPSAwOwogCi0gICAgdmlydHVhbCBib29sIGdldEtleUdl
bmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90JiBr
ZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIG1heWJlVXBk
YXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGlu
dDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSA9IDA7CisgICAgdmlydHVhbCBib29s
IGdldEtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90JiBrZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKSA9IDA7CisgICAgdmlydHVhbCBib29s
IG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgbmV3U3RhdGUsIGJvb2wgY2hlY2tDdXJyZW50KSA9IDA7CiAKICAgICB2
aXJ0dWFsIGJvb2wgbWFrZUluZGV4V3JpdGVycyhJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UmLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBJ
REJLZXkmIHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYsIFZlY3RvcjxSZWZQdHI8
SURCSW5kZXhXcml0ZXI+PiYgaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9v
bCYgY29tcGxldGVkKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkluZGV4V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4V3JpdGVyLmNwcAppbmRleCBjZDI3ZWExLi4yNTc4OTRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleFdyaXRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhXcml0ZXIuY3Bw
CkBAIC00MCw3ICs0MCw3IEBAIElEQkluZGV4V3JpdGVyOjpJREJJbmRleFdyaXRlcihjb25zdCBJ
REJJbmRleE1ldGFkYXRhJiBtZXRhZGF0YSwgY29uc3QgSW5kZXhLZXlzCiB7CiB9CiAKLXZvaWQg
SURCSW5kZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlzKGNvbnN0IElEQlJlY29yZElkZW50aWZpZXIq
IHJlY29yZElkZW50aWZpZXIsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYgYmFja2luZ1N0b3Jl
LCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIGNvbnN0Cit2b2lkIElEQklu
ZGV4V3JpdGVyOjp3cml0ZUluZGV4S2V5cyhjb25zdCBJREJSZWNvcmRJZGVudGlmaWVyKiByZWNv
cmRJZGVudGlmaWVyLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmIGJhY2tpbmdTdG9yZSwgSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBjb25zdAogewogICAgIEFTU0VSVChy
ZWNvcmRJZGVudGlmaWVyKTsKICAgICBpbnQ2NF90IGluZGV4SWQgPSBtX2luZGV4TWV0YWRhdGEu
aWQ7CkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgSURCSW5kZXhXcml0ZXI6OndyaXRlSW5kZXhLZXlz
KGNvbnN0IElEQlJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIsCiAgICAgfQogfQog
Ci1ib29sIElEQkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25zdCBJREJLZXkqIHByaW1h
cnlLZXksIFN0cmluZyogZXJyb3JNZXNzYWdlKSBjb25zdAorYm9vbCBJREJJbmRleFdyaXRlcjo6
dmVyaWZ5SW5kZXhLZXlzKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYgYmFja2luZ1N0b3JlLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgYm9v
bCYgY2FuQWRkS2V5cywgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBTdHJpbmcqIGVycm9yTWVz
c2FnZSkgY29uc3QKIHsKICAgICBjYW5BZGRLZXlzID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkgewpAQCAtNjgsNyArNjgsNyBAQCBi
b29sIElEQkluZGV4V3JpdGVyOjp2ZXJpZnlJbmRleEtleXMoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlJiBiYWNraW5nU3RvcmUsIElEQgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQklu
ZGV4V3JpdGVyOjphZGRpbmdLZXlBbGxvd2VkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYgYmFj
a2luZ1N0b3JlLCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3Qg
aW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5
LCBib29sJiBhbGxvd2VkKSBjb25zdAorYm9vbCBJREJJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxs
b3dlZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmIGJhY2tpbmdTdG9yZSwgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSog
aW5kZXhLZXksIGNvbnN0IElEQktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QK
IHsKICAgICBhbGxvd2VkID0gZmFsc2U7CiAgICAgaWYgKCFtX2luZGV4TWV0YWRhdGEudW5pcXVl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eFdyaXRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhXcml0
ZXIuaAppbmRleCBmOTljNjcwLi41ZjAyZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleFdyaXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4V3JpdGVyLmgKQEAgLTQ1LDE0ICs0NSwxNCBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhXcml0ZXIoaW5kZXhNZXRh
ZGF0YSwgaW5kZXhLZXlzKSk7CiAgICAgfQogCi0gICAgYm9vbCB2ZXJpZnlJbmRleEtleXMoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGJvb2wmIGNhbkFkZEtleXMsIGNvbnN0IElEQktleSogcHJpbWFyeUtleSA9IDAs
IFN0cmluZyogZXJyb3JNZXNzYWdlID0gMCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOworICAg
IGJvb2wgdmVyaWZ5SW5kZXhLZXlzKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYsIElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBib29sJiBjYW5BZGRLZXlzLCBjb25z
dCBJREJLZXkqIHByaW1hcnlLZXkgPSAwLCBTdHJpbmcqIGVycm9yTWVzc2FnZSA9IDApIGNvbnN0
IFdBUk5fVU5VU0VEX1JFVFVSTjsKIAotICAgIHZvaWQgd3JpdGVJbmRleEtleXMoY29uc3QgSURC
UmVjb3JkSWRlbnRpZmllciosIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZSYsIElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCkgY29uc3Q7CisgICAgdm9pZCB3cml0ZUluZGV4S2V5cyhjb25zdCBJREJS
ZWNvcmRJZGVudGlmaWVyKiwgSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBJREJJbmRleFdyaXRlcihjb25z
dCBJREJJbmRleE1ldGFkYXRhJiwgY29uc3QgSW5kZXhLZXlzJik7CiAKLSAgICBib29sIGFkZGlu
Z0tleUFsbG93ZWQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlJiwgSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhLZXksIGNvbnN0IElE
QktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJO
OworICAgIGJvb2wgYWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2UmLCBJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBp
bmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdCBX
QVJOX1VOVVNFRF9SRVRVUk47CiAKICAgICBjb25zdCBJREJJbmRleE1ldGFkYXRhIG1faW5kZXhN
ZXRhZGF0YTsKICAgICBJbmRleEtleXMgbV9pbmRleEtleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZS5oCmluZGV4IGRkNzNjZGYuLjUyNDY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZS5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgYWRkUHJlZW1wdGl2ZUV2ZW50KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0
ZVByZWVtcHRpdmVFdmVudCgpID0gMDsKIAotICAgIHZpcnR1YWwgSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiogYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSA9IDA7CisgICAg
dmlydHVhbCBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiBiYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbigpID0gMDsKICAgICB2aXJ0dWFsIElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZSYgZGF0YWJhc2UoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3JlYXRlQ3Vyc29yQmFja2VuZChJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OkN1cnNvciYsIEluZGV4ZWREQjo6Q3Vyc29yVHlwZSwgSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJh
Y2tpbmdTdG9yZUxldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcAppbmRleCBjZmJmMjcxLi5iYmQ2ODQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAKQEAgLTU5Miw3ICs1OTIs
NyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNyZWF0ZUlEQkRhdGFiYXNlTWV0YURh
dGEoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OnVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBy
b3dJZCwgaW50NjRfdCBpbnRWZXJzaW9uKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjp1
cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbikK
IHsKICAgICBpZiAoaW50VmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNp
b24pCiAgICAgICAgIGludFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0SW50
VmVyc2lvbjsKQEAgLTYwMSw3ICs2MDEsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6
OnVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJCYWNraW5nU3RvcmVJbnRlcmZhYwogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OnVwZGF0ZUlE
QkRhdGFiYXNlTWV0YURhdGEoSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IHJvd0lkLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCitib29sIElE
QkJhY2tpbmdTdG9yZUxldmVsREI6OnVwZGF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoSURCQmFja2lu
Z1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3Qgcm93SWQs
IGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsKICAgICBwdXRTdHJpbmcoVHJhbnNhY3Rpb246Omxl
dmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pLCBEYXRhYmFzZU1ldGFEYXRhS2V5Ojpl
bmNvZGUocm93SWQsIERhdGFiYXNlTWV0YURhdGFLZXk6OlVzZXJWZXJzaW9uKSwgdmVyc2lvbik7
CiAgICAgcmV0dXJuIHRydWU7CkBAIC03NzQsNyArNzc0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJO
IHN0YXRpYyBib29sIHNldE1heE9iamVjdFN0b3JlSWQoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFu
c2FjdGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBhdXRv
SW5jcmVtZW50KQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVPYmplY3RTdG9y
ZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQogewogICAg
IExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Y3JlYXRlT2JqZWN0U3Rv
cmUiKTsKICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3Rv
cmVJZCkpCkBAIC04MDUsNyArODA1LDcgQEAgYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpj
cmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpkZWxldGVPYmpl
Y3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
biwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCitib29sIElEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OmRlbGV0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OmRlbGV0ZU9iamVjdFN0b3JlIik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlk
SWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQpAQCAtODM0LDcgKzgzNCw3IEBAIGJvb2wg
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpUcmFuc2FjCiAgICAgcmV0dXJuIGNsZWFyT2JqZWN0U3RvcmUodHJhbnNhY3Rp
b24sIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OmdldFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IElEQktleSYga2V5LCBWZWN0b3I8Y2hhcj4mIHJlY29yZCkKK2Jvb2wgSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6Z2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFZlY3RvcjxjaGFyPiYgcmVjb3JkKQogewogICAgIExP
RyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Z2V0UmVjb3JkIik7CiAgICAg
aWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQpAQCAt
ODkyLDcgKzg5Miw3IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGF0aWMgYm9vbCBnZXROZXdWZXJz
aW9uTnVtYmVyKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3RpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0UmVjb3JkKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBwcnBWYWx1ZSwgSURCUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRp
ZmllcikKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6cHV0UmVjb3JkKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBwcnBWYWx1ZSwgSURCUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRp
ZmllcikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6OnB1
dFJlY29yZCIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmpl
Y3RTdG9yZUlkKSkKQEAgLTkyMiw3ICs5MjIsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVs
REI6OnB1dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNsZWFy
T2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNh
Y3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQorYm9vbCBJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjpjbGVhck9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdT
dG9yZUxldmVsREI6OmNsZWFyT2JqZWN0U3RvcmUiKTsKICAgICBpZiAoIUtleVByZWZpeDo6dmFs
aWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCkBAIC05MzUsNyArOTM1LDcgQEAgYm9v
bCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjbGVhck9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBJREJSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKQor
Ym9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3Jl
SW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJ
ZGVudGlmaWVyKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6ZGVsZXRlUmVjb3JkIik7CiAKQEAgLTk1Miw3ICs5NTIsNyBAQCBib29sIElEQkJhY2tpbmdT
dG9yZUxldmVsREI6OmRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5z
YWN0aW9uKgogfQogCiAKLWJvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6Z2V0S2V5R2VuZXJh
dG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGlu
dDY0X3QmIGtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIpCitib29sIElEQkJhY2tpbmdTdG9yZUxl
dmVsREI6OmdldEtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90JiBrZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKQogewog
ICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgYm9vbCBJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdT
dG9yZUludGVyZmEKICAgICByZXR1cm4ga2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcjsKIH0KIAot
Ym9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJl
bnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5l
d051bWJlciwgYm9vbCBjaGVja0N1cnJlbnQpCitib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6
Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbmV3TnVtYmVyLCBib29sIGNoZWNrQ3VycmVudCkK
IHsKICAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJ
ZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMjIsNyArMTAyMiw3IEBAIGJvb2wgSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVy
KElEQkJhY2tpbmdTdG9yCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZh
Y2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBSZWZQdHI8SURCUmVjb3JkSWRlbnRp
Zmllcj4mIGZvdW5kSURCUmVjb3JkSWRlbnRpZmllcikKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2
ZWxEQjo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBSZWZQdHI8SURCUmVjb3JkSWRlbnRpZmllcj4m
IGZvdW5kSURCUmVjb3JkSWRlbnRpZmllcikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJh
Y2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luT2JqZWN0U3RvcmUiKTsKICAgICBpZiAoIUtl
eVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCkBAIC0xMTQzLDcg
KzExNDMsNyBAQCBXQVJOX1VOVVNFRF9SRVRVUk4gc3RhdGljIGJvb2wgc2V0TWF4SW5kZXhJZChM
ZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbgogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmNyZWF0ZUluZGV4KElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0
aUVudHJ5KQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVJbmRleChJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGlzVW5pcXVlLCBib29s
IGlzTXVsdGlFbnRyeSkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxl
dmVsREI6OmNyZWF0ZUluZGV4Iik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFi
YXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQpKQpAQCAtMTE2NCw3ICsxMTY0LDcgQEAgYm9v
bCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVJbmRleChJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlRyYW5zYWN0aW9uKgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tp
bmdTdG9yZUxldmVsREI6OmRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKQorYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpk
ZWxldGVJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3Qg
aW5kZXhJZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6
OmRlbGV0ZUluZGV4Iik7CiAgICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlSWQsIGluZGV4SWQpKQpAQCAtMTE4MSw3ICsxMTgxLDcgQEAgYm9vbCBJREJC
YWNraW5nU3RvcmVMZXZlbERCOjpkZWxldGVJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OnB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBrZXksIGNvbnN0IElE
QlJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCitib29sIElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OnB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBrZXksIGNvbnN0IElE
QlJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7CiAgICAgTE9HKFN0b3JhZ2VB
UEksICJJREJCYWNraW5nU3RvcmVMZXZlbERCOjpwdXRJbmRleERhdGFGb3JSZWNvcmQiKTsKICAg
ICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CkBAIC0xMjQ1LDcgKzEyNDUsNyBAQCBzdGF0aWMgYm9v
bCB2ZXJzaW9uRXhpc3RzKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9y
ZUxldmVsREI6OmZpbmRLZXlJbkluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgVmVjdG9yPGNoYXI+JiBm
b3VuZEVuY29kZWRQcmltYXJ5S2V5LCBib29sJiBmb3VuZCkKK2Jvb2wgSURCQmFja2luZ1N0b3Jl
TGV2ZWxEQjo6ZmluZEtleUluSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBWZWN0b3I8Y2hhcj4mIGZv
dW5kRW5jb2RlZFByaW1hcnlLZXksIGJvb2wmIGZvdW5kKQogewogICAgIExPRyhTdG9yYWdlQVBJ
LCAiSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6ZmluZEtleUluSW5kZXgiKTsKICAgICBBU1NFUlQo
S2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSk7
CkBAIC0xMjg3LDcgKzEyODcsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmZpbmRL
ZXlJbkluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3RpbwogICAgIH0KIH0K
IAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpnZXRQcmltYXJ5S2V5VmlhSW5kZXgoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0
IElEQktleSYga2V5LCBSZWZQdHI8SURCS2V5PiYgcHJpbWFyeUtleSkKK2Jvb2wgSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6Z2V0UHJpbWFyeUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgUmVm
UHRyPElEQktleT4mIHByaW1hcnlLZXkpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpnZXRQcmltYXJ5S2V5VmlhSW5kZXgiKTsKICAgICBpZiAoIUtleVBy
ZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCkpCkBAIC0x
MzA4LDcgKzEzMDgsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmdldFByaW1hcnlL
ZXlWaWFJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZUxldmVsREI6OmtleUV4aXN0c0luSW5kZXgoSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0
IElEQktleSYgaW5kZXhLZXksIFJlZlB0cjxJREJLZXk+JiBmb3VuZFByaW1hcnlLZXksIGJvb2wm
IGV4aXN0cykKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6a2V5RXhpc3RzSW5JbmRleChJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29u
c3QgSURCS2V5JiBpbmRleEtleSwgUmVmUHRyPElEQktleT4mIGZvdW5kUHJpbWFyeUtleSwgYm9v
bCYgZXhpc3RzKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qjo6a2V5RXhpc3RzSW5JbmRleCIpOwogICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRh
YmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSkKQEAgLTE5NjQsNyArMTk2NCw3IEBAIHN0
YXRpYyBib29sIGluZGV4Q3Vyc29yT3B0aW9ucyhMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0
aW9uLCBpbnQ2NF90IGRhdGFiYXNlCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLVBhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6
Om9wZW5PYmplY3RTdG9yZUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24g
ZGlyZWN0aW9uKQorUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4g
SURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRl
eGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCiAKIHsKICAgICBMT0coU3RvcmFnZUFQ
SSwgIklEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5PYmplY3RTdG9yZUN1cnNvciIpOwpAQCAt
MTk3OSw3ICsxOTc5LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1
cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFMKICAgICByZXR1cm4gY3Vy
c29yLnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OkN1cnNvcj4gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFN0b3JlS2V5Q3Vyc29y
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2Uq
IHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCitQYXNzUmVmUHRy
PElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpvcGVuT2JqZWN0U3RvcmVLZXlDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBjb25zdCBJREJLZXlSYW5nZSogcmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkJhY2tpbmdTdG9yZUxl
dmVsREI6Om9wZW5PYmplY3RTdG9yZUtleUN1cnNvciIpOwogICAgIExldmVsREJUcmFuc2FjdGlv
biogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rp
b246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwpAQCAtMTk5Myw3ICsxOTkz
LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQjo6b3Blbk9iamVjdFMKICAgICByZXR1cm4gY3Vyc29yLnJlbGVhc2Uo
KTsKIH0KIAotUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gSURC
QmFja2luZ1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4S2V5Q3Vyc29yKElEQkJhY2tpbmdTdG9yZUlu
dGVyZmFjZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSog
cmFuZ2UsIEluZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IElEQkJhY2tpbmdTdG9yZUxldmVsREI6
Om9wZW5JbmRleEtleUN1cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2UqIHJhbmdlLCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpvcGVuSW5kZXhLZXlDdXJzb3IiKTsKICAgICBMZXZlbERCVHJhbnNh
Y3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5z
YWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKQEAgLTIwMDcsNyAr
MjAwNyw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IElE
QkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEtlCiAgICAgcmV0dXJuIGN1cnNvci5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+
IElEQkJhY2tpbmdTdG9yZUxldmVsREI6Om9wZW5JbmRleEN1cnNvcihJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5UmFuZ2Uq
IHJhbmdlLCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24pCitQYXNzUmVmUHRy
PElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBJREJCYWNraW5nU3RvcmVMZXZlbERC
OjpvcGVuSW5kZXhDdXJzb3IoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYg
dHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhlZERCOjpDdXJz
b3JEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQjo6b3BlbkluZGV4Q3Vyc29yIik7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9u
KiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlv
bjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVs
REIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQi5oCmluZGV4IDI5YmFjMDIuLmUwY2U1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxE
Qi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5oCkBAIC02NywzMCArNjcsMzIgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZUxldmVsREI+IG9wZW5Jbk1lbW9yeShjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIExldmVsREJGYWN0b3J5Kik7CiAgICAgV2Vha1B0cjxJREJCYWNr
aW5nU3RvcmVMZXZlbERCPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7IH0KIAorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24+IGNyZWF0ZUJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uKCk7CisKICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGdldERhdGFiYXNlTmFtZXMoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0SURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5h
bWUsIElEQkRhdGFiYXNlTWV0YWRhdGEqLCBib29sJiBzdWNjZXNzKSBPVkVSUklERSBXQVJOX1VO
VVNFRF9SRVRVUk47CiAgICAgdmlydHVhbCBib29sIGNyZWF0ZUlEQkRhdGFiYXNlTWV0YURhdGEo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGludDY0X3QgaW50VmVy
c2lvbiwgaW50NjRfdCYgcm93SWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJ
REJEYXRhYmFzZU1ldGFEYXRhKElEQkJhY2tpbmdTdG9yZUxldmVsREI6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCByb3dJZCwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKLSAgICB2aXJ0dWFsIGJvb2wg
dXBkYXRlSURCRGF0YWJhc2VJbnRWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qLCBpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJREJEYXRhYmFzZU1ldGFEYXRhKElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IHJvd0lkLCBjb25zdCBTdHJpbmcmIHZl
cnNpb24pOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24oSURC
QmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3Qgcm93SWQsIGludDY0
X3QgaW50VmVyc2lvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZURhdGFiYXNl
KGNvbnN0IFN0cmluZyYgbmFtZSkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T2Jq
ZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0YTo6T2JqZWN0
U3RvcmVNYXAqKSBPVkVSUklERSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBib29s
IGNyZWF0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24q
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkKSBPVkVSUklERSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgVmVjdG9yPGNo
YXI+JiByZWNvcmQpIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJv
b2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBJREJSZWNvcmRJZGVudGlmaWVyKikgT1ZFUlJJ
REUgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBjbGVhck9iamVjdFN0b3Jl
KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgT1ZFUlJJREUgV0FSTl9VTlVTRURfUkVUVVJOOwot
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJSZWNvcmRJZGVudGlmaWVyJikgT1ZFUlJJREUgV0FSTl9VTlVTRURfUkVUVVJOOwot
ICAgIHZpcnR1YWwgYm9vbCBnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCYgY3VycmVudE51bWJlcikgT1ZFUlJJREUgV0FSTl9VTlVT
RURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBtYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJl
bnROdW1iZXIoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld1N0YXRlLCBib29s
IGNoZWNrQ3VycmVudCkgT1ZFUlJJREUgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwg
Ym9vbCBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29u
c3QgSURCS2V5JiwgUmVmUHRyPElEQlJlY29yZElkZW50aWZpZXI+JiBmb3VuZElEQlJlY29yZElk
ZW50aWZpZXIpIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKLQotICAgIHZpcnR1YWwgYm9v
bCBjcmVhdGVJbmRleChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBpc1VuaXF1ZSwgYm9v
bCBpc011bHRpRW50cnkpIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFs
IGJvb2wgZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4
SWQpIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgcHV0SW5k
ZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBJREJLZXkmLCBjb25zdCBJREJSZWNvcmRJZGVudGlmaWVyKikgT1ZFUlJJREUgV0FS
Tl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBnZXRQcmltYXJ5S2V5VmlhSW5kZXgo
SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYs
IFJlZlB0cjxJREJLZXk+JiBwcmltYXJ5S2V5KSBPVkVSUklERSBXQVJOX1VOVVNFRF9SRVRVUk47
Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoSURCQmFja2luZ1N0b3JlSW50ZXJm
YWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYgaW5kZXhLZXksIFJlZlB0cjxJREJL
ZXk+JiBmb3VuZFByaW1hcnlLZXksIGJvb2wmIGV4aXN0cykgT1ZFUlJJREUgV0FSTl9VTlVTRURf
UkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3Rv
cmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wg
YXV0b0luY3JlbWVudCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGRlbGV0ZU9iamVjdFN0
b3JlKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgT1ZFUlJJREUgV0FSTl9VTlVTRURfUkVUVVJO
OworCisgICAgdmlydHVhbCBib29sIGdldFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IElEQktleSYsIFZlY3RvcjxjaGFyPiYgcmVjb3JkKSBPVkVSUklERSBXQVJOX1VOVVNF
RF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIHB1dFJlY29yZChJREJCYWNraW5nU3RvcmVJbnRl
cmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGNvbnN0IElEQktleSYsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgSURC
UmVjb3JkSWRlbnRpZmllciopIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0
dWFsIGJvb2wgY2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5z
YWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIE9WRVJS
SURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmVjb3JkKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCUmVjb3JkSWRlbnRpZmllciYpIE9WRVJS
SURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2VuZXJhdG9y
Q3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QmIGN1cnJlbnRO
dW1iZXIpIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgbWF5
YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBuZXdTdGF0ZSwgYm9vbCBjaGVja0N1cnJlbnQpIE9WRVJSSURFIFdBUk5fVU5V
U0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wga2V5RXhpc3RzSW5PYmplY3RTdG9yZShJREJC
YWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJSZWNvcmRJZGVu
dGlmaWVyPiYgZm91bmRJREJSZWNvcmRJZGVudGlmaWVyKSBPVkVSUklERSBXQVJOX1VOVVNFRF9S
RVRVUk47CisKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSW5kZXgoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5
UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wgaXNNdWx0aUVudHJ5KSBPVkVSUklERSBXQVJOX1VO
VVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBPVkVSUklERSBXQVJOX1VOVVNFRF9SRVRVUk47
CisgICAgdmlydHVhbCBib29sIHB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgSURCUmVjb3Jk
SWRlbnRpZmllciopIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJv
b2wgZ2V0UHJpbWFyeUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNh
Y3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBSZWZQdHI8SURCS2V5PiYgcHJpbWFyeUtleSkgT1ZF
UlJJREUgV0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbklu
ZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJL
ZXkmIGluZGV4S2V5LCBSZWZQdHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBleGlz
dHMpIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKIAogICAgIGNsYXNzIEN1cnNvciA6IHB1
YmxpYyBJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvciB7CiAgICAgcHVibGljOgpAQCAt
MTM5LDI2ICsxNDEsMjcgQEAgcHVibGljOgogICAgICAgICBSZWZQdHI8SURCUmVjb3JkSWRlbnRp
Zmllcj4gbV9yZWNvcmRJZGVudGlmaWVyOwogICAgIH07CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUtleUN1
cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlQ3Vyc29yKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBvcGVuSW5kZXhLZXlDdXJzb3IoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3BlbkluZGV4Q3Vyc29yKElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIElu
ZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUtleUN1
cnNvcihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3Blbk9iamVjdFN0b3JlQ3Vyc29yKElE
QkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5UmFuZ2UqLCBJbmRleGVkREI6OkN1
cnNvckRpcmVjdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6Q3Vyc29yPiBvcGVuSW5kZXhLZXlDdXJzb3IoSURCQmFja2luZ1N0
b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVJbnRlcmZhY2U6OkN1cnNvcj4gb3BlbkluZGV4Q3Vyc29yKElEQkJhY2tp
bmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSosIElu
ZGV4ZWREQjo6Q3Vyc29yRGlyZWN0aW9uKSBPVkVSUklERTsKIAotICAgIGNsYXNzIFRyYW5zYWN0
aW9uIDogcHVibGljIElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24geworICAg
IGNsYXNzIFRyYW5zYWN0aW9uIEZJTkFMIDogcHVibGljIElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24gewogICAgIHB1YmxpYzoKICAgICAgICAgZXhwbGljaXQgVHJhbnNhY3Rp
b24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlKik7Ci0gICAgICAgIHZvaWQgYmVnaW4oKTsKLSAg
ICAgICAgYm9vbCBjb21taXQoKTsKLSAgICAgICAgdm9pZCByb2xsYmFjaygpOwotICAgICAgICB2
b2lkIHJlc2V0KCkKKworICAgICAgICB2aXJ0dWFsIHZvaWQgYmVnaW4oKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGNvbW1pdCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHJlc2V0VHJhbnNhY3Rpb24oKQogICAgICAgICB7CiAgICAgICAg
ICAgICBtX2JhY2tpbmdTdG9yZSA9IDA7CiAgICAgICAgICAgICBtX3RyYW5zYWN0aW9uID0gMDsK
ICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJU
cmFuc2FjdGlvbkZyb20oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24pCisgICAgICAgIHN0YXRpYyBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFu
c2FjdGlvbkZyb20oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxJREJCYWNr
aW5nU3RvcmVMZXZlbERCOjpUcmFuc2FjdGlvbio+KHRyYW5zYWN0aW9uKS0+bV90cmFuc2FjdGlv
bi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxJREJCYWNraW5nU3RvcmVM
ZXZlbERCOjpUcmFuc2FjdGlvbiY+KHRyYW5zYWN0aW9uKS5tX3RyYW5zYWN0aW9uLmdldCgpOwog
ICAgICAgICB9CiAKICAgICBwcml2YXRlOgpAQCAtMTc3LDcgKzE4MCw3IEBAIHByb3RlY3RlZDoK
IHByaXZhdGU6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgUGFzc093blB0cjxMZXZlbERCRGF0YWJh
c2U+LCBQYXNzT3duUHRyPExldmVsREJDb21wYXJhdG9yPik7CiAKLSAgICBib29sIGZpbmRLZXlJ
bkluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJ
REJLZXkmLCBWZWN0b3I8Y2hhcj4mIGZvdW5kRW5jb2RlZFByaW1hcnlLZXksIGJvb2wmIGZvdW5k
KTsKKyAgICBib29sIGZpbmRLZXlJbkluZGV4KElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJh
bnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBWZWN0b3I8Y2hhcj4mIGZvdW5kRW5jb2RlZFBy
aW1hcnlLZXksIGJvb2wmIGZvdW5kKTsKICAgICBib29sIGdldEluZGV4ZXMoaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIElEQk9iamVjdFN0b3JlTWV0YWRhdGE6Oklu
ZGV4TWFwKikgV0FSTl9VTlVTRURfUkVUVVJOOwogCiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwCmluZGV4IDRi
MDJkMzcuLmQ2MWFkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCLmNwcApAQCAtNTcsNyArNTcsNyBAQCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERC
OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKElEQkRhdGFiYXNlQmFja2VuZEltcAogICAg
ICwgbV9jb21taXRQZW5kaW5nKGZhbHNlKQogICAgICwgbV9jYWxsYmFja3MoY2FsbGJhY2tzKQog
ICAgICwgbV9kYXRhYmFzZShkYXRhYmFzZUJhY2tlbmQpCi0gICAgLCBtX3RyYW5zYWN0aW9uKGRh
dGFiYXNlQmFja2VuZC0+YmFja2luZ1N0b3JlKCkpCisgICAgLCBtX2JhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uKGRhdGFiYXNlQmFja2VuZC0+YmFja2luZ1N0b3JlKCktPmNyZWF0ZUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uKCkpCiAgICAgLCBtX3Rhc2tUaW1lcih0aGlzLCAmSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQjo6dGFza1RpbWVyRmlyZWQpCiAgICAgLCBtX3BlbmRpbmdQcmVlbXB0aXZl
RXZlbnRzKDApCiAgICAgLCBtX2JhY2tpbmdTdG9yZShkYXRhYmFzZUJhY2tlbmQtPmJhY2tpbmdT
dG9yZSgpKQpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQjo6YWJvcnQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAgICBtX3Rh
c2tUaW1lci5zdG9wKCk7CiAKICAgICBpZiAod2FzUnVubmluZykKLSAgICAgICAgbV90cmFuc2Fj
dGlvbi5yb2xsYmFjaygpOworICAgICAgICBtX2JhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLT5yb2xs
YmFjaygpOwogCiAgICAgLy8gUnVuIHRoZSBhYm9ydCB0YXNrcywgaWYgYW55LgogICAgIHdoaWxl
ICghbV9hYm9ydFRhc2tRdWV1ZS5pc0VtcHR5KCkpIHsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lk
IElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OmFib3J0KFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VFcnJvcj4gZXJyb3IpCiAgICAgLy8gYXJlIGZpcmVkLCBhcyB0aGUgc2NyaXB0IGNhbGxiYWNr
cyBtYXkgcmVsZWFzZSByZWZlcmVuY2VzIGFuZCBhbGxvdyB0aGUgYmFja2luZyBzdG9yZQogICAg
IC8vIGl0c2VsZiB0byBiZSByZWxlYXNlZCwgYW5kIG9yZGVyIGlzIGNyaXRpY2FsLgogICAgIGNs
b3NlT3BlbkN1cnNvcnMoKTsKLSAgICBtX3RyYW5zYWN0aW9uLnJlc2V0KCk7CisgICAgbV9iYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbi0+cmVzZXRUcmFuc2FjdGlvbigpOwogCiAgICAgLy8gVHJhbnNh
Y3Rpb25zIG11c3QgYWxzbyBiZSBtYXJrZWQgYXMgY29tcGxldGVkIGJlZm9yZSB0aGUgZnJvbnQt
ZW5kIGlzIG5vdGlmaWVkLCBhcwogICAgIC8vIHRoZSB0cmFuc2FjdGlvbiBjb21wbGV0aW9uIHVu
YmxvY2tzIG9wZXJhdGlvbnMgbGlrZSBjbG9zaW5nIGNvbm5lY3Rpb25zLgpAQCAtMjA3LDEzICsy
MDcsMTMgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpjb21taXQoKQogICAg
IGJvb2wgdW51c2VkID0gbV9zdGF0ZSA9PSBVbnVzZWQ7CiAgICAgbV9zdGF0ZSA9IEZpbmlzaGVk
OwogCi0gICAgYm9vbCBjb21taXR0ZWQgPSB1bnVzZWQgfHwgbV90cmFuc2FjdGlvbi5jb21taXQo
KTsKKyAgICBib29sIGNvbW1pdHRlZCA9IHVudXNlZCB8fCBtX2JhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uLT5jb21taXQoKTsKIAogICAgIC8vIEJhY2tpbmcgc3RvcmUgcmVzb3VyY2VzIChoZWxkIHZp
YSBjdXJzb3JzKSBtdXN0IGJlIHJlbGVhc2VkIGJlZm9yZSBzY3JpcHQgY2FsbGJhY2tzCiAgICAg
Ly8gYXJlIGZpcmVkLCBhcyB0aGUgc2NyaXB0IGNhbGxiYWNrcyBtYXkgcmVsZWFzZSByZWZlcmVu
Y2VzIGFuZCBhbGxvdyB0aGUgYmFja2luZyBzdG9yZQogICAgIC8vIGl0c2VsZiB0byBiZSByZWxl
YXNlZCwgYW5kIG9yZGVyIGlzIGNyaXRpY2FsLgogICAgIGNsb3NlT3BlbkN1cnNvcnMoKTsKLSAg
ICBtX3RyYW5zYWN0aW9uLnJlc2V0KCk7CisgICAgbV9iYWNraW5nU3RvcmVUcmFuc2FjdGlvbi0+
cmVzZXRUcmFuc2FjdGlvbigpOwogCiAgICAgLy8gVHJhbnNhY3Rpb25zIG11c3QgYWxzbyBiZSBt
YXJrZWQgYXMgY29tcGxldGVkIGJlZm9yZSB0aGUgZnJvbnQtZW5kIGlzIG5vdGlmaWVkLCBhcwog
ICAgIC8vIHRoZSB0cmFuc2FjdGlvbiBjb21wbGV0aW9uIHVuYmxvY2tzIG9wZXJhdGlvbnMgbGlr
ZSBjbG9zaW5nIGNvbm5lY3Rpb25zLgpAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQjo6dGFza1RpbWVyRmlyZWQoVGltZXI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2CiAgICAgQVNTRVJUKCFpc1Rhc2tRdWV1ZUVtcHR5KCkpOwogCiAgICAgaWYgKG1f
c3RhdGUgPT0gU3RhcnRQZW5kaW5nKSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb24uYmVnaW4oKTsK
KyAgICAgICAgbV9iYWNraW5nU3RvcmVUcmFuc2FjdGlvbi0+YmVnaW4oKTsKICAgICAgICAgbV9z
dGF0ZSA9IFJ1bm5pbmc7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQi5oCmluZGV4IGUwOTQzMmEuLmU3NDJlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVucmVnaXN0ZXJPcGVuQ3Vyc29yKElEQkN1cnNvckJhY2tlbmRMZXZlbERCKik7CiAg
ICAgdmlydHVhbCB2b2lkIGFkZFByZWVtcHRpdmVFdmVudCgpIE9WRVJSSURFIHsgbV9wZW5kaW5n
UHJlZW1wdGl2ZUV2ZW50cysrOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUHJlZW1w
dGl2ZUV2ZW50KCkgT1ZFUlJJREUgeyBtX3BlbmRpbmdQcmVlbXB0aXZlRXZlbnRzLS07IEFTU0VS
VChtX3BlbmRpbmdQcmVlbXB0aXZlRXZlbnRzID49IDApOyB9Ci0gICAgdmlydHVhbCBJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uKiBiYWNraW5nU3RvcmVUcmFuc2FjdGlvbigp
IHsgcmV0dXJuICZtX3RyYW5zYWN0aW9uOyB9CisgICAgdmlydHVhbCBJREJCYWNraW5nU3RvcmVJ
bnRlcmZhY2U6OlRyYW5zYWN0aW9uJiBiYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpIHsgcmV0dXJu
ICptX2JhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOyB9CiAKICAgICB2aXJ0dWFsIElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZSYgZGF0YWJhc2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAqbV9k
YXRhYmFzZTsgfQogCkBAIC0xMTMsNyArMTEzLDcgQEAgcHJpdmF0ZToKICAgICBUYXNrUXVldWUg
bV9wcmVlbXB0aXZlVGFza1F1ZXVlOwogICAgIFRhc2tRdWV1ZSBtX2Fib3J0VGFza1F1ZXVlOwog
Ci0gICAgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6VHJhbnNhY3Rpb24gbV90cmFuc2FjdGlvbjsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
bj4gbV9iYWNraW5nU3RvcmVUcmFuc2FjdGlvbjsKIAogICAgIC8vIEZJWE1FOiBkZWxldGUgdGhl
IHRpbWVyIG9uY2Ugd2UgaGF2ZSB0aHJlYWRzIGluc3RlYWQuCiAgICAgVGltZXI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQj4gbV90YXNrVGltZXI7Cg==
</data>
<flag name="review"
          id="238168"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>