<?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>205466</bug_id>
          
          <creation_ts>2019-12-19 12:59:03 -0800</creation_ts>
          <short_desc>Don&apos;t cache self customs on dictionaries</short_desc>
          <delta_ts>2019-12-19 19:32:46 -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>JavaScriptCore</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600445</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-19 12:59:03 -0800</bug_when>
    <thetext>Since we cache the constant function pointer (unlike values and getters/setters, which we read dynamically from property storage), we always need to be notified when the property is replaced. For properties/getter/setters, then the property updates, the inline cache still does the right thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600446</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-19 12:59:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/58075545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600447</commentid>
    <comment_count>2</comment_count>
      <attachid>386134</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-19 12:59:53 -0800</bug_when>
    <thetext>Created attachment 386134
WIP

test on EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600489</commentid>
    <comment_count>3</comment_count>
      <attachid>386141</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-19 13:58:19 -0800</bug_when>
    <thetext>Created attachment 386141
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600500</commentid>
    <comment_count>4</comment_count>
      <attachid>386141</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-12-19 14:24:02 -0800</bug_when>
    <thetext>Comment on attachment 386141
patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        inline cache won&apos;t fail (because we wont transition structures) if that

/wont/won&apos;t/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600505</commentid>
    <comment_count>5</comment_count>
      <attachid>386145</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-19 14:40:19 -0800</bug_when>
    <thetext>Created attachment 386145
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600609</commentid>
    <comment_count>6</comment_count>
      <attachid>386145</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-19 19:32:45 -0800</bug_when>
    <thetext>Comment on attachment 386145
patch for landing

Clearing flags on attachment: 386145

Committed r253810: &lt;https://trac.webkit.org/changeset/253810&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600610</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-19 19:32:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386134</attachid>
            <date>2019-12-19 12:59:53 -0800</date>
            <delta_ts>2019-12-19 13:58:19 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>10442</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRp
dGlvblNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAkocmV2aXNpb24gMjUzNTc0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTA5LDcgKzUwOSw3IEBAIE9iamVjdFByb3BlcnR5Q29uZGl0
aW9uIGdlbmVyYXRlQ29uZGl0aW8KIH0KIAogLy8gQ3VycmVudCBtaWdodCBiZSBudWxsLiBTdHJ1
Y3R1cmUgY2FuJ3QgYmUgbnVsbC4KLXN0YXRpYyBPcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hp
bmdTdGF0dXM+IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNP
YmplY3QqIHRhcmdldCkKK3N0YXRpYyBPcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0
dXM+IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBjdXJyZW50LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHRhcmdldCkK
IHsKICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC01NzEsMjAgKzU3MSwyMCBAQCBzdGF0aWMgT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5D
YWNoaW5nU3RhCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotT3B0aW9uYWw8UHJvdG90eXBlQ2hh
aW5DYWNoaW5nU3RhdHVzPiBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgSlNPYmplY3QqIHRhcmdldCkKK09w
dGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZUNoYWluRm9yQ2FjaGlu
ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEpTT2JqZWN0KiB0
YXJnZXQpCiB7Ci0gICAgcmV0dXJuIHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoZ2xv
YmFsT2JqZWN0LCBiYXNlLCBiYXNlLT5zdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT52bSgpKSwgdGFy
Z2V0KTsKKyAgICByZXR1cm4gcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJh
c2UsIGJhc2UtPnN0cnVjdHVyZShnbG9iYWxPYmplY3QtPnZtKCkpLCB0YXJnZXQpOwogfQogCi1P
cHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVQcm90b3R5cGVDaGFp
bkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitPcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdT
dGF0dXM+IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBiYXNlLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNPYmpl
Y3QqIHRhcmdldCA9IHNsb3QuaXNVbnNldCgpID8gbnVsbHB0ciA6IHNsb3Quc2xvdEJhc2UoKTsK
LSAgICByZXR1cm4gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3Qs
IGJhc2UsIHRhcmdldCk7CisgICAgcmV0dXJuIHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFs
T2JqZWN0LCBiYXNlLCB0YXJnZXQpOwogfQogCi1PcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hp
bmdTdGF0dXM+IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBKU09iamVjdCogdGFyZ2V0
KQorT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3RhdHVzPiBwcmVwYXJlQ2hhaW5Gb3JD
YWNoaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYmFzZVN0cnVj
dHVyZSwgSlNPYmplY3QqIHRhcmdldCkKIHsKLSAgICByZXR1cm4gcHJlcGFyZVByb3RvdHlwZUNo
YWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIG51bGxwdHIsIGJhc2VTdHJ1Y3R1cmUsIHRhcmdl
dCk7CisgICAgcmV0dXJuIHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBudWxs
cHRyLCBiYXNlU3RydWN0dXJlLCB0YXJnZXQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlv
blNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCShyZXZpc2lvbiAyNTM1NzQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTk0LDggKzE5NCw4IEBAIHN0cnVjdCBQcm90b3R5cGVDaGFpbkNhY2hpbmdT
dGF0dXMgewogICAgIGJvb2wgZmxhdHRlbmVkRGljdGlvbmFyeTsKIH07CiAKLU9wdGlvbmFsPFBy
b3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGlu
ZyhKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogYmFzZSwgY29uc3QgUHJvcGVydHlTbG90Jik7Ci1P
cHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVQcm90b3R5cGVDaGFp
bkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGJhc2UsIEpTT2JqZWN0KiB0YXJn
ZXQpOwotT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3RhdHVzPiBwcmVwYXJlUHJvdG90
eXBlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBiYXNlLCBKU09i
amVjdCogdGFyZ2V0KTsKK09wdGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJl
cGFyZUNoYWluRm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogYmFzZSwgY29uc3Qg
UHJvcGVydHlTbG90Jik7CitPcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHBy
ZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGJhc2UsIEpTT2Jq
ZWN0KiB0YXJnZXQpOworT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3RhdHVzPiBwcmVw
YXJlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBiYXNlLCBKU09i
amVjdCogdGFyZ2V0KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDI1MzU3NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw2ICsyODAsMTUg
QEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnkoSgogCiAgICAgICAgICAg
ICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBzbG90LmlzVW5zZXQoKSA/IGludmFsaWRPZmZzZXQg
OiBzbG90LmNhY2hlZE9mZnNldCgpOwogCisgICAgICAgICAgICBpZiAoc2xvdC5pc0N1c3RvbSgp
ICYmIHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUpIHsKKyAgICAgICAgICAgICAgICAvLyBU
byBjYWNoZSBzZWxmIGN1c3RvbXMsIHdlIG11c3QgZGlzYWxsb3cgZGljdGlvbmFyaWVzIGJlY2F1
c2Ugd2UKKyAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGJlIGluZm9ybWVkIGlmIHRoZSBjdXN0
b20gZ29lcyBhd2F5IHNpbmNlIHdlIGNhY2hlIHRoZQorICAgICAgICAgICAgICAgIC8vIGNvbnN0
YW50IGZ1bmN0aW9uIHBvaW50ZXIuCisKKyAgICAgICAgICAgICAgICBpZiAoIXByZXBhcmVDaGFp
bkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBzbG90LnNsb3RCYXNlKCksIHNsb3Quc2xvdEJhc2Uo
KSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hlOworICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICBpZiAoc2xvdC5pc1Vuc2V0KCkgfHwgc2xvdC5zbG90QmFzZSgp
ICE9IGJhc2VWYWx1ZSkgewogICAgICAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZv
KCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBHaXZlVXBPbkNhY2hlOwpAQCAtMjk3LDcgKzMwNiw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFj
dGlvbiB0cnlDYWNoZUdldEJ5KEoKICAgICAgICAgICAgICAgICAvLyBJZiBhIGtpbmQgaXMgR2V0
QnlLaW5kOjpEaXJlY3QsIHdlIGRvIG5vdCBuZWVkIHRvIGludmVzdGlnYXRlIHByb3RvdHlwZSBj
aGFpbnMgZnVydGhlci4KICAgICAgICAgICAgICAgICAvLyBDYWNoZWFiaWxpdHkganVzdCBkZXBl
bmRzIG9uIHRoZSBoZWFkIHN0cnVjdHVyZS4KICAgICAgICAgICAgICAgICBpZiAoa2luZCAhPSBH
ZXRCeUtpbmQ6OkRpcmVjdCkgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGNhY2hlU3RhdHVz
ID0gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2VDZWxs
LCBzbG90KTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVD
aGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xvdCk7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghY2FjaGVTdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gR2l2ZVVwT25DYWNoZTsKIApAQCAtNjA4LDcgKzYxNyw3IEBAIHN0YXRpYyBJbmxpbmVDYWNo
ZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQKICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UG9seVByb3RvQWNjZXNzQ2hhaW4+IHByb3RvdHlwZUFjY2Vzc0NoYWluOwogICAgICAgICAgICAg
ICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRpdGlvblNldDsKICAgICAgICAgICAg
ICAgICBpZiAocHV0S2luZCA9PSBOb3REaXJlY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0
byBjYWNoZVN0YXR1cyA9IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2Jq
ZWN0LCBiYXNlQ2VsbCwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gY2FjaGVT
dGF0dXMgPSBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIG51
bGxwdHIpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlU3RhdHVzKQogICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEdpdmVVcE9uQ2FjaGU7CiAKQEAgLTYzMiwxMSArNjQxLDEx
IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQKICAgICAgICAgICAg
ICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQ7CiAgICAgICAgICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWluPiBwcm90b3R5cGVBY2Nl
c3NDaGFpbjsKIAotICAgICAgICAgICAgICAgIGlmIChzbG90LmJhc2UoKSAhPSBiYXNlVmFsdWUp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVQcm90b3R5
cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xvdC5iYXNlKCkpOwot
ICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlU3RhdHVzKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEdpdmVVcE9uQ2FjaGU7CisgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0
YXR1cyA9IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xv
dC5iYXNlKCkpOworICAgICAgICAgICAgICAgIGlmICghY2FjaGVTdGF0dXMpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hlOwogCisgICAgICAgICAgICAgICAgaWYgKHNs
b3QuYmFzZSgpICE9IGJhc2VWYWx1ZSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVT
dGF0dXMtPnVzZXNQb2x5UHJvdG8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvdHlw
ZUFjY2Vzc0NoYWluID0gUG9seVByb3RvQWNjZXNzQ2hhaW46OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGJhc2VDZWxsLCBzbG90LmJhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBy
b3RvdHlwZUFjY2Vzc0NoYWluKQpAQCAtNjU5LDcgKzY2OCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNo
ZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQKICAgICAgICAgICAgICAgICBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQgPSBzbG90LmNhY2hlZE9mZnNldCgpOwogCiAgICAgICAgICAgICAgICAgaWYgKHNsb3Qu
YmFzZSgpICE9IGJhc2VWYWx1ZSkgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGNhY2hlU3Rh
dHVzID0gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2VD
ZWxsLCBzbG90LmJhc2UoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gY2FjaGVTdGF0dXMg
PSBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QuYmFz
ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZVN0YXR1cykKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hlOwogICAgICAgICAgICAgICAgICAgICBp
ZiAoY2FjaGVTdGF0dXMtPmZsYXR0ZW5lZERpY3Rpb25hcnkpCkBAIC03NjEsNyArNzcwLDcgQEAg
c3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5CeUlEKAogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBpZiAoc2xvdC5zbG90QmFzZSgpICE9IGJhc2UpIHsKLSAgICAgICAgICAg
ICAgICBhdXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhn
bG9iYWxPYmplY3QsIGJhc2UsIHNsb3QpOworICAgICAgICAgICAgICAgIGF1dG8gY2FjaGVTdGF0
dXMgPSBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZSwgc2xvdCk7CiAg
ICAgICAgICAgICAgICAgaWYgKCFjYWNoZVN0YXR1cykKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEdpdmVVcE9uQ2FjaGU7CiAgICAgICAgICAgICAgICAgaWYgKGNhY2hlU3RhdHVzLT5mbGF0
dGVuZWREaWN0aW9uYXJ5KQpAQCAtNzgyLDcgKzc5MSw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFj
dGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZVBy
b3RvdHlwZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2UsIG51bGxwdHIpOworICAg
ICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFs
T2JqZWN0LCBiYXNlLCBudWxscHRyKTsKICAgICAgICAgICAgIGlmICghY2FjaGVTdGF0dXMpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEdpdmVVcE9uQ2FjaGU7CiAKQEAgLTg1NCw3ICs4NjMsNyBA
QCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVJbnN0YW5jCiAgICAgICAgICAgICB9
IGVsc2UgaWYgKHN0cnVjdHVyZS0+cHJvdG90eXBlUXVlcmllc0FyZUNhY2hlYWJsZSgpKSB7CiAg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IFRlYWNoIHRoaXMgdG8gZG8gcG9seSBwcm90by4KICAg
ICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg1NjYzCi0gICAgICAgICAgICAgICAgcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhn
bG9iYWxPYmplY3QsIHZhbHVlLCB3YXNGb3VuZCA/IHByb3RvdHlwZSA6IG51bGxwdHIpOworICAg
ICAgICAgICAgICAgIHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCB2YWx1ZSwg
d2FzRm91bmQgPyBwcm90b3R5cGUgOiBudWxscHRyKTsKICAgICAgICAgICAgICAgICBPYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQgPSBnZW5lcmF0ZUNvbmRpdGlvbnNGb3JJ
bnN0YW5jZU9mKAogICAgICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2NrLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgcHJvdG90eXBlLCB3YXNGb3VuZCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjUzNTc0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzE2LDcgKzcxNiw3IEBAIHN0YXRpYyB2b2lkIHNldHVwR2V0QnlJZFBy
b3RvdHlwZUNhY2hlKEoKICAgICAgICAgc3RydWN0dXJlLT5mbGF0dGVuRGljdGlvbmFyeVN0cnVj
dHVyZSh2bSwganNDYXN0PEpTT2JqZWN0Kj4oYmFzZUNlbGwpKTsKICAgICB9CiAKLSAgICBwcmVw
YXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3Qp
OworICAgIHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xv
dCk7CiAKICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25zOwogICAgIGlm
IChzbG90LmlzVW5zZXQoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZVJhcmVEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAJKHJldmlzaW9uIDI1MzU3NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA3LDExICsxMDcsMTEgQEAgdm9pZCBTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0T2Jq
ZWN0VG9TdHJpbgogCiAgICAgICAgIC8vIFRoaXMgd2lsbCBub3QgY3JlYXRlIGEgY29uZGl0aW9u
IGZvciB0aGUgY3VycmVudCBzdHJ1Y3R1cmUgYnV0IHRoYXQgaXMgZ29vZCBiZWNhdXNlIHdlIGtu
b3cgdGhlIFN5bWJvbC50b1N0cmluZ1RhZwogICAgICAgICAvLyBpcyBub3Qgb24gdGhlIG93blN0
cnVjdHVyZSBzbyB3ZSB3aWxsIHRyYW5zaXNpdGlvbiBpZiBvbmUgaXMgYWRkZWQgYW5kIHRoaXMg
Y2FjaGUgd2lsbCBubyBsb25nZXIgYmUgdXNlZC4KLSAgICAgICAgcHJlcGFyZVByb3RvdHlwZUNo
YWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIG93blN0cnVjdHVyZSwgdG9TdHJpbmdUYWdTeW1i
b2xTbG90LnNsb3RCYXNlKCkpOworICAgICAgICBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2Jh
bE9iamVjdCwgb3duU3RydWN0dXJlLCB0b1N0cmluZ1RhZ1N5bWJvbFNsb3Quc2xvdEJhc2UoKSk7
CiAgICAgICAgIGNvbmRpdGlvblNldCA9IGdlbmVyYXRlQ29uZGl0aW9uc0ZvclByb3RvdHlwZVBy
b3BlcnR5SGl0KHZtLCB0aGlzLCBnbG9iYWxPYmplY3QsIG93blN0cnVjdHVyZSwgdG9TdHJpbmdU
YWdTeW1ib2xTbG90LnNsb3RCYXNlKCksIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3lt
Ym9sLmltcGwoKSk7CiAgICAgICAgIEFTU0VSVCghY29uZGl0aW9uU2V0LmlzVmFsaWQoKSB8fCBj
b25kaXRpb25TZXQuaGFzT25lU2xvdEJhc2VDb25kaXRpb24oKSk7CiAgICAgfSBlbHNlIGlmICh0
b1N0cmluZ1RhZ1N5bWJvbFNsb3QuaXNVbnNldCgpKSB7Ci0gICAgICAgIHByZXBhcmVQcm90b3R5
cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBvd25TdHJ1Y3R1cmUsIG51bGxwdHIpOwor
ICAgICAgICBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgb3duU3RydWN0dXJl
LCBudWxscHRyKTsKICAgICAgICAgY29uZGl0aW9uU2V0ID0gZ2VuZXJhdGVDb25kaXRpb25zRm9y
UHJvcGVydHlNaXNzKHZtLCB0aGlzLCBnbG9iYWxPYmplY3QsIG93blN0cnVjdHVyZSwgdm0ucHJv
cGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wuaW1wbCgpKTsKICAgICB9IGVsc2UKICAgICAg
ICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386141</attachid>
            <date>2019-12-19 13:58:19 -0800</date>
            <delta_ts>2019-12-19 14:40:19 -0800</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>14807</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUzNzg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE5LTEyLTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERvbid0IGNhY2hlIHNlbGYgY3VzdG9tcyBvbiBkaWN0aW9uYXJpZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQ2NgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTgwNzU1NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2UgaGFkIGEgYnVnIHdoZXJlIHdlIHdvdWxkIGNhY2hlIGEgY3VzdG9tIHZh
bHVlL2FjY2Vzc29yIG9uIGEgc2VsZiBwcm9wZXJ0eQorICAgICAgICBvZiBhIGNhY2hlYWJsZSBk
aWN0aW9uYXJ5IG9iamVjdC4gVGhpcyB0dXJucyBvdXQgdG8gYmUgd3JvbmcgYmVjYXVzZSB0aGUK
KyAgICAgICAgaW5saW5lIGNhY2hlIHdvbid0IGZhaWwgKGJlY2F1c2Ugd2Ugd29udCB0cmFuc2l0
aW9uIHN0cnVjdHVyZXMpIGlmIHRoYXQKKyAgICAgICAgcHJvcGVydHkgaXMgcmVwbGFjZWQgd2l0
aCBzb21ldGhpbmcgZWxzZS4gV2Ugd291bGQgZG8gdGhlIHJpZ2h0IHRoaW5nIHdoZW4KKyAgICAg
ICAgdGhlIGN1c3RvbSB3YXMgb24gdGhlIHByb3RvdHlwZSBjaGFpbiwgYnV0IHdoZW4gaXQgd2Fz
IGEgc2VsZiBwcm9wZXJ0eSwgd2UKKyAgICAgICAgZGlkbid0LiBUaGUgcmVhc29uIGN1c3RvbXMg
YXJlIGRpZmZlcmVudCBmcm9tIHZhbHVlcy9ub3JtYWwgYWNjZXNzb3JzIGlzIHRoYXQKKyAgICAg
ICAgd2UgZHluYW1pY2FsbHkgbG9hZCB2YWx1ZXMvZ2V0dGVycy9zZXR0ZXJzIGZyb20gdGhlIG9i
amVjdCBpdHNlbGYuIEZvcgorICAgICAgICBjdXN0b21zLCB3ZSBjYWNoZSB0aGUgYWN0dWFsIHBv
aW50ZXIgdmFsdWUgb2YgdGhlIEMgZnVuY3Rpb24uIFRoaXMgcGF0Y2ggbWFrZXMKKyAgICAgICAg
aXQgc28gd2UgZG9uJ3QgY2FjaGUgY3VzdG9tcyBvbiBkaWN0aW9uYXJpZXMuCisKKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6
OnByZXBhcmVDaGFpbkZvckNhY2hpbmcpOgorICAgICAgICAoSlNDOjpwcmVwYXJlUHJvdG90eXBl
Q2hhaW5Gb3JDYWNoaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9PYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAg
KEpTQzo6dHJ5Q2FjaGVHZXRCeSk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlUHV0QnlJRCk6Cisg
ICAgICAgIChKU0M6OnRyeUNhY2hlSW5CeUlEKToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVJbnN0
YW5jZU9mKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChK
U0M6OkxMSW50OjpzZXR1cEdldEJ5SWRQcm90b3R5cGVDYWNoZSk6CisgICAgICAgICogcnVudGlt
ZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVJhcmVEYXRh
OjpzZXRPYmplY3RUb1N0cmluZ1ZhbHVlKToKKwogMjAxOS0xMi0xOCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVudHM6IHJl
c3RyaWN0IHNob3dpbmcgcGFpbnQgZmxhc2hpbmcgYW5kIGNvbXBvc2l0aW5nIGJvcmRlcnMgdG8g
dGhlIFdlYiBJbnNwZWN0b3Igc2Vzc2lvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3Bw
CShyZXZpc2lvbiAyNTM1NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDksNyArNTA5
LDcgQEAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gZ2VuZXJhdGVDb25kaXRpbwogfQogCiAvLyBD
dXJyZW50IG1pZ2h0IGJlIG51bGwuIFN0cnVjdHVyZSBjYW4ndCBiZSBudWxsLgotc3RhdGljIE9w
dGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZVByb3RvdHlwZUNoYWlu
Rm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGN1cnJlbnQs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogdGFyZ2V0KQorc3RhdGljIE9wdGlvbmFs
PFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGN1cnJlbnQsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU09iamVjdCogdGFyZ2V0KQogewogICAgIEFTU0VSVChzdHJ1Y3R1cmUpOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTU3MSwyMCArNTcxLDIwIEBAIHN0YXRp
YyBPcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGEKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1PcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVQcm90b3R5
cGVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBi
YXNlLCBKU09iamVjdCogdGFyZ2V0KQorT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3Rh
dHVzPiBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogYmFzZSwgSlNPYmplY3QqIHRhcmdldCkKIHsKLSAgICByZXR1cm4gcHJlcGFyZVBy
b3RvdHlwZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2UsIGJhc2UtPnN0cnVjdHVy
ZShnbG9iYWxPYmplY3QtPnZtKCkpLCB0YXJnZXQpOworICAgIHJldHVybiBwcmVwYXJlQ2hhaW5G
b3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZSwgYmFzZS0+c3RydWN0dXJlKGdsb2JhbE9iamVj
dC0+dm0oKSksIHRhcmdldCk7CiB9CiAKLU9wdGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0
YXR1cz4gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK09wdGlv
bmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gc2xvdC5pc1Vuc2V0KCkgPyBu
dWxscHRyIDogc2xvdC5zbG90QmFzZSgpOwotICAgIHJldHVybiBwcmVwYXJlUHJvdG90eXBlQ2hh
aW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZSwgdGFyZ2V0KTsKKyAgICByZXR1cm4gcHJl
cGFyZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2UsIHRhcmdldCk7CiB9CiAKLU9w
dGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZVByb3RvdHlwZUNoYWlu
Rm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGJhc2VT
dHJ1Y3R1cmUsIEpTT2JqZWN0KiB0YXJnZXQpCitPcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hp
bmdTdGF0dXM+IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBKU09iamVjdCogdGFyZ2V0KQogewotICAg
IHJldHVybiBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgbnVs
bHB0ciwgYmFzZVN0cnVjdHVyZSwgdGFyZ2V0KTsKKyAgICByZXR1cm4gcHJlcGFyZUNoYWluRm9y
Q2FjaGluZyhnbG9iYWxPYmplY3QsIG51bGxwdHIsIGJhc2VTdHJ1Y3R1cmUsIHRhcmdldCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmgJKHJldmlz
aW9uIDI1MzU3NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvblNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQsOCArMTk0LDggQEAgc3Ry
dWN0IFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cyB7CiAgICAgYm9vbCBmbGF0dGVuZWREaWN0
aW9uYXJ5OwogfTsKIAotT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3RhdHVzPiBwcmVw
YXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBiYXNl
LCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKLU9wdGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0
YXR1cz4gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCogYmFzZSwgSlNPYmplY3QqIHRhcmdldCk7Ci1PcHRpb25hbDxQcm90b3R5cGVDaGFpbkNh
Y2hpbmdTdGF0dXM+IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqIGJhc2UsIEpTT2JqZWN0KiB0YXJnZXQpOworT3B0aW9uYWw8UHJvdG90
eXBlQ2hhaW5DYWNoaW5nU3RhdHVzPiBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiBiYXNlLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKK09wdGlvbmFsPFByb3Rv
dHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCogYmFzZSwgSlNPYmplY3QqIHRhcmdldCk7CitPcHRpb25hbDxQcm90b3R5
cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqIGJhc2UsIEpTT2JqZWN0KiB0YXJnZXQpOwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24g
MjUzNTc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCwxNSBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5
Q2FjaGVHZXRCeShKCiAKICAgICAgICAgICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHNsb3Qu
aXNVbnNldCgpID8gaW52YWxpZE9mZnNldCA6IHNsb3QuY2FjaGVkT2Zmc2V0KCk7CiAKKyAgICAg
ICAgICAgIGlmIChzbG90LmlzQ3VzdG9tKCkgJiYgc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1
ZSkgeworICAgICAgICAgICAgICAgIC8vIFRvIGNhY2hlIHNlbGYgY3VzdG9tcywgd2UgbXVzdCBk
aXNhbGxvdyBkaWN0aW9uYXJpZXMgYmVjYXVzZSB3ZQorICAgICAgICAgICAgICAgIC8vIG5lZWQg
dG8gYmUgaW5mb3JtZWQgaWYgdGhlIGN1c3RvbSBnb2VzIGF3YXkgc2luY2Ugd2UgY2FjaGUgdGhl
CisgICAgICAgICAgICAgICAgLy8gY29uc3RhbnQgZnVuY3Rpb24gcG9pbnRlci4KKworICAgICAg
ICAgICAgICAgIGlmICghcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIHNsb3Qu
c2xvdEJhc2UoKSwgc2xvdC5zbG90QmFzZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEdpdmVVcE9uQ2FjaGU7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmIChzbG90Lmlz
VW5zZXQoKSB8fCBzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZhbHVlKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5wcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpdmVVcE9uQ2FjaGU7CkBAIC0yOTcsNyArMzA2
LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnkoSgogICAgICAgICAg
ICAgICAgIC8vIElmIGEga2luZCBpcyBHZXRCeUtpbmQ6OkRpcmVjdCwgd2UgZG8gbm90IG5lZWQg
dG8gaW52ZXN0aWdhdGUgcHJvdG90eXBlIGNoYWlucyBmdXJ0aGVyLgogICAgICAgICAgICAgICAg
IC8vIENhY2hlYWJpbGl0eSBqdXN0IGRlcGVuZHMgb24gdGhlIGhlYWQgc3RydWN0dXJlLgogICAg
ICAgICAgICAgICAgIGlmIChraW5kICE9IEdldEJ5S2luZDo6RGlyZWN0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGF1dG8gY2FjaGVTdGF0dXMgPSBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNo
aW5nKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QpOworICAgICAgICAgICAgICAgICAgICBh
dXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJh
c2VDZWxsLCBzbG90KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZVN0YXR1cykKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hlOwogCkBAIC02MDgsNyAr
NjE3LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRAogICAgICAg
ICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4gcHJvdG90eXBl
QWNjZXNzQ2hhaW47CiAgICAgICAgICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQg
Y29uZGl0aW9uU2V0OwogICAgICAgICAgICAgICAgIGlmIChwdXRLaW5kID09IE5vdERpcmVjdCkg
ewotICAgICAgICAgICAgICAgICAgICBhdXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZVByb3RvdHlw
ZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2VDZWxsLCBudWxscHRyKTsKKyAgICAg
ICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVDaGFpbkZvckNhY2hpbmco
Z2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgbnVsbHB0cik7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghY2FjaGVTdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25D
YWNoZTsKIApAQCAtNjMyLDExICs2NDEsMTQgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRy
eUNhY2hlUHV0QnlJRAogICAgICAgICAgICAgICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
IGNvbmRpdGlvblNldDsKICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UG9seVByb3Rv
QWNjZXNzQ2hhaW4+IHByb3RvdHlwZUFjY2Vzc0NoYWluOwogCi0gICAgICAgICAgICAgICAgaWYg
KHNsb3QuYmFzZSgpICE9IGJhc2VWYWx1ZSkgewotICAgICAgICAgICAgICAgICAgICBhdXRvIGNh
Y2hlU3RhdHVzID0gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3Qs
IGJhc2VDZWxsLCBzbG90LmJhc2UoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghY2FjaGVT
dGF0dXMpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKKyAg
ICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGRvIHRoaXMgZXZlbiBpZiB3ZSdyZSBhIHNlbGYg
Y3VzdG9tLCBzaW5jZSB3ZSBtdXN0IGRpc2FsbG93IGRpY3Rpb25hcmllcworICAgICAgICAgICAg
ICAgIC8vIGJlY2F1c2Ugd2UgbmVlZCB0byBiZSBpbmZvcm1lZCBpZiB0aGUgY3VzdG9tIGdvZXMg
YXdheSBzaW5jZSB3ZSBjYWNoZSB0aGUgY29uc3RhbnQKKyAgICAgICAgICAgICAgICAvLyBmdW5j
dGlvbiBwb2ludGVyLgorICAgICAgICAgICAgICAgIGF1dG8gY2FjaGVTdGF0dXMgPSBwcmVwYXJl
Q2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QuYmFzZSgpKTsKKyAg
ICAgICAgICAgICAgICBpZiAoIWNhY2hlU3RhdHVzKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gR2l2ZVVwT25DYWNoZTsKIAorICAgICAgICAgICAgICAgIGlmIChzbG90LmJhc2UoKSAhPSBi
YXNlVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlU3RhdHVzLT51c2VzUG9s
eVByb3RvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b3R5cGVBY2Nlc3NDaGFpbiA9
IFBvbHlQcm90b0FjY2Vzc0NoYWluOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xv
dC5iYXNlKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm90b3R5cGVBY2Nlc3ND
aGFpbikKQEAgLTY1OSw3ICs2NzEsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2Fj
aGVQdXRCeUlECiAgICAgICAgICAgICAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gc2xvdC5j
YWNoZWRPZmZzZXQoKTsKIAogICAgICAgICAgICAgICAgIGlmIChzbG90LmJhc2UoKSAhPSBiYXNl
VmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVQ
cm90b3R5cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xvdC5iYXNl
KCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZUNoYWlu
Rm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2VDZWxsLCBzbG90LmJhc2UoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmICghY2FjaGVTdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gR2l2ZVVwT25DYWNoZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlU3RhdHVz
LT5mbGF0dGVuZWREaWN0aW9uYXJ5KQpAQCAtNzYxLDcgKzc3Myw3IEBAIHN0YXRpYyBJbmxpbmVD
YWNoZUFjdGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
aWYgKHNsb3Quc2xvdEJhc2UoKSAhPSBiYXNlKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBjYWNo
ZVN0YXR1cyA9IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBi
YXNlLCBzbG90KTsKKyAgICAgICAgICAgICAgICBhdXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZUNo
YWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2UsIHNsb3QpOwogICAgICAgICAgICAgICAg
IGlmICghY2FjaGVTdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNh
Y2hlOwogICAgICAgICAgICAgICAgIGlmIChjYWNoZVN0YXR1cy0+ZmxhdHRlbmVkRGljdGlvbmFy
eSkKQEAgLTc4Miw3ICs3OTQsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVJ
bkJ5SUQoCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVQcm90b3R5cGVDaGFpbkZv
ckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlLCBudWxscHRyKTsKKyAgICAgICAgICAgIGF1dG8g
Y2FjaGVTdGF0dXMgPSBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZSwg
bnVsbHB0cik7CiAgICAgICAgICAgICBpZiAoIWNhY2hlU3RhdHVzKQogICAgICAgICAgICAgICAg
IHJldHVybiBHaXZlVXBPbkNhY2hlOwogCkBAIC04NTQsNyArODY2LDcgQEAgc3RhdGljIElubGlu
ZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5zdGFuYwogICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJ1
Y3R1cmUtPnByb3RvdHlwZVF1ZXJpZXNBcmVDYWNoZWFibGUoKSkgewogICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBUZWFjaCB0aGlzIHRvIGRvIHBvbHkgcHJvdG8uCiAgICAgICAgICAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTY2MwotICAgICAg
ICAgICAgICAgIHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCB2
YWx1ZSwgd2FzRm91bmQgPyBwcm90b3R5cGUgOiBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBw
cmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgdmFsdWUsIHdhc0ZvdW5kID8gcHJv
dG90eXBlIDogbnVsbHB0cik7CiAgICAgICAgICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRp
b25TZXQgY29uZGl0aW9uU2V0ID0gZ2VuZXJhdGVDb25kaXRpb25zRm9ySW5zdGFuY2VPZigKICAg
ICAgICAgICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUs
IHByb3RvdHlwZSwgd2FzRm91bmQpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDI1MzU3NCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcxNiw3ICs3MTYsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cEdldEJ5SWRQcm90b3R5cGVDYWNoZShK
CiAgICAgICAgIHN0cnVjdHVyZS0+ZmxhdHRlbkRpY3Rpb25hcnlTdHJ1Y3R1cmUodm0sIGpzQ2Fz
dDxKU09iamVjdCo+KGJhc2VDZWxsKSk7CiAgICAgfQogCi0gICAgcHJlcGFyZVByb3RvdHlwZUNo
YWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2VDZWxsLCBzbG90KTsKKyAgICBwcmVwYXJl
Q2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QpOwogCiAgICAgT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQgY29uZGl0aW9uczsKICAgICBpZiAoc2xvdC5pc1Vuc2V0
KCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0
YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlUmFyZURhdGEuY3BwCShyZXZpc2lvbiAyNTM1NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNywx
MSArMTA3LDExIEBAIHZvaWQgU3RydWN0dXJlUmFyZURhdGE6OnNldE9iamVjdFRvU3RyaW4KIAog
ICAgICAgICAvLyBUaGlzIHdpbGwgbm90IGNyZWF0ZSBhIGNvbmRpdGlvbiBmb3IgdGhlIGN1cnJl
bnQgc3RydWN0dXJlIGJ1dCB0aGF0IGlzIGdvb2QgYmVjYXVzZSB3ZSBrbm93IHRoZSBTeW1ib2wu
dG9TdHJpbmdUYWcKICAgICAgICAgLy8gaXMgbm90IG9uIHRoZSBvd25TdHJ1Y3R1cmUgc28gd2Ug
d2lsbCB0cmFuc2lzaXRpb24gaWYgb25lIGlzIGFkZGVkIGFuZCB0aGlzIGNhY2hlIHdpbGwgbm8g
bG9uZ2VyIGJlIHVzZWQuCi0gICAgICAgIHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmco
Z2xvYmFsT2JqZWN0LCBvd25TdHJ1Y3R1cmUsIHRvU3RyaW5nVGFnU3ltYm9sU2xvdC5zbG90QmFz
ZSgpKTsKKyAgICAgICAgcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIG93blN0
cnVjdHVyZSwgdG9TdHJpbmdUYWdTeW1ib2xTbG90LnNsb3RCYXNlKCkpOwogICAgICAgICBjb25k
aXRpb25TZXQgPSBnZW5lcmF0ZUNvbmRpdGlvbnNGb3JQcm90b3R5cGVQcm9wZXJ0eUhpdCh2bSwg
dGhpcywgZ2xvYmFsT2JqZWN0LCBvd25TdHJ1Y3R1cmUsIHRvU3RyaW5nVGFnU3ltYm9sU2xvdC5z
bG90QmFzZSgpLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbC5pbXBsKCkpOwog
ICAgICAgICBBU1NFUlQoIWNvbmRpdGlvblNldC5pc1ZhbGlkKCkgfHwgY29uZGl0aW9uU2V0Lmhh
c09uZVNsb3RCYXNlQ29uZGl0aW9uKCkpOwogICAgIH0gZWxzZSBpZiAodG9TdHJpbmdUYWdTeW1i
b2xTbG90LmlzVW5zZXQoKSkgewotICAgICAgICBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNo
aW5nKGdsb2JhbE9iamVjdCwgb3duU3RydWN0dXJlLCBudWxscHRyKTsKKyAgICAgICAgcHJlcGFy
ZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIG93blN0cnVjdHVyZSwgbnVsbHB0cik7CiAg
ICAgICAgIGNvbmRpdGlvblNldCA9IGdlbmVyYXRlQ29uZGl0aW9uc0ZvclByb3BlcnR5TWlzcyh2
bSwgdGhpcywgZ2xvYmFsT2JqZWN0LCBvd25TdHJ1Y3R1cmUsIHZtLnByb3BlcnR5TmFtZXMtPnRv
U3RyaW5nVGFnU3ltYm9sLmltcGwoKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI1MzU3NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEyLTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGNhY2hlIHNlbGYgY3VzdG9tcyBvbiBkaWN0
aW9uYXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwNzU1NDU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9kb20vY3VzdG9tLWZ1bmN0
aW9uLXNob3VsZC1ub3QtY2FjaGUtYXMtZGljdGlvbmFyeS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGpzL2RvbS9jdXN0b20tZnVuY3Rpb24tc2hvdWxkLW5vdC1jYWNoZS1hcy1kaWN0
aW9uYXJ5Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTEyLTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBDb25zaWRlciB0b3AtbGV2ZWwgY29udGV4dCB3aG9zZSBv
cmlnaW4gaXMgdW5pcXVlIGFzIGluc2VjdXJlCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vY3Vz
dG9tLWZ1bmN0aW9uLXNob3VsZC1ub3QtY2FjaGUtYXMtZGljdGlvbmFyeS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2N1c3RvbS1mdW5jdGlvbi1zaG91bGQt
bm90LWNhY2hlLWFzLWRpY3Rpb25hcnktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2pzL2RvbS9jdXN0b20tZnVuY3Rpb24tc2hvdWxkLW5vdC1jYWNoZS1hcy1kaWN0
aW9uYXJ5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK1BBU1Mg
T3ZlcnJvZGUgWE1MSHR0cFJlcXVlc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vY3VzdG9tLWZ1bmN0
aW9uLXNob3VsZC1ub3QtY2FjaGUtYXMtZGljdGlvbmFyeS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL2RvbS9jdXN0b20tZnVuY3Rpb24tc2hvdWxkLW5vdC1jYWNoZS1hcy1kaWN0
aW9uYXJ5Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2N1c3RvbS1m
dW5jdGlvbi1zaG91bGQtbm90LWNhY2hlLWFzLWRpY3Rpb25hcnkuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KKyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisK
KyAgICBsZXQgZmFrZVhIUkNyZWF0ZWQgPSBmYWxzZTsKKworICAgIGZ1bmN0aW9uIGNyZWF0ZVhI
UigpIHsKKyAgICAgICAgbGV0IHhociA9IG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTsKKyAg
ICB9CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgICAgICBjcmVh
dGVYSFIoKTsKKyAgICB9CisKKyAgICAvLyBPdmVyd3JpdGUgWE1MSHR0cFJlcXVlc3QKKyAgICB3
aW5kb3cuWE1MSHR0cFJlcXVlc3QgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgZmFrZVhIUkNyZWF0
ZWQgPSB0cnVlOworICAgIH0KKworICAgIGNyZWF0ZVhIUigpOworCisgICAgaWYgKGZha2VYSFJD
cmVhdGVkKQorICAgICAgICB0ZXN0UGFzc2VkKCJPdmVycm9kZSBYTUxIdHRwUmVxdWVzdCIpOwor
ICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiRGlkIG5vdCBvdmVycmlkZSBYTUxIdHRwUmVx
dWVzdCIpOworfSkoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="401960"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386145</attachid>
            <date>2019-12-19 14:40:19 -0800</date>
            <delta_ts>2019-12-19 19:32:45 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>14796</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUzNzg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE5LTEyLTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERvbid0IGNhY2hlIHNlbGYgY3VzdG9tcyBvbiBkaWN0aW9uYXJpZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQ2NgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTgwNzU1NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAg
ICAgICAgV2UgaGFkIGEgYnVnIHdoZXJlIHdlIHdvdWxkIGNhY2hlIGEgY3VzdG9tIHZhbHVlL2Fj
Y2Vzc29yIG9uIGEgc2VsZiBwcm9wZXJ0eQorICAgICAgICBvZiBhIGNhY2hlYWJsZSBkaWN0aW9u
YXJ5IG9iamVjdC4gVGhpcyB0dXJucyBvdXQgdG8gYmUgd3JvbmcgYmVjYXVzZSB0aGUKKyAgICAg
ICAgaW5saW5lIGNhY2hlIHdvbid0IGZhaWwgKGJlY2F1c2Ugd2Ugd29uJ3QgdHJhbnNpdGlvbiBz
dHJ1Y3R1cmVzKSBpZiB0aGF0CisgICAgICAgIHByb3BlcnR5IGlzIHJlcGxhY2VkIHdpdGggc29t
ZXRoaW5nIGVsc2UuIFdlIHdvdWxkIGRvIHRoZSByaWdodCB0aGluZyB3aGVuCisgICAgICAgIHRo
ZSBjdXN0b20gd2FzIG9uIHRoZSBwcm90b3R5cGUgY2hhaW4sIGJ1dCB3aGVuIGl0IHdhcyBhIHNl
bGYgcHJvcGVydHksIHdlCisgICAgICAgIGRpZG4ndC4gVGhlIHJlYXNvbiBjdXN0b21zIGFyZSBk
aWZmZXJlbnQgZnJvbSB2YWx1ZXMvbm9ybWFsIGFjY2Vzc29ycyBpcyB0aGF0CisgICAgICAgIHdl
IGR5bmFtaWNhbGx5IGxvYWQgdmFsdWVzL2dldHRlcnMvc2V0dGVycyBmcm9tIHRoZSBvYmplY3Qg
aXRzZWxmLiBGb3IKKyAgICAgICAgY3VzdG9tcywgd2UgY2FjaGUgdGhlIGFjdHVhbCBwb2ludGVy
IHZhbHVlIG9mIHRoZSBDIGZ1bmN0aW9uLiBUaGlzIHBhdGNoIG1ha2VzCisgICAgICAgIGl0IHNv
IHdlIGRvbid0IGNhY2hlIGN1c3RvbXMgb24gZGljdGlvbmFyaWVzLgorCisgICAgICAgICogYnl0
ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwOgorICAgICAgICAoSlNDOjpwcmVw
YXJlQ2hhaW5Gb3JDYWNoaW5nKToKKyAgICAgICAgKEpTQzo6cHJlcGFyZVByb3RvdHlwZUNoYWlu
Rm9yQ2FjaGluZyk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlD
b25kaXRpb25TZXQuaDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6
OnRyeUNhY2hlR2V0QnkpOgorICAgICAgICAoSlNDOjp0cnlDYWNoZVB1dEJ5SUQpOgorICAgICAg
ICAoSlNDOjp0cnlDYWNoZUluQnlJRCk6CisgICAgICAgIChKU0M6OnRyeUNhY2hlSW5zdGFuY2VP
Zik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpM
TEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
dWN0dXJlUmFyZURhdGEuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVSYXJlRGF0YTo6c2V0
T2JqZWN0VG9TdHJpbmdWYWx1ZSk6CisKIDIwMTktMTItMTggIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVsZW1lbnRzOiByZXN0cmlj
dCBzaG93aW5nIHBhaW50IGZsYXNoaW5nIGFuZCBjb21wb3NpdGluZyBib3JkZXJzIHRvIHRoZSBX
ZWIgSW5zcGVjdG9yIHNlc3Npb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAkocmV2
aXNpb24gMjUzNTc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA5LDcgKzUwOSw3IEBA
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIGdlbmVyYXRlQ29uZGl0aW8KIH0KIAogLy8gQ3VycmVu
dCBtaWdodCBiZSBudWxsLiBTdHJ1Y3R1cmUgY2FuJ3QgYmUgbnVsbC4KLXN0YXRpYyBPcHRpb25h
bDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNh
Y2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHRhcmdldCkKK3N0YXRpYyBPcHRpb25hbDxQcm90
b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNPYmplY3QqIHRhcmdldCkKIHsKICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC01NzEsMjAgKzU3MSwyMCBAQCBzdGF0aWMgT3B0
aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3RhCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
T3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3RhdHVzPiBwcmVwYXJlUHJvdG90eXBlQ2hh
aW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwg
SlNPYmplY3QqIHRhcmdldCkKK09wdGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4g
cHJlcGFyZUNoYWluRm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIGJhc2UsIEpTT2JqZWN0KiB0YXJnZXQpCiB7Ci0gICAgcmV0dXJuIHByZXBhcmVQcm90b3R5
cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlLCBiYXNlLT5zdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LT52bSgpKSwgdGFyZ2V0KTsKKyAgICByZXR1cm4gcHJlcGFyZUNoYWluRm9yQ2Fj
aGluZyhnbG9iYWxPYmplY3QsIGJhc2UsIGJhc2UtPnN0cnVjdHVyZShnbG9iYWxPYmplY3QtPnZt
KCkpLCB0YXJnZXQpOwogfQogCi1PcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+
IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBiYXNlLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitPcHRpb25hbDxQ
cm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBjb25zdCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgSlNPYmplY3QqIHRhcmdldCA9IHNsb3QuaXNVbnNldCgpID8gbnVsbHB0
ciA6IHNsb3Quc2xvdEJhc2UoKTsKLSAgICByZXR1cm4gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9y
Q2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2UsIHRhcmdldCk7CisgICAgcmV0dXJuIHByZXBhcmVD
aGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlLCB0YXJnZXQpOwogfQogCi1PcHRpb25h
bDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNh
Y2hpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBiYXNlU3RydWN0
dXJlLCBKU09iamVjdCogdGFyZ2V0KQorT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5nU3Rh
dHVzPiBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgSlNPYmplY3QqIHRhcmdldCkKIHsKLSAgICByZXR1
cm4gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIG51bGxwdHIs
IGJhc2VTdHJ1Y3R1cmUsIHRhcmdldCk7CisgICAgcmV0dXJuIHByZXBhcmVDaGFpbkZvckNhY2hp
bmcoZ2xvYmFsT2JqZWN0LCBudWxscHRyLCBiYXNlU3RydWN0dXJlLCB0YXJnZXQpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9P
YmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCShyZXZpc2lvbiAy
NTM1NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlD
b25kaXRpb25TZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDggKzE5NCw4IEBAIHN0cnVjdCBQ
cm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXMgewogICAgIGJvb2wgZmxhdHRlbmVkRGljdGlvbmFy
eTsKIH07CiAKLU9wdGlvbmFsPFByb3RvdHlwZUNoYWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZVBy
b3RvdHlwZUNoYWluRm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogYmFzZSwgY29u
c3QgUHJvcGVydHlTbG90Jik7Ci1PcHRpb25hbDxQcm90b3R5cGVDaGFpbkNhY2hpbmdTdGF0dXM+
IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
IGJhc2UsIEpTT2JqZWN0KiB0YXJnZXQpOwotT3B0aW9uYWw8UHJvdG90eXBlQ2hhaW5DYWNoaW5n
U3RhdHVzPiBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiBiYXNlLCBKU09iamVjdCogdGFyZ2V0KTsKK09wdGlvbmFsPFByb3RvdHlwZUNo
YWluQ2FjaGluZ1N0YXR1cz4gcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogYmFzZSwgY29uc3QgUHJvcGVydHlTbG90Jik7CitPcHRpb25hbDxQcm90b3R5cGVD
aGFpbkNhY2hpbmdTdGF0dXM+IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqIGJhc2UsIEpTT2JqZWN0KiB0YXJnZXQpOworT3B0aW9uYWw8UHJvdG90eXBlQ2hh
aW5DYWNoaW5nU3RhdHVzPiBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiBiYXNlLCBKU09iamVjdCogdGFyZ2V0KTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDI1MzU3
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4MCw2ICsyODAsMTUgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hl
R2V0QnkoSgogCiAgICAgICAgICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBzbG90LmlzVW5z
ZXQoKSA/IGludmFsaWRPZmZzZXQgOiBzbG90LmNhY2hlZE9mZnNldCgpOwogCisgICAgICAgICAg
ICBpZiAoc2xvdC5pc0N1c3RvbSgpICYmIHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUpIHsK
KyAgICAgICAgICAgICAgICAvLyBUbyBjYWNoZSBzZWxmIGN1c3RvbXMsIHdlIG11c3QgZGlzYWxs
b3cgZGljdGlvbmFyaWVzIGJlY2F1c2Ugd2UKKyAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGJl
IGluZm9ybWVkIGlmIHRoZSBjdXN0b20gZ29lcyBhd2F5IHNpbmNlIHdlIGNhY2hlIHRoZQorICAg
ICAgICAgICAgICAgIC8vIGNvbnN0YW50IGZ1bmN0aW9uIHBvaW50ZXIuCisKKyAgICAgICAgICAg
ICAgICBpZiAoIXByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBzbG90LnNsb3RC
YXNlKCksIHNsb3Quc2xvdEJhc2UoKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaXZl
VXBPbkNhY2hlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAoc2xvdC5pc1Vuc2V0
KCkgfHwgc2xvdC5zbG90QmFzZSgpICE9IGJhc2VWYWx1ZSkgewogICAgICAgICAgICAgICAgIGlm
IChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hlOwpAQCAtMjk3LDcgKzMwNiw3IEBA
IHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5KEoKICAgICAgICAgICAgICAg
ICAvLyBJZiBhIGtpbmQgaXMgR2V0QnlLaW5kOjpEaXJlY3QsIHdlIGRvIG5vdCBuZWVkIHRvIGlu
dmVzdGlnYXRlIHByb3RvdHlwZSBjaGFpbnMgZnVydGhlci4KICAgICAgICAgICAgICAgICAvLyBD
YWNoZWFiaWxpdHkganVzdCBkZXBlbmRzIG9uIHRoZSBoZWFkIHN0cnVjdHVyZS4KICAgICAgICAg
ICAgICAgICBpZiAoa2luZCAhPSBHZXRCeUtpbmQ6OkRpcmVjdCkgewotICAgICAgICAgICAgICAg
ICAgICBhdXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhn
bG9iYWxPYmplY3QsIGJhc2VDZWxsLCBzbG90KTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBj
YWNoZVN0YXR1cyA9IHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2Vs
bCwgc2xvdCk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghY2FjaGVTdGF0dXMpCiAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKIApAQCAtNjA4LDcgKzYxNyw3
IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZVB1dEJ5SUQKICAgICAgICAgICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UG9seVByb3RvQWNjZXNzQ2hhaW4+IHByb3RvdHlwZUFjY2Vz
c0NoYWluOwogICAgICAgICAgICAgICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRp
dGlvblNldDsKICAgICAgICAgICAgICAgICBpZiAocHV0S2luZCA9PSBOb3REaXJlY3QpIHsKLSAg
ICAgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVQcm90b3R5cGVDaGFp
bkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgbnVsbHB0cik7CisgICAgICAgICAg
ICAgICAgICAgIGF1dG8gY2FjaGVTdGF0dXMgPSBwcmVwYXJlQ2hhaW5Gb3JDYWNoaW5nKGdsb2Jh
bE9iamVjdCwgYmFzZUNlbGwsIG51bGxwdHIpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWNh
Y2hlU3RhdHVzKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpdmVVcE9uQ2FjaGU7
CiAKQEAgLTYzMiwxMSArNjQxLDE0IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNo
ZVB1dEJ5SUQKICAgICAgICAgICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25k
aXRpb25TZXQ7CiAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vz
c0NoYWluPiBwcm90b3R5cGVBY2Nlc3NDaGFpbjsKIAotICAgICAgICAgICAgICAgIGlmIChzbG90
LmJhc2UoKSAhPSBiYXNlVmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0
YXR1cyA9IHByZXBhcmVQcm90b3R5cGVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNl
Q2VsbCwgc2xvdC5iYXNlKCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWNhY2hlU3RhdHVz
KQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpdmVVcE9uQ2FjaGU7CisgICAgICAg
ICAgICAgICAgLy8gV2UgbmVlZCB0byBkbyB0aGlzIGV2ZW4gaWYgd2UncmUgYSBzZWxmIGN1c3Rv
bSwgc2luY2Ugd2UgbXVzdCBkaXNhbGxvdyBkaWN0aW9uYXJpZXMKKyAgICAgICAgICAgICAgICAv
LyBiZWNhdXNlIHdlIG5lZWQgdG8gYmUgaW5mb3JtZWQgaWYgdGhlIGN1c3RvbSBnb2VzIGF3YXkg
c2luY2Ugd2UgY2FjaGUgdGhlIGNvbnN0YW50CisgICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24g
cG9pbnRlci4KKyAgICAgICAgICAgICAgICBhdXRvIGNhY2hlU3RhdHVzID0gcHJlcGFyZUNoYWlu
Rm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2VDZWxsLCBzbG90LmJhc2UoKSk7CisgICAgICAg
ICAgICAgICAgaWYgKCFjYWNoZVN0YXR1cykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdp
dmVVcE9uQ2FjaGU7CiAKKyAgICAgICAgICAgICAgICBpZiAoc2xvdC5iYXNlKCkgIT0gYmFzZVZh
bHVlKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZVN0YXR1cy0+dXNlc1BvbHlQcm90
bykgewogICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG90eXBlQWNjZXNzQ2hhaW4gPSBQb2x5
UHJvdG9BY2Nlc3NDaGFpbjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QuYmFz
ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvdG90eXBlQWNjZXNzQ2hhaW4p
CkBAIC02NTksNyArNjcxLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0
QnlJRAogICAgICAgICAgICAgICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IHNsb3QuY2FjaGVk
T2Zmc2V0KCk7CiAKICAgICAgICAgICAgICAgICBpZiAoc2xvdC5iYXNlKCkgIT0gYmFzZVZhbHVl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gY2FjaGVTdGF0dXMgPSBwcmVwYXJlUHJvdG90
eXBlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QuYmFzZSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVDaGFpbkZvckNh
Y2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xvdC5iYXNlKCkpOwogICAgICAgICAgICAg
ICAgICAgICBpZiAoIWNhY2hlU3RhdHVzKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEdpdmVVcE9uQ2FjaGU7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZVN0YXR1cy0+Zmxh
dHRlbmVkRGljdGlvbmFyeSkKQEAgLTc2MSw3ICs3NzMsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVB
Y3Rpb24gdHJ5Q2FjaGVJbkJ5SUQoCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChz
bG90LnNsb3RCYXNlKCkgIT0gYmFzZSkgewotICAgICAgICAgICAgICAgIGF1dG8gY2FjaGVTdGF0
dXMgPSBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgYmFzZSwg
c2xvdCk7CisgICAgICAgICAgICAgICAgYXV0byBjYWNoZVN0YXR1cyA9IHByZXBhcmVDaGFpbkZv
ckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlLCBzbG90KTsKICAgICAgICAgICAgICAgICBpZiAo
IWNhY2hlU3RhdHVzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsK
ICAgICAgICAgICAgICAgICBpZiAoY2FjaGVTdGF0dXMtPmZsYXR0ZW5lZERpY3Rpb25hcnkpCkBA
IC03ODIsNyArNzk0LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5CeUlE
KAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGF1dG8gY2FjaGVTdGF0dXMgPSBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNo
aW5nKGdsb2JhbE9iamVjdCwgYmFzZSwgbnVsbHB0cik7CisgICAgICAgICAgICBhdXRvIGNhY2hl
U3RhdHVzID0gcHJlcGFyZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2UsIG51bGxw
dHIpOwogICAgICAgICAgICAgaWYgKCFjYWNoZVN0YXR1cykKICAgICAgICAgICAgICAgICByZXR1
cm4gR2l2ZVVwT25DYWNoZTsKIApAQCAtODU0LDcgKzg2Niw3IEBAIHN0YXRpYyBJbmxpbmVDYWNo
ZUFjdGlvbiB0cnlDYWNoZUluc3RhbmMKICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RydWN0dXJl
LT5wcm90b3R5cGVRdWVyaWVzQXJlQ2FjaGVhYmxlKCkpIHsKICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogVGVhY2ggdGhpcyB0byBkbyBwb2x5IHByb3RvLgogICAgICAgICAgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU2NjMKLSAgICAgICAgICAg
ICAgICBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKGdsb2JhbE9iamVjdCwgdmFsdWUs
IHdhc0ZvdW5kID8gcHJvdG90eXBlIDogbnVsbHB0cik7CisgICAgICAgICAgICAgICAgcHJlcGFy
ZUNoYWluRm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIHZhbHVlLCB3YXNGb3VuZCA/IHByb3RvdHlw
ZSA6IG51bGxwdHIpOwogICAgICAgICAgICAgICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
IGNvbmRpdGlvblNldCA9IGdlbmVyYXRlQ29uZGl0aW9uc0Zvckluc3RhbmNlT2YoCiAgICAgICAg
ICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBwcm90
b3R5cGUsIHdhc0ZvdW5kKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyNTM1NzQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTYs
NyArNzE2LDcgQEAgc3RhdGljIHZvaWQgc2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUoSgogICAg
ICAgICBzdHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKHZtLCBqc0Nhc3Q8SlNP
YmplY3QqPihiYXNlQ2VsbCkpOwogICAgIH0KIAotICAgIHByZXBhcmVQcm90b3R5cGVDaGFpbkZv
ckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBiYXNlQ2VsbCwgc2xvdCk7CisgICAgcHJlcGFyZUNoYWlu
Rm9yQ2FjaGluZyhnbG9iYWxPYmplY3QsIGJhc2VDZWxsLCBzbG90KTsKIAogICAgIE9iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRpdGlvbnM7CiAgICAgaWYgKHNsb3QuaXNVbnNldCgpKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJh
cmVEYXRhLmNwcAkocmV2aXNpb24gMjUzNTc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsMTEgKzEw
NywxMSBAQCB2b2lkIFN0cnVjdHVyZVJhcmVEYXRhOjpzZXRPYmplY3RUb1N0cmluCiAKICAgICAg
ICAgLy8gVGhpcyB3aWxsIG5vdCBjcmVhdGUgYSBjb25kaXRpb24gZm9yIHRoZSBjdXJyZW50IHN0
cnVjdHVyZSBidXQgdGhhdCBpcyBnb29kIGJlY2F1c2Ugd2Uga25vdyB0aGUgU3ltYm9sLnRvU3Ry
aW5nVGFnCiAgICAgICAgIC8vIGlzIG5vdCBvbiB0aGUgb3duU3RydWN0dXJlIHNvIHdlIHdpbGwg
dHJhbnNpc2l0aW9uIGlmIG9uZSBpcyBhZGRlZCBhbmQgdGhpcyBjYWNoZSB3aWxsIG5vIGxvbmdl
ciBiZSB1c2VkLgotICAgICAgICBwcmVwYXJlUHJvdG90eXBlQ2hhaW5Gb3JDYWNoaW5nKGdsb2Jh
bE9iamVjdCwgb3duU3RydWN0dXJlLCB0b1N0cmluZ1RhZ1N5bWJvbFNsb3Quc2xvdEJhc2UoKSk7
CisgICAgICAgIHByZXBhcmVDaGFpbkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBvd25TdHJ1Y3R1
cmUsIHRvU3RyaW5nVGFnU3ltYm9sU2xvdC5zbG90QmFzZSgpKTsKICAgICAgICAgY29uZGl0aW9u
U2V0ID0gZ2VuZXJhdGVDb25kaXRpb25zRm9yUHJvdG90eXBlUHJvcGVydHlIaXQodm0sIHRoaXMs
IGdsb2JhbE9iamVjdCwgb3duU3RydWN0dXJlLCB0b1N0cmluZ1RhZ1N5bWJvbFNsb3Quc2xvdEJh
c2UoKSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wuaW1wbCgpKTsKICAgICAg
ICAgQVNTRVJUKCFjb25kaXRpb25TZXQuaXNWYWxpZCgpIHx8IGNvbmRpdGlvblNldC5oYXNPbmVT
bG90QmFzZUNvbmRpdGlvbigpKTsKICAgICB9IGVsc2UgaWYgKHRvU3RyaW5nVGFnU3ltYm9sU2xv
dC5pc1Vuc2V0KCkpIHsKLSAgICAgICAgcHJlcGFyZVByb3RvdHlwZUNoYWluRm9yQ2FjaGluZyhn
bG9iYWxPYmplY3QsIG93blN0cnVjdHVyZSwgbnVsbHB0cik7CisgICAgICAgIHByZXBhcmVDaGFp
bkZvckNhY2hpbmcoZ2xvYmFsT2JqZWN0LCBvd25TdHJ1Y3R1cmUsIG51bGxwdHIpOwogICAgICAg
ICBjb25kaXRpb25TZXQgPSBnZW5lcmF0ZUNvbmRpdGlvbnNGb3JQcm9wZXJ0eU1pc3Modm0sIHRo
aXMsIGdsb2JhbE9iamVjdCwgb3duU3RydWN0dXJlLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmlu
Z1RhZ1N5bWJvbC5pbXBsKCkpOwogICAgIH0gZWxzZQogICAgICAgICByZXR1cm47CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTM1NzQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMi0xOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KKworICAgICAgICBEb24ndCBjYWNoZSBzZWxmIGN1c3RvbXMgb24gZGljdGlvbmFy
aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU0
NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDc1NTQ1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE1hcmsgTGFtLgorCisgICAgICAgICoganMvZG9tL2N1c3RvbS1mdW5jdGlvbi1zaG91bGQt
bm90LWNhY2hlLWFzLWRpY3Rpb25hcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vY3VzdG9tLWZ1bmN0aW9uLXNob3VsZC1ub3QtY2FjaGUtYXMtZGljdGlvbmFyeS5odG1s
OiBBZGRlZC4KKwogMjAxOS0xMi0xNiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQ29uc2lkZXIgdG9wLWxldmVsIGNvbnRleHQgd2hvc2Ugb3JpZ2luIGlzIHVu
aXF1ZSBhcyBpbnNlY3VyZQpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2N1c3RvbS1mdW5jdGlv
bi1zaG91bGQtbm90LWNhY2hlLWFzLWRpY3Rpb25hcnktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL2RvbS9jdXN0b20tZnVuY3Rpb24tc2hvdWxkLW5vdC1jYWNoZS1h
cy1kaWN0aW9uYXJ5LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vY3VzdG9tLWZ1bmN0aW9uLXNob3VsZC1ub3QtY2FjaGUtYXMtZGljdGlvbmFyeS1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitQQVNTIE92ZXJyb2RlIFhN
TEh0dHBSZXF1ZXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2N1c3RvbS1mdW5jdGlvbi1zaG91bGQt
bm90LWNhY2hlLWFzLWRpY3Rpb25hcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9kb20vY3VzdG9tLWZ1bmN0aW9uLXNob3VsZC1ub3QtY2FjaGUtYXMtZGljdGlvbmFyeS5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9jdXN0b20tZnVuY3Rpb24tc2hv
dWxkLW5vdC1jYWNoZS1hcy1kaWN0aW9uYXJ5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgbGV0IGZh
a2VYSFJDcmVhdGVkID0gZmFsc2U7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVYSFIoKSB7CisgICAg
ICAgIGxldCB4aHIgPSBuZXcgd2luZG93LlhNTEh0dHBSZXF1ZXN0KCk7CisgICAgfQorCisgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKyAgICAgICAgY3JlYXRlWEhSKCk7Cisg
ICAgfQorCisgICAgLy8gT3ZlcndyaXRlIFhNTEh0dHBSZXF1ZXN0CisgICAgd2luZG93LlhNTEh0
dHBSZXF1ZXN0ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGZha2VYSFJDcmVhdGVkID0gdHJ1ZTsK
KyAgICB9CisKKyAgICBjcmVhdGVYSFIoKTsKKworICAgIGlmIChmYWtlWEhSQ3JlYXRlZCkKKyAg
ICAgICAgdGVzdFBhc3NlZCgiT3ZlcnJvZGUgWE1MSHR0cFJlcXVlc3QiKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RGYWlsZWQoIkRpZCBub3Qgb3ZlcnJpZGUgWE1MSHR0cFJlcXVlc3QiKTsKK30p
KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>