<?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>115652</bug_id>
          
          <creation_ts>2013-05-06 09:29:36 -0700</creation_ts>
          <short_desc>Use OwnPtr instead of deleteAllValues in KeyframeValueList</short_desc>
          <delta_ts>2013-05-07 09:13:04 -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>Platform</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>73757</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>885055</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-06 09:29:36 -0700</bug_when>
    <thetext>Use OwnPtr instead of deleteAllValues in KeyframeValueList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885062</commentid>
    <comment_count>1</comment_count>
      <attachid>200709</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-06 09:38:19 -0700</bug_when>
    <thetext>Created attachment 200709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885081</commentid>
    <comment_count>2</comment_count>
      <attachid>200709</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-06 09:51:49 -0700</bug_when>
    <thetext>Comment on attachment 200709
Patch

Attachment 200709 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/377204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885096</commentid>
    <comment_count>3</comment_count>
      <attachid>200718</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-06 10:06:56 -0700</bug_when>
    <thetext>Created attachment 200718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885104</commentid>
    <comment_count>4</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-05-06 10:20:53 -0700</bug_when>
    <thetext>Thanks, I&apos;ve always wanted to do this! Will let smfr do the reviewing :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885405</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-06 15:00:20 -0700</bug_when>
    <thetext>I just did https://bugs.webkit.org/show_bug.cgi?id=115678 !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885590</commentid>
    <comment_count>6</comment_count>
      <attachid>200718</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-06 21:30:47 -0700</bug_when>
    <thetext>Comment on attachment 200718
Patch

Clearing flags on attachment: 200718

Committed r149661: &lt;http://trac.webkit.org/changeset/149661&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885591</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-06 21:30:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885761</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-07 09:13:04 -0700</bug_when>
    <thetext>*** Bug 115678 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200709</attachid>
            <date>2013-05-06 09:38:19 -0700</date>
            <delta_ts>2013-05-06 10:06:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115652-20130506093727.patch</filename>
            <type>text/plain</type>
            <size>16684</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhODE5MjU5YjMwMzIy
YmE1Njk2N2JjNjEwMWIwNDRlOWExY2NlZi4uNmYyZWZkYWNjOGQyY2E5NTJlY2M5ODUyZGZlOTIz
NzU3OGNjYTJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTA1LTA2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgT3duUHRyIGluc3RlYWQg
b2YgZGVsZXRlQWxsVmFsdWVzIGluIEtleWZyYW1lVmFsdWVMaXN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU2NTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIG1hZGUgYSBmZXcgcmVsYXRlZCBz
dHlsZSBmaXhlcyBpbiB0aGUgZnVuY3Rpb25zIHRvdWNoZWQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
VmFsdWVMaXN0OjppbnNlcnQpOiBDaGFuZ2UgYXJndW1lbnQgdHlwZSB0byBQYXNzT3duUHRyCisg
ICAgICAgIGFuZCB1cGRhdGUgdXNlIG9mIG1fdmFsdWVzIHNpbmNlIGl0IGhhcyBPd25QdHIgbm93
IGluc3RlYWQgb2YgcmF3IHBvaW50ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmg6IE1vdmUgY29uZGl0aW9uYWwgaW5jbHVkZXMgdG8gYQorICAgICAgICBz
ZXBhcmF0ZSBwYXJhZ3JhcGgsIHJlbW92ZWQgYW4gdW5uZWVkZWQgZm9yd2FyZCBjbGFzcyBkZWNs
YXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblZhbHVlOjpBbmltYXRpb25WYWx1
ZSk6IE1hcmtlZCB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGFuZCByZW1vdmVk
IGFuIHVubmVlZGVkIGlmIHN0YXRlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblZh
bHVlOjpjbG9uZSk6IENoYW5nZWQgdG8gdXNlIGFkb3B0UHRyIGFuZCBQYXNzT3duUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RmxvYXRBbmltYXRpb25WYWx1ZTo6Y2xvbmUpOiBDaGFuZ2VkIHRoaXMg
dG8gcmV0dXJuIGEgUGFzc093blB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybUFuaW1h
dGlvblZhbHVlOjpUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSk6IE1hcmtlZCBleHBsaWNpdC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybUFuaW1hdGlvblZhbHVlOjpjbG9uZSk6IENoYW5nZWQg
dG8gdXNlIGFkb3B0UHRyIGFuZCBQYXNzT3duUHRyLgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
QW5pbWF0aW9uVmFsdWU6OkZpbHRlckFuaW1hdGlvblZhbHVlKTogTWFya2VkIGV4cGxpY2l0Lgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyQW5pbWF0aW9uVmFsdWU6OmNsb25lKTogQ2hhbmdlZCB0
byB1c2UgYWRvcHRQdHIgYW5kIFBhc3NPd25QdHIuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFt
ZVZhbHVlTGlzdDo6S2V5ZnJhbWVWYWx1ZUxpc3QpOiBNYXJrZWQgZXhwbGljaXQuCisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdDo6fktleWZyYW1lVmFsdWVMaXN0KTogUmVtb3Zl
ZCwgc2luY2UgdGhlIGRlZmF1bHQKKyAgICAgICAgZGVzdHJ1Y3RvciB3b3JrcyB3aXRob3V0IGFu
IGV4cGxpY2l0IGRlbGV0ZUFsbFZhbHVlcyBjYWxsLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVWYWx1ZUxpc3Q6OmF0KTogQWRkZWQgY2FsbCB0byBnZXQgbmVlZGVkIHNpbmNlIHRoZSB2ZWN0
b3IKKyAgICAgICAgY29udGFpbnMgT3duUHRyIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lVmFsdWVMaXN0OjppbnNlcnQpOiBDaGFuZ2VkIHRvIHRha2UgUGFzc093blB0ciBhbmQgdGhl
bgorICAgICAgICByZW1vdmVkIG5vdy1yZWR1bmRhbnQgY29tbWVudCBzYXlpbmcgInRha2VzIG93
bmVyc2hpcCBvZiB0aGUgcG9pbnRlciIuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZVZhbHVl
TGlzdDo6bV92YWx1ZXMpOiBDaGFuZ2VkIHR5cGUgdG8gVmVjdG9yPE93blB0cj4uCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOiBBZGRlZCBhZG9wdFB0ciBuZXh0
IHRvIHRoZQorICAgICAgICBhbGwgdGhlIHBsYWNlcyBuZXcgd2FzIGRvbmUgYmVmb3JlIGNhbGxp
bmcgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydC4gQWxzbworICAgICAgICBzaW1wbGlmaWVkIHRo
ZSBib29sZWFucyBhbmQgI2lmIGluIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbik6IERpdHRvLgorCiAyMDEzLTA1LTA2
ICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW3RleG1hcF0gZHJhdyBjb250ZW50IGlmIGdyYXBoaWNzIGxheWVyIGRpc3BsYXlzIGEg
dmlkZW8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5jcHAKaW5kZXggYjBlZGFjZTNlNjRhYWU3YmE4MmM1MTJlMmY1MzJkZTdiZjRiZDVhYy4u
Yzc4YjViZWIyNjhjMThkMmZiZWU0ZmYwZWFjZjgwNzE0M2FjYmYwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTUzLDEw
ICs1MywxMCBAQCBzdGF0aWMgUmVwYWludE1hcCYgcmVwYWludFJlY3RNYXAoKQogICAgIHJldHVy
biBtYXA7CiB9CiAKLXZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydChjb25zdCBBbmltYXRp
b25WYWx1ZSogdmFsdWUpCit2b2lkIEtleWZyYW1lVmFsdWVMaXN0OjppbnNlcnQoUGFzc093blB0
cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gdmFsdWUpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBBbmltYXRpb25WYWx1
ZSogY3VyVmFsdWUgPSBtX3ZhbHVlc1tpXTsKKyAgICAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUq
IGN1clZhbHVlID0gbV92YWx1ZXNbaV0uZ2V0KCk7CiAgICAgICAgIGlmIChjdXJWYWx1ZS0+a2V5
VGltZSgpID09IHZhbHVlLT5rZXlUaW1lKCkpIHsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICAgICAgLy8gaW5zZXJ0IGFmdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggOTc5YzkzZTdlMWE3MDQ5
NDdjZGI3ZTI0YzJjZDQ3OWRiMTczOTBjOS4uMTMxMWZiNmViYzdkODRlMWE4MjExZDFiNzQ4OTZi
ZTBiNDRlNTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaApAQCAtMzAsOSArMzAsNiBAQAogCiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgi
CiAjaW5jbHVkZSAiQ29sb3IuaCIKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jaW5jbHVkZSAi
RmlsdGVyT3BlcmF0aW9ucy5oIgotI2VuZGlmCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2lu
Y2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgpAQCAtNDMsNiAr
NDAsMTAgQEAKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRp
b25zLmgiCisjZW5kaWYKKwogZW51bSBMYXllclRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKICAg
ICBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCA9IDAsCiAgICAgTGF5ZXJUcmVlQXNUZXh0
RGVidWcgPSAxIDw8IDAsIC8vIER1bXAgZXh0cmEgZGVidWdnaW5nIGluZm8gbGlrZSBsYXllciBh
ZGRyZXNzZXMuCkBAIC01NSw3ICs1Niw2IEBAIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlQXNU
ZXh0QmVoYXZpb3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmxvYXRQb2ludDNE
OwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhp
Y3NMYXllckZhY3Rvcnk7CkBAIC02OCwyMSArNjgsMjEgQEAgY2xhc3MgVHJhbnNmb3JtYXRpb25N
YXRyaXg7CiAvLyBCYXNlIGNsYXNzIGZvciBhbmltYXRpb24gdmFsdWVzIChhbHNvIHVzZWQgZm9y
IHRyYW5zaXRpb25zKS4gSGVyZSB0bwogLy8gcmVwcmVzZW50IHZhbHVlcyBmb3IgcHJvcGVydGll
cyBiZWluZyBhbmltYXRlZCB2aWEgdGhlIEdyYXBoaWNzTGF5ZXIsCiAvLyB3aXRob3V0IHB1bGxp
bmcgaW4gc3R5bGUtcmVsYXRlZCBkYXRhIGZyb20gb3V0c2lkZSBvZiB0aGUgcGxhdGZvcm0gZGly
ZWN0b3J5LgorLy8gRklYTUU6IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMgb3duIGhlYWRlciBmaWxl
LgogY2xhc3MgQW5pbWF0aW9uVmFsdWUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIEFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIFBhc3NSZWZQdHI8VGlt
aW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uID0gMCkKKyAgICBleHBsaWNpdCBBbmltYXRpb25W
YWx1ZShmbG9hdCBrZXlUaW1lLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5j
dGlvbiA9IDApCiAgICAgICAgIDogbV9rZXlUaW1lKGtleVRpbWUpCisgICAgICAgICwgbV90aW1p
bmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbikKICAgICB7Ci0gICAgICAgIGlmICh0aW1pbmdGdW5j
dGlvbikKLSAgICAgICAgICAgIG1fdGltaW5nRnVuY3Rpb24gPSB0aW1pbmdGdW5jdGlvbjsKICAg
ICB9CiAgICAgCiAgICAgdmlydHVhbCB+QW5pbWF0aW9uVmFsdWUoKSB7IH0KIAogICAgIGZsb2F0
IGtleVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2tleVRpbWU7IH0KICAgICBjb25zdCBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9u
LmdldCgpOyB9Ci0gICAgdmlydHVhbCBBbmltYXRpb25WYWx1ZSogY2xvbmUoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0ID0g
MDsKIAogcHJpdmF0ZToKICAgICBmbG9hdCBtX2tleVRpbWU7CkBAIC05MCw2ICs5MCw3IEBAIHBy
aXZhdGU6CiB9OwogCiAvLyBVc2VkIHRvIHN0b3JlIG9uZSBmbG9hdCB2YWx1ZSBvZiBhbiBhbmlt
YXRpb24uCisvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUu
CiBjbGFzcyBGbG9hdEFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1hdGlvblZhbHVlIHsKIHB1
YmxpYzoKICAgICBGbG9hdEFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIGZsb2F0IHZhbHVl
LCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCkBAIC05Nyw3
ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKICAgICB9
Ci0gICAgdmlydHVhbCBBbmltYXRpb25WYWx1ZSogY2xvbmUoKSBjb25zdCB7IHJldHVybiBuZXcg
RmxvYXRBbmltYXRpb25WYWx1ZSgqdGhpcyk7IH0KKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5p
bWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gYWRvcHRQdHIobmV3
IEZsb2F0QW5pbWF0aW9uVmFsdWUoKnRoaXMpKTsgfQogCiAgICAgZmxvYXQgdmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlOyB9CiAKQEAgLTEwNiwxNSArMTA3LDE2IEBAIHByaXZhdGU6CiB9
OwogCiAvLyBVc2VkIHRvIHN0b3JlIG9uZSB0cmFuc2Zvcm0gdmFsdWUgaW4gYSBrZXlmcmFtZSBs
aXN0LgorLy8gRklYTUU6IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMgb3duIGhlYWRlciBmaWxlLgog
Y2xhc3MgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9uVmFsdWUgewog
cHVibGljOgotICAgIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIGNvbnN0
IFRyYW5zZm9ybU9wZXJhdGlvbnMqIHZhbHVlID0gMCwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlv
bj4gdGltaW5nRnVuY3Rpb24gPSAwKQorICAgIGV4cGxpY2l0IFRyYW5zZm9ybUFuaW1hdGlvblZh
bHVlKGZsb2F0IGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMqIHZhbHVlID0gMCwg
UGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAwKQogICAgICAgICA6
IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQogICAgIHsKICAgICAgICAg
aWYgKHZhbHVlKQogICAgICAgICAgICAgbV92YWx1ZSA9ICp2YWx1ZTsKICAgICB9Ci0gICAgdmly
dHVhbCBBbmltYXRpb25WYWx1ZSogY2xvbmUoKSBjb25zdCB7IHJldHVybiBuZXcgVHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWUoKnRoaXMpOyB9CisgICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1hdGlv
blZhbHVlPiBjbG9uZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBUcmFu
c2Zvcm1BbmltYXRpb25WYWx1ZSgqdGhpcykpOyB9CiAKICAgICBjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb25zKiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuICZtX3ZhbHVlOyB9CiAKQEAgLTEyNCwxNSAr
MTI2LDE2IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAvLyBVc2VkIHRv
IHN0b3JlIG9uZSBmaWx0ZXIgdmFsdWUgaW4gYSBrZXlmcmFtZSBsaXN0LgorLy8gRklYTUU6IFNo
b3VsZCBiZSBtb3ZlZCB0byBpdHMgb3duIGhlYWRlciBmaWxlLgogY2xhc3MgRmlsdGVyQW5pbWF0
aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9uVmFsdWUgewogcHVibGljOgotICAgIEZpbHRlckFu
aW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMqIHZhbHVl
ID0gMCwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAwKQorICAg
IGV4cGxpY2l0IEZpbHRlckFuaW1hdGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMqIHZhbHVlID0gMCwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5n
RnVuY3Rpb24gPSAwKQogICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1
bmN0aW9uKQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlKQogICAgICAgICAgICAgbV92YWx1ZSA9
ICp2YWx1ZTsKICAgICB9Ci0gICAgdmlydHVhbCBBbmltYXRpb25WYWx1ZSogY2xvbmUoKSBjb25z
dCB7IHJldHVybiBuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoKnRoaXMpOyB9CisgICAgdmlydHVh
bCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIGFkb3B0UHRyKG5ldyBGaWx0ZXJBbmltYXRpb25WYWx1ZSgqdGhpcykpOyB9CiAKICAgICBj
b25zdCBGaWx0ZXJPcGVyYXRpb25zKiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuICZtX3ZhbHVlOyB9
CiAKQEAgLTE0MSwxMiArMTQ0LDEyIEBAIHByaXZhdGU6CiB9OwogI2VuZGlmCiAKLS8vIFVzZWQg
dG8gc3RvcmUgYSBzZXJpZXMgb2YgdmFsdWVzIGluIGEga2V5ZnJhbWUgbGlzdC4gVmFsdWVzIHdp
bGwgYWxsIGJlIG9mIHRoZSBzYW1lIHR5cGUsCi0vLyB3aGljaCBjYW4gYmUgaW5mZXJyZWQgZnJv
bSB0aGUgcHJvcGVydHkuCisvLyBVc2VkIHRvIHN0b3JlIGEgc2VyaWVzIG9mIHZhbHVlcyBpbiBh
IGtleWZyYW1lIGxpc3QuCisvLyBWYWx1ZXMgd2lsbCBhbGwgYmUgb2YgdGhlIHNhbWUgdHlwZSwg
d2hpY2ggY2FuIGJlIGluZmVycmVkIGZyb20gdGhlIHByb3BlcnR5LgorLy8gRklYTUU6IFNob3Vs
ZCBiZSBtb3ZlZCB0byBpdHMgb3duIGhlYWRlciBmaWxlLgogY2xhc3MgS2V5ZnJhbWVWYWx1ZUxp
c3QgewogcHVibGljOgotCi0gICAgS2V5ZnJhbWVWYWx1ZUxpc3QoQW5pbWF0ZWRQcm9wZXJ0eUlE
IHByb3BlcnR5KQorICAgIGV4cGxpY2l0IEtleWZyYW1lVmFsdWVMaXN0KEFuaW1hdGVkUHJvcGVy
dHlJRCBwcm9wZXJ0eSkKICAgICAgICAgOiBtX3Byb3BlcnR5KHByb3BlcnR5KQogICAgIHsKICAg
ICB9CkBAIC0xNTgsMTEgKzE2MSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fdmFsdWVzLmFw
cGVuZChvdGhlci5tX3ZhbHVlc1tpXS0+Y2xvbmUoKSk7CiAgICAgfQogCi0gICAgfktleWZyYW1l
VmFsdWVMaXN0KCkKLSAgICB7Ci0gICAgICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3ZhbHVlcyk7Ci0g
ICAgfQotCiAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QmIG9wZXJhdG9yPShjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYgb3RoZXIpCiAgICAgewogICAgICAgICBLZXlmcmFtZVZhbHVlTGlzdCBjb3B5KG90
aGVyKTsKQEAgLTE3OSwxOCArMTc3LDE2IEBAIHB1YmxpYzoKICAgICBBbmltYXRlZFByb3BlcnR5
SUQgcHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5OyB9CiAKICAgICBzaXplX3Qg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzLnNpemUoKTsgfQotICAgIGNvbnN0IEFuaW1h
dGlvblZhbHVlKiBhdChzaXplX3QgaSkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuYXQoaSk7IH0K
KyAgICBjb25zdCBBbmltYXRpb25WYWx1ZSogYXQoc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWVzLmF0KGkpLmdldCgpOyB9CiAgICAgCi0gICAgLy8gSW5zZXJ0LCBzb3J0ZWQgYnkga2V5
VGltZS4gVGFrZXMgb3duZXJzaGlwIG9mIHRoZSBwb2ludGVyLgotICAgIHZvaWQgaW5zZXJ0KGNv
bnN0IEFuaW1hdGlvblZhbHVlKik7CisgICAgLy8gSW5zZXJ0LCBzb3J0ZWQgYnkga2V5VGltZS4K
KyAgICB2b2lkIGluc2VydChQYXNzT3duUHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPik7CiAgICAg
CiBwcm90ZWN0ZWQ6Ci0gICAgVmVjdG9yPGNvbnN0IEFuaW1hdGlvblZhbHVlKj4gbV92YWx1ZXM7
CisgICAgVmVjdG9yPE93blB0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gPiBtX3ZhbHVlczsKICAg
ICBBbmltYXRlZFByb3BlcnR5SUQgbV9wcm9wZXJ0eTsKIH07CiAKLQotCiAvLyBHcmFwaGljc0xh
eWVyIGlzIGFuIGFic3RyYWN0aW9uIGZvciBhIHJlbmRlcmluZyBzdXJmYWNlIHdpdGggYmFja2lu
ZyBzdG9yZSwKIC8vIHdoaWNoIG1heSBoYXZlIGFzc29jaWF0ZWQgdHJhbnNmb3JtYXRpb24gYW5k
IGFuaW1hdGlvbnMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggMGY0MzQxNDI5N2RjM2FlYWE5NDkyMmVhNTk2Y2YzMTcxNGRlODk3
Zi4uMWRlZmI1MmIzNGFhODM5YTk0MzNmZmI0MDAzZjExNTQxZjkwMWU4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTIxMDcsMzkg
KzIxMDcsMzEgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJs
ZSB0aW1lT2Zmc2V0LCBjb25zdCBBbmltYXRpb24qIGFuaW0KICAgICAgICAgCiAgICAgICAgIGJv
b2wgaXNGaXJzdE9yTGFzdEtleWZyYW1lID0ga2V5ID09IDAgfHwga2V5ID09IDE7CiAgICAgICAg
IGlmICgoaGFzVHJhbnNmb3JtICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtl
eWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pKQotICAg
ICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFs
dWUoa2V5LCAmKGtleWZyYW1lU3R5bGUtPnRyYW5zZm9ybSgpKSwgdGYpKTsKKyAgICAgICAgICAg
IHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoYWRvcHRQdHIobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZh
bHVlKGtleSwgJihrZXlmcmFtZVN0eWxlLT50cmFuc2Zvcm0oKSksIHRmKSkpOwogICAgICAgICAK
ICAgICAgICAgaWYgKChoYXNPcGFjaXR5ICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3Vy
cmVudEtleWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5KSkKLSAgICAg
ICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKGtleSwg
a2V5ZnJhbWVTdHlsZS0+b3BhY2l0eSgpLCB0ZikpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rv
ci5pbnNlcnQoYWRvcHRQdHIobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoa2V5LCBrZXlmcmFtZVN0
eWxlLT5vcGFjaXR5KCksIHRmKSkpOwogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAg
ICBpZiAoKGhhc0ZpbHRlciAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUpIHx8IGN1cnJlbnRLZXlm
cmFtZS5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKSkKLSAgICAgICAg
ICAgIGZpbHRlclZlY3Rvci5pbnNlcnQobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleSwgJihr
ZXlmcmFtZVN0eWxlLT5maWx0ZXIoKSksIHRmKSk7CisgICAgICAgICAgICBmaWx0ZXJWZWN0b3Iu
aW5zZXJ0KGFkb3B0UHRyKG5ldyBGaWx0ZXJBbmltYXRpb25WYWx1ZShrZXksICYoa2V5ZnJhbWVT
dHlsZS0+ZmlsdGVyKCkpLCB0ZikpKTsKICNlbmRpZgogICAgIH0KIAotICAgIGJvb2wgZGlkQW5p
bWF0ZVRyYW5zZm9ybSA9IGZhbHNlOwotICAgIGJvb2wgZGlkQW5pbWF0ZU9wYWNpdHkgPSBmYWxz
ZTsKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgYm9vbCBkaWRBbmltYXRlRmlsdGVyID0g
ZmFsc2U7Ci0jZW5kaWYKKyAgICBib29sIGRpZEFuaW1hdGUgPSBmYWxzZTsKICAgICAKICAgICBp
ZiAoaGFzVHJhbnNmb3JtICYmIG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKHRyYW5zZm9y
bVZlY3RvciwgdG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPnBpeGVsU25hcHBlZEJvcmRlckJveFJl
Y3QoKS5zaXplKCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIHRpbWVPZmZzZXQp
KQotICAgICAgICBkaWRBbmltYXRlVHJhbnNmb3JtID0gdHJ1ZTsKKyAgICAgICAgZGlkQW5pbWF0
ZSA9IHRydWU7CiAKICAgICBpZiAoaGFzT3BhY2l0eSAmJiBtX2dyYXBoaWNzTGF5ZXItPmFkZEFu
aW1hdGlvbihvcGFjaXR5VmVjdG9yLCBJbnRTaXplKCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRp
b25OYW1lKCksIHRpbWVPZmZzZXQpKQotICAgICAgICBkaWRBbmltYXRlT3BhY2l0eSA9IHRydWU7
CisgICAgICAgIGRpZEFuaW1hdGUgPSB0cnVlOwogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIGlmIChoYXNGaWx0ZXIgJiYgbV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24oZmlsdGVy
VmVjdG9yLCBJbnRTaXplKCksIGFuaW0sIGtleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIHRpbWVP
ZmZzZXQpKQotICAgICAgICBkaWRBbmltYXRlRmlsdGVyID0gdHJ1ZTsKKyAgICAgICAgZGlkQW5p
bWF0ZSA9IHRydWU7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICByZXR1
cm4gZGlkQW5pbWF0ZVRyYW5zZm9ybSB8fCBkaWRBbmltYXRlT3BhY2l0eSB8fCBkaWRBbmltYXRl
RmlsdGVyOwotI2Vsc2UKLSAgICByZXR1cm4gZGlkQW5pbWF0ZVRyYW5zZm9ybSB8fCBkaWRBbmlt
YXRlT3BhY2l0eTsKLSNlbmRpZgorICAgIHJldHVybiBkaWRBbmltYXRlOwogfQogCiB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6YW5pbWF0aW9uUGF1c2VkKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUpCkBAIC0yMTU0LDExICsyMTQ2LDcgQEAgdm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OmFuaW1hdGlvbkZpbmlzaGVkKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9u
TmFtZSkKIAogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbihkb3VibGUg
dGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgUmVuZGVyU3R5bGUqIGZy
b21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHRvU3R5bGUpCiB7Ci0gICAgYm9vbCBkaWRBbmlt
YXRlT3BhY2l0eSA9IGZhbHNlOwotICAgIGJvb2wgZGlkQW5pbWF0ZVRyYW5zZm9ybSA9IGZhbHNl
OwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBib29sIGRpZEFuaW1hdGVGaWx0ZXIgPSBm
YWxzZTsKLSNlbmRpZgorICAgIGJvb2wgZGlkQW5pbWF0ZSA9IGZhbHNlOwogCiAgICAgQVNTRVJU
KHByb3BlcnR5ICE9IENTU1Byb3BlcnR5SW52YWxpZCk7CiAKQEAgLTIxNjYsMTMgKzIxNTQsMTMg
QEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbihkb3VibGUgdGltZU9m
ZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXIKICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBvcGFj
aXR5QW5pbSA9IHRvU3R5bGUtPnRyYW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNp
dHkpOwogICAgICAgICBpZiAob3BhY2l0eUFuaW0gJiYgIW9wYWNpdHlBbmltLT5pc0VtcHR5T3Ja
ZXJvRHVyYXRpb24oKSkgewogICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3Qgb3BhY2l0eVZl
Y3RvcihBbmltYXRlZFByb3BlcnR5T3BhY2l0eSk7Ci0gICAgICAgICAgICBvcGFjaXR5VmVjdG9y
Lmluc2VydChuZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgwLCBjb21wb3NpdGluZ09wYWNpdHkoZnJv
bVN0eWxlLT5vcGFjaXR5KCkpKSk7Ci0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChu
ZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgxLCBjb21wb3NpdGluZ09wYWNpdHkodG9TdHlsZS0+b3Bh
Y2l0eSgpKSkpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoYWRvcHRQdHIobmV3
IEZsb2F0QW5pbWF0aW9uVmFsdWUoMCwgY29tcG9zaXRpbmdPcGFjaXR5KGZyb21TdHlsZS0+b3Bh
Y2l0eSgpKSkpKTsKKyAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KGFkb3B0UHRyKG5l
dyBGbG9hdEFuaW1hdGlvblZhbHVlKDEsIGNvbXBvc2l0aW5nT3BhY2l0eSh0b1N0eWxlLT5vcGFj
aXR5KCkpKSkpOwogICAgICAgICAgICAgLy8gVGhlIGJveFNpemUgcGFyYW0gaXMgb25seSB1c2Vk
IGZvciB0cmFuc2Zvcm0gYW5pbWF0aW9ucyAod2hpY2ggY2FuIG9ubHkgcnVuIG9uIFJlbmRlckJv
eGVzKSwgc28gd2UgcGFzcyBhbiBlbXB0eSBzaXplIGhlcmUuCiAgICAgICAgICAgICBpZiAobV9n
cmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24ob3BhY2l0eVZlY3RvciwgSW50U2l6ZSgpLCBvcGFj
aXR5QW5pbSwgR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0
ZWRQcm9wZXJ0eU9wYWNpdHkpLCB0aW1lT2Zmc2V0KSkgewogICAgICAgICAgICAgICAgIC8vIFRv
IGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IG9wYWNpdHkgaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmlt
YXRpb24gZW5kcywgYWxzbyBzZXQgdGhlIGZpbmFsIG9wYWNpdHkuCiAgICAgICAgICAgICAgICAg
dXBkYXRlT3BhY2l0eSh0b1N0eWxlKTsKLSAgICAgICAgICAgICAgICBkaWRBbmltYXRlT3BhY2l0
eSA9IHRydWU7CisgICAgICAgICAgICAgICAgZGlkQW5pbWF0ZSA9IHRydWU7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yMTgxLDEyICsyMTY5LDEyIEBAIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIENTU1Byb3Bl
cnR5SUQgcHJvcGVyCiAgICAgICAgIGNvbnN0IEFuaW1hdGlvbiogdHJhbnNmb3JtQW5pbSA9IHRv
U3R5bGUtPnRyYW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7
CiAgICAgICAgIGlmICh0cmFuc2Zvcm1BbmltICYmICF0cmFuc2Zvcm1BbmltLT5pc0VtcHR5T3Ja
ZXJvRHVyYXRpb24oKSkgewogICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgdHJhbnNmb3Jt
VmVjdG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwotICAgICAgICAgICAgdHJh
bnNmb3JtVmVjdG9yLmluc2VydChuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoMCwgJmZyb21T
dHlsZS0+dHJhbnNmb3JtKCkpKTsKLSAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQo
bmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDEsICZ0b1N0eWxlLT50cmFuc2Zvcm0oKSkpOwor
ICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChhZG9wdFB0cihuZXcgVHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWUoMCwgJmZyb21TdHlsZS0+dHJhbnNmb3JtKCkpKSk7CisgICAgICAgICAg
ICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1BbmltYXRpb25W
YWx1ZSgxLCAmdG9TdHlsZS0+dHJhbnNmb3JtKCkpKSk7CiAgICAgICAgICAgICBpZiAobV9ncmFw
aGljc0xheWVyLT5hZGRBbmltYXRpb24odHJhbnNmb3JtVmVjdG9yLCB0b1JlbmRlckJveChyZW5k
ZXJlcigpKS0+cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpLnNpemUoKSwgdHJhbnNmb3JtQW5p
bSwgR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybSksIHRpbWVPZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgLy8g
VG8gZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3QgdHJhbnNmb3JtIGlzIHZpc2libGUgd2hlbiB0aGUg
YW5pbWF0aW9uIGVuZHMsIGFsc28gc2V0IHRoZSBmaW5hbCB0cmFuc2Zvcm0uCiAgICAgICAgICAg
ICAgICAgdXBkYXRlVHJhbnNmb3JtKHRvU3R5bGUpOwotICAgICAgICAgICAgICAgIGRpZEFuaW1h
dGVUcmFuc2Zvcm0gPSB0cnVlOworICAgICAgICAgICAgICAgIGRpZEFuaW1hdGUgPSB0cnVlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMjE5NiwyMiArMjE4NCwxOCBAQCBi
b29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0
LCBDU1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIGZpbHRlckFu
aW0gPSB0b1N0eWxlLT50cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0
ZXIpOwogICAgICAgICBpZiAoZmlsdGVyQW5pbSAmJiAhZmlsdGVyQW5pbS0+aXNFbXB0eU9yWmVy
b0R1cmF0aW9uKCkpIHsKICAgICAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IGZpbHRlclZlY3Rv
cihBbmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyKTsKLSAgICAgICAgICAgIGZpbHRlclZlY3Rv
ci5pbnNlcnQobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKDAsICZmcm9tU3R5bGUtPmZpbHRlcigp
KSk7Ci0gICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KG5ldyBGaWx0ZXJBbmltYXRpb25W
YWx1ZSgxLCAmdG9TdHlsZS0+ZmlsdGVyKCkpKTsKKyAgICAgICAgICAgIGZpbHRlclZlY3Rvci5p
bnNlcnQoYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKDAsICZmcm9tU3R5bGUtPmZp
bHRlcigpKSkpOworICAgICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChhZG9wdFB0cihuZXcg
RmlsdGVyQW5pbWF0aW9uVmFsdWUoMSwgJnRvU3R5bGUtPmZpbHRlcigpKSkpOwogICAgICAgICAg
ICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKGZpbHRlclZlY3RvciwgSW50U2l6
ZSgpLCBmaWx0ZXJBbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlv
bihBbmltYXRlZFByb3BlcnR5V2Via2l0RmlsdGVyKSwgdGltZU9mZnNldCkpIHsKICAgICAgICAg
ICAgICAgICAvLyBUbyBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCBmaWx0ZXIgaXMgdmlzaWJsZSB3
aGVuIHRoZSBhbmltYXRpb24gZW5kcywgYWxzbyBzZXQgdGhlIGZpbmFsIGZpbHRlci4KICAgICAg
ICAgICAgICAgICB1cGRhdGVGaWx0ZXJzKHRvU3R5bGUpOwotICAgICAgICAgICAgICAgIGRpZEFu
aW1hdGVGaWx0ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgIGRpZEFuaW1hdGUgPSB0cnVlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCi0gICAgcmV0dXJuIGRpZEFuaW1hdGVPcGFjaXR5IHx8IGRpZEFuaW1hdGVUcmFu
c2Zvcm0gfHwgZGlkQW5pbWF0ZUZpbHRlcjsKLSNlbHNlCi0gICAgcmV0dXJuIGRpZEFuaW1hdGVP
cGFjaXR5IHx8IGRpZEFuaW1hdGVUcmFuc2Zvcm07Ci0jZW5kaWYKKyAgICByZXR1cm4gZGlkQW5p
bWF0ZTsKIH0KIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnRyYW5zaXRpb25QYXVzZWQoZG91
YmxlIHRpbWVPZmZzZXQsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200718</attachid>
            <date>2013-05-06 10:06:56 -0700</date>
            <delta_ts>2013-05-06 21:30:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115652-20130506100603.patch</filename>
            <type>text/plain</type>
            <size>19220</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhODE5MjU5YjMwMzIy
YmE1Njk2N2JjNjEwMWIwNDRlOWExY2NlZi4uNmYyZWZkYWNjOGQyY2E5NTJlY2M5ODUyZGZlOTIz
NzU3OGNjYTJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTA1LTA2ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgT3duUHRyIGluc3RlYWQg
b2YgZGVsZXRlQWxsVmFsdWVzIGluIEtleWZyYW1lVmFsdWVMaXN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU2NTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIG1hZGUgYSBmZXcgcmVsYXRlZCBz
dHlsZSBmaXhlcyBpbiB0aGUgZnVuY3Rpb25zIHRvdWNoZWQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
VmFsdWVMaXN0OjppbnNlcnQpOiBDaGFuZ2UgYXJndW1lbnQgdHlwZSB0byBQYXNzT3duUHRyCisg
ICAgICAgIGFuZCB1cGRhdGUgdXNlIG9mIG1fdmFsdWVzIHNpbmNlIGl0IGhhcyBPd25QdHIgbm93
IGluc3RlYWQgb2YgcmF3IHBvaW50ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmg6IE1vdmUgY29uZGl0aW9uYWwgaW5jbHVkZXMgdG8gYQorICAgICAgICBz
ZXBhcmF0ZSBwYXJhZ3JhcGgsIHJlbW92ZWQgYW4gdW5uZWVkZWQgZm9yd2FyZCBjbGFzcyBkZWNs
YXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblZhbHVlOjpBbmltYXRpb25WYWx1
ZSk6IE1hcmtlZCB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGFuZCByZW1vdmVk
IGFuIHVubmVlZGVkIGlmIHN0YXRlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblZh
bHVlOjpjbG9uZSk6IENoYW5nZWQgdG8gdXNlIGFkb3B0UHRyIGFuZCBQYXNzT3duUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RmxvYXRBbmltYXRpb25WYWx1ZTo6Y2xvbmUpOiBDaGFuZ2VkIHRoaXMg
dG8gcmV0dXJuIGEgUGFzc093blB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybUFuaW1h
dGlvblZhbHVlOjpUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSk6IE1hcmtlZCBleHBsaWNpdC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybUFuaW1hdGlvblZhbHVlOjpjbG9uZSk6IENoYW5nZWQg
dG8gdXNlIGFkb3B0UHRyIGFuZCBQYXNzT3duUHRyLgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
QW5pbWF0aW9uVmFsdWU6OkZpbHRlckFuaW1hdGlvblZhbHVlKTogTWFya2VkIGV4cGxpY2l0Lgor
ICAgICAgICAoV2ViQ29yZTo6RmlsdGVyQW5pbWF0aW9uVmFsdWU6OmNsb25lKTogQ2hhbmdlZCB0
byB1c2UgYWRvcHRQdHIgYW5kIFBhc3NPd25QdHIuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFt
ZVZhbHVlTGlzdDo6S2V5ZnJhbWVWYWx1ZUxpc3QpOiBNYXJrZWQgZXhwbGljaXQuCisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdDo6fktleWZyYW1lVmFsdWVMaXN0KTogUmVtb3Zl
ZCwgc2luY2UgdGhlIGRlZmF1bHQKKyAgICAgICAgZGVzdHJ1Y3RvciB3b3JrcyB3aXRob3V0IGFu
IGV4cGxpY2l0IGRlbGV0ZUFsbFZhbHVlcyBjYWxsLgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVWYWx1ZUxpc3Q6OmF0KTogQWRkZWQgY2FsbCB0byBnZXQgbmVlZGVkIHNpbmNlIHRoZSB2ZWN0
b3IKKyAgICAgICAgY29udGFpbnMgT3duUHRyIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lVmFsdWVMaXN0OjppbnNlcnQpOiBDaGFuZ2VkIHRvIHRha2UgUGFzc093blB0ciBhbmQgdGhl
bgorICAgICAgICByZW1vdmVkIG5vdy1yZWR1bmRhbnQgY29tbWVudCBzYXlpbmcgInRha2VzIG93
bmVyc2hpcCBvZiB0aGUgcG9pbnRlciIuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZVZhbHVl
TGlzdDo6bV92YWx1ZXMpOiBDaGFuZ2VkIHR5cGUgdG8gVmVjdG9yPE93blB0cj4uCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOiBBZGRlZCBhZG9wdFB0ciBuZXh0
IHRvIHRoZQorICAgICAgICBhbGwgdGhlIHBsYWNlcyBuZXcgd2FzIGRvbmUgYmVmb3JlIGNhbGxp
bmcgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydC4gQWxzbworICAgICAgICBzaW1wbGlmaWVkIHRo
ZSBib29sZWFucyBhbmQgI2lmIGluIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbik6IERpdHRvLgorCiAyMDEzLTA1LTA2
ICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW3RleG1hcF0gZHJhdyBjb250ZW50IGlmIGdyYXBoaWNzIGxheWVyIGRpc3BsYXlzIGEg
dmlkZW8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBlYWZmZDNjZTdhZjNmMTFlZmYyYjZiZjk3OTBmOWQ0MjAwODcw
ZGYyLi4wNTE5YTQ5YmJkMmU0ODA1MGEyMWMwYWExM2YwOTQ5NzlhOTkzMWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDUtMDYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZSBPd25QdHIgaW5zdGVhZCBvZiBkZWxldGVBbGxWYWx1ZXMgaW4g
S2V5ZnJhbWVWYWx1ZUxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNTY1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkFyZ3VtZW50Q29kZXI8R3Jh
cGhpY3NMYXllckFuaW1hdGlvbj46OmRlY29kZSk6IEFkZGVkIGFkb3B0UHRyCisgICAgICAgIG5l
eHQgdG8gbmV3IHdoZW4gY2FsbGluZyBLZXlmcmFtZVZhbHVlTGlzdDo6aW5zZXJ0LgorCiAyMDEz
LTA1LTA2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
V0syXSBNYWtlIHRoZSBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5IGEgc3VwcGxlbWVudCB0byB0aGUg
V2ViQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcAppbmRleCBiMGVkYWNlM2U2NGFhZTdiYTgyYzUxMmUyZjUzMmRlN2JmNGJk
NWFjLi5jNzhiNWJlYjI2OGMxOGQyZmJlZTRmZjBlYWNmODA3MTQzYWNiZjA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAt
NTMsMTAgKzUzLDEwIEBAIHN0YXRpYyBSZXBhaW50TWFwJiByZXBhaW50UmVjdE1hcCgpCiAgICAg
cmV0dXJuIG1hcDsKIH0KIAotdm9pZCBLZXlmcmFtZVZhbHVlTGlzdDo6aW5zZXJ0KGNvbnN0IEFu
aW1hdGlvblZhbHVlKiB2YWx1ZSkKK3ZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydChQYXNz
T3duUHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPiB2YWx1ZSkKIHsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fdmFsdWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEFuaW1hdGlv
blZhbHVlKiBjdXJWYWx1ZSA9IG1fdmFsdWVzW2ldOworICAgICAgICBjb25zdCBBbmltYXRpb25W
YWx1ZSogY3VyVmFsdWUgPSBtX3ZhbHVlc1tpXS5nZXQoKTsKICAgICAgICAgaWYgKGN1clZhbHVl
LT5rZXlUaW1lKCkgPT0gdmFsdWUtPmtleVRpbWUoKSkgewogICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAvLyBpbnNlcnQgYWZ0ZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA5NzljOTNlN2Ux
YTcwNDk0N2NkYjdlMjRjMmNkNDc5ZGIxNzM5MGM5Li4xMzExZmI2ZWJjN2Q4NGUxYTgyMTFkMWI3
NDg5NmJlMGI0NGU1NTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5oCkBAIC0zMCw5ICszMCw2IEBACiAKICNpbmNsdWRlICJBbmltYXRp
b24uaCIKICNpbmNsdWRlICJDb2xvci5oIgotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSNpbmNs
dWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCi0jZW5kaWYKICNpbmNsdWRlICJGbG9hdFBvaW50Lmgi
CiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCkBAIC00
Myw2ICs0MCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorI2luY2x1ZGUgIkZpbHRlck9w
ZXJhdGlvbnMuaCIKKyNlbmRpZgorCiBlbnVtIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yRmxhZ3Mg
ewogICAgIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsID0gMCwKICAgICBMYXllclRyZWVB
c1RleHREZWJ1ZyA9IDEgPDwgMCwgLy8gRHVtcCBleHRyYSBkZWJ1Z2dpbmcgaW5mbyBsaWtlIGxh
eWVyIGFkZHJlc3Nlcy4KQEAgLTU1LDcgKzU2LDYgQEAgdHlwZWRlZiB1bnNpZ25lZCBMYXllclRy
ZWVBc1RleHRCZWhhdmlvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGbG9hdFBv
aW50M0Q7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBH
cmFwaGljc0xheWVyRmFjdG9yeTsKQEAgLTY4LDIxICs2OCwyMSBAQCBjbGFzcyBUcmFuc2Zvcm1h
dGlvbk1hdHJpeDsKIC8vIEJhc2UgY2xhc3MgZm9yIGFuaW1hdGlvbiB2YWx1ZXMgKGFsc28gdXNl
ZCBmb3IgdHJhbnNpdGlvbnMpLiBIZXJlIHRvCiAvLyByZXByZXNlbnQgdmFsdWVzIGZvciBwcm9w
ZXJ0aWVzIGJlaW5nIGFuaW1hdGVkIHZpYSB0aGUgR3JhcGhpY3NMYXllciwKIC8vIHdpdGhvdXQg
cHVsbGluZyBpbiBzdHlsZS1yZWxhdGVkIGRhdGEgZnJvbSBvdXRzaWRlIG9mIHRoZSBwbGF0Zm9y
bSBkaXJlY3RvcnkuCisvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVy
IGZpbGUuCiBjbGFzcyBBbmltYXRpb25WYWx1ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgQW5pbWF0aW9uVmFsdWUoZmxvYXQga2V5VGltZSwgUGFzc1JlZlB0
cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAwKQorICAgIGV4cGxpY2l0IEFuaW1h
dGlvblZhbHVlKGZsb2F0IGtleVRpbWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWlu
Z0Z1bmN0aW9uID0gMCkKICAgICAgICAgOiBtX2tleVRpbWUoa2V5VGltZSkKKyAgICAgICAgLCBt
X3RpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKQogICAgIHsKLSAgICAgICAgaWYgKHRpbWlu
Z0Z1bmN0aW9uKQotICAgICAgICAgICAgbV90aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9u
OwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5BbmltYXRpb25WYWx1ZSgpIHsgfQogCiAgICAg
ZmxvYXQga2V5VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5VGltZTsgfQogICAgIGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGltaW5nRnVu
Y3Rpb24uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIEFuaW1hdGlvblZhbHVlKiBjbG9uZSgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29u
c3QgPSAwOwogCiBwcml2YXRlOgogICAgIGZsb2F0IG1fa2V5VGltZTsKQEAgLTkwLDYgKzkwLDcg
QEAgcHJpdmF0ZToKIH07CiAKIC8vIFVzZWQgdG8gc3RvcmUgb25lIGZsb2F0IHZhbHVlIG9mIGFu
IGFuaW1hdGlvbi4KKy8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBoZWFkZXIg
ZmlsZS4KIGNsYXNzIEZsb2F0QW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9uVmFsdWUg
ewogcHVibGljOgogICAgIEZsb2F0QW5pbWF0aW9uVmFsdWUoZmxvYXQga2V5VGltZSwgZmxvYXQg
dmFsdWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uID0gMCkKQEAg
LTk3LDcgKzk4LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewog
ICAgIH0KLSAgICB2aXJ0dWFsIEFuaW1hdGlvblZhbHVlKiBjbG9uZSgpIGNvbnN0IHsgcmV0dXJu
IG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKCp0aGlzKTsgfQorICAgIHZpcnR1YWwgUGFzc093blB0
cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBhZG9wdFB0
cihuZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgqdGhpcykpOyB9CiAKICAgICBmbG9hdCB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIApAQCAtMTA2LDE1ICsxMDcsMTYgQEAgcHJpdmF0
ZToKIH07CiAKIC8vIFVzZWQgdG8gc3RvcmUgb25lIHRyYW5zZm9ybSB2YWx1ZSBpbiBhIGtleWZy
YW1lIGxpc3QuCisvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZp
bGUuCiBjbGFzcyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1
ZSB7CiBwdWJsaWM6Ci0gICAgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoZmxvYXQga2V5VGltZSwg
Y29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFsdWUgPSAwLCBQYXNzUmVmUHRyPFRpbWluZ0Z1
bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCisgICAgZXhwbGljaXQgVHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWUoZmxvYXQga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogdmFsdWUg
PSAwLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCiAgICAg
ICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCiAgICAgewogICAg
ICAgICBpZiAodmFsdWUpCiAgICAgICAgICAgICBtX3ZhbHVlID0gKnZhbHVlOwogICAgIH0KLSAg
ICB2aXJ0dWFsIEFuaW1hdGlvblZhbHVlKiBjbG9uZSgpIGNvbnN0IHsgcmV0dXJuIG5ldyBUcmFu
c2Zvcm1BbmltYXRpb25WYWx1ZSgqdGhpcyk7IH0KKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5p
bWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gYWRvcHRQdHIobmV3
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKCp0aGlzKSk7IH0KIAogICAgIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gJm1fdmFsdWU7IH0KIApAQCAtMTI0
LDE1ICsxMjYsMTYgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIC8vIFVz
ZWQgdG8gc3RvcmUgb25lIGZpbHRlciB2YWx1ZSBpbiBhIGtleWZyYW1lIGxpc3QuCisvLyBGSVhN
RTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFzcyBGaWx0ZXJB
bmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgRmls
dGVyQW5pbWF0aW9uVmFsdWUoZmxvYXQga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyog
dmFsdWUgPSAwLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDAp
CisgICAgZXhwbGljaXQgRmlsdGVyQW5pbWF0aW9uVmFsdWUoZmxvYXQga2V5VGltZSwgY29uc3Qg
RmlsdGVyT3BlcmF0aW9ucyogdmFsdWUgPSAwLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0
aW1pbmdGdW5jdGlvbiA9IDApCiAgICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGlt
aW5nRnVuY3Rpb24pCiAgICAgewogICAgICAgICBpZiAodmFsdWUpCiAgICAgICAgICAgICBtX3Zh
bHVlID0gKnZhbHVlOwogICAgIH0KLSAgICB2aXJ0dWFsIEFuaW1hdGlvblZhbHVlKiBjbG9uZSgp
IGNvbnN0IHsgcmV0dXJuIG5ldyBGaWx0ZXJBbmltYXRpb25WYWx1ZSgqdGhpcyk7IH0KKyAgICB2
aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKCp0aGlzKSk7IH0KIAog
ICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gJm1fdmFs
dWU7IH0KIApAQCAtMTQxLDEyICsxNDQsMTIgQEAgcHJpdmF0ZToKIH07CiAjZW5kaWYKIAotLy8g
VXNlZCB0byBzdG9yZSBhIHNlcmllcyBvZiB2YWx1ZXMgaW4gYSBrZXlmcmFtZSBsaXN0LiBWYWx1
ZXMgd2lsbCBhbGwgYmUgb2YgdGhlIHNhbWUgdHlwZSwKLS8vIHdoaWNoIGNhbiBiZSBpbmZlcnJl
ZCBmcm9tIHRoZSBwcm9wZXJ0eS4KKy8vIFVzZWQgdG8gc3RvcmUgYSBzZXJpZXMgb2YgdmFsdWVz
IGluIGEga2V5ZnJhbWUgbGlzdC4KKy8vIFZhbHVlcyB3aWxsIGFsbCBiZSBvZiB0aGUgc2FtZSB0
eXBlLCB3aGljaCBjYW4gYmUgaW5mZXJyZWQgZnJvbSB0aGUgcHJvcGVydHkuCisvLyBGSVhNRTog
U2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFzcyBLZXlmcmFtZVZh
bHVlTGlzdCB7CiBwdWJsaWM6Ci0KLSAgICBLZXlmcmFtZVZhbHVlTGlzdChBbmltYXRlZFByb3Bl
cnR5SUQgcHJvcGVydHkpCisgICAgZXhwbGljaXQgS2V5ZnJhbWVWYWx1ZUxpc3QoQW5pbWF0ZWRQ
cm9wZXJ0eUlEIHByb3BlcnR5KQogICAgICAgICA6IG1fcHJvcGVydHkocHJvcGVydHkpCiAgICAg
ewogICAgIH0KQEAgLTE1OCwxMSArMTYxLDYgQEAgcHVibGljOgogICAgICAgICAgICAgbV92YWx1
ZXMuYXBwZW5kKG90aGVyLm1fdmFsdWVzW2ldLT5jbG9uZSgpKTsKICAgICB9CiAKLSAgICB+S2V5
ZnJhbWVWYWx1ZUxpc3QoKQotICAgIHsKLSAgICAgICAgZGVsZXRlQWxsVmFsdWVzKG1fdmFsdWVz
KTsKLSAgICB9Ci0KICAgICBLZXlmcmFtZVZhbHVlTGlzdCYgb3BlcmF0b3I9KGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiBvdGhlcikKICAgICB7CiAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IGNv
cHkob3RoZXIpOwpAQCAtMTc5LDE4ICsxNzcsMTYgQEAgcHVibGljOgogICAgIEFuaW1hdGVkUHJv
cGVydHlJRCBwcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHk7IH0KIAogICAgIHNp
emVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9Ci0gICAgY29uc3Qg
QW5pbWF0aW9uVmFsdWUqIGF0KHNpemVfdCBpKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlcy5hdChp
KTsgfQorICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlKiBhdChzaXplX3QgaSkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZXMuYXQoaSkuZ2V0KCk7IH0KICAgICAKLSAgICAvLyBJbnNlcnQsIHNvcnRlZCBi
eSBrZXlUaW1lLiBUYWtlcyBvd25lcnNoaXAgb2YgdGhlIHBvaW50ZXIuCi0gICAgdm9pZCBpbnNl
cnQoY29uc3QgQW5pbWF0aW9uVmFsdWUqKTsKKyAgICAvLyBJbnNlcnQsIHNvcnRlZCBieSBrZXlU
aW1lLgorICAgIHZvaWQgaW5zZXJ0KFBhc3NPd25QdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+KTsK
ICAgICAKIHByb3RlY3RlZDoKLSAgICBWZWN0b3I8Y29uc3QgQW5pbWF0aW9uVmFsdWUqPiBtX3Zh
bHVlczsKKyAgICBWZWN0b3I8T3duUHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPiA+IG1fdmFsdWVz
OwogICAgIEFuaW1hdGVkUHJvcGVydHlJRCBtX3Byb3BlcnR5OwogfTsKIAotCi0KIC8vIEdyYXBo
aWNzTGF5ZXIgaXMgYW4gYWJzdHJhY3Rpb24gZm9yIGEgcmVuZGVyaW5nIHN1cmZhY2Ugd2l0aCBi
YWNraW5nIHN0b3JlLAogLy8gd2hpY2ggbWF5IGhhdmUgYXNzb2NpYXRlZCB0cmFuc2Zvcm1hdGlv
biBhbmQgYW5pbWF0aW9ucy4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCAwZjQzNDE0Mjk3ZGMzYWVhYTk0OTIyZWE1OTZjZjMxNzE0
ZGU4OTdmLi4xZGVmYjUyYjM0YWE4MzlhOTQzM2ZmYjQwMDNmMTE1NDFmOTAxZTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjEw
NywzOSArMjEwNywzMSBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24o
ZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEFuaW1hdGlvbiogYW5pbQogICAgICAgICAKICAgICAg
ICAgYm9vbCBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUgPSBrZXkgPT0gMCB8fCBrZXkgPT0gMTsKICAg
ICAgICAgaWYgKChoYXNUcmFuc2Zvcm0gJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1lKSB8fCBjdXJy
ZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSkp
Ci0gICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KG5ldyBUcmFuc2Zvcm1BbmltYXRp
b25WYWx1ZShrZXksICYoa2V5ZnJhbWVTdHlsZS0+dHJhbnNmb3JtKCkpLCB0ZikpOworICAgICAg
ICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChhZG9wdFB0cihuZXcgVHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWUoa2V5LCAmKGtleWZyYW1lU3R5bGUtPnRyYW5zZm9ybSgpKSwgdGYpKSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAoKGhhc09wYWNpdHkgJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1lKSB8
fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpKQot
ICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUo
a2V5LCBrZXlmcmFtZVN0eWxlLT5vcGFjaXR5KCksIHRmKSk7CisgICAgICAgICAgICBvcGFjaXR5
VmVjdG9yLmluc2VydChhZG9wdFB0cihuZXcgRmxvYXRBbmltYXRpb25WYWx1ZShrZXksIGtleWZy
YW1lU3R5bGUtPm9wYWNpdHkoKSwgdGYpKSk7CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgICAgIGlmICgoaGFzRmlsdGVyICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVu
dEtleWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIpKQotICAg
ICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoa2V5
LCAmKGtleWZyYW1lU3R5bGUtPmZpbHRlcigpKSwgdGYpKTsKKyAgICAgICAgICAgIGZpbHRlclZl
Y3Rvci5pbnNlcnQoYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleSwgJihrZXlm
cmFtZVN0eWxlLT5maWx0ZXIoKSksIHRmKSkpOwogI2VuZGlmCiAgICAgfQogCi0gICAgYm9vbCBk
aWRBbmltYXRlVHJhbnNmb3JtID0gZmFsc2U7Ci0gICAgYm9vbCBkaWRBbmltYXRlT3BhY2l0eSA9
IGZhbHNlOwotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBib29sIGRpZEFuaW1hdGVGaWx0
ZXIgPSBmYWxzZTsKLSNlbmRpZgorICAgIGJvb2wgZGlkQW5pbWF0ZSA9IGZhbHNlOwogICAgIAog
ICAgIGlmIChoYXNUcmFuc2Zvcm0gJiYgbV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24odHJh
bnNmb3JtVmVjdG9yLCB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+cGl4ZWxTbmFwcGVkQm9yZGVy
Qm94UmVjdCgpLnNpemUoKSwgYW5pbSwga2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgdGltZU9m
ZnNldCkpCi0gICAgICAgIGRpZEFuaW1hdGVUcmFuc2Zvcm0gPSB0cnVlOworICAgICAgICBkaWRB
bmltYXRlID0gdHJ1ZTsKIAogICAgIGlmIChoYXNPcGFjaXR5ICYmIG1fZ3JhcGhpY3NMYXllci0+
YWRkQW5pbWF0aW9uKG9wYWNpdHlWZWN0b3IsIEludFNpemUoKSwgYW5pbSwga2V5ZnJhbWVzLmFu
aW1hdGlvbk5hbWUoKSwgdGltZU9mZnNldCkpCi0gICAgICAgIGRpZEFuaW1hdGVPcGFjaXR5ID0g
dHJ1ZTsKKyAgICAgICAgZGlkQW5pbWF0ZSA9IHRydWU7CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgaWYgKGhhc0ZpbHRlciAmJiBtX2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1hdGlvbihm
aWx0ZXJWZWN0b3IsIEludFNpemUoKSwgYW5pbSwga2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwg
dGltZU9mZnNldCkpCi0gICAgICAgIGRpZEFuaW1hdGVGaWx0ZXIgPSB0cnVlOworICAgICAgICBk
aWRBbmltYXRlID0gdHJ1ZTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAg
IHJldHVybiBkaWRBbmltYXRlVHJhbnNmb3JtIHx8IGRpZEFuaW1hdGVPcGFjaXR5IHx8IGRpZEFu
aW1hdGVGaWx0ZXI7Ci0jZWxzZQotICAgIHJldHVybiBkaWRBbmltYXRlVHJhbnNmb3JtIHx8IGRp
ZEFuaW1hdGVPcGFjaXR5OwotI2VuZGlmCisgICAgcmV0dXJuIGRpZEFuaW1hdGU7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjphbmltYXRpb25QYXVzZWQoZG91YmxlIHRpbWVPZmZzZXQs
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkKQEAgLTIxNTQsMTEgKzIxNDYsNyBAQCB2b2lk
IFJlbmRlckxheWVyQmFja2luZzo6YW5pbWF0aW9uRmluaXNoZWQoY29uc3QgU3RyaW5nJiBhbmlt
YXRpb25OYW1lKQogCiBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRv
dWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBSZW5kZXJTdHls
ZSogZnJvbVN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogdG9TdHlsZSkKIHsKLSAgICBib29sIGRp
ZEFuaW1hdGVPcGFjaXR5ID0gZmFsc2U7Ci0gICAgYm9vbCBkaWRBbmltYXRlVHJhbnNmb3JtID0g
ZmFsc2U7Ci0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIGJvb2wgZGlkQW5pbWF0ZUZpbHRl
ciA9IGZhbHNlOwotI2VuZGlmCisgICAgYm9vbCBkaWRBbmltYXRlID0gZmFsc2U7CiAKICAgICBB
U1NFUlQocHJvcGVydHkgIT0gQ1NTUHJvcGVydHlJbnZhbGlkKTsKIApAQCAtMjE2NiwxMyArMjE1
NCwxMyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0
aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24q
IG9wYWNpdHlBbmltID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5
T3BhY2l0eSk7CiAgICAgICAgIGlmIChvcGFjaXR5QW5pbSAmJiAhb3BhY2l0eUFuaW0tPmlzRW1w
dHlPclplcm9EdXJhdGlvbigpKSB7CiAgICAgICAgICAgICBLZXlmcmFtZVZhbHVlTGlzdCBvcGFj
aXR5VmVjdG9yKEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5KTsKLSAgICAgICAgICAgIG9wYWNpdHlW
ZWN0b3IuaW5zZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKDAsIGNvbXBvc2l0aW5nT3BhY2l0
eShmcm9tU3R5bGUtPm9wYWNpdHkoKSkpKTsKLSAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5z
ZXJ0KG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKDEsIGNvbXBvc2l0aW5nT3BhY2l0eSh0b1N0eWxl
LT5vcGFjaXR5KCkpKSk7CisgICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChhZG9wdFB0
cihuZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgwLCBjb21wb3NpdGluZ09wYWNpdHkoZnJvbVN0eWxl
LT5vcGFjaXR5KCkpKSkpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoYWRvcHRQ
dHIobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoMSwgY29tcG9zaXRpbmdPcGFjaXR5KHRvU3R5bGUt
Pm9wYWNpdHkoKSkpKSk7CiAgICAgICAgICAgICAvLyBUaGUgYm94U2l6ZSBwYXJhbSBpcyBvbmx5
IHVzZWQgZm9yIHRyYW5zZm9ybSBhbmltYXRpb25zICh3aGljaCBjYW4gb25seSBydW4gb24gUmVu
ZGVyQm94ZXMpLCBzbyB3ZSBwYXNzIGFuIGVtcHR5IHNpemUgaGVyZS4KICAgICAgICAgICAgIGlm
IChtX2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1hdGlvbihvcGFjaXR5VmVjdG9yLCBJbnRTaXplKCks
IG9wYWNpdHlBbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihB
bmltYXRlZFByb3BlcnR5T3BhY2l0eSksIHRpbWVPZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gVG8gZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3Qgb3BhY2l0eSBpcyB2aXNpYmxlIHdoZW4gdGhl
IGFuaW1hdGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgb3BhY2l0eS4KICAgICAgICAgICAg
ICAgICB1cGRhdGVPcGFjaXR5KHRvU3R5bGUpOwotICAgICAgICAgICAgICAgIGRpZEFuaW1hdGVP
cGFjaXR5ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBkaWRBbmltYXRlID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTIxODEsMTIgKzIxNjksMTIgQEAgYm9vbCBS
ZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbihkb3VibGUgdGltZU9mZnNldCwgQ1NT
UHJvcGVydHlJRCBwcm9wZXIKICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiB0cmFuc2Zvcm1Bbmlt
ID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNm
b3JtKTsKICAgICAgICAgaWYgKHRyYW5zZm9ybUFuaW0gJiYgIXRyYW5zZm9ybUFuaW0tPmlzRW1w
dHlPclplcm9EdXJhdGlvbigpKSB7CiAgICAgICAgICAgICBLZXlmcmFtZVZhbHVlTGlzdCB0cmFu
c2Zvcm1WZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7Ci0gICAgICAgICAg
ICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSgwLCAm
ZnJvbVN0eWxlLT50cmFuc2Zvcm0oKSkpOwotICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmlu
c2VydChuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoMSwgJnRvU3R5bGUtPnRyYW5zZm9ybSgp
KSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KGFkb3B0UHRyKG5ldyBUcmFu
c2Zvcm1BbmltYXRpb25WYWx1ZSgwLCAmZnJvbVN0eWxlLT50cmFuc2Zvcm0oKSkpKTsKKyAgICAg
ICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoYWRvcHRQdHIobmV3IFRyYW5zZm9ybUFuaW1h
dGlvblZhbHVlKDEsICZ0b1N0eWxlLT50cmFuc2Zvcm0oKSkpKTsKICAgICAgICAgICAgIGlmICht
X2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1hdGlvbih0cmFuc2Zvcm1WZWN0b3IsIHRvUmVuZGVyQm94
KHJlbmRlcmVyKCkpLT5waXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkuc2l6ZSgpLCB0cmFuc2Zv
cm1BbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRl
ZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKSwgdGltZU9mZnNldCkpIHsKICAgICAgICAgICAgICAg
ICAvLyBUbyBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCB0cmFuc2Zvcm0gaXMgdmlzaWJsZSB3aGVu
IHRoZSBhbmltYXRpb24gZW5kcywgYWxzbyBzZXQgdGhlIGZpbmFsIHRyYW5zZm9ybS4KICAgICAg
ICAgICAgICAgICB1cGRhdGVUcmFuc2Zvcm0odG9TdHlsZSk7Ci0gICAgICAgICAgICAgICAgZGlk
QW5pbWF0ZVRyYW5zZm9ybSA9IHRydWU7CisgICAgICAgICAgICAgICAgZGlkQW5pbWF0ZSA9IHRy
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yMTk2LDIyICsyMTg0LDE4
IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24oZG91YmxlIHRpbWVP
ZmZzZXQsIENTU1Byb3BlcnR5SUQgcHJvcGVyCiAgICAgICAgIGNvbnN0IEFuaW1hdGlvbiogZmls
dGVyQW5pbSA9IHRvU3R5bGUtPnRyYW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtp
dEZpbHRlcik7CiAgICAgICAgIGlmIChmaWx0ZXJBbmltICYmICFmaWx0ZXJBbmltLT5pc0VtcHR5
T3JaZXJvRHVyYXRpb24oKSkgewogICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgZmlsdGVy
VmVjdG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRGaWx0ZXIpOwotICAgICAgICAgICAgZmlsdGVy
VmVjdG9yLmluc2VydChuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoMCwgJmZyb21TdHlsZS0+Zmls
dGVyKCkpKTsKLSAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQobmV3IEZpbHRlckFuaW1h
dGlvblZhbHVlKDEsICZ0b1N0eWxlLT5maWx0ZXIoKSkpOworICAgICAgICAgICAgZmlsdGVyVmVj
dG9yLmluc2VydChhZG9wdFB0cihuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoMCwgJmZyb21TdHls
ZS0+ZmlsdGVyKCkpKSk7CisgICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KGFkb3B0UHRy
KG5ldyBGaWx0ZXJBbmltYXRpb25WYWx1ZSgxLCAmdG9TdHlsZS0+ZmlsdGVyKCkpKSk7CiAgICAg
ICAgICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24oZmlsdGVyVmVjdG9yLCBJ
bnRTaXplKCksIGZpbHRlckFuaW0sIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFu
c2l0aW9uKEFuaW1hdGVkUHJvcGVydHlXZWJraXRGaWx0ZXIpLCB0aW1lT2Zmc2V0KSkgewogICAg
ICAgICAgICAgICAgIC8vIFRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IGZpbHRlciBpcyB2aXNp
YmxlIHdoZW4gdGhlIGFuaW1hdGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgZmlsdGVyLgog
ICAgICAgICAgICAgICAgIHVwZGF0ZUZpbHRlcnModG9TdHlsZSk7Ci0gICAgICAgICAgICAgICAg
ZGlkQW5pbWF0ZUZpbHRlciA9IHRydWU7CisgICAgICAgICAgICAgICAgZGlkQW5pbWF0ZSA9IHRy
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKLSAgICByZXR1cm4gZGlkQW5pbWF0ZU9wYWNpdHkgfHwgZGlkQW5pbWF0
ZVRyYW5zZm9ybSB8fCBkaWRBbmltYXRlRmlsdGVyOwotI2Vsc2UKLSAgICByZXR1cm4gZGlkQW5p
bWF0ZU9wYWNpdHkgfHwgZGlkQW5pbWF0ZVRyYW5zZm9ybTsKLSNlbmRpZgorICAgIHJldHVybiBk
aWRBbmltYXRlOwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dHJhbnNpdGlvblBhdXNl
ZChkb3VibGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGMw
MjczNGE3N2FlNDZkZTJhZGUzMmNhMmViMzRlMjdlZGZjY2QwM2QuLjQxMTA3MzA4OWNjNTUzZmM3
OTE0ODE5YTYwZWRlMTc5NjRjYWE3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcApAQCAtNzMzLDE0ICs3MzMsMTQgQEAgYm9v
bCBBcmd1bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBHcmEKICAgICAgICAgICAgIGZsb2F0IHZhbHVlOwogICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChuZXcgRmxvYXRBbmltYXRpb25WYWx1
ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKKyAgICAgICAgICAgIGtleWZyYW1l
cy5pbnNlcnQoYWRvcHRQdHIobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdmFsdWUs
IHRpbWluZ0Z1bmN0aW9uKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtOiB7CiAgICAgICAgICAgICBU
cmFuc2Zvcm1PcGVyYXRpb25zIHRyYW5zZm9ybTsKICAgICAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUodHJhbnNmb3JtKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
ICAgICBrZXlmcmFtZXMuaW5zZXJ0KG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShrZXlUaW1l
LCAmdHJhbnNmb3JtLCB0aW1pbmdGdW5jdGlvbikpOworICAgICAgICAgICAga2V5ZnJhbWVzLmlu
c2VydChhZG9wdFB0cihuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgJnRyYW5z
Zm9ybSwgdGltaW5nRnVuY3Rpb24pKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTc0OCw3ICs3NDgsNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8R3JhcGhpY3NMYXllckFuaW1hdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEdyYQogICAgICAgICAgICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXI7CiAgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZpbHRlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChuZXcgRmlsdGVyQW5pbWF0aW9u
VmFsdWUoa2V5VGltZSwgJmZpbHRlciwgdGltaW5nRnVuY3Rpb24pKTsKKyAgICAgICAgICAgIGtl
eWZyYW1lcy5pbnNlcnQoYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleVRpbWUs
ICZmaWx0ZXIsIHRpbWluZ0Z1bmN0aW9uKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>