<?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>149091</bug_id>
          
          <creation_ts>2015-09-12 08:25:34 -0700</creation_ts>
          <short_desc>Remove all uses of PassRefPtr in crypto, storage, and history</short_desc>
          <delta_ts>2022-04-14 23:44:12 -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>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125382</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-12 08:25:34 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125383</commentid>
    <comment_count>1</comment_count>
      <attachid>261055</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-12 08:34:18 -0700</bug_when>
    <thetext>Created attachment 261055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125475</commentid>
    <comment_count>2</comment_count>
      <attachid>261055</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-09-13 10:14:08 -0700</bug_when>
    <thetext>Comment on attachment 261055
Patch

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

&gt; Source/WebCore/crypto/SubtleCrypto.h:41
&gt; -    static PassRefPtr&lt;SubtleCrypto&gt; create(Document&amp; document) { return adoptRef(new SubtleCrypto(document)); }
&gt; +    static RefPtr&lt;SubtleCrypto&gt; create(Document&amp; document) { return adoptRef(*new SubtleCrypto(document)); }

Should return Ref.

&gt; Source/WebCore/storage/StorageMap.h:59
&gt; -    PassRefPtr&lt;StorageMap&gt; copy();
&gt; +    RefPtr&lt;StorageMap&gt; copy();

Should return Ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125507</commentid>
    <comment_count>3</comment_count>
      <attachid>261055</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-13 18:08:05 -0700</bug_when>
    <thetext>Comment on attachment 261055
Patch

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

&gt;&gt; Source/WebCore/crypto/SubtleCrypto.h:41
&gt;&gt; +    static RefPtr&lt;SubtleCrypto&gt; create(Document&amp; document) { return adoptRef(*new SubtleCrypto(document)); }
&gt; 
&gt; Should return Ref.

Oops.

&gt;&gt; Source/WebCore/storage/StorageMap.h:59
&gt;&gt; +    RefPtr&lt;StorageMap&gt; copy();
&gt; 
&gt; Should return Ref.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125508</commentid>
    <comment_count>4</comment_count>
      <attachid>261092</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-13 18:08:28 -0700</bug_when>
    <thetext>Created attachment 261092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125509</commentid>
    <comment_count>5</comment_count>
      <attachid>261092</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-13 19:36:51 -0700</bug_when>
    <thetext>Comment on attachment 261092
Patch

Clearing flags on attachment: 261092

Committed r189675: &lt;http://trac.webkit.org/changeset/189675&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125510</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-13 19:36:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861742</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2022-04-14 23:44:12 -0700</bug_when>
    <thetext>*** Bug 141760 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261055</attachid>
            <date>2015-09-12 08:34:18 -0700</date>
            <delta_ts>2015-09-13 18:08:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149091-20150912083408.patch</filename>
            <type>text/plain</type>
            <size>29320</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc3NDQ5YWI3MjJhNzAx
ZWY3NThkZmM3MmE2ZjY3NmViMGExMWIyNS4uY2JlMDI2ZDcyZTk3ZjY1ZjA3NGIzYTM3MGQ3NWJm
MWNlY2Y2ZmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDE1LTA5LTEyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAorICAgICAgICBSZW1vdmUgYWxs
IHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBjcnlwdG8sIHN0b3JhZ2UsIGFuZCBoaXN0b3J5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkwOTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNyeXB0by9Dcnlw
dG9LZXlQYWlyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVBhaXI6OkNyeXB0b0tl
eVBhaXIpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9LZXlQYWlyLmg6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9LZXlQYWlyOjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlw
dG8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6Y3JlYXRlKToKKyAgICAgICAg
KiBjcnlwdG8vZ251dGxzL0NyeXB0b0tleVJTQUdudVRMUy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9LZXlSU0E6OmNyZWF0ZSk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
QUVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUFFUzo6Z2VuZXJhdGUpOgorICAg
ICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oOgorICAgICAgICAqIGNyeXB0by9rZXlz
L0NyeXB0b0tleUhNQUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5SE1BQzo6Z2Vu
ZXJhdGUpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaDoKKyAgICAgICAg
KiBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaDoKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0
b0tleVJTQU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmNyZWF0ZSk6
CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpCYWNrRm9yd2FyZENvbnRyb2xsZXIpOgor
ICAgICAgICAqIGhpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmg6CisgICAgICAgICogaGlz
dG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0
U3RhdGVPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldEZvcm1EYXRh
KToKKyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpI
aXN0b3J5SXRlbTo6c3RhdGVPYmplY3QpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMu
Y3BwOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQ
YWdlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2U6OlN0b3JhZ2UpOgor
ICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZS5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUFy
ZWEuaDoKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VNYXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZU1hcDo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFwOjpzZXRJ
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYXA6OnNldEl0ZW1JZ25vcmluZ1F1b3Rh
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYXA6OnJlbW92ZUl0ZW0pOgorICAgICAgICAq
IHN0b3JhZ2UvU3RvcmFnZU1hcC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZS5oOgorCisyMDE1LTA5LTEyICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9y
Zz4KKwogICAgICAgICBSZW1vdmUgYWxsIHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL3Bs
dWdpbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
OTA1NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGNiOTM0ZTgzOWVlOTA5YmI3YmVkYzA2M2YzODI2Y2RkNWMyNTAy
YzMuLmM2NWY3MmI0YjNlYmRhOTc0ZDc1ZGVjMTMyNjFjYjlhYzYxYTg2OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTUtMDktMTIgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3
ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlcyBvZiBQYXNzUmVmUHRyIGluIGNy
eXB0bywgc3RvcmFnZSwgYW5kIGhpc3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3RvcmFnZUFyZWEpOgorICAg
ICAgICAqIFN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoKKwogMjAxNS0wOC0yNyAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIElzb2xh
dGUgU291cmNlIGRpcmVjdG9yaWVzIGluIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTQzZDdm
Mjc5ZmIwNmQ3YjJhZTAzNjAzZWNhZmJkMGM5NDFkZGM5ZC4uNDFjNjJmYWQyNmY4NGUxOTIzNjA3
MTk3MmY2MWFmYWEwOTIwZWNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA5
LTEyICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBS
ZW1vdmUgYWxsIHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBjcnlwdG8sIHN0b3JhZ2UsIGFuZCBoaXN0
b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkw
OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzdG9yYWdlQXJlYSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmg6CisKIDIwMTUtMDktMTEgIEJldGgg
RGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFub3RoZXIgYnVpbGQgZml4Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVBhaXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVBhaXIuY3BwCmluZGV4IDY5M2Q4NjMwMTQ4Mjli
ZDJmNTk0ZDI3YmRmYmZjZTVhYTIyNzA0OWYuLmUwZTI3MzllOGMxNTk4YWE2YWIxNGFjODZiMTQ5
Mzg5MWQ5N2IwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlQ
YWlyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5UGFpci5jcHAKQEAg
LTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DcnlwdG9LZXlQYWlyOjpD
cnlwdG9LZXlQYWlyKFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBwdWJsaWNLZXksIFBhc3NSZWZQdHI8
Q3J5cHRvS2V5PiBwcml2YXRlS2V5KQotICAgIDogbV9wdWJsaWNLZXkocHVibGljS2V5KQotICAg
ICwgbV9wcml2YXRlS2V5KHByaXZhdGVLZXkpCitDcnlwdG9LZXlQYWlyOjpDcnlwdG9LZXlQYWly
KFJlZlB0cjxDcnlwdG9LZXk+JiYgcHVibGljS2V5LCBSZWZQdHI8Q3J5cHRvS2V5PiYmIHByaXZh
dGVLZXkpCisgICAgOiBtX3B1YmxpY0tleShXVEY6Om1vdmUocHVibGljS2V5KSkKKyAgICAsIG1f
cHJpdmF0ZUtleShXVEY6Om1vdmUocHJpdmF0ZUtleSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlQYWlyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vQ3J5cHRvS2V5UGFpci5oCmluZGV4IGZiMjdjZTk4NGI5ZGMxNjhkNzRlM2U3NzJmOTUwODE2
MDhkZWNjZDUuLjcxMzA5YzlmMjI2OTc1OTAyYTU0OTRlYzlkMGM2Y2EzMjM2MGI2MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlQYWlyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVBhaXIuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmlu
ZSBDcnlwdG9LZXlQYWlyX2gKIAogI2luY2x1ZGUgIkNyeXB0b0tleS5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKQEAgLTM3LDkgKzM2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDcnlwdG9LZXlQYWlyIDogcHVibGljIFJlZkNvdW50ZWQ8Q3J5cHRvS2V5UGFpcj4gewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8Q3J5cHRvS2V5UGFpcj4gY3JlYXRlKFBhc3NSZWZQdHI8
Q3J5cHRvS2V5PiBwdWJsaWNLZXksIFBhc3NSZWZQdHI8Q3J5cHRvS2V5PiBwcml2YXRlS2V5KQor
ICAgIHN0YXRpYyBSZWY8Q3J5cHRvS2V5UGFpcj4gY3JlYXRlKFJlZlB0cjxDcnlwdG9LZXk+JiYg
cHVibGljS2V5LCBSZWZQdHI8Q3J5cHRvS2V5PiYmIHByaXZhdGVLZXkpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9LZXlQYWlyKHB1YmxpY0tleSwgcHJpdmF0ZUtl
eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9LZXlQYWlyKFdURjo6bW92
ZShwdWJsaWNLZXkpLCBXVEY6Om1vdmUocHJpdmF0ZUtleSkpKTsKICAgICB9CiAgICAgfkNyeXB0
b0tleVBhaXIoKTsKIApAQCAtNDcsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgQ3J5cHRvS2V5KiBw
cml2YXRlS2V5KCkgeyByZXR1cm4gbV9wcml2YXRlS2V5LmdldCgpOyB9CiAKIHByaXZhdGU6Ci0g
ICAgQ3J5cHRvS2V5UGFpcihQYXNzUmVmUHRyPENyeXB0b0tleT4gcHVibGljS2V5LCBQYXNzUmVm
UHRyPENyeXB0b0tleT4gcHJpdmF0ZUtleSk7CisgICAgQ3J5cHRvS2V5UGFpcihSZWZQdHI8Q3J5
cHRvS2V5PiYmIHB1YmxpY0tleSwgUmVmUHRyPENyeXB0b0tleT4mJiBwcml2YXRlS2V5KTsKIAog
ICAgIFJlZlB0cjxDcnlwdG9LZXk+IG1fcHVibGljS2V5OwogICAgIFJlZlB0cjxDcnlwdG9LZXk+
IG1fcHJpdmF0ZUtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVD
cnlwdG8uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaAppbmRleCA3MGQ0
OTBjNDE1ZGQ3N2ExM2IxOWU4YjM4MThmZmI1NjI1NTYzMzhhLi5hNmZiNWJjN2YyZmUzZGNiMGM4
ODc5YTc5N2ExMzA0ODU4YTMzZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
U3VidGxlQ3J5cHRvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5o
CkBAIC0yNiw5ICsyNiw5IEBACiAjaWZuZGVmIFN1YnRsZUNyeXB0b19oCiAjZGVmaW5lIFN1YnRs
ZUNyeXB0b19oCiAKLSNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIgCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIApAQCAtMzgsNyArMzgsNyBAQCBj
bGFzcyBEb2N1bWVudDsKIAogY2xhc3MgU3VidGxlQ3J5cHRvIDogcHVibGljIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxTdWJ0bGVDcnlwdG8+IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdWJ0bGVDcnlwdG8+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdWJ0bGVDcnlwdG8oZG9jdW1lbnQpKTsg
fQorICAgIHN0YXRpYyBSZWZQdHI8U3VidGxlQ3J5cHRvPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN1YnRsZUNyeXB0byhkb2N1bWVudCkpOyB9CiAK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9LZXlSU0FHbnVUTFMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2dudXRscy9DcnlwdG9LZXlSU0FHbnVUTFMuY3BwCmluZGV4IGVkNmI1Nzg1YmVi
YmJlMDQ2MTg4NDhhODNlYzZhY2ZjNzFhOTFmNGYuLmY0ODIyNGI0ZDVmYjdjMGM5YzdmMDM2ZWJm
ODYwZGY2YTljNGIwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMv
Q3J5cHRvS2V5UlNBR251VExTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxz
L0NyeXB0b0tleVJTQUdudVRMUy5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgQ3J5cHRvS2V5UlNBOjpD
cnlwdG9LZXlSU0EoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBDcnlwdG9L
ZXlUeXBlIHQKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1QYXNzUmVmUHRyPENyeXB0b0tl
eVJTQT4gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYga2V5RGF0YSwgYm9vbCBl
eHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCitSZWZQdHI8Q3J5cHRvS2V5UlNBPiBD
cnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJiBrZXlEYXRhLCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9D
cnlwdG9LZXlBRVMuY3BwCmluZGV4IDc5NTRjYzcwODZlMzE5NjdkOTQxOGNkNzQ4ZjQ4NTYyYmU2
ODIwMDcuLjQ0YjUwMDdiOTEyNzY2N2VmMmQ3NTU4OTQ4OWI3YjkxYzZmNTRiNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcApAQCAtNTYsNyArNTYsNyBA
QCBib29sIENyeXB0b0tleUFFUzo6aXNWYWxpZEFFU0FsZ29yaXRobShDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIGFsZ29yaXRobSkKICAgICAgICAgfHwgYWxnb3JpdGhtID09IENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19LVzsKIH0KIAotUGFzc1JlZlB0cjxDcnlwdG9LZXlBRVM+IENy
eXB0b0tleUFFUzo6Z2VuZXJhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0s
IHNpemVfdCBsZW5ndGhCaXRzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2Fn
ZXMpCitSZWZQdHI8Q3J5cHRvS2V5QUVTPiBDcnlwdG9LZXlBRVM6OmdlbmVyYXRlKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBzaXplX3QgbGVuZ3RoQml0cywgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzKQogewogICAgIGlmIChsZW5ndGhCaXRzICUg
OCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5oCmluZGV4IDE4YjAxYjRkMmU2MzNiNTY1M2M4ZmYwOGU4NWQxMGM1MGJhZDNm
MzUuLmE2ZWI0MjIzZWQwNGJhZTJmMzAxYmIxMGI3MDYwYTAxZmY4OGU4ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oCkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBib29sIGlzVmFsaWRBRVNBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcik7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlBRVM+IGdlbmVy
YXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIHNpemVfdCBsZW5ndGhCaXRzLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSk7CisgICAgc3RhdGljIFJlZlB0cjxDcnlwdG9LZXlB
RVM+IGdlbmVyYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIHNpemVfdCBsZW5ndGhCaXRz
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSk7CiAKICAgICB2aXJ0dWFsIENyeXB0
b0tleUNsYXNzIGtleUNsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ3J5cHRvS2V5Q2xh
c3M6OkFFUzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlITUFDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMu
Y3BwCmluZGV4IDM4ZTBhMjYxNzU1NDYwN2RjNjU3NTFjMzY3YTE5NzdkNmQyMDczMzAuLmFmNjA0
ZjRmNzdjZTQyZDNhMmRjNGYwNjJkMjU0OTU1NDIyNGIwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCkBAIC00Niw3ICs0Niw3IEBAIENyeXB0b0tl
eUhNQUM6On5DcnlwdG9LZXlITUFDKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxDcnlwdG9LZXlITUFD
PiBDcnlwdG9LZXlITUFDOjpnZW5lcmF0ZShzaXplX3QgbGVuZ3RoQnl0ZXMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNh
Z2VzKQorUmVmUHRyPENyeXB0b0tleUhNQUM+IENyeXB0b0tleUhNQUM6OmdlbmVyYXRlKHNpemVf
dCBsZW5ndGhCeXRlcywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZXMpCiB7CiAgICAgaWYgKCFsZW5ndGhCeXRlcykg
ewogICAgICAgICBzd2l0Y2ggKGhhc2gpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleUhNQUMuaAppbmRleCBjYTUxMzFiZTM4MDYxNGNiMjE3YmE4NTNhMWM0OTExMjdiMTc2
ODhmLi4yODczZGI5MzM2MjI1ZTRhMjYyYjQyYTU0MzdhMDMwOTI1YTc4NDc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oCkBAIC00Miw3ICs0Miw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5DcnlwdG9LZXlITUFDKCk7CiAKICAgICAvLyBJZiBsZW5ndGhC
eXRlcyBpcyAwLCBhIHJlY29tbWVuZGVkIGxlbmd0aCBpcyB1c2VkLCB3aGljaCBpcyB0aGUgc2l6
ZSBvZiB0aGUgYXNzb2NpYXRlZCBoYXNoIGZ1bmN0aW9uJ3MgYmxvY2sgc2l6ZS4KLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlITUFDPiBnZW5lcmF0ZShzaXplX3QgbGVuZ3RoQnl0ZXMs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvS2V5SE1BQz4gZ2VuZXJhdGUoc2l6
ZV90IGxlbmd0aEJ5dGVzLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2gsIGJvb2wgZXh0
cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKIAogICAgIHZpcnR1YWwgQ3J5cHRvS2V5Q2xhc3Mg
a2V5Q2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDcnlwdG9LZXlDbGFzczo6SE1BQzsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0Eu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCmluZGV4IDFhYTUz
MTZjNTRlZjY5OWM0NTBkODM0NDg4Yzc3NDkzNDRiMDc1YTAuLjk4ZTAxMDc3N2YxZDYyOGMyODdl
NDEyOWE4OTIwMzAzYmNiMzY0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleVJTQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0
b0tleVJTQS5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENyeXB0b0tleVJTQShpZGVudGlmaWVyLCB0eXBlLCBwbGF0Zm9ybUtl
eSwgZXh0cmFjdGFibGUsIHVzYWdlKSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENy
eXB0b0tleVJTQT4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIGNvbnN0IENyeXB0
b0tleURhdGFSU0FDb21wb25lbnRzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2Up
OworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBjcmVhdGUoQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciwgY29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSk7CiAgICAgdmlydHVhbCB+Q3J5cHRvS2V5UlNBKCk7CiAK
ICAgICB2b2lkIHJlc3RyaWN0VG9IYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwCmluZGV4IDkxOTkw
MjA0NDE5OTdmNWQ4ZDdmN2QxNjM4NjRjOWRlYTE4ODUzYTEuLmRhZTBiZWMzYjczM2ViMGNlYmUz
NjU0NjFmNWMyMzY5MjYxZDgzMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvS2V5UlNBTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0Ny
eXB0b0tleVJTQU1hYy5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBDcnlwdG9LZXlSU0E6OkNyeXB0
b0tleVJTQShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIENyeXB0b0tleVR5
cGUgdAogewogfQogCi1QYXNzUmVmUHRyPENyeXB0b0tleVJTQT4gQ3J5cHRvS2V5UlNBOjpjcmVh
dGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDcnlwdG9LZXlE
YXRhUlNBQ29tcG9uZW50cyYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2UgdXNhZ2UpCitSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENyeXB0b0tleURhdGFSU0FD
b21wb25lbnRzJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2Fn
ZSkKIHsKICAgICBpZiAoa2V5RGF0YS50eXBlKCkgPT0gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHM6OlR5cGU6OlByaXZhdGUgJiYgIWtleURhdGEuaGFzQWRkaXRpb25hbFByaXZhdGVLZXlQYXJh
bWV0ZXJzKCkpIHsKICAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzE1NDUyMzI0PiB0cmFja3Mg
YWRkaW5nIHN1cHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJk
Q29udHJvbGxlci5jcHAKaW5kZXggMWFlYjYzY2Y1MjkzYzQ2NjhhZjIwZmZjYjExNTg1NjkxMGJm
MmE4Ny4uYmY5NmNiMjdkY2M0Y2YyODQyM2U3MTg3N2U4OWNjZTdhODc4MzlkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcApAQCAtMzIs
OSArMzIsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUJhY2tGb3J3YXJkQ29udHJvbGxl
cjo6QmFja0ZvcndhcmRDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIFBhc3NSZWZQdHI8QmFja0Zvcndh
cmRDbGllbnQ+IGNsaWVudCkKK0JhY2tGb3J3YXJkQ29udHJvbGxlcjo6QmFja0ZvcndhcmRDb250
cm9sbGVyKFBhZ2UmIHBhZ2UsIFJlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4mJiBjbGllbnQpCiAg
ICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fY2xpZW50
KFdURjo6bW92ZShjbGllbnQpKQogewogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIG1fY2xp
ZW50ID0gQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoJnBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmgKaW5kZXggNTg5ZWU1ZWNhMmJlNzA2NmY2
NDNjNjU2NzAwNTcyOTM2ZjY5ZGYzOS4uNWEyNGY4ZWRlMjQ3M2QzZWE4ZWU0ZWMwZWQ1ZDg2ODlk
OGU1Y2NmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJv
bGxlci5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBCYWNrRm9yd2FyZENv
bnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJhY2tGb3J3YXJkQ29udHJvbGxl
cik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEJhY2tGb3J3YXJkQ29u
dHJvbGxlcihQYWdlJiwgUGFzc1JlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4pOworICAgIEJhY2tG
b3J3YXJkQ29udHJvbGxlcihQYWdlJiwgUmVmUHRyPEJhY2tGb3J3YXJkQ2xpZW50PiYmKTsKICAg
ICB+QmFja0ZvcndhcmRDb250cm9sbGVyKCk7CiAKICAgICBCYWNrRm9yd2FyZENsaWVudCogY2xp
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9IaXN0b3J5SXRlbS5jcHAKaW5kZXggYTE5MDJkMzY0NGMwMDJkNWQ4MTFmMmZjMDU2MjliZGM5
ZTVhYzYyYS4uMWZjOWViMzVlYTc2OWY2YjkyN2JjYmU3MDk1ZjNkN2Y2ZGVkM2IwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTM3MSw5ICszNzEsOSBAQCB2b2lk
IEhpc3RvcnlJdGVtOjpzZXRJc1RhcmdldEl0ZW0oYm9vbCBmbGFnKQogICAgIG1faXNUYXJnZXRJ
dGVtID0gZmxhZzsKIH0KIAotdm9pZCBIaXN0b3J5SXRlbTo6c2V0U3RhdGVPYmplY3QoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG9iamVjdCkKK3ZvaWQgSGlzdG9yeUl0ZW06OnNl
dFN0YXRlT2JqZWN0KFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgb2JqZWN0KQogewot
ICAgIG1fc3RhdGVPYmplY3QgPSBvYmplY3Q7CisgICAgbV9zdGF0ZU9iamVjdCA9IFdURjo6bW92
ZShvYmplY3QpOwogfQogCiB2b2lkIEhpc3RvcnlJdGVtOjphZGRDaGlsZEl0ZW0oUmVmPEhpc3Rv
cnlJdGVtPiYmIGNoaWxkKQpAQCAtNTM5LDkgKzUzOSw5IEBAIHZvaWQgSGlzdG9yeUl0ZW06OnNl
dEZvcm1JbmZvRnJvbVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAg
IH0KIH0KIAotdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybURhdGEoUGFzc1JlZlB0cjxGb3JtRGF0
YT4gZm9ybURhdGEpCit2b2lkIEhpc3RvcnlJdGVtOjpzZXRGb3JtRGF0YShSZWZQdHI8Rm9ybURh
dGE+JiYgZm9ybURhdGEpCiB7Ci0gICAgbV9mb3JtRGF0YSA9IGZvcm1EYXRhOworICAgIG1fZm9y
bURhdGEgPSBXVEY6Om1vdmUoZm9ybURhdGEpOwogfQogCiB2b2lkIEhpc3RvcnlJdGVtOjpzZXRG
b3JtQ29udGVudFR5cGUoY29uc3QgU3RyaW5nJiBmb3JtQ29udGVudFR5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0hpc3RvcnlJdGVtLmgKaW5kZXggMDljZjVlZTdlNDRmMGU3MTljZGI3NTZiZGMyM2Iy
YmIwYjgwYzA0NC4uOGQ3NDdjZmQ2ODA0ZGVhNGIyODZhNzAyNDcwMWRjYTUwMjkwZjViZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaApAQCAtMTMwLDggKzEzMCw4IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRpdGxlKGNvbnN0IFN0cmluZyYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SXNUYXJnZXRJdGVtKGJvb2wpOwogICAgIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0U3RhdGVPYmplY3QoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+KTsKLSAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc3RhdGVP
YmplY3QoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlT2JqZWN0OyB9CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTdGF0ZU9iamVjdChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmKTsK
KyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhdGVPYmplY3Q7IH0KIAogICAgIHZvaWQgc2V0SXRlbVNlcXVlbmNlTnVtYmVy
KGxvbmcgbG9uZyBudW1iZXIpIHsgbV9pdGVtU2VxdWVuY2VOdW1iZXIgPSBudW1iZXI7IH0KICAg
ICBsb25nIGxvbmcgaXRlbVNlcXVlbmNlTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtU2Vx
dWVuY2VOdW1iZXI7IH0KQEAgLTE0MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgbG9uZyBsb25n
IGRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50U2VxdWVu
Y2VOdW1iZXI7IH0KIAogICAgIHZvaWQgc2V0Rm9ybUluZm9Gcm9tUmVxdWVzdChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvcm1EYXRhKFBhc3NS
ZWZQdHI8Rm9ybURhdGE+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvcm1EYXRhKFJl
ZlB0cjxGb3JtRGF0YT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb3JtQ29udGVu
dFR5cGUoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIHNldExhc3RWaXNpdFdhc0ZhaWx1cmUo
Ym9vbCB3YXNGYWlsdXJlKSB7IG1fbGFzdFZpc2l0V2FzRmFpbHVyZSA9IHdhc0ZhaWx1cmU7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggZWE5MjU1YzgyMGYyM2Q0
YTk0Y2Q1ZGNjMmFiMGVmYzk2YzE1NjJlMS4uNDRhNmNiMzk2MTMzMTkzOWRlMTQ5ZjQxMGQ0NDE5
NzRjNzEyNzViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTY3
LDcgKzY3LDcgQEAgY2xhc3MgRW1wdHlTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIgZmluYWwgOiBw
dWJsaWMgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyIHsKICAgICB9OwogCiAgICAgc3RydWN0IEVt
cHR5U3RvcmFnZU5hbWVzcGFjZSBmaW5hbCA6IHB1YmxpYyBTdG9yYWdlTmFtZXNwYWNlIHsKLSAg
ICAgICAgdmlydHVhbCBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+KSBvdmVycmlkZSB7IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlTdG9y
YWdlQXJlYSk7IH0KKyAgICAgICAgdmlydHVhbCBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VB
cmVhKFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJikgb3ZlcnJpZGUgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IEVtcHR5U3RvcmFnZUFyZWEpOyB9CiAgICAgICAgIHZpcnR1YWwgUmVmUHRyPFN0b3JhZ2VO
YW1lc3BhY2U+IGNvcHkoUGFnZSopIG92ZXJyaWRlIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0
eVN0b3JhZ2VOYW1lc3BhY2UpOyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMGYz
ZDc0YjQ2NzJkNWUxNmNiOTE3M2M2Yzk5NGIzMDc4MjdmNTI3Yy4uOTk0ZTYyNjI4ZDY3YzQzZDNi
ZGVlZDkyNjhlZjA3ZDcwZTI3ZDk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNTcsNyArMTU3
LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAj
ZW5kaWYKICAgICAsIG1fc2V0dGluZ3MoU2V0dGluZ3M6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1f
cHJvZ3Jlc3Moc3RkOjptYWtlX3VuaXF1ZTxQcm9ncmVzc1RyYWNrZXI+KCpwYWdlQ29uZmlndXJh
dGlvbi5wcm9ncmVzc1RyYWNrZXJDbGllbnQpKQotICAgICwgbV9iYWNrRm9yd2FyZENvbnRyb2xs
ZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrRm9yd2FyZENvbnRyb2xsZXI+KCp0aGlzLCBwYWdlQ29u
ZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCkpCisgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJv
bGxlcihzdGQ6Om1ha2VfdW5pcXVlPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4oKnRoaXMsIFdURjo6
bW92ZShwYWdlQ29uZmlndXJhdGlvbi5iYWNrRm9yd2FyZENsaWVudCkpKQogICAgICwgbV9tYWlu
RnJhbWUoTWFpbkZyYW1lOjpjcmVhdGUoKnRoaXMsIHBhZ2VDb25maWd1cmF0aW9uKSkKICAgICAs
IG1fdGhlbWUoUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSh0aGlzKSkKICAgICAsIG1fZWRpdG9y
Q2xpZW50KCpwYWdlQ29uZmlndXJhdGlvbi5lZGl0b3JDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlLmNwcAppbmRleCAwZmUzMWViZmUzN2ZlMGE3Yzc4ODRiMGFjZWYxZjNlOWJlYmRmYmZh
Li5kZDdkNmQwZWIxYTMzMDQwODVjZmE3NmVkYjFiNTUyZmY2MWE5NjkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZS5jcHAKQEAgLTMzLDE5ICszMywxOCBAQAogI2luY2x1ZGUgIlNjaGVtZVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFN0b3JhZ2U+IFN0b3JhZ2U6OmNy
ZWF0ZShGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKQor
UmVmPFN0b3JhZ2U+IFN0b3JhZ2U6OmNyZWF0ZShGcmFtZSogZnJhbWUsIFJlZlB0cjxTdG9yYWdl
QXJlYT4mJiBzdG9yYWdlQXJlYSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdl
KGZyYW1lLCBzdG9yYWdlQXJlYSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2Uo
ZnJhbWUsIFdURjo6bW92ZShzdG9yYWdlQXJlYSkpKTsKIH0KIAotU3RvcmFnZTo6U3RvcmFnZShG
cmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKQorU3RvcmFn
ZTo6U3RvcmFnZShGcmFtZSogZnJhbWUsIFJlZlB0cjxTdG9yYWdlQXJlYT4mJiBzdG9yYWdlQXJl
YSkKICAgICA6IERPTVdpbmRvd1Byb3BlcnR5KGZyYW1lKQotICAgICwgbV9zdG9yYWdlQXJlYShz
dG9yYWdlQXJlYSkKKyAgICAsIG1fc3RvcmFnZUFyZWEoV1RGOjptb3ZlKHN0b3JhZ2VBcmVhKSkK
IHsKICAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKG1fc3RvcmFnZUFyZWEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2UuaAppbmRleCBjZWI5ZDBjNGZlN2M3NDE5N2VlMGMxOWY2ZTIzY2My
ZmY1Njk3ZGIyLi40NmYwMjY3NDEzY2EwMTZkYTY3OTIzYWVlMDNhN2FiYzgxODE0YzFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2UuaApAQCAtNDEsNyArNDEsNyBAQCB0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwogCiBjbGFzcyBTdG9yYWdlIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVi
bGljIFJlZkNvdW50ZWQ8U3RvcmFnZT4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxTdG9yYWdlPiBjcmVhdGUoRnJhbWUqLCBQYXNzUmVmUHRyPFN0
b3JhZ2VBcmVhPik7CisgICAgc3RhdGljIFJlZjxTdG9yYWdlPiBjcmVhdGUoRnJhbWUqLCBSZWZQ
dHI8U3RvcmFnZUFyZWE+JiYpOwogICAgIH5TdG9yYWdlKCk7CiAKICAgICB1bnNpZ25lZCBsZW5n
dGgoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAg
U3RvcmFnZUFyZWEmIGFyZWEoKSBjb25zdCB7IHJldHVybiAqbV9zdG9yYWdlQXJlYTsgfQogCiBw
cml2YXRlOgotICAgIFN0b3JhZ2UoRnJhbWUqLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPik7Cisg
ICAgU3RvcmFnZShGcmFtZSosIFJlZlB0cjxTdG9yYWdlQXJlYT4mJik7CiAKICAgICBib29sIGlz
RGlzYWJsZWRCeVByaXZhdGVCcm93c2luZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VBcmVhLmgKaW5kZXggZDVjMDVhNjliYThjY2U0MTc0ZDVkZTQ0ODQzMGZlZmI2NTQwMjc2
Yi4uZmUxYTEyODljYTZjYTQxN2ZhYzlmM2NlMmU3MDgyMDEyOWU2MmJmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUFyZWEuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBTdG9yYWdl
QXJlYV9oCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKaW5kZXggNmVj
YTI5YTgzZmZiNjMzZWZhZDIyMjEyMzVmMzI0NGE4MzEwNDY5MC4uNWUzZDMwZjY2ZWVjZWU2MGIz
NmNkM2ZhMjgyZDY0NTU5MmEyMzg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAu
Y3BwCkBAIC00MywxMiArNDMsMTIgQEAgU3RvcmFnZU1hcDo6U3RvcmFnZU1hcCh1bnNpZ25lZCBx
dW90YSkKIHsKIH0KIAotUGFzc1JlZlB0cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpjb3B5KCkK
K1JlZlB0cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpjb3B5KCkKIHsKICAgICBSZWZQdHI8U3Rv
cmFnZU1hcD4gbmV3TWFwID0gY3JlYXRlKG1fcXVvdGFTaXplKTsKICAgICBuZXdNYXAtPm1fbWFw
ID0gbV9tYXA7CiAgICAgbmV3TWFwLT5tX2N1cnJlbnRMZW5ndGggPSBtX2N1cnJlbnRMZW5ndGg7
Ci0gICAgcmV0dXJuIG5ld01hcC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIG5ld01hcDsKIH0KIAog
dm9pZCBTdG9yYWdlTWFwOjppbnZhbGlkYXRlSXRlcmF0b3IoKQpAQCAtOTksNyArOTksNyBAQCBT
dHJpbmcgU3RvcmFnZU1hcDo6Z2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKICAgICBy
ZXR1cm4gbV9tYXAuZ2V0KGtleSk7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZU1hcD4gU3RvcmFn
ZU1hcDo6c2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgU3Ry
aW5nJiBvbGRWYWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pCitSZWZQdHI8U3RvcmFnZU1hcD4g
U3RvcmFnZU1hcDo6c2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSwgU3RyaW5nJiBvbGRWYWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pCiB7CiAgICAgQVNTRVJU
KCF2YWx1ZS5pc051bGwoKSk7CiAgICAgcXVvdGFFeGNlcHRpb24gPSBmYWxzZTsKQEAgLTEwOSw3
ICsxMDksNyBAQCBQYXNzUmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6OnNldEl0ZW0oY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdQogICAgIGlmIChyZWZDb3VudCgpID4g
MSkgewogICAgICAgICBSZWZQdHI8U3RvcmFnZU1hcD4gbmV3U3RvcmFnZU1hcCA9IGNvcHkoKTsK
ICAgICAgICAgbmV3U3RvcmFnZU1hcC0+c2V0SXRlbShrZXksIHZhbHVlLCBvbGRWYWx1ZSwgcXVv
dGFFeGNlcHRpb24pOwotICAgICAgICByZXR1cm4gbmV3U3RvcmFnZU1hcC5yZWxlYXNlKCk7Cisg
ICAgICAgIHJldHVybiBuZXdTdG9yYWdlTWFwOwogICAgIH0KIAogICAgIC8vIFF1b3RhIHRyYWNr
aW5nLiAgVGhpcyBpcyBkb25lIGluIGEgY291cGxlIG9mIHN0ZXBzIHRvIGtlZXAgdGhlIG92ZXJm
bG93IHRyYWNraW5nIHNpbXBsZS4KQEAgLTEyOSw3ICsxMjksNyBAQCBQYXNzUmVmUHRyPFN0b3Jh
Z2VNYXA+IFN0b3JhZ2VNYXA6OnNldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgdmFsdQogICAgIGJvb2wgb3ZlclF1b3RhID0gbmV3TGVuZ3RoID4gbV9xdW90YVNpemUgLyBz
aXplb2YoVUNoYXIpOwogICAgIGlmIChtX3F1b3RhU2l6ZSAhPSBub1F1b3RhICYmIChvdmVyZmxv
dyB8fCBvdmVyUXVvdGEpKSB7CiAgICAgICAgIHF1b3RhRXhjZXB0aW9uID0gdHJ1ZTsKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBtX2N1cnJl
bnRMZW5ndGggPSBuZXdMZW5ndGg7CiAKQEAgLTEzOSwxMCArMTM5LDEwIEBAIFBhc3NSZWZQdHI8
U3RvcmFnZU1hcD4gU3RvcmFnZU1hcDo6c2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiB2YWx1CiAKICAgICBpbnZhbGlkYXRlSXRlcmF0b3IoKTsKIAotICAgIHJldHVybiAw
OworICAgIHJldHVybiBudWxscHRyOwogfQogCi1QYXNzUmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3Jh
Z2VNYXA6OnNldEl0ZW1JZ25vcmluZ1F1b3RhKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIHZhbHVlKQorUmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6OnNldEl0ZW1JZ25vcmlu
Z1F1b3RhKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIFRl
bXBvcmFyeUNoYW5nZTx1bnNpZ25lZD4gcXVvdGFTaXplQ2hhbmdlKG1fcXVvdGFTaXplLCBub1F1
b3RhKTsKIApAQCAtMTUyLDE3ICsxNTIsMTcgQEAgUGFzc1JlZlB0cjxTdG9yYWdlTWFwPiBTdG9y
YWdlTWFwOjpzZXRJdGVtSWdub3JpbmdRdW90YShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QKICAg
ICBSZWZQdHI8U3RvcmFnZU1hcD4gbWFwID0gc2V0SXRlbShrZXksIHZhbHVlLCBvbGRWYWx1ZSwg
cXVvdGFFeGNlcHRpb24pOwogICAgIEFTU0VSVCghcXVvdGFFeGNlcHRpb24pOwogCi0gICAgcmV0
dXJuIG1hcC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIG1hcDsKIH0KIAotUGFzc1JlZlB0cjxTdG9y
YWdlTWFwPiBTdG9yYWdlTWFwOjpyZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcm
IG9sZFZhbHVlKQorUmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6OnJlbW92ZUl0ZW0oY29u
c3QgU3RyaW5nJiBrZXksIFN0cmluZyYgb2xkVmFsdWUpCiB7CiAgICAgLy8gSW1wbGVtZW50IGNv
cHktb24td3JpdGUgc2VtYW50aWNzIGhlcmUuICBXZSdyZSBndWFyYW50ZWVkIHRoYXQgdGhlIG9u
bHkgcmVmcyBvZiBTdG9yYWdlTWFwcyBiZWxvbmcgdG8gU3RvcmFnZSBvYmplY3RzCiAgICAgLy8g
c28gaWYgbW9yZSB0aGFuIG9uZSBTdG9yYWdlIG9iamVjdCByZWZzIHRoaXMgbWFwLCBjb3B5IGl0
IGJlZm9yZSBtdXRhdGluZyBpdC4KICAgICBpZiAocmVmQ291bnQoKSA+IDEpIHsKICAgICAgICAg
UmVmUHRyPFN0b3JhZ2VNYXA+IG5ld1N0b3JhZ2UgPSBjb3B5KCk7CiAgICAgICAgIG5ld1N0b3Jh
Z2UtPnJlbW92ZUl0ZW0oa2V5LCBvbGRWYWx1ZSk7Ci0gICAgICAgIHJldHVybiBuZXdTdG9yYWdl
LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIG5ld1N0b3JhZ2U7CiAgICAgfQogCiAgICAgb2xk
VmFsdWUgPSBtX21hcC50YWtlKGtleSk7CkBAIC0xNzQsNyArMTc0LDcgQEAgUGFzc1JlZlB0cjxT
dG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpyZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBTdHJp
bmcmIG9sZFZhbHUKICAgICBBU1NFUlQobV9jdXJyZW50TGVuZ3RoIC0gb2xkVmFsdWUubGVuZ3Ro
KCkgPD0gbV9jdXJyZW50TGVuZ3RoKTsKICAgICBtX2N1cnJlbnRMZW5ndGggLT0gb2xkVmFsdWUu
bGVuZ3RoKCk7CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9v
bCBTdG9yYWdlTWFwOjpjb250YWlucyhjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5oIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTWFwLmgKaW5kZXggNWRlMTkxNWYwZWI3MDc5OTJlNTVhNGE1Mjg4NTEw
NTg3ZGVmNGM2Yi4uNzU0YzI0ZWU5NzE0MmY2MTVkYjdjMzI4YWNlMGU0ZjQwMTg2MjMyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUg
U3RvcmFnZU1hcF9oCiAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00
Miw5ICs0MSw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcga2V5KHVuc2lnbmVkIGluZGV4KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZ2V0SXRlbShjb25zdCBTdHJpbmcmKSBjb25zdDsK
LSAgICBXRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPFN0b3JhZ2VNYXA+IHNldEl0ZW0oY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIFN0cmluZyYgb2xkVmFsdWUsIGJvb2wm
IHF1b3RhRXhjZXB0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPFN0b3JhZ2VN
YXA+IHNldEl0ZW1JZ25vcmluZ1F1b3RhKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IHZhbHVlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPFN0b3JhZ2VNYXA+IHJlbW92
ZUl0ZW0oY29uc3QgU3RyaW5nJiwgU3RyaW5nJiBvbGRWYWx1ZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgUmVmUHRyPFN0b3JhZ2VNYXA+IHNldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0
cmluZyYgdmFsdWUsIFN0cmluZyYgb2xkVmFsdWUsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8U3RvcmFnZU1hcD4gc2V0SXRlbUlnbm9yaW5nUXVvdGEo
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZlB0cjxTdG9yYWdlTWFwPiByZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYsIFN0cmluZyYg
b2xkVmFsdWUpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb250YWlucyhjb25zdCBTdHJp
bmcmIGtleSkgY29uc3Q7CiAKQEAgLTU3LDcgKzU2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IFN0b3JhZ2VNYXAodW5zaWduZWQgcXVvdGEpOwotICAgIFBhc3NSZWZQdHI8
U3RvcmFnZU1hcD4gY29weSgpOworICAgIFJlZlB0cjxTdG9yYWdlTWFwPiBjb3B5KCk7CiAgICAg
dm9pZCBpbnZhbGlkYXRlSXRlcmF0b3IoKTsKICAgICB2b2lkIHNldEl0ZXJhdG9yVG9JbmRleCh1
bnNpZ25lZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5h
bWVzcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgKaW5k
ZXggYmRlOTVmNTE4MDc3OWFmYTQ4MTllOTNiMzZmOTA1NTY4OWVlNDBlMy4uM2YyMWQwYmUxNDg2
OTY0N2ZlNTZjNDRmYzUzYzkzNTZmMGZhNWViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgU3RvcmFnZU5hbWVz
cGFjZV9oCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDAsNyArMzksNyBAQCBjbGFzcyBTdG9yYWdlQXJlYTsKIGNsYXNzIFN0b3JhZ2VOYW1l
c3BhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlTmFtZXNwYWNlPiB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+U3RvcmFnZU5hbWVzcGFjZSgpIHsgfQotICAgIHZpcnR1YWwgUmVmUHRyPFN0
b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPikgPSAwOwor
ICAgIHZpcnR1YWwgUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+JiYpID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBj
b3B5KFBhZ2UqIG5ld1BhZ2UpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCmluZGV4IDZhYTBmMzMxNjk5ZmQwMjllMTBiZmE3M2E1
MWFiZDU5NmVhNzk1OGQuLjNiNWE5ODM0NjcxZWUyYTU4ODdlNzhiODJlMzA5MmY4MjY5Mzk4YTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApA
QCAtOTksMTggKzk5LDE3IEBAIFJlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNw
YWNlSW1wbDo6Y29weShQYWdlKikKICAgICByZXR1cm4gbmV3TmFtZXNwYWNlOwogfQogCi1SZWZQ
dHI8U3RvcmFnZUFyZWE+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzdG9yYWdlQXJlYShQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBPcmlnaW4pCitSZWZQdHI8U3RvcmFnZUFyZWE+IFN0b3Jh
Z2VOYW1lc3BhY2VJbXBsOjpzdG9yYWdlQXJlYShSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgb3Jp
Z2luKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKCFtX2lzU2h1
dGRvd24pOwogCi0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBwcnBPcmlnaW47
CiAgICAgUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gc3RvcmFnZUFyZWE7CiAgICAgaWYgKChzdG9y
YWdlQXJlYSA9IG1fc3RvcmFnZUFyZWFNYXAuZ2V0KG9yaWdpbikpKQogICAgICAgICByZXR1cm4g
c3RvcmFnZUFyZWE7CiAKLSAgICBzdG9yYWdlQXJlYSA9IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRl
KG1fc3RvcmFnZVR5cGUsIG9yaWdpbiwgbV9zeW5jTWFuYWdlciwgbV9xdW90YSk7Ci0gICAgbV9z
dG9yYWdlQXJlYU1hcC5zZXQob3JpZ2luLnJlbGVhc2UoKSwgc3RvcmFnZUFyZWEpOworICAgIHN0
b3JhZ2VBcmVhID0gU3RvcmFnZUFyZWFJbXBsOjpjcmVhdGUobV9zdG9yYWdlVHlwZSwgb3JpZ2lu
LmNvcHlSZWYoKSwgbV9zeW5jTWFuYWdlciwgbV9xdW90YSk7CisgICAgbV9zdG9yYWdlQXJlYU1h
cC5zZXQoV1RGOjptb3ZlKG9yaWdpbiksIHN0b3JhZ2VBcmVhKTsKICAgICByZXR1cm4gc3RvcmFn
ZUFyZWE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBs
LmgKaW5kZXggNzBjNmI1NzMxNGU3Y2JhMzllYjE5YTNjNzhhODcxYTdjZDhiYzQ4Ni4uY2IzNzM2
ZmQyOWFlNTQ2ZTNhYTg5MWJiMDk5MjQ3NmMyMTIxYmI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSk7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxTdG9yYWdl
QXJlYT4gc3RvcmFnZUFyZWEoUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pICBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiYmKSAgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBSZWZQdHI8U3RvcmFnZU5hbWVz
cGFjZT4gY29weShQYWdlKiBuZXdQYWdlKSBvdmVycmlkZTsKIAogICAgIHR5cGVkZWYgSGFzaE1h
cDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPj4gU3RvcmFn
ZUFyZWFNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCAzNTc3OGY4MjE1YTk2YTA1NGVlN2Q3
ZGU4ODdjMTRmYmQ3Y2RmYTIzLi4xYjMxYzAyMTdhODI5YmQxYTcxMDIwZGRmMGFjNjc3NjBkNGMy
OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTdG9yYWdl
TmFtZXNwYWNlSW1wbDo6ZGlkRGVzdHJveVN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VBcmVhTWFwJiBt
YXApCiAgICAgbV9zdG9yYWdlQXJlYU1hcHMucmVtb3ZlKCZtYXAuc2VjdXJpdHlPcmlnaW4oKSk7
CiB9CiAKLVJlZlB0cjxTdG9yYWdlQXJlYT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OnN0b3JhZ2VB
cmVhKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQorUmVmUHRyPFN0
b3JhZ2VBcmVhPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3RvcmFnZUFyZWEoUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiYmIHNlY3VyaXR5T3JpZ2luKQogewogICAgIFJlZlB0cjxTdG9yYWdlQXJlYU1h
cD4gbWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCmluZGV4IDM3ODE3MTczZTI0ODViODY2YThhZjMyOTM3
NTUxYzc3ZDI2ZDgzMjMuLjY4OGVjOWE1NDBlOGY5OTExOWY3YjgyNjUwMTFhYjY0MDQ5YmJiYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgU3RvcmFnZU5hbWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUsIHVp
bnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExl
dmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpOwogCi0gICAgdmlydHVhbCBSZWZQdHI8
V2ViQ29yZTo6U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpTdG9y
YWdlQXJlYT4gc3RvcmFnZUFyZWEoUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlPiBj
b3B5KFdlYkNvcmU6OlBhZ2UqKSBvdmVycmlkZTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OlN0b3Jh
Z2VUeXBlIG1fc3RvcmFnZVR5cGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261092</attachid>
            <date>2015-09-13 18:08:28 -0700</date>
            <delta_ts>2015-09-13 19:36:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149091-20150914100818.patch</filename>
            <type>text/plain</type>
            <size>29294</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5Njc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgwNTQwOTNjZjAxOTU4
OGIwY2E4OGMxYWMzYTQ3ZDdkNWI5NjBjYy4uNjY1ZDIxYjhjZDQwOWNlYzA1N2QyNTFlYWI4NDU2
N2E0YTlhNTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTA5LTEzICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYWxs
IHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBjcnlwdG8sIHN0b3JhZ2UsIGFuZCBoaXN0b3J5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkwOTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgorCisgICAgICAgICogY3J5cHRvL0NyeXB0
b0tleVBhaXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5UGFpcjo6Q3J5cHRvS2V5
UGFpcik6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVBhaXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0tleVBhaXI6OmNyZWF0ZSk6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0
by5oOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjpjcmVhdGUpOgorICAgICAgICAq
IGNyeXB0by9nbnV0bHMvQ3J5cHRvS2V5UlNBR251VExTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0tleVJTQTo6Y3JlYXRlKToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlB
RVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5QUVTOjpnZW5lcmF0ZSk6CisgICAg
ICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmg6CisgICAgICAgICogY3J5cHRvL2tleXMv
Q3J5cHRvS2V5SE1BQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlITUFDOjpnZW5l
cmF0ZSk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oOgorICAgICAgICAq
IGNyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oOgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRv
S2V5UlNBTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6Y3JlYXRlKToK
KyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OkJhY2tGb3J3YXJkQ29udHJvbGxlcik6Cisg
ICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBoaXN0
b3J5L0hpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpzZXRT
dGF0ZU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0Rm9ybURhdGEp
OgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okhp
c3RvcnlJdGVtOjpzdGF0ZU9iamVjdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHA6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBh
Z2UpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZTo6U3RvcmFnZSk6Cisg
ICAgICAgICogc3RvcmFnZS9TdG9yYWdlLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlQXJl
YS5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdG9yYWdlTWFwOjpjb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYXA6OnNldEl0
ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hcDo6c2V0SXRlbUlnbm9yaW5nUXVvdGEp
OgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hcDo6cmVtb3ZlSXRlbSk6CisgICAgICAgICog
c3RvcmFnZS9TdG9yYWdlTWFwLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
Lmg6CisKIDIwMTUtMDktMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICB3aW5kb3cuRXZlbnRUYXJnZXQgc2hvdWxkIGV4aXN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiOTM0ZTgz
OWVlOTA5YmI3YmVkYzA2M2YzODI2Y2RkNWMyNTAyYzMuLjRhY2U3YjhjYzViODE3YjFmYWIyOTE2
MTI0ZDI4YWRmZDY3NGM5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDktMTMg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92
ZSBhbGwgdXNlcyBvZiBQYXNzUmVmUHRyIGluIGNyeXB0bywgc3RvcmFnZSwgYW5kIGhpc3RvcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTA5MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgKiBTdG9yYWdl
L1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VOYW1l
c3BhY2VJbXBsOjpzdG9yYWdlQXJlYSk6CisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5oOgorCiAyMDE1LTA4LTI3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgSXNvbGF0ZSBTb3VyY2UgZGlyZWN0b3JpZXMgaW4gQ01h
a2UgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjOThhNGZhNTZkOGE5Nzc4ZDE4NDVjN2EzNGZmYThiZjUw
YjA5YzliLi42M2Y1ODk4MDRhMjY5YmU4MmNmNGNhNTJmMmMxNzcyMTk3OWNkYjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDktMTMgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlcyBvZiBQYXNzUmVmUHRy
IGluIGNyeXB0bywgc3RvcmFnZSwgYW5kIGhpc3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
ZHJlYXMgS2xpbmcuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3Rv
cmFnZUFyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5oOgorCiAyMDE1LTA5LTEzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgRGVmaW5lIEhBVkVfTElOS19QUkVWSUVXIGluIFdlYktpdDIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlQYWlyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9LZXlQYWlyLmNwcAppbmRleCA2OTNkODYzMDE0ODI5YmQyZjU5NGQyN2Jk
ZmJmY2U1YWEyMjcwNDlmLi5lMGUyNzM5ZThjMTU5OGFhNmFiMTRhYzg2YjE0OTM4OTFkOTdiMDAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5UGFpci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVBhaXIuY3BwCkBAIC0zMCw5ICszMCw5
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ3J5cHRvS2V5UGFpcjo6Q3J5cHRvS2V5UGFp
cihQYXNzUmVmUHRyPENyeXB0b0tleT4gcHVibGljS2V5LCBQYXNzUmVmUHRyPENyeXB0b0tleT4g
cHJpdmF0ZUtleSkKLSAgICA6IG1fcHVibGljS2V5KHB1YmxpY0tleSkKLSAgICAsIG1fcHJpdmF0
ZUtleShwcml2YXRlS2V5KQorQ3J5cHRvS2V5UGFpcjo6Q3J5cHRvS2V5UGFpcihSZWZQdHI8Q3J5
cHRvS2V5PiYmIHB1YmxpY0tleSwgUmVmUHRyPENyeXB0b0tleT4mJiBwcml2YXRlS2V5KQorICAg
IDogbV9wdWJsaWNLZXkoV1RGOjptb3ZlKHB1YmxpY0tleSkpCisgICAgLCBtX3ByaXZhdGVLZXko
V1RGOjptb3ZlKHByaXZhdGVLZXkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvS2V5UGFpci5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tl
eVBhaXIuaAppbmRleCBmYjI3Y2U5ODRiOWRjMTY4ZDc0ZTNlNzcyZjk1MDgxNjA4ZGVjY2Q1Li43
MTMwOWM5ZjIyNjk3NTkwMmE1NDk0ZWM5ZDBjNmNhMzIzNjBiNjBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5UGFpci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9LZXlQYWlyLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgQ3J5cHRvS2V5
UGFpcl9oCiAKICNpbmNsdWRlICJDcnlwdG9LZXkuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCkBAIC0zNyw5ICszNiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRv
S2V5UGFpciA6IHB1YmxpYyBSZWZDb3VudGVkPENyeXB0b0tleVBhaXI+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPENyeXB0b0tleVBhaXI+IGNyZWF0ZShQYXNzUmVmUHRyPENyeXB0b0tleT4g
cHVibGljS2V5LCBQYXNzUmVmUHRyPENyeXB0b0tleT4gcHJpdmF0ZUtleSkKKyAgICBzdGF0aWMg
UmVmPENyeXB0b0tleVBhaXI+IGNyZWF0ZShSZWZQdHI8Q3J5cHRvS2V5PiYmIHB1YmxpY0tleSwg
UmVmUHRyPENyeXB0b0tleT4mJiBwcml2YXRlS2V5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ3J5cHRvS2V5UGFpcihwdWJsaWNLZXksIHByaXZhdGVLZXkpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvS2V5UGFpcihXVEY6Om1vdmUocHVibGljS2V5
KSwgV1RGOjptb3ZlKHByaXZhdGVLZXkpKSk7CiAgICAgfQogICAgIH5DcnlwdG9LZXlQYWlyKCk7
CiAKQEAgLTQ3LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIENyeXB0b0tleSogcHJpdmF0ZUtleSgp
IHsgcmV0dXJuIG1fcHJpdmF0ZUtleS5nZXQoKTsgfQogCiBwcml2YXRlOgotICAgIENyeXB0b0tl
eVBhaXIoUGFzc1JlZlB0cjxDcnlwdG9LZXk+IHB1YmxpY0tleSwgUGFzc1JlZlB0cjxDcnlwdG9L
ZXk+IHByaXZhdGVLZXkpOworICAgIENyeXB0b0tleVBhaXIoUmVmUHRyPENyeXB0b0tleT4mJiBw
dWJsaWNLZXksIFJlZlB0cjxDcnlwdG9LZXk+JiYgcHJpdmF0ZUtleSk7CiAKICAgICBSZWZQdHI8
Q3J5cHRvS2V5PiBtX3B1YmxpY0tleTsKICAgICBSZWZQdHI8Q3J5cHRvS2V5PiBtX3ByaXZhdGVL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKaW5kZXggNzBkNDkwYzQxNWRkNzdh
MTNiMTllOGIzODE4ZmZiNTYyNTU2MzM4YS4uZWQ2Y2NiN2Y5MTExMTg1ZWI3NDBiNDMwNWFkZjJh
ZWY4YjY5Mzg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0
by5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaApAQCAtMjYsOSAr
MjYsOSBAQAogI2lmbmRlZiBTdWJ0bGVDcnlwdG9faAogI2RlZmluZSBTdWJ0bGVDcnlwdG9faAog
Ci0jaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiIAog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAj
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgRG9jdW1l
bnQ7CiAKIGNsYXNzIFN1YnRsZUNyeXB0byA6IHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlciwgcHVibGljIFJlZkNvdW50ZWQ8U3VidGxlQ3J5cHRvPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3VidGxlQ3J5cHRvPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KSB7
IHJldHVybiBhZG9wdFJlZihuZXcgU3VidGxlQ3J5cHRvKGRvY3VtZW50KSk7IH0KKyAgICBzdGF0
aWMgUmVmPFN1YnRsZUNyeXB0bz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTdWJ0bGVDcnlwdG8oZG9jdW1lbnQpKTsgfQogCiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9n
bnV0bHMvQ3J5cHRvS2V5UlNBR251VExTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0
bHMvQ3J5cHRvS2V5UlNBR251VExTLmNwcAppbmRleCBlZDZiNTc4NWJlYmJiZTA0NjE4ODQ4YTgz
ZWM2YWNmYzcxYTkxZjRmLi5mNDgyMjRiNGQ1ZmI3YzBjOWM3ZjAzNmViZjg2MGRmNmE5YzRiMDYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ251dGxzL0NyeXB0b0tleVJTQUdu
dVRMUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9LZXlSU0FH
bnVUTFMuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIENyeXB0b0tleVJTQTo6Q3J5cHRvS2V5UlNBKENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ3J5cHRvS2V5VHlwZSB0CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotUGFzc1JlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tl
eVJTQTo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlIHVzYWdlKQorUmVmUHRyPENyeXB0b0tleVJTQT4gQ3J5cHRvS2V5UlNBOjpj
cmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50cyYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2UgdXNhZ2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBVTlVTRURfUEFSQU0o
aWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlBRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNw
cAppbmRleCA3OTU0Y2M3MDg2ZTMxOTY3ZDk0MThjZDc0OGY0ODU2MmJlNjgyMDA3Li40NGI1MDA3
YjkxMjc2NjdlZjJkNzU1ODk0ODliN2I5MWM2ZjU0YjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBDcnlwdG9L
ZXlBRVM6OmlzVmFsaWRBRVNBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdv
cml0aG0pCiAgICAgICAgIHx8IGFsZ29yaXRobSA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpBRVNfS1c7CiB9CiAKLVBhc3NSZWZQdHI8Q3J5cHRvS2V5QUVTPiBDcnlwdG9LZXlBRVM6Omdl
bmVyYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBzaXplX3QgbGVuZ3Ro
Qml0cywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2VzKQorUmVmUHRyPENy
eXB0b0tleUFFUz4gQ3J5cHRvS2V5QUVTOjpnZW5lcmF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGFsZ29yaXRobSwgc2l6ZV90IGxlbmd0aEJpdHMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlIHVzYWdlcykKIHsKICAgICBpZiAobGVuZ3RoQml0cyAlIDgpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5QUVTLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaApp
bmRleCAxOGIwMWI0ZDJlNjMzYjU2NTNjOGZmMDhlODVkMTBjNTBiYWQzZjM1Li5hNmViNDIyM2Vk
MDRiYWUyZjMwMWJiMTBiNzA2MGEwMWZmODhlOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlBRVMuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgYm9vbCBpc1ZhbGlkQUVTQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIpOwog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3J5cHRvS2V5QUVTPiBnZW5lcmF0ZShDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyLCBzaXplX3QgbGVuZ3RoQml0cywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UpOworICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvS2V5QUVTPiBnZW5lcmF0ZShD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBzaXplX3QgbGVuZ3RoQml0cywgYm9vbCBleHRyYWN0
YWJsZSwgQ3J5cHRvS2V5VXNhZ2UpOwogCiAgICAgdmlydHVhbCBDcnlwdG9LZXlDbGFzcyBrZXlD
bGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENyeXB0b0tleUNsYXNzOjpBRVM7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcAppbmRleCAzOGUw
YTI2MTc1NTQ2MDdkYzY1NzUxYzM2N2ExOTc3ZDZkMjA3MzMwLi5hZjYwNGY0Zjc3Y2U0MmQzYTJk
YzRmMDYyZDI1NDk1NTQyMjRiMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlITUFDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9D
cnlwdG9LZXlITUFDLmNwcApAQCAtNDYsNyArNDYsNyBAQCBDcnlwdG9LZXlITUFDOjp+Q3J5cHRv
S2V5SE1BQygpCiB7CiB9CiAKLVBhc3NSZWZQdHI8Q3J5cHRvS2V5SE1BQz4gQ3J5cHRvS2V5SE1B
Qzo6Z2VuZXJhdGUoc2l6ZV90IGxlbmd0aEJ5dGVzLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGhhc2gsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcykKK1JlZlB0cjxD
cnlwdG9LZXlITUFDPiBDcnlwdG9LZXlITUFDOjpnZW5lcmF0ZShzaXplX3QgbGVuZ3RoQnl0ZXMs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UgdXNhZ2VzKQogewogICAgIGlmICghbGVuZ3RoQnl0ZXMpIHsKICAgICAgICAgc3dp
dGNoIChoYXNoKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlITUFDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmgK
aW5kZXggY2E1MTMxYmUzODA2MTRjYjIxN2JhODUzYTFjNDkxMTI3YjE3Njg4Zi4uMjg3M2RiOTMz
NjIyNWU0YTI2MmI0MmE1NDM3YTAzMDkyNWE3ODQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9rZXlzL0NyeXB0b0tleUhNQUMuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+Q3J5cHRvS2V5SE1BQygpOwogCiAgICAgLy8gSWYgbGVuZ3RoQnl0ZXMgaXMgMCwgYSBy
ZWNvbW1lbmRlZCBsZW5ndGggaXMgdXNlZCwgd2hpY2ggaXMgdGhlIHNpemUgb2YgdGhlIGFzc29j
aWF0ZWQgaGFzaCBmdW5jdGlvbidzIGJsb2NrIHNpemUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
Q3J5cHRvS2V5SE1BQz4gZ2VuZXJhdGUoc2l6ZV90IGxlbmd0aEJ5dGVzLCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGhhc2gsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKKyAg
ICBzdGF0aWMgUmVmUHRyPENyeXB0b0tleUhNQUM+IGdlbmVyYXRlKHNpemVfdCBsZW5ndGhCeXRl
cywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZSk7CiAKICAgICB2aXJ0dWFsIENyeXB0b0tleUNsYXNzIGtleUNsYXNzKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ3J5cHRvS2V5Q2xhc3M6OkhNQUM7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAppbmRleCAxYWE1MzE2YzU0ZWY2OTljNDUw
ZDgzNDQ4OGM3NzQ5MzQ0YjA3NWEwLi45OGUwMTA3NzdmMWQ2MjhjMjg3ZTQxMjlhODkyMDMwM2Jj
YjM2NDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlS
U0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDcnlwdG9LZXlSU0EoaWRlbnRpZmllciwgdHlwZSwgcGxhdGZvcm1LZXksIGV4dHJhY3RhYmxl
LCB1c2FnZSkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlSU0E+IGNy
ZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKKyAgICBzdGF0aWMg
UmVmUHRyPENyeXB0b0tleVJTQT4gY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIGNv
bnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UpOwogICAgIHZpcnR1YWwgfkNyeXB0b0tleVJTQSgpOwogCiAgICAgdm9pZCByZXN0
cmljdFRvSGFzaChDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvQ3J5cHRvS2V5UlNBTWFjLmNwcAppbmRleCA5MTk5MDIwNDQxOTk3ZjVkOGQ3
ZjdkMTYzODY0YzlkZWExODg1M2ExLi5kYWUwYmVjM2I3MzNlYjBjZWJlMzY1NDYxZjVjMjM2OTI2
MWQ4MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleVJT
QU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMu
Y3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgQ3J5cHRvS2V5UlNBOjpDcnlwdG9LZXlSU0EoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBDcnlwdG9LZXlUeXBlIHQKIHsKIH0KIAot
UGFzc1JlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tleVJTQTo6Y3JlYXRlKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlKQorUmVm
UHRyPENyeXB0b0tleVJTQT4gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYga2V5
RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UpCiB7CiAgICAgaWYg
KGtleURhdGEudHlwZSgpID09IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpUeXBlOjpQcml2
YXRlICYmICFrZXlEYXRhLmhhc0FkZGl0aW9uYWxQcml2YXRlS2V5UGFyYW1ldGVycygpKSB7CiAg
ICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8xNTQ1MjMyND4gdHJhY2tzIGFkZGluZyBzdXBwb3J0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3Bw
CmluZGV4IDFhZWI2M2NmNTI5M2M0NjY4YWYyMGZmY2IxMTU4NTY5MTBiZjJhODcuLmJmOTZjYjI3
ZGNjNGNmMjg0MjNlNzE4NzdlODljY2U3YTg3ODM5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAKQEAgLTMyLDkgKzMyLDkgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1CYWNrRm9yd2FyZENvbnRyb2xsZXI6OkJhY2tGb3J3YXJk
Q29udHJvbGxlcihQYWdlJiBwYWdlLCBQYXNzUmVmUHRyPEJhY2tGb3J3YXJkQ2xpZW50PiBjbGll
bnQpCitCYWNrRm9yd2FyZENvbnRyb2xsZXI6OkJhY2tGb3J3YXJkQ29udHJvbGxlcihQYWdlJiBw
YWdlLCBSZWZQdHI8QmFja0ZvcndhcmRDbGllbnQ+JiYgY2xpZW50KQogICAgIDogbV9wYWdlKHBh
Z2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX2NsaWVudChXVEY6Om1vdmUoY2xp
ZW50KSkKIHsKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICBtX2NsaWVudCA9IEJhY2tGb3J3
YXJkTGlzdDo6Y3JlYXRlKCZwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5oCmluZGV4IDU4OWVlNWVjYTJiZTcwNjZmNjQzYzY1NjcwMDU3Mjkz
NmY2OWRmMzkuLjVhMjRmOGVkZTI0NzNkM2VhOGVlNGVjMGVkNWQ4Njg5ZDhlNWNjZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaApAQCAtMzks
NyArMzksNyBAQCBjbGFzcyBQYWdlOwogY2xhc3MgQmFja0ZvcndhcmRDb250cm9sbGVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShCYWNrRm9yd2FyZENvbnRyb2xsZXIpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBCYWNrRm9yd2FyZENvbnRyb2xsZXIoUGFnZSYs
IFBhc3NSZWZQdHI8QmFja0ZvcndhcmRDbGllbnQ+KTsKKyAgICBCYWNrRm9yd2FyZENvbnRyb2xs
ZXIoUGFnZSYsIFJlZlB0cjxCYWNrRm9yd2FyZENsaWVudD4mJik7CiAgICAgfkJhY2tGb3J3YXJk
Q29udHJvbGxlcigpOwogCiAgICAgQmFja0ZvcndhcmRDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0u
Y3BwCmluZGV4IGExOTAyZDM2NDRjMDAyZDVkODExZjJmYzA1NjI5YmRjOWU1YWM2MmEuLjFmYzll
YjM1ZWE3NjlmNmI5MjdiY2JlNzA5NWYzZDdmNmRlZDNiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0zNzEsOSArMzcxLDkgQEAgdm9pZCBIaXN0b3J5SXRlbTo6
c2V0SXNUYXJnZXRJdGVtKGJvb2wgZmxhZykKICAgICBtX2lzVGFyZ2V0SXRlbSA9IGZsYWc7CiB9
CiAKLXZvaWQgSGlzdG9yeUl0ZW06OnNldFN0YXRlT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBvYmplY3QpCit2b2lkIEhpc3RvcnlJdGVtOjpzZXRTdGF0ZU9iamVjdChS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG9iamVjdCkKIHsKLSAgICBtX3N0YXRlT2Jq
ZWN0ID0gb2JqZWN0OworICAgIG1fc3RhdGVPYmplY3QgPSBXVEY6Om1vdmUob2JqZWN0KTsKIH0K
IAogdm9pZCBIaXN0b3J5SXRlbTo6YWRkQ2hpbGRJdGVtKFJlZjxIaXN0b3J5SXRlbT4mJiBjaGls
ZCkKQEAgLTUzOSw5ICs1MzksOSBAQCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRGb3JtSW5mb0Zyb21S
ZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICB9CiB9CiAKLXZvaWQg
SGlzdG9yeUl0ZW06OnNldEZvcm1EYXRhKFBhc3NSZWZQdHI8Rm9ybURhdGE+IGZvcm1EYXRhKQor
dm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybURhdGEoUmVmUHRyPEZvcm1EYXRhPiYmIGZvcm1EYXRh
KQogewotICAgIG1fZm9ybURhdGEgPSBmb3JtRGF0YTsKKyAgICBtX2Zvcm1EYXRhID0gV1RGOjpt
b3ZlKGZvcm1EYXRhKTsKIH0KIAogdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUNvbnRlbnRUeXBl
KGNvbnN0IFN0cmluZyYgZm9ybUNvbnRlbnRUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5
SXRlbS5oCmluZGV4IDA5Y2Y1ZWU3ZTQ0ZjBlNzE5Y2RiNzU2YmRjMjNiMmJiMGI4MGMwNDQuLjhk
NzQ3Y2ZkNjgwNGRlYTRiMjg2YTcwMjQ3MDFkY2E1MDI5MGY1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0hpc3RvcnlJdGVtLmgKQEAgLTEzMCw4ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldElzVGFyZ2V0SXRlbShib29sKTsKICAgICAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFN0YXRlT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7Ci0g
ICAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHN0YXRlT2JqZWN0KCkgY29uc3Qg
eyByZXR1cm4gbV9zdGF0ZU9iamVjdDsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3Rh
dGVPYmplY3QoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJik7CisgICAgUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc3RhdGVPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3N0YXRl
T2JqZWN0OyB9CiAKICAgICB2b2lkIHNldEl0ZW1TZXF1ZW5jZU51bWJlcihsb25nIGxvbmcgbnVt
YmVyKSB7IG1faXRlbVNlcXVlbmNlTnVtYmVyID0gbnVtYmVyOyB9CiAgICAgbG9uZyBsb25nIGl0
ZW1TZXF1ZW5jZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1faXRlbVNlcXVlbmNlTnVtYmVyOyB9
CkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgIGxvbmcgbG9uZyBkb2N1bWVudFNlcXVl
bmNlTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyOyB9CiAK
ICAgICB2b2lkIHNldEZvcm1JbmZvRnJvbVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb3JtRGF0YShQYXNzUmVmUHRyPEZvcm1EYXRh
Pik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb3JtRGF0YShSZWZQdHI8Rm9ybURhdGE+
JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9ybUNvbnRlbnRUeXBlKGNvbnN0IFN0
cmluZyYpOwogCiAgICAgdm9pZCBzZXRMYXN0VmlzaXRXYXNGYWlsdXJlKGJvb2wgd2FzRmFpbHVy
ZSkgeyBtX2xhc3RWaXNpdFdhc0ZhaWx1cmUgPSB3YXNGYWlsdXJlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGVhOTI1NWM4MjBmMjNkNGE5NGNkNWRjYzJhYjBl
ZmM5NmMxNTYyZTEuLjQ0YTZjYjM5NjEzMzE5MzlkZTE0OWY0MTBkNDQxOTc0YzcxMjc1YmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIGNs
YXNzIEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlciB7CiAgICAgfTsKIAogICAgIHN0cnVjdCBFbXB0eVN0b3JhZ2VOYW1l
c3BhY2UgZmluYWwgOiBwdWJsaWMgU3RvcmFnZU5hbWVzcGFjZSB7Ci0gICAgICAgIHZpcnR1YWwg
UmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pikgb3ZlcnJpZGUgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5U3RvcmFnZUFyZWEpOyB9Cisg
ICAgICAgIHZpcnR1YWwgUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+JiYpIG92ZXJyaWRlIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFbXB0eVN0b3Jh
Z2VBcmVhKTsgfQogICAgICAgICB2aXJ0dWFsIFJlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5
KFBhZ2UqKSBvdmVycmlkZSB7IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlTdG9yYWdlTmFtZXNw
YWNlKTsgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDBmM2Q3NGI0NjcyZDVlMTZj
YjkxNzNjNmM5OTRiMzA3ODI3ZjUyN2MuLjk5NGU2MjYyOGQ2N2M0M2QzYmRlZWQ5MjY4ZWYwN2Q3
MGUyN2Q5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIFBhZ2U6OlBh
Z2UoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQogI2VuZGlmCiAgICAgLCBt
X3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3Byb2dyZXNzKHN0ZDo6
bWFrZV91bmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKLSAgICAsIG1fYmFja0ZvcndhcmRDb250cm9sbGVyKHN0ZDo6bWFrZV91
bmlxdWU8QmFja0ZvcndhcmRDb250cm9sbGVyPigqdGhpcywgcGFnZUNvbmZpZ3VyYXRpb24uYmFj
a0ZvcndhcmRDbGllbnQpKQorICAgICwgbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIoc3RkOjptYWtl
X3VuaXF1ZTxCYWNrRm9yd2FyZENvbnRyb2xsZXI+KCp0aGlzLCBXVEY6Om1vdmUocGFnZUNvbmZp
Z3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQpKSkKICAgICAsIG1fbWFpbkZyYW1lKE1haW5GcmFt
ZTo6Y3JlYXRlKCp0aGlzLCBwYWdlQ29uZmlndXJhdGlvbikpCiAgICAgLCBtX3RoZW1lKFJlbmRl
clRoZW1lOjp0aGVtZUZvclBhZ2UodGhpcykpCiAgICAgLCBtX2VkaXRvckNsaWVudCgqcGFnZUNv
bmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5jcHAKaW5k
ZXggMGZlMzFlYmZlMzdmZTBhN2M3ODg0YjBhY2VmMWYzZTliZWJkZmJmYS4uZGQ3ZDZkMGViMWEz
MzA0MDg1Y2ZhNzZlZGIxYjU1MmZmNjFhOTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2Uu
Y3BwCkBAIC0zMywxOSArMzMsMTggQEAKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTdG9yYWdlPiBTdG9yYWdlOjpjcmVhdGUoRnJhbWUqIGZy
YW1lLCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYSkKK1JlZjxTdG9yYWdlPiBT
dG9yYWdlOjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBSZWZQdHI8U3RvcmFnZUFyZWE+JiYgc3RvcmFn
ZUFyZWEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZShmcmFtZSwgc3RvcmFn
ZUFyZWEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlKGZyYW1lLCBXVEY6Om1v
dmUoc3RvcmFnZUFyZWEpKSk7CiB9CiAKLVN0b3JhZ2U6OlN0b3JhZ2UoRnJhbWUqIGZyYW1lLCBQ
YXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYSkKK1N0b3JhZ2U6OlN0b3JhZ2UoRnJh
bWUqIGZyYW1lLCBSZWZQdHI8U3RvcmFnZUFyZWE+JiYgc3RvcmFnZUFyZWEpCiAgICAgOiBET01X
aW5kb3dQcm9wZXJ0eShmcmFtZSkKLSAgICAsIG1fc3RvcmFnZUFyZWEoc3RvcmFnZUFyZWEpCisg
ICAgLCBtX3N0b3JhZ2VBcmVhKFdURjo6bW92ZShzdG9yYWdlQXJlYSkpCiB7CiAgICAgQVNTRVJU
KG1fZnJhbWUpOwogICAgIEFTU0VSVChtX3N0b3JhZ2VBcmVhKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlLmgKaW5kZXggY2ViOWQwYzRmZTdjNzQxOTdlZTBjMTlmNmUyM2NjMmZmNTY5N2RiMi4uNDZm
MDI2NzQxM2NhMDE2ZGE2NzkyM2FlZTAzYTdhYmM4MTgxNGMxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlLmgKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAog
Y2xhc3MgU3RvcmFnZSA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVk
PFN0b3JhZ2U+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U3RvcmFnZT4gY3JlYXRlKEZyYW1lKiwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4pOwor
ICAgIHN0YXRpYyBSZWY8U3RvcmFnZT4gY3JlYXRlKEZyYW1lKiwgUmVmUHRyPFN0b3JhZ2VBcmVh
PiYmKTsKICAgICB+U3RvcmFnZSgpOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoKEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdDsKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIFN0b3JhZ2VBcmVhJiBh
cmVhKCkgY29uc3QgeyByZXR1cm4gKm1fc3RvcmFnZUFyZWE7IH0KIAogcHJpdmF0ZToKLSAgICBT
dG9yYWdlKEZyYW1lKiwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4pOworICAgIFN0b3JhZ2UoRnJh
bWUqLCBSZWZQdHI8U3RvcmFnZUFyZWE+JiYpOwogCiAgICAgYm9vbCBpc0Rpc2FibGVkQnlQcml2
YXRlQnJvd3NpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5oCmlu
ZGV4IGQ1YzA1YTY5YmE4Y2NlNDE3NGQ1ZGU0NDg0MzBmZWZiNjU0MDI3NmIuLmZlMWExMjg5Y2E2
Y2E0MTdmYWM5ZjNjZTJlNzA4MjAxMjllNjJiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VBcmVhLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgU3RvcmFnZUFyZWFfaAogCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwCmluZGV4IDZlY2EyOWE4M2ZmYjYzM2Vm
YWQyMjIxMjM1ZjMyNDRhODMxMDQ2OTAuLmFlNDhiNjAyNDE0ODg3ZmZiMjg4ZDY3YWViNjZmOTRl
ZWVkMTllZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmNwcApAQCAtNDMsMTIg
KzQzLDEyIEBAIFN0b3JhZ2VNYXA6OlN0b3JhZ2VNYXAodW5zaWduZWQgcXVvdGEpCiB7CiB9CiAK
LVBhc3NSZWZQdHI8U3RvcmFnZU1hcD4gU3RvcmFnZU1hcDo6Y29weSgpCitSZWY8U3RvcmFnZU1h
cD4gU3RvcmFnZU1hcDo6Y29weSgpCiB7Ci0gICAgUmVmUHRyPFN0b3JhZ2VNYXA+IG5ld01hcCA9
IGNyZWF0ZShtX3F1b3RhU2l6ZSk7CisgICAgUmVmPFN0b3JhZ2VNYXA+IG5ld01hcCA9IGNyZWF0
ZShtX3F1b3RhU2l6ZSk7CiAgICAgbmV3TWFwLT5tX21hcCA9IG1fbWFwOwogICAgIG5ld01hcC0+
bV9jdXJyZW50TGVuZ3RoID0gbV9jdXJyZW50TGVuZ3RoOwotICAgIHJldHVybiBuZXdNYXAucmVs
ZWFzZSgpOworICAgIHJldHVybiBuZXdNYXA7CiB9CiAKIHZvaWQgU3RvcmFnZU1hcDo6aW52YWxp
ZGF0ZUl0ZXJhdG9yKCkKQEAgLTk5LDcgKzk5LDcgQEAgU3RyaW5nIFN0b3JhZ2VNYXA6OmdldEl0
ZW0oY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWFwLmdldChrZXkpOwog
fQogCi1QYXNzUmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6OnNldEl0ZW0oY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIFN0cmluZyYgb2xkVmFsdWUsIGJvb2wmIHF1
b3RhRXhjZXB0aW9uKQorUmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6OnNldEl0ZW0oY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIFN0cmluZyYgb2xkVmFsdWUsIGJv
b2wmIHF1b3RhRXhjZXB0aW9uKQogewogICAgIEFTU0VSVCghdmFsdWUuaXNOdWxsKCkpOwogICAg
IHF1b3RhRXhjZXB0aW9uID0gZmFsc2U7CkBAIC0xMDksNyArMTA5LDcgQEAgUGFzc1JlZlB0cjxT
dG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpzZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIHZhbHUKICAgICBpZiAocmVmQ291bnQoKSA+IDEpIHsKICAgICAgICAgUmVmUHRyPFN0
b3JhZ2VNYXA+IG5ld1N0b3JhZ2VNYXAgPSBjb3B5KCk7CiAgICAgICAgIG5ld1N0b3JhZ2VNYXAt
PnNldEl0ZW0oa2V5LCB2YWx1ZSwgb2xkVmFsdWUsIHF1b3RhRXhjZXB0aW9uKTsKLSAgICAgICAg
cmV0dXJuIG5ld1N0b3JhZ2VNYXAucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gbmV3U3RvcmFn
ZU1hcDsKICAgICB9CiAKICAgICAvLyBRdW90YSB0cmFja2luZy4gIFRoaXMgaXMgZG9uZSBpbiBh
IGNvdXBsZSBvZiBzdGVwcyB0byBrZWVwIHRoZSBvdmVyZmxvdyB0cmFja2luZyBzaW1wbGUuCkBA
IC0xMjksNyArMTI5LDcgQEAgUGFzc1JlZlB0cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpzZXRJ
dGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHUKICAgICBib29sIG92ZXJR
dW90YSA9IG5ld0xlbmd0aCA+IG1fcXVvdGFTaXplIC8gc2l6ZW9mKFVDaGFyKTsKICAgICBpZiAo
bV9xdW90YVNpemUgIT0gbm9RdW90YSAmJiAob3ZlcmZsb3cgfHwgb3ZlclF1b3RhKSkgewogICAg
ICAgICBxdW90YUV4Y2VwdGlvbiA9IHRydWU7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgbV9jdXJyZW50TGVuZ3RoID0gbmV3TGVuZ3RoOwog
CkBAIC0xMzksMTAgKzEzOSwxMCBAQCBQYXNzUmVmUHRyPFN0b3JhZ2VNYXA+IFN0b3JhZ2VNYXA6
OnNldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdQogCiAgICAgaW52
YWxpZGF0ZUl0ZXJhdG9yKCk7CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAotUGFzc1JlZlB0cjxTdG9yYWdlTWFwPiBTdG9yYWdlTWFwOjpzZXRJdGVtSWdub3JpbmdR
dW90YShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK1JlZlB0cjxTdG9y
YWdlTWFwPiBTdG9yYWdlTWFwOjpzZXRJdGVtSWdub3JpbmdRdW90YShjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBUZW1wb3JhcnlDaGFuZ2U8dW5zaWduZWQ+
IHF1b3RhU2l6ZUNoYW5nZShtX3F1b3RhU2l6ZSwgbm9RdW90YSk7CiAKQEAgLTE1MiwxNyArMTUy
LDE3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU1hcD4gU3RvcmFnZU1hcDo6c2V0SXRlbUlnbm9yaW5n
UXVvdGEoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0CiAgICAgUmVmUHRyPFN0b3JhZ2VNYXA+IG1h
cCA9IHNldEl0ZW0oa2V5LCB2YWx1ZSwgb2xkVmFsdWUsIHF1b3RhRXhjZXB0aW9uKTsKICAgICBB
U1NFUlQoIXF1b3RhRXhjZXB0aW9uKTsKIAotICAgIHJldHVybiBtYXAucmVsZWFzZSgpOworICAg
IHJldHVybiBtYXA7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZU1hcD4gU3RvcmFnZU1hcDo6cmVt
b3ZlSXRlbShjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nJiBvbGRWYWx1ZSkKK1JlZlB0cjxTdG9y
YWdlTWFwPiBTdG9yYWdlTWFwOjpyZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcm
IG9sZFZhbHVlKQogewogICAgIC8vIEltcGxlbWVudCBjb3B5LW9uLXdyaXRlIHNlbWFudGljcyBo
ZXJlLiAgV2UncmUgZ3VhcmFudGVlZCB0aGF0IHRoZSBvbmx5IHJlZnMgb2YgU3RvcmFnZU1hcHMg
YmVsb25nIHRvIFN0b3JhZ2Ugb2JqZWN0cwogICAgIC8vIHNvIGlmIG1vcmUgdGhhbiBvbmUgU3Rv
cmFnZSBvYmplY3QgcmVmcyB0aGlzIG1hcCwgY29weSBpdCBiZWZvcmUgbXV0YXRpbmcgaXQuCiAg
ICAgaWYgKHJlZkNvdW50KCkgPiAxKSB7CiAgICAgICAgIFJlZlB0cjxTdG9yYWdlTWFwPiBuZXdT
dG9yYWdlID0gY29weSgpOwogICAgICAgICBuZXdTdG9yYWdlLT5yZW1vdmVJdGVtKGtleSwgb2xk
VmFsdWUpOwotICAgICAgICByZXR1cm4gbmV3U3RvcmFnZS5yZWxlYXNlKCk7CisgICAgICAgIHJl
dHVybiBuZXdTdG9yYWdlOwogICAgIH0KIAogICAgIG9sZFZhbHVlID0gbV9tYXAudGFrZShrZXkp
OwpAQCAtMTc0LDcgKzE3NCw3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU1hcD4gU3RvcmFnZU1hcDo6
cmVtb3ZlSXRlbShjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nJiBvbGRWYWx1CiAgICAgQVNTRVJU
KG1fY3VycmVudExlbmd0aCAtIG9sZFZhbHVlLmxlbmd0aCgpIDw9IG1fY3VycmVudExlbmd0aCk7
CiAgICAgbV9jdXJyZW50TGVuZ3RoIC09IG9sZFZhbHVlLmxlbmd0aCgpOwogCi0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJvb2wgU3RvcmFnZU1hcDo6Y29udGFpbnMo
Y29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5oCmlu
ZGV4IDVkZTE5MTVmMGViNzA3OTkyZTU1YTRhNTI4ODUxMDU4N2RlZjRjNmIuLjIwOWUzMmZmMjRi
ZThjMzE3ZmZkYTgyMmVmNzJlNzM2OWJlNTcyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZU1hcC5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFN0b3JhZ2VNYXBfaAogCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDIsOSArNDEsOSBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIGtleSh1bnNpZ25lZCBpbmRleCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGdldEl0ZW0oY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFz
c1JlZlB0cjxTdG9yYWdlTWFwPiBzZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIHZhbHVlLCBTdHJpbmcmIG9sZFZhbHVlLCBib29sJiBxdW90YUV4Y2VwdGlvbik7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgUGFzc1JlZlB0cjxTdG9yYWdlTWFwPiBzZXRJdGVtSWdub3JpbmdRdW90
YShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgUGFzc1JlZlB0cjxTdG9yYWdlTWFwPiByZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYsIFN0
cmluZyYgb2xkVmFsdWUpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxTdG9yYWdlTWFwPiBz
ZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBTdHJpbmcmIG9s
ZFZhbHVlLCBib29sJiBxdW90YUV4Y2VwdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRy
PFN0b3JhZ2VNYXA+IHNldEl0ZW1JZ25vcmluZ1F1b3RhKGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIHZhbHVlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8U3RvcmFnZU1hcD4g
cmVtb3ZlSXRlbShjb25zdCBTdHJpbmcmLCBTdHJpbmcmIG9sZFZhbHVlKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgY29udGFpbnMoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OwogCkBAIC01
Nyw3ICs1Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTdG9yYWdlTWFw
KHVuc2lnbmVkIHF1b3RhKTsKLSAgICBQYXNzUmVmUHRyPFN0b3JhZ2VNYXA+IGNvcHkoKTsKKyAg
ICBSZWY8U3RvcmFnZU1hcD4gY29weSgpOwogICAgIHZvaWQgaW52YWxpZGF0ZUl0ZXJhdG9yKCk7
CiAgICAgdm9pZCBzZXRJdGVyYXRvclRvSW5kZXgodW5zaWduZWQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5oCmluZGV4IGJkZTk1ZjUxODA3NzlhZmE0ODE5ZTkz
YjM2ZjkwNTU2ODllZTQwZTMuLjNmMjFkMGJlMTQ4Njk2NDdmZTU2YzQ0ZmM1M2M5MzU2ZjBmYTVl
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5oCkBAIC0yNyw3
ICsyNyw2IEBACiAjZGVmaW5lIFN0b3JhZ2VOYW1lc3BhY2VfaAogCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDcgKzM5LDcgQEAgY2xhc3Mg
U3RvcmFnZUFyZWE7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8
U3RvcmFnZU5hbWVzcGFjZT4gewogcHVibGljOgogICAgIHZpcnR1YWwgflN0b3JhZ2VOYW1lc3Bh
Y2UoKSB7IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxTdG9yYWdl
QXJlYT4gc3RvcmFnZUFyZWEoUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmKSA9IDA7CiAgICAgdmly
dHVhbCBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gY29weShQYWdlKiBuZXdQYWdlKSA9IDA7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApp
bmRleCA2YWEwZjMzMTY5OWZkMDI5ZTEwYmZhNzNhNTFhYmQ1OTZlYTc5NThkLi4zYjVhOTgzNDY3
MWVlMmE1ODg3ZTc4YjgyZTMwOTJmODI2OTM5OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTk5LDE4ICs5OSwxNyBAQCBSZWZQdHI8
U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNvcHkoUGFnZSopCiAgICAg
cmV0dXJuIG5ld05hbWVzcGFjZTsKIH0KIAotUmVmUHRyPFN0b3JhZ2VBcmVhPiBTdG9yYWdlTmFt
ZXNwYWNlSW1wbDo6c3RvcmFnZUFyZWEoUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwT3Jp
Z2luKQorUmVmUHRyPFN0b3JhZ2VBcmVhPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3RvcmFnZUFy
ZWEoUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIG9yaWdpbikKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9pc1NodXRkb3duKTsKIAotICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gb3JpZ2luID0gcHJwT3JpZ2luOwogICAgIFJlZlB0cjxTdG9yYWdlQXJlYUlt
cGw+IHN0b3JhZ2VBcmVhOwogICAgIGlmICgoc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhTWFw
LmdldChvcmlnaW4pKSkKICAgICAgICAgcmV0dXJuIHN0b3JhZ2VBcmVhOwogCi0gICAgc3RvcmFn
ZUFyZWEgPSBTdG9yYWdlQXJlYUltcGw6OmNyZWF0ZShtX3N0b3JhZ2VUeXBlLCBvcmlnaW4sIG1f
c3luY01hbmFnZXIsIG1fcXVvdGEpOwotICAgIG1fc3RvcmFnZUFyZWFNYXAuc2V0KG9yaWdpbi5y
ZWxlYXNlKCksIHN0b3JhZ2VBcmVhKTsKKyAgICBzdG9yYWdlQXJlYSA9IFN0b3JhZ2VBcmVhSW1w
bDo6Y3JlYXRlKG1fc3RvcmFnZVR5cGUsIG9yaWdpbi5jb3B5UmVmKCksIG1fc3luY01hbmFnZXIs
IG1fcXVvdGEpOworICAgIG1fc3RvcmFnZUFyZWFNYXAuc2V0KFdURjo6bW92ZShvcmlnaW4pLCBz
dG9yYWdlQXJlYSk7CiAgICAgcmV0dXJuIHN0b3JhZ2VBcmVhOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCmluZGV4IDcwYzZiNTczMTRlN2NiYTM5
ZWIxOWEzYzc4YTg3MWE3Y2Q4YmM0ODYuLmNiMzczNmZkMjlhZTU0NmUzYWE4OTFiYjA5OTI0NzZj
MjEyMWJiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU3RvcmFnZU5hbWVz
cGFjZUltcGwoU3RvcmFnZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWduZWQgcXVvdGEp
OwogCi0gICAgdmlydHVhbCBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+KSAgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8U3RvcmFn
ZUFyZWE+IHN0b3JhZ2VBcmVhKFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJikgIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IGNvcHkoUGFnZSogbmV3UGFnZSkg
b3ZlcnJpZGU7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
UmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4+IFN0b3JhZ2VBcmVhTWFwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5j
cHAKaW5kZXggMzU3NzhmODIxNWE5NmEwNTRlZTdkN2RlODg3YzE0ZmJkN2NkZmEyMy4uMWIzMWMw
MjE3YTgyOWJkMWE3MTAyMGRkZjBhYzY3NzYwZDRjMjk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3Bw
CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OmRpZERlc3Ryb3lT
dG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1hcCYgbWFwKQogICAgIG1fc3RvcmFnZUFyZWFNYXBz
LnJlbW92ZSgmbWFwLnNlY3VyaXR5T3JpZ2luKCkpOwogfQogCi1SZWZQdHI8U3RvcmFnZUFyZWE+
IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzdG9yYWdlQXJlYShQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiBzZWN1cml0eU9yaWdpbikKK1JlZlB0cjxTdG9yYWdlQXJlYT4gU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OnN0b3JhZ2VBcmVhKFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzZWN1cml0eU9yaWdp
bikKIHsKICAgICBSZWZQdHI8U3RvcmFnZUFyZWFNYXA+IG1hcDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApp
bmRleCAzNzgxNzE3M2UyNDg1Yjg2NmE4YWYzMjkzNzU1MWM3N2QyNmQ4MzIzLi42ODhlYzlhNTQw
ZThmOTkxMTlmN2I4MjY1MDExYWI2NDA0OWJiYmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApAQCAtNTQs
NyArNTQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsKFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCB1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbE9yaWdpbiwgdW5zaWduZWQgcXVvdGFJ
bkJ5dGVzKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VBcmVhPiBzdG9y
YWdlQXJlYShQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKFJlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBSZWZQ
dHI8V2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZT4gY29weShXZWJDb3JlOjpQYWdlKikgb3ZlcnJp
ZGU7CiAKICAgICBjb25zdCBXZWJDb3JlOjpTdG9yYWdlVHlwZSBtX3N0b3JhZ2VUeXBlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>