<?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>208422</bug_id>
          
          <creation_ts>2020-02-29 18:08:10 -0800</creation_ts>
          <short_desc>Move some vectors around instead of heap-allocating them and moving the pointers</short_desc>
          <delta_ts>2020-03-01 16:41:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624350</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-29 18:08:10 -0800</bug_when>
    <thetext>Move some vectors around instead of heap-allocating them and moving the pointers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624354</commentid>
    <comment_count>1</comment_count>
      <attachid>392085</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-29 18:38:30 -0800</bug_when>
    <thetext>Created attachment 392085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624434</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-01 16:40:11 -0800</bug_when>
    <thetext>Committed r257696: &lt;https://trac.webkit.org/changeset/257696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624435</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-01 16:41:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/59934089&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392085</attachid>
            <date>2020-02-29 18:38:30 -0800</date>
            <delta_ts>2020-03-01 09:25:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208422-20200229183826.patch</filename>
            <type>text/plain</type>
            <size>21304</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Njg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ5MmFlNzliOGZkMDU2
NWZlYzg4MzFiY2YzZGEzYTNkOGM4ZDkyMC4uNzczMjdlMzFmNDY1MjZmNzk2ZmM2NzkzODVjYWI4
NjViM2E5ODIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTI5ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHNvbWUgdmVjdG9ycyBh
cm91bmQgaW5zdGVhZCBvZiBoZWFwLWFsbG9jYXRpbmcgdGhlbSBhbmQgbW92aW5nIHRoZSBwb2lu
dGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
NDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBj
c3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZy
YW1lOjpTdHlsZVJ1bGVLZXlmcmFtZSk6IFRha2UgVmVjdG9yJiYgaW5zdGVhZCBvZgorICAgICAg
ICB1bmlxdWVfcHRyPFZlY3Rvcj4uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFt
ZTo6Y3JlYXRlKTogTW92ZWQgdGhlc2UgaGVyZSBmcm9tIHRoZSBoZWFkZXIuCisgICAgICAgIFRh
a2UgVmVjdG9yJiYgaW5zdGVhZCBvZiB1bmlxdWVfcHRyPFZlY3Rvcj4uCisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJ1bGVLZXlmcmFtZTo6c2V0S2V5VGV4dCk6IFVwZGF0ZSBzaW5jZSB0aGUgcmVz
dWx0IGlzIGEKKyAgICAgICAgVmVjdG9yIHJhdGhlciB0aGFuIGEgdW5pcXVlX3B0cjxWZWN0b3I+
LgorICAgICAgICAqIGNzcy9DU1NLZXlmcmFtZVJ1bGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3Zl
LgorCisgICAgICAgICogY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSdWxlS2V5ZnJhbWVzOjpmaW5kS2V5ZnJhbWVJbmRleCBjb25zdCk6IFJldHVybiBP
cHRpb25hbDxzaXplX3Q+CisgICAgICAgIHNvIHdlIGRvbid0IGRlcGVuZCBvbiBub3RGb3VuZC4g
VGhpcyBpcyBvdXIgYmV0dGVyIG1vZGVybiBwYXR0ZXJuLCBzaW5jZQorICAgICAgICBub3RGb3Vu
ZCBjYW4gd29yayB3cm9uZyBpZiB3ZSBtaXggc2l6ZV90IGFuZCB1bnNpZ25lZCwgZm9yIGV4YW1w
bGUuIEFsc28KKyAgICAgICAgdXBkYXRkIHNpbmNlIHJlc3VsdCBvZiBwYXJzZUtleUZyYW1lS2V5
TGlzdCBpcyBub3cgYSBWZWN0b3IgcmF0aGVyIHRoYW4KKyAgICAgICAgYSB1bmlxdWVfcHRyPFZl
Y3Rvcj4uCisgICAgICAgIChXZWJDb3JlOjpDU1NLZXlmcmFtZXNSdWxlOjpkZWxldGVSdWxlKTog
VXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorICAgICAgICAoV2ViQ29yZTo6Q1NTS2V5ZnJhbWVzUnVs
ZTo6ZmluZFJ1bGUpOiBEaXR0by4KKyAgICAgICAgKiBjc3MvQ1NTS2V5ZnJhbWVzUnVsZS5oOiBV
cGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlS2V5ZnJhbWVLZXlMaXN0KTog
UmV0dXJuIFZlY3RvciBpbnN0ZWFkIG9mCisgICAgICAgIHVuaXF1ZV9wdHI8VmVjdG9yPi4KKyAg
ICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VySW1wbDo6cGFyc2VLZXlmcmFtZUtleUxpc3QpOiBSZXR1cm4gVmVjdG9yIGlu
c3RlYWQgb2YKKyAgICAgICAgdW5pcXVlX3B0cjxWZWN0b3I+LgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VySW1wbDo6Y29uc3VtZUtleWZyYW1lU3R5bGVSdWxlKTogVXBkYXRlZCBmb3IgdGhl
CisgICAgICAgIGFib3ZlIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckltcGw6
OmNvbnN1bWVLZXlmcmFtZUtleUxpc3QpOiBSZXR1cm4gVmVjdG9yIGluc3RlYWQKKyAgICAgICAg
b2YgdW5pcXVlX3B0cjxWZWN0b3I+LgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VySW1w
bC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFBvbHlnb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRQb2x5Z29uOjpGbG9h
dFBvbHlnb24pOiBUYWtlIFZlY3RvciYmIGluc3RlYWQgb2YKKyAgICAgICAgdW5pcXVlX3B0cjxW
ZWN0b3I+LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9seWdvbi5oOiBUYWtl
IFZlY3RvciYmIGluc3RlYWQgb2YgdW5pcXVlX3B0cjxWZWN0b3I+LgorICAgICAgICBBbHNvIGNo
YW5nZWQgbV92ZXJ0aWNlcyB0byBhIFZlY3RvciBpbnN0ZWFkIG9mIGEgdW5pcXVlX3B0cjxWZWN0
b3I+LgorCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaDogVGFrZSBW
ZWN0b3ImJiBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHI8VmVjdG9yPi4KKworICAgICAgICAqIHJlbmRl
cmluZy9zaGFwZXMvU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUG9seWdvblNo
YXBlKTogVGFrZSBWZWN0b3ImJiBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHI8VmVjdG9yPi4KKyAgICAg
ICAgKFdlYkNvcmU6OlNoYXBlOjpjcmVhdGVTaGFwZSk6IFVzZSBhIFZlY3RvciBpbnN0ZWFkIG9m
IGEgdW5pcXVlX3B0cjxWZWN0b3I+LgorCiAyMDIwLTAyLTI5ICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQkZDXSBDb25zb2xpZGF0ZSBwcmVjb21wdXRl
VmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyBhbmQgcHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKaW5kZXggODA3MTkyYWFlZmRk
YzRjOTFhZjM1ODEwY2Q2ZDg0NjhmM2E3MzBlZS4uYzNjNzNiZDQ2OWZkZjg3ODY3NTk1MzlmOTky
NjM3M2E2NzEwZDBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1l
UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKQEAg
LTQwLDEzICs0MCwyMyBAQCBTdHlsZVJ1bGVLZXlmcmFtZTo6U3R5bGVSdWxlS2V5ZnJhbWUoUmVm
PFN0eWxlUHJvcGVydGllcz4mJiBwcm9wZXJ0aWVzKQogewogfQogCi1TdHlsZVJ1bGVLZXlmcmFt
ZTo6U3R5bGVSdWxlS2V5ZnJhbWUoc3RkOjp1bmlxdWVfcHRyPFZlY3Rvcjxkb3VibGU+PiBrZXlz
LCBSZWY8U3R5bGVQcm9wZXJ0aWVzPiYmIHByb3BlcnRpZXMpCitTdHlsZVJ1bGVLZXlmcmFtZTo6
U3R5bGVSdWxlS2V5ZnJhbWUoVmVjdG9yPGRvdWJsZT4mJiBrZXlzLCBSZWY8U3R5bGVQcm9wZXJ0
aWVzPiYmIHByb3BlcnRpZXMpCiAgICAgOiBTdHlsZVJ1bGVCYXNlKFN0eWxlUnVsZVR5cGU6Oktl
eWZyYW1lKQogICAgICwgbV9wcm9wZXJ0aWVzKFdURk1vdmUocHJvcGVydGllcykpCi0gICAgLCBt
X2tleXMoKmtleXMpCisgICAgLCBtX2tleXMoV1RGTW92ZShrZXlzKSkKIHsKIH0KLSAgICAKKwor
UmVmPFN0eWxlUnVsZUtleWZyYW1lPiBTdHlsZVJ1bGVLZXlmcmFtZTo6Y3JlYXRlKFJlZjxTdHls
ZVByb3BlcnRpZXM+JiYgcHJvcGVydGllcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
dHlsZVJ1bGVLZXlmcmFtZShXVEZNb3ZlKHByb3BlcnRpZXMpKSk7Cit9CisKK1JlZjxTdHlsZVJ1
bGVLZXlmcmFtZT4gU3R5bGVSdWxlS2V5ZnJhbWU6OmNyZWF0ZShWZWN0b3I8ZG91YmxlPiYmIGtl
eXMsIFJlZjxTdHlsZVByb3BlcnRpZXM+JiYgcHJvcGVydGllcykKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTdHlsZVJ1bGVLZXlmcmFtZShXVEZNb3ZlKGtleXMpLCBXVEZNb3ZlKHByb3Bl
cnRpZXMpKSk7Cit9CisKIFN0eWxlUnVsZUtleWZyYW1lOjp+U3R5bGVSdWxlS2V5ZnJhbWUoKSA9
IGRlZmF1bHQ7CiAKIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlUnVsZUtleWZyYW1lOjpt
dXRhYmxlUHJvcGVydGllcygpCkBAIC03MSw5ICs4MSw5IEBAIGJvb2wgU3R5bGVSdWxlS2V5ZnJh
bWU6OnNldEtleVRleHQoY29uc3QgU3RyaW5nJiBrZXlUZXh0KQogewogICAgIEFTU0VSVCgha2V5
VGV4dC5pc051bGwoKSk7CiAgICAgYXV0byBrZXlzID0gQ1NTUGFyc2VyOjpwYXJzZUtleWZyYW1l
S2V5TGlzdChrZXlUZXh0KTsKLSAgICBpZiAoIWtleXMgfHwga2V5cy0+aXNFbXB0eSgpKQorICAg
IGlmIChrZXlzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fa2V5cyA9
ICprZXlzOworICAgIG1fa2V5cyA9IFdURk1vdmUoa2V5cyk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuaAppbmRleCAyYWJhNzdjZjliMjg5MGRk
YzZjZmNjMzlkYmU3ODYzYTY1ZWRkOGZmLi42MTQ5ZDNmYWY1ZGZmNjMwYTg2ODE1ODg5ZmYwOWQ2
NWM2ZjhjYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lUnVsZS5oCkBAIC0zNywxNSAr
MzcsOCBAQCBjbGFzcyBDU1NLZXlmcmFtZXNSdWxlOwogCiBjbGFzcyBTdHlsZVJ1bGVLZXlmcmFt
ZSBmaW5hbCA6IHB1YmxpYyBTdHlsZVJ1bGVCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFN0eWxlUnVsZUtleWZyYW1lPiBjcmVhdGUoUmVmPFN0eWxlUHJvcGVydGllcz4mJiBwcm9wZXJ0
aWVzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlS2V5ZnJh
bWUoV1RGTW92ZShwcm9wZXJ0aWVzKSkpOwotICAgIH0KLQotICAgIHN0YXRpYyBSZWY8U3R5bGVS
dWxlS2V5ZnJhbWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGRvdWJsZT4+IGtleXMs
IFJlZjxTdHlsZVByb3BlcnRpZXM+JiYgcHJvcGVydGllcykKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZUtleWZyYW1lKFdURk1vdmUoa2V5cyksIFdURk1vdmUo
cHJvcGVydGllcykpKTsKLSAgICB9CisgICAgc3RhdGljIFJlZjxTdHlsZVJ1bGVLZXlmcmFtZT4g
Y3JlYXRlKFJlZjxTdHlsZVByb3BlcnRpZXM+JiYpOworICAgIHN0YXRpYyBSZWY8U3R5bGVSdWxl
S2V5ZnJhbWU+IGNyZWF0ZShWZWN0b3I8ZG91YmxlPiYmIGtleXMsIFJlZjxTdHlsZVByb3BlcnRp
ZXM+JiYpOwogICAgIH5TdHlsZVJ1bGVLZXlmcmFtZSgpOwogCiAgICAgU3RyaW5nIGtleVRleHQo
KSBjb25zdDsKQEAgLTY2LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFN0eWxlUnVsZUtleWZyYW1lKFJlZjxTdHlsZVByb3BlcnRpZXM+JiYpOwotICAgIFN0eWxl
UnVsZUtleWZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8ZG91YmxlPj4sIFJlZjxTdHlsZVBy
b3BlcnRpZXM+JiYpOworICAgIFN0eWxlUnVsZUtleWZyYW1lKFZlY3Rvcjxkb3VibGU+JiYsIFJl
ZjxTdHlsZVByb3BlcnRpZXM+JiYpOwogCiAgICAgUmVmPFN0eWxlUHJvcGVydGllcz4gbV9wcm9w
ZXJ0aWVzOwogICAgIFZlY3Rvcjxkb3VibGU+IG1fa2V5czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NL
ZXlmcmFtZXNSdWxlLmNwcAppbmRleCA4Y2VlYmRjNGQwOWVkZTIxMGI0ZTY1ZWI5MjEyODdlODVm
Y2YzZmE2Li5iYzU3NGM3ODllNDcxMzU0ZWIwODRhYzljNzRjNjdkYTk5NTUwMDM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCkBAIC01OSwxMyArNTksMjMgQEAgU3R5
bGVSdWxlS2V5ZnJhbWVzOjpTdHlsZVJ1bGVLZXlmcmFtZXMoY29uc3QgU3R5bGVSdWxlS2V5ZnJh
bWVzJiBvKQogICAgICAgICBtX2tleWZyYW1lcy51bmNoZWNrZWRBcHBlbmQoa2V5ZnJhbWUuY29w
eVJlZigpKTsKIH0KIAorUmVmPFN0eWxlUnVsZUtleWZyYW1lcz4gU3R5bGVSdWxlS2V5ZnJhbWVz
OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTdHlsZVJ1bGVLZXlmcmFtZXMobmFtZSkpOworfQorCitSZWY8U3R5bGVSdWxlS2V5ZnJh
bWVzPiBTdHlsZVJ1bGVLZXlmcmFtZXM6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBz
dGQ6OnVuaXF1ZV9wdHI8RGVmZXJyZWRTdHlsZUdyb3VwUnVsZUxpc3Q+JiYgZGVmZXJyZWRSdWxl
cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVLZXlmcmFtZXMobmFtZSwg
V1RGTW92ZShkZWZlcnJlZFJ1bGVzKSkpOworfQorCiBTdHlsZVJ1bGVLZXlmcmFtZXM6On5TdHls
ZVJ1bGVLZXlmcmFtZXMoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgU3R5bGVSdWxlS2V5ZnJhbWVzOjpw
YXJzZURlZmVycmVkUnVsZXNJZk5lZWRlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2RlZmVycmVk
UnVsZXMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIG1fZGVmZXJyZWRSdWxlcy0+cGFy
c2VEZWZlcnJlZEtleWZyYW1lcyhjb25zdF9jYXN0PFN0eWxlUnVsZUtleWZyYW1lcyY+KCp0aGlz
KSk7CiAgICAgbV9kZWZlcnJlZFJ1bGVzID0gbnVsbHB0cjsKIH0KQEAgLTk1LDIxICsxMDUsMTcg
QEAgdm9pZCBTdHlsZVJ1bGVLZXlmcmFtZXM6OndyYXBwZXJSZW1vdmVLZXlmcmFtZSh1bnNpZ25l
ZCBpbmRleCkKICAgICBtX2tleWZyYW1lcy5yZW1vdmUoaW5kZXgpOwogfQogCi1zaXplX3QgU3R5
bGVSdWxlS2V5ZnJhbWVzOjpmaW5kS2V5ZnJhbWVJbmRleChjb25zdCBTdHJpbmcmIGtleSkgY29u
c3QKK09wdGlvbmFsPHNpemVfdD4gU3R5bGVSdWxlS2V5ZnJhbWVzOjpmaW5kS2V5ZnJhbWVJbmRl
eChjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKIHsKICAgICBwYXJzZURlZmVycmVkUnVsZXNJZk5l
ZWRlZCgpOwotCiAgICAgYXV0byBrZXlzID0gQ1NTUGFyc2VyOjpwYXJzZUtleWZyYW1lS2V5TGlz
dChrZXkpOwotCi0gICAgaWYgKCFrZXlzKQotICAgICAgICByZXR1cm4gbm90Rm91bmQ7Ci0KLSAg
ICBmb3IgKHNpemVfdCBpID0gbV9rZXlmcmFtZXMuc2l6ZSgpOyBpLS07ICkgewotICAgICAgICBp
ZiAobV9rZXlmcmFtZXNbaV0tPmtleXMoKSA9PSAqa2V5cykKKyAgICBpZiAoa2V5cy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgZm9yIChhdXRvIGkgPSBtX2tl
eWZyYW1lcy5zaXplKCk7IGktLTsgKSB7CisgICAgICAgIGlmIChtX2tleWZyYW1lc1tpXS0+a2V5
cygpID09IGtleXMpCiAgICAgICAgICAgICByZXR1cm4gaTsKICAgICB9Ci0KLSAgICByZXR1cm4g
bm90Rm91bmQ7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAogQ1NTS2V5ZnJhbWVzUnVs
ZTo6Q1NTS2V5ZnJhbWVzUnVsZShTdHlsZVJ1bGVLZXlmcmFtZXMmIGtleWZyYW1lc1J1bGUsIENT
U1N0eWxlU2hlZXQqIHBhcmVudCkKQEAgLTE2NSwyMyArMTcxLDIzIEBAIHZvaWQgQ1NTS2V5ZnJh
bWVzUnVsZTo6ZGVsZXRlUnVsZShjb25zdCBTdHJpbmcmIHMpCiB7CiAgICAgQVNTRVJUKG1fY2hp
bGRSdWxlQ1NTT01XcmFwcGVycy5zaXplKCkgPT0gbV9rZXlmcmFtZXNSdWxlLT5rZXlmcmFtZXMo
KS5zaXplKCkpOwogCi0gICAgc2l6ZV90IGkgPSBtX2tleWZyYW1lc1J1bGUtPmZpbmRLZXlmcmFt
ZUluZGV4KHMpOwotICAgIGlmIChpID09IG5vdEZvdW5kKQorICAgIGF1dG8gaSA9IG1fa2V5ZnJh
bWVzUnVsZS0+ZmluZEtleWZyYW1lSW5kZXgocyk7CisgICAgaWYgKCFpKQogICAgICAgICByZXR1
cm47CiAKICAgICBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3Bl
KHRoaXMpOwogCi0gICAgbV9rZXlmcmFtZXNSdWxlLT53cmFwcGVyUmVtb3ZlS2V5ZnJhbWUoaSk7
CisgICAgbV9rZXlmcmFtZXNSdWxlLT53cmFwcGVyUmVtb3ZlS2V5ZnJhbWUoKmkpOwogCi0gICAg
aWYgKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVyc1tpXSkKLSAgICAgICAgbV9jaGlsZFJ1bGVDU1NP
TVdyYXBwZXJzW2ldLT5zZXRQYXJlbnRSdWxlKDApOwotICAgIG1fY2hpbGRSdWxlQ1NTT01XcmFw
cGVycy5yZW1vdmUoaSk7CisgICAgaWYgKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVyc1sqaV0pCisg
ICAgICAgIG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVyc1sqaV0tPnNldFBhcmVudFJ1bGUobnVsbHB0
cik7CisgICAgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLnJlbW92ZSgqaSk7CiB9CiAKIENTU0tl
eWZyYW1lUnVsZSogQ1NTS2V5ZnJhbWVzUnVsZTo6ZmluZFJ1bGUoY29uc3QgU3RyaW5nJiBzKQog
ewotICAgIHNpemVfdCBpID0gbV9rZXlmcmFtZXNSdWxlLT5maW5kS2V5ZnJhbWVJbmRleChzKTsK
LSAgICByZXR1cm4gaSAhPSBub3RGb3VuZCA/IGl0ZW0oaSkgOiBudWxscHRyOworICAgIGF1dG8g
aSA9IG1fa2V5ZnJhbWVzUnVsZS0+ZmluZEtleWZyYW1lSW5kZXgocyk7CisgICAgcmV0dXJuIGkg
PyBpdGVtKCppKSA6IG51bGxwdHI7CiB9CiAKIFN0cmluZyBDU1NLZXlmcmFtZXNSdWxlOjpjc3NU
ZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZXNS
dWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5oCmluZGV4IDI4MGI2
Y2JhOWM2NGE5MTM1MGEzODlmNzUxNTI1Y2JkOTFjMjYwNzMuLjYzYmEwYWQyZGU0NWVkZjA5ZWMy
YTY3MDE5OTM0OGU5YjVmOWEyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NL
ZXlmcmFtZXNSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0tleWZyYW1lc1J1bGUu
aApAQCAtMzMsMTUgKzMzLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ1NT
S2V5ZnJhbWVSdWxlOwogY2xhc3MgQ1NTUnVsZUxpc3Q7CiBjbGFzcyBTdHlsZVJ1bGVLZXlmcmFt
ZTsKLWNsYXNzIENTU0tleWZyYW1lUnVsZTsKIAogY2xhc3MgU3R5bGVSdWxlS2V5ZnJhbWVzIGZp
bmFsIDogcHVibGljIFN0eWxlUnVsZUJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U3R5
bGVSdWxlS2V5ZnJhbWVzPiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgbmFtZSkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVLZXlmcmFtZXMobmFtZSkpOyB9Ci0gICAgc3RhdGljIFJl
ZjxTdHlsZVJ1bGVLZXlmcmFtZXM+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBzdGQ6
OnVuaXF1ZV9wdHI8RGVmZXJyZWRTdHlsZUdyb3VwUnVsZUxpc3Q+JiYgZGVmZXJyZWRSdWxlcykg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVLZXlmcmFtZXMobmFtZSwgV1RGTW92ZShk
ZWZlcnJlZFJ1bGVzKSkpOyB9Ci0gICAgCisgICAgc3RhdGljIFJlZjxTdHlsZVJ1bGVLZXlmcmFt
ZXM+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiBuYW1lKTsKKyAgICBzdGF0aWMgUmVmPFN0eWxl
UnVsZUtleWZyYW1lcz4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIHN0ZDo6dW5pcXVl
X3B0cjxEZWZlcnJlZFN0eWxlR3JvdXBSdWxlTGlzdD4mJik7CiAgICAgflN0eWxlUnVsZUtleWZy
YW1lcygpOwogICAgIAogICAgIGNvbnN0IFZlY3RvcjxSZWY8U3R5bGVSdWxlS2V5ZnJhbWU+PiYg
a2V5ZnJhbWVzKCkgY29uc3Q7CkBAIC01NywxMiArNTYsMTIgQEAgcHVibGljOgogICAgIGNvbnN0
IEF0b21TdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICB2b2lkIHNl
dE5hbWUoY29uc3QgQXRvbVN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9CiAKLSAgICBz
aXplX3QgZmluZEtleWZyYW1lSW5kZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OworICAgIE9w
dGlvbmFsPHNpemVfdD4gZmluZEtleWZyYW1lSW5kZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0
OwogCiAgICAgUmVmPFN0eWxlUnVsZUtleWZyYW1lcz4gY29weSgpIGNvbnN0IHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU3R5bGVSdWxlS2V5ZnJhbWVzKCp0aGlzKSk7IH0KIAogcHJpdmF0ZToKLSAg
ICBTdHlsZVJ1bGVLZXlmcmFtZXMoY29uc3QgQXRvbVN0cmluZyYpOworICAgIGV4cGxpY2l0IFN0
eWxlUnVsZUtleWZyYW1lcyhjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgU3R5bGVSdWxlS2V5ZnJh
bWVzKGNvbnN0IEF0b21TdHJpbmcmLCBzdGQ6OnVuaXF1ZV9wdHI8RGVmZXJyZWRTdHlsZUdyb3Vw
UnVsZUxpc3Q+JiYpOwogICAgIFN0eWxlUnVsZUtleWZyYW1lcyhjb25zdCBTdHlsZVJ1bGVLZXlm
cmFtZXMmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAppbmRleCAyYzEwMGNmMjhiOGY0YWJi
YTUwYjdmOWNlMjhlZjM2OWU0YTcyMDU3Li5hYjUzMjczYTYwMzNlNWUxMjQ4YmJjMjZmY2M1ZjE1
MDYxYzg5MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtMzczLDcgKzM3Myw3IEBA
IFN0eWxlUnVsZVN1cHBvcnRzOjpTdHlsZVJ1bGVTdXBwb3J0cyhjb25zdCBTdHJpbmcmIGNvbmRp
dGlvblRleHQsIGJvb2wgY29uZGl0aW9uCiB7CiB9CiAKLVN0eWxlUnVsZVN1cHBvcnRzOjpTdHls
ZVJ1bGVTdXBwb3J0cyhjb25zdCBTdHJpbmcmIGNvbmRpdGlvblRleHQsIGJvb2wgY29uZGl0aW9u
SXNTdXBwb3J0ZWQsICBzdGQ6OnVuaXF1ZV9wdHI8RGVmZXJyZWRTdHlsZUdyb3VwUnVsZUxpc3Q+
JiYgZGVmZXJyZWRSdWxlcykKK1N0eWxlUnVsZVN1cHBvcnRzOjpTdHlsZVJ1bGVTdXBwb3J0cyhj
b25zdCBTdHJpbmcmIGNvbmRpdGlvblRleHQsIGJvb2wgY29uZGl0aW9uSXNTdXBwb3J0ZWQsIHN0
ZDo6dW5pcXVlX3B0cjxEZWZlcnJlZFN0eWxlR3JvdXBSdWxlTGlzdD4mJiBkZWZlcnJlZFJ1bGVz
KQogICAgIDogU3R5bGVSdWxlR3JvdXAoU3R5bGVSdWxlVHlwZTo6U3VwcG9ydHMsIFdURk1vdmUo
ZGVmZXJyZWRSdWxlcykpCiAgICAgLCBtX2NvbmRpdGlvblRleHQoY29uZGl0aW9uVGV4dCkKICAg
ICAsIG1fY29uZGl0aW9uSXNTdXBwb3J0ZWQoY29uZGl0aW9uSXNTdXBwb3J0ZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKaW5kZXggMTY0NDMwMzFhOTIzNjBjYjUwMmM0
YWU5ZjNjNjE5ZDllMjBlMWY2OS4uOTBhNTM4NTcwZjk1YTk0MTE1MmI0ZDgzNTk4ODczMTQzNjEy
NzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcApAQCAtMjYzLDcg
KzI2Myw3IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVZhbHVlV2l0aFZhcmlh
YmxlUmVmZXJlbmNlcyhDU1NQcm9wZXJ0eUlEIHByb3BJCiAgICAgcmV0dXJuIENTU1Byb3BlcnR5
UGFyc2VyOjpwYXJzZVR5cGVkQ3VzdG9tUHJvcGVydHlWYWx1ZShuYW1lLCBzeW50YXgsIHJlc29s
dmVkRGF0YS0+dG9rZW5zKCksIGJ1aWxkZXJTdGF0ZSwgbV9jb250ZXh0KTsKIH0KIAotc3RkOjp1
bmlxdWVfcHRyPFZlY3Rvcjxkb3VibGU+PiBDU1NQYXJzZXI6OnBhcnNlS2V5ZnJhbWVLZXlMaXN0
KGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCitWZWN0b3I8ZG91YmxlPiBDU1NQYXJzZXI6OnBhcnNl
S2V5ZnJhbWVLZXlMaXN0KGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiB7CiAgICAgcmV0dXJuIENT
U1BhcnNlckltcGw6OnBhcnNlS2V5ZnJhbWVLZXlMaXN0KHNlbGVjdG9yKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5oCmluZGV4IGZlYTFiMzM5MzlkNzRiYWU4YWJiMTYyZGUx
OWJmZTUxZTExZTE0YmEuLmJkM2RjZmEwMzRmODIzNDhlYmRkYWQxYTNhMGVlYTY0MzJhMmYzYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuaApAQCAtNjMsNyArNjMsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiBwYXJzZVJ1bGUoY29uc3Qg
Q1NTUGFyc2VyQ29udGV4dCYsIFN0eWxlU2hlZXRDb250ZW50cyosIGNvbnN0IFN0cmluZyYpOwog
ICAgIAogICAgIFJlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZT4gcGFyc2VLZXlmcmFtZVJ1bGUoY29u
c3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8ZG91YmxlPj4g
cGFyc2VLZXlmcmFtZUtleUxpc3QoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIFZlY3Rvcjxk
b3VibGU+IHBhcnNlS2V5ZnJhbWVLZXlMaXN0KGNvbnN0IFN0cmluZyYpOwogICAgIAogICAgIGJv
b2wgcGFyc2VTdXBwb3J0c0NvbmRpdGlvbihjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHAKaW5kZXggZmZhZDQ5NzVjNTA0NDAyNWFm
MTc2ZDM4MTIxZTEwNDRmNjQzOTM1Yi4uN2U2ZGJiYWJiN2YyOTBiNDhiODhiZTE5OTdkZTkzNjRi
ZWYwMGRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3Bw
CkBAIC0yOTAsNyArMjkwLDcgQEAgQ1NTU2VsZWN0b3JMaXN0IENTU1BhcnNlckltcGw6OnBhcnNl
UGFnZVNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UsIFN0eWwKICAgICByZXR1cm4g
Q1NTU2VsZWN0b3JMaXN0IHsgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4+Ojpmcm9tKFdURk1vdmUoc2VsZWN0b3IpKSB9OwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8VmVj
dG9yPGRvdWJsZT4+IENTU1BhcnNlckltcGw6OnBhcnNlS2V5ZnJhbWVLZXlMaXN0KGNvbnN0IFN0
cmluZyYga2V5TGlzdCkKK1ZlY3Rvcjxkb3VibGU+IENTU1BhcnNlckltcGw6OnBhcnNlS2V5ZnJh
bWVLZXlMaXN0KGNvbnN0IFN0cmluZyYga2V5TGlzdCkKIHsKICAgICByZXR1cm4gY29uc3VtZUtl
eWZyYW1lS2V5TGlzdChDU1NUb2tlbml6ZXIoa2V5TGlzdCkudG9rZW5SYW5nZSgpKTsKIH0KQEAg
LTY1NCw4ICs2NTQsOCBAQCBSZWZQdHI8U3R5bGVSdWxlUGFnZT4gQ1NTUGFyc2VySW1wbDo6Y29u
c3VtZVBhZ2VSdWxlKENTU1BhcnNlclRva2VuUmFuZ2UgcHJlbHVkZQogICAgIAogUmVmUHRyPFN0
eWxlUnVsZUtleWZyYW1lPiBDU1NQYXJzZXJJbXBsOjpjb25zdW1lS2V5ZnJhbWVTdHlsZVJ1bGUo
Q1NTUGFyc2VyVG9rZW5SYW5nZSBwcmVsdWRlLCBDU1NQYXJzZXJUb2tlblJhbmdlIGJsb2NrKQog
ewotICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8ZG91YmxlPj4ga2V5TGlzdCA9IGNvbnN1bWVL
ZXlmcmFtZUtleUxpc3QocHJlbHVkZSk7Ci0gICAgaWYgKCFrZXlMaXN0KQorICAgIGF1dG8ga2V5
TGlzdCA9IGNvbnN1bWVLZXlmcmFtZUtleUxpc3QocHJlbHVkZSk7CisgICAgaWYgKGtleUxpc3Qu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChtX29ic2VydmVy
V3JhcHBlcikgewpAQCAtODE5LDI0ICs4MTksMjQgQEAgdm9pZCBDU1NQYXJzZXJJbXBsOjpjb25z
dW1lRGVjbGFyYXRpb25WYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlLCBDU1NQcm9wZXIK
ICAgICBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VWYWx1ZShwcm9wZXJ0eUlELCBpbXBvcnRhbnQs
IHJhbmdlLCBtX2NvbnRleHQsIG1fcGFyc2VkUHJvcGVydGllcywgcnVsZVR5cGUpOwogfQogCi1z
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGRvdWJsZT4+IENTU1BhcnNlckltcGw6OmNvbnN1bWVLZXlm
cmFtZUtleUxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5nZSkKK1ZlY3Rvcjxkb3VibGU+IENT
U1BhcnNlckltcGw6OmNvbnN1bWVLZXlmcmFtZUtleUxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSBy
YW5nZSkKIHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGRvdWJsZT4+IHJlc3VsdCA9IHN0
ZDo6dW5pcXVlX3B0cjxWZWN0b3I8ZG91YmxlPj4obmV3IFZlY3Rvcjxkb3VibGU+KTsKKyAgICBW
ZWN0b3I8ZG91YmxlPiByZXN1bHQ7CiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgcmFuZ2Uu
Y29uc3VtZVdoaXRlc3BhY2UoKTsKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2Vu
ID0gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKICAgICAgICAgaWYgKHRva2Vu
LnR5cGUoKSA9PSBQZXJjZW50YWdlVG9rZW4gJiYgdG9rZW4ubnVtZXJpY1ZhbHVlKCkgPj0gMCAm
JiB0b2tlbi5udW1lcmljVmFsdWUoKSA8PSAxMDApCi0gICAgICAgICAgICByZXN1bHQtPmFwcGVu
ZCh0b2tlbi5udW1lcmljVmFsdWUoKSAvIDEwMCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KHRva2VuLm51bWVyaWNWYWx1ZSgpIC8gMTAwKTsKICAgICAgICAgZWxzZSBpZiAodG9rZW4udHlw
ZSgpID09IElkZW50VG9rZW4gJiYgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0b2tlbi52YWx1ZSgp
LCAiZnJvbSIpKQotICAgICAgICAgICAgcmVzdWx0LT5hcHBlbmQoMCk7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKDApOwogICAgICAgICBlbHNlIGlmICh0b2tlbi50eXBlKCkgPT0gSWRlbnRU
b2tlbiAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLnZhbHVlKCksICJ0byIpKQotICAg
ICAgICAgICAgcmVzdWx0LT5hcHBlbmQoMSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKDEp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsgLy8gUGFyc2VyIGVy
cm9yLCBpbnZhbGlkIHZhbHVlIGluIGtleWZyYW1lIHNlbGVjdG9yCisgICAgICAgICAgICByZXR1
cm4geyB9OyAvLyBQYXJzZXIgZXJyb3IsIGludmFsaWQgdmFsdWUgaW4ga2V5ZnJhbWUgc2VsZWN0
b3IKICAgICAgICAgaWYgKHJhbmdlLmF0RW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICBpZiAocmFuZ2UuY29uc3VtZSgpLnR5cGUoKSAhPSBDb21tYVRva2VuKQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7IC8vIFBhcnNlciBlcnJvcgorICAgICAgICAgICAgcmV0
dXJuIHsgfTsgLy8gUGFyc2VyIGVycm9yCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VySW1wbC5oCmluZGV4IDVlZWZiNjA3M2Q0Y2RhOTM5YmRiNTI0MmE5ZTlj
YjdjOTllN2QyOTIuLmM3MWYwZmU1ODA5N2Y2Y2RjNmUxNWMyMzE5MWQ3OGNmMWE0MDdhMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5oCkBAIC05MCw3ICs5MCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBwYXJzZVN0eWxlU2hlZXQoY29uc3QgU3RyaW5n
JiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYsIFN0eWxlU2hlZXRDb250ZW50cyosIENTU1BhcnNl
cjo6UnVsZVBhcnNpbmcpOwogICAgIHN0YXRpYyBDU1NTZWxlY3Rvckxpc3QgcGFyc2VQYWdlU2Vs
ZWN0b3IoQ1NTUGFyc2VyVG9rZW5SYW5nZSwgU3R5bGVTaGVldENvbnRlbnRzKik7CiAKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFZlY3Rvcjxkb3VibGU+PiBwYXJzZUtleWZyYW1lS2V5TGlz
dChjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgVmVjdG9yPGRvdWJsZT4gcGFyc2VLZXlmcmFt
ZUtleUxpc3QoY29uc3QgU3RyaW5nJik7CiAKICAgICBib29sIHN1cHBvcnRzRGVjbGFyYXRpb24o
Q1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCkBAIC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNvbnN1bWVEZWNsYXJhdGlvblZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UsIENTU1By
b3BlcnR5SUQsIGJvb2wgaW1wb3J0YW50LCBTdHlsZVJ1bGVUeXBlKTsKICAgICB2b2lkIGNvbnN1
bWVDdXN0b21Qcm9wZXJ0eVZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UsIGNvbnN0IEF0b21TdHJp
bmcmIHByb3BlcnR5TmFtZSwgYm9vbCBpbXBvcnRhbnQpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxWZWN0b3I8ZG91YmxlPj4gY29uc3VtZUtleWZyYW1lS2V5TGlzdChDU1NQYXJzZXJU
b2tlblJhbmdlKTsKKyAgICBzdGF0aWMgVmVjdG9yPGRvdWJsZT4gY29uc3VtZUtleWZyYW1lS2V5
TGlzdChDU1NQYXJzZXJUb2tlblJhbmdlKTsKIAogICAgIFJlZjxEZWZlcnJlZFN0eWxlUHJvcGVy
dGllcz4gY3JlYXRlRGVmZXJyZWRTdHlsZVByb3BlcnRpZXMoY29uc3QgQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcHJvcGVydHlSYW5nZSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmNwcAppbmRleCBjMWQzMjk0ZGMzMzhlMjA1MmVjNTEx
ZThmMGJjNGYzMmYzNDU3YzMyLi44YjkyMzQxNzhlYWQzZjNjYTA2M2ZmOWExZWE0N2QwMWJlODU0
MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBv
bHlnb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9s
eWdvbi5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGZpbmROZXh0RWRnZVZl
cnRleEluZGV4KGNvbnN0IEZsb2F0UG9seWdvbiYgcG9seWdvbiwgdW5zaWduZWQgdmUKICAgICBy
ZXR1cm4gdmVydGV4SW5kZXgyOwogfQogCi1GbG9hdFBvbHlnb246OkZsb2F0UG9seWdvbihzdGQ6
OnVuaXF1ZV9wdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0aWNlcywgV2luZFJ1bGUgZmlsbFJ1
bGUpCitGbG9hdFBvbHlnb246OkZsb2F0UG9seWdvbihWZWN0b3I8RmxvYXRQb2ludD4mJiB2ZXJ0
aWNlcywgV2luZFJ1bGUgZmlsbFJ1bGUpCiAgICAgOiBtX3ZlcnRpY2VzKFdURk1vdmUodmVydGlj
ZXMpKQogICAgICwgbV9maWxsUnVsZShmaWxsUnVsZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9seWdvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmgKaW5kZXggZjY0ZGQ2MDI5ZTYwZjNkNDZi
YmUyMmE3MjgzNWRhYzg3MWFjMzU1Mi4uMzE0NDU2ZjlmZDM1OGZjZjk1ZGQxZGFjYTI2NDlmNGE1
M2IxNDczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRQb2x5Z29uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQ
b2x5Z29uLmgKQEAgLTQyLDEwICs0MiwxMCBAQCBjbGFzcyBGbG9hdFBvbHlnb25FZGdlOwogCiBj
bGFzcyBGbG9hdFBvbHlnb24gewogcHVibGljOgotICAgIEZsb2F0UG9seWdvbihzdGQ6OnVuaXF1
ZV9wdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0aWNlcywgV2luZFJ1bGUgZmlsbFJ1bGUpOwor
ICAgIEZsb2F0UG9seWdvbihWZWN0b3I8RmxvYXRQb2ludD4mJiB2ZXJ0aWNlcywgV2luZFJ1bGUg
ZmlsbFJ1bGUpOwogCi0gICAgY29uc3QgRmxvYXRQb2ludCYgdmVydGV4QXQodW5zaWduZWQgaW5k
ZXgpIGNvbnN0IHsgcmV0dXJuICgqbV92ZXJ0aWNlcylbaW5kZXhdOyB9Ci0gICAgdW5zaWduZWQg
bnVtYmVyT2ZWZXJ0aWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljZXMtPnNpemUoKTsgfQor
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHZlcnRleEF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJl
dHVybiBtX3ZlcnRpY2VzW2luZGV4XTsgfQorICAgIHVuc2lnbmVkIG51bWJlck9mVmVydGljZXMo
KSBjb25zdCB7IHJldHVybiBtX3ZlcnRpY2VzLnNpemUoKTsgfQogCiAgICAgV2luZFJ1bGUgZmls
bFJ1bGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxSdWxlOyB9CiAKQEAgLTU4LDEyICs1OCwxMiBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9lbXB0eTsgfQog
CiBwcml2YXRlOgotICAgIHR5cGVkZWYgUE9ESW50ZXJ2YWxUcmVlPGZsb2F0LCBGbG9hdFBvbHln
b25FZGdlKj4gRWRnZUludGVydmFsVHJlZTsKKyAgICB1c2luZyBFZGdlSW50ZXJ2YWxUcmVlID0g
UE9ESW50ZXJ2YWxUcmVlPGZsb2F0LCBGbG9hdFBvbHlnb25FZGdlKj47CiAKICAgICBib29sIGNv
bnRhaW5zTm9uWmVybyhjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgYm9vbCBjb250YWlu
c0V2ZW5PZGQoY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogCi0gICAgc3RkOjp1bmlxdWVfcHRy
PFZlY3RvcjxGbG9hdFBvaW50Pj4gbV92ZXJ0aWNlczsKKyAgICBWZWN0b3I8RmxvYXRQb2ludD4g
bV92ZXJ0aWNlczsKICAgICBXaW5kUnVsZSBtX2ZpbGxSdWxlOwogICAgIEZsb2F0UmVjdCBtX2Jv
dW5kaW5nQm94OwogICAgIGJvb2wgbV9lbXB0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCmluZGV4IDZkOTJjODNkMzg0NmRjNGQ4Njk1NzllYzYy
NmQzZGJiZjI5NWMzN2IuLmQzMDQ1MjVkNTYyM2Q0YzAwNDVhNDcxZGU3NzA4NTU2YmJiZDJhNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaApA
QCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogY2xhc3MgUG9seWdvblNoYXBlIDogcHVibGljIFNo
YXBlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQb2x5Z29uU2hhcGUpOwogcHVibGljOgot
ICAgIFBvbHlnb25TaGFwZShzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0
aWNlcywgV2luZFJ1bGUgZmlsbFJ1bGUpCisgICAgUG9seWdvblNoYXBlKFZlY3RvcjxGbG9hdFBv
aW50PiYmIHZlcnRpY2VzLCBXaW5kUnVsZSBmaWxsUnVsZSkKICAgICAgICAgOiBtX3BvbHlnb24o
V1RGTW92ZSh2ZXJ0aWNlcyksIGZpbGxSdWxlKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCmluZGV4IDA0MmQ1ZGQ3YmI4MzRmMWUzYmVhMWE5
ZTFhOTAyZmUzZGI2ZWZmYjAuLmZiZjEwMjY5ZTUzZGU1ZjkyZWJkYWE3OGE5YWQwMGUyYjU4OTNk
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCkBAIC02Miw3
ICs2Miw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IGNyZWF0ZUVsbGlwc2VTaGFw
ZShjb25zdCBGbG9hdFBvaW50JiBjZW50ZXIsIGNvbnN0CiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8
UmVjdGFuZ2xlU2hhcGU+KEZsb2F0UmVjdChjZW50ZXIueCgpIC0gcmFkaWkud2lkdGgoKSwgY2Vu
dGVyLnkoKSAtIHJhZGlpLmhlaWdodCgpLCByYWRpaS53aWR0aCgpKjIsIHJhZGlpLmhlaWdodCgp
KjIpLCByYWRpaSk7CiB9CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IGNyZWF0ZVBv
bHlnb25TaGFwZShzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0aWNlcywg
V2luZFJ1bGUgZmlsbFJ1bGUpCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBjcmVhdGVQ
b2x5Z29uU2hhcGUoVmVjdG9yPEZsb2F0UG9pbnQ+JiYgdmVydGljZXMsIFdpbmRSdWxlIGZpbGxS
dWxlKQogewogICAgIHJldHVybiBtYWtlVW5pcXVlPFBvbHlnb25TaGFwZT4oV1RGTW92ZSh2ZXJ0
aWNlcyksIGZpbGxSdWxlKTsKIH0KQEAgLTEyOSwxNCArMTI5LDEzIEBAIHN0ZDo6dW5pcXVlX3B0
cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUmIGJhc2ljU2hhcGUs
IGNvbnN0IExhCiAgICAgICAgIGNvbnN0IFZlY3RvcjxMZW5ndGg+JiB2YWx1ZXMgPSBwb2x5Z29u
LnZhbHVlcygpOwogICAgICAgICBzaXplX3QgdmFsdWVzU2l6ZSA9IHZhbHVlcy5zaXplKCk7CiAg
ICAgICAgIEFTU0VSVCghKHZhbHVlc1NpemUgJSAyKSk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8RmxvYXRQb2ludD4+IHZlcnRpY2VzID0gbWFrZVVuaXF1ZTxWZWN0b3I8RmxvYXRQ
b2ludD4+KHZhbHVlc1NpemUgLyAyKTsKKyAgICAgICAgVmVjdG9yPEZsb2F0UG9pbnQ+IHZlcnRp
Y2VzKHZhbHVlc1NpemUgLyAyKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHZh
bHVlc1NpemU7IGkgKz0gMikgewogICAgICAgICAgICAgRmxvYXRQb2ludCB2ZXJ0ZXgoCiAgICAg
ICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aCh2YWx1ZXMuYXQoaSksIGJveFdpZHRoKSwK
ICAgICAgICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHZhbHVlcy5hdChpICsgMSksIGJv
eEhlaWdodCkpOwotICAgICAgICAgICAgKCp2ZXJ0aWNlcylbaSAvIDJdID0gcGh5c2ljYWxQb2lu
dFRvTG9naWNhbCh2ZXJ0ZXgsIGxvZ2ljYWxCb3hTaXplLmhlaWdodCgpLCB3cml0aW5nTW9kZSk7
CisgICAgICAgICAgICB2ZXJ0aWNlc1tpIC8gMl0gPSBwaHlzaWNhbFBvaW50VG9Mb2dpY2FsKHZl
cnRleCwgbG9naWNhbEJveFNpemUuaGVpZ2h0KCksIHdyaXRpbmdNb2RlKTsKICAgICAgICAgfQot
CiAgICAgICAgIHNoYXBlID0gY3JlYXRlUG9seWdvblNoYXBlKFdURk1vdmUodmVydGljZXMpLCBw
b2x5Z29uLndpbmRSdWxlKCkpOwogICAgICAgICBicmVhazsKICAgICB9Cg==
</data>
<flag name="review"
          id="407574"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>