<?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>174366</bug_id>
          
          <creation_ts>2017-07-11 09:36:20 -0700</creation_ts>
          <short_desc>Use FastAllocator in STL containers</short_desc>
          <delta_ts>2017-07-13 19:53:29 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1327525</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-11 09:36:20 -0700</bug_when>
    <thetext>Use FastAllocator in STL containers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327526</commentid>
    <comment_count>1</comment_count>
      <attachid>315117</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-11 09:38:22 -0700</bug_when>
    <thetext>Created attachment 315117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327734</commentid>
    <comment_count>2</comment_count>
      <attachid>315117</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-11 14:11:10 -0700</bug_when>
    <thetext>Comment on attachment 315117
Patch

rs=me when it compiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327915</commentid>
    <comment_count>3</comment_count>
      <attachid>315205</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-11 22:06:38 -0700</bug_when>
    <thetext>Created attachment 315205
Patch for landing

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327920</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-11 22:42:42 -0700</bug_when>
    <thetext>Committed r219383: &lt;http://trac.webkit.org/changeset/219383&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327958</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-12 01:58:59 -0700</bug_when>
    <thetext>Hmmmm, while windows EWS is green, build bot is failing.
Investigating...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327963</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-12 02:09:22 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327964</commentid>
    <comment_count>7</comment_count>
      <attachid>315217</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-12 02:09:24 -0700</bug_when>
    <thetext>Created attachment 315217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327979</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-12 03:11:28 -0700</bug_when>
    <thetext>Committed r219386: &lt;http://trac.webkit.org/changeset/219386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328481</commentid>
    <comment_count>9</comment_count>
      <attachid>315217</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-07-13 10:46:36 -0700</bug_when>
    <thetext>Comment on attachment 315217
Patch

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

&gt; Source/WTF/wtf/FastMalloc.h:130
&gt; +template&lt;typename T, typename U&gt; bool operator==(const FastAllocator&lt;T&gt;&amp;, const FastAllocator&lt;U&gt;&amp;) { return true; }
&gt; +template&lt;typename T, typename U&gt; bool operator!=(const FastAllocator&lt;T&gt;&amp;, const FastAllocator&lt;U&gt;&amp;) { return false; }

Should have &quot;inline&quot; on both of these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328655</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-13 19:53:02 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 315217 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=315217&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/FastMalloc.h:130
&gt; &gt; +template&lt;typename T, typename U&gt; bool operator==(const FastAllocator&lt;T&gt;&amp;, const FastAllocator&lt;U&gt;&amp;) { return true; }
&gt; &gt; +template&lt;typename T, typename U&gt; bool operator!=(const FastAllocator&lt;T&gt;&amp;, const FastAllocator&lt;U&gt;&amp;) { return false; }
&gt; 
&gt; Should have &quot;inline&quot; on both of these.

Oops, right. Fixed.
Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328656</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-07-13 19:53:29 -0700</bug_when>
    <thetext>Committed r219491: &lt;http://trac.webkit.org/changeset/219491&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315117</attachid>
            <date>2017-07-11 09:38:22 -0700</date>
            <delta_ts>2017-07-13 10:46:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174366-20170712013821.patch</filename>
            <type>text/plain</type>
            <size>28589</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA2MTY1YzJmMWM0ZGUz
MWJiMTQ1MzIzMGI2OWYyZGU5OGFhMjIwNi4uNGUxNDQxMTI3MmYxOGUzMDYwMjhjNTk0ODVlNTQ2
MWRhNzM2ZTgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE3LTA3LTExICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBGYXN0QWxs
b2NhdG9yIGluIFNUTCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzQzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgRmFzdEFsbG9jYXRvciBmb3IgU1RMIGNv
bnRhaW5lcnMgaW5jbHVkaW5nIHN0ZDo6c2V0IGFuZCBzdGQ6Om1hcC4KKyAgICAgICAgU1RMIGNh
biB0YWtlIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHRvIGJlIHVzZWQgYXMgYWxsb2NhdG9yIGZvciBj
b250YWluZXJzLgorICAgICAgICBXZSBwcmVwYXJlIEZhc3RBbGxvY2F0b3IsIHdoaWNoIHVzZXMg
ZmFzdE1hbGxvYyBmb3IgYWxsb2NhdGlvbi4KKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gdXNl
IGJtYWxsb2MgKGlmIHN1cHBvcnRlZCkgZm9yIFNUTCBjb250YWluZXJzIHdoaWNoIG9mZmVycwor
ICAgICAgICBmdW5jdGlvbmFsaXRpZXMgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGluIFdURiBjb250
YWluZXJzLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlRW50cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJbmRleFZhbHVlRW50cnk6OkluZGV4VmFsdWVFbnRy
eSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OkluZGV4VmFsdWVFbnRyeTo6SXRlcmF0
b3I6Okl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SW5kZXhWYWx1ZUVu
dHJ5OjpyZXZlcnNlRmluZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lu
ZGV4VmFsdWVFbnRyeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRl
eFZhbHVlU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJbmRleFZhbHVl
U3RvcmU6Omxvd2VzdEl0ZXJhdG9ySW5SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OkluZGV4VmFsdWVTdG9yZTo6aGlnaGVzdFJldmVyc2VJdGVyYXRvckluUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJbmRleFZhbHVlU3RvcmU6Okl0ZXJhdG9yOjpJdGVy
YXRvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9y
ZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpvYmplY3RTdG9yZUNsZWFyZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjpyZXBsYWNl
S2V5VmFsdWVTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVj
dFN0b3JlOjphZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlP
YmplY3RTdG9yZTo6dXBkYXRlQ3Vyc29yc0ZvclB1dFJlY29yZCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjpvcmRlcmVkS2V5cyk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmtleUFk
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJz
b3I6OnNldEZpcnN0SW5SZW1haW5pbmdSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6Ok1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpzZXRGb3J3YXJkSXRlcmF0b3JGcm9tUmVtYWlu
aW5nUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9y
ZUN1cnNvcjo6c2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmluY3JlbWVudEZv
cndhcmRJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVj
dFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRSZXZlcnNlSXRlcmF0b3IpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNvci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmg6CisgICAgICAgICogcGFnZS9XaGVlbEV2
ZW50VGVzdFRyaWdnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudFRlc3RUcmln
Z2VyOjpkZWZlclRlc3RzRm9yUmVhc29uKToKKyAgICAgICAgKFdlYkNvcmU6OmR1bXBTdGF0ZSk6
CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjplbnVtVG9TdHJpbmdNYXApOgorICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9y
Lmg6CisKIDIwMTctMDctMTEgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gU3BpbiBidXR0b25zIG9uIGlucHV0IHR5cGUgbnVt
YmVyIGFwcGVhciBvdmVyIHRoZSB2YWx1ZSBpdHNlbGYgZm9yIHNtYWxsIHdpZHRocwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oCmluZGV4IDk4ZjBiNzM1
OTA1NTI1Zjk5ODBkNjEzMDE4MmMzZjZjZmRiNDI0ZDcuLjE1YTdiY2I2OTI2MWY2NDczMjcwODQw
MGJlZTcwMzljOGE2NGI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlEYXRhLmgKQEAgLTI5OSw2ICsyOTksOCBAQCBib29sIElEQktleURhdGE6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiBrZXlEYXRhKQogICAgIHJldHVybiB0cnVl
OwogfQogCit1c2luZyBJREJLZXlEYXRhU2V0ID0gc3RkOjpzZXQ8SURCS2V5RGF0YSwgc3RkOjps
ZXNzPElEQktleURhdGE+LCBGYXN0QWxsb2NhdG9yPElEQktleURhdGE+PjsKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1
ZUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRl
eFZhbHVlRW50cnkuY3BwCmluZGV4IDM4Yzg2MDY3N2I0NWRlMDU4NTM0NTIzY2UwNDI3NGJlNjMx
YzZlOTEuLjZhYjhmYTIzYjM0ZGMxZTc2NTYxZGZmYTRjOGVmMTg3YzVhODg2MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlRW50
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRl
eFZhbHVlRW50cnkuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEluZGV4VmFsdWVFbnRyeTo6SW5kZXhW
YWx1ZUVudHJ5KGJvb2wgdW5pcXVlKQogICAgIGlmIChtX3VuaXF1ZSkKICAgICAgICAgbV9rZXkg
PSBudWxscHRyOwogICAgIGVsc2UKLSAgICAgICAgbV9vcmRlcmVkS2V5cyA9IG5ldyBzdGQ6OnNl
dDxJREJLZXlEYXRhPjsKKyAgICAgICAgbV9vcmRlcmVkS2V5cyA9IG5ldyBJREJLZXlEYXRhU2V0
OwogfQogCiBJbmRleFZhbHVlRW50cnk6On5JbmRleFZhbHVlRW50cnkoKQpAQCAtMTAxLDEzICsx
MDEsMTMgQEAgSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvcjo6SXRlcmF0b3IoSW5kZXhWYWx1ZUVu
dHJ5JiBlbnRyeSkKICAgICBBU1NFUlQobV9lbnRyeS0+bV9rZXkpOwogfQogCi1JbmRleFZhbHVl
RW50cnk6Okl0ZXJhdG9yOjpJdGVyYXRvcihJbmRleFZhbHVlRW50cnkmIGVudHJ5LCBzdGQ6OnNl
dDxJREJLZXlEYXRhPjo6aXRlcmF0b3IgaXRlcmF0b3IpCitJbmRleFZhbHVlRW50cnk6Okl0ZXJh
dG9yOjpJdGVyYXRvcihJbmRleFZhbHVlRW50cnkmIGVudHJ5LCBJREJLZXlEYXRhU2V0OjppdGVy
YXRvciBpdGVyYXRvcikKICAgICA6IG1fZW50cnkoJmVudHJ5KQogICAgICwgbV9mb3J3YXJkSXRl
cmF0b3IoaXRlcmF0b3IpCiB7CiB9CiAKLUluZGV4VmFsdWVFbnRyeTo6SXRlcmF0b3I6Okl0ZXJh
dG9yKEluZGV4VmFsdWVFbnRyeSYgZW50cnksIHN0ZDo6c2V0PElEQktleURhdGE+OjpyZXZlcnNl
X2l0ZXJhdG9yIGl0ZXJhdG9yKQorSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvcjo6SXRlcmF0b3Io
SW5kZXhWYWx1ZUVudHJ5JiBlbnRyeSwgSURCS2V5RGF0YVNldDo6cmV2ZXJzZV9pdGVyYXRvciBp
dGVyYXRvcikKICAgICA6IG1fZW50cnkoJmVudHJ5KQogICAgICwgbV9mb3J3YXJkKGZhbHNlKQog
ICAgICwgbV9yZXZlcnNlSXRlcmF0b3IoaXRlcmF0b3IpCkBAIC0yMTgsNyArMjE4LDcgQEAgSW5k
ZXhWYWx1ZUVudHJ5OjpJdGVyYXRvciBJbmRleFZhbHVlRW50cnk6OnJldmVyc2VGaW5kKGNvbnN0
IElEQktleURhdGEmIGtleSwgQ3UKICAgICB9CiAKICAgICBBU1NFUlQobV9vcmRlcmVkS2V5cyk7
Ci0gICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6c2V0PElEQktleURhdGE+OjpyZXZlcnNlX2l0ZXJh
dG9yKG1fb3JkZXJlZEtleXMtPnVwcGVyX2JvdW5kKGtleSkpOworICAgIGF1dG8gaXRlcmF0b3Ig
PSBJREJLZXlEYXRhU2V0OjpyZXZlcnNlX2l0ZXJhdG9yKG1fb3JkZXJlZEtleXMtPnVwcGVyX2Jv
dW5kKGtleSkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29yZGVyZWRLZXlzLT5yZW5kKCkpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlRW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlRW50cnkuaAppbmRleCBkZjA1NDNmY2YxMzRk
MzEzYmEzMWM2ODFlZmUwMzQ5ZTJlMmVhNTE2Li41Yzc1YjdhYWFiZDNlMDBjYjE3Y2IyODA1MGNk
NTFjZTI0ZThlMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSW5kZXhWYWx1ZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVFbnRyeS5oCkBAIC01OSw4ICs1OSw4IEBAIGNsYXNz
IEluZGV4VmFsdWVFbnRyeSB7CiAgICAgICAgIH0KIAogICAgICAgICBJdGVyYXRvcihJbmRleFZh
bHVlRW50cnkmKTsKLSAgICAgICAgSXRlcmF0b3IoSW5kZXhWYWx1ZUVudHJ5Jiwgc3RkOjpzZXQ8
SURCS2V5RGF0YT46Oml0ZXJhdG9yKTsKLSAgICAgICAgSXRlcmF0b3IoSW5kZXhWYWx1ZUVudHJ5
Jiwgc3RkOjpzZXQ8SURCS2V5RGF0YT46OnJldmVyc2VfaXRlcmF0b3IpOworICAgICAgICBJdGVy
YXRvcihJbmRleFZhbHVlRW50cnkmLCBJREJLZXlEYXRhU2V0OjppdGVyYXRvcik7CisgICAgICAg
IEl0ZXJhdG9yKEluZGV4VmFsdWVFbnRyeSYsIElEQktleURhdGFTZXQ6OnJldmVyc2VfaXRlcmF0
b3IpOwogCiAgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogICAgICAgICB2b2lkIGludmFs
aWRhdGUoKTsKQEAgLTczLDggKzczLDggQEAgY2xhc3MgSW5kZXhWYWx1ZUVudHJ5IHsKICAgICBw
cml2YXRlOgogICAgICAgICBJbmRleFZhbHVlRW50cnkqIG1fZW50cnkgeyBudWxscHRyIH07CiAg
ICAgICAgIGJvb2wgbV9mb3J3YXJkIHsgdHJ1ZSB9OwotICAgICAgICBzdGQ6OnNldDxJREJLZXlE
YXRhPjo6aXRlcmF0b3IgbV9mb3J3YXJkSXRlcmF0b3I7Ci0gICAgICAgIHN0ZDo6c2V0PElEQktl
eURhdGE+OjpyZXZlcnNlX2l0ZXJhdG9yIG1fcmV2ZXJzZUl0ZXJhdG9yOworICAgICAgICBJREJL
ZXlEYXRhU2V0OjppdGVyYXRvciBtX2ZvcndhcmRJdGVyYXRvcjsKKyAgICAgICAgSURCS2V5RGF0
YVNldDo6cmV2ZXJzZV9pdGVyYXRvciBtX3JldmVyc2VJdGVyYXRvcjsKICAgICB9OwogCiAgICAg
SXRlcmF0b3IgYmVnaW4oKTsKQEAgLTg5LDcgKzg5LDcgQEAgY2xhc3MgSW5kZXhWYWx1ZUVudHJ5
IHsKIAogcHJpdmF0ZToKICAgICB1bmlvbiB7Ci0gICAgICAgIHN0ZDo6c2V0PElEQktleURhdGE+
KiBtX29yZGVyZWRLZXlzOworICAgICAgICBJREJLZXlEYXRhU2V0KiBtX29yZGVyZWRLZXlzOwog
ICAgICAgICBJREJLZXlEYXRhKiBtX2tleTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3Bw
CmluZGV4IDMzOTg4ODQ2Mjc3YWE5OGZjODk1ZmIyMjQ4NWY0MTU4NTBkMzc5NzQuLjM5OTBjMDVm
MDY1YmVkZjlkNzc1OGE2OGJiYmQxN2FjNmJhOGY4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3Bw
CkBAIC0xNDIsNyArMTQyLDcgQEAgSURCS2V5RGF0YSBJbmRleFZhbHVlU3RvcmU6Omxvd2VzdEtl
eVdpdGhSZWNvcmRJblJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmEKICAgICByZXR1cm4g
Kml0ZXJhdG9yOwogfQogCi1zdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0b3IgSW5kZXhWYWx1
ZVN0b3JlOjpsb3dlc3RJdGVyYXRvckluUmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5n
ZSkgY29uc3QKK0lEQktleURhdGFTZXQ6Oml0ZXJhdG9yIEluZGV4VmFsdWVTdG9yZTo6bG93ZXN0
SXRlcmF0b3JJblJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpIGNvbnN0CiB7CiAg
ICAgYXV0byBsb3dlc3RJblJhbmdlID0gbV9vcmRlcmVkS2V5cy5sb3dlcl9ib3VuZChyYW5nZS5s
b3dlcktleSk7CiAKQEAgLTE2Niw5ICsxNjYsOSBAQCBzdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRl
cmF0b3IgSW5kZXhWYWx1ZVN0b3JlOjpsb3dlc3RJdGVyYXRvckluUmFuZ2UoY29uc3QgSURCSwog
ICAgIHJldHVybiBsb3dlc3RJblJhbmdlOwogfQogCi1zdGQ6OnNldDxJREJLZXlEYXRhPjo6cmV2
ZXJzZV9pdGVyYXRvciBJbmRleFZhbHVlU3RvcmU6OmhpZ2hlc3RSZXZlcnNlSXRlcmF0b3JJblJh
bmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYgcmFuZ2UpIGNvbnN0CitJREJLZXlEYXRhU2V0Ojpy
ZXZlcnNlX2l0ZXJhdG9yIEluZGV4VmFsdWVTdG9yZTo6aGlnaGVzdFJldmVyc2VJdGVyYXRvcklu
UmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSkgY29uc3QKIHsKLSAgICBhdXRvIGhp
Z2hlc3RJblJhbmdlID0gc3RkOjpzZXQ8SURCS2V5RGF0YT46OnJldmVyc2VfaXRlcmF0b3IobV9v
cmRlcmVkS2V5cy51cHBlcl9ib3VuZChyYW5nZS51cHBlcktleSkpOworICAgIGF1dG8gaGlnaGVz
dEluUmFuZ2UgPSBJREJLZXlEYXRhU2V0OjpyZXZlcnNlX2l0ZXJhdG9yKG1fb3JkZXJlZEtleXMu
dXBwZXJfYm91bmQocmFuZ2UudXBwZXJLZXkpKTsKIAogICAgIGlmIChoaWdoZXN0SW5SYW5nZSA9
PSBtX29yZGVyZWRLZXlzLnJlbmQoKSkKICAgICAgICAgcmV0dXJuIGhpZ2hlc3RJblJhbmdlOwpA
QCAtMzEyLDE0ICszMTIsMTQgQEAgSW5kZXhWYWx1ZVN0b3JlOjpJdGVyYXRvciBJbmRleFZhbHVl
U3RvcmU6OnJldmVyc2VGaW5kKGNvbnN0IElEQktleURhdGEmIGtleSwgY28KIH0KIAogCi1JbmRl
eFZhbHVlU3RvcmU6Okl0ZXJhdG9yOjpJdGVyYXRvcihJbmRleFZhbHVlU3RvcmUmIHN0b3JlLCBz
dGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0b3IgaXRlcmF0b3IsIEluZGV4VmFsdWVFbnRyeTo6
SXRlcmF0b3IgcHJpbWFyeUl0ZXJhdG9yKQorSW5kZXhWYWx1ZVN0b3JlOjpJdGVyYXRvcjo6SXRl
cmF0b3IoSW5kZXhWYWx1ZVN0b3JlJiBzdG9yZSwgSURCS2V5RGF0YVNldDo6aXRlcmF0b3IgaXRl
cmF0b3IsIEluZGV4VmFsdWVFbnRyeTo6SXRlcmF0b3IgcHJpbWFyeUl0ZXJhdG9yKQogICAgIDog
bV9zdG9yZSgmc3RvcmUpCiAgICAgLCBtX2ZvcndhcmRJdGVyYXRvcihpdGVyYXRvcikKICAgICAs
IG1fcHJpbWFyeUtleUl0ZXJhdG9yKHByaW1hcnlJdGVyYXRvcikKIHsKIH0KIAotSW5kZXhWYWx1
ZVN0b3JlOjpJdGVyYXRvcjo6SXRlcmF0b3IoSW5kZXhWYWx1ZVN0b3JlJiBzdG9yZSwgQ3Vyc29y
RHVwbGljaXR5IGR1cGxpY2l0eSwgc3RkOjpzZXQ8SURCS2V5RGF0YT46OnJldmVyc2VfaXRlcmF0
b3IgaXRlcmF0b3IsIEluZGV4VmFsdWVFbnRyeTo6SXRlcmF0b3IgcHJpbWFyeUl0ZXJhdG9yKQor
SW5kZXhWYWx1ZVN0b3JlOjpJdGVyYXRvcjo6SXRlcmF0b3IoSW5kZXhWYWx1ZVN0b3JlJiBzdG9y
ZSwgQ3Vyc29yRHVwbGljaXR5IGR1cGxpY2l0eSwgSURCS2V5RGF0YVNldDo6cmV2ZXJzZV9pdGVy
YXRvciBpdGVyYXRvciwgSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvciBwcmltYXJ5SXRlcmF0b3Ip
CiAgICAgOiBtX3N0b3JlKCZzdG9yZSkKICAgICAsIG1fZm9yd2FyZChmYWxzZSkKICAgICAsIG1f
ZHVwbGljaXR5KGR1cGxpY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuaAppbmRleCAzYWY3YzFmYzAzMDcx
NTgyMTUyYWRkN2JhY2JiNWYzMDhkNTgwZTg2Li4wMTA4Y2ViZWEyNWNlMzFhYzg0N2E2MTQxYzZl
ZTQ0MGNkMzg3YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5oCkBAIC02Nyw4ICs2Nyw4IEBAIGNsYXNz
IEluZGV4VmFsdWVTdG9yZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIEl0ZXJh
dG9yKEluZGV4VmFsdWVTdG9yZSYsIHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciwgSW5k
ZXhWYWx1ZUVudHJ5OjpJdGVyYXRvcik7Ci0gICAgICAgIEl0ZXJhdG9yKEluZGV4VmFsdWVTdG9y
ZSYsIEN1cnNvckR1cGxpY2l0eSwgc3RkOjpzZXQ8SURCS2V5RGF0YT46OnJldmVyc2VfaXRlcmF0
b3IsIEluZGV4VmFsdWVFbnRyeTo6SXRlcmF0b3IpOworICAgICAgICBJdGVyYXRvcihJbmRleFZh
bHVlU3RvcmUmLCBJREJLZXlEYXRhU2V0OjppdGVyYXRvciwgSW5kZXhWYWx1ZUVudHJ5OjpJdGVy
YXRvcik7CisgICAgICAgIEl0ZXJhdG9yKEluZGV4VmFsdWVTdG9yZSYsIEN1cnNvckR1cGxpY2l0
eSwgSURCS2V5RGF0YVNldDo6cmV2ZXJzZV9pdGVyYXRvciwgSW5kZXhWYWx1ZUVudHJ5OjpJdGVy
YXRvcik7CiAKICAgICAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgICAgIGJvb2wgaXNWYWxp
ZCgpOwpAQCAtODQsOCArODQsOCBAQCBjbGFzcyBJbmRleFZhbHVlU3RvcmUgewogICAgICAgICBJ
bmRleFZhbHVlU3RvcmUqIG1fc3RvcmUgeyBudWxscHRyIH07CiAgICAgICAgIGJvb2wgbV9mb3J3
YXJkIHsgdHJ1ZSB9OwogICAgICAgICBDdXJzb3JEdXBsaWNpdHkgbV9kdXBsaWNpdHkgeyBDdXJz
b3JEdXBsaWNpdHk6OkR1cGxpY2F0ZXMgfTsKLSAgICAgICAgc3RkOjpzZXQ8SURCS2V5RGF0YT46
Oml0ZXJhdG9yIG1fZm9yd2FyZEl0ZXJhdG9yOwotICAgICAgICBzdGQ6OnNldDxJREJLZXlEYXRh
Pjo6cmV2ZXJzZV9pdGVyYXRvciBtX3JldmVyc2VJdGVyYXRvcjsKKyAgICAgICAgSURCS2V5RGF0
YVNldDo6aXRlcmF0b3IgbV9mb3J3YXJkSXRlcmF0b3I7CisgICAgICAgIElEQktleURhdGFTZXQ6
OnJldmVyc2VfaXRlcmF0b3IgbV9yZXZlcnNlSXRlcmF0b3I7CiAKICAgICAgICAgSW5kZXhWYWx1
ZUVudHJ5OjpJdGVyYXRvciBtX3ByaW1hcnlLZXlJdGVyYXRvcjsKICAgICB9OwpAQCAtMTAzLDEx
ICsxMDMsMTEgQEAgY2xhc3MgSW5kZXhWYWx1ZVN0b3JlIHsKICNlbmRpZgogCiBwcml2YXRlOgot
ICAgIHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBsb3dlc3RJdGVyYXRvckluUmFuZ2Uo
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7Ci0gICAgc3RkOjpzZXQ8SURCS2V5RGF0YT46
OnJldmVyc2VfaXRlcmF0b3IgaGlnaGVzdFJldmVyc2VJdGVyYXRvckluUmFuZ2UoY29uc3QgSURC
S2V5UmFuZ2VEYXRhJikgY29uc3Q7CisgICAgSURCS2V5RGF0YVNldDo6aXRlcmF0b3IgbG93ZXN0
SXRlcmF0b3JJblJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYpIGNvbnN0OworICAgIElEQktl
eURhdGFTZXQ6OnJldmVyc2VfaXRlcmF0b3IgaGlnaGVzdFJldmVyc2VJdGVyYXRvckluUmFuZ2Uo
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7CiAKICAgICBJbmRleEtleVZhbHVlTWFwIG1f
cmVjb3JkczsKLSAgICBzdGQ6OnNldDxJREJLZXlEYXRhPiBtX29yZGVyZWRLZXlzOworICAgIElE
QktleURhdGFTZXQgbV9vcmRlcmVkS2V5czsKICAgICAKICAgICBib29sIG1fdW5pcXVlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCmluZGV4IDBl
N2JiNmJkYWQ0NDc1OThjNmEyNWVkNTM2YTU1NWVmMGNkNzE2ZGUuLjFlYTVjYjE4M2VhMGNjMmM3
ZjI5ZmZiODM2NTA5NjVmZGZlMDZmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlRGVsZXRlZChSZWY8TWVtb3J5T2JqZWN0U3Rv
cmU+JiYKICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdURk1vdmUob2JqZWN0
U3RvcmUpOwogfQogCi12b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpvYmplY3RT
dG9yZUNsZWFyZWQoTWVtb3J5T2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBzdGQ6OnVuaXF1ZV9w
dHI8S2V5VmFsdWVNYXA+JiYga2V5VmFsdWVNYXAsIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnNldDxJ
REJLZXlEYXRhPj4mJiBvcmRlcmVkS2V5cykKK3ZvaWQgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb246Om9iamVjdFN0b3JlQ2xlYXJlZChNZW1vcnlPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUs
IHN0ZDo6dW5pcXVlX3B0cjxLZXlWYWx1ZU1hcD4mJiBrZXlWYWx1ZU1hcCwgc3RkOjp1bmlxdWVf
cHRyPElEQktleURhdGFTZXQ+JiYgb3JkZXJlZEtleXMpCiB7CiAgICAgQVNTRVJUKG1fb2JqZWN0
U3RvcmVzLmNvbnRhaW5zKCZvYmplY3RTdG9yZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbi5oCmluZGV4IDVhYzkzMDJjY2M5NDU3OTZhN2I0ZDI0MDc0OTBk
OWU2NjYxODIwNTkuLjRlYTJkMzI5NGEwMmY0ZjYxNmM3ZTkyNGU1YzAwZWU2MmRhZWQ4M2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBAIC02Miw3ICs2
Miw3IEBAIGNsYXNzIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uIHsKICAgICAKICAgICB2
b2lkIHJlY29yZFZhbHVlQ2hhbmdlZChNZW1vcnlPYmplY3RTdG9yZSYsIGNvbnN0IElEQktleURh
dGEmLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciopOwogICAgIHZvaWQgb2JqZWN0U3RvcmVEZWxldGVk
KFJlZjxNZW1vcnlPYmplY3RTdG9yZT4mJik7Ci0gICAgdm9pZCBvYmplY3RTdG9yZUNsZWFyZWQo
TWVtb3J5T2JqZWN0U3RvcmUmLCBzdGQ6OnVuaXF1ZV9wdHI8S2V5VmFsdWVNYXA+JiYsIHN0ZDo6
dW5pcXVlX3B0cjxzdGQ6OnNldDxJREJLZXlEYXRhPj4mJik7CisgICAgdm9pZCBvYmplY3RTdG9y
ZUNsZWFyZWQoTWVtb3J5T2JqZWN0U3RvcmUmLCBzdGQ6OnVuaXF1ZV9wdHI8S2V5VmFsdWVNYXA+
JiYsIHN0ZDo6dW5pcXVlX3B0cjxJREJLZXlEYXRhU2V0PiYmKTsKICAgICB2b2lkIG9iamVjdFN0
b3JlUmVuYW1lZChNZW1vcnlPYmplY3RTdG9yZSYsIGNvbnN0IFN0cmluZyYgb2xkTmFtZSk7CiAg
ICAgdm9pZCBpbmRleFJlbmFtZWQoTWVtb3J5SW5kZXgmLCBjb25zdCBTdHJpbmcmIG9sZE5hbWUp
OwogICAgIHZvaWQgaW5kZXhDbGVhcmVkKE1lbW9yeUluZGV4Jiwgc3RkOjp1bmlxdWVfcHRyPElu
ZGV4VmFsdWVTdG9yZT4mJik7CkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIE1lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uIHsKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lbW9yeUluZGV4
Pj4gbV9kZWxldGVkSW5kZXhlczsKICAgICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0b3JlKiwgc3Rk
Ojp1bmlxdWVfcHRyPEtleVZhbHVlTWFwPj4gbV9vcmlnaW5hbFZhbHVlczsKICAgICBIYXNoTWFw
PE1lbW9yeU9iamVjdFN0b3JlKiwgc3RkOjp1bmlxdWVfcHRyPEtleVZhbHVlTWFwPj4gbV9jbGVh
cmVkS2V5VmFsdWVNYXBzOwotICAgIEhhc2hNYXA8TWVtb3J5T2JqZWN0U3RvcmUqLCBzdGQ6OnVu
aXF1ZV9wdHI8c3RkOjpzZXQ8SURCS2V5RGF0YT4+PiBtX2NsZWFyZWRPcmRlcmVkS2V5czsKKyAg
ICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0b3JlKiwgc3RkOjp1bmlxdWVfcHRyPElEQktleURhdGFT
ZXQ+PiBtX2NsZWFyZWRPcmRlcmVkS2V5czsKICAgICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0b3Jl
KiwgU3RyaW5nPiBtX29yaWdpbmFsT2JqZWN0U3RvcmVOYW1lczsKICAgICBIYXNoTWFwPE1lbW9y
eUluZGV4KiwgU3RyaW5nPiBtX29yaWdpbmFsSW5kZXhOYW1lczsKICAgICBIYXNoTWFwPE1lbW9y
eUluZGV4Kiwgc3RkOjp1bmlxdWVfcHRyPEluZGV4VmFsdWVTdG9yZT4+IG1fY2xlYXJlZEluZGV4
VmFsdWVTdG9yZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcAppbmRleCAzNGI0ZTEyOWFkNjZh
YTUwMjAyYWJkZmU5OGVkZWIyOTBjNzU1N2M2Li4wNTY2MGUyNjRmMWVmYTgyNzQ2YWY5ZjVhZTk0
NzBhYWFkZTY3ZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAKQEAgLTE5MSw3ICsxOTEs
NyBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpjbGVhcigpCiAgICAgICAgIGN1cnNvci0+b2Jq
ZWN0U3RvcmVDbGVhcmVkKCk7CiB9CiAKLXZvaWQgTWVtb3J5T2JqZWN0U3RvcmU6OnJlcGxhY2VL
ZXlWYWx1ZVN0b3JlKHN0ZDo6dW5pcXVlX3B0cjxLZXlWYWx1ZU1hcD4mJiBzdG9yZSwgc3RkOjp1
bmlxdWVfcHRyPHN0ZDo6c2V0PElEQktleURhdGE+PiYmIG9yZGVyZWRLZXlzKQordm9pZCBNZW1v
cnlPYmplY3RTdG9yZTo6cmVwbGFjZUtleVZhbHVlU3RvcmUoc3RkOjp1bmlxdWVfcHRyPEtleVZh
bHVlTWFwPiYmIHN0b3JlLCBzdGQ6OnVuaXF1ZV9wdHI8SURCS2V5RGF0YVNldD4mJiBvcmRlcmVk
S2V5cykKIHsKICAgICBBU1NFUlQobV93cml0ZVRyYW5zYWN0aW9uKTsKICAgICBBU1NFUlQobV93
cml0ZVRyYW5zYWN0aW9uLT5pc0Fib3J0aW5nKCkpOwpAQCAtMjYzLDcgKzI2Myw3IEBAIElEQkVy
cm9yIE1lbW9yeU9iamVjdFN0b3JlOjphZGRSZWNvcmQoTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uCiAgICAgaWYgKCFtX2tleVZhbHVlU3RvcmUpIHsKICAgICAgICAg
QVNTRVJUKCFtX29yZGVyZWRLZXlzKTsKICAgICAgICAgbV9rZXlWYWx1ZVN0b3JlID0gc3RkOjpt
YWtlX3VuaXF1ZTxLZXlWYWx1ZU1hcD4oKTsKLSAgICAgICAgbV9vcmRlcmVkS2V5cyA9IHN0ZDo6
bWFrZV91bmlxdWU8c3RkOjpzZXQ8SURCS2V5RGF0YT4+KCk7CisgICAgICAgIG1fb3JkZXJlZEtl
eXMgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQktleURhdGFTZXQ+KCk7CiAgICAgfQogCiAgICAgYXV0
byBtYXBSZXN1bHQgPSBtX2tleVZhbHVlU3RvcmUtPnNldChrZXlEYXRhLCB2YWx1ZS5kYXRhKCkp
OwpAQCAtMjgyLDcgKzI4Miw3IEBAIElEQkVycm9yIE1lbW9yeU9iamVjdFN0b3JlOjphZGRSZWNv
cmQoTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uCiAgICAgcmV0dXJu
IGVycm9yOwogfQogCi12b2lkIE1lbW9yeU9iamVjdFN0b3JlOjp1cGRhdGVDdXJzb3JzRm9yUHV0
UmVjb3JkKHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBpdGVyYXRvcikKK3ZvaWQgTWVt
b3J5T2JqZWN0U3RvcmU6OnVwZGF0ZUN1cnNvcnNGb3JQdXRSZWNvcmQoSURCS2V5RGF0YVNldDo6
aXRlcmF0b3IgaXRlcmF0b3IpCiB7CiAgICAgZm9yIChhdXRvJiBjdXJzb3IgOiBtX2N1cnNvcnMu
dmFsdWVzKCkpCiAgICAgICAgIGN1cnNvci0+a2V5QWRkZWQoaXRlcmF0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2Jq
ZWN0U3RvcmUuaAppbmRleCA4ODM5NTllMzJjNWZjYWQ0OGY0MDgxZTk0NGRiYjRmYWJjMjczMTI4
Li5lNzA4ZGNmN2Y1ZTg3ZTM1NWNjZDQ2YTk0YzgxNjk0ODczNGNiNmZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2Jq
ZWN0U3RvcmUuaApAQCAtODEsNyArODEsNyBAQCBjbGFzcyBNZW1vcnlPYmplY3RTdG9yZSA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lbW9yeU9iamVjdFN0b3JlPiB7CiAgICAgdm9pZCBzZXRLZXlHZW5l
cmF0b3JWYWx1ZSh1aW50NjRfdCB2YWx1ZSkgeyBtX2tleUdlbmVyYXRvclZhbHVlID0gdmFsdWU7
IH0KIAogICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIHJlcGxhY2VLZXlWYWx1ZVN0b3JlKHN0
ZDo6dW5pcXVlX3B0cjxLZXlWYWx1ZU1hcD4mJiwgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6c2V0PElE
QktleURhdGE+PiYmKTsKKyAgICB2b2lkIHJlcGxhY2VLZXlWYWx1ZVN0b3JlKHN0ZDo6dW5pcXVl
X3B0cjxLZXlWYWx1ZU1hcD4mJiwgc3RkOjp1bmlxdWVfcHRyPElEQktleURhdGFTZXQ+JiYpOwog
CiAgICAgVGhyZWFkU2FmZURhdGFCdWZmZXIgdmFsdWVGb3JLZXkoY29uc3QgSURCS2V5RGF0YSYp
IGNvbnN0OwogICAgIFRocmVhZFNhZmVEYXRhQnVmZmVyIHZhbHVlRm9yS2V5UmFuZ2UoY29uc3Qg
SURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7CkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIE1lbW9yeU9i
amVjdFN0b3JlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVtb3J5T2JqZWN0U3RvcmU+IHsKIAogICAg
IE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yKiBtYXliZU9wZW5DdXJzb3IoY29uc3QgSURCQ3Vyc29y
SW5mbyYpOwogCi0gICAgc3RkOjpzZXQ8SURCS2V5RGF0YT4qIG9yZGVyZWRLZXlzKCkgeyByZXR1
cm4gbV9vcmRlcmVkS2V5cy5nZXQoKTsgfQorICAgIElEQktleURhdGFTZXQqIG9yZGVyZWRLZXlz
KCkgeyByZXR1cm4gbV9vcmRlcmVkS2V5cy5nZXQoKTsgfQogCiAgICAgTWVtb3J5SW5kZXgqIGlu
ZGV4Rm9ySWRlbnRpZmllcih1aW50NjRfdCk7CiAKQEAgLTEwNywxMiArMTA3LDEyIEBAIGNsYXNz
IE1lbW9yeU9iamVjdFN0b3JlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVtb3J5T2JqZWN0U3RvcmU+
IHsKIHByaXZhdGU6CiAgICAgTWVtb3J5T2JqZWN0U3RvcmUoY29uc3QgSURCT2JqZWN0U3RvcmVJ
bmZvJik7CiAKLSAgICBzdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0b3IgbG93ZXN0SXRlcmF0
b3JJblJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYsIGJvb2wgcmV2ZXJzZSkgY29uc3Q7Cisg
ICAgSURCS2V5RGF0YVNldDo6aXRlcmF0b3IgbG93ZXN0SXRlcmF0b3JJblJhbmdlKGNvbnN0IElE
QktleVJhbmdlRGF0YSYsIGJvb2wgcmV2ZXJzZSkgY29uc3Q7CiAKICAgICBJREJFcnJvciBwb3B1
bGF0ZUluZGV4V2l0aEV4aXN0aW5nUmVjb3JkcyhNZW1vcnlJbmRleCYpOwogICAgIElEQkVycm9y
IHVwZGF0ZUluZGV4ZXNGb3JQdXRSZWNvcmQoY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IFRocmVh
ZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSk7CiAgICAgdm9pZCB1cGRhdGVJbmRleGVzRm9yRGVsZXRl
UmVjb3JkKGNvbnN0IElEQktleURhdGEmIHZhbHVlKTsKLSAgICB2b2lkIHVwZGF0ZUN1cnNvcnNG
b3JQdXRSZWNvcmQoc3RkOjpzZXQ8SURCS2V5RGF0YT46Oml0ZXJhdG9yKTsKKyAgICB2b2lkIHVw
ZGF0ZUN1cnNvcnNGb3JQdXRSZWNvcmQoSURCS2V5RGF0YVNldDo6aXRlcmF0b3IpOwogICAgIHZv
aWQgdXBkYXRlQ3Vyc29yc0ZvckRlbGV0ZVJlY29yZChjb25zdCBJREJLZXlEYXRhJik7CiAKICAg
ICBSZWZQdHI8TWVtb3J5SW5kZXg+IHRha2VJbmRleEJ5SWRlbnRpZmllcih1aW50NjRfdCBpbmRl
eElkZW50aWZpZXIpOwpAQCAtMTIzLDcgKzEyMyw3IEBAIGNsYXNzIE1lbW9yeU9iamVjdFN0b3Jl
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVtb3J5T2JqZWN0U3RvcmU+IHsKICAgICB1aW50NjRfdCBt
X2tleUdlbmVyYXRvclZhbHVlIHsgMSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEtleVZhbHVl
TWFwPiBtX2tleVZhbHVlU3RvcmU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6c2V0PElEQktl
eURhdGE+PiBtX29yZGVyZWRLZXlzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJLZXlEYXRhU2V0
PiBtX29yZGVyZWRLZXlzOwogCiAgICAgdm9pZCB1bnJlZ2lzdGVySW5kZXgoTWVtb3J5SW5kZXgm
KTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TWVtb3J5SW5kZXg+PiBtX2luZGV4ZXNC
eUlkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcAppbmRleCBk
OTVlZmU2YTk5MmMzYTQwYTIxNDU1MmQ3NTdhM2M5ZGQzZTQ0Y2M3Li4zODFkMjBlODAzZDM1ZDdm
ZDg3NDkxOTg4YjRjMThhMTg0Y2ZkY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1
cnNvci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6
a2V5RGVsZXRlZChjb25zdCBJREJLZXlEYXRhJiBrZXkpCiAgICAgbV9pdGVyYXRvciA9IHN0ZDo6
bnVsbG9wdDsKIH0KIAotdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6a2V5QWRkZWQoc3Rk
OjpzZXQ8SURCS2V5RGF0YT46Oml0ZXJhdG9yIGl0ZXJhdG9yKQordm9pZCBNZW1vcnlPYmplY3RT
dG9yZUN1cnNvcjo6a2V5QWRkZWQoSURCS2V5RGF0YVNldDo6aXRlcmF0b3IgaXRlcmF0b3IpCiB7
CiAgICAgaWYgKG1faXRlcmF0b3IpCiAgICAgICAgIHJldHVybjsKQEAgLTcxLDcgKzcxLDcgQEAg
dm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6a2V5QWRkZWQoc3RkOjpzZXQ8SURCS2V5RGF0
YT46Oml0ZXJhdG9yIGl0ZXJhdG9yKQogICAgICAgICBtX2l0ZXJhdG9yID0gaXRlcmF0b3I7CiB9
CiAKLXZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OnNldEZpcnN0SW5SZW1haW5pbmdSYW5n
ZShzdGQ6OnNldDxJREJLZXlEYXRhPiYgc2V0KQordm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNv
cjo6c2V0Rmlyc3RJblJlbWFpbmluZ1JhbmdlKElEQktleURhdGFTZXQmIHNldCkKIHsKICAgICBt
X2l0ZXJhdG9yID0gc3RkOjpudWxsb3B0OwogCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgTWVtb3J5
T2JqZWN0U3RvcmVDdXJzb3I6OnNldEZpcnN0SW5SZW1haW5pbmdSYW5nZShzdGQ6OnNldDxJREJL
ZXlEYXRhPiYgc2V0CiAgICAgQVNTRVJUKCFtX2l0ZXJhdG9yIHx8ICptX2l0ZXJhdG9yICE9IHNl
dC5lbmQoKSk7CiB9CiAKLXZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OnNldEZvcndhcmRJ
dGVyYXRvckZyb21SZW1haW5pbmdSYW5nZShzdGQ6OnNldDxJREJLZXlEYXRhPiYgc2V0KQordm9p
ZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6c2V0Rm9yd2FyZEl0ZXJhdG9yRnJvbVJlbWFpbmlu
Z1JhbmdlKElEQktleURhdGFTZXQmIHNldCkKIHsKICAgICBpZiAoIXNldC5zaXplKCkpIHsKICAg
ICAgICAgbV9pdGVyYXRvciA9IHN0ZDo6bnVsbG9wdDsKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lk
IE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpzZXRGb3J3YXJkSXRlcmF0b3JGcm9tUmVtYWluaW5n
UmFuZ2Uoc3RkOjpzZXQ8SURCSwogICAgIG1faXRlcmF0b3IgPSBsb3dlc3Q7CiB9CiAKLXZvaWQg
TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OnNldFJldmVyc2VJdGVyYXRvckZyb21SZW1haW5pbmdS
YW5nZShzdGQ6OnNldDxJREJLZXlEYXRhPiYgc2V0KQordm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1
cnNvcjo6c2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKElEQktleURhdGFTZXQm
IHNldCkKIHsKICAgICBpZiAoIXNldC5zaXplKCkpIHsKICAgICAgICAgbV9pdGVyYXRvciA9IHN0
ZDo6bnVsbG9wdDsKQEAgLTE5OCw3ICsxOTgsNyBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vy
c29yOjpjdXJyZW50RGF0YShJREJHZXRSZXN1bHQmIGRhdGEpCiAgICAgfQogfQogCi12b2lkIE1l
bW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRGb3J3YXJkSXRlcmF0b3Ioc3RkOjpzZXQ8
SURCS2V5RGF0YT4mIHNldCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1aW50MzJfdCBjb3VudCkK
K3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmluY3JlbWVudEZvcndhcmRJdGVyYXRvcihJ
REJLZXlEYXRhU2V0JiBzZXQsIGNvbnN0IElEQktleURhdGEmIGtleSwgdWludDMyX3QgY291bnQp
CiB7CiAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byByZS1ncmFiIHRoZSBjdXJyZW50IGl0ZXJhdG9y
LgogICAgIC8vIGUuZy4gSWYgdGhlIHJlY29yZCBpdCB3YXMgcG9pbnRlZCB0byBoYWQgYmVlbiBk
ZWxldGVkLgpAQCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6
OmluY3JlbWVudEZvcndhcmRJdGVyYXRvcihzdGQ6OnNldDxJREJLZXlEYXRhPiYgc2V0CiAgICAg
fQogfQogCi12b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRSZXZlcnNlSXRl
cmF0b3Ioc3RkOjpzZXQ8SURCS2V5RGF0YT4mIHNldCwgY29uc3QgSURCS2V5RGF0YSYga2V5LCB1
aW50MzJfdCBjb3VudCkKK3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmluY3JlbWVudFJl
dmVyc2VJdGVyYXRvcihJREJLZXlEYXRhU2V0JiBzZXQsIGNvbnN0IElEQktleURhdGEmIGtleSwg
dWludDMyX3QgY291bnQpCiB7CiAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byByZS1ncmFiIHRoZSBj
dXJyZW50IGl0ZXJhdG9yLgogICAgIC8vIGUuZy4gSWYgdGhlIHJlY29yZCBpdCB3YXMgcG9pbnRl
ZCB0byBoYWQgYmVlbiBkZWxldGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuaApp
bmRleCA2MzNmMWU2NmNmZjdlYzg1NWU5MDllOWYzMjJiMGYyZmJmMDRhZTZkLi4wNjJkNDg4N2Nk
MDI5MDI3MWQ4NzEwMTA4ODJjYjg0ZDU5ZjY1NjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3Rv
cmVDdXJzb3IuaApAQCAtNDQsMTggKzQ0LDE4IEBAIGNsYXNzIE1lbW9yeU9iamVjdFN0b3JlQ3Vy
c29yIDogcHVibGljIE1lbW9yeUN1cnNvciB7CiAKICAgICB2b2lkIG9iamVjdFN0b3JlQ2xlYXJl
ZCgpOwogICAgIHZvaWQga2V5RGVsZXRlZChjb25zdCBJREJLZXlEYXRhJik7Ci0gICAgdm9pZCBr
ZXlBZGRlZChzdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0b3IpOworICAgIHZvaWQga2V5QWRk
ZWQoSURCS2V5RGF0YVNldDo6aXRlcmF0b3IpOwogCiBwcml2YXRlOgogICAgIHZvaWQgY3VycmVu
dERhdGEoSURCR2V0UmVzdWx0JikgZmluYWw7CiAgICAgdm9pZCBpdGVyYXRlKGNvbnN0IElEQktl
eURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5LCB1aW50MzJfdCBjb3VudCwgSURC
R2V0UmVzdWx0JikgZmluYWw7CiAKLSAgICB2b2lkIHNldEZpcnN0SW5SZW1haW5pbmdSYW5nZShz
dGQ6OnNldDxJREJLZXlEYXRhPiYpOwotICAgIHZvaWQgc2V0Rm9yd2FyZEl0ZXJhdG9yRnJvbVJl
bWFpbmluZ1JhbmdlKHN0ZDo6c2V0PElEQktleURhdGE+Jik7Ci0gICAgdm9pZCBzZXRSZXZlcnNl
SXRlcmF0b3JGcm9tUmVtYWluaW5nUmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mKTsKKyAgICB2
b2lkIHNldEZpcnN0SW5SZW1haW5pbmdSYW5nZShJREJLZXlEYXRhU2V0Jik7CisgICAgdm9pZCBz
ZXRGb3J3YXJkSXRlcmF0b3JGcm9tUmVtYWluaW5nUmFuZ2UoSURCS2V5RGF0YVNldCYpOworICAg
IHZvaWQgc2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKElEQktleURhdGFTZXQm
KTsKIAotICAgIHZvaWQgaW5jcmVtZW50Rm9yd2FyZEl0ZXJhdG9yKHN0ZDo6c2V0PElEQktleURh
dGE+JiwgY29uc3QgSURCS2V5RGF0YSYsIHVpbnQzMl90IGNvdW50KTsKLSAgICB2b2lkIGluY3Jl
bWVudFJldmVyc2VJdGVyYXRvcihzdGQ6OnNldDxJREJLZXlEYXRhPiYsIGNvbnN0IElEQktleURh
dGEmLCB1aW50MzJfdCBjb3VudCk7CisgICAgdm9pZCBpbmNyZW1lbnRGb3J3YXJkSXRlcmF0b3Io
SURCS2V5RGF0YVNldCYsIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCBjb3VudCk7CisgICAg
dm9pZCBpbmNyZW1lbnRSZXZlcnNlSXRlcmF0b3IoSURCS2V5RGF0YVNldCYsIGNvbnN0IElEQktl
eURhdGEmLCB1aW50MzJfdCBjb3VudCk7CiAKICAgICBib29sIGhhc1ZhbGlkUG9zaXRpb24oKSBj
b25zdDsKIApAQCAtNjMsNyArNjMsNyBAQCBjbGFzcyBNZW1vcnlPYmplY3RTdG9yZUN1cnNvciA6
IHB1YmxpYyBNZW1vcnlDdXJzb3IgewogCiAgICAgSURCS2V5UmFuZ2VEYXRhIG1fcmVtYWluaW5n
UmFuZ2U7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRv
cj4gbV9pdGVyYXRvcjsKKyAgICBzdGQ6Om9wdGlvbmFsPElEQktleURhdGFTZXQ6Oml0ZXJhdG9y
PiBtX2l0ZXJhdG9yOwogCiAgICAgSURCS2V5RGF0YSBtX2N1cnJlbnRQb3NpdGlvbktleTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1h
cC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaAppbmRl
eCA2Mzk3OTdhMmIxN2Q2MDVkNTYwNGZlODk3OWM2YjhjOWRiNTBlMDQ4Li5kN2NlMDNmZDIyYmNk
MzU5MWJkOWVjZDI4NmU5MGNhY2Y3Nzg1ODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgU2FtcGxl
TWFwOwogY2xhc3MgUHJlc2VudGF0aW9uT3JkZXJTYW1wbGVNYXAgewogICAgIGZyaWVuZCBjbGFz
cyBTYW1wbGVNYXA7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBzdGQ6Om1hcDxNZWRpYVRpbWUsIFJl
ZlB0cjxNZWRpYVNhbXBsZT4+IE1hcFR5cGU7CisgICAgdXNpbmcgTWFwVHlwZSA9IHN0ZDo6bWFw
PE1lZGlhVGltZSwgUmVmUHRyPE1lZGlhU2FtcGxlPiwgc3RkOjpsZXNzPE1lZGlhVGltZT4sIEZh
c3RBbGxvY2F0b3I8c3RkOjpwYWlyPGNvbnN0IE1lZGlhVGltZSwgUmVmUHRyPE1lZGlhU2FtcGxl
Pj4+PjsKICAgICB0eXBlZGVmIE1hcFR5cGU6Oml0ZXJhdG9yIGl0ZXJhdG9yOwogICAgIHR5cGVk
ZWYgTWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CiAgICAgdHlwZWRlZiBN
YXBUeXBlOjpyZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VfaXRlcmF0b3I7CkBAIC03Miw3ICs3Miw3
IEBAIGNsYXNzIERlY29kZU9yZGVyU2FtcGxlTWFwIHsKICAgICBmcmllbmQgY2xhc3MgU2FtcGxl
TWFwOwogcHVibGljOgogICAgIHR5cGVkZWYgc3RkOjpwYWlyPE1lZGlhVGltZSwgTWVkaWFUaW1l
PiBLZXlUeXBlOwotICAgIHR5cGVkZWYgc3RkOjptYXA8S2V5VHlwZSwgUmVmUHRyPE1lZGlhU2Ft
cGxlPj4gTWFwVHlwZTsKKyAgICB1c2luZyBNYXBUeXBlID0gc3RkOjptYXA8S2V5VHlwZSwgUmVm
UHRyPE1lZGlhU2FtcGxlPiwgc3RkOjpsZXNzPEtleVR5cGU+LCBGYXN0QWxsb2NhdG9yPHN0ZDo6
cGFpcjxjb25zdCBLZXlUeXBlLCBSZWZQdHI8TWVkaWFTYW1wbGU+Pj4+OwogICAgIHR5cGVkZWYg
TWFwVHlwZTo6aXRlcmF0b3IgaXRlcmF0b3I7CiAgICAgdHlwZWRlZiBNYXBUeXBlOjpjb25zdF9p
dGVyYXRvciBjb25zdF9pdGVyYXRvcjsKICAgICB0eXBlZGVmIE1hcFR5cGU6OnJldmVyc2VfaXRl
cmF0b3IgcmV2ZXJzZV9pdGVyYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
V2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVu
dFRlc3RUcmlnZ2VyLmNwcAppbmRleCA5MDIxN2E4MTM4ODdkNzFjN2FlYzI0MTY5ZTlmZTZjZjQ3
YWVhNzIxLi5lZDU0OWNmNDAzMTU2N2YzNTM5NWI2MTU1N2U0ZTBiNjA4YTVhY2MwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwCkBAIC02OCw3ICs2
OCw3IEBAIHZvaWQgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpkZWZlclRlc3RzRm9yUmVhc29uKFNj
cm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlmCiAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+
IGxvY2sobV90ZXN0VHJpZ2dlck11dGV4KTsKICAgICBhdXRvIGl0ID0gbV9kZWZlclRlc3RUcmln
Z2VyUmVhc29ucy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlmIChpdCA9PSBtX2RlZmVyVGVzdFRy
aWdnZXJSZWFzb25zLmVuZCgpKQotICAgICAgICBpdCA9IG1fZGVmZXJUZXN0VHJpZ2dlclJlYXNv
bnMuYWRkKGlkZW50aWZpZXIsIHN0ZDo6c2V0PERlZmVyVGVzdFRyaWdnZXJSZWFzb24+KCkpLml0
ZXJhdG9yOworICAgICAgICBpdCA9IG1fZGVmZXJUZXN0VHJpZ2dlclJlYXNvbnMuYWRkKGlkZW50
aWZpZXIsIERlZmVyVGVzdFRyaWdnZXJSZWFzb25TZXQoKSkuaXRlcmF0b3I7CiAgICAgCiAgICAg
TE9HKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMsICIgICAgICAoPSkgV2hlZWxFdmVudFRlc3RUcmln
Z2VyOjpkZWZlclRlc3RzRm9yUmVhc29uOiBpZD0lcCwgcmVhc29uPSVkIiwgaWRlbnRpZmllciwg
cmVhc29uKTsKICAgICBpdC0+dmFsdWUuaW5zZXJ0KHJlYXNvbik7CkBAIC04OSw3ICs4OSw3IEBA
IHZvaWQgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpyZW1vdmVUZXN0RGVmZXJyYWxGb3JSZWFzb24o
U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyCiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECi1zdGF0aWMg
dm9pZCBkdW1wU3RhdGUoV1RGOjpIYXNoTWFwPFdoZWVsRXZlbnRUZXN0VHJpZ2dlcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyLCBzdGQ6OnNldDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OkRlZmVy
VGVzdFRyaWdnZXJSZWFzb24+PiByZWFzb25zKQorc3RhdGljIHZvaWQgZHVtcFN0YXRlKFdURjo6
SGFzaE1hcDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwg
V2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpEZWZlclRlc3RUcmlnZ2VyUmVhc29uU2V0PiByZWFzb25z
KQogewogICAgIExPRyhXaGVlbEV2ZW50VGVzdFRyaWdnZXJzLCAiICAgV2hlZWxFdmVudFRlc3RU
cmlnZ2VyOjpkdW1wU3RhdGU6Iik7CiAgICAgZm9yIChjb25zdCBhdXRvJiBzY3JvbGxSZWdpb24g
OiByZWFzb25zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRU
ZXN0VHJpZ2dlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIu
aAppbmRleCA1MGVkMzNjYWNlYTkyNzQ0MDg2YjFkN2NiMzAzODE4OGVkNTc1NzI4Li5kMTA3OWQ0
Yjc1ZmM0OTYzYTg4ZTY5ODc0NWQ1ODhhZmEzZDFmNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgV2hlZWxF
dmVudFRlc3RUcmlnZ2VyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdoZWVsRXZlbnRU
ZXN0VHJpZ2dlcj4KICAgICAgICAgU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCwKICAgICAgICAg
Q29udGVudFNjcm9sbEluUHJvZ3Jlc3MKICAgICB9OworICAgIHVzaW5nIERlZmVyVGVzdFRyaWdn
ZXJSZWFzb25TZXQgPSBzdGQ6OnNldDxEZWZlclRlc3RUcmlnZ2VyUmVhc29uLCBzdGQ6Omxlc3M8
RGVmZXJUZXN0VHJpZ2dlclJlYXNvbj4sIEZhc3RBbGxvY2F0b3I8RGVmZXJUZXN0VHJpZ2dlclJl
YXNvbj4+OwogICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVy
OwogICAgIHZvaWQgV0VCQ09SRV9FWFBPUlQgZGVmZXJUZXN0c0ZvclJlYXNvbihTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXIsIERlZmVyVGVzdFRyaWdnZXJSZWFzb24pOwogICAgIHZvaWQgV0VCQ09S
RV9FWFBPUlQgcmVtb3ZlVGVzdERlZmVycmFsRm9yUmVhc29uKFNjcm9sbGFibGVBcmVhSWRlbnRp
ZmllciwgRGVmZXJUZXN0VHJpZ2dlclJlYXNvbik7CkBAIC02MSw3ICs2Miw3IEBAIGNsYXNzIFdo
ZWVsRXZlbnRUZXN0VHJpZ2dlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXaGVlbEV2
ZW50VGVzdFRyaWdnZXI+CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fdGVzdE5vdGlmaWNh
dGlvbkNhbGxiYWNrOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdoZWVsRXZlbnRUZXN0VHJpZ2dlcj4g
bV90ZXN0VHJpZ2dlclRpbWVyOwogICAgIG11dGFibGUgTG9jayBtX3Rlc3RUcmlnZ2VyTXV0ZXg7
Ci0gICAgV1RGOjpIYXNoTWFwPFNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgc3RkOjpzZXQ8RGVm
ZXJUZXN0VHJpZ2dlclJlYXNvbj4+IG1fZGVmZXJUZXN0VHJpZ2dlclJlYXNvbnM7CisgICAgV1RG
OjpIYXNoTWFwPFNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgRGVmZXJUZXN0VHJpZ2dlclJlYXNv
blNldD4gbV9kZWZlclRlc3RUcmlnZ2VyUmVhc29uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1Zp
ZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAppbmRleCAxZDFlYTM5YzgxMDcwOGQ1YmM1OTQ2
NDAxMGZiY2VmNDdiYjVmY2M3Li45YmMzN2IzZTZjMGQzY2JiOWE2NzUzZWJiZGExMmM1MGViNmZm
MTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRl
b1RleHR1cmVDb3BpZXJDVi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC00OSwxMyArNDksMTMgQEAgVmlkZW9U
ZXh0dXJlQ29waWVyQ1Y6On5WaWRlb1RleHR1cmVDb3BpZXJDVigpCiB9CiAKICNpZiAhTE9HX0RJ
U0FCTEVECi0KK3VzaW5nIFN0cmluZ01hcCA9IHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFy
Kiwgc3RkOjpsZXNzPHVpbnQzMl90PiwgRmFzdEFsbG9jYXRvcjxzdGQ6OnBhaXI8Y29uc3QgdWlu
dDMyX3QsIGNvbnN0IGNoYXIqPj4+OwogI2RlZmluZSBTVFJJTkdJRllfUEFJUihlKSBlLCAjZQot
c3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFyKj4mIGVudW1Ub1N0cmluZ01hcCgp
CitzdGF0aWMgU3RyaW5nTWFwJiBlbnVtVG9TdHJpbmdNYXAoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+PiBtYXA7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZ01hcD4gbWFwOwogICAgIGlmIChtYXAuZ2V0KCkuZW1w
dHkoKSkgewotICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3QgY2hhcio+IHN0cmluZ01h
cDsKKyAgICAgICAgU3RyaW5nTWFwIHN0cmluZ01hcDsKICAgICAgICAgbWFwLmdldCgpLmVtcGxh
Y2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7CiAgICAgICAgIG1hcC5nZXQoKS5lbXBsYWNlKFNU
UklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKICAgICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5H
SUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09y
ZGVySXRlcmF0b3IuaAppbmRleCBkZmE3NzkzNTdhMjA2YTBhYjk0ZjJiYjMzNWFlYTY4NDZlNTNi
MzE5Li5kNDk1N2I3N2Y3N2EwNzg3M2IwZWZlNDJhNzVkM2U5OWY5YmRiN2U0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKQEAgLTU2LDcgKzU2LDcgQEAgY2xhc3Mg
T3JkZXJJdGVyYXRvciB7CiAgICAgUmVuZGVyQm94JiBtX2NvbnRhaW5lckJveDsKICAgICBSZW5k
ZXJCb3gqIG1fY3VycmVudENoaWxkOwogCi0gICAgdHlwZWRlZiBzdGQ6OnNldDxpbnQ+IE9yZGVy
VmFsdWVzOworICAgIHVzaW5nIE9yZGVyVmFsdWVzID0gc3RkOjpzZXQ8aW50LCBzdGQ6Omxlc3M8
aW50PiwgRmFzdEFsbG9jYXRvcjxpbnQ+PjsKICAgICBPcmRlclZhbHVlcyBtX29yZGVyVmFsdWVz
OwogICAgIE9yZGVyVmFsdWVzOjpjb25zdF9pdGVyYXRvciBtX29yZGVyVmFsdWVzSXRlcmF0b3I7
CiAgICAgYm9vbCBtX2lzUmVzZXQgeyBmYWxzZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315205</attachid>
            <date>2017-07-11 22:06:38 -0700</date>
            <delta_ts>2017-07-11 22:06:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-174366-20170712140637.patch</filename>
            <type>text/plain</type>
            <size>29351</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2EzZGFiYjhmY2UyNTMy
Nzk4NzVjNGE5MmEzMDM3MGY0MDNhMzU2My4uMTEzMzliNmRiY2I4NjFkNGJiNzg0NWFmZDc0OWVi
ZjBhZmUzNTAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE3LTA3LTExICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBGYXN0QWxs
b2NhdG9yIGluIFNUTCBjb250YWluZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzQzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgRmFzdEFsbG9jYXRvciBmb3IgU1RMIGNv
bnRhaW5lcnMgaW5jbHVkaW5nIHN0ZDo6c2V0IGFuZCBzdGQ6Om1hcC4KKyAgICAgICAgU1RMIGNh
biB0YWtlIGEgdGVtcGxhdGUgcGFyYW1ldGVyIHRvIGJlIHVzZWQgYXMgYWxsb2NhdG9yIGZvciBj
b250YWluZXJzLgorICAgICAgICBXZSBwcmVwYXJlIEZhc3RBbGxvY2F0b3IsIHdoaWNoIHVzZXMg
ZmFzdE1hbGxvYyBmb3IgYWxsb2NhdGlvbi4KKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gdXNl
IGJtYWxsb2MgKGlmIHN1cHBvcnRlZCkgZm9yIFNUTCBjb250YWluZXJzIHdoaWNoIG9mZmVycwor
ICAgICAgICBmdW5jdGlvbmFsaXRpZXMgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGluIFdURiBjb250
YWluZXJzLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlRW50cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJbmRleFZhbHVlRW50cnk6OkluZGV4VmFsdWVFbnRy
eSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OkluZGV4VmFsdWVFbnRyeTo6SXRlcmF0
b3I6Okl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SW5kZXhWYWx1ZUVu
dHJ5OjpyZXZlcnNlRmluZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lu
ZGV4VmFsdWVFbnRyeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRl
eFZhbHVlU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJbmRleFZhbHVl
U3RvcmU6Omxvd2VzdEl0ZXJhdG9ySW5SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OkluZGV4VmFsdWVTdG9yZTo6aGlnaGVzdFJldmVyc2VJdGVyYXRvckluUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJbmRleFZhbHVlU3RvcmU6Okl0ZXJhdG9yOjpJdGVy
YXRvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9y
ZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpvYmplY3RTdG9yZUNsZWFyZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjpyZXBsYWNl
S2V5VmFsdWVTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVj
dFN0b3JlOjphZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlP
YmplY3RTdG9yZTo6dXBkYXRlQ3Vyc29yc0ZvclB1dFJlY29yZCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjpvcmRlcmVkS2V5cyk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmtleUFk
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJz
b3I6OnNldEZpcnN0SW5SZW1haW5pbmdSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6Ok1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpzZXRGb3J3YXJkSXRlcmF0b3JGcm9tUmVtYWlu
aW5nUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9y
ZUN1cnNvcjo6c2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmluY3JlbWVudEZv
cndhcmRJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVj
dFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRSZXZlcnNlSXRlcmF0b3IpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNvci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmg6CisgICAgICAgICogcGFnZS9XaGVlbEV2
ZW50VGVzdFRyaWdnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudFRlc3RUcmln
Z2VyOjpkZWZlclRlc3RzRm9yUmVhc29uKToKKyAgICAgICAgKFdlYkNvcmU6OmR1bXBTdGF0ZSk6
CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjplbnVtVG9TdHJpbmdNYXApOgorICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9y
Lmg6CisKIDIwMTctMDctMTEgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIEJ1aWxkIGVycm9yIHdoZW4gYnVpbGRpbmcgV2ViS2l0LmRsbCBmcm9t
IFdlYktpdC5wcm9qIHByb2plY3QgZmlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleURhdGEuaAppbmRleCA5OGYwYjczNTkwNTUyNWY5OTgwZDYxMzAxODJjM2Y2
Y2ZkYjQyNGQ3Li5mY2MxNjg4MzFkMjRlODE2NTFlMDY0MGUyOGY3YjFjZDAwNDUwZWViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJL
ZXkuaCIKKyNpbmNsdWRlIDxzZXQ+CiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTI5OSw2ICszMDAsOCBAQCBib29sIElEQktl
eURhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiBrZXlEYXRhKQogICAg
IHJldHVybiB0cnVlOwogfQogCit1c2luZyBJREJLZXlEYXRhU2V0ID0gc3RkOjpzZXQ8SURCS2V5
RGF0YSwgc3RkOjpsZXNzPElEQktleURhdGE+LCBGYXN0QWxsb2NhdG9yPElEQktleURhdGE+PjsK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSW5kZXhWYWx1ZUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JbmRleFZhbHVlRW50cnkuY3BwCmluZGV4IDM4Yzg2MDY3N2I0NWRlMDU4NTM0NTIz
Y2UwNDI3NGJlNjMxYzZlOTEuLjZhYjhmYTIzYjM0ZGMxZTc2NTYxZGZmYTRjOGVmMTg3YzVhODg2
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
bmRleFZhbHVlRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JbmRleFZhbHVlRW50cnkuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEluZGV4VmFsdWVF
bnRyeTo6SW5kZXhWYWx1ZUVudHJ5KGJvb2wgdW5pcXVlKQogICAgIGlmIChtX3VuaXF1ZSkKICAg
ICAgICAgbV9rZXkgPSBudWxscHRyOwogICAgIGVsc2UKLSAgICAgICAgbV9vcmRlcmVkS2V5cyA9
IG5ldyBzdGQ6OnNldDxJREJLZXlEYXRhPjsKKyAgICAgICAgbV9vcmRlcmVkS2V5cyA9IG5ldyBJ
REJLZXlEYXRhU2V0OwogfQogCiBJbmRleFZhbHVlRW50cnk6On5JbmRleFZhbHVlRW50cnkoKQpA
QCAtMTAxLDEzICsxMDEsMTMgQEAgSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvcjo6SXRlcmF0b3Io
SW5kZXhWYWx1ZUVudHJ5JiBlbnRyeSkKICAgICBBU1NFUlQobV9lbnRyeS0+bV9rZXkpOwogfQog
Ci1JbmRleFZhbHVlRW50cnk6Okl0ZXJhdG9yOjpJdGVyYXRvcihJbmRleFZhbHVlRW50cnkmIGVu
dHJ5LCBzdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0b3IgaXRlcmF0b3IpCitJbmRleFZhbHVl
RW50cnk6Okl0ZXJhdG9yOjpJdGVyYXRvcihJbmRleFZhbHVlRW50cnkmIGVudHJ5LCBJREJLZXlE
YXRhU2V0OjppdGVyYXRvciBpdGVyYXRvcikKICAgICA6IG1fZW50cnkoJmVudHJ5KQogICAgICwg
bV9mb3J3YXJkSXRlcmF0b3IoaXRlcmF0b3IpCiB7CiB9CiAKLUluZGV4VmFsdWVFbnRyeTo6SXRl
cmF0b3I6Okl0ZXJhdG9yKEluZGV4VmFsdWVFbnRyeSYgZW50cnksIHN0ZDo6c2V0PElEQktleURh
dGE+OjpyZXZlcnNlX2l0ZXJhdG9yIGl0ZXJhdG9yKQorSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRv
cjo6SXRlcmF0b3IoSW5kZXhWYWx1ZUVudHJ5JiBlbnRyeSwgSURCS2V5RGF0YVNldDo6cmV2ZXJz
ZV9pdGVyYXRvciBpdGVyYXRvcikKICAgICA6IG1fZW50cnkoJmVudHJ5KQogICAgICwgbV9mb3J3
YXJkKGZhbHNlKQogICAgICwgbV9yZXZlcnNlSXRlcmF0b3IoaXRlcmF0b3IpCkBAIC0yMTgsNyAr
MjE4LDcgQEAgSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvciBJbmRleFZhbHVlRW50cnk6OnJldmVy
c2VGaW5kKGNvbnN0IElEQktleURhdGEmIGtleSwgQ3UKICAgICB9CiAKICAgICBBU1NFUlQobV9v
cmRlcmVkS2V5cyk7Ci0gICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6c2V0PElEQktleURhdGE+Ojpy
ZXZlcnNlX2l0ZXJhdG9yKG1fb3JkZXJlZEtleXMtPnVwcGVyX2JvdW5kKGtleSkpOworICAgIGF1
dG8gaXRlcmF0b3IgPSBJREJLZXlEYXRhU2V0OjpyZXZlcnNlX2l0ZXJhdG9yKG1fb3JkZXJlZEtl
eXMtPnVwcGVyX2JvdW5kKGtleSkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX29yZGVyZWRLZXlz
LT5yZW5kKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlRW50cnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlRW50cnkuaAppbmRleCBk
ZjA1NDNmY2YxMzRkMzEzYmEzMWM2ODFlZmUwMzQ5ZTJlMmVhNTE2Li5hYjM1MGFmMmNiNTc3MWFk
ZmE5N2ZhYWMyYWNmYzVmZTg0MWM2YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVFbnRyeS5oCkBAIC0yOCw3ICsy
OCw2IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJLZXlE
YXRhLmgiCi0jaW5jbHVkZSA8c2V0PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDgg
KzU4LDggQEAgY2xhc3MgSW5kZXhWYWx1ZUVudHJ5IHsKICAgICAgICAgfQogCiAgICAgICAgIEl0
ZXJhdG9yKEluZGV4VmFsdWVFbnRyeSYpOwotICAgICAgICBJdGVyYXRvcihJbmRleFZhbHVlRW50
cnkmLCBzdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0b3IpOwotICAgICAgICBJdGVyYXRvcihJ
bmRleFZhbHVlRW50cnkmLCBzdGQ6OnNldDxJREJLZXlEYXRhPjo6cmV2ZXJzZV9pdGVyYXRvcik7
CisgICAgICAgIEl0ZXJhdG9yKEluZGV4VmFsdWVFbnRyeSYsIElEQktleURhdGFTZXQ6Oml0ZXJh
dG9yKTsKKyAgICAgICAgSXRlcmF0b3IoSW5kZXhWYWx1ZUVudHJ5JiwgSURCS2V5RGF0YVNldDo6
cmV2ZXJzZV9pdGVyYXRvcik7CiAKICAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAgICAg
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpAQCAtNzMsOCArNzIsOCBAQCBjbGFzcyBJbmRleFZhbHVl
RW50cnkgewogICAgIHByaXZhdGU6CiAgICAgICAgIEluZGV4VmFsdWVFbnRyeSogbV9lbnRyeSB7
IG51bGxwdHIgfTsKICAgICAgICAgYm9vbCBtX2ZvcndhcmQgeyB0cnVlIH07Ci0gICAgICAgIHN0
ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBtX2ZvcndhcmRJdGVyYXRvcjsKLSAgICAgICAg
c3RkOjpzZXQ8SURCS2V5RGF0YT46OnJldmVyc2VfaXRlcmF0b3IgbV9yZXZlcnNlSXRlcmF0b3I7
CisgICAgICAgIElEQktleURhdGFTZXQ6Oml0ZXJhdG9yIG1fZm9yd2FyZEl0ZXJhdG9yOworICAg
ICAgICBJREJLZXlEYXRhU2V0OjpyZXZlcnNlX2l0ZXJhdG9yIG1fcmV2ZXJzZUl0ZXJhdG9yOwog
ICAgIH07CiAKICAgICBJdGVyYXRvciBiZWdpbigpOwpAQCAtODksNyArODgsNyBAQCBjbGFzcyBJ
bmRleFZhbHVlRW50cnkgewogCiBwcml2YXRlOgogICAgIHVuaW9uIHsKLSAgICAgICAgc3RkOjpz
ZXQ8SURCS2V5RGF0YT4qIG1fb3JkZXJlZEtleXM7CisgICAgICAgIElEQktleURhdGFTZXQqIG1f
b3JkZXJlZEtleXM7CiAgICAgICAgIElEQktleURhdGEqIG1fa2V5OwogICAgIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVl
U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4
VmFsdWVTdG9yZS5jcHAKaW5kZXggMzM5ODg4NDYyNzdhYTk4ZmM4OTVmYjIyNDg1ZjQxNTg1MGQz
Nzk3NC4uMzk5MGMwNWYwNjViZWRmOWQ3NzU4YTY4YmJiZDE3YWM2YmE4Zjg4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4
VmFsdWVTdG9yZS5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBJREJLZXlEYXRhIEluZGV4VmFsdWVT
dG9yZTo6bG93ZXN0S2V5V2l0aFJlY29yZEluUmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBy
YQogICAgIHJldHVybiAqaXRlcmF0b3I7CiB9CiAKLXN0ZDo6c2V0PElEQktleURhdGE+OjppdGVy
YXRvciBJbmRleFZhbHVlU3RvcmU6Omxvd2VzdEl0ZXJhdG9ySW5SYW5nZShjb25zdCBJREJLZXlS
YW5nZURhdGEmIHJhbmdlKSBjb25zdAorSURCS2V5RGF0YVNldDo6aXRlcmF0b3IgSW5kZXhWYWx1
ZVN0b3JlOjpsb3dlc3RJdGVyYXRvckluUmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5n
ZSkgY29uc3QKIHsKICAgICBhdXRvIGxvd2VzdEluUmFuZ2UgPSBtX29yZGVyZWRLZXlzLmxvd2Vy
X2JvdW5kKHJhbmdlLmxvd2VyS2V5KTsKIApAQCAtMTY2LDkgKzE2Niw5IEBAIHN0ZDo6c2V0PElE
QktleURhdGE+OjppdGVyYXRvciBJbmRleFZhbHVlU3RvcmU6Omxvd2VzdEl0ZXJhdG9ySW5SYW5n
ZShjb25zdCBJREJLCiAgICAgcmV0dXJuIGxvd2VzdEluUmFuZ2U7CiB9CiAKLXN0ZDo6c2V0PElE
QktleURhdGE+OjpyZXZlcnNlX2l0ZXJhdG9yIEluZGV4VmFsdWVTdG9yZTo6aGlnaGVzdFJldmVy
c2VJdGVyYXRvckluUmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSkgY29uc3QKK0lE
QktleURhdGFTZXQ6OnJldmVyc2VfaXRlcmF0b3IgSW5kZXhWYWx1ZVN0b3JlOjpoaWdoZXN0UmV2
ZXJzZUl0ZXJhdG9ySW5SYW5nZShjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKSBjb25zdAog
ewotICAgIGF1dG8gaGlnaGVzdEluUmFuZ2UgPSBzdGQ6OnNldDxJREJLZXlEYXRhPjo6cmV2ZXJz
ZV9pdGVyYXRvcihtX29yZGVyZWRLZXlzLnVwcGVyX2JvdW5kKHJhbmdlLnVwcGVyS2V5KSk7Cisg
ICAgYXV0byBoaWdoZXN0SW5SYW5nZSA9IElEQktleURhdGFTZXQ6OnJldmVyc2VfaXRlcmF0b3Io
bV9vcmRlcmVkS2V5cy51cHBlcl9ib3VuZChyYW5nZS51cHBlcktleSkpOwogCiAgICAgaWYgKGhp
Z2hlc3RJblJhbmdlID09IG1fb3JkZXJlZEtleXMucmVuZCgpKQogICAgICAgICByZXR1cm4gaGln
aGVzdEluUmFuZ2U7CkBAIC0zMTIsMTQgKzMxMiwxNCBAQCBJbmRleFZhbHVlU3RvcmU6Okl0ZXJh
dG9yIEluZGV4VmFsdWVTdG9yZTo6cmV2ZXJzZUZpbmQoY29uc3QgSURCS2V5RGF0YSYga2V5LCBj
bwogfQogCiAKLUluZGV4VmFsdWVTdG9yZTo6SXRlcmF0b3I6Okl0ZXJhdG9yKEluZGV4VmFsdWVT
dG9yZSYgc3RvcmUsIHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBpdGVyYXRvciwgSW5k
ZXhWYWx1ZUVudHJ5OjpJdGVyYXRvciBwcmltYXJ5SXRlcmF0b3IpCitJbmRleFZhbHVlU3RvcmU6
Okl0ZXJhdG9yOjpJdGVyYXRvcihJbmRleFZhbHVlU3RvcmUmIHN0b3JlLCBJREJLZXlEYXRhU2V0
OjppdGVyYXRvciBpdGVyYXRvciwgSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvciBwcmltYXJ5SXRl
cmF0b3IpCiAgICAgOiBtX3N0b3JlKCZzdG9yZSkKICAgICAsIG1fZm9yd2FyZEl0ZXJhdG9yKGl0
ZXJhdG9yKQogICAgICwgbV9wcmltYXJ5S2V5SXRlcmF0b3IocHJpbWFyeUl0ZXJhdG9yKQogewog
fQogCi1JbmRleFZhbHVlU3RvcmU6Okl0ZXJhdG9yOjpJdGVyYXRvcihJbmRleFZhbHVlU3RvcmUm
IHN0b3JlLCBDdXJzb3JEdXBsaWNpdHkgZHVwbGljaXR5LCBzdGQ6OnNldDxJREJLZXlEYXRhPjo6
cmV2ZXJzZV9pdGVyYXRvciBpdGVyYXRvciwgSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvciBwcmlt
YXJ5SXRlcmF0b3IpCitJbmRleFZhbHVlU3RvcmU6Okl0ZXJhdG9yOjpJdGVyYXRvcihJbmRleFZh
bHVlU3RvcmUmIHN0b3JlLCBDdXJzb3JEdXBsaWNpdHkgZHVwbGljaXR5LCBJREJLZXlEYXRhU2V0
OjpyZXZlcnNlX2l0ZXJhdG9yIGl0ZXJhdG9yLCBJbmRleFZhbHVlRW50cnk6Okl0ZXJhdG9yIHBy
aW1hcnlJdGVyYXRvcikKICAgICA6IG1fc3RvcmUoJnN0b3JlKQogICAgICwgbV9mb3J3YXJkKGZh
bHNlKQogICAgICwgbV9kdXBsaWNpdHkoZHVwbGljaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5oCmluZGV4
IDNhZjdjMWZjMDMwNzE1ODIxNTJhZGQ3YmFjYmI1ZjMwOGQ1ODBlODYuLjg2YTFkYTU2ZjUzMDM3
NDEzMGFiMTM3NTAzOGI5YzNjN2FlNDM2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmgKQEAgLTMwLDcg
KzMwLDYgQEAKICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCS2V5RGF0
YS5oIgogI2luY2x1ZGUgIkluZGV4VmFsdWVFbnRyeS5oIgotI2luY2x1ZGUgPHNldD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Nyw4ICs2Niw4
IEBAIGNsYXNzIEluZGV4VmFsdWVTdG9yZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAg
ICAgIEl0ZXJhdG9yKEluZGV4VmFsdWVTdG9yZSYsIHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVy
YXRvciwgSW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvcik7Ci0gICAgICAgIEl0ZXJhdG9yKEluZGV4
VmFsdWVTdG9yZSYsIEN1cnNvckR1cGxpY2l0eSwgc3RkOjpzZXQ8SURCS2V5RGF0YT46OnJldmVy
c2VfaXRlcmF0b3IsIEluZGV4VmFsdWVFbnRyeTo6SXRlcmF0b3IpOworICAgICAgICBJdGVyYXRv
cihJbmRleFZhbHVlU3RvcmUmLCBJREJLZXlEYXRhU2V0OjppdGVyYXRvciwgSW5kZXhWYWx1ZUVu
dHJ5OjpJdGVyYXRvcik7CisgICAgICAgIEl0ZXJhdG9yKEluZGV4VmFsdWVTdG9yZSYsIEN1cnNv
ckR1cGxpY2l0eSwgSURCS2V5RGF0YVNldDo6cmV2ZXJzZV9pdGVyYXRvciwgSW5kZXhWYWx1ZUVu
dHJ5OjpJdGVyYXRvcik7CiAKICAgICAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgICAgIGJv
b2wgaXNWYWxpZCgpOwpAQCAtODQsOCArODMsOCBAQCBjbGFzcyBJbmRleFZhbHVlU3RvcmUgewog
ICAgICAgICBJbmRleFZhbHVlU3RvcmUqIG1fc3RvcmUgeyBudWxscHRyIH07CiAgICAgICAgIGJv
b2wgbV9mb3J3YXJkIHsgdHJ1ZSB9OwogICAgICAgICBDdXJzb3JEdXBsaWNpdHkgbV9kdXBsaWNp
dHkgeyBDdXJzb3JEdXBsaWNpdHk6OkR1cGxpY2F0ZXMgfTsKLSAgICAgICAgc3RkOjpzZXQ8SURC
S2V5RGF0YT46Oml0ZXJhdG9yIG1fZm9yd2FyZEl0ZXJhdG9yOwotICAgICAgICBzdGQ6OnNldDxJ
REJLZXlEYXRhPjo6cmV2ZXJzZV9pdGVyYXRvciBtX3JldmVyc2VJdGVyYXRvcjsKKyAgICAgICAg
SURCS2V5RGF0YVNldDo6aXRlcmF0b3IgbV9mb3J3YXJkSXRlcmF0b3I7CisgICAgICAgIElEQktl
eURhdGFTZXQ6OnJldmVyc2VfaXRlcmF0b3IgbV9yZXZlcnNlSXRlcmF0b3I7CiAKICAgICAgICAg
SW5kZXhWYWx1ZUVudHJ5OjpJdGVyYXRvciBtX3ByaW1hcnlLZXlJdGVyYXRvcjsKICAgICB9OwpA
QCAtMTAzLDExICsxMDIsMTEgQEAgY2xhc3MgSW5kZXhWYWx1ZVN0b3JlIHsKICNlbmRpZgogCiBw
cml2YXRlOgotICAgIHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBsb3dlc3RJdGVyYXRv
ckluUmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7Ci0gICAgc3RkOjpzZXQ8SURC
S2V5RGF0YT46OnJldmVyc2VfaXRlcmF0b3IgaGlnaGVzdFJldmVyc2VJdGVyYXRvckluUmFuZ2Uo
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7CisgICAgSURCS2V5RGF0YVNldDo6aXRlcmF0
b3IgbG93ZXN0SXRlcmF0b3JJblJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYpIGNvbnN0Owor
ICAgIElEQktleURhdGFTZXQ6OnJldmVyc2VfaXRlcmF0b3IgaGlnaGVzdFJldmVyc2VJdGVyYXRv
ckluUmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgY29uc3Q7CiAKICAgICBJbmRleEtleVZh
bHVlTWFwIG1fcmVjb3JkczsKLSAgICBzdGQ6OnNldDxJREJLZXlEYXRhPiBtX29yZGVyZWRLZXlz
OworICAgIElEQktleURhdGFTZXQgbV9vcmRlcmVkS2V5czsKICAgICAKICAgICBib29sIG1fdW5p
cXVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3Bw
CmluZGV4IDBlN2JiNmJkYWQ0NDc1OThjNmEyNWVkNTM2YTU1NWVmMGNkNzE2ZGUuLjFlYTVjYjE4
M2VhMGNjMmM3ZjI5ZmZiODM2NTA5NjVmZGZlMDZmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlRGVsZXRlZChSZWY8TWVtb3J5
T2JqZWN0U3RvcmU+JiYKICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdURk1v
dmUob2JqZWN0U3RvcmUpOwogfQogCi12b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9u
OjpvYmplY3RTdG9yZUNsZWFyZWQoTWVtb3J5T2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBzdGQ6
OnVuaXF1ZV9wdHI8S2V5VmFsdWVNYXA+JiYga2V5VmFsdWVNYXAsIHN0ZDo6dW5pcXVlX3B0cjxz
dGQ6OnNldDxJREJLZXlEYXRhPj4mJiBvcmRlcmVkS2V5cykKK3ZvaWQgTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlQ2xlYXJlZChNZW1vcnlPYmplY3RTdG9yZSYgb2Jq
ZWN0U3RvcmUsIHN0ZDo6dW5pcXVlX3B0cjxLZXlWYWx1ZU1hcD4mJiBrZXlWYWx1ZU1hcCwgc3Rk
Ojp1bmlxdWVfcHRyPElEQktleURhdGFTZXQ+JiYgb3JkZXJlZEtleXMpCiB7CiAgICAgQVNTRVJU
KG1fb2JqZWN0U3RvcmVzLmNvbnRhaW5zKCZvYmplY3RTdG9yZSkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCmluZGV4IDVhYzkzMDJjY2M5NDU3OTZhN2I0
ZDI0MDc0OTBkOWU2NjYxODIwNTkuLjRlYTJkMzI5NGEwMmY0ZjYxNmM3ZTkyNGU1YzAwZWU2MmRh
ZWQ4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oCkBA
IC02Miw3ICs2Miw3IEBAIGNsYXNzIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uIHsKICAg
ICAKICAgICB2b2lkIHJlY29yZFZhbHVlQ2hhbmdlZChNZW1vcnlPYmplY3RTdG9yZSYsIGNvbnN0
IElEQktleURhdGEmLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciopOwogICAgIHZvaWQgb2JqZWN0U3Rv
cmVEZWxldGVkKFJlZjxNZW1vcnlPYmplY3RTdG9yZT4mJik7Ci0gICAgdm9pZCBvYmplY3RTdG9y
ZUNsZWFyZWQoTWVtb3J5T2JqZWN0U3RvcmUmLCBzdGQ6OnVuaXF1ZV9wdHI8S2V5VmFsdWVNYXA+
JiYsIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnNldDxJREJLZXlEYXRhPj4mJik7CisgICAgdm9pZCBv
YmplY3RTdG9yZUNsZWFyZWQoTWVtb3J5T2JqZWN0U3RvcmUmLCBzdGQ6OnVuaXF1ZV9wdHI8S2V5
VmFsdWVNYXA+JiYsIHN0ZDo6dW5pcXVlX3B0cjxJREJLZXlEYXRhU2V0PiYmKTsKICAgICB2b2lk
IG9iamVjdFN0b3JlUmVuYW1lZChNZW1vcnlPYmplY3RTdG9yZSYsIGNvbnN0IFN0cmluZyYgb2xk
TmFtZSk7CiAgICAgdm9pZCBpbmRleFJlbmFtZWQoTWVtb3J5SW5kZXgmLCBjb25zdCBTdHJpbmcm
IG9sZE5hbWUpOwogICAgIHZvaWQgaW5kZXhDbGVhcmVkKE1lbW9yeUluZGV4Jiwgc3RkOjp1bmlx
dWVfcHRyPEluZGV4VmFsdWVTdG9yZT4mJik7CkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIE1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uIHsKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1l
bW9yeUluZGV4Pj4gbV9kZWxldGVkSW5kZXhlczsKICAgICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0
b3JlKiwgc3RkOjp1bmlxdWVfcHRyPEtleVZhbHVlTWFwPj4gbV9vcmlnaW5hbFZhbHVlczsKICAg
ICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0b3JlKiwgc3RkOjp1bmlxdWVfcHRyPEtleVZhbHVlTWFw
Pj4gbV9jbGVhcmVkS2V5VmFsdWVNYXBzOwotICAgIEhhc2hNYXA8TWVtb3J5T2JqZWN0U3RvcmUq
LCBzdGQ6OnVuaXF1ZV9wdHI8c3RkOjpzZXQ8SURCS2V5RGF0YT4+PiBtX2NsZWFyZWRPcmRlcmVk
S2V5czsKKyAgICBIYXNoTWFwPE1lbW9yeU9iamVjdFN0b3JlKiwgc3RkOjp1bmlxdWVfcHRyPElE
QktleURhdGFTZXQ+PiBtX2NsZWFyZWRPcmRlcmVkS2V5czsKICAgICBIYXNoTWFwPE1lbW9yeU9i
amVjdFN0b3JlKiwgU3RyaW5nPiBtX29yaWdpbmFsT2JqZWN0U3RvcmVOYW1lczsKICAgICBIYXNo
TWFwPE1lbW9yeUluZGV4KiwgU3RyaW5nPiBtX29yaWdpbmFsSW5kZXhOYW1lczsKICAgICBIYXNo
TWFwPE1lbW9yeUluZGV4Kiwgc3RkOjp1bmlxdWVfcHRyPEluZGV4VmFsdWVTdG9yZT4+IG1fY2xl
YXJlZEluZGV4VmFsdWVTdG9yZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcAppbmRleCAzNGI0
ZTEyOWFkNjZhYTUwMjAyYWJkZmU5OGVkZWIyOTBjNzU1N2M2Li4wNTY2MGUyNjRmMWVmYTgyNzQ2
YWY5ZjVhZTk0NzBhYWFkZTY3ZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAKQEAgLTE5
MSw3ICsxOTEsNyBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpjbGVhcigpCiAgICAgICAgIGN1
cnNvci0+b2JqZWN0U3RvcmVDbGVhcmVkKCk7CiB9CiAKLXZvaWQgTWVtb3J5T2JqZWN0U3RvcmU6
OnJlcGxhY2VLZXlWYWx1ZVN0b3JlKHN0ZDo6dW5pcXVlX3B0cjxLZXlWYWx1ZU1hcD4mJiBzdG9y
ZSwgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6c2V0PElEQktleURhdGE+PiYmIG9yZGVyZWRLZXlzKQor
dm9pZCBNZW1vcnlPYmplY3RTdG9yZTo6cmVwbGFjZUtleVZhbHVlU3RvcmUoc3RkOjp1bmlxdWVf
cHRyPEtleVZhbHVlTWFwPiYmIHN0b3JlLCBzdGQ6OnVuaXF1ZV9wdHI8SURCS2V5RGF0YVNldD4m
JiBvcmRlcmVkS2V5cykKIHsKICAgICBBU1NFUlQobV93cml0ZVRyYW5zYWN0aW9uKTsKICAgICBB
U1NFUlQobV93cml0ZVRyYW5zYWN0aW9uLT5pc0Fib3J0aW5nKCkpOwpAQCAtMjYzLDcgKzI2Myw3
IEBAIElEQkVycm9yIE1lbW9yeU9iamVjdFN0b3JlOjphZGRSZWNvcmQoTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uCiAgICAgaWYgKCFtX2tleVZhbHVlU3RvcmUpIHsK
ICAgICAgICAgQVNTRVJUKCFtX29yZGVyZWRLZXlzKTsKICAgICAgICAgbV9rZXlWYWx1ZVN0b3Jl
ID0gc3RkOjptYWtlX3VuaXF1ZTxLZXlWYWx1ZU1hcD4oKTsKLSAgICAgICAgbV9vcmRlcmVkS2V5
cyA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpzZXQ8SURCS2V5RGF0YT4+KCk7CisgICAgICAgIG1f
b3JkZXJlZEtleXMgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQktleURhdGFTZXQ+KCk7CiAgICAgfQog
CiAgICAgYXV0byBtYXBSZXN1bHQgPSBtX2tleVZhbHVlU3RvcmUtPnNldChrZXlEYXRhLCB2YWx1
ZS5kYXRhKCkpOwpAQCAtMjgyLDcgKzI4Miw3IEBAIElEQkVycm9yIE1lbW9yeU9iamVjdFN0b3Jl
OjphZGRSZWNvcmQoTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uCiAg
ICAgcmV0dXJuIGVycm9yOwogfQogCi12b2lkIE1lbW9yeU9iamVjdFN0b3JlOjp1cGRhdGVDdXJz
b3JzRm9yUHV0UmVjb3JkKHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBpdGVyYXRvcikK
K3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmU6OnVwZGF0ZUN1cnNvcnNGb3JQdXRSZWNvcmQoSURCS2V5
RGF0YVNldDo6aXRlcmF0b3IgaXRlcmF0b3IpCiB7CiAgICAgZm9yIChhdXRvJiBjdXJzb3IgOiBt
X2N1cnNvcnMudmFsdWVzKCkpCiAgICAgICAgIGN1cnNvci0+a2V5QWRkZWQoaXRlcmF0b3IpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eU9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5T2JqZWN0U3RvcmUuaAppbmRleCA4ODM5NTllMzJjNWZjYWQ0OGY0MDgxZTk0NGRiYjRm
YWJjMjczMTI4Li41YjNkODMzZTU1NmY2Y2M5MTdjMDg4MDJhMzVjMDc4MTE2ZDg3MzE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2Jq
ZWN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5T2JqZWN0U3RvcmUuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIk1lbW9yeUlu
ZGV4LmgiCiAjaW5jbHVkZSAiTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuaCIKICNpbmNsdWRlICJU
aHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgotI2luY2x1ZGUgPHNldD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTgxLDcgKzgwLDcgQEAg
Y2xhc3MgTWVtb3J5T2JqZWN0U3RvcmUgOiBwdWJsaWMgUmVmQ291bnRlZDxNZW1vcnlPYmplY3RT
dG9yZT4gewogICAgIHZvaWQgc2V0S2V5R2VuZXJhdG9yVmFsdWUodWludDY0X3QgdmFsdWUpIHsg
bV9rZXlHZW5lcmF0b3JWYWx1ZSA9IHZhbHVlOyB9CiAKICAgICB2b2lkIGNsZWFyKCk7Ci0gICAg
dm9pZCByZXBsYWNlS2V5VmFsdWVTdG9yZShzdGQ6OnVuaXF1ZV9wdHI8S2V5VmFsdWVNYXA+JiYs
IHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnNldDxJREJLZXlEYXRhPj4mJik7CisgICAgdm9pZCByZXBs
YWNlS2V5VmFsdWVTdG9yZShzdGQ6OnVuaXF1ZV9wdHI8S2V5VmFsdWVNYXA+JiYsIHN0ZDo6dW5p
cXVlX3B0cjxJREJLZXlEYXRhU2V0PiYmKTsKIAogICAgIFRocmVhZFNhZmVEYXRhQnVmZmVyIHZh
bHVlRm9yS2V5KGNvbnN0IElEQktleURhdGEmKSBjb25zdDsKICAgICBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciB2YWx1ZUZvcktleVJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0YSYpIGNvbnN0OwpAQCAt
OTUsNyArOTQsNyBAQCBjbGFzcyBNZW1vcnlPYmplY3RTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVk
PE1lbW9yeU9iamVjdFN0b3JlPiB7CiAKICAgICBNZW1vcnlPYmplY3RTdG9yZUN1cnNvciogbWF5
YmVPcGVuQ3Vyc29yKGNvbnN0IElEQkN1cnNvckluZm8mKTsKIAotICAgIHN0ZDo6c2V0PElEQktl
eURhdGE+KiBvcmRlcmVkS2V5cygpIHsgcmV0dXJuIG1fb3JkZXJlZEtleXMuZ2V0KCk7IH0KKyAg
ICBJREJLZXlEYXRhU2V0KiBvcmRlcmVkS2V5cygpIHsgcmV0dXJuIG1fb3JkZXJlZEtleXMuZ2V0
KCk7IH0KIAogICAgIE1lbW9yeUluZGV4KiBpbmRleEZvcklkZW50aWZpZXIodWludDY0X3QpOwog
CkBAIC0xMDcsMTIgKzEwNiwxMiBAQCBjbGFzcyBNZW1vcnlPYmplY3RTdG9yZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPE1lbW9yeU9iamVjdFN0b3JlPiB7CiBwcml2YXRlOgogICAgIE1lbW9yeU9iamVj
dFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpOwogCi0gICAgc3RkOjpzZXQ8SURCS2V5
RGF0YT46Oml0ZXJhdG9yIGxvd2VzdEl0ZXJhdG9ySW5SYW5nZShjb25zdCBJREJLZXlSYW5nZURh
dGEmLCBib29sIHJldmVyc2UpIGNvbnN0OworICAgIElEQktleURhdGFTZXQ6Oml0ZXJhdG9yIGxv
d2VzdEl0ZXJhdG9ySW5SYW5nZShjb25zdCBJREJLZXlSYW5nZURhdGEmLCBib29sIHJldmVyc2Up
IGNvbnN0OwogCiAgICAgSURCRXJyb3IgcG9wdWxhdGVJbmRleFdpdGhFeGlzdGluZ1JlY29yZHMo
TWVtb3J5SW5kZXgmKTsKICAgICBJREJFcnJvciB1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKGNv
bnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpOwogICAg
IHZvaWQgdXBkYXRlSW5kZXhlc0ZvckRlbGV0ZVJlY29yZChjb25zdCBJREJLZXlEYXRhJiB2YWx1
ZSk7Ci0gICAgdm9pZCB1cGRhdGVDdXJzb3JzRm9yUHV0UmVjb3JkKHN0ZDo6c2V0PElEQktleURh
dGE+OjppdGVyYXRvcik7CisgICAgdm9pZCB1cGRhdGVDdXJzb3JzRm9yUHV0UmVjb3JkKElEQktl
eURhdGFTZXQ6Oml0ZXJhdG9yKTsKICAgICB2b2lkIHVwZGF0ZUN1cnNvcnNGb3JEZWxldGVSZWNv
cmQoY29uc3QgSURCS2V5RGF0YSYpOwogCiAgICAgUmVmUHRyPE1lbW9yeUluZGV4PiB0YWtlSW5k
ZXhCeUlkZW50aWZpZXIodWludDY0X3QgaW5kZXhJZGVudGlmaWVyKTsKQEAgLTEyMyw3ICsxMjIs
NyBAQCBjbGFzcyBNZW1vcnlPYmplY3RTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lbW9yeU9i
amVjdFN0b3JlPiB7CiAgICAgdWludDY0X3QgbV9rZXlHZW5lcmF0b3JWYWx1ZSB7IDEgfTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxLZXlWYWx1ZU1hcD4gbV9rZXlWYWx1ZVN0b3JlOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxzdGQ6OnNldDxJREJLZXlEYXRhPj4gbV9vcmRlcmVkS2V5czsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SURCS2V5RGF0YVNldD4gbV9vcmRlcmVkS2V5czsKIAogICAgIHZvaWQg
dW5yZWdpc3RlckluZGV4KE1lbW9yeUluZGV4Jik7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPE1lbW9yeUluZGV4Pj4gbV9pbmRleGVzQnlJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vy
c29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZUN1cnNvci5jcHAKaW5kZXggZDk1ZWZlNmE5OTJjM2E0MGEyMTQ1NTJkNzU3YTNj
OWRkM2U0NGNjNy4uMzgxZDIwZTgwM2QzNWQ3ZmQ4NzQ5MTk4OGI0YzE4YTE4NGNmZGNhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9i
amVjdFN0b3JlQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZv
aWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmtleURlbGV0ZWQoY29uc3QgSURCS2V5RGF0YSYg
a2V5KQogICAgIG1faXRlcmF0b3IgPSBzdGQ6Om51bGxvcHQ7CiB9CiAKLXZvaWQgTWVtb3J5T2Jq
ZWN0U3RvcmVDdXJzb3I6OmtleUFkZGVkKHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBp
dGVyYXRvcikKK3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OmtleUFkZGVkKElEQktleURh
dGFTZXQ6Oml0ZXJhdG9yIGl0ZXJhdG9yKQogewogICAgIGlmIChtX2l0ZXJhdG9yKQogICAgICAg
ICByZXR1cm47CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6
OmtleUFkZGVkKHN0ZDo6c2V0PElEQktleURhdGE+OjppdGVyYXRvciBpdGVyYXRvcikKICAgICAg
ICAgbV9pdGVyYXRvciA9IGl0ZXJhdG9yOwogfQogCi12b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vy
c29yOjpzZXRGaXJzdEluUmVtYWluaW5nUmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mIHNldCkK
K3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OnNldEZpcnN0SW5SZW1haW5pbmdSYW5nZShJ
REJLZXlEYXRhU2V0JiBzZXQpCiB7CiAgICAgbV9pdGVyYXRvciA9IHN0ZDo6bnVsbG9wdDsKIApA
QCAtOTIsNyArOTIsNyBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpzZXRGaXJzdElu
UmVtYWluaW5nUmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mIHNldAogICAgIEFTU0VSVCghbV9p
dGVyYXRvciB8fCAqbV9pdGVyYXRvciAhPSBzZXQuZW5kKCkpOwogfQogCi12b2lkIE1lbW9yeU9i
amVjdFN0b3JlQ3Vyc29yOjpzZXRGb3J3YXJkSXRlcmF0b3JGcm9tUmVtYWluaW5nUmFuZ2Uoc3Rk
OjpzZXQ8SURCS2V5RGF0YT4mIHNldCkKK3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OnNl
dEZvcndhcmRJdGVyYXRvckZyb21SZW1haW5pbmdSYW5nZShJREJLZXlEYXRhU2V0JiBzZXQpCiB7
CiAgICAgaWYgKCFzZXQuc2l6ZSgpKSB7CiAgICAgICAgIG1faXRlcmF0b3IgPSBzdGQ6Om51bGxv
cHQ7CkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6c2V0
Rm9yd2FyZEl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKHN0ZDo6c2V0PElEQksKICAgICBtX2l0
ZXJhdG9yID0gbG93ZXN0OwogfQogCi12b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjpzZXRS
ZXZlcnNlSXRlcmF0b3JGcm9tUmVtYWluaW5nUmFuZ2Uoc3RkOjpzZXQ8SURCS2V5RGF0YT4mIHNl
dCkKK3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3I6OnNldFJldmVyc2VJdGVyYXRvckZyb21S
ZW1haW5pbmdSYW5nZShJREJLZXlEYXRhU2V0JiBzZXQpCiB7CiAgICAgaWYgKCFzZXQuc2l6ZSgp
KSB7CiAgICAgICAgIG1faXRlcmF0b3IgPSBzdGQ6Om51bGxvcHQ7CkBAIC0xOTgsNyArMTk4LDcg
QEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEoSURCR2V0UmVzdWx0
JiBkYXRhKQogICAgIH0KIH0KIAotdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6aW5jcmVt
ZW50Rm9yd2FyZEl0ZXJhdG9yKHN0ZDo6c2V0PElEQktleURhdGE+JiBzZXQsIGNvbnN0IElEQktl
eURhdGEmIGtleSwgdWludDMyX3QgY291bnQpCit2b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29y
OjppbmNyZW1lbnRGb3J3YXJkSXRlcmF0b3IoSURCS2V5RGF0YVNldCYgc2V0LCBjb25zdCBJREJL
ZXlEYXRhJiBrZXksIHVpbnQzMl90IGNvdW50KQogewogICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8g
cmUtZ3JhYiB0aGUgY3VycmVudCBpdGVyYXRvci4KICAgICAvLyBlLmcuIElmIHRoZSByZWNvcmQg
aXQgd2FzIHBvaW50ZWQgdG8gaGFkIGJlZW4gZGVsZXRlZC4KQEAgLTI1NCw3ICsyNTQsNyBAQCB2
b2lkIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRGb3J3YXJkSXRlcmF0b3Ioc3Rk
OjpzZXQ8SURCS2V5RGF0YT4mIHNldAogICAgIH0KIH0KIAotdm9pZCBNZW1vcnlPYmplY3RTdG9y
ZUN1cnNvcjo6aW5jcmVtZW50UmV2ZXJzZUl0ZXJhdG9yKHN0ZDo6c2V0PElEQktleURhdGE+JiBz
ZXQsIGNvbnN0IElEQktleURhdGEmIGtleSwgdWludDMyX3QgY291bnQpCit2b2lkIE1lbW9yeU9i
amVjdFN0b3JlQ3Vyc29yOjppbmNyZW1lbnRSZXZlcnNlSXRlcmF0b3IoSURCS2V5RGF0YVNldCYg
c2V0LCBjb25zdCBJREJLZXlEYXRhJiBrZXksIHVpbnQzMl90IGNvdW50KQogewogICAgIC8vIFdl
IG1pZ2h0IG5lZWQgdG8gcmUtZ3JhYiB0aGUgY3VycmVudCBpdGVyYXRvci4KICAgICAvLyBlLmcu
IElmIHRoZSByZWNvcmQgaXQgd2FzIHBvaW50ZWQgdG8gaGFkIGJlZW4gZGVsZXRlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmpl
Y3RTdG9yZUN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmgKaW5kZXggNjMzZjFlNjZjZmY3ZWM4NTVlOTA5ZTlm
MzIyYjBmMmZiZjA0YWU2ZC4uNDJkMTYyZjVhZjM1YzUzMTM5OTFiYzBjYjhiMzUwZDQzYTM0YTM5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeU9iamVjdFN0b3JlQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmgKQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCS2V5RGF0YS5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUN1cnNvci5oIgotI2luY2x1ZGUgPHNldD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsMTggKzQzLDE4IEBAIGNsYXNz
IE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yIDogcHVibGljIE1lbW9yeUN1cnNvciB7CiAKICAgICB2
b2lkIG9iamVjdFN0b3JlQ2xlYXJlZCgpOwogICAgIHZvaWQga2V5RGVsZXRlZChjb25zdCBJREJL
ZXlEYXRhJik7Ci0gICAgdm9pZCBrZXlBZGRlZChzdGQ6OnNldDxJREJLZXlEYXRhPjo6aXRlcmF0
b3IpOworICAgIHZvaWQga2V5QWRkZWQoSURCS2V5RGF0YVNldDo6aXRlcmF0b3IpOwogCiBwcml2
YXRlOgogICAgIHZvaWQgY3VycmVudERhdGEoSURCR2V0UmVzdWx0JikgZmluYWw7CiAgICAgdm9p
ZCBpdGVyYXRlKGNvbnN0IElEQktleURhdGEmLCBjb25zdCBJREJLZXlEYXRhJiBwcmltYXJ5S2V5
LCB1aW50MzJfdCBjb3VudCwgSURCR2V0UmVzdWx0JikgZmluYWw7CiAKLSAgICB2b2lkIHNldEZp
cnN0SW5SZW1haW5pbmdSYW5nZShzdGQ6OnNldDxJREJLZXlEYXRhPiYpOwotICAgIHZvaWQgc2V0
Rm9yd2FyZEl0ZXJhdG9yRnJvbVJlbWFpbmluZ1JhbmdlKHN0ZDo6c2V0PElEQktleURhdGE+Jik7
Ci0gICAgdm9pZCBzZXRSZXZlcnNlSXRlcmF0b3JGcm9tUmVtYWluaW5nUmFuZ2Uoc3RkOjpzZXQ8
SURCS2V5RGF0YT4mKTsKKyAgICB2b2lkIHNldEZpcnN0SW5SZW1haW5pbmdSYW5nZShJREJLZXlE
YXRhU2V0Jik7CisgICAgdm9pZCBzZXRGb3J3YXJkSXRlcmF0b3JGcm9tUmVtYWluaW5nUmFuZ2Uo
SURCS2V5RGF0YVNldCYpOworICAgIHZvaWQgc2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbVJlbWFpbmlu
Z1JhbmdlKElEQktleURhdGFTZXQmKTsKIAotICAgIHZvaWQgaW5jcmVtZW50Rm9yd2FyZEl0ZXJh
dG9yKHN0ZDo6c2V0PElEQktleURhdGE+JiwgY29uc3QgSURCS2V5RGF0YSYsIHVpbnQzMl90IGNv
dW50KTsKLSAgICB2b2lkIGluY3JlbWVudFJldmVyc2VJdGVyYXRvcihzdGQ6OnNldDxJREJLZXlE
YXRhPiYsIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCBjb3VudCk7CisgICAgdm9pZCBpbmNy
ZW1lbnRGb3J3YXJkSXRlcmF0b3IoSURCS2V5RGF0YVNldCYsIGNvbnN0IElEQktleURhdGEmLCB1
aW50MzJfdCBjb3VudCk7CisgICAgdm9pZCBpbmNyZW1lbnRSZXZlcnNlSXRlcmF0b3IoSURCS2V5
RGF0YVNldCYsIGNvbnN0IElEQktleURhdGEmLCB1aW50MzJfdCBjb3VudCk7CiAKICAgICBib29s
IGhhc1ZhbGlkUG9zaXRpb24oKSBjb25zdDsKIApAQCAtNjMsNyArNjIsNyBAQCBjbGFzcyBNZW1v
cnlPYmplY3RTdG9yZUN1cnNvciA6IHB1YmxpYyBNZW1vcnlDdXJzb3IgewogCiAgICAgSURCS2V5
UmFuZ2VEYXRhIG1fcmVtYWluaW5nUmFuZ2U7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6c2V0
PElEQktleURhdGE+OjppdGVyYXRvcj4gbV9pdGVyYXRvcjsKKyAgICBzdGQ6Om9wdGlvbmFsPElE
QktleURhdGFTZXQ6Oml0ZXJhdG9yPiBtX2l0ZXJhdG9yOwogCiAgICAgSURCS2V5RGF0YSBtX2N1
cnJlbnRQb3NpdGlvbktleTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NhbXBsZU1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9TYW1wbGVNYXAuaAppbmRleCA2Mzk3OTdhMmIxN2Q2MDVkNTYwNGZlODk3OWM2YjhjOWRi
NTBlMDQ4Li5kN2NlMDNmZDIyYmNkMzU5MWJkOWVjZDI4NmU5MGNhY2Y3Nzg1ODJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKQEAgLTM5LDcg
KzM5LDcgQEAgY2xhc3MgU2FtcGxlTWFwOwogY2xhc3MgUHJlc2VudGF0aW9uT3JkZXJTYW1wbGVN
YXAgewogICAgIGZyaWVuZCBjbGFzcyBTYW1wbGVNYXA7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBz
dGQ6Om1hcDxNZWRpYVRpbWUsIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1hcFR5cGU7CisgICAgdXNp
bmcgTWFwVHlwZSA9IHN0ZDo6bWFwPE1lZGlhVGltZSwgUmVmUHRyPE1lZGlhU2FtcGxlPiwgc3Rk
OjpsZXNzPE1lZGlhVGltZT4sIEZhc3RBbGxvY2F0b3I8c3RkOjpwYWlyPGNvbnN0IE1lZGlhVGlt
ZSwgUmVmUHRyPE1lZGlhU2FtcGxlPj4+PjsKICAgICB0eXBlZGVmIE1hcFR5cGU6Oml0ZXJhdG9y
IGl0ZXJhdG9yOwogICAgIHR5cGVkZWYgTWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRl
cmF0b3I7CiAgICAgdHlwZWRlZiBNYXBUeXBlOjpyZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VfaXRl
cmF0b3I7CkBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIERlY29kZU9yZGVyU2FtcGxlTWFwIHsKICAg
ICBmcmllbmQgY2xhc3MgU2FtcGxlTWFwOwogcHVibGljOgogICAgIHR5cGVkZWYgc3RkOjpwYWly
PE1lZGlhVGltZSwgTWVkaWFUaW1lPiBLZXlUeXBlOwotICAgIHR5cGVkZWYgc3RkOjptYXA8S2V5
VHlwZSwgUmVmUHRyPE1lZGlhU2FtcGxlPj4gTWFwVHlwZTsKKyAgICB1c2luZyBNYXBUeXBlID0g
c3RkOjptYXA8S2V5VHlwZSwgUmVmUHRyPE1lZGlhU2FtcGxlPiwgc3RkOjpsZXNzPEtleVR5cGU+
LCBGYXN0QWxsb2NhdG9yPHN0ZDo6cGFpcjxjb25zdCBLZXlUeXBlLCBSZWZQdHI8TWVkaWFTYW1w
bGU+Pj4+OwogICAgIHR5cGVkZWYgTWFwVHlwZTo6aXRlcmF0b3IgaXRlcmF0b3I7CiAgICAgdHlw
ZWRlZiBNYXBUeXBlOjpjb25zdF9pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKICAgICB0eXBlZGVm
IE1hcFR5cGU6OnJldmVyc2VfaXRlcmF0b3IgcmV2ZXJzZV9pdGVyYXRvcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmNwcAppbmRleCA5MDIxN2E4MTM4ODdk
NzFjN2FlYzI0MTY5ZTlmZTZjZjQ3YWVhNzIxLi5lZDU0OWNmNDAzMTU2N2YzNTM5NWI2MTU1N2U0
ZTBiNjA4YTVhY2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRU
ZXN0VHJpZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRy
aWdnZXIuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpk
ZWZlclRlc3RzRm9yUmVhc29uKFNjcm9sbGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlmCiAgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV90ZXN0VHJpZ2dlck11dGV4KTsKICAgICBhdXRv
IGl0ID0gbV9kZWZlclRlc3RUcmlnZ2VyUmVhc29ucy5maW5kKGlkZW50aWZpZXIpOwogICAgIGlm
IChpdCA9PSBtX2RlZmVyVGVzdFRyaWdnZXJSZWFzb25zLmVuZCgpKQotICAgICAgICBpdCA9IG1f
ZGVmZXJUZXN0VHJpZ2dlclJlYXNvbnMuYWRkKGlkZW50aWZpZXIsIHN0ZDo6c2V0PERlZmVyVGVz
dFRyaWdnZXJSZWFzb24+KCkpLml0ZXJhdG9yOworICAgICAgICBpdCA9IG1fZGVmZXJUZXN0VHJp
Z2dlclJlYXNvbnMuYWRkKGlkZW50aWZpZXIsIERlZmVyVGVzdFRyaWdnZXJSZWFzb25TZXQoKSku
aXRlcmF0b3I7CiAgICAgCiAgICAgTE9HKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMsICIgICAgICAo
PSkgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpkZWZlclRlc3RzRm9yUmVhc29uOiBpZD0lcCwgcmVh
c29uPSVkIiwgaWRlbnRpZmllciwgcmVhc29uKTsKICAgICBpdC0+dmFsdWUuaW5zZXJ0KHJlYXNv
bik7CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpyZW1vdmVU
ZXN0RGVmZXJyYWxGb3JSZWFzb24oU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyCiB9CiAKICNpZiAh
TE9HX0RJU0FCTEVECi1zdGF0aWMgdm9pZCBkdW1wU3RhdGUoV1RGOjpIYXNoTWFwPFdoZWVsRXZl
bnRUZXN0VHJpZ2dlcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBzdGQ6OnNldDxXaGVlbEV2
ZW50VGVzdFRyaWdnZXI6OkRlZmVyVGVzdFRyaWdnZXJSZWFzb24+PiByZWFzb25zKQorc3RhdGlj
IHZvaWQgZHVtcFN0YXRlKFdURjo6SGFzaE1hcDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpEZWZlclRlc3RUcmln
Z2VyUmVhc29uU2V0PiByZWFzb25zKQogewogICAgIExPRyhXaGVlbEV2ZW50VGVzdFRyaWdnZXJz
LCAiICAgV2hlZWxFdmVudFRlc3RUcmlnZ2VyOjpkdW1wU3RhdGU6Iik7CiAgICAgZm9yIChjb25z
dCBhdXRvJiBzY3JvbGxSZWdpb24gOiByZWFzb25zKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9X
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaAppbmRleCA1MGVkMzNjYWNlYTkyNzQ0MDg2YjFkN2NiMzAz
ODE4OGVkNTc1NzI4Li5kMTA3OWQ0Yjc1ZmM0OTYzYTg4ZTY5ODc0NWQ1ODhhZmEzZDFmNzFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgKQEAgLTUyLDYg
KzUyLDcgQEAgY2xhc3MgV2hlZWxFdmVudFRlc3RUcmlnZ2VyIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFdoZWVsRXZlbnRUZXN0VHJpZ2dlcj4KICAgICAgICAgU2Nyb2xsaW5nVGhyZWFk
U3luY05lZWRlZCwKICAgICAgICAgQ29udGVudFNjcm9sbEluUHJvZ3Jlc3MKICAgICB9OworICAg
IHVzaW5nIERlZmVyVGVzdFRyaWdnZXJSZWFzb25TZXQgPSBzdGQ6OnNldDxEZWZlclRlc3RUcmln
Z2VyUmVhc29uLCBzdGQ6Omxlc3M8RGVmZXJUZXN0VHJpZ2dlclJlYXNvbj4sIEZhc3RBbGxvY2F0
b3I8RGVmZXJUZXN0VHJpZ2dlclJlYXNvbj4+OwogICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogU2Ny
b2xsYWJsZUFyZWFJZGVudGlmaWVyOwogICAgIHZvaWQgV0VCQ09SRV9FWFBPUlQgZGVmZXJUZXN0
c0ZvclJlYXNvbihTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIERlZmVyVGVzdFRyaWdnZXJSZWFz
b24pOwogICAgIHZvaWQgV0VCQ09SRV9FWFBPUlQgcmVtb3ZlVGVzdERlZmVycmFsRm9yUmVhc29u
KFNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgRGVmZXJUZXN0VHJpZ2dlclJlYXNvbik7CkBAIC02
MSw3ICs2Miw3IEBAIGNsYXNzIFdoZWVsRXZlbnRUZXN0VHJpZ2dlciA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxXaGVlbEV2ZW50VGVzdFRyaWdnZXI+CiAgICAgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+IG1fdGVzdE5vdGlmaWNhdGlvbkNhbGxiYWNrOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdo
ZWVsRXZlbnRUZXN0VHJpZ2dlcj4gbV90ZXN0VHJpZ2dlclRpbWVyOwogICAgIG11dGFibGUgTG9j
ayBtX3Rlc3RUcmlnZ2VyTXV0ZXg7Ci0gICAgV1RGOjpIYXNoTWFwPFNjcm9sbGFibGVBcmVhSWRl
bnRpZmllciwgc3RkOjpzZXQ8RGVmZXJUZXN0VHJpZ2dlclJlYXNvbj4+IG1fZGVmZXJUZXN0VHJp
Z2dlclJlYXNvbnM7CisgICAgV1RGOjpIYXNoTWFwPFNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwg
RGVmZXJUZXN0VHJpZ2dlclJlYXNvblNldD4gbV9kZWZlclRlc3RUcmlnZ2VyUmVhc29uczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAppbmRleCAx
ZDFlYTM5YzgxMDcwOGQ1YmM1OTQ2NDAxMGZiY2VmNDdiYjVmY2M3Li45YmMzN2IzZTZjMGQzY2Ji
OWE2NzUzZWJiZGExMmM1MGViNmZmMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC00
OSwxMyArNDksMTMgQEAgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6On5WaWRlb1RleHR1cmVDb3BpZXJD
VigpCiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECi0KK3VzaW5nIFN0cmluZ01hcCA9IHN0ZDo6bWFw
PHVpbnQzMl90LCBjb25zdCBjaGFyKiwgc3RkOjpsZXNzPHVpbnQzMl90PiwgRmFzdEFsbG9jYXRv
cjxzdGQ6OnBhaXI8Y29uc3QgdWludDMyX3QsIGNvbnN0IGNoYXIqPj4+OwogI2RlZmluZSBTVFJJ
TkdJRllfUEFJUihlKSBlLCAjZQotc3RhdGljIHN0ZDo6bWFwPHVpbnQzMl90LCBjb25zdCBjaGFy
Kj4mIGVudW1Ub1N0cmluZ01hcCgpCitzdGF0aWMgU3RyaW5nTWFwJiBlbnVtVG9TdHJpbmdNYXAo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om1hcDx1aW50MzJfdCwgY29uc3Qg
Y2hhcio+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZ01hcD4gbWFwOwog
ICAgIGlmIChtYXAuZ2V0KCkuZW1wdHkoKSkgewotICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwg
Y29uc3QgY2hhcio+IHN0cmluZ01hcDsKKyAgICAgICAgU3RyaW5nTWFwIHN0cmluZ01hcDsKICAg
ICAgICAgbWFwLmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfUkdCKSk7CiAgICAgICAg
IG1hcC5nZXQoKS5lbXBsYWNlKFNUUklOR0lGWV9QQUlSKEdMX1JHQkEpKTsKICAgICAgICAgbWFw
LmdldCgpLmVtcGxhY2UoU1RSSU5HSUZZX1BBSVIoR0xfTFVNSU5BTkNFX0FMUEhBKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaAppbmRleCBkZmE3NzkzNTdhMjA2YTBh
Yjk0ZjJiYjMzNWFlYTY4NDZlNTNiMzE5Li5kNDk1N2I3N2Y3N2EwNzg3M2IwZWZlNDJhNzVkM2U5
OWY5YmRiN2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVy
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKQEAg
LTU2LDcgKzU2LDcgQEAgY2xhc3MgT3JkZXJJdGVyYXRvciB7CiAgICAgUmVuZGVyQm94JiBtX2Nv
bnRhaW5lckJveDsKICAgICBSZW5kZXJCb3gqIG1fY3VycmVudENoaWxkOwogCi0gICAgdHlwZWRl
ZiBzdGQ6OnNldDxpbnQ+IE9yZGVyVmFsdWVzOworICAgIHVzaW5nIE9yZGVyVmFsdWVzID0gc3Rk
OjpzZXQ8aW50LCBzdGQ6Omxlc3M8aW50PiwgRmFzdEFsbG9jYXRvcjxpbnQ+PjsKICAgICBPcmRl
clZhbHVlcyBtX29yZGVyVmFsdWVzOwogICAgIE9yZGVyVmFsdWVzOjpjb25zdF9pdGVyYXRvciBt
X29yZGVyVmFsdWVzSXRlcmF0b3I7CiAgICAgYm9vbCBtX2lzUmVzZXQgeyBmYWxzZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315217</attachid>
            <date>2017-07-12 02:09:24 -0700</date>
            <delta_ts>2017-07-12 02:09:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174366-20170712180922.patch</filename>
            <type>text/plain</type>
            <size>1494</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5Mzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUzNzU1OGNhNmZjZTAyZmU0YTQ2ZTBi
YzhhODg0ODI3N2JiYmQ5MzguLmViNzVmYjk0ZWQwOTIyYzUwMzczYjViN2I4M2Q0ZmE1YmI2ZTRi
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDctMTIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIEZhc3RBbGxvY2F0b3IgaW4gU1RMIGNv
bnRhaW5lcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NDM2NgorCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuaDoKKyAgICAgICAgKFdURjo6b3Bl
cmF0b3I9PSk6CisgICAgICAgIChXVEY6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV1RGOjpGYXN0
QWxsb2NhdG9yOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6RmFzdEFsbG9j
YXRvcjo6b3BlcmF0b3IhPSk6IERlbGV0ZWQuCisKIDIwMTctMDctMTEgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gRW5hYmxl
IEZJTEVfTE9DSyBhbmQgaW1wbGVtZW50IGxvY2tGaWxlIGFuZCB1bmxvY2tGaWxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmggYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFs
bG9jLmgKaW5kZXggZDExMGZhMjM1YzBmYWRkZDA3MzM4NDhkYTRmZDE5MjQ5MzE3NTY2Ny4uZGYy
NzU1YjEzODhmNWZlNmJhMDllMmNiYTdmOGYwZGMxOTRiMGFhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvRmFzdE1hbGxvYy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaApA
QCAtMTI0LDExICsxMjQsMTEgQEAgY2xhc3MgRmFzdEFsbG9jYXRvciB7CiAgICAgewogICAgICAg
ICBmYXN0RnJlZShwb2ludGVyKTsKICAgICB9Cit9OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZhc3RBbGxvY2F0b3I8VT4mKSB7IHJldHVybiB0cnVl
OyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBib29sIG9wZXJhdG9yPT0oY29u
c3QgRmFzdEFsbG9jYXRvcjxUPiYsIGNvbnN0IEZhc3RBbGxvY2F0b3I8VT4mKSB7IHJldHVybiB0
cnVlOyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBib29sIG9wZXJhdG9yIT0o
Y29uc3QgRmFzdEFsbG9jYXRvcjxUPiYsIGNvbnN0IEZhc3RBbGxvY2F0b3I8VT4mKSB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBvcGVyYXRvciE9KGNv
bnN0IEZhc3RBbGxvY2F0b3I8VT4mKSB7IHJldHVybiBmYWxzZTsgfQotfTsKIAogfSAvLyBuYW1l
c3BhY2UgV1RGCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>