<?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>157308</bug_id>
          
          <creation_ts>2016-05-03 05:21:21 -0700</creation_ts>
          <short_desc>Rename JSKeyValueIterator as JSDOMIterator</short_desc>
          <delta_ts>2016-05-04 01:21: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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1189723</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-03 05:21:21 -0700</bug_when>
    <thetext>With some improvements, JSKeyValueIterator may handle set iterators as well as map iterators.
As a first step, it might be good to rename it as JSDOMIterator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189724</commentid>
    <comment_count>1</comment_count>
      <attachid>277989</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-05-03 05:23:23 -0700</bug_when>
    <thetext>Created attachment 277989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189914</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-03 17:28:28 -0700</bug_when>
    <thetext>Attachment 277989 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/JSDOMIterator.h:58:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190006</commentid>
    <comment_count>3</comment_count>
      <attachid>277989</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-04 01:21:41 -0700</bug_when>
    <thetext>Comment on attachment 277989
Patch

Clearing flags on attachment: 277989

Committed r200411: &lt;http://trac.webkit.org/changeset/200411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190007</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-04 01:21:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277989</attachid>
            <date>2016-05-03 05:23:23 -0700</date>
            <delta_ts>2016-05-04 01:21:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157308-20160503142359.patch</filename>
            <type>text/plain</type>
            <size>20381</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI2MGUwODlkMDhiMmY1
YjUxYjg0MWY5ZDJlZGUxODEzOGJhYzRiMS4uMjhlMWRlMWEzM2MwMjU5YjY2NDM3NzE4NTU1YjUz
ZDI3ZTc5NTlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA1LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgUmVuYW1l
IEpTS2V5VmFsdWVJdGVyYXRvciBhcyBKU0RPTUl0ZXJhdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTczMDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0tleVZhbHVlSXRlcmF0b3IuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NSXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTUl0ZXJhdG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01JdGVyYXRvclByb3RvdHlwZTo6SlNET01JdGVyYXRvclByb3RvdHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVLZXlWYWx1ZUl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmtleVZhbHVlSXRlcmF0b3JGb3JFYWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NSXRlcmF0
b3I8SlNXcmFwcGVyPjo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUl0ZXJhdG9y
PEpTV3JhcHBlcj46Om5leHQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01JdGVyYXRvclByb3Rv
dHlwZTxKU1dyYXBwZXI+OjpuZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NSXRlcmF0b3JQ
cm90b3R5cGU8SlNXcmFwcGVyPjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRm9udEZhY2VTZXRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkl0ZXJh
YmxlRnVuY3Rpb25zKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcDoKKwogMjAxNi0wNS0wMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hhbmdlIElETCBlbnVtZXJhdGlvbnMgdG8gYmUgbmVzdGVkIGluIHRoZWlyIEMr
KyBjbGFzcyBpbnN0ZWFkIG9mIGF0IFdlYkNvcmUgbmFtZXNwYWNlIGxldmVsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY3MWEzZjU0ZTM2
YWI5YzJkNjVjNGQ0MDBjMjA5MTIyZTY1ZjZiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaApAQCAtMCwwICsxLDE4OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTRE9N
SXRlcmF0b3JfaAorI2RlZmluZSBKU0RPTUl0ZXJhdG9yX2gKKworI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3QuaD4KKyNpbmNs
dWRlIDx0eXBlX3RyYWl0cz4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0eXBl
bmFtZSBKU1dyYXBwZXI+CitjbGFzcyBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IEpTQzo6SlNO
b25GaW5hbE9iamVjdDsKKyAgICB1c2luZyBET01XcmFwcGVkID0gdHlwZW5hbWUgSlNXcmFwcGVy
OjpET01XcmFwcGVkOworCisgICAgc3RhdGljIEpTRE9NSXRlcmF0b3JQcm90b3R5cGUqIGNyZWF0
ZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgSlNET01JdGVyYXRvclByb3RvdHlw
ZSogcHJvdG90eXBlID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU0RPTUl0ZXJh
dG9yUHJvdG90eXBlPih2bS5oZWFwKSkgSlNET01JdGVyYXRvclByb3RvdHlwZSh2bSwgc3RydWN0
dXJlKTsKKyAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKKyAgICB9CisKKyAgICBERUNMQVJFX0lORk87
CisKKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbmV4dChKU0M6OkV4ZWNTdGF0ZSopOworCitwcml2YXRlOgor
ICAgIEpTRE9NSXRlcmF0b3JQcm90b3R5cGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUpIDogQmFzZSh2bSwgc3RydWN0dXJlKSB7IH0KKworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKK307CisKK2VudW0gY2xhc3Mg
SXRlcmF0aW9uS2luZCB7IEtleSwgVmFsdWUsIEtleVZhbHVlIH07CisKK3RlbXBsYXRlPHR5cGVu
YW1lIEpTV3JhcHBlcj4KK2NsYXNzIEpTRE9NSXRlcmF0b3I6IHB1YmxpYyBKU0RPTU9iamVjdCB7
CitwdWJsaWM6CisgICAgdXNpbmcgRE9NV3JhcHBlZCA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3Jl
ZmVyZW5jZTxkZWNsdHlwZShzdGQ6OmRlY2x2YWw8SlNXcmFwcGVyPigpLndyYXBwZWQoKSk+Ojp0
eXBlOworICAgIHVzaW5nIEJhc2UgPSBKU0RPTU9iamVjdDsKKworICAgIERFQ0xBUkVfSU5GTzsK
KworICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCisgICAgeworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorCisgICAgc3RhdGljIEpTRE9NSXRlcmF0b3Iq
IGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNXcmFwcGVy
JiBpdGVyYXRlZE9iamVjdCwgSXRlcmF0aW9uS2luZCBraW5kKQorICAgIHsKKyAgICAgICAgSlNE
T01JdGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpT
RE9NSXRlcmF0b3I+KHZtLmhlYXApKSBKU0RPTUl0ZXJhdG9yKHN0cnVjdHVyZSwgaXRlcmF0ZWRP
YmplY3QsIGtpbmQpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0pOworICAg
ICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgfQorCisgICAgc3RhdGljIEpTRE9NSXRlcmF0b3JQ
cm90b3R5cGU8SlNXcmFwcGVyPiogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mIHZtLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgeworICAgICAgICByZXR1cm4gSlNET01J
dGVyYXRvclByb3RvdHlwZTxKU1dyYXBwZXI+OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwKKyAg
ICAgICAgICAgIEpTRE9NSXRlcmF0b3JQcm90b3R5cGU8SlNXcmFwcGVyPjo6Y3JlYXRlU3RydWN0
dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsK
KyAgICB9CisKKyAgICBKU0M6OkpTVmFsdWUgbmV4dChKU0M6OkV4ZWNTdGF0ZSYpOworCitwcml2
YXRlOgorICAgIEpTRE9NSXRlcmF0b3IoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNXcmFw
cGVyJiBpdGVyYXRlZE9iamVjdCwgSXRlcmF0aW9uS2luZCBraW5kKQorICAgICAgICA6IEJhc2Uo
c3RydWN0dXJlLCAqaXRlcmF0ZWRPYmplY3QuZ2xvYmFsT2JqZWN0KCkpCisgICAgICAgICwgbV9p
dGVyYXRvcihpdGVyYXRlZE9iamVjdC53cmFwcGVkKCkuY3JlYXRlSXRlcmF0b3IoKSkKKyAgICAg
ICAgLCBtX2tpbmQoa2luZCkKKyAgICB7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0M6OkpTQ2VsbCopOworCisgICAgdHlwZW5hbWUgRE9NV3JhcHBlZDo6SXRlcmF0b3IgbV9p
dGVyYXRvcjsKKyAgICBJdGVyYXRpb25LaW5kIG1fa2luZDsKK307CisKK3RlbXBsYXRlPHR5cGVu
YW1lIEpTV3JhcHBlcj4KK0pTQzo6RW5jb2RlZEpTVmFsdWUgY3JlYXRlS2V5VmFsdWVJdGVyYXRv
cihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEl0ZXJhdGlvbktpbmQga2luZCwgY29uc3QgY2hhciog
cHJvcGVydHlOYW1lKQoreworICAgIGF1dG8gd3JhcHBlciA9IEpTQzo6anNEeW5hbWljQ2FzdDxK
U1dyYXBwZXIqPihzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgaWYgKFVOTElLRUxZKCF3cmFwcGVy
KSkKKyAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcihzdGF0ZSwgSlNXcmFwcGVyOjpp
bmZvKCktPmNsYXNzTmFtZSwgcHJvcGVydHlOYW1lKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0ID0gKndyYXBwZXItPmdsb2JhbE9iamVjdCgpOworICAgIHJldHVybiBKU0M6
OkpTVmFsdWU6OmVuY29kZShKU0RPTUl0ZXJhdG9yPEpTV3JhcHBlcj46OmNyZWF0ZShnbG9iYWxP
YmplY3Qudm0oKSwgZ2V0RE9NU3RydWN0dXJlPEpTRE9NSXRlcmF0b3I8SlNXcmFwcGVyPj4oZ2xv
YmFsT2JqZWN0LnZtKCksIGdsb2JhbE9iamVjdCksICp3cmFwcGVyLCBraW5kKSk7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIEpTV3JhcHBlcj4KK0pTQzo6RW5jb2RlZEpTVmFsdWUga2V5VmFsdWVJ
dGVyYXRvckZvckVhY2goSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBjaGFyKiBwcm9wZXJ0
eU5hbWUpCit7CisgICAgYXV0byB3cmFwcGVyID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTV3JhcHBl
cio+KHN0YXRlLnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoVU5MSUtFTFkoIXdyYXBwZXIpKQorICAg
ICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKHN0YXRlLCBKU1dyYXBwZXI6OmluZm8oKS0+
Y2xhc3NOYW1lLCBwcm9wZXJ0eU5hbWUpOworCisgICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsK
KyAgICBKU0M6OkNhbGxUeXBlIGNhbGxUeXBlID0gSlNDOjpnZXRDYWxsRGF0YShzdGF0ZS5hcmd1
bWVudCgwKSwgY2FsbERhdGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBKU0M6OkNhbGxUeXBlOjpO
b25lKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmc3RhdGUpOworCisgICAgYXV0
byBpdGVyYXRvciA9IHdyYXBwZXItPndyYXBwZWQoKS5jcmVhdGVJdGVyYXRvcigpOworICAgIHdo
aWxlIChhdXRvIHZhbHVlID0gaXRlcmF0b3IubmV4dChzdGF0ZSkpIHsKKyAgICAgICAgSlNDOjpN
YXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQo
dG9KUygmc3RhdGUsIHdyYXBwZXItPmdsb2JhbE9iamVjdCgpLCB2YWx1ZS52YWx1ZSgpLnZhbHVl
KSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQodG9KUygmc3RhdGUsIHdyYXBwZXItPmdsb2Jh
bE9iamVjdCgpLCB2YWx1ZS52YWx1ZSgpLmtleSkpOworICAgICAgICBhcmd1bWVudHMuYXBwZW5k
KHdyYXBwZXIpOworICAgICAgICBKU0M6OmNhbGwoJnN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwg
Y2FsbFR5cGUsIGNhbGxEYXRhLCB3cmFwcGVyLCBhcmd1bWVudHMpOworICAgICAgICBpZiAoc3Rh
dGUuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICB9IAorICAgIHJldHVy
biBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OmpzVW5kZWZpbmVkKCkpOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBKU1dyYXBwZXI+Cit2b2lkIEpTRE9NSXRlcmF0b3I8SlNXcmFwcGVyPjo6ZGVz
dHJveShKU0NlbGwqIGNlbGwpCit7CisgICAgSlNET01JdGVyYXRvcjxKU1dyYXBwZXI+KiB0aGlz
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01JdGVyYXRvcjxKU1dyYXBwZXI+Kj4oY2VsbCk7Cisg
ICAgdGhpc09iamVjdC0+SlNET01JdGVyYXRvcjxKU1dyYXBwZXI+Ojp+SlNET01JdGVyYXRvcigp
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBKU1dyYXBwZXI+CitKU0M6OkpTVmFsdWUgSlNET01J
dGVyYXRvcjxKU1dyYXBwZXI+OjpuZXh0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBh
dXRvIGl0ZXJhdG9yVmFsdWUgPSBtX2l0ZXJhdG9yLm5leHQoc3RhdGUpOworICAgIGlmICghaXRl
cmF0b3JWYWx1ZSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUl0ZXJhdG9yUmVzdWx0T2JqZWN0KCZz
dGF0ZSwgSlNDOjpqc1VuZGVmaW5lZCgpLCB0cnVlKTsKKworICAgIEpTQzo6SlNWYWx1ZSB2YWx1
ZTsKKyAgICBpZiAobV9raW5kID09IEl0ZXJhdGlvbktpbmQ6OlZhbHVlKQorICAgICAgICB2YWx1
ZSA9IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgaXRlcmF0b3JWYWx1ZS52YWx1ZSgpLnZh
bHVlKTsKKyAgICBlbHNlIGlmIChtX2tpbmQgPT0gSXRlcmF0aW9uS2luZDo6S2V5KQorICAgICAg
ICB2YWx1ZSA9IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgaXRlcmF0b3JWYWx1ZS52YWx1
ZSgpLmtleSk7CisgICAgZWxzZQorICAgICAgICB2YWx1ZSA9IGpzUGFpcihzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIGl0ZXJhdG9yVmFsdWUudmFsdWUoKS5rZXksIGl0ZXJhdG9yVmFsdWUudmFsdWUo
KS52YWx1ZSk7CisKKyAgICByZXR1cm4gY3JlYXRlSXRlcmF0b3JSZXN1bHRPYmplY3QoJnN0YXRl
LCB2YWx1ZSwgZmFsc2UpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBKU1dyYXBwZXI+CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNET01JdGVyYXRvclByb3RvdHlwZTxKU1dy
YXBwZXI+OjpuZXh0KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRE9NSXRlcmF0b3I8SlNXcmFwcGVyPio+KHN0YXRlLT50
aGlzVmFsdWUoKSk7CisgICAgaWYgKCFpdGVyYXRvcikKKyAgICAgICAgcmV0dXJuIEpTQzo6SlNW
YWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKHN0YXRlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBj
YWxsIG5leHQoKSBvbiBhIG5vbi1JdGVyYXRvciBvYmplY3QiKSkpOworCisgICAgcmV0dXJuIEpT
Qzo6SlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yLT5uZXh0KCpzdGF0ZSkpOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBKU1dyYXBwZXI+Cit2b2lkIEpTRE9NSXRlcmF0b3JQcm90b3R5cGU8SlNXcmFw
cGVyPjo6ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOworCisgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPm5leHQsIG5leHQsIEpTQzo6RG9u
dEVudW0sIDAsIEpTQzo6Tm9JbnRyaW5zaWMpOworfQorCit9CisKKyNlbmRpZiAvLyAhZGVmaW5l
ZChKU0RPTUl0ZXJhdG9yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ZvbnRGYWNlU2V0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Rm9udEZhY2VTZXRDdXN0b20uY3BwCmluZGV4IDlhM2FkMzBkODZiY2YwZjRkYjhmNWFhMDMwZjNh
MjlkYTlkZTBmM2MuLmRjYWUyOWQwZjhjYjE4OTJkZmYxM2Q0NTZkNDQ5MmQ3NDVkYzcxOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRm9udEZhY2VTZXRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRm9udEZhY2VTZXRDdXN0b20u
Y3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJGb250RmFjZS5oIgogI2luY2x1ZGUg
IkpTRm9udEZhY2UuaCIKLSNpbmNsdWRlICJKU0tleVZhbHVlSXRlcmF0b3IuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0tleVZhbHVlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTS2V5VmFs
dWVJdGVyYXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjUwY2JjYjExMjJi
NWM4NjA4Njc2YTg0OTI5YzljNWQzYjAwMjY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTS2V5VmFsdWVJ
dGVyYXRvci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTYgQ2Fub24sIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBKU0tleVZhbHVlSXRlcmF0
b3JfaAotI2RlZmluZSBKU0tleVZhbHVlSXRlcmF0b3JfaAotCi0jaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCi0jaW5jbHVkZSA8cnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdC5oPgotI2luY2x1
ZGUgPHR5cGVfdHJhaXRzPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVu
YW1lIEpTV3JhcHBlcj4KLWNsYXNzIEpTS2V5VmFsdWVJdGVyYXRvclByb3RvdHlwZSA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewotcHVibGljOgotICAgIHVzaW5nIEJhc2UgPSBKU0M6
OkpTTm9uRmluYWxPYmplY3Q7Ci0gICAgdXNpbmcgRE9NV3JhcHBlZCA9IHR5cGVuYW1lIEpTV3Jh
cHBlcjo6RE9NV3JhcHBlZDsKLQotICAgIHN0YXRpYyBKU0tleVZhbHVlSXRlcmF0b3JQcm90b3R5
cGUqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIHsKLSAgICAgICAgSlNLZXlWYWx1ZUl0
ZXJhdG9yUHJvdG90eXBlKiBwcm90b3R5cGUgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVD
ZWxsPEpTS2V5VmFsdWVJdGVyYXRvclByb3RvdHlwZT4odm0uaGVhcCkpIEpTS2V5VmFsdWVJdGVy
YXRvclByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKLSAgICAgICAgcHJvdG90eXBlLT5maW5pc2hD
cmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKLSAg
ICB9Ci0KLSAgICBERUNMQVJFX0lORk87Ci0KLSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQot
ICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbmV4dChKU0M6OkV4
ZWNTdGF0ZSopOwotCi1wcml2YXRlOgotICAgIEpTS2V5VmFsdWVJdGVyYXRvclByb3RvdHlwZShK
U0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUpIHsgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwotfTsKLQotZW51bSBjbGFzcyBJdGVyYXRpb25LaW5kIHsgS2V5LCBWYWx1ZSwg
S2V5VmFsdWUgfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgSlNXcmFwcGVyPgotY2xhc3MgSlNLZXlW
YWx1ZUl0ZXJhdG9yOiBwdWJsaWMgSlNET01PYmplY3QgewotcHVibGljOgotICAgIHVzaW5nIERP
TVdyYXBwZWQgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoc3RkOjpk
ZWNsdmFsPEpTV3JhcHBlcj4oKS53cmFwcGVkKCkpPjo6dHlwZTsKLSAgICB1c2luZyBCYXNlID0g
SlNET01PYmplY3Q7Ci0KLSAgICBERUNMQVJFX0lORk87Ci0KLSAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwot
ICAgIH0KLQotICAgIHN0YXRpYyBKU0tleVZhbHVlSXRlcmF0b3IqIGNyZWF0ZShKU0M6OlZNJiB2
bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNXcmFwcGVyJiBpdGVyYXRlZE9iamVjdCwg
SXRlcmF0aW9uS2luZCBraW5kKQotICAgIHsKLSAgICAgICAgSlNLZXlWYWx1ZUl0ZXJhdG9yKiBp
bnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNLZXlWYWx1ZUl0ZXJh
dG9yPih2bS5oZWFwKSkgSlNLZXlWYWx1ZUl0ZXJhdG9yKHN0cnVjdHVyZSwgaXRlcmF0ZWRPYmpl
Y3QsIGtpbmQpOwotICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTS2V5VmFsdWVJdGVyYXRv
clByb3RvdHlwZTxKU1dyYXBwZXI+KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYgdm0sIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBKU0tl
eVZhbHVlSXRlcmF0b3JQcm90b3R5cGU8SlNXcmFwcGVyPjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsCi0gICAgICAgICAgICBKU0tleVZhbHVlSXRlcmF0b3JQcm90b3R5cGU8SlNXcmFwcGVyPjo6
Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTsKLSAgICB9Ci0KLSAgICBKU0M6OkpTVmFsdWUgbmV4dChKU0M6OkV4ZWNTdGF0
ZSYpOwotCi1wcml2YXRlOgotICAgIEpTS2V5VmFsdWVJdGVyYXRvcihKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU1dyYXBwZXImIGl0ZXJhdGVkT2JqZWN0LCBJdGVyYXRpb25LaW5kIGtpbmQp
Ci0gICAgICAgIDogQmFzZShzdHJ1Y3R1cmUsICppdGVyYXRlZE9iamVjdC5nbG9iYWxPYmplY3Qo
KSkKLSAgICAgICAgLCBtX2l0ZXJhdG9yKGl0ZXJhdGVkT2JqZWN0LndyYXBwZWQoKS5jcmVhdGVJ
dGVyYXRvcigpKQotICAgICAgICAsIG1fa2luZChraW5kKQotICAgIHsKLSAgICB9Ci0KLSAgICBz
dGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7Ci0KLSAgICB0eXBlbmFtZSBET01XcmFw
cGVkOjpJdGVyYXRvciBtX2l0ZXJhdG9yOwotICAgIEl0ZXJhdGlvbktpbmQgbV9raW5kOwotfTsK
LQotdGVtcGxhdGU8dHlwZW5hbWUgSlNXcmFwcGVyPgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBjcmVh
dGVLZXlWYWx1ZUl0ZXJhdG9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSXRlcmF0aW9uS2luZCBr
aW5kLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgYXV0byB3cmFwcGVyID0gSlND
Ojpqc0R5bmFtaWNDYXN0PEpTV3JhcHBlcio+KHN0YXRlLnRoaXNWYWx1ZSgpKTsKLSAgICBpZiAo
VU5MSUtFTFkoIXdyYXBwZXIpKQotICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKHN0
YXRlLCBKU1dyYXBwZXI6OmluZm8oKS0+Y2xhc3NOYW1lLCBwcm9wZXJ0eU5hbWUpOwotICAgIEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QgPSAqd3JhcHBlci0+Z2xvYmFsT2JqZWN0KCk7
Ci0gICAgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKEpTS2V5VmFsdWVJdGVyYXRvcjxKU1dy
YXBwZXI+OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LnZtKCksIGdldERPTVN0cnVjdHVyZTxKU0tleVZh
bHVlSXRlcmF0b3I8SlNXcmFwcGVyPj4oZ2xvYmFsT2JqZWN0LnZtKCksIGdsb2JhbE9iamVjdCks
ICp3cmFwcGVyLCBraW5kKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEpTV3JhcHBlcj4KLUpT
Qzo6RW5jb2RlZEpTVmFsdWUga2V5VmFsdWVJdGVyYXRvckZvckVhY2goSlNDOjpFeGVjU3RhdGUm
IHN0YXRlLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgYXV0byB3cmFwcGVyID0g
SlNDOjpqc0R5bmFtaWNDYXN0PEpTV3JhcHBlcio+KHN0YXRlLnRoaXNWYWx1ZSgpKTsKLSAgICBp
ZiAoVU5MSUtFTFkoIXdyYXBwZXIpKQotICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9y
KHN0YXRlLCBKU1dyYXBwZXI6OmluZm8oKS0+Y2xhc3NOYW1lLCBwcm9wZXJ0eU5hbWUpOwotCi0g
ICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBKU0M6OkNhbGxUeXBlIGNhbGxUeXBlID0g
SlNDOjpnZXRDYWxsRGF0YShzdGF0ZS5hcmd1bWVudCgwKSwgY2FsbERhdGEpOwotICAgIGlmIChj
YWxsVHlwZSA9PSBKU0M6OkNhbGxUeXBlOjpOb25lKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcigmc3RhdGUpOwotCi0gICAgYXV0byBpdGVyYXRvciA9IHdyYXBwZXItPndyYXBwZWQo
KS5jcmVhdGVJdGVyYXRvcigpOwotICAgIHdoaWxlIChhdXRvIHZhbHVlID0gaXRlcmF0b3IubmV4
dChzdGF0ZSkpIHsKLSAgICAgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7
Ci0gICAgICAgIGFyZ3VtZW50cy5hcHBlbmQodG9KUygmc3RhdGUsIHdyYXBwZXItPmdsb2JhbE9i
amVjdCgpLCB2YWx1ZS52YWx1ZSgpLnZhbHVlKSk7Ci0gICAgICAgIGFyZ3VtZW50cy5hcHBlbmQo
dG9KUygmc3RhdGUsIHdyYXBwZXItPmdsb2JhbE9iamVjdCgpLCB2YWx1ZS52YWx1ZSgpLmtleSkp
OwotICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHdyYXBwZXIpOwotICAgICAgICBKU0M6OmNhbGwo
JnN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwgY2FsbFR5cGUsIGNhbGxEYXRhLCB3cmFwcGVyLCBh
cmd1bWVudHMpOwotICAgICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAg
ICBicmVhazsKLSAgICB9IAotICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6Ompz
VW5kZWZpbmVkKCkpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBKU1dyYXBwZXI+Ci12b2lkIEpT
S2V5VmFsdWVJdGVyYXRvcjxKU1dyYXBwZXI+OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKLXsKLSAg
ICBKU0tleVZhbHVlSXRlcmF0b3I8SlNXcmFwcGVyPiogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0
PEpTS2V5VmFsdWVJdGVyYXRvcjxKU1dyYXBwZXI+Kj4oY2VsbCk7Ci0gICAgdGhpc09iamVjdC0+
SlNLZXlWYWx1ZUl0ZXJhdG9yPEpTV3JhcHBlcj46On5KU0tleVZhbHVlSXRlcmF0b3IoKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgSlNXcmFwcGVyPgotSlNDOjpKU1ZhbHVlIEpTS2V5VmFsdWVJ
dGVyYXRvcjxKU1dyYXBwZXI+OjpuZXh0KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBh
dXRvIGl0ZXJhdG9yVmFsdWUgPSBtX2l0ZXJhdG9yLm5leHQoc3RhdGUpOwotICAgIGlmICghaXRl
cmF0b3JWYWx1ZSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUl0ZXJhdG9yUmVzdWx0T2JqZWN0KCZz
dGF0ZSwgSlNDOjpqc1VuZGVmaW5lZCgpLCB0cnVlKTsKLQotICAgIEpTQzo6SlNWYWx1ZSB2YWx1
ZTsKLSAgICBpZiAobV9raW5kID09IEl0ZXJhdGlvbktpbmQ6OlZhbHVlKQotICAgICAgICB2YWx1
ZSA9IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgaXRlcmF0b3JWYWx1ZS52YWx1ZSgpLnZh
bHVlKTsKLSAgICBlbHNlIGlmIChtX2tpbmQgPT0gSXRlcmF0aW9uS2luZDo6S2V5KQotICAgICAg
ICB2YWx1ZSA9IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgaXRlcmF0b3JWYWx1ZS52YWx1
ZSgpLmtleSk7Ci0gICAgZWxzZQotICAgICAgICB2YWx1ZSA9IGpzUGFpcihzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIGl0ZXJhdG9yVmFsdWUudmFsdWUoKS5rZXksIGl0ZXJhdG9yVmFsdWUudmFsdWUo
KS52YWx1ZSk7Ci0KLSAgICByZXR1cm4gY3JlYXRlSXRlcmF0b3JSZXN1bHRPYmplY3QoJnN0YXRl
LCB2YWx1ZSwgZmFsc2UpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBKU1dyYXBwZXI+Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNLZXlWYWx1ZUl0ZXJhdG9yUHJvdG90eXBl
PEpTV3JhcHBlcj46Om5leHQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlKQotewotICAgIGF1dG8gaXRl
cmF0b3IgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNLZXlWYWx1ZUl0ZXJhdG9yPEpTV3JhcHBlcj4q
PihzdGF0ZS0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICghaXRlcmF0b3IpCi0gICAgICAgIHJldHVy
biBKU0M6OkpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihzdGF0ZSwgQVNDSUlMaXRlcmFs
KCJDYW5ub3QgY2FsbCBuZXh0KCkgb24gYSBub24tSXRlcmF0b3Igb2JqZWN0IikpKTsKLQotICAg
IHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShpdGVyYXRvci0+bmV4dCgqc3RhdGUpKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgSlNXcmFwcGVyPgotdm9pZCBKU0tleVZhbHVlSXRlcmF0b3JQ
cm90b3R5cGU8SlNXcmFwcGVyPjo6ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0sIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7Ci0gICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotCi0gICAgSlNDX05BVElWRV9JTlRS
SU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPm5leHQs
IG5leHQsIEpTQzo6RG9udEVudW0sIDAsIEpTQzo6Tm9JbnRyaW5zaWMpOwotfQotCi19Ci0KLSNl
bmRpZiAvLyAhZGVmaW5lZChKU0tleVZhbHVlSXRlcmF0b3JfaCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWU2Y2QyYjYx
M2M5MmUyN2Y4MTYwZjlmYWRkOTNhZGU5NmMxMzcwMy4uOGMyNjZjNzQwOGMzNmIwOWZkNGIzZTMw
MDhlZjI0YTk5YjFlZWQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTQxNDMsMTEgKzQxNDMsMTEgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb25JdGVyYWJsZUZ1bmN0aW9ucwogICAgIG15ICRjbGFzc05hbWUgPSAi
SlMkaW50ZXJmYWNlTmFtZSI7CiAgICAgbXkgJHZpc2libGVJbnRlcmZhY2VOYW1lID0gJGNvZGVH
ZW5lcmF0b3ItPkdldFZpc2libGVJbnRlcmZhY2VOYW1lKCRpbnRlcmZhY2UpOwogCi0gICAgQWRk
VG9JbXBsSW5jbHVkZXMoIkpTS2V5VmFsdWVJdGVyYXRvci5oIik7CisgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIkpTRE9NSXRlcmF0b3IuaCIpOwogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICA8PEVO
RCk7Ci11c2luZyAke2ludGVyZmFjZU5hbWV9SXRlcmF0b3IgPSBKU0tleVZhbHVlSXRlcmF0b3I8
JHtjbGFzc05hbWV9PjsKLXVzaW5nICR7aW50ZXJmYWNlTmFtZX1JdGVyYXRvclByb3RvdHlwZSA9
IEpTS2V5VmFsdWVJdGVyYXRvclByb3RvdHlwZTwke2NsYXNzTmFtZX0+OwordXNpbmcgJHtpbnRl
cmZhY2VOYW1lfUl0ZXJhdG9yID0gSlNET01JdGVyYXRvcjwke2NsYXNzTmFtZX0+OwordXNpbmcg
JHtpbnRlcmZhY2VOYW1lfUl0ZXJhdG9yUHJvdG90eXBlID0gSlNET01JdGVyYXRvclByb3RvdHlw
ZTwke2NsYXNzTmFtZX0+OwogCiB0ZW1wbGF0ZTw+CiBjb25zdCBKU0M6OkNsYXNzSW5mbyAke2lu
dGVyZmFjZU5hbWV9SXRlcmF0b3I6OnNfaW5mbyA9IHsgIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9
IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2ludGVy
ZmFjZU5hbWV9SXRlcmF0b3IpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGI4ZTEzNTBiYzE2NjMwMmI4Y2Q3
MTVjMDVhZTA5ZTdlYWIwMjIxMjYuLjc0NjUwMDJhYjNjNTcxZjIyNmY3NWM1MDU0MGRmNThlOWU2
ZTQxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVj
dG9yLmgiCisjaW5jbHVkZSAiSlNET01JdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlz
ZS5oIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJKU0ZldGNoUmVxdWVz
dC5oIgotI2luY2x1ZGUgIkpTS2V5VmFsdWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTTm9kZS5o
IgogI2luY2x1ZGUgIkpTU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU1NWR1BvaW50LmgiCkBA
IC01OTY3LDggKzU5NjcsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5lZWRzTGlmZWN5Y2xlUAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXVzaW5nIFRlc3RPYmpJdGVyYXRv
ciA9IEpTS2V5VmFsdWVJdGVyYXRvcjxKU1Rlc3RPYmo+OwotdXNpbmcgVGVzdE9iakl0ZXJhdG9y
UHJvdG90eXBlID0gSlNLZXlWYWx1ZUl0ZXJhdG9yUHJvdG90eXBlPEpTVGVzdE9iaj47Cit1c2lu
ZyBUZXN0T2JqSXRlcmF0b3IgPSBKU0RPTUl0ZXJhdG9yPEpTVGVzdE9iaj47Cit1c2luZyBUZXN0
T2JqSXRlcmF0b3JQcm90b3R5cGUgPSBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlPEpTVGVzdE9iaj47
CiAKIHRlbXBsYXRlPD4KIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIFRlc3RPYmpJdGVyYXRvcjo6c19p
bmZvID0geyAiVGVzdE9iamVjdCBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoVGVzdE9iakl0ZXJhdG9yKSB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>