<?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>172417</bug_id>
          
          <creation_ts>2017-05-20 11:23:32 -0700</creation_ts>
          <short_desc>[JSC] Drop MapBase</short_desc>
          <delta_ts>2017-05-20 15:23:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1311023</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-20 11:23:32 -0700</bug_when>
    <thetext>[JSC] Drop MapBase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311024</commentid>
    <comment_count>1</comment_count>
      <attachid>310776</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-20 11:25:13 -0700</bug_when>
    <thetext>Created attachment 310776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311030</commentid>
    <comment_count>2</comment_count>
      <attachid>310776</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-20 11:54:28 -0700</bug_when>
    <thetext>Comment on attachment 310776
Patch

Very nice. Any idea why the indirection was there in the first place? Was this from a time when the HashMap wasn&apos;t a JSCell?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311046</commentid>
    <comment_count>3</comment_count>
      <attachid>310776</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-20 12:38:14 -0700</bug_when>
    <thetext>Comment on attachment 310776
Patch

Discussed with Saam at IRC (private message). We guess that this is accidentally introduced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311055</commentid>
    <comment_count>4</comment_count>
      <attachid>310776</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-20 13:07:26 -0700</bug_when>
    <thetext>Comment on attachment 310776
Patch

Clearing flags on attachment: 310776

Committed r217192: &lt;http://trac.webkit.org/changeset/217192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311056</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-20 13:07:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311065</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-05-20 15:23:08 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 310776 [details]
&gt; Patch
&gt; 
&gt; Very nice. Any idea why the indirection was there in the first place? Was
&gt; this from a time when the HashMap wasn&apos;t a JSCell?

There isn’t a goood reason. When I rewrote our map/set implementation last year I just left this in.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310776</attachid>
            <date>2017-05-20 11:25:13 -0700</date>
            <delta_ts>2017-05-20 13:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172417-20170521032512.patch</filename>
            <type>text/plain</type>
            <size>28916</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YWNiODhlOWQxMTE3ZmU3NzlkN2NkYmI3MDlmZmZjOTY3Njc0Yjg1Li45NTI4ZTI4M2YxODY1MWNk
ZmM0NTdlOWZjOGE3OGMxY2U5MGFiMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNy0wNS0yMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBEcm9wIE1hcEJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjQxNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcEJhc2UgaXMgYSBwdXJlbHkgYWRkaXRpb25h
bCBpbmRpcmVjdGlvbi4gSlNNYXAgYW5kIEpTU2V0IGNhbiBkaXJlY3RseSBpbmhlcml0IEhhc2hN
YXBJbXBsLgorICAgICAgICBUaHVzIE1hcEJhc2UgaXMgdW5uZWNlc3NhcnkuIFRoaXMgcGF0Y2gg
ZHJvcHMgaXQuCisgICAgICAgIEl0IGlzIGdvb2QgYmVjYXVzZSB3ZSBjYW4gZWxpbWluYXRlIG9u
ZSBpbmRpcmVjdGlvbiB3aGVuIGFjY2Vzc2luZyB0byBtYXAgaW1wbGVtZW50YXRpb24uCisgICAg
ICAgIE1vcmVvdmVyLCB3ZSBjYW4gZHJvcCBvbmUgdW5uZWNlc3NhcnkgYWxsb2NhdGlvbiBwZXIg
TWFwIGFuZCBTZXQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldE1hcEJ1Y2tldCk6CisgICAgICAgICogcnVudGltZS9I
YXNoTWFwSW1wbC5jcHA6CisgICAgICAgIChKU0M6Okhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ+
Ojplc3RpbWF0ZWRTaXplKToKKyAgICAgICAgKEpTQzo6Z2V0SGFzaE1hcEltcGxLZXlDbGFzc0lu
Zm8pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZXRIYXNoTWFwSW1wbEtleVZhbHVlQ2xhc3NJ
bmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0hhc2hNYXBJbXBsLmg6CisgICAgICAg
IChKU0M6Okhhc2hNYXBJbXBsOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6Okhhc2hN
YXBJbXBsOjpnZXQpOgorICAgICAgICAoSlNDOjpIYXNoTWFwSW1wbDo6aW5mbyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Okhhc2hNYXBJbXBsOjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpIYXNoTWFwSW1wbDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0pTTWFwLmg6CisgICAgICAgIChKU0M6OkpTTWFwOjpzZXQpOgorICAgICAgICAoSlND
OjpKU01hcDo6Z2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTTWFwSXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpKU01hcEl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgICogcnVudGltZS9KU1NldC5oOgorICAgICAgICAoSlNDOjpKU1NldDo6YWRkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTU2V0SXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpK
U1NldEl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9NYXBCYXNl
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL01hcEJhc2UuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Om1hcFByb3Rv
RnVuY1NpemUpOgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RTZXQpOgorICAgICAgICAqIHJ1bnRpbWUvU2V0UHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jU2l6ZSk6CisgICAgICAgICogcnVudGltZS9W
TS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisKIDIwMTctMDUtMTkgIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gRW5hYmxlIHRlc3Rh
cGkgb24gTWFjIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYmZlMGUxNWU1NjE3NTVmNGIyYzVlYjFlNDg4Mzc3N2UyYjc1YjBmOS4uNjI2ZDY4YjNiZmRl
OGQ1ODkzOWM5ZmQwZjdkZDg3ZmVhMGE0NTY4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtODQwLDcgKzg0MCw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAg
ICAgcnVudGltZS9MYXp5Q2xhc3NTdHJ1Y3R1cmUuY3BwCiAgICAgcnVudGltZS9MaXRlcmFsUGFy
c2VyLmNwcAogICAgIHJ1bnRpbWUvTG9va3VwLmNwcAotICAgIHJ1bnRpbWUvTWFwQmFzZS5jcHAK
ICAgICBydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvTWFwSXRlcmF0b3JQ
cm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGNlNmRkZWU2YjA2MDA4MzI3OGNjMGMzN2NhY2QyZTI0NTZiZjA4
YzkuLmMyYWZhNTI5NzA3M2UyMzVjNDM4NmI1ZjYzNzVhYTlhYTc4NGJiNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTIzLDggKzE1MjMsNiBAQAogCQk3OTIzM0MyQjFEMzQ3
MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3OTIzM0MyOTFEMzQ3MTU3MDBDNUE4MzQgLyogSklUTWF0aElDLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzkyQ0Iz
NDkxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3JpZ2luTWFwLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5MkNCMzQ3MUM0RUVENUMwMEQxM0FG
MyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi87IH07CiAJCTc5MkNCMzRBMUM0RUVENUMwMEQx
M0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzkyQ0IzNDgxQzRFRUQ1QzAwRDEzQUYzIC8qIFBDVG9Db2RlT3Jp
Z2luTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJNzk1QjE5OTcxRDc4QkUzNTAwMjYyRkEwIC8qIE1hcEJhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk1QjE5OTUxRDc4QkUzNTAwMjYyRkEw
IC8qIE1hcEJhc2UuY3BwICovOyB9OwotCQk3OTVCMTk5ODFENzhCRTM1MDAyNjJGQTAgLyogTWFw
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk1
QjE5OTYxRDc4QkUzNTAwMjYyRkEwIC8qIE1hcEJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OTVGMDk5RDFFMDM2MDA1MDBCQkUzN0YgLyog
QjNDb21waWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc5NUYwOTlDMUUwMzYwMDUwMEJCRTM3RiAvKiBCM0NvbXBpbGUuY3BwICovOyB9OwogCQk3
OTY0NjU2QTFCOTUyRkYwMDAzMDU5RUUgLyogR2V0UHV0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzk2NDY1NjgxQjk1MkZGMDAwMzA1OUVFIC8q
IEdldFB1dEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3OTY1QzIxNjFFNUQ3OTk2MDBCNzU5MUQgLyogQWlyQWxsb2NhdGVSZWdpc3RlcnNC
eUdyYXBoQ29sb3JpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzk2NUMyMTQxRTVENzk5NjAwQjc1OTFEIC8qIEFpckFsbG9jYXRlUmVnaXN0ZXJz
QnlHcmFwaENvbG9yaW5nLmNwcCAqLzsgfTsKQEAgLTQxMTgsOCArNDExNiw2IEBACiAJCTc5MjMz
QzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSklUTWF0aElDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5
MkNCMzQ3MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQQ1RvQ29kZU9yaWdpbk1hcC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5MkNCMzQ4MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1Rv
Q29kZU9yaWdpbk1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQQ1RvQ29k
ZU9yaWdpbk1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3OTVCMTk5NTFENzhC
RTM1MDAyNjJGQTAgLyogTWFwQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNYXBCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzk1QjE5
OTYxRDc4QkUzNTAwMjYyRkEwIC8qIE1hcEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWFwQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTVGMDk5
QzFFMDM2MDA1MDBCQkUzN0YgLyogQjNDb21waWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEIzQ29tcGlsZS5jcHA7IHBhdGggPSBiMy9CM0NvbXBpbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OTY0NjU2ODFCOTUyRkYwMDAzMDU5RUUgLyog
R2V0UHV0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZXRQdXRJbmZv
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5NjVDMjE0MUU1RDc5OTYwMEI3NTkx
RCAvKiBBaXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhDb2xvcmluZy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJBbGxvY2F0ZVJlZ2lzdGVyc0J5R3JhcGhDb2xv
cmluZy5jcHA7IHBhdGggPSBiMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNCeUdyYXBoQ29sb3Jp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjkzMyw4ICs2OTI5LDYgQEAK
IAkJCQlGNjkyQTg2ODAyNTU1OTdEMDFGRjYwRjcgLyogTG9va3VwLmNwcCAqLywKIAkJCQlGNjky
QTg2OTAyNTU1OTdEMDFGRjYwRjcgLyogTG9va3VwLmggKi8sCiAJCQkJMjg4MDZFMjExNTVFNDc4
QTkzRkE3QjAyIC8qIE1hY2hpbmVDb250ZXh0LmggKi8sCi0JCQkJNzk1QjE5OTUxRDc4QkUzNTAw
MjYyRkEwIC8qIE1hcEJhc2UuY3BwICovLAotCQkJCTc5NUIxOTk2MUQ3OEJFMzUwMDI2MkZBMCAv
KiBNYXBCYXNlLmggKi8sCiAJCQkJQTcwMDg3MzcxN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0
cnVjdG9yLmNwcCAqLywKIAkJCQlBNzAwODczODE3Q0JFODUzMDBDM0U2NDMgLyogTWFwQ29uc3Ry
dWN0b3IuaCAqLywKIAkJCQlBNzRERUY4RDE4MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JQ
cm90b3R5cGUuY3BwICovLApAQCAtOTI0OCw3ICs5MjQyLDYgQEAKIAkJCQk4NjAxNjFFNDBGM0E4
M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODYuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2
MDE2MUU1MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODYwMTYxRTYwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk3OTVCMTk5ODFENzhCRTM1MDAyNjJGQTAgLyog
TWFwQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8q
IE1hcENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzRERUY5NDE4MkQ5OTE0MDA1
MjJDMjIgLyogTWFwSXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4
NzNFMTdDQkU4RDMwMEMzRTY0MyAvKiBNYXBQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MTA4MTQsNyArMTA4MDcsNiBAQAogCQkJCTBGNkRCN0VDMUQ2MTdEMTEwMENEQkY4RSAvKiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU2OEM2MzgxQjkwREUw
QjAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJNzk1QjE5OTcxRDc4QkUzNTAwMjYyRkEwIC8qIE1hcEJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwMDg3MzkxN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENv
bnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NERFRjkzMTgyRDk5MTQwMDUyMkMy
MiAvKiBNYXBJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzAwODcz
RDE3Q0JFOEQzMDBDM0U2NDMgLyogTWFwUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5k
ZXggZDM4OTJkYjE0ZDBjOWI2YTBhNGNjMTMzNDk1Nzc0YzE3YjdhZDA1My4uMTk2OTdiZjVjYWYy
ZWZjOGM1MGU3Y2IyODk2YjA4YTc3N2NlZDg3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC01MTU0LDkgKzUxNTQsOCBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDIoKS51c2VLaW5kKCkgIT0gVW50eXBlZFVzZSkKICAgICAgICAgICAgIHNwZWN1bGF0
ZShub2RlLCBub2RlLT5jaGlsZDIoKSk7CiAKLSAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhtYXBHUFIsIG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBNYXBP
YmplY3RVc2UgPyBKU01hcDo6b2Zmc2V0T2ZIYXNoTWFwSW1wbCgpIDogSlNTZXQ6Om9mZnNldE9m
SGFzaE1hcEltcGwoKSksIGJ1ZmZlckdQUik7Ci0gICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhidWZmZXJHUFIsIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFz
aE1hcEJ1Y2tldERhdGFLZXk+Pjo6b2Zmc2V0T2ZDYXBhY2l0eSgpKSwgbWFza0dQUik7Ci0gICAg
ICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYnVmZmVyR1BSLCBIYXNo
TWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pj46Om9mZnNldE9mQnVm
ZmVyKCkpLCBidWZmZXJHUFIpOworICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MobWFwR1BSLCBIYXNoTWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXRE
YXRhS2V5Pj46Om9mZnNldE9mQ2FwYWNpdHkoKSksIG1hc2tHUFIpOworICAgICAgICBtX2ppdC5s
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1hcEdQUiwgSGFzaE1hcEltcGw8SGFzaE1h
cEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT4+OjpvZmZzZXRPZkJ1ZmZlcigpKSwgYnVmZmVy
R1BSKTsKICAgICAgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZEltbTMyKDEpLCBtYXNrR1BSKTsKICAg
ICAgICAgbV9qaXQubW92ZShoYXNoR1BSLCBpbmRleEdQUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggMDVj
NGQwN2MwMTI0NDlhMWE5YzA5YzZkMGEzMTYyZmIxZTJkZmNhMC4uNmNkMDMxMWM2MGQ5NjNjMGZi
MTU4ZThhNDYyYWQzZThiNDEwNmI2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTExMSw4ICsxMTEsNiBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oU3RydWN0dXJlX3N0cnVj
dHVyZUlELCBTdHJ1Y3R1cmU6OnN0cnVjdHVyZUlET2Zmc2V0KCkpIFwKICAgICBtYWNybyhTdHJ1
Y3R1cmVfaW5saW5lQ2FwYWNpdHksIFN0cnVjdHVyZTo6aW5saW5lQ2FwYWNpdHlPZmZzZXQoKSkg
XAogICAgIG1hY3JvKFN0cnVjdHVyZV9pbmRleGluZ1R5cGVJbmNsdWRpbmdIaXN0b3J5LCBTdHJ1
Y3R1cmU6OmluZGV4aW5nVHlwZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKSkgXAotICAgIG1hY3Jv
KEpTTWFwX2hhc2hNYXBJbXBsLCBKU01hcDo6b2Zmc2V0T2ZIYXNoTWFwSW1wbCgpKSBcCi0gICAg
bWFjcm8oSlNTZXRfaGFzaE1hcEltcGwsIEpTU2V0OjpvZmZzZXRPZkhhc2hNYXBJbXBsKCkpIFwK
ICAgICBtYWNybyhIYXNoTWFwSW1wbF9jYXBhY2l0eSwgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tl
dDxIYXNoTWFwQnVja2V0RGF0YUtleT4+OjpvZmZzZXRPZkNhcGFjaXR5KCkpIFwKICAgICBtYWNy
byhIYXNoTWFwSW1wbF9idWZmZXIsICBIYXNoTWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBC
dWNrZXREYXRhS2V5Pj46Om9mZnNldE9mQnVmZmVyKCkpIFwKICAgICBtYWNybyhIYXNoTWFwQnVj
a2V0X3ZhbHVlLCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+OjpvZmZz
ZXRPZlZhbHVlKCkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAppbmRleCA5Y2UyMTRiN2Y3Mjk2MDVjMzY1OGJlZjg4MTI3YTNlNTQ2ZmMwZDEzLi4x
NGVlZjdlZWUzNDc0NDhmMjI0NWQ2MGU5ZTI5NTk2ZWM5MDg5MGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC03ODU4LDkgKzc4NTgsOCBA
QCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAgICAgICAgIExWYWx1ZSBoYXNoID0gbG93SW50MzIo
bV9ub2RlLT5jaGlsZDMoKSk7CiAKLSAgICAgICAgTFZhbHVlIGhhc2hNYXBJbXBsID0gbV9vdXQu
bG9hZFB0cihtYXAsIG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IE1hcE9iamVjdFVzZSA/
IG1faGVhcHMuSlNNYXBfaGFzaE1hcEltcGwgOiBtX2hlYXBzLkpTU2V0X2hhc2hNYXBJbXBsKTsK
LSAgICAgICAgTFZhbHVlIGJ1ZmZlciA9IG1fb3V0LmxvYWRQdHIoaGFzaE1hcEltcGwsIG1faGVh
cHMuSGFzaE1hcEltcGxfYnVmZmVyKTsKLSAgICAgICAgTFZhbHVlIG1hc2sgPSBtX291dC5zdWIo
bV9vdXQubG9hZDMyKGhhc2hNYXBJbXBsLCBtX2hlYXBzLkhhc2hNYXBJbXBsX2NhcGFjaXR5KSwg
bV9vdXQuaW50MzJPbmUpOworICAgICAgICBMVmFsdWUgYnVmZmVyID0gbV9vdXQubG9hZFB0ciht
YXAsIG1faGVhcHMuSGFzaE1hcEltcGxfYnVmZmVyKTsKKyAgICAgICAgTFZhbHVlIG1hc2sgPSBt
X291dC5zdWIobV9vdXQubG9hZDMyKG1hcCwgbV9oZWFwcy5IYXNoTWFwSW1wbF9jYXBhY2l0eSks
IG1fb3V0LmludDMyT25lKTsKIAogICAgICAgICBWYWx1ZUZyb21CbG9jayBpbmRleFN0YXJ0ID0g
bV9vdXQuYW5jaG9yKGhhc2gpOwogICAgICAgICBtX291dC5qdW1wKGxvb3BTdGFydCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5jcHAKaW5kZXggMWQ0NzY4
Y2NjOTMwODEwOWM5NmYwOWFmYjVhMWVmMDBjNzk0ZmMxMy4uNWM3NTdlNTVhYTllNTM3Yzg2N2Rm
MDlkOWUyYmM5NTA2OTY0ZGMzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSGFzaE1hcEltcGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0hhc2hNYXBJbXBsLmNwcApAQCAtNTIsMTQgKzUyLDYgQEAgdm9pZCBIYXNoTWFwQnVja2V0PERh
dGE+Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAg
ICAgdmlzaXRvci5hcHBlbmRWYWx1ZXMoYml0d2lzZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3du
Pio+KCZ0aGlzT2JqZWN0LT5tX2RhdGEpLCBzaXplb2YoRGF0YSkgLyBzaXplb2YoV3JpdGVCYXJy
aWVyPFVua25vd24+KSk7CiB9CiAKLXRlbXBsYXRlPD4KLWNvbnN0IENsYXNzSW5mbyBIYXNoTWFw
SW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pj46OnNfaW5mbyA9Ci0gICAg
eyAiSGFzaE1hcEltcGwiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Pikg
fTsKLQotdGVtcGxhdGU8PgotY29uc3QgQ2xhc3NJbmZvIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNr
ZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXlWYWx1ZT4+OjpzX2luZm8gPQotICAgIHsgIkhhc2hNYXBJ
bXBsIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShIYXNo
TWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+PikgfTsKLQog
dGVtcGxhdGUgPHR5cGVuYW1lIEhhc2hNYXBCdWNrZXQ+CiB2b2lkIEhhc2hNYXBJbXBsPEhhc2hN
YXBCdWNrZXQ+Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CkBAIC03NCw2ICs2NiwxMiBAQCB2b2lkIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ+
Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0bwogICAgICAg
ICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkoYnVmZmVyKTsKIH0KIAordGVtcGxhdGUgPHR5cGVuYW1l
IEhhc2hNYXBCdWNrZXQ+CitzaXplX3QgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldD46OmVzdGlt
YXRlZFNpemUoSlNDZWxsKiBjZWxsKQoreworICAgIHJldHVybiBCYXNlOjplc3RpbWF0ZWRTaXpl
KGNlbGwpICsgc3RhdGljX2Nhc3Q8SGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldD4qPihjZWxsKS0+
YXBwcm94aW1hdGVTaXplKCk7Cit9CisKIGNvbnN0IENsYXNzSW5mbyogZ2V0SGFzaE1hcEJ1Y2tl
dEtleUNsYXNzSW5mbygpCiB7CiAgICAgcmV0dXJuICZIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNr
ZXREYXRhS2V5Pjo6c19pbmZvOwpAQCAtODIsMTMgKzgwLDggQEAgY29uc3QgQ2xhc3NJbmZvKiBn
ZXRIYXNoTWFwQnVja2V0S2V5VmFsdWVDbGFzc0luZm8oKQogewogICAgIHJldHVybiAmSGFzaE1h
cEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleVZhbHVlPjo6c19pbmZvOwogfQotY29uc3QgQ2xh
c3NJbmZvKiBnZXRIYXNoTWFwSW1wbEtleUNsYXNzSW5mbygpCi17Ci0gICAgcmV0dXJuICZIYXNo
TWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pj46OnNfaW5mbzsKLX0K
LWNvbnN0IENsYXNzSW5mbyogZ2V0SGFzaE1hcEltcGxLZXlWYWx1ZUNsYXNzSW5mbygpCi17Ci0g
ICAgcmV0dXJuICZIYXNoTWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5
VmFsdWU+Pjo6c19pbmZvOwotfQorCit0ZW1wbGF0ZSBjbGFzcyBIYXNoTWFwSW1wbDxIYXNoTWFw
QnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+PjsKK3RlbXBsYXRlIGNsYXNzIEhhc2hN
YXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+PjsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IYXNo
TWFwSW1wbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzaE1hcEltcGwuaApp
bmRleCAyNzA4MTM4YjkzOTU5MDQyNjNhOGFhNGQzNGQ3NWM5OWY5ZTRmMmYwLi40NmU2MTk4NmQy
NTJjMzhjMTA4YjA1NTdjMGYyNzM2YjZlMDVkNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9IYXNoTWFwSW1wbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0hhc2hNYXBJbXBsLmgKQEAgLTI2OSw5ICsyNjksOSBAQCBBTFdBWVNfSU5MSU5F
IHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGNvbmN1cnJlbnRKU01hcEhhc2goSlNWYWx1ZSBrZXkp
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBIYXNoTWFwQnVja2V0VHlwZT4KLWNsYXNzIEhhc2hN
YXBJbXBsIDogcHVibGljIEpTQ2VsbCB7Ci0gICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKLSAgICB0
eXBlZGVmIEhhc2hNYXBCdWZmZXI8SGFzaE1hcEJ1Y2tldFR5cGU+IEhhc2hNYXBCdWZmZXJUeXBl
OworY2xhc3MgSGFzaE1hcEltcGwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CisgICAgdXNp
bmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CisgICAgdXNpbmcgSGFzaE1hcEJ1ZmZlclR5cGUg
PSBIYXNoTWFwQnVmZmVyPEhhc2hNYXBCdWNrZXRUeXBlPjsKIAogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUID0gSGFzaE1hcEJ1Y2tldFR5cGU+CiAgICAgc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5h
YmxlX2lmPHN0ZDo6aXNfc2FtZTxULCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5
Pj46OnZhbHVlLCBTdHJ1Y3R1cmUqPjo6dHlwZSBzZWxlY3RTdHJ1Y3R1cmUoVk0mIHZtKQpAQCAt
Mjg2LDM1ICsyODYsMTIgQEAgY2xhc3MgSGFzaE1hcEltcGwgOiBwdWJsaWMgSlNDZWxsIHsKICAg
ICB9CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsgLy8gVGhp
cyBpcyBuZXZlciBhY2Nlc3NlZCBkaXJlY3RseSwgc2luY2UgdGhhdCB3b3VsZCBicmVhayBsaW5r
YWdlIG9uIHNvbWUgY29tcGlsZXJzLgotCi0gICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyogaW5m
bygpCi0gICAgewotICAgICAgICBzd2l0Y2ggKEhhc2hNYXBCdWNrZXRUeXBlOjpUeXBlKSB7Ci0g
ICAgICAgIGNhc2UgSGFzaFRhYmxlVHlwZTo6S2V5OgotICAgICAgICAgICAgcmV0dXJuIGdldEhh
c2hNYXBJbXBsS2V5Q2xhc3NJbmZvKCk7Ci0gICAgICAgIGNhc2UgSGFzaFRhYmxlVHlwZTo6S2V5
VmFsdWU6Ci0gICAgICAgICAgICByZXR1cm4gZ2V0SGFzaE1hcEltcGxLZXlWYWx1ZUNsYXNzSW5m
bygpOwotICAgICAgICB9Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgfQotCi0gICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhDZWxsVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQot
ICAgIHN0YXRpYyBIYXNoTWFwSW1wbCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShIYXNoTWFwQnVja2V0PEhhc2hNYXBC
dWNrZXREYXRhS2V5Pjo6b2Zmc2V0T2ZLZXkoKSA9PSBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNr
ZXREYXRhS2V5VmFsdWU+OjpvZmZzZXRPZktleSgpLCAiV2UgYXNzdW1lIHRoaXMgdG8gYmUgdHJ1
ZSBpbiB0aGUgREZHIGFuZCBGVEwgSklULiIpOwotCi0gICAgICAgIEhhc2hNYXBJbXBsKiBpbXBs
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SGFzaE1hcEltcGw+KHZtLmhlYXApKSBIYXNo
TWFwSW1wbCh2bSwgc2VsZWN0U3RydWN0dXJlKHZtKSk7Ci0gICAgICAgIGltcGwtPmZpbmlzaENy
ZWF0aW9uKGV4ZWMsIHZtKTsKLSAgICAgICAgcmV0dXJuIGltcGw7Ci0gICAgfQorICAgIHVzaW5n
IEJ1Y2tldFR5cGUgPSBIYXNoTWFwQnVja2V0VHlwZTsKIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAorICAgIHN0YXRpYyBzaXplX3QgZXN0
aW1hdGVkU2l6ZShKU0NlbGwqKTsKKwogICAgIEhhc2hNYXBJbXBsKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQogICAgICAgICAsIG1f
a2V5Q291bnQoMCkKQEAgLTMzMCw2ICszMDcsOCBAQCBjbGFzcyBIYXNoTWFwSW1wbCA6IHB1Ymxp
YyBKU0NlbGwgewogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFZN
JiB2bSkKICAgICB7CisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoSGFzaE1hcEJ1Y2tldDxI
YXNoTWFwQnVja2V0RGF0YUtleT46Om9mZnNldE9mS2V5KCkgPT0gSGFzaE1hcEJ1Y2tldDxIYXNo
TWFwQnVja2V0RGF0YUtleVZhbHVlPjo6b2Zmc2V0T2ZLZXkoKSwgIldlIGFzc3VtZSB0aGlzIHRv
IGJlIHRydWUgaW4gdGhlIERGRyBhbmQgRlRMIEpJVC4iKTsKKwogICAgICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKIApAQCAtMzgyLDcgKzM2MSw4IEBAIGNsYXNzIEhhc2hNYXBJbXBsIDogcHVibGljIEpT
Q2VsbCB7CiAgICAgICAgIHJldHVybiBmaW5kQnVja2V0QWxyZWFkeUhhc2hlZEFuZE5vcm1hbGl6
ZWQoZXhlYywga2V5LCBoYXNoKTsKICAgICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIEpTVmFsdWUg
Z2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXkpCisgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQgPSBIYXNoTWFwQnVja2V0VHlwZT4KKyAgICBBTFdBWVNfSU5MSU5FIHR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxULCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRh
S2V5VmFsdWU+Pjo6dmFsdWUsIEpTVmFsdWU+Ojp0eXBlIGdldChFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUga2V5KQogICAgIHsKICAgICAgICAgaWYgKEhhc2hNYXBCdWNrZXRUeXBlKiogYnVja2V0
ID0gZmluZEJ1Y2tldChleGVjLCBrZXkpKQogICAgICAgICAgICAgcmV0dXJuICgqYnVja2V0KS0+
dmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFw
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5oCmluZGV4IDU1MWEyZmJl
YmJlZjI5NzIxNDVjZGViZmJmODgxYzZjNWJjNmNiMmQuLjE3YzE2N2VmMWMyMmMxMDk1OTZiNTQ3
Y2MwNjY0ZjBkMzkxOWE1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNYXAuaApA
QCAtMjUsMTUgKzI1LDE1IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSGFzaE1hcElt
cGwuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgotI2luY2x1ZGUgIk1hcEJhc2UuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTTWFwSXRlcmF0b3I7CiAKLWNsYXNzIEpTTWFwIDogcHVi
bGljIE1hcEJhc2U8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleVZhbHVlPj4gewot
ICAgIHR5cGVkZWYgTWFwQmFzZTxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFs
dWU+PiBCYXNlOworY2xhc3MgSlNNYXAgOiBwdWJsaWMgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tl
dDxIYXNoTWFwQnVja2V0RGF0YUtleVZhbHVlPj4geworICAgIHVzaW5nIEJhc2UgPSBIYXNoTWFw
SW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+PjsKIHB1YmxpYzoK
ICAgICBmcmllbmQgY2xhc3MgSlNNYXBJdGVyYXRvcjsKIApAQCAtNTEsMTQgKzUxLDkgQEAgY2xh
c3MgSlNNYXAgOiBwdWJsaWMgTWFwQmFzZTxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRh
S2V5VmFsdWU+PiB7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBBTFdB
WVNfSU5MSU5FIEpTVmFsdWUgZ2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBrZXkpCi0gICAg
ewotICAgICAgICByZXR1cm4gbV9tYXAtPmdldChleGVjLCBrZXkpOwotICAgIH0KLQogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzZXQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSwgSlNWYWx1
ZSB2YWx1ZSkKICAgICB7Ci0gICAgICAgIG1fbWFwLT5hZGQoZXhlYywga2V5LCB2YWx1ZSk7Cisg
ICAgICAgIGFkZChleGVjLCBrZXksIHZhbHVlKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcEl0ZXJhdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwSXRlcmF0b3IuY3BwCmluZGV4IGIxOWNh
M2ZjMTNhZmQxMTk4NWJmYTNhYzE5NzMyNjgwOGQ5OWZmZmUuLjk5NTcxNzBhOGE3Mjg1OTVjNDZi
MWYzMGUzMzgyOGViMGJjYjVmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTWFwSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTWFwSXRlcmF0b3IuY3BwCkBAIC0zNyw3ICszNyw3IEBAIHZvaWQgSlNNYXBJdGVyYXRv
cjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU01hcCogaXRlcmF0ZWRPYmplY3QpCiB7CiAgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIG1fbWFwLnNldCh2bSwgdGhpcywgaXRlcmF0
ZWRPYmplY3QpOwotICAgIHNldEl0ZXJhdG9yKHZtLCBtX21hcC0+aW1wbCgpLT5oZWFkKCkpOwor
ICAgIHNldEl0ZXJhdG9yKHZtLCBtX21hcC0+aGVhZCgpKTsKIH0KIAogdm9pZCBKU01hcEl0ZXJh
dG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuaAppbmRleCBlMzU2YTdhZjc3MzRmNGIwNTA4
Mzg0MWUxNDYyNzIyYzcyMDBiOTg3Li5kNWQ1NTE2M2M2YTkzMGQzNjNjYzU4YmMwZTVlNWJkOWMw
MTk3MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmgKQEAgLTI1LDE1ICsy
NSwxNSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkhhc2hNYXBJbXBsLmgiCiAjaW5j
bHVkZSAiSlNPYmplY3QuaCIKLSNpbmNsdWRlICJNYXBCYXNlLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCiBjbGFzcyBKU1NldEl0ZXJhdG9yOwogCi1jbGFzcyBKU1NldCA6IHB1YmxpYyBNYXBCYXNl
PEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+PiB7Ci0gICAgdHlwZWRlZiBNYXBC
YXNlPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+PiBCYXNlOworY2xhc3MgSlNT
ZXQgOiBwdWJsaWMgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtl
eT4+IHsKKyAgICB1c2luZyBCYXNlID0gSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFw
QnVja2V0RGF0YUtleT4+OwogcHVibGljOgogCiAgICAgZnJpZW5kIGNsYXNzIEpTU2V0SXRlcmF0
b3I7CkBAIC01MiwxMSArNTIsNiBAQCBjbGFzcyBKU1NldCA6IHB1YmxpYyBNYXBCYXNlPEhhc2hN
YXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+PiB7CiAgICAgICAgIHJldHVybiBpbnN0YW5j
ZTsKICAgICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYWRkKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBrZXkpCi0gICAgewotICAgICAgICBtX21hcC0+YWRkKGV4ZWMsIGtleSk7Ci0gICAg
fQotCiBwcml2YXRlOgogICAgIEpTU2V0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTZXRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1NldEl0ZXJhdG9yLmNwcAppbmRleCBmZmQ0ZGIxZDc2YjNiYjNiZWEwNWU5ZDU5
YWJkZGU0ZGY3ZTUyYjQ2Li5mYTk0OTZhMTU5NzM0ZDYxNWIwM2FhMDI5YTlhYjkxYzJhNmEwZTY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldEl0ZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldEl0ZXJhdG9yLmNw
cApAQCAtMzcsNyArMzcsNyBAQCB2b2lkIEpTU2V0SXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNTZXQqIGl0ZXJhdGVkT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKICAgICBtX3NldC5zZXQodm0sIHRoaXMsIGl0ZXJhdGVkT2JqZWN0KTsKLSAgICBzZXRJ
dGVyYXRvcih2bSwgbV9zZXQtPmltcGwoKS0+aGVhZCgpKTsKKyAgICBzZXRJdGVyYXRvcih2bSwg
bV9zZXQtPmhlYWQoKSk7CiB9CiAKIHZvaWQgSlNTZXRJdGVyYXRvcjo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQmFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXBCYXNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjUyN2Y4
Y2YyYzJmODhlMjI4NDViZGMzN2M4Mjk2MzYxM2JkMGFkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXBCYXNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIk1hcEJhc2UuaCIKLQotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLQotbmFtZXNwYWNl
IEpTQyB7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBIYXNoTWFwQnVja2V0VHlwZT4KLXZvaWQgTWFw
QmFzZTxIYXNoTWFwQnVja2V0VHlwZT46OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBNYXBCYXNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8TWFwQmFzZSo+KGNlbGwpOwotICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwg
dmlzaXRvcik7Ci0gICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9tYXApOwotfQotCi10
ZW1wbGF0ZSA8dHlwZW5hbWUgSGFzaE1hcEJ1Y2tldFR5cGU+Ci1zaXplX3QgTWFwQmFzZTxIYXNo
TWFwQnVja2V0VHlwZT46OmVzdGltYXRlZFNpemUoSlNDZWxsKiBjZWxsKQotewotICAgIHJldHVy
biBCYXNlOjplc3RpbWF0ZWRTaXplKGNlbGwpICsgc3RhdGljX2Nhc3Q8TWFwQmFzZSo+KGNlbGwp
LT5tX21hcC0+YXBwcm94aW1hdGVTaXplKCk7Ci19Ci0KLXRlbXBsYXRlIGNsYXNzIE1hcEJhc2U8
SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleVZhbHVlPj47Ci10ZW1wbGF0ZSBjbGFz
cyBNYXBCYXNlPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+PjsKLQotfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXBCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBCYXNlLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkNWMxMmVhY2I4MGU0MGRkNjdiM2IwNGIwM2RmZmQz
ZmY2NTRmZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQmFzZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkhhc2hNYXBJbXBsLmgiCi0jaW5jbHVkZSAi
SlNPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBIYXNo
TWFwQnVja2V0VHlwZT4KLWNsYXNzIE1hcEJhc2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
Ci0gICAgdHlwZWRlZiBIYXNoTWFwSW1wbDxIYXNoTWFwQnVja2V0VHlwZT4gSGFzaE1hcEltcGxU
eXBlOwotICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotcHVibGljOgotCi0gICAg
dHlwZWRlZiBIYXNoTWFwQnVja2V0VHlwZSBCdWNrZXRUeXBlOwotCi0gICAgQUxXQVlTX0lOTElO
RSBzaXplX3Qgc2l6ZShFeGVjU3RhdGUqKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbWFwLT5z
aXplKCk7Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElORSBib29sIGhhcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUga2V5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbWFwLT5oYXMoZXhlYywg
a2V5KTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgY2xlYXIoRXhlY1N0YXRlKiBl
eGVjKQotICAgIHsKLSAgICAgICAgbV9tYXAtPmNsZWFyKGV4ZWMpOwotICAgIH0KLQotICAgIEFM
V0FZU19JTkxJTkUgYm9vbCByZW1vdmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGtleSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBtX21hcC0+cmVtb3ZlKGV4ZWMsIGtleSk7Ci0gICAgfQotCi0g
ICAgQUxXQVlTX0lOTElORSBIYXNoTWFwQnVja2V0VHlwZSoqIGZpbmRCdWNrZXQoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIGtleSwgdWludDMyX3QgaGFzaCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBtX21hcC0+ZmluZEJ1Y2tldChleGVjLCBrZXksIGhhc2gpOwotICAgIH0KLQotICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZIYXNoTWFwSW1wbCgpCi0gICAgewotICAgICAgICByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKE1hcEJhc2U8SGFzaE1hcEJ1Y2tldFR5cGU+LCBtX21hcCk7Ci0gICAg
fQotCi0gICAgQUxXQVlTX0lOTElORSBIYXNoTWFwSW1wbFR5cGUqIGltcGwoKSB7IHJldHVybiBt
X21hcC5nZXQoKTsgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IFZNJiB2bSkKLSAgICB7Ci0gICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgICAgICBIYXNoTWFw
SW1wbFR5cGUqIGltcGwgPSBIYXNoTWFwSW1wbFR5cGU6OmNyZWF0ZShleGVjLCB2bSk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAgIG1fbWFwLnNl
dCh2bSwgdGhpcywgaW1wbCk7Ci0gICAgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgTWFwQmFzZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkK
LSAgICB7Ci0gICAgfQotCi0gICAgc3RhdGljIHNpemVfdCBlc3RpbWF0ZWRTaXplKEpTQ2VsbCop
OwotICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsK
LQotICAgIFdyaXRlQmFycmllcjxIYXNoTWFwSW1wbFR5cGU+IG1fbWFwOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90
eXBlLmNwcAppbmRleCA3ZWM3ZThkYWU1NDRmYjFhYjhlOTZlMzMyODI1MTJjZTM3YTRhMWRkLi5m
NDk3MzAzNzllYmZjZjU3OWUwMjMzYTUwZDZkNDQ0Y2E4YjI5NmRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1NpemUoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCiAgICAgSlNNYXAqIG1hcCA9IGdldE1hcChjYWxsRnJhbWUsIGNhbGxGcmFt
ZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIobWFwLT5zaXplKGNhbGxGcmFtZSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKG1hcC0+c2l6ZSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWFwUHJvdG9GdW5jVmFsdWVzKENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCmluZGV4IDUzODRhYjY5ZmNm
OGIzYWJiOTJjOGM4MzUzOWI5NTdiOGJmYTQ2ZDQuLjY2ZTU1MDRjNzJmZTQ1NjdkNzc1ZDlkMGMy
MTFhMDUwZjczZTA4ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
ZXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoaXRl
cmFibGUuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShzZXQpOwogCi0gICAgSlNWYWx1ZSBhZGRlckZ1bmN0aW9uID0gc2V0LT5nZXQoZXhlYywgdm0u
cHJvcGVydHlOYW1lcy0+YWRkKTsKKyAgICBKU1ZhbHVlIGFkZGVyRnVuY3Rpb24gPSBzZXQtPkpT
T2JqZWN0OjpnZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YWRkKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIENhbGxEYXRhIGFkZGVy
RnVuY3Rpb25DYWxsRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NldFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQ
cm90b3R5cGUuY3BwCmluZGV4IGIxZjJmYTQ5MjlmNzczZjRkMTdjOTk3NzUyMjI2MTA2MWQ1YjM2
NDcuLmY2OWRiMTdmMTE5MDQ3ZDdiMjM1YzVhNmU2ZmJiZGUyZDJjZGU4Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcApAQCAtMTMzLDcgKzEz
Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jU2l6ZShDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKICAgICBKU1NldCogc2V0ID0gZ2V0U2V0KGNhbGxGcmFtZSwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFzZXQpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihzZXQtPnNpemUoY2FsbEZyYW1lKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoc2V0LT5zaXplKCkpKTsKIH0KICAgICAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc2V0UHJvdG9GdW5jVmFsdWVzKENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDNmMzJhOGZmODBmMTlkOTg3MWRmMzhhOTli
MDliMGY4YmE5NzM5ZmMuLjFhMjk4OTliNDY2N2RlOWM4ZTY1NDQ0OTkxZWYwNjNhMjJmZmRkOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTI3Miw4ICsyNzIsNiBAQCBW
TTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgZnVuY3Rpb25Db2Rl
QmxvY2tTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBGdW5jdGlvbkNvZGVCbG9jazo6Y3JlYXRlU3RydWN0
dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGhhc2hNYXBCdWNrZXRTZXRTdHJ1Y3R1cmUu
c2V0KCp0aGlzLCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pjo6Y3JlYXRlU3Ry
dWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGhhc2hNYXBCdWNrZXRNYXBTdHJ1Y3R1
cmUuc2V0KCp0aGlzLCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+Ojpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7Ci0gICAgaGFzaE1hcEltcGxTZXRT
dHJ1Y3R1cmUuc2V0KCp0aGlzLCBIYXNoTWFwSW1wbDxIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNr
ZXREYXRhS2V5Pj46OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKLSAgICBo
YXNoTWFwSW1wbE1hcFN0cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNr
ZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXlWYWx1ZT4+OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAs
IGpzTnVsbCgpKSk7CiAKICAgICBpdGVyYXRpb25UZXJtaW5hdG9yLnNldCgqdGhpcywgSlNGaW5h
bE9iamVjdDo6Y3JlYXRlKCp0aGlzLCBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnRo
aXMsIDAsIGpzTnVsbCgpLCAxKSkpOwogICAgIG5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbFN0cnVjdHVy
ZS5zZXQoKnRoaXMsIE5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlz
LCAwLCBqc051bGwoKSkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>