<?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>151627</bug_id>
          
          <creation_ts>2015-11-26 14:29:17 -0800</creation_ts>
          <short_desc>Modern IDB: Class-ify IDBGetResult making it impossible to get the data members wrong</short_desc>
          <delta_ts>2015-11-27 09:51:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</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>
          
          <blocked>149117</blocked>
    
    <blocked>151630</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1144542</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-26 14:29:17 -0800</bug_when>
    <thetext>Modern IDB: Class-ify IDBGetResult making it impossible to get the data members wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144555</commentid>
    <comment_count>1</comment_count>
      <attachid>266193</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-26 21:41:20 -0800</bug_when>
    <thetext>Created attachment 266193
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144556</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-26 22:02:26 -0800</bug_when>
    <thetext>Hmmm... makes sense that the IDL build failure would come up, though I dunno why I didn&apos;t see it locally. Exploring...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144557</commentid>
    <comment_count>3</comment_count>
      <attachid>266194</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-26 22:06:49 -0800</bug_when>
    <thetext>Created attachment 266194
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144598</commentid>
    <comment_count>4</comment_count>
      <attachid>266194</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-27 09:51:05 -0800</bug_when>
    <thetext>Comment on attachment 266194
Patch v2

Clearing flags on attachment: 266194

Committed r192783: &lt;http://trac.webkit.org/changeset/192783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144599</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-27 09:51:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266193</attachid>
            <date>2015-11-26 21:41:20 -0800</date>
            <delta_ts>2015-11-26 22:06:49 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27272</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTdhOTZkYS4uNTNhY2Y0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg1Myw2ICs4NTMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VNZXRhZGF0YS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJFdmVudERpc3BhdGNoZXIuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5jcHAKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCSW5kZXguY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNw
cAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Vk
Y2E5MS4uZjhhNWI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTExLTI2ICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4gSURCOiBD
bGFzcy1pZnkgSURCR2V0UmVzdWx0IG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGdldCB0aGUgZGF0
YSBtZW1iZXJzIHdyb25nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxNjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBjaGFuZ2UgaW4gYmVoYXZpb3IpLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJHZXRSZXN1bHQ6OmRhdGFGcm9tQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkdldFJlc3VsdDo6SURCR2V0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3Vs
dDo6dmFsdWVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0OjprZXlEYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6cHJpbWFyeUtleURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0OjprZXlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkdldFJlc3VsdDo6c2V0VmFsdWVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0
UmVzdWx0OjpzZXRLZXlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6c2V0
UHJpbWFyeUtleURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0OjpzZXRLZXlQ
YXRoKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6ZGF0YUZyb21CdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0Ojppc29sYXRlZENvcHkpOiBE
ZWxldGVkLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkN1cnNvcklt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDdXJzb3I6OnNldEdldFJl
c3VsdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkN1cnNvckltcGwu
aDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbklt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6ZGlk
R2V0UmVjb3JkT25TZXJ2ZXIpOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5
L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R2V0T3BlcmF0aW9uOjpwZXJmb3JtKToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJCYWNraW5nU3RvcmUuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlDdXJzb3IuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlJbmRleEN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1l
bW9yeUluZGV4Q3Vyc29yOjpjdXJyZW50RGF0YSk6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEpOgorCisg
ICAgICAgICogcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaDoKKwogMjAxNS0xMS0yMyAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhhcmRlbmluZyBhZ2Fp
bnN0IENTU1NlbGVjdG9yIGRvdWJsZSBmcmVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMmRlNDBlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJHZXRSZXN1bHQuaCIKKworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
SURCR2V0UmVzdWx0OjpkYXRhRnJvbUJ1ZmZlcihTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK3sKKyAg
ICBWZWN0b3I8dWludDhfdD4gZGF0YShidWZmZXIuc2l6ZSgpKTsKKyAgICBtZW1jcHkoZGF0YS5k
YXRhKCksIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOworCisgICAgbV92YWx1ZUJ1ZmZl
ciA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjphZG9wdFZlY3RvcihkYXRhKTsKK30KKworSURCR2V0
UmVzdWx0IElEQkdldFJlc3VsdDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICBJREJHZXRS
ZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdC5tX3ZhbHVlQnVmZmVyID0gbV92YWx1ZUJ1ZmZlcjsK
KyAgICByZXN1bHQubV9rZXlEYXRhID0gbV9rZXlEYXRhLmlzb2xhdGVkQ29weSgpOworICAgIHJl
c3VsdC5tX3ByaW1hcnlLZXlEYXRhID0gbV9wcmltYXJ5S2V5RGF0YS5pc29sYXRlZENvcHkoKTsK
KyAgICByZXN1bHQubV9rZXlQYXRoID0gbV9rZXlQYXRoLmlzb2xhdGVkQ29weSgpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJHZXRSZXN1bHQuaAppbmRleCAzNzg3MTc1Li5hMDNjNjBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaApAQCAtMzYsNyArMzYs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBJREJHZXRSZXN1bHQgeworY2xh
c3MgSURCR2V0UmVzdWx0IHsKK3B1YmxpYzoKICAgICBJREJHZXRSZXN1bHQoKQogICAgIHsKICAg
ICB9CkBAIC00OCw1MCArNDksNjMgQEAgc3RydWN0IElEQkdldFJlc3VsdCB7CiAgICAgfQogCiAg
ICAgSURCR2V0UmVzdWx0KGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiBidWZmZXIpCi0gICAg
ICAgIDogdmFsdWVCdWZmZXIoYnVmZmVyKQorICAgICAgICA6IG1fdmFsdWVCdWZmZXIoYnVmZmVy
KQogICAgIHsKICAgICB9CiAKICAgICBJREJHZXRSZXN1bHQoUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSkKLSAgICAgICAgOiBrZXlEYXRhKGtleS5nZXQoKSkKKyAgICAgICAgOiBtX2tleURhdGEoa2V5
LmdldCgpKQogICAgIHsKICAgICB9CiAKICAgICBJREJHZXRSZXN1bHQoY29uc3QgSURCS2V5RGF0
YSYga2V5RGF0YSkKLSAgICAgICAgOiBrZXlEYXRhKGtleURhdGEpCisgICAgICAgIDogbV9rZXlE
YXRhKGtleURhdGEpCiAgICAgewogICAgIH0KIAogICAgIElEQkdldFJlc3VsdChQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBjb25zdCBJREJL
ZXlQYXRoJiBwYXRoKQotICAgICAgICA6IGtleURhdGEoa2V5LmdldCgpKQotICAgICAgICAsIGtl
eVBhdGgocGF0aCkKKyAgICAgICAgOiBtX2tleURhdGEoa2V5LmdldCgpKQorICAgICAgICAsIG1f
a2V5UGF0aChwYXRoKQogICAgIHsKICAgICAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgICAgIGRh
dGFGcm9tQnVmZmVyKCpidWZmZXIpOwogICAgIH0KIAotICAgIHZvaWQgZGF0YUZyb21CdWZmZXIo
U2hhcmVkQnVmZmVyJiBidWZmZXIpCisgICAgSURCR2V0UmVzdWx0KGNvbnN0IElEQktleURhdGEm
IGtleURhdGEsIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXlEYXRhKQorICAgICAgICA6IG1f
a2V5RGF0YShrZXlEYXRhKQorICAgICAgICAsIG1fcHJpbWFyeUtleURhdGEocHJpbWFyeUtleURh
dGEpCiAgICAgewotICAgICAgICBWZWN0b3I8dWludDhfdD4gZGF0YShidWZmZXIuc2l6ZSgpKTsK
LSAgICAgICAgbWVtY3B5KGRhdGEuZGF0YSgpLCBidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgp
KTsKLQotICAgICAgICB2YWx1ZUJ1ZmZlciA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjphZG9wdFZl
Y3RvcihkYXRhKTsKICAgICB9CiAKLSAgICBJREJHZXRSZXN1bHQgaXNvbGF0ZWRDb3B5KCkgY29u
c3QKKyAgICBJREJHZXRSZXN1bHQoY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgSURC
S2V5RGF0YSYgcHJpbWFyeUtleURhdGEsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1
ZUJ1ZmZlcikKKyAgICAgICAgOiBtX3ZhbHVlQnVmZmVyKHZhbHVlQnVmZmVyKQorICAgICAgICAs
IG1fa2V5RGF0YShrZXlEYXRhKQorICAgICAgICAsIG1fcHJpbWFyeUtleURhdGEocHJpbWFyeUtl
eURhdGEpCiAgICAgewotICAgICAgICBJREJHZXRSZXN1bHQgcmVzdWx0OwotICAgICAgICByZXN1
bHQudmFsdWVCdWZmZXIgPSB2YWx1ZUJ1ZmZlcjsKLSAgICAgICAgcmVzdWx0LmtleURhdGEgPSBr
ZXlEYXRhLmlzb2xhdGVkQ29weSgpOwotICAgICAgICByZXN1bHQucHJpbWFyeUtleURhdGEgPSBw
cmltYXJ5S2V5RGF0YS5pc29sYXRlZENvcHkoKTsKLSAgICAgICAgcmVzdWx0LmtleVBhdGggPSBr
ZXlQYXRoLmlzb2xhdGVkQ29weSgpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAot
ICAgIFRocmVhZFNhZmVEYXRhQnVmZmVyIHZhbHVlQnVmZmVyOwotICAgIElEQktleURhdGEga2V5
RGF0YTsKLSAgICBJREJLZXlEYXRhIHByaW1hcnlLZXlEYXRhOwotICAgIElEQktleVBhdGgga2V5
UGF0aDsKKyAgICBJREJHZXRSZXN1bHQgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisKKyAgICBjb25z
dCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlQnVmZmVyOyB9CisgICAgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fa2V5RGF0YTsgfQorICAgIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXlEYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmltYXJ5S2V5RGF0YTsgfQorICAgIGNvbnN0IElEQktleVBhdGgm
IGtleVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2tleVBhdGg7IH0KKworICAgIC8vIEZJWE1FOiBX
aGVuIHJlbW92aW5nIExlZ2FjeUlEQiwgcmVtb3ZlIHRoZXNlIHNldHRlcnMuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDg1NAorCisgICAgdm9pZCBz
ZXRWYWx1ZUJ1ZmZlcihjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVCdWZmZXIpIHsg
bV92YWx1ZUJ1ZmZlciA9IHZhbHVlQnVmZmVyOyB9CisgICAgdm9pZCBzZXRLZXlEYXRhKGNvbnN0
IElEQktleURhdGEmIGtleURhdGEpIHsgbV9rZXlEYXRhID0ga2V5RGF0YTsgfQorICAgIHZvaWQg
c2V0UHJpbWFyeUtleURhdGEoY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSkgeyBtX3ByaW1hcnlL
ZXlEYXRhID0ga2V5RGF0YTsgfQorICAgIHZvaWQgc2V0S2V5UGF0aChjb25zdCBJREJLZXlQYXRo
JiBrZXlQYXRoKSB7IG1fa2V5UGF0aCA9IGtleVBhdGg7IH0KKworcHJpdmF0ZToKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRhdGFGcm9tQnVmZmVyKFNoYXJlZEJ1ZmZlciYpOworCisgICAgVGhy
ZWFkU2FmZURhdGFCdWZmZXIgbV92YWx1ZUJ1ZmZlcjsKKyAgICBJREJLZXlEYXRhIG1fa2V5RGF0
YTsKKyAgICBJREJLZXlEYXRhIG1fcHJpbWFyeUtleURhdGE7CisgICAgSURCS2V5UGF0aCBtX2tl
eVBhdGg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5jcHAKaW5k
ZXggZmFhNjNhZGMuLjRjNWU3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDdXJzb3JJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5jcHAKQEAgLTI4MiwyMCArMjgy
LDIwIEBAIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAKIHZvaWQgSURCQ3Vyc29yOjpzZXRHZXRS
ZXN1bHQoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCR2V0UmVzdWx0JiBnZXRSZXN1bHQp
CiB7Ci0gICAgTE9HKEluZGV4ZWREQiwgIklEQkN1cnNvcjo6c2V0R2V0UmVzdWx0IC0gY3VycmVu
dCBrZXkgJXMiLCBnZXRSZXN1bHQua2V5RGF0YS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkN1cnNvcjo6c2V0R2V0UmVzdWx0IC0gY3VycmVu
dCBrZXkgJXMiLCBnZXRSZXN1bHQua2V5RGF0YSgpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKIAogICAgIGF1dG8qIGNvbnRleHQgPSByZXF1ZXN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGVwcmVj
YXRlZEN1cnJlbnRLZXkgPSBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0LCBnZXRSZXN1
bHQua2V5RGF0YSk7Ci0gICAgbV9kZXByZWNhdGVkQ3VycmVudFByaW1hcnlLZXkgPSBpZGJLZXlE
YXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0LCBnZXRSZXN1bHQucHJpbWFyeUtleURhdGEpOwotICAg
IG1fY3VycmVudFByaW1hcnlLZXlEYXRhID0gZ2V0UmVzdWx0LnByaW1hcnlLZXlEYXRhOworICAg
IG1fZGVwcmVjYXRlZEN1cnJlbnRLZXkgPSBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0
LCBnZXRSZXN1bHQua2V5RGF0YSgpKTsKKyAgICBtX2RlcHJlY2F0ZWRDdXJyZW50UHJpbWFyeUtl
eSA9IGlkYktleURhdGFUb1NjcmlwdFZhbHVlKGNvbnRleHQsIGdldFJlc3VsdC5wcmltYXJ5S2V5
RGF0YSgpKTsKKyAgICBtX2N1cnJlbnRQcmltYXJ5S2V5RGF0YSA9IGdldFJlc3VsdC5wcmltYXJ5
S2V5RGF0YSgpOwogCiAgICAgaWYgKGlzS2V5Q3Vyc29yKCkpCiAgICAgICAgIG1fZGVwcmVjYXRl
ZEN1cnJlbnRWYWx1ZSA9IHsgfTsKICAgICBlbHNlCi0gICAgICAgIG1fZGVwcmVjYXRlZEN1cnJl
bnRWYWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVEYXRhKCpjb250ZXh0LCBnZXRSZXN1bHQudmFs
dWVCdWZmZXIpOworICAgICAgICBtX2RlcHJlY2F0ZWRDdXJyZW50VmFsdWUgPSBkZXNlcmlhbGl6
ZUlEQlZhbHVlRGF0YSgqY29udGV4dCwgZ2V0UmVzdWx0LnZhbHVlQnVmZmVyKCkpOwogCiAgICAg
bV9nb3RWYWx1ZSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkN1cnNvckltcGwuaAppbmRleCBmY2JlM2Q3Li45MzQ4MzJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q3Vyc29ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDdXJzb3JJbXBsLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1zdHJ1Y3QgSURCR2V0UmVzdWx0OworY2xhc3MgSURCR2V0UmVzdWx0OwogCiBuYW1lc3Bh
Y2UgSURCQ2xpZW50IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcAppbmRleCBiMmU5ZjUw
Li5lNDA4NWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcApAQCAtNjAyLDEzICs2MDIs
MTMgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkR2V0UmVjb3JkT25TZXJ2ZXIoSURCUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWx0RGEKICAgICBjb25zdCBJREJHZXRSZXN1bHQmIHJl
c3VsdCA9IHJlc3VsdERhdGEuZ2V0UmVzdWx0KCk7CiAKICAgICBpZiAocmVxdWVzdC5zb3VyY2VJ
bmRleElkZW50aWZpZXIoKSAmJiByZXF1ZXN0LnJlcXVlc3RlZEluZGV4UmVjb3JkVHlwZSgpID09
IEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlOjpLZXkpIHsKLSAgICAgICAgaWYgKCFyZXN1bHQu
a2V5RGF0YS5pc051bGwoKSkKLSAgICAgICAgICAgIHJlcXVlc3Quc2V0UmVzdWx0KCZyZXN1bHQu
a2V5RGF0YSk7CisgICAgICAgIGlmICghcmVzdWx0LmtleURhdGEoKS5pc051bGwoKSkKKyAgICAg
ICAgICAgIHJlcXVlc3Quc2V0UmVzdWx0KCZyZXN1bHQua2V5RGF0YSgpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgcmVxdWVzdC5zZXRSZXN1bHRUb1VuZGVmaW5lZCgpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGlmIChyZXN1bHREYXRhLmdldFJlc3VsdCgpLnZhbHVlQnVmZmVyLmRhdGEo
KSkKLSAgICAgICAgICAgIHJlcXVlc3Quc2V0UmVzdWx0VG9TdHJ1Y3R1cmVkQ2xvbmUocmVzdWx0
RGF0YS5nZXRSZXN1bHQoKS52YWx1ZUJ1ZmZlcik7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmdl
dFJlc3VsdCgpLnZhbHVlQnVmZmVyKCkuZGF0YSgpKQorICAgICAgICAgICAgcmVxdWVzdC5zZXRS
ZXN1bHRUb1N0cnVjdHVyZWRDbG9uZShyZXN1bHREYXRhLmdldFJlc3VsdCgpLnZhbHVlQnVmZmVy
KCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXF1ZXN0LnNldFJlc3VsdFRvVW5kZWZp
bmVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGVnYWN5L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJh
dGlvbnMuY3BwCmluZGV4IDA3NzdkN2QuLmI5MjlmYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0lE
QlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCkBAIC0xMDAsMTUgKzEwMCwxNSBAQCB2
b2lkIEdldE9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bkNhbGxiYWNrKQogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICBtX2NhbGxiYWNrcy0+
b25FcnJvcihlcnJvcik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKCFyZXN1bHQu
dmFsdWVCdWZmZXIuZGF0YSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5rZXlEYXRh
LmlzTnVsbCgpKQorICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsdWVCdWZmZXIoKS5kYXRhKCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmtleURhdGEoKS5pc051bGwoKSkKICAgICAg
ICAgICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcygpOwogICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhyZXN1bHQu
a2V5RGF0YS5tYXliZUNyZWF0ZUlEQktleSgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhyZXN1bHQua2V5RGF0YSgpLm1heWJlQ3JlYXRlSURCS2V5KCkpOwog
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhdXRvIHZhbHVlQnVmZmVyID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGUocmVzdWx0LnZhbHVlQnVmZmVyLmRhdGEoKS0+ZGF0YSgpLCBy
ZXN1bHQudmFsdWVCdWZmZXIuZGF0YSgpLT5zaXplKCkpOwotICAgICAgICAgICAgICAgIGlmICgh
cmVzdWx0LmtleURhdGEuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fY2FsbGJhY2tz
LT5vblN1Y2Nlc3ModmFsdWVCdWZmZXIsIHJlc3VsdC5rZXlEYXRhLm1heWJlQ3JlYXRlSURCS2V5
KCksIHJlc3VsdC5rZXlQYXRoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHZhbHVlQnVmZmVyID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGUocmVzdWx0LnZhbHVlQnVmZmVyKCkuZGF0YSgpLT5kYXRhKCks
IHJlc3VsdC52YWx1ZUJ1ZmZlcigpLmRhdGEoKS0+c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIXJlc3VsdC5rZXlEYXRhKCkuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgICAgIG1fY2Fs
bGJhY2tzLT5vblN1Y2Nlc3ModmFsdWVCdWZmZXIsIHJlc3VsdC5rZXlEYXRhKCkubWF5YmVDcmVh
dGVJREJLZXkoKSwgcmVzdWx0LmtleVBhdGgoKSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHZhbHVlQnVmZmVyKTsKICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAppbmRleCBmZjZlYWE0Li4yZThkN2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2lu
Z1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkJhY2tpbmdTdG9yZS5oCkBAIC0zNCw2ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIElEQkN1cnNvckluZm87CitjbGFzcyBJREJHZXRSZXN1bHQ7CiBjbGFzcyBJREJJbmRl
eEluZm87CiBjbGFzcyBJREJLZXlEYXRhOwogY2xhc3MgSURCT2JqZWN0U3RvcmVJbmZvOwpAQCAt
NDEsNyArNDIsNiBAQCBjbGFzcyBJREJSZXNvdXJjZUlkZW50aWZpZXI7CiBjbGFzcyBJREJUcmFu
c2FjdGlvbkluZm87CiBjbGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKIAotc3RydWN0IElEQkdl
dFJlc3VsdDsKIHN0cnVjdCBJREJLZXlSYW5nZURhdGE7CiAKIG5hbWVzcGFjZSBJbmRleGVkREIg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUN1cnNvci5oCmluZGV4IGMzZTM2MjQuLmNkM2Y5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlDdXJzb3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5Q3Vyc29yLmgKQEAgLTMy
LDExICszMiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIElEQkdldFJlc3Vs
dDsKIGNsYXNzIElEQktleURhdGE7CiBjbGFzcyBJREJSZXNvdXJjZUlkZW50aWZpZXI7CiAKLXN0
cnVjdCBJREJHZXRSZXN1bHQ7Ci0KIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBNZW1v
cnlDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUluZGV4Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJbmRleEN1cnNvci5jcHAKaW5kZXggYjMxNDY0YS4uMjYxMDBh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUluZGV4Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SW5kZXhDdXJzb3IuY3BwCkBAIC02NSwxMiArNjUsMTAgQEAgTWVtb3J5
SW5kZXhDdXJzb3I6On5NZW1vcnlJbmRleEN1cnNvcigpCiAKIHZvaWQgTWVtb3J5SW5kZXhDdXJz
b3I6OmN1cnJlbnREYXRhKElEQkdldFJlc3VsdCYgZ2V0UmVzdWx0KQogewotICAgIGdldFJlc3Vs
dC5rZXlEYXRhID0gbV9jdXJyZW50S2V5OwotICAgIGdldFJlc3VsdC5wcmltYXJ5S2V5RGF0YSA9
IG1fY3VycmVudFByaW1hcnlLZXk7CiAgICAgaWYgKG1faW5mby5jdXJzb3JUeXBlKCkgPT0gSW5k
ZXhlZERCOjpDdXJzb3JUeXBlOjpLZXlPbmx5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBnZXRS
ZXN1bHQudmFsdWVCdWZmZXIgPSBtX2luZGV4Lm9iamVjdFN0b3JlKCkudmFsdWVGb3JLZXkobV9j
dXJyZW50UHJpbWFyeUtleSk7CisgICAgICAgIGdldFJlc3VsdCA9IHsgbV9jdXJyZW50S2V5LCBt
X2N1cnJlbnRQcmltYXJ5S2V5IH07CisgICAgZWxzZQorICAgICAgICBnZXRSZXN1bHQgPSB7IG1f
Y3VycmVudEtleSwgbV9jdXJyZW50UHJpbWFyeUtleSwgbV9pbmRleC5vYmplY3RTdG9yZSgpLnZh
bHVlRm9yS2V5KG1fY3VycmVudFByaW1hcnlLZXkpIH07CiB9CiAKIHZvaWQgTWVtb3J5SW5kZXhD
dXJzb3I6Oml0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYga2V5LCB1aW50MzJfdCBjb3VudCwgSURC
R2V0UmVzdWx0JiBnZXRSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNw
cAppbmRleCA5MzQxMGQyMi4uOWRkNTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVD
dXJzb3IuY3BwCkBAIC0xNzQsOSArMTc0LDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNv
cjo6Y3VycmVudERhdGEoSURCR2V0UmVzdWx0JiBkYXRhKQogICAgICAgICB9CiAKICAgICAgICAg
bV9jdXJyZW50UG9zaXRpb25LZXkgPSAqKm1fZm9yd2FyZEl0ZXJhdG9yOwotICAgICAgICBkYXRh
LmtleURhdGEgPSAqKm1fZm9yd2FyZEl0ZXJhdG9yOwotICAgICAgICBkYXRhLnByaW1hcnlLZXlE
YXRhID0gKiptX2ZvcndhcmRJdGVyYXRvcjsKLSAgICAgICAgZGF0YS52YWx1ZUJ1ZmZlciA9IG1f
b2JqZWN0U3RvcmUudmFsdWVGb3JLZXlSYW5nZSgqKm1fZm9yd2FyZEl0ZXJhdG9yKTsKKyAgICAg
ICAgZGF0YSA9IHsgKiptX2ZvcndhcmRJdGVyYXRvciwgKiptX2ZvcndhcmRJdGVyYXRvciwgbV9v
YmplY3RTdG9yZS52YWx1ZUZvcktleVJhbmdlKCoqbV9mb3J3YXJkSXRlcmF0b3IpIH07CiAgICAg
fSBlbHNlIHsKICAgICAgICAgaWYgKCFtX3JldmVyc2VJdGVyYXRvciB8fCAqbV9yZXZlcnNlSXRl
cmF0b3IgPT0gc2V0LT5yZW5kKCkpIHsKICAgICAgICAgICAgIGRhdGEgPSB7IH07CkBAIC0xODQs
OSArMTgyLDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEoSURC
R2V0UmVzdWx0JiBkYXRhKQogICAgICAgICB9CiAKICAgICAgICAgbV9jdXJyZW50UG9zaXRpb25L
ZXkgPSAqKm1fcmV2ZXJzZUl0ZXJhdG9yOwotICAgICAgICBkYXRhLmtleURhdGEgPSAqKm1fcmV2
ZXJzZUl0ZXJhdG9yOwotICAgICAgICBkYXRhLnByaW1hcnlLZXlEYXRhID0gKiptX3JldmVyc2VJ
dGVyYXRvcjsKLSAgICAgICAgZGF0YS52YWx1ZUJ1ZmZlciA9IG1fb2JqZWN0U3RvcmUudmFsdWVG
b3JLZXlSYW5nZSgqKm1fcmV2ZXJzZUl0ZXJhdG9yKTsKKyAgICAgICAgZGF0YSA9IHsgKiptX3Jl
dmVyc2VJdGVyYXRvciwgKiptX3JldmVyc2VJdGVyYXRvciwgbV9vYmplY3RTdG9yZS52YWx1ZUZv
cktleVJhbmdlKCoqbV9yZXZlcnNlSXRlcmF0b3IpIH07CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDlkZDMw
NC4uODgxMmYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTk2Myw2ICsxOTYzLDcgQEAKIAkJNTEyREQ4RkIwRDkxRTZBRjAw
MEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJERDhGMTBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJl
c291cmNlLmNwcCAqLzsgfTsKIAkJNTEyREQ4RkMwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVS
ZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEyREQ4RjIwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMkREOEZEMEQ5MUU2QUYw
MDBGODlFRSAvKiBBcmNoaXZlRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyREQ4RjMwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVGYWN0
b3J5LmggKi87IH07CisJCTUxMkYxQTc4MUMwN0VCNjYwMDkwODIzOSAvKiBJREJHZXRSZXN1bHQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjFB
NzcxQzA3RUEwRDAwOTA4MjM5IC8qIElEQkdldFJlc3VsdC5jcHAgKi87IH07CiAJCTUxMzI3RDYw
MTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMzI3RDVFMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5r
RG9jdW1lbnQuaCAqLzsgfTsKIAkJNTEzMjdENjExMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTMyN0Q1RjExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmNwcCAqLzsgfTsKIAkJNTEz
RjE0NTMwQUI2MzRDNDAwMDk0RERGIC8qIEljb25Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRjE0NTEwQUI2MzRDNDAwMDk0RERGIC8q
IEljb25Mb2FkZXIuY3BwICovOyB9OwpAQCAtOTQwNiw2ICs5NDA3LDcgQEAKIAkJNTEyREQ4RjIw
RDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBcmNoaXZlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEyREQ4RjMwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVGYWN0b3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyY2hpdmVGYWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMkVBOUJEMTgyMDI4NTcwMDFEMDFFMCAvKiBJREJPcGVyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCT3BlcmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkYxQTc3MUMwN0VBMEQwMDkwODIzOSAvKiBJ
REJHZXRSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURC
R2V0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEzMjdENUUxMUEz
M0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTaW5rRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEz
MjdENUYxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW5rRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTNGMTQ1MTBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkxvYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTI4OSw2ICsxOTI5MSw3IEBACiAJCQkJNTE2
NDVCNDYxQjlGODg5QjAwRjc4OUNFIC8qIElEQkZhY3RvcnkuY3BwICovLAogCQkJCTUxNjQ1QjQ3
MUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJGYWN0b3J5LmggKi8sCiAJCQkJNTFENzE5OEExODExMDZE
RjAwMTZEQzUxIC8qIElEQkZhY3RvcnkuaWRsICovLAorCQkJCTUxMkYxQTc3MUMwN0VBMEQwMDkw
ODIzOSAvKiBJREJHZXRSZXN1bHQuY3BwICovLAogCQkJCTUxMjNBRjFDMTg5MThBRTQwMDMxQ0RD
OSAvKiBJREJHZXRSZXN1bHQuaCAqLywKIAkJCQk1MTY0NUI0ODFCOUY4ODlCMDBGNzg5Q0UgLyog
SURCSW5kZXguY3BwICovLAogCQkJCTUxNjQ1QjQ5MUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJJbmRl
eC5oICovLApAQCAtMzA0MjIsNiArMzA0MjUsNyBAQAogCQkJCTQxNzI1M0FBMTM1NEJCQkMwMDM2
MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUJD
Q0RENTE2NjQ2RUIyMDBBNDUyRTEgLyogTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEMjdGNkU3MTQ1NzcwRDMwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyRjFBNzgxQzA3RUI2NjAwOTA4MjM5IC8qIElE
QkdldFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRjNDM0JFQTEzNUNBRjNDMDBCOEMx
QUMgLyogTWVkaWFDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTU3QUY4MTEyRjFG
QjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sc0FwcGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNEQUI2RDI4MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFk
Q29waWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCmlu
ZGV4IDZlMTA5MWIuLjc0MWNhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0Nyb3NzVGhyZWFkQ29waWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NU
aHJlYWRDb3BpZXIuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJik7CiAgICAg
fTsKIAotICAgIHN0cnVjdCBJREJHZXRSZXN1bHQ7CisgICAgY2xhc3MgSURCR2V0UmVzdWx0Owog
ICAgIHRlbXBsYXRlPD4gc3RydWN0IFdFQkNPUkVfRVhQT1JUIENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxmYWxzZSwgZmFsc2UsIElEQkdldFJlc3VsdD4gewogICAgICAgICB0eXBlZGVmIElEQkdldFJl
c3VsdCBUeXBlOwogICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IElEQkdldFJlc3VsdCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGYwYThlMGIuLmZkMjE0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NCBAQAorMjAxNS0xMS0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgTW9kZXJuIElEQjogQ2xhc3MtaWZ5IElEQkdldFJlc3VsdCBtYWtpbmcgaXQgaW1wb3Nz
aWJsZSB0byBnZXQgdGhlIGRhdGEgbWVtYmVycyB3cm9uZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTYyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9V
bmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpnZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgIAorICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0SW5kZXhSZWNvcmQpOgorICAgICAg
ICAKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxJREJHZXRSZXN1bHQ+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPElEQkdldFJlc3VsdD46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCiAyMDE1LTExLTIzICBCcmlhbiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGluc3BlY3RvciBzZXR0aW5n
cyBzaG91bGQgbm90IGJlIHNoYXJlZCBiZXR3ZWVuIGRpZmZlcmVudCBpbnNwZWN0aW9uIGxldmVs
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9V
bmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBmMDgzYTc2Li4xNDkwMWM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtOTM4LDcgKzkzOCw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmdldFJlY29yZEZyb21CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBJREJJCiAgICAgfQogCiAgICAgLy8gV2UgbXVzdCByZXR1cm4gYSBrZXkgcGF0aCB0
byBrbm93IGhvdyB0byBpbmplY3QgdGhlIHJlc3VsdCBrZXkgaW50byB0aGUgcmVzdWx0IHZhbHVl
IG9iamVjdC4KLSAgICByZXN1bHQua2V5UGF0aCA9IG9iamVjdFN0b3JlTWV0YWRhdGEua2V5UGF0
aDsKKyAgICByZXN1bHQuc2V0S2V5UGF0aChvYmplY3RTdG9yZU1ldGFkYXRhLmtleVBhdGgpOwog
CiAgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjpkaWRHZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlLCByZXF1ZXN0SUQs
IHJlc3VsdCwgMCwgU3RyaW5nKFN0cmluZ0ltcGw6OmVtcHR5KCkpKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFi
YXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlLmgKaW5kZXggODFkOTFhMy4uYTdkZTFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJh
c2UuaApAQCAtNDYsMTEgKzQ2LDExIEBAIGNsYXNzIERhdGFSZWZlcmVuY2U7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENyb3NzVGhyZWFkVGFzazsKK2NsYXNzIElEQkdldFJlc3VsdDsK
IGNsYXNzIElEQktleURhdGE7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIHN0cnVjdCBJREJEYXRh
YmFzZU1ldGFkYXRhOwotc3RydWN0IElEQkdldFJlc3VsdDsKIHN0cnVjdCBJREJLZXlSYW5nZURh
dGE7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oCmluZGV4IGM5YWZkN2IuLmQzMTk5OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2VCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKQEAgLTMyLDEzICszMiwx
MyBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIElEQkdldFJlc3VsdDsKIGNsYXNzIElEQktleTsKIGNsYXNzIElEQktleURhdGE7CiBj
bGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogc3RydWN0IElEQkRhdGFi
YXNlTWV0YWRhdGE7Ci1zdHJ1Y3QgSURCR2V0UmVzdWx0Owogc3RydWN0IElEQk9iamVjdFN0b3Jl
TWV0YWRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcAppbmRleCAzMzVkNWQ1Li4xOWExMDUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3Nx
bGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCBib29sIFVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRJbmRleFJlY29yZChjb25zdCBJREJJ
ZGVudGlmaWVyJiB0cgogICAgICAgICByZXN1bHQgPSBJREJHZXRSZXN1bHQoY3Vyc29yLT5jdXJy
ZW50UHJpbWFyeUtleSgpKTsKICAgICBlbHNlIHsKICAgICAgICAgcmVzdWx0ID0gSURCR2V0UmVz
dWx0KFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGN1cnNvci0+Y3VycmVudFZhbHVlQnVmZmVyKCkuZGF0
YSgpLCBjdXJzb3ItPmN1cnJlbnRWYWx1ZUJ1ZmZlcigpLnNpemUoKSkpOwotICAgICAgICByZXN1
bHQua2V5RGF0YSA9IGN1cnNvci0+Y3VycmVudFByaW1hcnlLZXkoKTsKKyAgICAgICAgcmVzdWx0
LnNldEtleURhdGEoY3Vyc29yLT5jdXJyZW50UHJpbWFyeUtleSgpKTsKICAgICB9CiAKICAgICAv
LyBDbG9zaW5nIHRoZSBjdXJzb3Igd2lsbCBkZXN0cm95IHRoZSBjdXJzb3Igb2JqZWN0IGFuZCBy
ZW1vdmUgaXQgZnJvbSBvdXIgY3Vyc29yIHNldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMTFmZjk5NC4uNTUyOTlkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTE4
MjcsMTMgKzE4MjcsMTMgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZpbHRlck9wZXJhdGlvbnM+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBGaWx0ZXJPcGUKIAogdm9pZCBBcmd1bWVu
dENvZGVyPElEQkdldFJlc3VsdD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IElEQkdldFJlc3VsdCYgcmVzdWx0KQogewotICAgIGJvb2wgbnVsbERhdGEgPSAhcmVzdWx0
LnZhbHVlQnVmZmVyLmRhdGEoKTsKKyAgICBib29sIG51bGxEYXRhID0gIXJlc3VsdC52YWx1ZUJ1
ZmZlcigpLmRhdGEoKTsKICAgICBlbmNvZGVyIDw8IG51bGxEYXRhOwogCiAgICAgaWYgKCFudWxs
RGF0YSkKLSAgICAgICAgZW5jb2RlciA8PCBEYXRhUmVmZXJlbmNlKHJlc3VsdC52YWx1ZUJ1ZmZl
ci5kYXRhKCktPmRhdGEoKSwgcmVzdWx0LnZhbHVlQnVmZmVyLmRhdGEoKS0+c2l6ZSgpKTsKKyAg
ICAgICAgZW5jb2RlciA8PCBEYXRhUmVmZXJlbmNlKHJlc3VsdC52YWx1ZUJ1ZmZlcigpLmRhdGEo
KS0+ZGF0YSgpLCByZXN1bHQudmFsdWVCdWZmZXIoKS5kYXRhKCktPnNpemUoKSk7CiAKLSAgICBl
bmNvZGVyIDw8IHJlc3VsdC5rZXlEYXRhIDw8IHJlc3VsdC5rZXlQYXRoOworICAgIGVuY29kZXIg
PDwgcmVzdWx0LmtleURhdGEoKSA8PCByZXN1bHQua2V5UGF0aCgpOwogfQogCiBib29sIEFyZ3Vt
ZW50Q29kZXI8SURCR2V0UmVzdWx0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
SURCR2V0UmVzdWx0JiByZXN1bHQpCkBAIC0xODQzLDcgKzE4NDMsNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8SURCR2V0UmVzdWx0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSURC
R2V0UmVzdWx0JgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobnVsbERhdGEpCi0g
ICAgICAgIHJlc3VsdC52YWx1ZUJ1ZmZlciA9IHsgfTsKKyAgICAgICAgcmVzdWx0LnNldFZhbHVl
QnVmZmVyKHsgfSk7CiAgICAgZWxzZSB7CiAgICAgICAgIERhdGFSZWZlcmVuY2UgZGF0YTsKICAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhKSkKQEAgLTE4NTEsMTUgKzE4NTEsMjEgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPElEQkdldFJlc3VsdD46OmRlY29kZShBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIElEQkdldFJlc3VsdCYKIAogICAgICAgICBWZWN0b3I8dWludDhfdD4gdmVjdG9y
KGRhdGEuc2l6ZSgpKTsKICAgICAgICAgbWVtY3B5KHZlY3Rvci5kYXRhKCksIGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSk7Ci0gICAgICAgIHJlc3VsdC52YWx1ZUJ1ZmZlciA9IFRocmVhZFNhZmVE
YXRhQnVmZmVyOjphZG9wdFZlY3Rvcih2ZWN0b3IpOworICAgICAgICByZXN1bHQuc2V0VmFsdWVC
dWZmZXIoVGhyZWFkU2FmZURhdGFCdWZmZXI6OmFkb3B0VmVjdG9yKHZlY3RvcikpOwogICAgIH0K
IAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmtleURhdGEpKQorICAgIElEQktleURh
dGEga2V5RGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleURhdGEpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5rZXlQYXRoKSkK
KyAgICByZXN1bHQuc2V0S2V5RGF0YShrZXlEYXRhKTsKKworICAgIElEQktleVBhdGgga2V5UGF0
aDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleVBhdGgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICByZXN1bHQuc2V0S2V5UGF0aChrZXlQYXRoKTsKKwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
aW5kZXggYmFjYTM0Yy4uMDhkNmIzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgRmxvYXRSb3VuZGVk
UmVjdDsKIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0
cmFpbnRzOwogY2xhc3MgSFRUUEhlYWRlck1hcDsKK2NsYXNzIElEQkdldFJlc3VsdDsKIGNsYXNz
IEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CkBAIC03NSw3ICs3Niw2
IEBAIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7
CiBzdHJ1Y3QgTGVuZ3RoOwogc3RydWN0IEdyYW1tYXJEZXRhaWw7Ci1zdHJ1Y3QgSURCR2V0UmVz
dWx0Owogc3RydWN0IE1pbWVDbGFzc0luZm87CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOwogc3Ry
dWN0IFBhc3RlYm9hcmRXZWJDb250ZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266194</attachid>
            <date>2015-11-26 22:06:49 -0800</date>
            <delta_ts>2015-11-27 09:51:05 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>28721</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTdhOTZkYS4uNTNhY2Y0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg1Myw2ICs4NTMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VNZXRhZGF0YS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJFdmVudERpc3BhdGNoZXIuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5jcHAKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCSW5kZXguY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNw
cAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Vk
Y2E5MS4uZjhhNWI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTExLTI2ICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4gSURCOiBD
bGFzcy1pZnkgSURCR2V0UmVzdWx0IG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGdldCB0aGUgZGF0
YSBtZW1iZXJzIHdyb25nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxNjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBjaGFuZ2UgaW4gYmVoYXZpb3IpLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJHZXRSZXN1bHQ6OmRhdGFGcm9tQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkdldFJlc3VsdDo6SURCR2V0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3Vs
dDo6dmFsdWVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0OjprZXlEYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6cHJpbWFyeUtleURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0OjprZXlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkdldFJlc3VsdDo6c2V0VmFsdWVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0
UmVzdWx0OjpzZXRLZXlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6c2V0
UHJpbWFyeUtleURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0OjpzZXRLZXlQ
YXRoKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlc3VsdDo6ZGF0YUZyb21CdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0Ojppc29sYXRlZENvcHkpOiBE
ZWxldGVkLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkN1cnNvcklt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDdXJzb3I6OnNldEdldFJl
c3VsdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkN1cnNvckltcGwu
aDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbklt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6ZGlk
R2V0UmVjb3JkT25TZXJ2ZXIpOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5
L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R2V0T3BlcmF0aW9uOjpwZXJmb3JtKToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJCYWNraW5nU3RvcmUuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlDdXJzb3IuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlJbmRleEN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1l
bW9yeUluZGV4Q3Vyc29yOjpjdXJyZW50RGF0YSk6CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEpOgorCisg
ICAgICAgICogcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaDoKKwogMjAxNS0xMS0yMyAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhhcmRlbmluZyBhZ2Fp
bnN0IENTU1NlbGVjdG9yIGRvdWJsZSBmcmVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMmRlNDBlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJHZXRSZXN1bHQuaCIKKworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
SURCR2V0UmVzdWx0OjpkYXRhRnJvbUJ1ZmZlcihTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK3sKKyAg
ICBWZWN0b3I8dWludDhfdD4gZGF0YShidWZmZXIuc2l6ZSgpKTsKKyAgICBtZW1jcHkoZGF0YS5k
YXRhKCksIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOworCisgICAgbV92YWx1ZUJ1ZmZl
ciA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjphZG9wdFZlY3RvcihkYXRhKTsKK30KKworSURCR2V0
UmVzdWx0IElEQkdldFJlc3VsdDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICBJREJHZXRS
ZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdC5tX3ZhbHVlQnVmZmVyID0gbV92YWx1ZUJ1ZmZlcjsK
KyAgICByZXN1bHQubV9rZXlEYXRhID0gbV9rZXlEYXRhLmlzb2xhdGVkQ29weSgpOworICAgIHJl
c3VsdC5tX3ByaW1hcnlLZXlEYXRhID0gbV9wcmltYXJ5S2V5RGF0YS5pc29sYXRlZENvcHkoKTsK
KyAgICByZXN1bHQubV9rZXlQYXRoID0gbV9rZXlQYXRoLmlzb2xhdGVkQ29weSgpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJHZXRSZXN1bHQuaAppbmRleCAzNzg3MTc1Li5hMDNjNjBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaApAQCAtMzYsNyArMzYs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBJREJHZXRSZXN1bHQgeworY2xh
c3MgSURCR2V0UmVzdWx0IHsKK3B1YmxpYzoKICAgICBJREJHZXRSZXN1bHQoKQogICAgIHsKICAg
ICB9CkBAIC00OCw1MCArNDksNjMgQEAgc3RydWN0IElEQkdldFJlc3VsdCB7CiAgICAgfQogCiAg
ICAgSURCR2V0UmVzdWx0KGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiBidWZmZXIpCi0gICAg
ICAgIDogdmFsdWVCdWZmZXIoYnVmZmVyKQorICAgICAgICA6IG1fdmFsdWVCdWZmZXIoYnVmZmVy
KQogICAgIHsKICAgICB9CiAKICAgICBJREJHZXRSZXN1bHQoUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSkKLSAgICAgICAgOiBrZXlEYXRhKGtleS5nZXQoKSkKKyAgICAgICAgOiBtX2tleURhdGEoa2V5
LmdldCgpKQogICAgIHsKICAgICB9CiAKICAgICBJREJHZXRSZXN1bHQoY29uc3QgSURCS2V5RGF0
YSYga2V5RGF0YSkKLSAgICAgICAgOiBrZXlEYXRhKGtleURhdGEpCisgICAgICAgIDogbV9rZXlE
YXRhKGtleURhdGEpCiAgICAgewogICAgIH0KIAogICAgIElEQkdldFJlc3VsdChQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBjb25zdCBJREJL
ZXlQYXRoJiBwYXRoKQotICAgICAgICA6IGtleURhdGEoa2V5LmdldCgpKQotICAgICAgICAsIGtl
eVBhdGgocGF0aCkKKyAgICAgICAgOiBtX2tleURhdGEoa2V5LmdldCgpKQorICAgICAgICAsIG1f
a2V5UGF0aChwYXRoKQogICAgIHsKICAgICAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgICAgIGRh
dGFGcm9tQnVmZmVyKCpidWZmZXIpOwogICAgIH0KIAotICAgIHZvaWQgZGF0YUZyb21CdWZmZXIo
U2hhcmVkQnVmZmVyJiBidWZmZXIpCisgICAgSURCR2V0UmVzdWx0KGNvbnN0IElEQktleURhdGEm
IGtleURhdGEsIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXlEYXRhKQorICAgICAgICA6IG1f
a2V5RGF0YShrZXlEYXRhKQorICAgICAgICAsIG1fcHJpbWFyeUtleURhdGEocHJpbWFyeUtleURh
dGEpCiAgICAgewotICAgICAgICBWZWN0b3I8dWludDhfdD4gZGF0YShidWZmZXIuc2l6ZSgpKTsK
LSAgICAgICAgbWVtY3B5KGRhdGEuZGF0YSgpLCBidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgp
KTsKLQotICAgICAgICB2YWx1ZUJ1ZmZlciA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjphZG9wdFZl
Y3RvcihkYXRhKTsKICAgICB9CiAKLSAgICBJREJHZXRSZXN1bHQgaXNvbGF0ZWRDb3B5KCkgY29u
c3QKKyAgICBJREJHZXRSZXN1bHQoY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgSURC
S2V5RGF0YSYgcHJpbWFyeUtleURhdGEsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1
ZUJ1ZmZlcikKKyAgICAgICAgOiBtX3ZhbHVlQnVmZmVyKHZhbHVlQnVmZmVyKQorICAgICAgICAs
IG1fa2V5RGF0YShrZXlEYXRhKQorICAgICAgICAsIG1fcHJpbWFyeUtleURhdGEocHJpbWFyeUtl
eURhdGEpCiAgICAgewotICAgICAgICBJREJHZXRSZXN1bHQgcmVzdWx0OwotICAgICAgICByZXN1
bHQudmFsdWVCdWZmZXIgPSB2YWx1ZUJ1ZmZlcjsKLSAgICAgICAgcmVzdWx0LmtleURhdGEgPSBr
ZXlEYXRhLmlzb2xhdGVkQ29weSgpOwotICAgICAgICByZXN1bHQucHJpbWFyeUtleURhdGEgPSBw
cmltYXJ5S2V5RGF0YS5pc29sYXRlZENvcHkoKTsKLSAgICAgICAgcmVzdWx0LmtleVBhdGggPSBr
ZXlQYXRoLmlzb2xhdGVkQ29weSgpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAot
ICAgIFRocmVhZFNhZmVEYXRhQnVmZmVyIHZhbHVlQnVmZmVyOwotICAgIElEQktleURhdGEga2V5
RGF0YTsKLSAgICBJREJLZXlEYXRhIHByaW1hcnlLZXlEYXRhOwotICAgIElEQktleVBhdGgga2V5
UGF0aDsKKyAgICBJREJHZXRSZXN1bHQgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisKKyAgICBjb25z
dCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlQnVmZmVyOyB9CisgICAgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fa2V5RGF0YTsgfQorICAgIGNvbnN0IElEQktleURhdGEmIHByaW1hcnlLZXlEYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmltYXJ5S2V5RGF0YTsgfQorICAgIGNvbnN0IElEQktleVBhdGgm
IGtleVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2tleVBhdGg7IH0KKworICAgIC8vIEZJWE1FOiBX
aGVuIHJlbW92aW5nIExlZ2FjeUlEQiwgcmVtb3ZlIHRoZXNlIHNldHRlcnMuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDg1NAorCisgICAgdm9pZCBz
ZXRWYWx1ZUJ1ZmZlcihjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVCdWZmZXIpIHsg
bV92YWx1ZUJ1ZmZlciA9IHZhbHVlQnVmZmVyOyB9CisgICAgdm9pZCBzZXRLZXlEYXRhKGNvbnN0
IElEQktleURhdGEmIGtleURhdGEpIHsgbV9rZXlEYXRhID0ga2V5RGF0YTsgfQorICAgIHZvaWQg
c2V0UHJpbWFyeUtleURhdGEoY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSkgeyBtX3ByaW1hcnlL
ZXlEYXRhID0ga2V5RGF0YTsgfQorICAgIHZvaWQgc2V0S2V5UGF0aChjb25zdCBJREJLZXlQYXRo
JiBrZXlQYXRoKSB7IG1fa2V5UGF0aCA9IGtleVBhdGg7IH0KKworcHJpdmF0ZToKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRhdGFGcm9tQnVmZmVyKFNoYXJlZEJ1ZmZlciYpOworCisgICAgVGhy
ZWFkU2FmZURhdGFCdWZmZXIgbV92YWx1ZUJ1ZmZlcjsKKyAgICBJREJLZXlEYXRhIG1fa2V5RGF0
YTsKKyAgICBJREJLZXlEYXRhIG1fcHJpbWFyeUtleURhdGE7CisgICAgSURCS2V5UGF0aCBtX2tl
eVBhdGg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5jcHAKaW5k
ZXggZmFhNjNhZGMuLjRjNWU3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDdXJzb3JJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5jcHAKQEAgLTI4MiwyMCArMjgy
LDIwIEBAIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAKIHZvaWQgSURCQ3Vyc29yOjpzZXRHZXRS
ZXN1bHQoSURCUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSURCR2V0UmVzdWx0JiBnZXRSZXN1bHQp
CiB7Ci0gICAgTE9HKEluZGV4ZWREQiwgIklEQkN1cnNvcjo6c2V0R2V0UmVzdWx0IC0gY3VycmVu
dCBrZXkgJXMiLCBnZXRSZXN1bHQua2V5RGF0YS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkN1cnNvcjo6c2V0R2V0UmVzdWx0IC0gY3VycmVu
dCBrZXkgJXMiLCBnZXRSZXN1bHQua2V5RGF0YSgpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKIAogICAgIGF1dG8qIGNvbnRleHQgPSByZXF1ZXN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGVwcmVj
YXRlZEN1cnJlbnRLZXkgPSBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0LCBnZXRSZXN1
bHQua2V5RGF0YSk7Ci0gICAgbV9kZXByZWNhdGVkQ3VycmVudFByaW1hcnlLZXkgPSBpZGJLZXlE
YXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0LCBnZXRSZXN1bHQucHJpbWFyeUtleURhdGEpOwotICAg
IG1fY3VycmVudFByaW1hcnlLZXlEYXRhID0gZ2V0UmVzdWx0LnByaW1hcnlLZXlEYXRhOworICAg
IG1fZGVwcmVjYXRlZEN1cnJlbnRLZXkgPSBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZShjb250ZXh0
LCBnZXRSZXN1bHQua2V5RGF0YSgpKTsKKyAgICBtX2RlcHJlY2F0ZWRDdXJyZW50UHJpbWFyeUtl
eSA9IGlkYktleURhdGFUb1NjcmlwdFZhbHVlKGNvbnRleHQsIGdldFJlc3VsdC5wcmltYXJ5S2V5
RGF0YSgpKTsKKyAgICBtX2N1cnJlbnRQcmltYXJ5S2V5RGF0YSA9IGdldFJlc3VsdC5wcmltYXJ5
S2V5RGF0YSgpOwogCiAgICAgaWYgKGlzS2V5Q3Vyc29yKCkpCiAgICAgICAgIG1fZGVwcmVjYXRl
ZEN1cnJlbnRWYWx1ZSA9IHsgfTsKICAgICBlbHNlCi0gICAgICAgIG1fZGVwcmVjYXRlZEN1cnJl
bnRWYWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVEYXRhKCpjb250ZXh0LCBnZXRSZXN1bHQudmFs
dWVCdWZmZXIpOworICAgICAgICBtX2RlcHJlY2F0ZWRDdXJyZW50VmFsdWUgPSBkZXNlcmlhbGl6
ZUlEQlZhbHVlRGF0YSgqY29udGV4dCwgZ2V0UmVzdWx0LnZhbHVlQnVmZmVyKCkpOwogCiAgICAg
bV9nb3RWYWx1ZSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ3Vyc29ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkN1cnNvckltcGwuaAppbmRleCBmY2JlM2Q3Li45MzQ4MzJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q3Vyc29ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDdXJzb3JJbXBsLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1zdHJ1Y3QgSURCR2V0UmVzdWx0OworY2xhc3MgSURCR2V0UmVzdWx0OwogCiBuYW1lc3Bh
Y2UgSURCQ2xpZW50IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcAppbmRleCBiMmU5ZjUw
Li5lNDA4NWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcApAQCAtNjAyLDEzICs2MDIs
MTMgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkR2V0UmVjb3JkT25TZXJ2ZXIoSURCUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgSURCUmVzdWx0RGEKICAgICBjb25zdCBJREJHZXRSZXN1bHQmIHJl
c3VsdCA9IHJlc3VsdERhdGEuZ2V0UmVzdWx0KCk7CiAKICAgICBpZiAocmVxdWVzdC5zb3VyY2VJ
bmRleElkZW50aWZpZXIoKSAmJiByZXF1ZXN0LnJlcXVlc3RlZEluZGV4UmVjb3JkVHlwZSgpID09
IEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlOjpLZXkpIHsKLSAgICAgICAgaWYgKCFyZXN1bHQu
a2V5RGF0YS5pc051bGwoKSkKLSAgICAgICAgICAgIHJlcXVlc3Quc2V0UmVzdWx0KCZyZXN1bHQu
a2V5RGF0YSk7CisgICAgICAgIGlmICghcmVzdWx0LmtleURhdGEoKS5pc051bGwoKSkKKyAgICAg
ICAgICAgIHJlcXVlc3Quc2V0UmVzdWx0KCZyZXN1bHQua2V5RGF0YSgpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgcmVxdWVzdC5zZXRSZXN1bHRUb1VuZGVmaW5lZCgpOwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGlmIChyZXN1bHREYXRhLmdldFJlc3VsdCgpLnZhbHVlQnVmZmVyLmRhdGEo
KSkKLSAgICAgICAgICAgIHJlcXVlc3Quc2V0UmVzdWx0VG9TdHJ1Y3R1cmVkQ2xvbmUocmVzdWx0
RGF0YS5nZXRSZXN1bHQoKS52YWx1ZUJ1ZmZlcik7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmdl
dFJlc3VsdCgpLnZhbHVlQnVmZmVyKCkuZGF0YSgpKQorICAgICAgICAgICAgcmVxdWVzdC5zZXRS
ZXN1bHRUb1N0cnVjdHVyZWRDbG9uZShyZXN1bHREYXRhLmdldFJlc3VsdCgpLnZhbHVlQnVmZmVy
KCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXF1ZXN0LnNldFJlc3VsdFRvVW5kZWZp
bmVkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGVnYWN5L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJh
dGlvbnMuY3BwCmluZGV4IDA3NzdkN2QuLmI5MjlmYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0lE
QlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCkBAIC0xMDAsMTUgKzEwMCwxNSBAQCB2
b2lkIEdldE9wZXJhdGlvbjo6cGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bkNhbGxiYWNrKQogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICBtX2NhbGxiYWNrcy0+
b25FcnJvcihlcnJvcik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKCFyZXN1bHQu
dmFsdWVCdWZmZXIuZGF0YSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5rZXlEYXRh
LmlzTnVsbCgpKQorICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsdWVCdWZmZXIoKS5kYXRhKCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmtleURhdGEoKS5pc051bGwoKSkKICAgICAg
ICAgICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcygpOwogICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhyZXN1bHQu
a2V5RGF0YS5tYXliZUNyZWF0ZUlEQktleSgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhyZXN1bHQua2V5RGF0YSgpLm1heWJlQ3JlYXRlSURCS2V5KCkpOwog
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhdXRvIHZhbHVlQnVmZmVyID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGUocmVzdWx0LnZhbHVlQnVmZmVyLmRhdGEoKS0+ZGF0YSgpLCBy
ZXN1bHQudmFsdWVCdWZmZXIuZGF0YSgpLT5zaXplKCkpOwotICAgICAgICAgICAgICAgIGlmICgh
cmVzdWx0LmtleURhdGEuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fY2FsbGJhY2tz
LT5vblN1Y2Nlc3ModmFsdWVCdWZmZXIsIHJlc3VsdC5rZXlEYXRhLm1heWJlQ3JlYXRlSURCS2V5
KCksIHJlc3VsdC5rZXlQYXRoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHZhbHVlQnVmZmVyID0g
U2hhcmVkQnVmZmVyOjpjcmVhdGUocmVzdWx0LnZhbHVlQnVmZmVyKCkuZGF0YSgpLT5kYXRhKCks
IHJlc3VsdC52YWx1ZUJ1ZmZlcigpLmRhdGEoKS0+c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIXJlc3VsdC5rZXlEYXRhKCkuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgICAgIG1fY2Fs
bGJhY2tzLT5vblN1Y2Nlc3ModmFsdWVCdWZmZXIsIHJlc3VsdC5rZXlEYXRhKCkubWF5YmVDcmVh
dGVJREJLZXkoKSwgcmVzdWx0LmtleVBhdGgoKSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHZhbHVlQnVmZmVyKTsKICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAppbmRleCBmZjZlYWE0Li4yZThkN2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2lu
Z1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkJhY2tpbmdTdG9yZS5oCkBAIC0zNCw2ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIElEQkN1cnNvckluZm87CitjbGFzcyBJREJHZXRSZXN1bHQ7CiBjbGFzcyBJREJJbmRl
eEluZm87CiBjbGFzcyBJREJLZXlEYXRhOwogY2xhc3MgSURCT2JqZWN0U3RvcmVJbmZvOwpAQCAt
NDEsNyArNDIsNiBAQCBjbGFzcyBJREJSZXNvdXJjZUlkZW50aWZpZXI7CiBjbGFzcyBJREJUcmFu
c2FjdGlvbkluZm87CiBjbGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKIAotc3RydWN0IElEQkdl
dFJlc3VsdDsKIHN0cnVjdCBJREJLZXlSYW5nZURhdGE7CiAKIG5hbWVzcGFjZSBJbmRleGVkREIg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUN1cnNvci5oCmluZGV4IGMzZTM2MjQuLmNkM2Y5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlDdXJzb3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5Q3Vyc29yLmgKQEAgLTMy
LDExICszMiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIElEQkdldFJlc3Vs
dDsKIGNsYXNzIElEQktleURhdGE7CiBjbGFzcyBJREJSZXNvdXJjZUlkZW50aWZpZXI7CiAKLXN0
cnVjdCBJREJHZXRSZXN1bHQ7Ci0KIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBNZW1v
cnlDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUluZGV4Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJbmRleEN1cnNvci5jcHAKaW5kZXggYjMxNDY0YS4uMjYxMDBh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUluZGV4Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SW5kZXhDdXJzb3IuY3BwCkBAIC02NSwxMiArNjUsMTAgQEAgTWVtb3J5
SW5kZXhDdXJzb3I6On5NZW1vcnlJbmRleEN1cnNvcigpCiAKIHZvaWQgTWVtb3J5SW5kZXhDdXJz
b3I6OmN1cnJlbnREYXRhKElEQkdldFJlc3VsdCYgZ2V0UmVzdWx0KQogewotICAgIGdldFJlc3Vs
dC5rZXlEYXRhID0gbV9jdXJyZW50S2V5OwotICAgIGdldFJlc3VsdC5wcmltYXJ5S2V5RGF0YSA9
IG1fY3VycmVudFByaW1hcnlLZXk7CiAgICAgaWYgKG1faW5mby5jdXJzb3JUeXBlKCkgPT0gSW5k
ZXhlZERCOjpDdXJzb3JUeXBlOjpLZXlPbmx5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBnZXRS
ZXN1bHQudmFsdWVCdWZmZXIgPSBtX2luZGV4Lm9iamVjdFN0b3JlKCkudmFsdWVGb3JLZXkobV9j
dXJyZW50UHJpbWFyeUtleSk7CisgICAgICAgIGdldFJlc3VsdCA9IHsgbV9jdXJyZW50S2V5LCBt
X2N1cnJlbnRQcmltYXJ5S2V5IH07CisgICAgZWxzZQorICAgICAgICBnZXRSZXN1bHQgPSB7IG1f
Y3VycmVudEtleSwgbV9jdXJyZW50UHJpbWFyeUtleSwgbV9pbmRleC5vYmplY3RTdG9yZSgpLnZh
bHVlRm9yS2V5KG1fY3VycmVudFByaW1hcnlLZXkpIH07CiB9CiAKIHZvaWQgTWVtb3J5SW5kZXhD
dXJzb3I6Oml0ZXJhdGUoY29uc3QgSURCS2V5RGF0YSYga2V5LCB1aW50MzJfdCBjb3VudCwgSURC
R2V0UmVzdWx0JiBnZXRSZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNw
cAppbmRleCA5MzQxMGQyMi4uOWRkNTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmVD
dXJzb3IuY3BwCkBAIC0xNzQsOSArMTc0LDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNv
cjo6Y3VycmVudERhdGEoSURCR2V0UmVzdWx0JiBkYXRhKQogICAgICAgICB9CiAKICAgICAgICAg
bV9jdXJyZW50UG9zaXRpb25LZXkgPSAqKm1fZm9yd2FyZEl0ZXJhdG9yOwotICAgICAgICBkYXRh
LmtleURhdGEgPSAqKm1fZm9yd2FyZEl0ZXJhdG9yOwotICAgICAgICBkYXRhLnByaW1hcnlLZXlE
YXRhID0gKiptX2ZvcndhcmRJdGVyYXRvcjsKLSAgICAgICAgZGF0YS52YWx1ZUJ1ZmZlciA9IG1f
b2JqZWN0U3RvcmUudmFsdWVGb3JLZXlSYW5nZSgqKm1fZm9yd2FyZEl0ZXJhdG9yKTsKKyAgICAg
ICAgZGF0YSA9IHsgKiptX2ZvcndhcmRJdGVyYXRvciwgKiptX2ZvcndhcmRJdGVyYXRvciwgbV9v
YmplY3RTdG9yZS52YWx1ZUZvcktleVJhbmdlKCoqbV9mb3J3YXJkSXRlcmF0b3IpIH07CiAgICAg
fSBlbHNlIHsKICAgICAgICAgaWYgKCFtX3JldmVyc2VJdGVyYXRvciB8fCAqbV9yZXZlcnNlSXRl
cmF0b3IgPT0gc2V0LT5yZW5kKCkpIHsKICAgICAgICAgICAgIGRhdGEgPSB7IH07CkBAIC0xODQs
OSArMTgyLDcgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZUN1cnNvcjo6Y3VycmVudERhdGEoSURC
R2V0UmVzdWx0JiBkYXRhKQogICAgICAgICB9CiAKICAgICAgICAgbV9jdXJyZW50UG9zaXRpb25L
ZXkgPSAqKm1fcmV2ZXJzZUl0ZXJhdG9yOwotICAgICAgICBkYXRhLmtleURhdGEgPSAqKm1fcmV2
ZXJzZUl0ZXJhdG9yOwotICAgICAgICBkYXRhLnByaW1hcnlLZXlEYXRhID0gKiptX3JldmVyc2VJ
dGVyYXRvcjsKLSAgICAgICAgZGF0YS52YWx1ZUJ1ZmZlciA9IG1fb2JqZWN0U3RvcmUudmFsdWVG
b3JLZXlSYW5nZSgqKm1fcmV2ZXJzZUl0ZXJhdG9yKTsKKyAgICAgICAgZGF0YSA9IHsgKiptX3Jl
dmVyc2VJdGVyYXRvciwgKiptX3JldmVyc2VJdGVyYXRvciwgbV9vYmplY3RTdG9yZS52YWx1ZUZv
cktleVJhbmdlKCoqbV9yZXZlcnNlSXRlcmF0b3IpIH07CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDlkZDMw
NC4uODgxMmYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTk2Myw2ICsxOTYzLDcgQEAKIAkJNTEyREQ4RkIwRDkxRTZBRjAw
MEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJERDhGMTBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZVJl
c291cmNlLmNwcCAqLzsgfTsKIAkJNTEyREQ4RkMwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVS
ZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEyREQ4RjIwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMkREOEZEMEQ5MUU2QUYw
MDBGODlFRSAvKiBBcmNoaXZlRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyREQ4RjMwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVGYWN0
b3J5LmggKi87IH07CisJCTUxMkYxQTc4MUMwN0VCNjYwMDkwODIzOSAvKiBJREJHZXRSZXN1bHQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjFB
NzcxQzA3RUEwRDAwOTA4MjM5IC8qIElEQkdldFJlc3VsdC5jcHAgKi87IH07CiAJCTUxMzI3RDYw
MTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMzI3RDVFMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5r
RG9jdW1lbnQuaCAqLzsgfTsKIAkJNTEzMjdENjExMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTMyN0Q1RjExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmNwcCAqLzsgfTsKIAkJNTEz
RjE0NTMwQUI2MzRDNDAwMDk0RERGIC8qIEljb25Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRjE0NTEwQUI2MzRDNDAwMDk0RERGIC8q
IEljb25Mb2FkZXIuY3BwICovOyB9OwpAQCAtOTQwNiw2ICs5NDA3LDcgQEAKIAkJNTEyREQ4RjIw
RDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBcmNoaXZlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEyREQ4RjMwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVGYWN0b3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyY2hpdmVGYWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMkVBOUJEMTgyMDI4NTcwMDFEMDFFMCAvKiBJREJPcGVyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCT3BlcmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkYxQTc3MUMwN0VBMEQwMDkwODIzOSAvKiBJ
REJHZXRSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURC
R2V0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEzMjdENUUxMUEz
M0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTaW5rRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEz
MjdENUYxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW5rRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTNGMTQ1MTBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkxvYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTI4OSw2ICsxOTI5MSw3IEBACiAJCQkJNTE2
NDVCNDYxQjlGODg5QjAwRjc4OUNFIC8qIElEQkZhY3RvcnkuY3BwICovLAogCQkJCTUxNjQ1QjQ3
MUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJGYWN0b3J5LmggKi8sCiAJCQkJNTFENzE5OEExODExMDZE
RjAwMTZEQzUxIC8qIElEQkZhY3RvcnkuaWRsICovLAorCQkJCTUxMkYxQTc3MUMwN0VBMEQwMDkw
ODIzOSAvKiBJREJHZXRSZXN1bHQuY3BwICovLAogCQkJCTUxMjNBRjFDMTg5MThBRTQwMDMxQ0RD
OSAvKiBJREJHZXRSZXN1bHQuaCAqLywKIAkJCQk1MTY0NUI0ODFCOUY4ODlCMDBGNzg5Q0UgLyog
SURCSW5kZXguY3BwICovLAogCQkJCTUxNjQ1QjQ5MUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJJbmRl
eC5oICovLApAQCAtMzA0MjIsNiArMzA0MjUsNyBAQAogCQkJCTQxNzI1M0FBMTM1NEJCQkMwMDM2
MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUJD
Q0RENTE2NjQ2RUIyMDBBNDUyRTEgLyogTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEMjdGNkU3MTQ1NzcwRDMwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyRjFBNzgxQzA3RUI2NjAwOTA4MjM5IC8qIElE
QkdldFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRjNDM0JFQTEzNUNBRjNDMDBCOEMx
QUMgLyogTWVkaWFDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTU3QUY4MTEyRjFG
QjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sc0FwcGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNEQUI2RDI4MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFk
Q29waWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCmlu
ZGV4IDZlMTA5MWIuLjc0MWNhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0Nyb3NzVGhyZWFkQ29waWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NU
aHJlYWRDb3BpZXIuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJik7CiAgICAg
fTsKIAotICAgIHN0cnVjdCBJREJHZXRSZXN1bHQ7CisgICAgY2xhc3MgSURCR2V0UmVzdWx0Owog
ICAgIHRlbXBsYXRlPD4gc3RydWN0IFdFQkNPUkVfRVhQT1JUIENyb3NzVGhyZWFkQ29waWVyQmFz
ZTxmYWxzZSwgZmFsc2UsIElEQkdldFJlc3VsdD4gewogICAgICAgICB0eXBlZGVmIElEQkdldFJl
c3VsdCBUeXBlOwogICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IElEQkdldFJlc3VsdCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGYwYThlMGIuLjhkNzViZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAxNS0xMS0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgTW9kZXJuIElEQjogQ2xhc3MtaWZ5IElEQkdldFJlc3VsdCBtYWtpbmcgaXQgaW1wb3Nz
aWJsZSB0byBnZXQgdGhlIGRhdGEgbWVtYmVycyB3cm9uZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTYyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9V
bmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpnZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAgIAorICAgICAgICAqIERhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVl
SURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0SW5kZXhSZWNvcmQpOgorICAgICAg
ICAKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxJREJHZXRSZXN1bHQ+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPElEQkdldFJlc3VsdD46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoK
KwogMjAxNS0xMS0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBpbnNwZWN0b3Igc2V0dGluZ3Mgc2hvdWxkIG5vdCBiZSBzaGFyZWQgYmV0
d2VlbiBkaWZmZXJlbnQgaW5zcGVjdGlvbiBsZXZlbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKaW5kZXggZjA4M2E3Ni4uMTQ5MDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAK
QEAgLTkzOCw3ICs5MzgsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmRGcm9t
QmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCSQogICAgIH0KIAogICAg
IC8vIFdlIG11c3QgcmV0dXJuIGEga2V5IHBhdGggdG8ga25vdyBob3cgdG8gaW5qZWN0IHRoZSBy
ZXN1bHQga2V5IGludG8gdGhlIHJlc3VsdCB2YWx1ZSBvYmplY3QuCi0gICAgcmVzdWx0LmtleVBh
dGggPSBvYmplY3RTdG9yZU1ldGFkYXRhLmtleVBhdGg7CisgICAgcmVzdWx0LnNldEtleVBhdGgo
b2JqZWN0U3RvcmVNZXRhZGF0YS5rZXlQYXRoKTsKIAogICAgIHBvc3RNYWluVGhyZWFkVGFzayhj
cmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkR2V0UmVj
b3JkRnJvbUJhY2tpbmdTdG9yZSwgcmVxdWVzdElELCByZXN1bHQsIDAsIFN0cmluZyhTdHJpbmdJ
bXBsOjplbXB0eSgpKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDgxZDkxYTMu
LmE3ZGUxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTQ2LDExICs0NiwxMSBAQCBj
bGFzcyBEYXRhUmVmZXJlbmNlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDcm9zc1Ro
cmVhZFRhc2s7CitjbGFzcyBJREJHZXRSZXN1bHQ7CiBjbGFzcyBJREJLZXlEYXRhOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwogCiBzdHJ1Y3QgSURCRGF0YWJhc2VNZXRhZGF0YTsKLXN0cnVjdCBJREJH
ZXRSZXN1bHQ7CiBzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhOwogc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaApp
bmRleCBjOWFmZDdiLi5kMzE5OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZS5oCkBAIC0zMiwxMyArMzIsMTMgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJREJHZXRSZXN1bHQ7CiBjbGFz
cyBJREJLZXk7CiBjbGFzcyBJREJLZXlEYXRhOwogY2xhc3MgSURCS2V5UmFuZ2U7CiBjbGFzcyBT
aGFyZWRCdWZmZXI7CiAKIHN0cnVjdCBJREJEYXRhYmFzZU1ldGFkYXRhOwotc3RydWN0IElEQkdl
dFJlc3VsdDsKIHN0cnVjdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJ
REJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZS5jcHAKaW5kZXggMzM1ZDVkNS4uMTlhMTA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNr
aW5nU3RvcmVTUUxpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApA
QCAtMTA2Niw3ICsxMDY2LDcgQEAgYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZTo6Z2V0SW5kZXhSZWNvcmQoY29uc3QgSURCSWRlbnRpZmllciYgdHIKICAgICAgICAgcmVz
dWx0ID0gSURCR2V0UmVzdWx0KGN1cnNvci0+Y3VycmVudFByaW1hcnlLZXkoKSk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIHJlc3VsdCA9IElEQkdldFJlc3VsdChTaGFyZWRCdWZmZXI6OmNyZWF0ZShj
dXJzb3ItPmN1cnJlbnRWYWx1ZUJ1ZmZlcigpLmRhdGEoKSwgY3Vyc29yLT5jdXJyZW50VmFsdWVC
dWZmZXIoKS5zaXplKCkpKTsKLSAgICAgICAgcmVzdWx0LmtleURhdGEgPSBjdXJzb3ItPmN1cnJl
bnRQcmltYXJ5S2V5KCk7CisgICAgICAgIHJlc3VsdC5zZXRLZXlEYXRhKGN1cnNvci0+Y3VycmVu
dFByaW1hcnlLZXkoKSk7CiAgICAgfQogCiAgICAgLy8gQ2xvc2luZyB0aGUgY3Vyc29yIHdpbGwg
ZGVzdHJveSB0aGUgY3Vyc29yIG9iamVjdCBhbmQgcmVtb3ZlIGl0IGZyb20gb3VyIGN1cnNvciBz
ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IDExZmY5OTQuLjU1Mjk5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xODI3LDEzICsxODI3LDEzIEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgRmlsdGVyT3BlCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxJREJHZXRSZXN1bHQ+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJHZXRSZXN1bHQmIHJlc3VsdCkK
IHsKLSAgICBib29sIG51bGxEYXRhID0gIXJlc3VsdC52YWx1ZUJ1ZmZlci5kYXRhKCk7CisgICAg
Ym9vbCBudWxsRGF0YSA9ICFyZXN1bHQudmFsdWVCdWZmZXIoKS5kYXRhKCk7CiAgICAgZW5jb2Rl
ciA8PCBudWxsRGF0YTsKIAogICAgIGlmICghbnVsbERhdGEpCi0gICAgICAgIGVuY29kZXIgPDwg
RGF0YVJlZmVyZW5jZShyZXN1bHQudmFsdWVCdWZmZXIuZGF0YSgpLT5kYXRhKCksIHJlc3VsdC52
YWx1ZUJ1ZmZlci5kYXRhKCktPnNpemUoKSk7CisgICAgICAgIGVuY29kZXIgPDwgRGF0YVJlZmVy
ZW5jZShyZXN1bHQudmFsdWVCdWZmZXIoKS5kYXRhKCktPmRhdGEoKSwgcmVzdWx0LnZhbHVlQnVm
ZmVyKCkuZGF0YSgpLT5zaXplKCkpOwogCi0gICAgZW5jb2RlciA8PCByZXN1bHQua2V5RGF0YSA8
PCByZXN1bHQua2V5UGF0aDsKKyAgICBlbmNvZGVyIDw8IHJlc3VsdC5rZXlEYXRhKCkgPDwgcmVz
dWx0LmtleVBhdGgoKTsKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPElEQkdldFJlc3VsdD46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIElEQkdldFJlc3VsdCYgcmVzdWx0KQpAQCAt
MTg0Myw3ICsxODQzLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPElEQkdldFJlc3VsdD46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIElEQkdldFJlc3VsdCYKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKG51bGxEYXRhKQotICAgICAgICByZXN1bHQudmFsdWVCdWZmZXIg
PSB7IH07CisgICAgICAgIHJlc3VsdC5zZXRWYWx1ZUJ1ZmZlcih7IH0pOwogICAgIGVsc2Ugewog
ICAgICAgICBEYXRhUmVmZXJlbmNlIGRhdGE7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
ZGF0YSkpCkBAIC0xODUxLDE1ICsxODUxLDIxIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxJREJHZXRS
ZXN1bHQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJREJHZXRSZXN1bHQmCiAK
ICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZlY3RvcihkYXRhLnNpemUoKSk7CiAgICAgICAgIG1l
bWNweSh2ZWN0b3IuZGF0YSgpLCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOwotICAgICAgICBy
ZXN1bHQudmFsdWVCdWZmZXIgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6YWRvcHRWZWN0b3IodmVj
dG9yKTsKKyAgICAgICAgcmVzdWx0LnNldFZhbHVlQnVmZmVyKFRocmVhZFNhZmVEYXRhQnVmZmVy
OjphZG9wdFZlY3Rvcih2ZWN0b3IpKTsKICAgICB9CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5rZXlEYXRhKSkKKyAgICBJREJLZXlEYXRhIGtleURhdGE7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShrZXlEYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQua2V5UGF0aCkpCisgICAgcmVzdWx0LnNldEtleURhdGEoa2V5
RGF0YSk7CisKKyAgICBJREJLZXlQYXRoIGtleVBhdGg7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShrZXlQYXRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgcmVzdWx0LnNldEtleVBh
dGgoa2V5UGF0aCk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGJhY2EzNGMuLjA4ZDZiMzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00
Nyw2ICs0Nyw3IEBAIGNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7CiBjbGFzcyBGbG9hdFNpemU7CiBj
bGFzcyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEhUVFBIZWFkZXJN
YXA7CitjbGFzcyBJREJHZXRSZXN1bHQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7
CiBjbGFzcyBJbnRTaXplOwpAQCAtNzUsNyArNzYsNiBAQCBzdHJ1Y3QgRXhjZXB0aW9uRGV0YWls
czsKIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogc3RydWN0IExlbmd0aDsKIHN0cnVjdCBH
cmFtbWFyRGV0YWlsOwotc3RydWN0IElEQkdldFJlc3VsdDsKIHN0cnVjdCBNaW1lQ2xhc3NJbmZv
Owogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggY2UzMzQ3OS4uYTUyNGRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTQxLDcgKzQxLDcgQEAg
bWVzc2FnZXMgLT4gV2ViSURCU2VydmVyQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAgICAg
RGlkRGVsZXRlSW5kZXgodWludDY0X3QgcmVxdWVzdElELCBib29sIHN1Y2Nlc3MpCiAKICAgICBE
aWRQdXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpJREJLZXlEYXRhIHJlc3Vs
dEtleSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKQotICAgIERpZEdl
dFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQsIHN0cnVjdCBXZWJDb3JlOjpJREJHZXRSZXN1bHQg
Z2V0UmVzdWx0LCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCisgICAg
RGlkR2V0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6SURCR2V0UmVzdWx0IGdl
dFJlc3VsdCwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKQogICAgIERp
ZE9wZW5DdXJzb3IodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IGN1cnNvcklELCBXZWJDb3Jl
OjpJREJLZXlEYXRhIGtleSwgV2ViQ29yZTo6SURCS2V5RGF0YSBwcmltYXJ5S2V5LCBJUEM6OkRh
dGFSZWZlcmVuY2UgdmFsdWUsIHVpbnQzMl90IGVycm9yQ29kZSwgU3RyaW5nIGVycm9yTWVzc2Fn
ZSkKICAgICBEaWRBZHZhbmNlQ3Vyc29yKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6SURC
S2V5RGF0YSBrZXksIFdlYkNvcmU6OklEQktleURhdGEgcHJpbWFyeUtleSwgSVBDOjpEYXRhUmVm
ZXJlbmNlIHZhbHVlLCB1aW50MzJfdCBlcnJvckNvZGUsIFN0cmluZyBlcnJvck1lc3NhZ2UpCiAg
ICAgRGlkSXRlcmF0ZUN1cnNvcih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OklEQktleURh
dGEga2V5LCBXZWJDb3JlOjpJREJLZXlEYXRhIHByaW1hcnlLZXksIElQQzo6RGF0YVJlZmVyZW5j
ZSB2YWx1ZSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>