<?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>138649</bug_id>
          
          <creation_ts>2014-11-11 19:26:33 -0800</creation_ts>
          <short_desc>Move Modules/websockets to std::unique_ptr</short_desc>
          <delta_ts>2014-11-23 18:25:59 -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>528+ (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>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1048078</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-11 19:26:33 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048079</commentid>
    <comment_count>1</comment_count>
      <attachid>241409</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-11 19:27:17 -0800</bug_when>
    <thetext>Created attachment 241409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048095</commentid>
    <comment_count>2</comment_count>
      <attachid>241409</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-11 20:42:37 -0800</bug_when>
    <thetext>Comment on attachment 241409
Patch

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

r=me with nits.

&gt; Source/WebCore/ChangeLog:3
&gt; +        Move Modules/websoeckets to std::unique_ptr

&quot;websockets&quot;

&gt; Source/WebCore/Modules/websockets/WebSocketDeflater.h:52
&gt; +    WebSocketDeflater(int windowBits, ContextTakeOverMode = TakeOverContext);

nit explicit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048102</commentid>
    <comment_count>3</comment_count>
      <attachid>241413</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-11 21:34:38 -0800</bug_when>
    <thetext>Created attachment 241413
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048106</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-11 22:55:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 241409 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241409&amp;action=review
&gt; 
&gt; r=me with nits.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Move Modules/websoeckets to std::unique_ptr
&gt; 
&gt; &quot;websockets&quot;
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/WebSocketDeflater.h:52
&gt; &gt; +    WebSocketDeflater(int windowBits, ContextTakeOverMode = TakeOverContext);
&gt; 
&gt; nit explicit?

Fixed all ! Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048110</commentid>
    <comment_count>5</comment_count>
      <attachid>241413</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-11 23:33:18 -0800</bug_when>
    <thetext>Comment on attachment 241413
Patch for landing

Clearing flags on attachment: 241413

Committed r176009: &lt;http://trac.webkit.org/changeset/176009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048111</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-11 23:33:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241409</attachid>
            <date>2014-11-11 19:27:17 -0800</date>
            <delta_ts>2014-11-11 21:34:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138649-20141112122721.patch</filename>
            <type>text/plain</type>
            <size>25631</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1OTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVkYjFlOTY4NjVkY2I4
NDM4NmMzNjcwNzQ3NDdiNTljMDg5ODJhZC4uY2ViODBhZGIyOTYxNTQ1YmIwMmE2OWRiZmM1NmJl
YTdjZTVjOWUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE0LTExLTExICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBNb2R1
bGVzL3dlYnNvZWNrZXRzIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NjQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGNyZWF0ZSgpIGZhY3RvcnkgZnVuY3Rp
b24gYW5kIHVzZSBzdGQ6Om1ha2VfdW5pcXVlPD4sIHN0ZDo6dW5pcXVlX3B0cjw+CisgICAgICAg
IGluc3RlYWQgb2YgT3duUHRyLCBQYXNzT3duUHRyLgorICAgICAgICBIb3dldmVyIGRpZFJlY2Vp
dmVCaW5hcnlEYXRhKCkgaXMgc3RpbGwgdXNpbmcgUGFzc093blB0ci4gSXQgc2hvdWxkIGJlIHJl
cGxhY2VkCisgICAgICAgIHdpdGggc3RkOjp1bmlxdWVfcHRyPD4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIG5vIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAqIE1vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6
OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVRleHRGcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlUmF3RnJhbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZUJsb2JGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnNlbmRGcmFtZSk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpjcmVhdGVFeHRlbnNpb25Qcm9jZXNzb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZW5hYmxlRGVmbGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpkZWZsYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmluZmxhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEZWZsYXRlUmVzdWx0SG9sZGVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5mbGF0ZVJlc3VsdEhvbGRlcjo6Y3JlYXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZXI6OldlYlNvY2tldERlZmxhdGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEluZmxhdGVyOjpXZWJTb2NrZXRJbmZsYXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlcjo6Y3JlYXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEluZmxhdGVyOjpjcmVhdGUpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFkZFBy
b2Nlc3Nvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFu
ZHNoYWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6YWRkRXh0
ZW5zaW9uUHJvY2Vzc29yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
SGFuZHNoYWtlLmg6CisKIDIwMTQtMTEtMTEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gdmlkZW8gaXMgc29tZXRpbWVzIGFsbG93ZWQgdG8g
cGxheSBmcm9tIHRoZSBiYWNrZ3JvdW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmgKaW5kZXggYjIwZWQwY2Q0Njc2ZWY2ZWNmZjQ1OWRkMDZjYzg3
MjhiMTE0MzYyOS4uZTRiZDZiMGZhM2JlNGU4YjIwMjQ4OWUwNmUxN2E5ODIxYmFmNzBiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaApAQCAt
MzksNyArMzksNiBAQAogI2luY2x1ZGUgIldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBmZDQ3
Nzk2ZDEzYWI5MjRlOTgyMDdlZjFkMjQ4ZDU4Yzc4YjFjYmY2Li5lMDQ4M2M1NTg1MDMwNjM0YTA3
YTI4YjJhODg4NjZmOTFkNDVlOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNTYsNyArNTYsNiBAQAogI2luY2x1ZGUgPHJ1bnRp
bWUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA3
ZmQ2MjFlMmIzNTg4YjgxOTc0OWUyNzk5M2EwMDQ5ZTI5ZjM0MWY2Li5kOWM2YWJkMjc3MjBhMjI3
YWEwMjYyYWM5NzA2ZDAxMzZjNWMxNmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC01Niw4ICs1Niw2IEBA
CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC05OSw3ICs5Nyw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKICAgICBMT0coTmV0d29yaywgIldl
YlNvY2tldENoYW5uZWwgJXAgY29ubmVjdCgpIiwgdGhpcyk7CiAgICAgQVNTRVJUKCFtX2hhbmRs
ZSk7CiAgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7Ci0gICAgbV9oYW5kc2hha2UgPSBhZG9wdFB0
cihuZXcgV2ViU29ja2V0SGFuZHNoYWtlKHVybCwgcHJvdG9jb2wsIG1fZG9jdW1lbnQpKTsKKyAg
ICBtX2hhbmRzaGFrZSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViU29ja2V0SGFuZHNoYWtlPih1cmws
IHByb3RvY29sLCBtX2RvY3VtZW50KTsKICAgICBtX2hhbmRzaGFrZS0+cmVzZXQoKTsKICAgICBp
ZiAobV9kZWZsYXRlRnJhbWVyLmNhbkRlZmxhdGUoKSkKICAgICAgICAgbV9oYW5kc2hha2UtPmFk
ZEV4dGVuc2lvblByb2Nlc3NvcihtX2RlZmxhdGVGcmFtZXIuY3JlYXRlRXh0ZW5zaW9uUHJvY2Vz
c29yKCkpOwpAQCAtMzc1LDcgKzM3Myw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFp
bChpbnQgZXJyb3JDb2RlKQogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBk
aWRGYWlsKCkgZXJyb3JDb2RlPSVkIiwgdGhpcywgZXJyb3JDb2RlKTsKICAgICBBU1NFUlQobV9i
bG9iTG9hZGVyKTsKICAgICBBU1NFUlQobV9ibG9iTG9hZGVyU3RhdHVzID09IEJsb2JMb2FkZXJT
dGFydGVkKTsKLSAgICBtX2Jsb2JMb2FkZXIuY2xlYXIoKTsKKyAgICBtX2Jsb2JMb2FkZXIgPSBu
dWxscHRyOwogICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJsb2JMb2FkZXJGYWlsZWQ7CiAgICAg
ZmFpbCgiRmFpbGVkIHRvIGxvYWQgQmxvYjogZXJyb3IgY29kZSA9ICIgKyBTdHJpbmc6Om51bWJl
cihlcnJvckNvZGUpKTsgLy8gRklYTUU6IEdlbmVyYXRlIGh1bWFuLWZyaWVuZGx5IHJlYXNvbiBt
ZXNzYWdlLgogICAgIGRlcmVmKCk7CkBAIC01MTgsNyArNTE2LDcgQEAgYm9vbCBXZWJTb2NrZXRD
aGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIEFTU0VSVChtX2J1ZmZlci5kYXRhKCkgPCBmcmFt
ZUVuZCk7CiAgICAgQVNTRVJUKGZyYW1lRW5kIDw9IG1fYnVmZmVyLmRhdGEoKSArIG1fYnVmZmVy
LnNpemUoKSk7CiAKLSAgICBPd25QdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gaW5mbGF0ZVJlc3Vs
dCA9IG1fZGVmbGF0ZUZyYW1lci5pbmZsYXRlKGZyYW1lKTsKKyAgICBhdXRvIGluZmxhdGVSZXN1
bHQgPSBtX2RlZmxhdGVGcmFtZXIuaW5mbGF0ZShmcmFtZSk7CiAgICAgaWYgKCFpbmZsYXRlUmVz
dWx0LT5zdWNjZWVkZWQoKSkgewogICAgICAgICBmYWlsKGluZmxhdGVSZXN1bHQtPmZhaWx1cmVS
ZWFzb24oKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY4NSw3ICs2ODMsNyBAQCBib29s
IFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmVucXVldWVUZXh0RnJhbWUoY29uc3QgQ1N0cmluZyYgc3RyaW5nKQogewogICAgIEFTU0VSVCht
X291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9PSBPdXRnb2luZ0ZyYW1lUXVldWVPcGVuKTsKLSAg
ICBPd25QdHI8UXVldWVkRnJhbWU+IGZyYW1lID0gYWRvcHRQdHIobmV3IFF1ZXVlZEZyYW1lKTsK
KyAgICBhdXRvIGZyYW1lID0gc3RkOjptYWtlX3VuaXF1ZTxRdWV1ZWRGcmFtZT4oKTsKICAgICBm
cmFtZS0+b3BDb2RlID0gV2ViU29ja2V0RnJhbWU6Ok9wQ29kZVRleHQ7CiAgICAgZnJhbWUtPmZy
YW1lVHlwZSA9IFF1ZXVlZEZyYW1lVHlwZVN0cmluZzsKICAgICBmcmFtZS0+c3RyaW5nRGF0YSA9
IHN0cmluZzsKQEAgLTY5NSw3ICs2OTMsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmVucXVl
dWVUZXh0RnJhbWUoY29uc3QgQ1N0cmluZyYgc3RyaW5nKQogdm9pZCBXZWJTb2NrZXRDaGFubmVs
OjplbnF1ZXVlUmF3RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUsIGNvbnN0IGNo
YXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKQogewogICAgIEFTU0VSVChtX291dGdvaW5nRnJh
bWVRdWV1ZVN0YXR1cyA9PSBPdXRnb2luZ0ZyYW1lUXVldWVPcGVuKTsKLSAgICBPd25QdHI8UXVl
dWVkRnJhbWU+IGZyYW1lID0gYWRvcHRQdHIobmV3IFF1ZXVlZEZyYW1lKTsKKyAgICBhdXRvIGZy
YW1lID0gc3RkOjptYWtlX3VuaXF1ZTxRdWV1ZWRGcmFtZT4oKTsKICAgICBmcmFtZS0+b3BDb2Rl
ID0gb3BDb2RlOwogICAgIGZyYW1lLT5mcmFtZVR5cGUgPSBRdWV1ZWRGcmFtZVR5cGVWZWN0b3I7
CiAgICAgZnJhbWUtPnZlY3RvckRhdGEucmVzaXplKGRhdGFMZW5ndGgpOwpAQCAtNzA3LDcgKzcw
NSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVJhd0ZyYW1lKFdlYlNvY2tldEZy
YW1lOjpPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmVu
cXVldWVCbG9iRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUsIEJsb2ImIGJsb2Ip
CiB7CiAgICAgQVNTRVJUKG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID09IE91dGdvaW5nRnJh
bWVRdWV1ZU9wZW4pOwotICAgIE93blB0cjxRdWV1ZWRGcmFtZT4gZnJhbWUgPSBhZG9wdFB0cihu
ZXcgUXVldWVkRnJhbWUpOworICAgIGF1dG8gZnJhbWUgPSBzdGQ6Om1ha2VfdW5pcXVlPFF1ZXVl
ZEZyYW1lPigpOwogICAgIGZyYW1lLT5vcENvZGUgPSBvcENvZGU7CiAgICAgZnJhbWUtPmZyYW1l
VHlwZSA9IFF1ZXVlZEZyYW1lVHlwZUJsb2I7CiAgICAgZnJhbWUtPmJsb2JEYXRhID0gJmJsb2I7
CkBAIC03MjIsNyArNzIwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29p
bmdGcmFtZVF1ZXVlKCkKICAgICBSZWY8V2ViU29ja2V0Q2hhbm5lbD4gcHJvdGVjdCgqdGhpcyk7
IC8vIEFueSBjYWxsIHRvIGZhaWwoKSB3aWxsIGdldCB0aGUgY2hhbm5lbCBjbG9zZWQgYW5kIGRl
cmVmZXJlbmNlZC4KIAogICAgIHdoaWxlICghbV9vdXRnb2luZ0ZyYW1lUXVldWUuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIE93blB0cjxRdWV1ZWRGcmFtZT4gZnJhbWUgPSBtX291dGdvaW5nRnJhbWVR
dWV1ZS50YWtlRmlyc3QoKTsKKyAgICAgICAgYXV0byBmcmFtZSA9IG1fb3V0Z29pbmdGcmFtZVF1
ZXVlLnRha2VGaXJzdCgpOwogICAgICAgICBzd2l0Y2ggKGZyYW1lLT5mcmFtZVR5cGUpIHsKICAg
ICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVTdHJpbmc6IHsKICAgICAgICAgICAgIGlmICghc2Vu
ZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZyYW1lLT5zdHJpbmdEYXRhLmRhdGEoKSwgZnJhbWUtPnN0
cmluZ0RhdGEubGVuZ3RoKCkpKQpAQCAtNzQwLDcgKzczOCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAgICAgICAgICBjYXNlIEJsb2JM
b2FkZXJOb3RTdGFydGVkOgogICAgICAgICAgICAgICAgIHJlZigpOyAvLyBXaWxsIGJlIGRlcmVm
ZWQgYWZ0ZXIgZGlkRmluaXNoTG9hZGluZygpIG9yIGRpZEZhaWwoKS4KICAgICAgICAgICAgICAg
ICBBU1NFUlQoIW1fYmxvYkxvYWRlcik7Ci0gICAgICAgICAgICAgICAgbV9ibG9iTG9hZGVyID0g
YWRvcHRQdHIobmV3IEZpbGVSZWFkZXJMb2FkZXIoRmlsZVJlYWRlckxvYWRlcjo6UmVhZEFzQXJy
YXlCdWZmZXIsIHRoaXMpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXIgPSBzdGQ6Om1h
a2VfdW5pcXVlPEZpbGVSZWFkZXJMb2FkZXI+KEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0FycmF5
QnVmZmVyLCB0aGlzKTsKICAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXJTdGF0dXMgPSBCbG9i
TG9hZGVyU3RhcnRlZDsKICAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXItPnN0YXJ0KG1fZG9j
dW1lbnQsIGZyYW1lLT5ibG9iRGF0YS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbV9vdXRnb2lu
Z0ZyYW1lUXVldWUucHJlcGVuZChmcmFtZS5yZWxlYXNlKCkpOwpAQCAtNzUzLDcgKzc1MSw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAKICAg
ICAgICAgICAgIGNhc2UgQmxvYkxvYWRlckZpbmlzaGVkOiB7CiAgICAgICAgICAgICAgICAgUmVm
UHRyPEFycmF5QnVmZmVyPiByZXN1bHQgPSBtX2Jsb2JMb2FkZXItPmFycmF5QnVmZmVyUmVzdWx0
KCk7Ci0gICAgICAgICAgICAgICAgbV9ibG9iTG9hZGVyLmNsZWFyKCk7CisgICAgICAgICAgICAg
ICAgbV9ibG9iTG9hZGVyID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXJT
dGF0dXMgPSBCbG9iTG9hZGVyTm90U3RhcnRlZDsKICAgICAgICAgICAgICAgICBpZiAoIXNlbmRG
cmFtZShmcmFtZS0+b3BDb2RlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4ocmVzdWx0LT5kYXRh
KCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSkpCiAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZh
aWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKQEAgLTc5NCw3ICs3OTIsNyBAQCBib29s
IFdlYlNvY2tldENoYW5uZWw6OnNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29k
ZSwgY29uc3QgY2hhciogZGF0YQogICAgIFdlYlNvY2tldEZyYW1lIGZyYW1lKG9wQ29kZSwgdHJ1
ZSwgZmFsc2UsIHRydWUsIGRhdGEsIGRhdGFMZW5ndGgpOwogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQsIG1faWRlbnRpZmllciwg
ZnJhbWUpOwogCi0gICAgT3duUHRyPERlZmxhdGVSZXN1bHRIb2xkZXI+IGRlZmxhdGVSZXN1bHQg
PSBtX2RlZmxhdGVGcmFtZXIuZGVmbGF0ZShmcmFtZSk7CisgICAgYXV0byBkZWZsYXRlUmVzdWx0
ID0gbV9kZWZsYXRlRnJhbWVyLmRlZmxhdGUoZnJhbWUpOwogICAgIGlmICghZGVmbGF0ZVJlc3Vs
dC0+c3VjY2VlZGVkKCkpIHsKICAgICAgICAgZmFpbChkZWZsYXRlUmVzdWx0LT5mYWlsdXJlUmVh
c29uKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCBlNGZhYzJiOWJjNGQ3
NTMxZGY2MDRlOTZkZjYzNjVhMWI2ZDgxMDdmLi5iZTc1ZDMzNDQ5NjQ2YTFlMjhkZTI5NWM3MWEx
MDc1NjZhNDY3ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTE4Niw3ICsxODYsNyBAQCBwcml2YXRlOgogCiAg
ICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVudCogbV9j
bGllbnQ7Ci0gICAgT3duUHRyPFdlYlNvY2tldEhhbmRzaGFrZT4gbV9oYW5kc2hha2U7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldEhhbmRzaGFrZT4gbV9oYW5kc2hha2U7CiAgICAgUmVm
UHRyPFNvY2tldFN0cmVhbUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgVmVjdG9yPGNoYXI+IG1fYnVm
ZmVyOwogCkBAIC0yMDgsMTEgKzIwOCwxMSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNob3J0
IG1fY2xvc2VFdmVudENvZGU7CiAgICAgU3RyaW5nIG1fY2xvc2VFdmVudFJlYXNvbjsKIAotICAg
IERlcXVlPE93blB0cjxRdWV1ZWRGcmFtZT4+IG1fb3V0Z29pbmdGcmFtZVF1ZXVlOworICAgIERl
cXVlPHN0ZDo6dW5pcXVlX3B0cjxRdWV1ZWRGcmFtZT4+IG1fb3V0Z29pbmdGcmFtZVF1ZXVlOwog
ICAgIE91dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyBtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1czsK
IAogICAgIC8vIEZJWE1FOiBMb2FkIHR3byBvciBtb3JlIEJsb2JzIHNpbXVsdGFuZW91c2x5IGZv
ciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0gICAgT3duUHRyPEZpbGVSZWFkZXJMb2FkZXI+IG1fYmxv
YkxvYWRlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsZVJlYWRlckxvYWRlcj4gbV9ibG9iTG9h
ZGVyOwogICAgIEJsb2JMb2FkZXJTdGF0dXMgbV9ibG9iTG9hZGVyU3RhdHVzOwogCiAgICAgV2Vi
U29ja2V0RGVmbGF0ZUZyYW1lciBtX2RlZmxhdGVGcmFtZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5j
cHAKaW5kZXggZjNhYTNmMDgxNjk1MjE2ZmM2NjY1Y2Q0NGE1Y2JkZWFkZjE3ZGE3Ny4uOTQ1MzYy
OGM2ZWE4ZDQ2N2QxNjRiZmJmYmQxMzVkYmQ5MzNmYWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVy
LmNwcApAQCAtNDMsMTAgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgV2ViU29j
a2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lIDogcHVibGljIFdlYlNvY2tldEV4dGVuc2lvblByb2Nl
c3NvciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8V2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lPiBjcmVhdGUoV2ViU29j
a2V0RGVmbGF0ZUZyYW1lciogZnJhbWVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWUoZnJhbWVyKSk7Ci0gICAgfQorICAg
IGV4cGxpY2l0IFdlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZShXZWJTb2NrZXREZWZsYXRl
RnJhbWVyKik7CiAgICAgdmlydHVhbCB+V2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lKCkg
eyB9CiAKICAgICB2aXJ0dWFsIFN0cmluZyBoYW5kc2hha2VTdHJpbmcoKSBvdmVycmlkZTsKQEAg
LTU0LDggKzUxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGZhaWx1cmVSZWFzb24o
KSBvdmVycmlkZSB7IHJldHVybiBtX2ZhaWx1cmVSZWFzb247IH0KIAogcHJpdmF0ZToKLSAgICBX
ZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWUoV2ViU29ja2V0RGVmbGF0ZUZyYW1lciopOwot
CiAgICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogbV9mcmFtZXI7CiAgICAgYm9vbCBtX3Jlc3Bv
bnNlUHJvY2Vzc2VkOwogICAgIFN0cmluZyBtX2ZhaWx1cmVSZWFzb247CkBAIC0xNjEsOSArMTU2
LDkgQEAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcigpCiB7
CiB9CiAKLVBhc3NPd25QdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBXZWJTb2NrZXRE
ZWZsYXRlRnJhbWVyOjpjcmVhdGVFeHRlbnNpb25Qcm9jZXNzb3IoKQorc3RkOjp1bmlxdWVfcHRy
PFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6Y3Jl
YXRlRXh0ZW5zaW9uUHJvY2Vzc29yKCkKIHsKLSAgICByZXR1cm4gV2ViU29ja2V0RXh0ZW5zaW9u
RGVmbGF0ZUZyYW1lOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
V2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lPih0aGlzKTsKIH0KIAogYm9vbCBXZWJTb2Nr
ZXREZWZsYXRlRnJhbWVyOjpjYW5EZWZsYXRlKCkgY29uc3QKQEAgLTE3OCwzMyArMTczLDMzIEBA
IGJvb2wgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6Y2FuRGVmbGF0ZSgpIGNvbnN0CiAjaWYgVVNF
KFpMSUIpCiB2b2lkIFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmVuYWJsZURlZmxhdGUoaW50IHdp
bmRvd0JpdHMsIFdlYlNvY2tldERlZmxhdGVyOjpDb250ZXh0VGFrZU92ZXJNb2RlIG1vZGUpCiB7
Ci0gICAgbV9kZWZsYXRlciA9IFdlYlNvY2tldERlZmxhdGVyOjpjcmVhdGUod2luZG93Qml0cywg
bW9kZSk7Ci0gICAgbV9pbmZsYXRlciA9IFdlYlNvY2tldEluZmxhdGVyOjpjcmVhdGUoKTsKKyAg
ICBtX2RlZmxhdGVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJTb2NrZXREZWZsYXRlcj4od2luZG93
Qml0cywgbW9kZSk7CisgICAgbV9pbmZsYXRlciA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViU29ja2V0
SW5mbGF0ZXI+KCk7CiAgICAgaWYgKCFtX2RlZmxhdGVyLT5pbml0aWFsaXplKCkgfHwgIW1faW5m
bGF0ZXItPmluaXRpYWxpemUoKSkgewotICAgICAgICBtX2RlZmxhdGVyLmNsZWFyKCk7Ci0gICAg
ICAgIG1faW5mbGF0ZXIuY2xlYXIoKTsKKyAgICAgICAgbV9kZWZsYXRlciA9IG51bGxwdHI7Cisg
ICAgICAgIG1faW5mbGF0ZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IG1fZW5hYmxlZCA9IHRydWU7CiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxEZWZsYXRlUmVzdWx0
SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpkZWZsYXRlKFdlYlNvY2tldEZyYW1lJiBm
cmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZs
YXRlRnJhbWVyOjpkZWZsYXRlKFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKIHsKICNpZiBVU0UoWkxJ
QikKLSAgICBPd25QdHI8RGVmbGF0ZVJlc3VsdEhvbGRlcj4gcmVzdWx0ID0gRGVmbGF0ZVJlc3Vs
dEhvbGRlcjo6Y3JlYXRlKHRoaXMpOworICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1
ZTxEZWZsYXRlUmVzdWx0SG9sZGVyPih0aGlzKTsKICAgICBpZiAoIWVuYWJsZWQoKSB8fCAhV2Vi
U29ja2V0RnJhbWU6OmlzTm9uQ29udHJvbE9wQ29kZShmcmFtZS5vcENvZGUpIHx8ICFmcmFtZS5w
YXlsb2FkTGVuZ3RoKQotICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICBpZiAoIW1fZGVmbGF0ZXItPmFkZEJ5dGVzKGZyYW1lLnBheWxv
YWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8ICFtX2RlZmxhdGVyLT5maW5pc2goKSkgewogICAg
ICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBjb21wcmVzcyBmcmFtZSIpOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAg
ICAgZnJhbWUuY29tcHJlc3MgPSB0cnVlOwogICAgIGZyYW1lLnBheWxvYWQgPSBtX2RlZmxhdGVy
LT5kYXRhKCk7CiAgICAgZnJhbWUucGF5bG9hZExlbmd0aCA9IG1fZGVmbGF0ZXItPnNpemUoKTsK
LSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcmVzdWx0OwogI2Vsc2UK
LSAgICByZXR1cm4gRGVmbGF0ZVJlc3VsdEhvbGRlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPERlZmxhdGVSZXN1bHRIb2xkZXI+KHRoaXMpOwogI2VuZGlmCiB9
CiAKQEAgLTIxNiwzMCArMjExLDMwIEBAIHZvaWQgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6cmVz
ZXREZWZsYXRlQ29udGV4dCgpCiAjZW5kaWYKIH0KIAotUGFzc093blB0cjxJbmZsYXRlUmVzdWx0
SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKFdlYlNvY2tldEZyYW1lJiBm
cmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbmZsYXRlUmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZs
YXRlRnJhbWVyOjppbmZsYXRlKFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKIHsKLSAgICBPd25QdHI8
SW5mbGF0ZVJlc3VsdEhvbGRlcj4gcmVzdWx0ID0gSW5mbGF0ZVJlc3VsdEhvbGRlcjo6Y3JlYXRl
KHRoaXMpOworICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxJbmZsYXRlUmVzdWx0
SG9sZGVyPih0aGlzKTsKICAgICBpZiAoIWVuYWJsZWQoKSAmJiBmcmFtZS5jb21wcmVzcykgewog
ICAgICAgICByZXN1bHQtPmZhaWwoIkNvbXByZXNzZWQgYml0IG11c3QgYmUgMCBpZiBubyBuZWdv
dGlhdGVkIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIik7Ci0gICAgICAgIHJldHVybiByZXN1bHQu
cmVsZWFzZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICNpZiBVU0UoWkxJQikK
ICAgICBpZiAoIWZyYW1lLmNvbXByZXNzKQotICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2Uo
KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICBpZiAoIVdlYlNvY2tldEZyYW1lOjppc05v
bkNvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSkgewogICAgICAgICByZXN1bHQtPmZhaWwoIlJl
Y2VpdmVkIHVuZXhwZWN0ZWQgY29tcHJlc3NlZCBmcmFtZSIpOwotICAgICAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgaWYgKCFt
X2luZmxhdGVyLT5hZGRCeXRlcyhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8
fCAhbV9pbmZsYXRlci0+ZmluaXNoKCkpIHsKICAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQg
dG8gZGVjb21wcmVzcyBmcmFtZSIpOwotICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSBmYWxz
ZTsKICAgICBmcmFtZS5wYXlsb2FkID0gbV9pbmZsYXRlci0+ZGF0YSgpOwogICAgIGZyYW1lLnBh
eWxvYWRMZW5ndGggPSBtX2luZmxhdGVyLT5zaXplKCk7Ci0gICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKICNlbHNlCi0gICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIu
aAppbmRleCBmMzIzMmFmNzBkMDBlZTQ5ZDRmZjIxZjg1MzAzYTk4MTI3ZDhiZWIwLi5jN2Y2NTdk
ZTIzZDMwNjg2MjQ1ZGExNDE2YTVhMzcyNzQ2NzdjZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgK
QEAgLTM4LDggKzM4LDYgQEAKICNlbmRpZgogI2luY2x1ZGUgIldlYlNvY2tldEV4dGVuc2lvblBy
b2Nlc3Nvci5oIgogI2luY2x1ZGUgIldlYlNvY2tldEZyYW1lLmgiCi0jaW5jbHVkZSA8d3RmL093
blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDgsMTEgKzQ2LDcgQEAgY2xhc3MgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjsKIGNs
YXNzIERlZmxhdGVSZXN1bHRIb2xkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPERlZmxhdGVSZXN1bHRIb2xkZXI+IGNyZWF0
ZShXZWJTb2NrZXREZWZsYXRlRnJhbWVyKiBmcmFtZXIpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IERlZmxhdGVSZXN1bHRIb2xkZXIoZnJhbWVyKSk7Ci0gICAgfQotCisgICAg
ZXhwbGljaXQgRGVmbGF0ZVJlc3VsdEhvbGRlcihXZWJTb2NrZXREZWZsYXRlRnJhbWVyKik7CiAg
ICAgfkRlZmxhdGVSZXN1bHRIb2xkZXIoKTsKIAogICAgIGJvb2wgc3VjY2VlZGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9zdWNjZWVkZWQ7IH0KQEAgLTYxLDggKzU1LDYgQEAgcHVibGljOgogICAgIHZv
aWQgZmFpbChjb25zdCBTdHJpbmcmIGZhaWx1cmVSZWFzb24pOwogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IERlZmxhdGVSZXN1bHRIb2xkZXIoV2ViU29ja2V0RGVmbGF0ZUZyYW1lciopOwotCiAg
ICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogbV9mcmFtZXI7CiAgICAgYm9vbCBtX3N1Y2NlZWRl
ZDsKICAgICBTdHJpbmcgbV9mYWlsdXJlUmVhc29uOwpAQCAtNzEsMTEgKzYzLDcgQEAgcHJpdmF0
ZToKIGNsYXNzIEluZmxhdGVSZXN1bHRIb2xkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+
IGNyZWF0ZShXZWJTb2NrZXREZWZsYXRlRnJhbWVyKiBmcmFtZXIpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEluZmxhdGVSZXN1bHRIb2xkZXIoZnJhbWVyKSk7Ci0gICAgfQot
CisgICAgZXhwbGljaXQgSW5mbGF0ZVJlc3VsdEhvbGRlcihXZWJTb2NrZXREZWZsYXRlRnJhbWVy
Kik7CiAgICAgfkluZmxhdGVSZXN1bHRIb2xkZXIoKTsKIAogICAgIGJvb2wgc3VjY2VlZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9zdWNjZWVkZWQ7IH0KQEAgLTg0LDggKzcyLDYgQEAgcHVibGljOgog
ICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIGZhaWx1cmVSZWFzb24pOwogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IEluZmxhdGVSZXN1bHRIb2xkZXIoV2ViU29ja2V0RGVmbGF0ZUZyYW1lciop
OwotCiAgICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogbV9mcmFtZXI7CiAgICAgYm9vbCBtX3N1
Y2NlZWRlZDsKICAgICBTdHJpbmcgbV9mYWlsdXJlUmVhc29uOwpAQCAtOTUsMTQgKzgxLDE0IEBA
IGNsYXNzIFdlYlNvY2tldERlZmxhdGVGcmFtZXIgewogcHVibGljOgogICAgIFdlYlNvY2tldERl
ZmxhdGVGcmFtZXIoKTsKIAotICAgIFBhc3NPd25QdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vz
c29yPiBjcmVhdGVFeHRlbnNpb25Qcm9jZXNzb3IoKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
U29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBjcmVhdGVFeHRlbnNpb25Qcm9jZXNzb3IoKTsKIAog
ICAgIGJvb2wgY2FuRGVmbGF0ZSgpIGNvbnN0OwogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZW5hYmxlZDsgfQogCi0gICAgUGFzc093blB0cjxEZWZsYXRlUmVzdWx0SG9sZGVy
PiBkZWZsYXRlKFdlYlNvY2tldEZyYW1lJik7CisgICAgc3RkOjp1bmlxdWVfcHRyPERlZmxhdGVS
ZXN1bHRIb2xkZXI+IGRlZmxhdGUoV2ViU29ja2V0RnJhbWUmKTsKICAgICB2b2lkIHJlc2V0RGVm
bGF0ZUNvbnRleHQoKTsKLSAgICBQYXNzT3duUHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IGluZmxh
dGUoV2ViU29ja2V0RnJhbWUmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5mbGF0ZVJlc3VsdEhv
bGRlcj4gaW5mbGF0ZShXZWJTb2NrZXRGcmFtZSYpOwogICAgIHZvaWQgcmVzZXRJbmZsYXRlQ29u
dGV4dCgpOwogCiAgICAgdm9pZCBkaWRGYWlsKCk7CkBAIC0xMTQsOCArMTAwLDggQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlZDsKICNpZiBVU0UoWkxJQikKLSAgICBPd25Q
dHI8V2ViU29ja2V0RGVmbGF0ZXI+IG1fZGVmbGF0ZXI7Ci0gICAgT3duUHRyPFdlYlNvY2tldElu
ZmxhdGVyPiBtX2luZmxhdGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXREZWZsYXRl
cj4gbV9kZWZsYXRlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0SW5mbGF0ZXI+IG1f
aW5mbGF0ZXI7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuY3BwCmluZGV4IGFlZjRiMWU5ZDMzMmIw
MDdjYzU5MWExNzVmMTEzYjkwZDgzODFhYTcuLjQ5N2IyOTNhNjczMDIzNjE5YmE5NzY2MDA0MWUy
YzE4MjdmOWZmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXREZWZsYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmNwcApAQCAtNDcsMTggKzQ3LDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdE1lbUxldmVsID0gMTsKIHN0YXRp
YyBjb25zdCBzaXplX3QgYnVmZmVySW5jcmVtZW50VW5pdCA9IDQwOTY7CiAKLVBhc3NPd25QdHI8
V2ViU29ja2V0RGVmbGF0ZXI+IFdlYlNvY2tldERlZmxhdGVyOjpjcmVhdGUoaW50IHdpbmRvd0Jp
dHMsIENvbnRleHRUYWtlT3Zlck1vZGUgY29udGV4dFRha2VPdmVyTW9kZSkKLXsKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFdlYlNvY2tldERlZmxhdGVyKHdpbmRvd0JpdHMsIGNvbnRleHRUYWtl
T3Zlck1vZGUpKTsKLX0KLQogV2ViU29ja2V0RGVmbGF0ZXI6OldlYlNvY2tldERlZmxhdGVyKGlu
dCB3aW5kb3dCaXRzLCBDb250ZXh0VGFrZU92ZXJNb2RlIGNvbnRleHRUYWtlT3Zlck1vZGUpCiAg
ICAgOiBtX3dpbmRvd0JpdHMod2luZG93Qml0cykKICAgICAsIG1fY29udGV4dFRha2VPdmVyTW9k
ZShjb250ZXh0VGFrZU92ZXJNb2RlKQogewogICAgIEFTU0VSVChtX3dpbmRvd0JpdHMgPj0gOCk7
CiAgICAgQVNTRVJUKG1fd2luZG93Qml0cyA8PSAxNSk7Ci0gICAgbV9zdHJlYW0gPSBhZG9wdFB0
cihuZXcgel9zdHJlYW0pOworICAgIG1fc3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTx6X3N0cmVh
bT4oKTsKICAgICBtZW1zZXQobV9zdHJlYW0uZ2V0KCksIDAsIHNpemVvZih6X3N0cmVhbSkpOwog
fQogCkBAIC0xMjcsMTUgKzEyMiwxMCBAQCB2b2lkIFdlYlNvY2tldERlZmxhdGVyOjpyZXNldCgp
CiAgICAgICAgIGRlZmxhdGVSZXNldChtX3N0cmVhbS5nZXQoKSk7CiB9CiAKLVBhc3NPd25QdHI8
V2ViU29ja2V0SW5mbGF0ZXI+IFdlYlNvY2tldEluZmxhdGVyOjpjcmVhdGUoaW50IHdpbmRvd0Jp
dHMpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJTb2NrZXRJbmZsYXRlcih3aW5kb3dC
aXRzKSk7Ci19Ci0KIFdlYlNvY2tldEluZmxhdGVyOjpXZWJTb2NrZXRJbmZsYXRlcihpbnQgd2lu
ZG93Qml0cykKICAgICA6IG1fd2luZG93Qml0cyh3aW5kb3dCaXRzKQogewotICAgIG1fc3RyZWFt
ID0gYWRvcHRQdHIobmV3IHpfc3RyZWFtKTsKKyAgICBtX3N0cmVhbSA9IHN0ZDo6bWFrZV91bmlx
dWU8el9zdHJlYW0+KCk7CiAgICAgbWVtc2V0KG1fc3RyZWFtLmdldCgpLCAwLCBzaXplb2Yoel9z
dHJlYW0pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldERlZmxhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RGVmbGF0ZXIuaAppbmRleCBmNzNlYjIwZDM5NDAzY2U0YmE1YTMxZTkzZDM2
YjZlM2Q4ODcwZGI0Li5jMDEyYmQyNzk2MDg4YWJmNzg1OGIzMmY1YTM5OTQyZjE1OTQxMGRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVm
bGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
RGVmbGF0ZXIuaApAQCAtMzQsOCArMzQsNiBAQAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKIAog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogc3Ry
dWN0IHpfc3RyZWFtX3M7CkBAIC01MCw4ICs0OCw4IEBAIHB1YmxpYzoKICAgICAgICAgRG9Ob3RU
YWtlT3ZlckNvbnRleHQsCiAgICAgICAgIFRha2VPdmVyQ29udGV4dAogICAgIH07Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8V2ViU29ja2V0RGVmbGF0ZXI+IGNyZWF0ZShpbnQgd2luZG93Qml0cywg
Q29udGV4dFRha2VPdmVyTW9kZSA9IFRha2VPdmVyQ29udGV4dCk7CiAKKyAgICBXZWJTb2NrZXRE
ZWZsYXRlcihpbnQgd2luZG93Qml0cywgQ29udGV4dFRha2VPdmVyTW9kZSA9IFRha2VPdmVyQ29u
dGV4dCk7CiAgICAgfldlYlNvY2tldERlZmxhdGVyKCk7CiAKICAgICBib29sIGluaXRpYWxpemUo
KTsKQEAgLTYyLDE5ICs2MCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldCgpOwogCiBwcml2
YXRlOgotICAgIFdlYlNvY2tldERlZmxhdGVyKGludCB3aW5kb3dCaXRzLCBDb250ZXh0VGFrZU92
ZXJNb2RlKTsKLQogICAgIGludCBtX3dpbmRvd0JpdHM7CiAgICAgQ29udGV4dFRha2VPdmVyTW9k
ZSBtX2NvbnRleHRUYWtlT3Zlck1vZGU7CiAgICAgVmVjdG9yPGNoYXI+IG1fYnVmZmVyOwotICAg
IE93blB0cjx6X3N0cmVhbT4gbV9zdHJlYW07CisgICAgc3RkOjp1bmlxdWVfcHRyPHpfc3RyZWFt
PiBtX3N0cmVhbTsKIH07CiAKIGNsYXNzIFdlYlNvY2tldEluZmxhdGVyIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJTb2Nr
ZXRJbmZsYXRlcj4gY3JlYXRlKGludCB3aW5kb3dCaXRzID0gMTUpOwotCisgICAgZXhwbGljaXQg
V2ViU29ja2V0SW5mbGF0ZXIoaW50IHdpbmRvd0JpdHMgPSAxNSk7CiAgICAgfldlYlNvY2tldElu
ZmxhdGVyKCk7CiAKICAgICBib29sIGluaXRpYWxpemUoKTsKQEAgLTg1LDExICs4MCw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlc2V0KCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViU29j
a2V0SW5mbGF0ZXIoaW50IHdpbmRvd0JpdHMpOwotCiAgICAgaW50IG1fd2luZG93Qml0czsKICAg
ICBWZWN0b3I8Y2hhcj4gbV9idWZmZXI7Ci0gICAgT3duUHRyPHpfc3RyZWFtPiBtX3N0cmVhbTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8el9zdHJlYW0+IG1fc3RyZWFtOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCmluZGV4IDhkYWE2OWNmY2Q5MGNkYTU0YWI1MzZj
ZDk0MzkwY2RjMGZmYzQ5OTMuLjE5ZTI1YTFhNWEwNTAzYzBhM2ZkN2RlNmI0NjNjYTQwNWIzNDZh
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgdm9pZCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpyZXNldCgpCiAgICAgbV9wcm9j
ZXNzb3JzLmNsZWFyKCk7CiB9CiAKLXZvaWQgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6
YWRkUHJvY2Vzc29yKFBhc3NPd25QdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBwcm9j
ZXNzb3IpCit2b2lkIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFkZFByb2Nlc3Nvcihz
dGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBwcm9jZXNzb3IpCiB7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Byb2Nlc3NvcnMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgaWYgKG1fcHJvY2Vzc29yc1tpXS0+ZXh0ZW5zaW9uVG9rZW4oKSA9PSBwcm9jZXNz
b3ItPmV4dGVuc2lvblRva2VuKCkpCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlcjo6YWRkUHJvY2Vzc29yKFBhc3NPd25QdHI8V2ViU29ja2V0RXh0ZW5z
aW9uUHJvCiAgICAgQVNTRVJUKHByb2Nlc3Nvci0+aGFuZHNoYWtlU3RyaW5nKCkubGVuZ3RoKCkp
OwogICAgIEFTU0VSVCghcHJvY2Vzc29yLT5oYW5kc2hha2VTdHJpbmcoKS5jb250YWlucygnXG4n
KSk7CiAgICAgQVNTRVJUKCFwcm9jZXNzb3ItPmhhbmRzaGFrZVN0cmluZygpLmNvbnRhaW5zKHN0
YXRpY19jYXN0PFVDaGFyPignXDAnKSkpOwotICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQocHJvY2Vz
c29yKTsKKyAgICBtX3Byb2Nlc3NvcnMuYXBwZW5kKFdURjo6bW92ZShwcm9jZXNzb3IpKTsKIH0K
IAogY29uc3QgU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmNyZWF0ZUhlYWRl
clZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5oCmluZGV4IDI0MzAw
MTdkNWQzNTE5MDAzOTY3YTYyZWI3MzE0NjU1ZjU2NmZkMGYuLjFiYjk3MjdjZjkxMDdkNzZkZmE2
NmZjZDMzMmMzYmI1NTljNTU5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaApA
QCAtMzQsOCArMzQsNiBAQAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKIAogI2luY2x1ZGUgIldl
YlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvci5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CkBAIC00Nyw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBXZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyKCkgeyB9CiAKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCBhZGRQcm9jZXNz
b3IoUGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+KTsKKyAgICB2b2lkIGFk
ZFByb2Nlc3NvcihzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPik7
CiAgICAgY29uc3QgU3RyaW5nIGNyZWF0ZUhlYWRlclZhbHVlKCkgY29uc3Q7CiAKICAgICBib29s
IHByb2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmKTsKQEAgLTU4LDcgKzU2LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGFwcGVuZEFjY2VwdGVkRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0
ZW5zaW9uVG9rZW4sIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRlbnNpb25QYXJhbWV0ZXJz
KTsKICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOwogCi0gICAgVmVjdG9yPE93
blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+PiBtX3Byb2Nlc3NvcnM7CisgICAgVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+PiBtX3Byb2Nl
c3NvcnM7CiAgICAgU3RyaW5nQnVpbGRlciBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXI7CiAg
ICAgU3RyaW5nIG1fZmFpbHVyZVJlYXNvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IGM3MzA0
NjFkY2U5MjBhM2FhOTAzODg4NjgwMDZjZjM0ZDZiNjA2YzkuLjExMjY1ZTFmMmY1ZDMxNWExNTE2
MjU0ODkxOGJhZmFjOTZjMzA2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0zNzYsOSArMzc2LDkg
QEAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgV2ViU29ja2V0SGFuZHNoYWtlOjpzZXJ2ZXJIYW5k
c2hha2VSZXNwb25zZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VydmVySGFuZHNoYWtlUmVzcG9u
c2U7CiB9CiAKLXZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjphZGRFeHRlbnNpb25Qcm9jZXNzb3Io
UGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IHByb2Nlc3NvcikKK3ZvaWQg
V2ViU29ja2V0SGFuZHNoYWtlOjphZGRFeHRlbnNpb25Qcm9jZXNzb3Ioc3RkOjp1bmlxdWVfcHRy
PFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4gcHJvY2Vzc29yKQogewotICAgIG1fZXh0ZW5z
aW9uRGlzcGF0Y2hlci5hZGRQcm9jZXNzb3IocHJvY2Vzc29yKTsKKyAgICBtX2V4dGVuc2lvbkRp
c3BhdGNoZXIuYWRkUHJvY2Vzc29yKFdURjo6bW92ZShwcm9jZXNzb3IpKTsKIH0KIAogVVJMIFdl
YlNvY2tldEhhbmRzaGFrZTo6aHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmgKaW5kZXggY2NhYjA0NTAxNDEzNDc5Y2Q2YzZjYWE0MDdhZGI2ZmJhY2Yz
ZDZmNC4uMGQ1OTAwYjg4YTc5ODc3MmViMWExMjA5Mjk3M2ZlZGJhZDg0NTc1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuaApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNp
bmNsdWRlICJXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0RXh0ZW5zaW9uUHJvY2Vzc29yLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
ODYsNyArODUsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBzZXJ2
ZXJIYW5kc2hha2VSZXNwb25zZSgpIGNvbnN0OwogCi0gICAgdm9pZCBhZGRFeHRlbnNpb25Qcm9j
ZXNzb3IoUGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+KTsKKyAgICB2b2lk
IGFkZEV4dGVuc2lvblByb2Nlc3NvcihzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0RXh0ZW5zaW9u
UHJvY2Vzc29yPik7CiAKICAgICBzdGF0aWMgU3RyaW5nIGdldEV4cGVjdGVkV2ViU29ja2V0QWNj
ZXB0KGNvbnN0IFN0cmluZyYgc2VjV2ViU29ja2V0S2V5KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241413</attachid>
            <date>2014-11-11 21:34:38 -0800</date>
            <delta_ts>2014-11-11 23:33:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-138649-20141112143442.patch</filename>
            <type>text/plain</type>
            <size>25633</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQzOWU1MzA1Yzc5NGVm
NDkyZjY2YzdlNTZiMDM1MTYxYmM1ZjE3MC4uNDU0ZTJkOWM2MzhjZjM0MGFhMDQyYjMyOWQxOWY2
MDczOGY5MmZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE0LTExLTExICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSBNb2R1
bGVzL3dlYnNvY2tldHMgdG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg2NDkKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZW1vdmUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbiBh
bmQgdXNlIHN0ZDo6bWFrZV91bmlxdWU8Piwgc3RkOjp1bmlxdWVfcHRyPD4KKyAgICAgICAgaW5z
dGVhZCBvZiBPd25QdHIsIFBhc3NPd25QdHIuCisgICAgICAgIEhvd2V2ZXIgZGlkUmVjZWl2ZUJp
bmFyeURhdGEoKSBpcyBzdGlsbCB1c2luZyBQYXNzT3duUHRyLiBJdCBzaG91bGQgYmUgcmVwbGFj
ZWQKKyAgICAgICAgd2l0aCBzdGQ6OnVuaXF1ZV9wdHI8PgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlVGV4dEZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmVucXVldWVSYXdGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlQmxvYkZyYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6c2VuZEZyYW1lKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmNyZWF0ZUV4dGVuc2lvblByb2Nlc3Nvcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjplbmFibGVEZWZsYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRlZmxhdGVSZXN1bHRIb2xkZXI6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbmZsYXRlUmVzdWx0SG9sZGVyOjpjcmVhdGUpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlcjo6V2ViU29ja2V0RGVmbGF0ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SW5mbGF0ZXI6OldlYlNvY2tldEluZmxhdGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVyOjpjcmVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SW5mbGF0ZXI6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmg6CisgICAgICAg
ICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6YWRkUHJvY2Vz
c29yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlz
cGF0Y2hlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjphZGRFeHRlbnNp
b25Qcm9jZXNzb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuaDoKKwogMjAxNC0xMS0xMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTWFjXSBBZGQgZGlhZ25vc3RpYyBsb2dnaW5nIGZvciBwZXItbWVkaWEtZW5n
aW5lIGxvYWQgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXIuaAppbmRleCBiMjBlZDBjZDQ2NzZlZjZlY2ZmNDU5ZGQwNmNjODcyOGIxMTQz
NjI5Li5lNGJkNmIwZmEzYmU0ZThiMjAyNDg5ZTA2ZTE3YTk4MjFiYWY3MGI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCkBAIC0zOSw3ICsz
OSw2IEBACiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCIKICNp
bmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGZkNDc3OTZkMTNh
YjkyNGU5ODIwN2VmMWQyNDhkNThjNzhiMWNiZjYuLmUwNDgzYzU1ODUwMzA2MzRhMDdhMjhiMmE4
ODg2NmY5MWQ0NWU5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuY3BwCkBAIC01Niw3ICs1Niw2IEBACiAjaW5jbHVkZSA8cnVudGltZS9BcnJh
eUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDdmZDYyMWUy
YjM1ODhiODE5NzQ5ZTI3OTkzYTAwNDllMjlmMzQxZjYuLmQ5YzZhYmQyNzcyMGEyMjdhYTAyNjJh
Yzk3MDZkMDEzNmM1YzE2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTU2LDggKzU2LDYgQEAKICNpbmNs
dWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTk5LDcgKzk3LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0
Q2hhbm5lbCAlcCBjb25uZWN0KCkiLCB0aGlzKTsKICAgICBBU1NFUlQoIW1faGFuZGxlKTsKICAg
ICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKLSAgICBtX2hhbmRzaGFrZSA9IGFkb3B0UHRyKG5ldyBX
ZWJTb2NrZXRIYW5kc2hha2UodXJsLCBwcm90b2NvbCwgbV9kb2N1bWVudCkpOworICAgIG1faGFu
ZHNoYWtlID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJTb2NrZXRIYW5kc2hha2U+KHVybCwgcHJvdG9j
b2wsIG1fZG9jdW1lbnQpOwogICAgIG1faGFuZHNoYWtlLT5yZXNldCgpOwogICAgIGlmIChtX2Rl
ZmxhdGVGcmFtZXIuY2FuRGVmbGF0ZSgpKQogICAgICAgICBtX2hhbmRzaGFrZS0+YWRkRXh0ZW5z
aW9uUHJvY2Vzc29yKG1fZGVmbGF0ZUZyYW1lci5jcmVhdGVFeHRlbnNpb25Qcm9jZXNzb3IoKSk7
CkBAIC0zNzUsNyArMzczLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsKGludCBl
cnJvckNvZGUpCiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZEZhaWwo
KSBlcnJvckNvZGU9JWQiLCB0aGlzLCBlcnJvckNvZGUpOwogICAgIEFTU0VSVChtX2Jsb2JMb2Fk
ZXIpOwogICAgIEFTU0VSVChtX2Jsb2JMb2FkZXJTdGF0dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQp
OwotICAgIG1fYmxvYkxvYWRlci5jbGVhcigpOworICAgIG1fYmxvYkxvYWRlciA9IG51bGxwdHI7
CiAgICAgbV9ibG9iTG9hZGVyU3RhdHVzID0gQmxvYkxvYWRlckZhaWxlZDsKICAgICBmYWlsKCJG
YWlsZWQgdG8gbG9hZCBCbG9iOiBlcnJvciBjb2RlID0gIiArIFN0cmluZzo6bnVtYmVyKGVycm9y
Q29kZSkpOyAvLyBGSVhNRTogR2VuZXJhdGUgaHVtYW4tZnJpZW5kbHkgcmVhc29uIG1lc3NhZ2Uu
CiAgICAgZGVyZWYoKTsKQEAgLTUxOCw3ICs1MTYsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSgpCiAgICAgQVNTRVJUKG1fYnVmZmVyLmRhdGEoKSA8IGZyYW1lRW5kKTsK
ICAgICBBU1NFUlQoZnJhbWVFbmQgPD0gbV9idWZmZXIuZGF0YSgpICsgbV9idWZmZXIuc2l6ZSgp
KTsKIAotICAgIE93blB0cjxJbmZsYXRlUmVzdWx0SG9sZGVyPiBpbmZsYXRlUmVzdWx0ID0gbV9k
ZWZsYXRlRnJhbWVyLmluZmxhdGUoZnJhbWUpOworICAgIGF1dG8gaW5mbGF0ZVJlc3VsdCA9IG1f
ZGVmbGF0ZUZyYW1lci5pbmZsYXRlKGZyYW1lKTsKICAgICBpZiAoIWluZmxhdGVSZXN1bHQtPnN1
Y2NlZWRlZCgpKSB7CiAgICAgICAgIGZhaWwoaW5mbGF0ZVJlc3VsdC0+ZmFpbHVyZVJlYXNvbigp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjg1LDcgKzY4Myw3IEBAIGJvb2wgV2ViU29j
a2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1
ZVRleHRGcmFtZShjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgQVNTRVJUKG1fb3V0Z29p
bmdGcmFtZVF1ZXVlU3RhdHVzID09IE91dGdvaW5nRnJhbWVRdWV1ZU9wZW4pOwotICAgIE93blB0
cjxRdWV1ZWRGcmFtZT4gZnJhbWUgPSBhZG9wdFB0cihuZXcgUXVldWVkRnJhbWUpOworICAgIGF1
dG8gZnJhbWUgPSBzdGQ6Om1ha2VfdW5pcXVlPFF1ZXVlZEZyYW1lPigpOwogICAgIGZyYW1lLT5v
cENvZGUgPSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlVGV4dDsKICAgICBmcmFtZS0+ZnJhbWVUeXBl
ID0gUXVldWVkRnJhbWVUeXBlU3RyaW5nOwogICAgIGZyYW1lLT5zdHJpbmdEYXRhID0gc3RyaW5n
OwpAQCAtNjk1LDcgKzY5Myw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVRleHRG
cmFtZShjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmVucXVl
dWVSYXdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSwgY29uc3QgY2hhciogZGF0
YSwgc2l6ZV90IGRhdGFMZW5ndGgpCiB7CiAgICAgQVNTRVJUKG1fb3V0Z29pbmdGcmFtZVF1ZXVl
U3RhdHVzID09IE91dGdvaW5nRnJhbWVRdWV1ZU9wZW4pOwotICAgIE93blB0cjxRdWV1ZWRGcmFt
ZT4gZnJhbWUgPSBhZG9wdFB0cihuZXcgUXVldWVkRnJhbWUpOworICAgIGF1dG8gZnJhbWUgPSBz
dGQ6Om1ha2VfdW5pcXVlPFF1ZXVlZEZyYW1lPigpOwogICAgIGZyYW1lLT5vcENvZGUgPSBvcENv
ZGU7CiAgICAgZnJhbWUtPmZyYW1lVHlwZSA9IFF1ZXVlZEZyYW1lVHlwZVZlY3RvcjsKICAgICBm
cmFtZS0+dmVjdG9yRGF0YS5yZXNpemUoZGF0YUxlbmd0aCk7CkBAIC03MDcsNyArNzA1LDcgQEAg
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlUmF3RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZSBvcENvZGUsIGNvbnN0IGNoYXIKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZUJs
b2JGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSwgQmxvYiYgYmxvYikKIHsKICAg
ICBBU1NFUlQobV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0dXMgPT0gT3V0Z29pbmdGcmFtZVF1ZXVl
T3Blbik7Ci0gICAgT3duUHRyPFF1ZXVlZEZyYW1lPiBmcmFtZSA9IGFkb3B0UHRyKG5ldyBRdWV1
ZWRGcmFtZSk7CisgICAgYXV0byBmcmFtZSA9IHN0ZDo6bWFrZV91bmlxdWU8UXVldWVkRnJhbWU+
KCk7CiAgICAgZnJhbWUtPm9wQ29kZSA9IG9wQ29kZTsKICAgICBmcmFtZS0+ZnJhbWVUeXBlID0g
UXVldWVkRnJhbWVUeXBlQmxvYjsKICAgICBmcmFtZS0+YmxvYkRhdGEgPSAmYmxvYjsKQEAgLTcy
Miw3ICs3MjAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1l
UXVldWUoKQogICAgIFJlZjxXZWJTb2NrZXRDaGFubmVsPiBwcm90ZWN0KCp0aGlzKTsgLy8gQW55
IGNhbGwgdG8gZmFpbCgpIHdpbGwgZ2V0IHRoZSBjaGFubmVsIGNsb3NlZCBhbmQgZGVyZWZlcmVu
Y2VkLgogCiAgICAgd2hpbGUgKCFtX291dGdvaW5nRnJhbWVRdWV1ZS5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgT3duUHRyPFF1ZXVlZEZyYW1lPiBmcmFtZSA9IG1fb3V0Z29pbmdGcmFtZVF1ZXVlLnRh
a2VGaXJzdCgpOworICAgICAgICBhdXRvIGZyYW1lID0gbV9vdXRnb2luZ0ZyYW1lUXVldWUudGFr
ZUZpcnN0KCk7CiAgICAgICAgIHN3aXRjaCAoZnJhbWUtPmZyYW1lVHlwZSkgewogICAgICAgICBj
YXNlIFF1ZXVlZEZyYW1lVHlwZVN0cmluZzogewogICAgICAgICAgICAgaWYgKCFzZW5kRnJhbWUo
ZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnN0cmluZ0RhdGEuZGF0YSgpLCBmcmFtZS0+c3RyaW5nRGF0
YS5sZW5ndGgoKSkpCkBAIC03NDAsNyArNzM4LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpw
cm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgICAgIGNhc2UgQmxvYkxvYWRlck5v
dFN0YXJ0ZWQ6CiAgICAgICAgICAgICAgICAgcmVmKCk7IC8vIFdpbGwgYmUgZGVyZWZlZCBhZnRl
ciBkaWRGaW5pc2hMb2FkaW5nKCkgb3IgZGlkRmFpbCgpLgogICAgICAgICAgICAgICAgIEFTU0VS
VCghbV9ibG9iTG9hZGVyKTsKLSAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXIgPSBhZG9wdFB0
cihuZXcgRmlsZVJlYWRlckxvYWRlcihGaWxlUmVhZGVyTG9hZGVyOjpSZWFkQXNBcnJheUJ1ZmZl
ciwgdGhpcykpOworICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlciA9IHN0ZDo6bWFrZV91bmlx
dWU8RmlsZVJlYWRlckxvYWRlcj4oRmlsZVJlYWRlckxvYWRlcjo6UmVhZEFzQXJyYXlCdWZmZXIs
IHRoaXMpOwogICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJsb2JMb2FkZXJT
dGFydGVkOwogICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlci0+c3RhcnQobV9kb2N1bWVudCwg
ZnJhbWUtPmJsb2JEYXRhLmdldCgpKTsKICAgICAgICAgICAgICAgICBtX291dGdvaW5nRnJhbWVR
dWV1ZS5wcmVwZW5kKGZyYW1lLnJlbGVhc2UoKSk7CkBAIC03NTMsNyArNzUxLDcgQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKIAogICAgICAgICAg
ICAgY2FzZSBCbG9iTG9hZGVyRmluaXNoZWQ6IHsKICAgICAgICAgICAgICAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IHJlc3VsdCA9IG1fYmxvYkxvYWRlci0+YXJyYXlCdWZmZXJSZXN1bHQoKTsKLSAg
ICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtX2Js
b2JMb2FkZXIgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9
IEJsb2JMb2FkZXJOb3RTdGFydGVkOwogICAgICAgICAgICAgICAgIGlmICghc2VuZEZyYW1lKGZy
YW1lLT5vcENvZGUsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihyZXN1bHQtPmRhdGEoKSksIHJl
c3VsdC0+Ynl0ZUxlbmd0aCgpKSkKICAgICAgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRv
IHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOwpAQCAtNzk0LDcgKzc5Miw3IEBAIGJvb2wgV2ViU29j
a2V0Q2hhbm5lbDo6c2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUgb3BDb2RlLCBjb25z
dCBjaGFyKiBkYXRhCiAgICAgV2ViU29ja2V0RnJhbWUgZnJhbWUob3BDb2RlLCB0cnVlLCBmYWxz
ZSwgdHJ1ZSwgZGF0YSwgZGF0YUxlbmd0aCk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudCwgbV9pZGVudGlmaWVyLCBmcmFtZSk7
CiAKLSAgICBPd25QdHI8RGVmbGF0ZVJlc3VsdEhvbGRlcj4gZGVmbGF0ZVJlc3VsdCA9IG1fZGVm
bGF0ZUZyYW1lci5kZWZsYXRlKGZyYW1lKTsKKyAgICBhdXRvIGRlZmxhdGVSZXN1bHQgPSBtX2Rl
ZmxhdGVGcmFtZXIuZGVmbGF0ZShmcmFtZSk7CiAgICAgaWYgKCFkZWZsYXRlUmVzdWx0LT5zdWNj
ZWVkZWQoKSkgewogICAgICAgICBmYWlsKGRlZmxhdGVSZXN1bHQtPmZhaWx1cmVSZWFzb24oKSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IGU0ZmFjMmI5YmM0ZDc1MzFkZjYw
NGU5NmRmNjM2NWExYjZkODEwN2YuLmJlNzVkMzM0NDk2NDZhMWUyOGRlMjk1YzcxYTEwNzU2NmE0
NjdkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAKICAgICBEb2N1
bWVudCogbV9kb2N1bWVudDsKICAgICBXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBtX2NsaWVudDsK
LSAgICBPd25QdHI8V2ViU29ja2V0SGFuZHNoYWtlPiBtX2hhbmRzaGFrZTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViU29ja2V0SGFuZHNoYWtlPiBtX2hhbmRzaGFrZTsKICAgICBSZWZQdHI8U29j
a2V0U3RyZWFtSGFuZGxlPiBtX2hhbmRsZTsKICAgICBWZWN0b3I8Y2hhcj4gbV9idWZmZXI7CiAK
QEAgLTIwOCwxMSArMjA4LDExIEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgc2hvcnQgbV9jbG9z
ZUV2ZW50Q29kZTsKICAgICBTdHJpbmcgbV9jbG9zZUV2ZW50UmVhc29uOwogCi0gICAgRGVxdWU8
T3duUHRyPFF1ZXVlZEZyYW1lPj4gbV9vdXRnb2luZ0ZyYW1lUXVldWU7CisgICAgRGVxdWU8c3Rk
Ojp1bmlxdWVfcHRyPFF1ZXVlZEZyYW1lPj4gbV9vdXRnb2luZ0ZyYW1lUXVldWU7CiAgICAgT3V0
Z29pbmdGcmFtZVF1ZXVlU3RhdHVzIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzOwogCiAgICAg
Ly8gRklYTUU6IExvYWQgdHdvIG9yIG1vcmUgQmxvYnMgc2ltdWx0YW5lb3VzbHkgZm9yIGJldHRl
ciBwZXJmb3JtYW5jZS4KLSAgICBPd25QdHI8RmlsZVJlYWRlckxvYWRlcj4gbV9ibG9iTG9hZGVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlUmVhZGVyTG9hZGVyPiBtX2Jsb2JMb2FkZXI7CiAg
ICAgQmxvYkxvYWRlclN0YXR1cyBtX2Jsb2JMb2FkZXJTdGF0dXM7CiAKICAgICBXZWJTb2NrZXRE
ZWZsYXRlRnJhbWVyIG1fZGVmbGF0ZUZyYW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAppbmRl
eCBmM2FhM2YwODE2OTUyMTZmYzY2NjVjZDQ0YTVjYmRlYWRmMTdkYTc3Li45NDUzNjI4YzZlYThk
NDY3ZDE2NGJmYmZiZDEzNWRiZDkzM2ZhZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCkBA
IC00MywxMCArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXZWJTb2NrZXRFeHRl
bnNpb25EZWZsYXRlRnJhbWUgOiBwdWJsaWMgV2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU+IGNyZWF0ZShXZWJTb2NrZXREZWZs
YXRlRnJhbWVyKiBmcmFtZXIpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdl
YlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZShmcmFtZXIpKTsKLSAgICB9CisgICAgZXhwbGlj
aXQgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lKFdlYlNvY2tldERlZmxhdGVGcmFtZXIq
KTsKICAgICB2aXJ0dWFsIH5XZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWUoKSB7IH0KIAog
ICAgIHZpcnR1YWwgU3RyaW5nIGhhbmRzaGFrZVN0cmluZygpIG92ZXJyaWRlOwpAQCAtNTQsOCAr
NTEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZmFpbHVyZVJlYXNvbigpIG92ZXJy
aWRlIHsgcmV0dXJuIG1fZmFpbHVyZVJlYXNvbjsgfQogCiBwcml2YXRlOgotICAgIFdlYlNvY2tl
dEV4dGVuc2lvbkRlZmxhdGVGcmFtZShXZWJTb2NrZXREZWZsYXRlRnJhbWVyKik7Ci0KICAgICBX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyKiBtX2ZyYW1lcjsKICAgICBib29sIG1fcmVzcG9uc2VQcm9j
ZXNzZWQ7CiAgICAgU3RyaW5nIG1fZmFpbHVyZVJlYXNvbjsKQEAgLTE2MSw5ICsxNTYsOSBAQCBX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyKCkKIHsKIH0KIAot
UGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IFdlYlNvY2tldERlZmxhdGVG
cmFtZXI6OmNyZWF0ZUV4dGVuc2lvblByb2Nlc3NvcigpCitzdGQ6OnVuaXF1ZV9wdHI8V2ViU29j
a2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpjcmVhdGVFeHRl
bnNpb25Qcm9jZXNzb3IoKQogewotICAgIHJldHVybiBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRl
RnJhbWU6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJTb2Nr
ZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU+KHRoaXMpOwogfQogCiBib29sIFdlYlNvY2tldERlZmxh
dGVGcmFtZXI6OmNhbkRlZmxhdGUoKSBjb25zdApAQCAtMTc4LDMzICsxNzMsMzMgQEAgYm9vbCBX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpjYW5EZWZsYXRlKCkgY29uc3QKICNpZiBVU0UoWkxJQikK
IHZvaWQgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZW5hYmxlRGVmbGF0ZShpbnQgd2luZG93Qml0
cywgV2ViU29ja2V0RGVmbGF0ZXI6OkNvbnRleHRUYWtlT3Zlck1vZGUgbW9kZSkKIHsKLSAgICBt
X2RlZmxhdGVyID0gV2ViU29ja2V0RGVmbGF0ZXI6OmNyZWF0ZSh3aW5kb3dCaXRzLCBtb2RlKTsK
LSAgICBtX2luZmxhdGVyID0gV2ViU29ja2V0SW5mbGF0ZXI6OmNyZWF0ZSgpOworICAgIG1fZGVm
bGF0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlNvY2tldERlZmxhdGVyPih3aW5kb3dCaXRzLCBt
b2RlKTsKKyAgICBtX2luZmxhdGVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJTb2NrZXRJbmZsYXRl
cj4oKTsKICAgICBpZiAoIW1fZGVmbGF0ZXItPmluaXRpYWxpemUoKSB8fCAhbV9pbmZsYXRlci0+
aW5pdGlhbGl6ZSgpKSB7Ci0gICAgICAgIG1fZGVmbGF0ZXIuY2xlYXIoKTsKLSAgICAgICAgbV9p
bmZsYXRlci5jbGVhcigpOworICAgICAgICBtX2RlZmxhdGVyID0gbnVsbHB0cjsKKyAgICAgICAg
bV9pbmZsYXRlciA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9lbmFi
bGVkID0gdHJ1ZTsKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPERlZmxhdGVSZXN1bHRIb2xkZXI+
IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUoV2ViU29ja2V0RnJhbWUmIGZyYW1lKQor
c3RkOjp1bmlxdWVfcHRyPERlZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmRlZmxhdGUoV2ViU29ja2V0RnJhbWUmIGZyYW1lKQogewogI2lmIFVTRShaTElCKQotICAg
IE93blB0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiByZXN1bHQgPSBEZWZsYXRlUmVzdWx0SG9sZGVy
OjpjcmVhdGUodGhpcyk7CisgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPERlZmxh
dGVSZXN1bHRIb2xkZXI+KHRoaXMpOwogICAgIGlmICghZW5hYmxlZCgpIHx8ICFXZWJTb2NrZXRG
cmFtZTo6aXNOb25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkgfHwgIWZyYW1lLnBheWxvYWRM
ZW5ndGgpCi0gICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIGlmICghbV9kZWZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJh
bWUucGF5bG9hZExlbmd0aCkgfHwgIW1fZGVmbGF0ZXItPmZpbmlzaCgpKSB7CiAgICAgICAgIHJl
c3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIik7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBmcmFt
ZS5jb21wcmVzcyA9IHRydWU7CiAgICAgZnJhbWUucGF5bG9hZCA9IG1fZGVmbGF0ZXItPmRhdGEo
KTsKICAgICBmcmFtZS5wYXlsb2FkTGVuZ3RoID0gbV9kZWZsYXRlci0+c2l6ZSgpOwotICAgIHJl
dHVybiByZXN1bHQucmVsZWFzZSgpOworICAgIHJldHVybiByZXN1bHQ7CiAjZWxzZQotICAgIHJl
dHVybiBEZWZsYXRlUmVzdWx0SG9sZGVyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8RGVmbGF0ZVJlc3VsdEhvbGRlcj4odGhpcyk7CiAjZW5kaWYKIH0KIApAQCAt
MjE2LDMwICsyMTEsMzAgQEAgdm9pZCBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpyZXNldERlZmxh
dGVDb250ZXh0KCkKICNlbmRpZgogfQogCi1QYXNzT3duUHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+
IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmluZmxhdGUoV2ViU29ja2V0RnJhbWUmIGZyYW1lKQor
c3RkOjp1bmlxdWVfcHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmluZmxhdGUoV2ViU29ja2V0RnJhbWUmIGZyYW1lKQogewotICAgIE93blB0cjxJbmZsYXRl
UmVzdWx0SG9sZGVyPiByZXN1bHQgPSBJbmZsYXRlUmVzdWx0SG9sZGVyOjpjcmVhdGUodGhpcyk7
CisgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEluZmxhdGVSZXN1bHRIb2xkZXI+
KHRoaXMpOwogICAgIGlmICghZW5hYmxlZCgpICYmIGZyYW1lLmNvbXByZXNzKSB7CiAgICAgICAg
IHJlc3VsdC0+ZmFpbCgiQ29tcHJlc3NlZCBiaXQgbXVzdCBiZSAwIGlmIG5vIG5lZ290aWF0ZWQg
ZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24iKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
KCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogI2lmIFVTRShaTElCKQogICAgIGlm
ICghZnJhbWUuY29tcHJlc3MpCi0gICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIGlmICghV2ViU29ja2V0RnJhbWU6OmlzTm9uQ29udHJv
bE9wQ29kZShmcmFtZS5vcENvZGUpKSB7CiAgICAgICAgIHJlc3VsdC0+ZmFpbCgiUmVjZWl2ZWQg
dW5leHBlY3RlZCBjb21wcmVzc2VkIGZyYW1lIik7Ci0gICAgICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBpZiAoIW1faW5mbGF0
ZXItPmFkZEJ5dGVzKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8ICFtX2lu
ZmxhdGVyLT5maW5pc2goKSkgewogICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBkZWNv
bXByZXNzIGZyYW1lIik7Ci0gICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBmcmFtZS5jb21wcmVzcyA9IGZhbHNlOwogICAg
IGZyYW1lLnBheWxvYWQgPSBtX2luZmxhdGVyLT5kYXRhKCk7CiAgICAgZnJhbWUucGF5bG9hZExl
bmd0aCA9IG1faW5mbGF0ZXItPnNpemUoKTsKLSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsK
KyAgICByZXR1cm4gcmVzdWx0OwogI2Vsc2UKLSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsK
KyAgICByZXR1cm4gcmVzdWx0OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oCmluZGV4
IGYzMjMyYWY3MGQwMGVlNDlkNGZmMjFmODUzMDNhOTgxMjdkOGJlYjAuLmM3ZjY1N2RlMjNkMzA2
ODYyNDVkYTE0MTZhNWEzNzI3NDY3N2NkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuaApAQCAtMzgs
OCArMzgsNiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiV2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29y
LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0RnJhbWUuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00OCwxMSArNDYsNyBAQCBjbGFzcyBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOwogY2xhc3MgRGVm
bGF0ZVJlc3VsdEhvbGRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RGVmbGF0ZVJlc3VsdEhvbGRlcj4gY3JlYXRlKFdlYlNv
Y2tldERlZmxhdGVGcmFtZXIqIGZyYW1lcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRGVmbGF0ZVJlc3VsdEhvbGRlcihmcmFtZXIpKTsKLSAgICB9Ci0KKyAgICBleHBsaWNp
dCBEZWZsYXRlUmVzdWx0SG9sZGVyKFdlYlNvY2tldERlZmxhdGVGcmFtZXIqKTsKICAgICB+RGVm
bGF0ZVJlc3VsdEhvbGRlcigpOwogCiAgICAgYm9vbCBzdWNjZWVkZWQoKSBjb25zdCB7IHJldHVy
biBtX3N1Y2NlZWRlZDsgfQpAQCAtNjEsOCArNTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmYWls
KGNvbnN0IFN0cmluZyYgZmFpbHVyZVJlYXNvbik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
RGVmbGF0ZVJlc3VsdEhvbGRlcihXZWJTb2NrZXREZWZsYXRlRnJhbWVyKik7Ci0KICAgICBXZWJT
b2NrZXREZWZsYXRlRnJhbWVyKiBtX2ZyYW1lcjsKICAgICBib29sIG1fc3VjY2VlZGVkOwogICAg
IFN0cmluZyBtX2ZhaWx1cmVSZWFzb247CkBAIC03MSwxMSArNjMsNyBAQCBwcml2YXRlOgogY2xh
c3MgSW5mbGF0ZVJlc3VsdEhvbGRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gY3JlYXRl
KFdlYlNvY2tldERlZmxhdGVGcmFtZXIqIGZyYW1lcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgSW5mbGF0ZVJlc3VsdEhvbGRlcihmcmFtZXIpKTsKLSAgICB9Ci0KKyAgICBl
eHBsaWNpdCBJbmZsYXRlUmVzdWx0SG9sZGVyKFdlYlNvY2tldERlZmxhdGVGcmFtZXIqKTsKICAg
ICB+SW5mbGF0ZVJlc3VsdEhvbGRlcigpOwogCiAgICAgYm9vbCBzdWNjZWVkZWQoKSBjb25zdCB7
IHJldHVybiBtX3N1Y2NlZWRlZDsgfQpAQCAtODQsOCArNzIsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmYWlsKGNvbnN0IFN0cmluZyYgZmFpbHVyZVJlYXNvbik7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgSW5mbGF0ZVJlc3VsdEhvbGRlcihXZWJTb2NrZXREZWZsYXRlRnJhbWVyKik7Ci0KICAg
ICBXZWJTb2NrZXREZWZsYXRlRnJhbWVyKiBtX2ZyYW1lcjsKICAgICBib29sIG1fc3VjY2VlZGVk
OwogICAgIFN0cmluZyBtX2ZhaWx1cmVSZWFzb247CkBAIC05NSwxNCArODEsMTQgQEAgY2xhc3Mg
V2ViU29ja2V0RGVmbGF0ZUZyYW1lciB7CiBwdWJsaWM6CiAgICAgV2ViU29ja2V0RGVmbGF0ZUZy
YW1lcigpOwogCi0gICAgUGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IGNy
ZWF0ZUV4dGVuc2lvblByb2Nlc3NvcigpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRF
eHRlbnNpb25Qcm9jZXNzb3I+IGNyZWF0ZUV4dGVuc2lvblByb2Nlc3NvcigpOwogCiAgICAgYm9v
bCBjYW5EZWZsYXRlKCkgY29uc3Q7CiAgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9lbmFibGVkOyB9CiAKLSAgICBQYXNzT3duUHRyPERlZmxhdGVSZXN1bHRIb2xkZXI+IGRlZmxh
dGUoV2ViU29ja2V0RnJhbWUmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVmbGF0ZVJlc3VsdEhv
bGRlcj4gZGVmbGF0ZShXZWJTb2NrZXRGcmFtZSYpOwogICAgIHZvaWQgcmVzZXREZWZsYXRlQ29u
dGV4dCgpOwotICAgIFBhc3NPd25QdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gaW5mbGF0ZShXZWJT
b2NrZXRGcmFtZSYpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbmZsYXRlUmVzdWx0SG9sZGVyPiBp
bmZsYXRlKFdlYlNvY2tldEZyYW1lJik7CiAgICAgdm9pZCByZXNldEluZmxhdGVDb250ZXh0KCk7
CiAKICAgICB2b2lkIGRpZEZhaWwoKTsKQEAgLTExNCw4ICsxMDAsOCBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGJvb2wgbV9lbmFibGVkOwogI2lmIFVTRShaTElCKQotICAgIE93blB0cjxXZWJT
b2NrZXREZWZsYXRlcj4gbV9kZWZsYXRlcjsKLSAgICBPd25QdHI8V2ViU29ja2V0SW5mbGF0ZXI+
IG1faW5mbGF0ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldERlZmxhdGVyPiBtX2Rl
ZmxhdGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRJbmZsYXRlcj4gbV9pbmZsYXRl
cjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5jcHAKaW5kZXggYWVmNGIxZTlkMzMyYjAwN2NjNTkx
YTE3NWYxMTNiOTBkODM4MWFhNy4uNDk3YjI5M2E2NzMwMjM2MTliYTk3NjYwMDQxZTJjMTgyN2Y5
ZmYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldERlZmxhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0RGVmbGF0ZXIuY3BwCkBAIC00NywxOCArNDcsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogc3RhdGljIGNvbnN0IGludCBkZWZhdWx0TWVtTGV2ZWwgPSAxOwogc3RhdGljIGNvbnN0
IHNpemVfdCBidWZmZXJJbmNyZW1lbnRVbml0ID0gNDA5NjsKIAotUGFzc093blB0cjxXZWJTb2Nr
ZXREZWZsYXRlcj4gV2ViU29ja2V0RGVmbGF0ZXI6OmNyZWF0ZShpbnQgd2luZG93Qml0cywgQ29u
dGV4dFRha2VPdmVyTW9kZSBjb250ZXh0VGFrZU92ZXJNb2RlKQotewotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgV2ViU29ja2V0RGVmbGF0ZXIod2luZG93Qml0cywgY29udGV4dFRha2VPdmVyTW9k
ZSkpOwotfQotCiBXZWJTb2NrZXREZWZsYXRlcjo6V2ViU29ja2V0RGVmbGF0ZXIoaW50IHdpbmRv
d0JpdHMsIENvbnRleHRUYWtlT3Zlck1vZGUgY29udGV4dFRha2VPdmVyTW9kZSkKICAgICA6IG1f
d2luZG93Qml0cyh3aW5kb3dCaXRzKQogICAgICwgbV9jb250ZXh0VGFrZU92ZXJNb2RlKGNvbnRl
eHRUYWtlT3Zlck1vZGUpCiB7CiAgICAgQVNTRVJUKG1fd2luZG93Qml0cyA+PSA4KTsKICAgICBB
U1NFUlQobV93aW5kb3dCaXRzIDw9IDE1KTsKLSAgICBtX3N0cmVhbSA9IGFkb3B0UHRyKG5ldyB6
X3N0cmVhbSk7CisgICAgbV9zdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPHpfc3RyZWFtPigpOwog
ICAgIG1lbXNldChtX3N0cmVhbS5nZXQoKSwgMCwgc2l6ZW9mKHpfc3RyZWFtKSk7CiB9CiAKQEAg
LTEyNywxNSArMTIyLDEwIEBAIHZvaWQgV2ViU29ja2V0RGVmbGF0ZXI6OnJlc2V0KCkKICAgICAg
ICAgZGVmbGF0ZVJlc2V0KG1fc3RyZWFtLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxXZWJTb2Nr
ZXRJbmZsYXRlcj4gV2ViU29ja2V0SW5mbGF0ZXI6OmNyZWF0ZShpbnQgd2luZG93Qml0cykKLXsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlNvY2tldEluZmxhdGVyKHdpbmRvd0JpdHMpKTsK
LX0KLQogV2ViU29ja2V0SW5mbGF0ZXI6OldlYlNvY2tldEluZmxhdGVyKGludCB3aW5kb3dCaXRz
KQogICAgIDogbV93aW5kb3dCaXRzKHdpbmRvd0JpdHMpCiB7Ci0gICAgbV9zdHJlYW0gPSBhZG9w
dFB0cihuZXcgel9zdHJlYW0pOworICAgIG1fc3RyZWFtID0gc3RkOjptYWtlX3VuaXF1ZTx6X3N0
cmVhbT4oKTsKICAgICBtZW1zZXQobV9zdHJlYW0uZ2V0KCksIDAsIHNpemVvZih6X3N0cmVhbSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RGVmbGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXREZWZsYXRlci5oCmluZGV4IGY3M2ViMjBkMzk0MDNjZTRiYTVhMzFlOTNkMzZiNmUzZDg4
NzBkYjQuLmMzYzM2MzUzMDAwM2U1YjBhMWUyODBmMjIwYjk5ZDhiZTQ2NzNhMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRl
ci5oCkBAIC0zNCw4ICszNCw2IEBACiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQogCiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBzdHJ1Y3Qgel9z
dHJlYW1fczsKQEAgLTUwLDggKzQ4LDggQEAgcHVibGljOgogICAgICAgICBEb05vdFRha2VPdmVy
Q29udGV4dCwKICAgICAgICAgVGFrZU92ZXJDb250ZXh0CiAgICAgfTsKLSAgICBzdGF0aWMgUGFz
c093blB0cjxXZWJTb2NrZXREZWZsYXRlcj4gY3JlYXRlKGludCB3aW5kb3dCaXRzLCBDb250ZXh0
VGFrZU92ZXJNb2RlID0gVGFrZU92ZXJDb250ZXh0KTsKIAorICAgIGV4cGxpY2l0IFdlYlNvY2tl
dERlZmxhdGVyKGludCB3aW5kb3dCaXRzLCBDb250ZXh0VGFrZU92ZXJNb2RlID0gVGFrZU92ZXJD
b250ZXh0KTsKICAgICB+V2ViU29ja2V0RGVmbGF0ZXIoKTsKIAogICAgIGJvb2wgaW5pdGlhbGl6
ZSgpOwpAQCAtNjIsMTkgKzYwLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0KCk7CiAKIHBy
aXZhdGU6Ci0gICAgV2ViU29ja2V0RGVmbGF0ZXIoaW50IHdpbmRvd0JpdHMsIENvbnRleHRUYWtl
T3Zlck1vZGUpOwotCiAgICAgaW50IG1fd2luZG93Qml0czsKICAgICBDb250ZXh0VGFrZU92ZXJN
b2RlIG1fY29udGV4dFRha2VPdmVyTW9kZTsKICAgICBWZWN0b3I8Y2hhcj4gbV9idWZmZXI7Ci0g
ICAgT3duUHRyPHpfc3RyZWFtPiBtX3N0cmVhbTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8el9zdHJl
YW0+IG1fc3RyZWFtOwogfTsKIAogY2xhc3MgV2ViU29ja2V0SW5mbGF0ZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYlNv
Y2tldEluZmxhdGVyPiBjcmVhdGUoaW50IHdpbmRvd0JpdHMgPSAxNSk7Ci0KKyAgICBleHBsaWNp
dCBXZWJTb2NrZXRJbmZsYXRlcihpbnQgd2luZG93Qml0cyA9IDE1KTsKICAgICB+V2ViU29ja2V0
SW5mbGF0ZXIoKTsKIAogICAgIGJvb2wgaW5pdGlhbGl6ZSgpOwpAQCAtODUsMTEgKzgwLDkgQEAg
cHVibGljOgogICAgIHZvaWQgcmVzZXQoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJT
b2NrZXRJbmZsYXRlcihpbnQgd2luZG93Qml0cyk7Ci0KICAgICBpbnQgbV93aW5kb3dCaXRzOwog
ICAgIFZlY3RvcjxjaGFyPiBtX2J1ZmZlcjsKLSAgICBPd25QdHI8el9zdHJlYW0+IG1fc3RyZWFt
OworICAgIHN0ZDo6dW5pcXVlX3B0cjx6X3N0cmVhbT4gbV9zdHJlYW07CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5z
aW9uRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKaW5kZXggOGRhYTY5Y2ZjZDkwY2RhNTRhYjUz
NmNkOTQzOTBjZGMwZmZjNDk5My4uMTllMjVhMWE1YTA1MDNjMGEzZmQ3ZGU2YjQ2M2NhNDA1YjM0
NmE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcApAQCAtNDgsNyArNDgs
NyBAQCB2b2lkIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnJlc2V0KCkKICAgICBtX3By
b2Nlc3NvcnMuY2xlYXIoKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVy
OjphZGRQcm9jZXNzb3IoUGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IHBy
b2Nlc3NvcikKK3ZvaWQgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6YWRkUHJvY2Vzc29y
KHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IHByb2Nlc3NvcikK
IHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcHJvY2Vzc29ycy5zaXplKCk7ICsraSkg
ewogICAgICAgICBpZiAobV9wcm9jZXNzb3JzW2ldLT5leHRlbnNpb25Ub2tlbigpID09IHByb2Nl
c3Nvci0+ZXh0ZW5zaW9uVG9rZW4oKSkKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBXZWJTb2NrZXRF
eHRlbnNpb25EaXNwYXRjaGVyOjphZGRQcm9jZXNzb3IoUGFzc093blB0cjxXZWJTb2NrZXRFeHRl
bnNpb25Qcm8KICAgICBBU1NFUlQocHJvY2Vzc29yLT5oYW5kc2hha2VTdHJpbmcoKS5sZW5ndGgo
KSk7CiAgICAgQVNTRVJUKCFwcm9jZXNzb3ItPmhhbmRzaGFrZVN0cmluZygpLmNvbnRhaW5zKCdc
bicpKTsKICAgICBBU1NFUlQoIXByb2Nlc3Nvci0+aGFuZHNoYWtlU3RyaW5nKCkuY29udGFpbnMo
c3RhdGljX2Nhc3Q8VUNoYXI+KCdcMCcpKSk7Ci0gICAgbV9wcm9jZXNzb3JzLmFwcGVuZChwcm9j
ZXNzb3IpOworICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQoV1RGOjptb3ZlKHByb2Nlc3NvcikpOwog
fQogCiBjb25zdCBTdHJpbmcgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6Y3JlYXRlSGVh
ZGVyVmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmgKaW5kZXggMjQz
MDAxN2Q1ZDM1MTkwMDM5NjdhNjJlYjczMTQ2NTVmNTY2ZmQwZi4uMWJiOTcyN2NmOTEwN2Q3NmRm
YTY2ZmNkMzMyYzNiYjU1OWM1NTkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5o
CkBAIC0zNCw4ICszNCw2IEBACiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQogCiAjaW5jbHVkZSAi
V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KQEAgLTQ3LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIFdlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIoKSB7IH0KIAogICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIGFkZFByb2Nl
c3NvcihQYXNzT3duUHRyPFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4pOworICAgIHZvaWQg
YWRkUHJvY2Vzc29yKHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+
KTsKICAgICBjb25zdCBTdHJpbmcgY3JlYXRlSGVhZGVyVmFsdWUoKSBjb25zdDsKIAogICAgIGJv
b2wgcHJvY2Vzc0hlYWRlclZhbHVlKGNvbnN0IFN0cmluZyYpOwpAQCAtNTgsNyArNTYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgYXBwZW5kQWNjZXB0ZWRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBl
eHRlbnNpb25Ub2tlbiwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dGVuc2lvblBhcmFtZXRl
cnMpOwogICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAKLSAgICBWZWN0b3I8
T3duUHRyPFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4+IG1fcHJvY2Vzc29yczsKKyAgICBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4+IG1fcHJv
Y2Vzc29yczsKICAgICBTdHJpbmdCdWlsZGVyIG1fYWNjZXB0ZWRFeHRlbnNpb25zQnVpbGRlcjsK
ICAgICBTdHJpbmcgbV9mYWlsdXJlUmVhc29uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKaW5kZXggYzcz
MDQ2MWRjZTkyMGEzYWE5MDM4ODg2ODAwNmNmMzRkNmI2MDZjOS4uMTEyNjVlMWYyZjVkMzE1YTE1
MTYyNTQ4OTE4YmFmYWM5NmMzMDZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTM3Niw5ICszNzYs
OSBAQCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlckhh
bmRzaGFrZVJlc3BvbnNlKCkgY29uc3QKICAgICByZXR1cm4gbV9zZXJ2ZXJIYW5kc2hha2VSZXNw
b25zZTsKIH0KIAotdm9pZCBXZWJTb2NrZXRIYW5kc2hha2U6OmFkZEV4dGVuc2lvblByb2Nlc3Nv
cihQYXNzT3duUHRyPFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4gcHJvY2Vzc29yKQordm9p
ZCBXZWJTb2NrZXRIYW5kc2hha2U6OmFkZEV4dGVuc2lvblByb2Nlc3NvcihzdGQ6OnVuaXF1ZV9w
dHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBwcm9jZXNzb3IpCiB7Ci0gICAgbV9leHRl
bnNpb25EaXNwYXRjaGVyLmFkZFByb2Nlc3Nvcihwcm9jZXNzb3IpOworICAgIG1fZXh0ZW5zaW9u
RGlzcGF0Y2hlci5hZGRQcm9jZXNzb3IoV1RGOjptb3ZlKHByb2Nlc3NvcikpOwogfQogCiBVUkwg
V2ViU29ja2V0SGFuZHNoYWtlOjpodHRwVVJMRm9yQXV0aGVudGljYXRpb25BbmRDb29raWVzKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuaAppbmRleCBjY2FiMDQ1MDE0MTM0NzljZDZjNmNhYTQwN2FkYjZmYmFj
ZjNkNmY0Li4wZDU5MDBiODhhNzk4NzcyZWIxYTEyMDkyOTczZmVkYmFkODQ1NzVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRz
aGFrZS5oCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgog
I2luY2x1ZGUgIldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJT
b2NrZXRFeHRlbnNpb25Qcm9jZXNzb3IuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC04Niw3ICs4NSw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHNl
cnZlckhhbmRzaGFrZVJlc3BvbnNlKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZEV4dGVuc2lvblBy
b2Nlc3NvcihQYXNzT3duUHRyPFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4pOworICAgIHZv
aWQgYWRkRXh0ZW5zaW9uUHJvY2Vzc29yKHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRFeHRlbnNp
b25Qcm9jZXNzb3I+KTsKIAogICAgIHN0YXRpYyBTdHJpbmcgZ2V0RXhwZWN0ZWRXZWJTb2NrZXRB
Y2NlcHQoY29uc3QgU3RyaW5nJiBzZWNXZWJTb2NrZXRLZXkpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>