<?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>100313</bug_id>
          
          <creation_ts>2012-10-24 17:33:50 -0700</creation_ts>
          <short_desc>[V8] DOMData is no longer needed</short_desc>
          <delta_ts>2012-10-24 23:07:13 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100175</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>750242</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-24 17:33:50 -0700</bug_when>
    <thetext>[V8] DOMData is no longer needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750254</commentid>
    <comment_count>1</comment_count>
      <attachid>170524</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-24 17:46:32 -0700</bug_when>
    <thetext>Created attachment 170524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750269</commentid>
    <comment_count>2</comment_count>
      <attachid>170524</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-24 18:17:26 -0700</bug_when>
    <thetext>Comment on attachment 170524
Patch

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

LGTM.

&gt; Source/WebCore/bindings/v8/V8DOMMap.cpp:91
&gt; +    DOMDataStore* store = DOMDataStore::from(v8::Isolate::GetCurrent());

This pattern is confusing to me.  It&apos;s unclear who owns the object.  Perhaps sharedInstanceFor?  or lookupForInstance?  or even just changing it back to a reference makes it clear that the caller isn&apos;t responsible for the memory (or handling null!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750357</commentid>
    <comment_count>3</comment_count>
      <attachid>170548</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-24 22:03:07 -0700</bug_when>
    <thetext>Created attachment 170548
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750397</commentid>
    <comment_count>4</comment_count>
      <attachid>170548</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 23:07:09 -0700</bug_when>
    <thetext>Comment on attachment 170548
Patch for landing

Clearing flags on attachment: 170548

Committed r132447: &lt;http://trac.webkit.org/changeset/132447&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750398</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 23:07:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170524</attachid>
            <date>2012-10-24 17:46:32 -0700</date>
            <delta_ts>2012-10-24 22:03:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100313-20121024174507.patch</filename>
            <type>text/plain</type>
            <size>16591</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE2ZmE3YjBhZGFkYmYx
OWQzYjUyNmRjZWY3NmRhYWY2MDkyMDk2Yy4uODczOWZiNGNkOGYwZjhkYTM5MThhMjdlYWI2Yjll
YWMyOGQzNzA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEyLTEwLTI0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBET01EYXRhIGlzIG5v
IGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMDMxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgY2xhc3Mgc2VydmVzIG5vIHB1cnBvc2UgYW55bW9yZSBhbmQgY2FuIGJlIGRl
bGV0ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3Mvdjgv
RE9NRGF0YS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvRE9NRGF0YS5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01EYXRhU3RvcmU6OmZyb20pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RP
TURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01EYXRhU3RvcmUp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpuZXV0ZXJCaW5kaW5nKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERP
TU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRET01Ob2RlTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6OmdldEFjdGl2ZURPTU5vZGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RE9NT2Jq
ZWN0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEFjdGl2ZURPTU9iamVjdE1hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpyZW1vdmVBbGxET01PYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OnZp
c2l0QWN0aXZlRE9NTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6dmlzaXRET01PYmplY3RzKToK
KyAgICAgICAgKFdlYkNvcmU6OnZpc2l0QWN0aXZlRE9NT2JqZWN0cyk6CisKKzIwMTItMTAtMjQg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBbVjhdIEFic3RyYWN0
V2Vha1JlZmVyZW5jZU1hcCBpcyB1bm5lY2Vzc2FyaWx5IGdlbmVyYWwgYW5kIGNvbXBsZXgKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDE3NQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggNTRkNzc3Y2U2YjBhODJlYzk5OGU3Y2Q1NjQwMmFhYWNjZjY5OTg5
MS4uOTQ4MGQyZTk1MzYyNzk4OWU5ZmNjNWNmMTc4YTlhYWM5NmZiMjJmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMjIyNyw4ICsyMjI3LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9BcnJh
eVZhbHVlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5oJywKLSAgICAgICAgICAgICdi
aW5kaW5ncy92OC9ET01EYXRhLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NRGF0
YS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvRE9NVHJhbnNhY3Rpb24uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RPTURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0
YS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4NjQxZWM4ZGFiOWUxNjcxODNj
ZTcyOTY3NmEyYjBjMzUzZWYyZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YS5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRP
TURhdGEuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOERPTVdpbmRvd1No
ZWxsLmgiCi0jaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUgIldl
YkdMVW5pZm9ybUxvY2F0aW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRE9NRGF0YVN0
b3JlJiBET01EYXRhOjpnZXRDdXJyZW50U3RvcmUodjg6Oklzb2xhdGUqIGlzb2xhdGUpCi17Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdGF0aWNET01EYXRhU3RvcmUsIGRlZmF1bHRTdG9yZSwg
KCkpOwotICAgIGlmIChVTkxJS0VMWSghaXNvbGF0ZSkpCi0gICAgICAgIGlzb2xhdGUgPSB2ODo6
SXNvbGF0ZTo6R2V0Q3VycmVudCgpOwotICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBl
cklzb2xhdGVEYXRhOjpmcm9tKGlzb2xhdGUpOwotICAgIGlmIChVTkxJS0VMWShkYXRhLT5kb21E
YXRhU3RvcmUoKSAhPSAwKSkKLSAgICAgICAgcmV0dXJuICpkYXRhLT5kb21EYXRhU3RvcmUoKTsK
LSAgICBWOERPTVdpbmRvd1NoZWxsKiBjb250ZXh0ID0gVjhET01XaW5kb3dTaGVsbDo6Z2V0RW50
ZXJlZCgpOwotICAgIGlmIChVTkxJS0VMWShjb250ZXh0ICE9IDApKQotICAgICAgICByZXR1cm4g
KmNvbnRleHQtPndvcmxkKCktPmRvbURhdGFTdG9yZSgpOwotICAgIHJldHVybiBkZWZhdWx0U3Rv
cmU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RPTURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RP
TURhdGEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU1NGY3MjY3M2FlM2JiY2M5
OGVkOTI2OTMwM2ZiZjY0YzI1ZDFlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBET01EYXRhX2gKLSNkZWZpbmUgRE9NRGF0
YV9oCi0KLSNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKLSNpbmNsdWRlICJTdGF0aWNET01EYXRh
U3RvcmUuaCIKLSNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi0gICAgLy8gRE9NRGF0YQotICAgIC8vCi0gICAgLy8gRE9NRGF0YSByZXByZXNlbnRzIHRo
ZSBhbGwgdGhlIERPTSB3cmFwcGVycyBmb3IgYSBnaXZlbiB0aHJlYWQuICBJbgotICAgIC8vIHBh
cnRpY3VsYXIsIERPTURhdGEgaG9sZHMgd3JhcHBlcnMgZm9yIGFsbCB0aGUgaXNvbGF0ZWQgd29y
bGRzIGluIHRoZQotICAgIC8vIHRocmVhZC4gIFRoZSBET01EYXRhIGZvciB0aGUgbWFpbiB0aHJl
YWQgYW5kIHRoZSBET01EYXRhIGZvciBjaGlsZCB0aHJlYWRzCi0gICAgLy8gdXNlIGRpZmZlcmVu
dCBzdWJjbGFzc2VzLgotICAgIC8vCi0gICAgY2xhc3MgRE9NRGF0YSB7Ci0gICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgRE9NRGF0YVN0b3JlJiBnZXRDdXJyZW50U3RvcmUodjg6Oklzb2xhdGUq
ID0gMCk7Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgRE9NRGF0YSgpOwotICAgIH07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERPTURhdGFfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAKaW5kZXggYzIxMjc0OGE4YjQ2YzYyZWQ5YTcx
MjdmNzRkZjE5MGQ0Yjg5ZGFhOC4uMGQ4N2YwOWZlYmI4NjJhMDlhMmZmMmIzOGQ1ZTk0YmVjZGY0
ODdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwCkBA
IC0zMSw2MCArMzEsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01EYXRh
U3RvcmUuaCIKIAotI2luY2x1ZGUgIkRPTURhdGEuaCIKKyNpbmNsdWRlICJTdGF0aWNET01EYXRh
U3RvcmUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBET00gYmluZGluZyBhbGdvcml0aG06Ci0vLwotLy8gVGhlcmUg
YXJlIHR3byBraW5kcyBvZiBET00gb2JqZWN0czoKLS8vIDEuIERPTSB0cmVlIG5vZGVzLCBzdWNo
IGFzIERvY3VtZW50LCBIVE1MRWxlbWVudCwgLi4uCi0vLyAgICB0aGVyZSBjbGFzc2VzIGltcGxl
bWVudCBUcmVlU2hhcmVkPFQ+IGludGVyZmFjZTsKLS8vIDIuIE5vbi1ub2RlIERPTSBvYmplY3Rz
LCBzdWNoIGFzIENTU1J1bGUsIExvY2F0aW9uLCBldGMuCi0vLyAgICB0aGVzZSBjbGFzc2VzIGlt
cGxlbWVudCBhIHJlZi1jb3VudGVkIHNjaGVtZS4KLS8vCi0vLyBBIERPTSBvYmplY3QgbWF5IGhh
dmUgYSBKUyB3cmFwcGVyIG9iamVjdC4gSWYgYSB0cmVlIG5vZGUKLS8vIGlzIGFsaXZlLCBpdHMg
SlMgd3JhcHBlciBtdXN0IGJlIGtlcHQgYWxpdmUgZXZlbiBpdCBpcyBub3QKLS8vIHJlYWNoYWJs
ZSBmcm9tIEpTIHJvb3RzLgotLy8gSG93ZXZlciwgSlMgd3JhcHBlcnMgb2Ygbm9uLW5vZGUgb2Jq
ZWN0cyBjYW4gZ28gYXdheSBpZgotLy8gbm90IHJlYWNoYWJsZSBmcm9tIG90aGVyIEpTIG9iamVj
dHMuIEl0IHdvcmtzIGxpa2UgYSBjYWNoZS4KLS8vCi0vLyBET00gb2JqZWN0cyBhcmUgcmVmLWNv
dW50ZWQsIGFuZCBKUyBvYmplY3RzIGFyZSB0cmFjZWQgZnJvbQotLy8gYSBzZXQgb2Ygcm9vdCBv
YmplY3RzLiBUaGV5IGNhbiBjcmVhdGUgYSBjeWNsZS4gVG8gYnJlYWsKLS8vIGN5Y2xlcywgd2Ug
ZG8gZm9sbG93aW5nOgotLy8gICBIYW5kbGVzIGZyb20gRE9NIG9iamVjdHMgdG8gSlMgd3JhcHBl
cnMgYXJlIGFsd2F5cyB3ZWFrLAotLy8gc28gSlMgd3JhcHBlcnMgb2Ygbm9uLW5vZGUgb2JqZWN0
IGNhbm5vdCBjcmVhdGUgYSBjeWNsZS4KLS8vICAgQmVmb3JlIHN0YXJ0aW5nIGEgZ2xvYmFsIEdD
LCB3ZSBjcmVhdGUgYSB2aXJ0dWFsIGNvbm5lY3Rpb24KLS8vIGJldHdlZW4gbm9kZXMgaW4gdGhl
IHNhbWUgdHJlZSBpbiB0aGUgSlMgaGVhcC4gSWYgdGhlIHdyYXBwZXIKLS8vIG9mIG9uZSBub2Rl
IGluIGEgdHJlZSBpcyBhbGl2ZSwgd3JhcHBlcnMgb2YgYWxsIG5vZGVzIGluCi0vLyB0aGUgc2Ft
ZSB0cmVlIGFyZSBjb25zaWRlcmVkIGFsaXZlLiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcKLS8v
IG9iamVjdCBncm91cHMgaW4gR0MgcHJvbG9ndWUgY2FsbGJhY2tzLiBUaGUgbWFyay1jb21wYWN0
Ci0vLyBjb2xsZWN0b3Igd2lsbCByZW1vdmUgdGhlc2UgZ3JvdXBzIGFmdGVyIGVhY2ggR0MuCi0v
LwotLy8gRE9NIG9iamVjdHMgc2hvdWxkIGJlIGRlcmVmLWVkIGZyb20gdGhlIG93bmluZyB0aHJl
YWQsIG5vdCB0aGUgR0MgdGhyZWFkCi0vLyB0aGF0IGRvZXMgbm90IG93biB0aGVtLiBJbiBWOCwg
R0MgY2FuIGtpY2sgaW4gZnJvbSBhbnkgdGhyZWFkLiBUbyBlbnN1cmUKLS8vIHRoYXQgRE9NIG9i
amVjdHMgYXJlIGFsd2F5cyBkZXJlZi1lZCBmcm9tIHRoZSBvd25pbmcgdGhyZWFkIHdoZW4gcnVu
bmluZwotLy8gVjggaW4gbXVsdGktdGhyZWFkaW5nIGVudmlyb25tZW50LCB3ZSBkbyBmb2xsb3dp
bmc6Ci0vLyAxLiBNYWludGFpbiBhIHRocmVhZCBzcGVjaWZpYyBET00gd3JhcHBlciBtYXAgZm9y
IGVhY2ggb2JqZWN0IG1hcC4KLS8vICAgIChXZSdyZSB1c2luZyBUTFMgc3VwcG9ydCBmcm9tIFdU
RiBpbnN0ZWFkIG9mIGJhc2Ugc2luY2UgVjhCaW5kaW5ncwotLy8gICAgIGRvZXMgbm90IGRlcGVu
ZCBvbiBiYXNlLiBXZSBmdXJ0aGVyIGFzc3VtZSB0aGF0IGFsbCBjaGlsZCB0aHJlYWRzCi0vLyAg
ICAgcnVubmluZyBWOCBpbnN0YW5jZXMgYXJlIGNyZWF0ZWQgYnkgV1RGIGFuZCB0aHVzIGEgZGVz
dHJ1Y3RvciB3aWxsCi0vLyAgICAgYmUgY2FsbGVkIHRvIGNsZWFuIHVwIGFsbCB0aHJlYWQgc3Bl
Y2lmaWMgZGF0YS4pCi0vLyAyLiBXaGVuIEdDIGhhcHBlbnM6Ci0vLyAgICAyLjEuIElmIHRoZSBk
ZWFkIG9iamVjdCBpcyBpbiBHQyB0aHJlYWQncyBtYXAsIHJlbW92ZSB0aGUgSlMgcmVmZXJlbmNl
Ci0vLyAgICAgICAgIGFuZCBkZXJlZiB0aGUgRE9NIG9iamVjdC4KLS8vICAgIDIuMi4gT3RoZXJ3
aXNlLCBnbyB0aHJvdWdoIGFsbCB0aHJlYWQgbWFwcyB0byBmaW5kIHRoZSBvd25pbmcgdGhyZWFk
LgotLy8gICAgICAgICBSZW1vdmUgdGhlIEpTIHJlZmVyZW5jZSBmcm9tIHRoZSBvd25pbmcgdGhy
ZWFkJ3MgbWFwIGFuZCBtb3ZlIHRoZQotLy8gICAgICAgICBET00gb2JqZWN0IHRvIGEgZGVsYXll
ZCBxdWV1ZS4gUG9zdCBhIHRhc2sgdG8gdGhlIG93bmluZyB0aHJlYWQKLS8vICAgICAgICAgdG8g
aGF2ZSBpdCBkZXJlZi1lZCBmcm9tIHRoZSBvd25pbmcgdGhyZWFkIGF0IGxhdGVyIHRpbWUuCi0v
LyAzLiBXaGVuIGEgdGhyZWFkIGlzIHRlYXJpbmcgZG93biwgaW52b2tlIGEgY2xlYW51cCByb3V0
aW5lIHRvIGdvIHRocm91Z2gKLS8vICAgIGFsbCBvYmplY3RzIGluIHRoZSBkZWxheWVkIHF1ZXVl
IGFuZCB0aGUgdGhyZWFkIG1hcCBhbmQgZGVyZWYgYWxsIG9mCi0vLyAgICB0aGVtLgotCi0KIERP
TURhdGFTdG9yZTo6RE9NRGF0YVN0b3JlKCkKICAgICA6IG1fZG9tTm9kZU1hcCgwKQogICAgICwg
bV9hY3RpdmVEb21Ob2RlTWFwKDApCkBAIC05NywyNiArNTAsMTYgQEAgRE9NRGF0YVN0b3JlOjp+
RE9NRGF0YVN0b3JlKCkKIHsKIH0KIAotRE9NRGF0YUxpc3QmIERPTURhdGFTdG9yZTo6YWxsU3Rv
cmVzKCkKLXsKLSAgICByZXR1cm4gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5hbGxTdG9y
ZXMoKTsKLX0KLQotdm9pZCogRE9NRGF0YVN0b3JlOjpnZXRET01XcmFwcGVyTWFwKERPTVdyYXBw
ZXJNYXBUeXBlIHR5cGUpCitET01EYXRhU3RvcmUqIERPTURhdGFTdG9yZTo6ZnJvbSh2ODo6SXNv
bGF0ZSogaXNvbGF0ZSkKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIERPTU5vZGVN
YXA6Ci0gICAgICAgIHJldHVybiBtX2RvbU5vZGVNYXA7Ci0gICAgY2FzZSBBY3RpdmVET01Ob2Rl
TWFwOgotICAgICAgICByZXR1cm4gbV9hY3RpdmVEb21Ob2RlTWFwOwotICAgIGNhc2UgRE9NT2Jq
ZWN0TWFwOgotICAgICAgICByZXR1cm4gbV9kb21PYmplY3RNYXA7Ci0gICAgY2FzZSBBY3RpdmVE
T01PYmplY3RNYXA6Ci0gICAgICAgIHJldHVybiBtX2FjdGl2ZURvbU9iamVjdE1hcDsKLSAgICB9
Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0YXRpY0RPTURhdGFTdG9yZSwgZGVmYXVsdFN0b3JlLCAoKSk7CisgICAg
VjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmZyb20oaXNvbGF0ZSk7
CisgICAgaWYgKFVOTElLRUxZKCEhZGF0YS0+ZG9tRGF0YVN0b3JlKCkpKQorICAgICAgICByZXR1
cm4gZGF0YS0+ZG9tRGF0YVN0b3JlKCk7CisgICAgVjhET01XaW5kb3dTaGVsbCogY29udGV4dCA9
IFY4RE9NV2luZG93U2hlbGw6OmdldEVudGVyZWQoKTsKKyAgICBpZiAoVU5MSUtFTFkoISFjb250
ZXh0KSkKKyAgICAgICAgcmV0dXJuIGNvbnRleHQtPndvcmxkKCktPmRvbURhdGFTdG9yZSgpOwor
ICAgIHJldHVybiAmZGVmYXVsdFN0b3JlOwogfQogCiB2b2lkIERPTURhdGFTdG9yZTo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmgKaW5kZXggZTY3NmZlMGM0MzBi
YzRjOGE0YTU5NDcyZGM3NGVkZDBjMmJmNGQzZS4uNjc0ZmQ2ZWQ3ZTc1ZjYzM2ZmZmVhOWU4MmU0
Yjc3MjY3ODExNzUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9N
RGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3Jl
LmgKQEAgLTQ1LDEwICs0NSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNz
IERPTURhdGE7CiAgICAgY2xhc3MgRE9NRGF0YVN0b3JlOwogCi0gICAgdHlwZWRlZiBXVEY6OlZl
Y3RvcjxET01EYXRhU3RvcmUqPiBET01EYXRhTGlzdDsKKyAgICB0eXBlZGVmIFZlY3RvcjxET01E
YXRhU3RvcmUqPiBET01EYXRhTGlzdDsKIAogICAgIC8vIERPTURhdGFTdG9yZQogICAgIC8vCkBA
IC02MiwyMCArNjEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRE9NRGF0YVN0
b3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRE9NRGF0YVN0b3JlKTsKICAgICBw
dWJsaWM6Ci0gICAgICAgIGVudW0gRE9NV3JhcHBlck1hcFR5cGUgewotICAgICAgICAgICAgRE9N
Tm9kZU1hcCwKLSAgICAgICAgICAgIEFjdGl2ZURPTU5vZGVNYXAsCi0gICAgICAgICAgICBET01P
YmplY3RNYXAsCi0gICAgICAgICAgICBBY3RpdmVET01PYmplY3RNYXAsCi0gICAgICAgIH07Ci0K
LSAgICAgICAgRE9NRGF0YVN0b3JlKCk7CiAgICAgICAgIHZpcnR1YWwgfkRPTURhdGFTdG9yZSgp
OwogCi0gICAgICAgIC8vIEEgbGlzdCBvZiBhbGwgRE9NRGF0YVN0b3JlIG9iamVjdHMgaW4gdGhl
IGN1cnJlbnQgVjggaXNvbGF0ZS4gTm9ybWFsbHksIGVhY2ggV29ybGQgaGFzIGEgRE9NRGF0YVN0
b3JlLgotICAgICAgICBzdGF0aWMgRE9NRGF0YUxpc3QmIGFsbFN0b3JlcygpOwotCi0gICAgICAg
IHZvaWQqIGdldERPTVdyYXBwZXJNYXAoRE9NV3JhcHBlck1hcFR5cGUpOworICAgICAgICBzdGF0
aWMgRE9NRGF0YVN0b3JlKiBmcm9tKHY4OjpJc29sYXRlKik7CiAKICAgICAgICAgRE9NV3JhcHBl
ck1hcDxOb2RlPiYgZG9tTm9kZU1hcCgpIHsgcmV0dXJuICptX2RvbU5vZGVNYXA7IH0KICAgICAg
ICAgRE9NV3JhcHBlck1hcDxOb2RlPiYgYWN0aXZlRG9tTm9kZU1hcCgpIHsgcmV0dXJuICptX2Fj
dGl2ZURvbU5vZGVNYXA7IH0KQEAgLTg1LDYgKzczLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICBET01EYXRhU3RvcmUoKTsKKwogICAg
ICAgICBET01XcmFwcGVyTWFwPE5vZGU+KiBtX2RvbU5vZGVNYXA7CiAgICAgICAgIERPTVdyYXBw
ZXJNYXA8Tm9kZT4qIG1fYWN0aXZlRG9tTm9kZU1hcDsKICAgICAgICAgRE9NV3JhcHBlck1hcDx2
b2lkPiogbV9kb21PYmplY3RNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA0MTczMWMxNDJjZDg0ZTQ1NWRjOGI5
MmE1NjNlNjgzMjcyNGVkZGI3Li5kODQ4ZWY1MDRlNDk3MDQ5MjkwM2MyMmIxZmFiYjhkZjJjNzcw
MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKQEAgLTIyMDgsNyArMjIwOCw3IEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKCkKIAogc3RhdGljIHZvaWQgbmV1dGVyQmluZGluZyh2
b2lkKiBkb21PYmplY3QpIAogewotICAgIERPTURhdGFMaXN0JiBhbGxTdG9yZXMgPSBET01EYXRh
U3RvcmU6OmFsbFN0b3JlcygpOworICAgIERPTURhdGFMaXN0JiBhbGxTdG9yZXMgPSBWOFBlcklz
b2xhdGVEYXRhOjpjdXJyZW50KCktPmFsbFN0b3JlcygpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgYWxsU3RvcmVzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gb2JqID0gYWxsU3RvcmVzW2ldLT5kb21PYmplY3RNYXAoKS5nZXQoZG9tT2JqZWN0KTsK
ICAgICAgICAgaWYgKCFvYmouSXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01NYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01NYXAuY3BwCmluZGV4IDVlYjYzMGJlMWFkY2IwMDc0YWFkMDQzYjgyY2JkOWJmMzdiM2ExYzYu
LmNlYzdjM2VmNjMxOTkxYTIwODI2OTI5YzUxYTQ1YmUxMDRmMDZiZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOERPTU1hcC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgogCi0jaW5jbHVkZSAiRE9NRGF0YS5oIgog
I2luY2x1ZGUgIkRPTURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIlNjb3BlZERPTURhdGFTdG9yZS5o
IgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgpAQCAtNTksMzEgKzU4LDM5IEBAIE5vZGVXcmFwcGVy
VmlzaXRvcjo6fk5vZGVXcmFwcGVyVmlzaXRvcigpCiAKIERPTVdyYXBwZXJNYXA8Tm9kZT4mIGdl
dERPTU5vZGVNYXAodjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7Ci0gICAgcmV0dXJuIERPTURhdGE6
OmdldEN1cnJlbnRTdG9yZShpc29sYXRlKS5kb21Ob2RlTWFwKCk7CisgICAgaWYgKCFpc29sYXRl
KQorICAgICAgICBpc29sYXRlID0gdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKTsKKyAgICByZXR1
cm4gRE9NRGF0YVN0b3JlOjpmcm9tKGlzb2xhdGUpLT5kb21Ob2RlTWFwKCk7CiB9CiAKIERPTVdy
YXBwZXJNYXA8Tm9kZT4mIGdldEFjdGl2ZURPTU5vZGVNYXAodjg6Oklzb2xhdGUqIGlzb2xhdGUp
CiB7Ci0gICAgcmV0dXJuIERPTURhdGE6OmdldEN1cnJlbnRTdG9yZShpc29sYXRlKS5hY3RpdmVE
b21Ob2RlTWFwKCk7CisgICAgaWYgKCFpc29sYXRlKQorICAgICAgICBpc29sYXRlID0gdjg6Oklz
b2xhdGU6OkdldEN1cnJlbnQoKTsKKyAgICByZXR1cm4gRE9NRGF0YVN0b3JlOjpmcm9tKGlzb2xh
dGUpLT5hY3RpdmVEb21Ob2RlTWFwKCk7CiB9CiAKIERPTVdyYXBwZXJNYXA8dm9pZD4mIGdldERP
TU9iamVjdE1hcCh2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICByZXR1cm4gRE9NRGF0YTo6
Z2V0Q3VycmVudFN0b3JlKGlzb2xhdGUpLmRvbU9iamVjdE1hcCgpOworICAgIGlmICghaXNvbGF0
ZSkKKyAgICAgICAgaXNvbGF0ZSA9IHY4OjpJc29sYXRlOjpHZXRDdXJyZW50KCk7CisgICAgcmV0
dXJuIERPTURhdGFTdG9yZTo6ZnJvbShpc29sYXRlKS0+ZG9tT2JqZWN0TWFwKCk7CiB9CiAKIERP
TVdyYXBwZXJNYXA8dm9pZD4mIGdldEFjdGl2ZURPTU9iamVjdE1hcCh2ODo6SXNvbGF0ZSogaXNv
bGF0ZSkKIHsKLSAgICByZXR1cm4gRE9NRGF0YTo6Z2V0Q3VycmVudFN0b3JlKGlzb2xhdGUpLmFj
dGl2ZURvbU9iamVjdE1hcCgpOworICAgIGlmICghaXNvbGF0ZSkKKyAgICAgICAgaXNvbGF0ZSA9
IHY4OjpJc29sYXRlOjpHZXRDdXJyZW50KCk7CisgICAgcmV0dXJuIERPTURhdGFTdG9yZTo6ZnJv
bShpc29sYXRlKS0+YWN0aXZlRG9tT2JqZWN0TWFwKCk7CiB9CiAKIHZvaWQgcmVtb3ZlQWxsRE9N
T2JqZWN0cygpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgdjg6OkhhbmRs
ZVNjb3BlIHNjb3BlOwotICAgIERPTURhdGFTdG9yZSYgc3RvcmUgPSBET01EYXRhOjpnZXRDdXJy
ZW50U3RvcmUoKTsKLSAgICBzdG9yZS5kb21PYmplY3RNYXAoKS5jbGVhcigpOwotICAgIHN0b3Jl
LmFjdGl2ZURvbU9iamVjdE1hcCgpLmNsZWFyKCk7CisgICAgRE9NRGF0YVN0b3JlKiBzdG9yZSA9
IERPTURhdGFTdG9yZTo6ZnJvbSh2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKKyAgICBzdG9y
ZS0+ZG9tT2JqZWN0TWFwKCkuY2xlYXIoKTsKKyAgICBzdG9yZS0+YWN0aXZlRG9tT2JqZWN0TWFw
KCkuY2xlYXIoKTsKIH0KIAogdm9pZCB2aXNpdEFsbERPTU5vZGVzKE5vZGVXcmFwcGVyVmlzaXRv
ciogdmlzaXRvcikKQEAgLTExOSw3ICsxMjYsNyBAQCB2b2lkIHZpc2l0QWN0aXZlRE9NTm9kZXMo
RE9NV3JhcHBlclZpc2l0b3I8Tm9kZT4qIHZpc2l0b3IpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3Bl
IHNjb3BlOwogCi0gICAgRE9NRGF0YUxpc3QmIGxpc3QgPSBET01EYXRhU3RvcmU6OmFsbFN0b3Jl
cygpOworICAgIERPTURhdGFMaXN0JiBsaXN0ID0gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgp
LT5hbGxTdG9yZXMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgRE9NRGF0YVN0b3JlKiBzdG9yZSA9IGxpc3RbaV07CiAKQEAgLTEzMSw3
ICsxMzgsNyBAQCB2b2lkIHZpc2l0RE9NT2JqZWN0cyhET01XcmFwcGVyVmlzaXRvcjx2b2lkPiog
dmlzaXRvcikKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CiAKLSAgICBET01EYXRhTGlz
dCYgbGlzdCA9IERPTURhdGFTdG9yZTo6YWxsU3RvcmVzKCk7CisgICAgRE9NRGF0YUxpc3QmIGxp
c3QgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmFsbFN0b3JlcygpOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgewogICAgICAgICBET01EYXRhU3Rv
cmUqIHN0b3JlID0gbGlzdFtpXTsKIApAQCAtMTQzLDcgKzE1MCw3IEBAIHZvaWQgdmlzaXRBY3Rp
dmVET01PYmplY3RzKERPTVdyYXBwZXJWaXNpdG9yPHZvaWQ+KiB2aXNpdG9yKQogewogICAgIHY4
OjpIYW5kbGVTY29wZSBzY29wZTsKIAotICAgIERPTURhdGFMaXN0JiBsaXN0ID0gRE9NRGF0YVN0
b3JlOjphbGxTdG9yZXMoKTsKKyAgICBET01EYXRhTGlzdCYgbGlzdCA9IFY4UGVySXNvbGF0ZURh
dGE6OmN1cnJlbnQoKS0+YWxsU3RvcmVzKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0LnNpemUoKTsgKytpKSB7CiAgICAgICAgIERPTURhdGFTdG9yZSogc3RvcmUgPSBsaXN0W2ld
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170548</attachid>
            <date>2012-10-24 22:03:07 -0700</date>
            <delta_ts>2012-10-24 23:07:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100313-20121024220141.patch</filename>
            <type>text/plain</type>
            <size>16612</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGUwN2E5YmUwY2UzYzJk
M2M3MjBjMjkxZjZkYzZkOTA0MDcyOGEyZi4uNGJkNDBiOWVkZDBhOWJiZjJjZWUyZDIwOGJmYWMz
NjJjOGE4NDEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEyLTEwLTI0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBET01EYXRhIGlzIG5v
IGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMDMxMworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAg
ICAgIFRoaXMgY2xhc3Mgc2VydmVzIG5vIHB1cnBvc2UgYW55bW9yZSBhbmQgY2FuIGJlIGRlbGV0
ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3MvdjgvRE9N
RGF0YS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvRE9NRGF0YS5oOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01EYXRhU3RvcmU6OmN1cnJlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RP
TURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01EYXRhU3RvcmUp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpuZXV0ZXJCaW5kaW5nKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERP
TU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRET01Ob2RlTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6OmdldEFjdGl2ZURPTU5vZGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RE9NT2Jq
ZWN0TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEFjdGl2ZURPTU9iamVjdE1hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpyZW1vdmVBbGxET01PYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OnZp
c2l0QWN0aXZlRE9NTm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6dmlzaXRET01PYmplY3RzKToK
KyAgICAgICAgKFdlYkNvcmU6OnZpc2l0QWN0aXZlRE9NT2JqZWN0cyk6CisKKzIwMTItMTAtMjQg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBbVjhdIEFic3RyYWN0
V2Vha1JlZmVyZW5jZU1hcCBpcyB1bm5lY2Vzc2FyaWx5IGdlbmVyYWwgYW5kIGNvbXBsZXgKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDE3NQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMzRkMWJhNDllNTI4OGE2OTQ1M2QxYTA4YjZmNjRmODgzYTBkMDM4
OS4uMzM1Mzg2YzcxNjEzZmIzZjc3MjM5ZDQ4MTQyMmU1NjgzNDZlNmQ2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMjIyNyw4ICsyMjI3LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9BcnJh
eVZhbHVlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5oJywKLSAgICAgICAgICAgICdi
aW5kaW5ncy92OC9ET01EYXRhLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NRGF0
YS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvRE9NVHJhbnNhY3Rpb24uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RPTURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0
YS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4NjQxZWM4ZGFiOWUxNjcxODNj
ZTcyOTY3NmEyYjBjMzUzZWYyZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YS5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRP
TURhdGEuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOERPTVdpbmRvd1No
ZWxsLmgiCi0jaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUgIldl
YkdMVW5pZm9ybUxvY2F0aW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRE9NRGF0YVN0
b3JlJiBET01EYXRhOjpnZXRDdXJyZW50U3RvcmUodjg6Oklzb2xhdGUqIGlzb2xhdGUpCi17Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdGF0aWNET01EYXRhU3RvcmUsIGRlZmF1bHRTdG9yZSwg
KCkpOwotICAgIGlmIChVTkxJS0VMWSghaXNvbGF0ZSkpCi0gICAgICAgIGlzb2xhdGUgPSB2ODo6
SXNvbGF0ZTo6R2V0Q3VycmVudCgpOwotICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBl
cklzb2xhdGVEYXRhOjpmcm9tKGlzb2xhdGUpOwotICAgIGlmIChVTkxJS0VMWShkYXRhLT5kb21E
YXRhU3RvcmUoKSAhPSAwKSkKLSAgICAgICAgcmV0dXJuICpkYXRhLT5kb21EYXRhU3RvcmUoKTsK
LSAgICBWOERPTVdpbmRvd1NoZWxsKiBjb250ZXh0ID0gVjhET01XaW5kb3dTaGVsbDo6Z2V0RW50
ZXJlZCgpOwotICAgIGlmIChVTkxJS0VMWShjb250ZXh0ICE9IDApKQotICAgICAgICByZXR1cm4g
KmNvbnRleHQtPndvcmxkKCktPmRvbURhdGFTdG9yZSgpOwotICAgIHJldHVybiBkZWZhdWx0U3Rv
cmU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RPTURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RP
TURhdGEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU1NGY3MjY3M2FlM2JiY2M5
OGVkOTI2OTMwM2ZiZjY0YzI1ZDFlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBET01EYXRhX2gKLSNkZWZpbmUgRE9NRGF0
YV9oCi0KLSNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKLSNpbmNsdWRlICJTdGF0aWNET01EYXRh
U3RvcmUuaCIKLSNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi0gICAgLy8gRE9NRGF0YQotICAgIC8vCi0gICAgLy8gRE9NRGF0YSByZXByZXNlbnRzIHRo
ZSBhbGwgdGhlIERPTSB3cmFwcGVycyBmb3IgYSBnaXZlbiB0aHJlYWQuICBJbgotICAgIC8vIHBh
cnRpY3VsYXIsIERPTURhdGEgaG9sZHMgd3JhcHBlcnMgZm9yIGFsbCB0aGUgaXNvbGF0ZWQgd29y
bGRzIGluIHRoZQotICAgIC8vIHRocmVhZC4gIFRoZSBET01EYXRhIGZvciB0aGUgbWFpbiB0aHJl
YWQgYW5kIHRoZSBET01EYXRhIGZvciBjaGlsZCB0aHJlYWRzCi0gICAgLy8gdXNlIGRpZmZlcmVu
dCBzdWJjbGFzc2VzLgotICAgIC8vCi0gICAgY2xhc3MgRE9NRGF0YSB7Ci0gICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgRE9NRGF0YVN0b3JlJiBnZXRDdXJyZW50U3RvcmUodjg6Oklzb2xhdGUq
ID0gMCk7Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgRE9NRGF0YSgpOwotICAgIH07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIERPTURhdGFfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAKaW5kZXggYzIxMjc0OGE4YjQ2YzYyZWQ5YTcx
MjdmNzRkZjE5MGQ0Yjg5ZGFhOC4uZjQ1OTg5ZDU0YmZlOWY2OTlkYjcwMTFhNzQ4ZmM5MDhiZTk3
ODFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwCkBA
IC0zMSw2MCArMzEsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01EYXRh
U3RvcmUuaCIKIAotI2luY2x1ZGUgIkRPTURhdGEuaCIKKyNpbmNsdWRlICJTdGF0aWNET01EYXRh
U3RvcmUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBET00gYmluZGluZyBhbGdvcml0aG06Ci0vLwotLy8gVGhlcmUg
YXJlIHR3byBraW5kcyBvZiBET00gb2JqZWN0czoKLS8vIDEuIERPTSB0cmVlIG5vZGVzLCBzdWNo
IGFzIERvY3VtZW50LCBIVE1MRWxlbWVudCwgLi4uCi0vLyAgICB0aGVyZSBjbGFzc2VzIGltcGxl
bWVudCBUcmVlU2hhcmVkPFQ+IGludGVyZmFjZTsKLS8vIDIuIE5vbi1ub2RlIERPTSBvYmplY3Rz
LCBzdWNoIGFzIENTU1J1bGUsIExvY2F0aW9uLCBldGMuCi0vLyAgICB0aGVzZSBjbGFzc2VzIGlt
cGxlbWVudCBhIHJlZi1jb3VudGVkIHNjaGVtZS4KLS8vCi0vLyBBIERPTSBvYmplY3QgbWF5IGhh
dmUgYSBKUyB3cmFwcGVyIG9iamVjdC4gSWYgYSB0cmVlIG5vZGUKLS8vIGlzIGFsaXZlLCBpdHMg
SlMgd3JhcHBlciBtdXN0IGJlIGtlcHQgYWxpdmUgZXZlbiBpdCBpcyBub3QKLS8vIHJlYWNoYWJs
ZSBmcm9tIEpTIHJvb3RzLgotLy8gSG93ZXZlciwgSlMgd3JhcHBlcnMgb2Ygbm9uLW5vZGUgb2Jq
ZWN0cyBjYW4gZ28gYXdheSBpZgotLy8gbm90IHJlYWNoYWJsZSBmcm9tIG90aGVyIEpTIG9iamVj
dHMuIEl0IHdvcmtzIGxpa2UgYSBjYWNoZS4KLS8vCi0vLyBET00gb2JqZWN0cyBhcmUgcmVmLWNv
dW50ZWQsIGFuZCBKUyBvYmplY3RzIGFyZSB0cmFjZWQgZnJvbQotLy8gYSBzZXQgb2Ygcm9vdCBv
YmplY3RzLiBUaGV5IGNhbiBjcmVhdGUgYSBjeWNsZS4gVG8gYnJlYWsKLS8vIGN5Y2xlcywgd2Ug
ZG8gZm9sbG93aW5nOgotLy8gICBIYW5kbGVzIGZyb20gRE9NIG9iamVjdHMgdG8gSlMgd3JhcHBl
cnMgYXJlIGFsd2F5cyB3ZWFrLAotLy8gc28gSlMgd3JhcHBlcnMgb2Ygbm9uLW5vZGUgb2JqZWN0
IGNhbm5vdCBjcmVhdGUgYSBjeWNsZS4KLS8vICAgQmVmb3JlIHN0YXJ0aW5nIGEgZ2xvYmFsIEdD
LCB3ZSBjcmVhdGUgYSB2aXJ0dWFsIGNvbm5lY3Rpb24KLS8vIGJldHdlZW4gbm9kZXMgaW4gdGhl
IHNhbWUgdHJlZSBpbiB0aGUgSlMgaGVhcC4gSWYgdGhlIHdyYXBwZXIKLS8vIG9mIG9uZSBub2Rl
IGluIGEgdHJlZSBpcyBhbGl2ZSwgd3JhcHBlcnMgb2YgYWxsIG5vZGVzIGluCi0vLyB0aGUgc2Ft
ZSB0cmVlIGFyZSBjb25zaWRlcmVkIGFsaXZlLiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcKLS8v
IG9iamVjdCBncm91cHMgaW4gR0MgcHJvbG9ndWUgY2FsbGJhY2tzLiBUaGUgbWFyay1jb21wYWN0
Ci0vLyBjb2xsZWN0b3Igd2lsbCByZW1vdmUgdGhlc2UgZ3JvdXBzIGFmdGVyIGVhY2ggR0MuCi0v
LwotLy8gRE9NIG9iamVjdHMgc2hvdWxkIGJlIGRlcmVmLWVkIGZyb20gdGhlIG93bmluZyB0aHJl
YWQsIG5vdCB0aGUgR0MgdGhyZWFkCi0vLyB0aGF0IGRvZXMgbm90IG93biB0aGVtLiBJbiBWOCwg
R0MgY2FuIGtpY2sgaW4gZnJvbSBhbnkgdGhyZWFkLiBUbyBlbnN1cmUKLS8vIHRoYXQgRE9NIG9i
amVjdHMgYXJlIGFsd2F5cyBkZXJlZi1lZCBmcm9tIHRoZSBvd25pbmcgdGhyZWFkIHdoZW4gcnVu
bmluZwotLy8gVjggaW4gbXVsdGktdGhyZWFkaW5nIGVudmlyb25tZW50LCB3ZSBkbyBmb2xsb3dp
bmc6Ci0vLyAxLiBNYWludGFpbiBhIHRocmVhZCBzcGVjaWZpYyBET00gd3JhcHBlciBtYXAgZm9y
IGVhY2ggb2JqZWN0IG1hcC4KLS8vICAgIChXZSdyZSB1c2luZyBUTFMgc3VwcG9ydCBmcm9tIFdU
RiBpbnN0ZWFkIG9mIGJhc2Ugc2luY2UgVjhCaW5kaW5ncwotLy8gICAgIGRvZXMgbm90IGRlcGVu
ZCBvbiBiYXNlLiBXZSBmdXJ0aGVyIGFzc3VtZSB0aGF0IGFsbCBjaGlsZCB0aHJlYWRzCi0vLyAg
ICAgcnVubmluZyBWOCBpbnN0YW5jZXMgYXJlIGNyZWF0ZWQgYnkgV1RGIGFuZCB0aHVzIGEgZGVz
dHJ1Y3RvciB3aWxsCi0vLyAgICAgYmUgY2FsbGVkIHRvIGNsZWFuIHVwIGFsbCB0aHJlYWQgc3Bl
Y2lmaWMgZGF0YS4pCi0vLyAyLiBXaGVuIEdDIGhhcHBlbnM6Ci0vLyAgICAyLjEuIElmIHRoZSBk
ZWFkIG9iamVjdCBpcyBpbiBHQyB0aHJlYWQncyBtYXAsIHJlbW92ZSB0aGUgSlMgcmVmZXJlbmNl
Ci0vLyAgICAgICAgIGFuZCBkZXJlZiB0aGUgRE9NIG9iamVjdC4KLS8vICAgIDIuMi4gT3RoZXJ3
aXNlLCBnbyB0aHJvdWdoIGFsbCB0aHJlYWQgbWFwcyB0byBmaW5kIHRoZSBvd25pbmcgdGhyZWFk
LgotLy8gICAgICAgICBSZW1vdmUgdGhlIEpTIHJlZmVyZW5jZSBmcm9tIHRoZSBvd25pbmcgdGhy
ZWFkJ3MgbWFwIGFuZCBtb3ZlIHRoZQotLy8gICAgICAgICBET00gb2JqZWN0IHRvIGEgZGVsYXll
ZCBxdWV1ZS4gUG9zdCBhIHRhc2sgdG8gdGhlIG93bmluZyB0aHJlYWQKLS8vICAgICAgICAgdG8g
aGF2ZSBpdCBkZXJlZi1lZCBmcm9tIHRoZSBvd25pbmcgdGhyZWFkIGF0IGxhdGVyIHRpbWUuCi0v
LyAzLiBXaGVuIGEgdGhyZWFkIGlzIHRlYXJpbmcgZG93biwgaW52b2tlIGEgY2xlYW51cCByb3V0
aW5lIHRvIGdvIHRocm91Z2gKLS8vICAgIGFsbCBvYmplY3RzIGluIHRoZSBkZWxheWVkIHF1ZXVl
IGFuZCB0aGUgdGhyZWFkIG1hcCBhbmQgZGVyZWYgYWxsIG9mCi0vLyAgICB0aGVtLgotCi0KIERP
TURhdGFTdG9yZTo6RE9NRGF0YVN0b3JlKCkKICAgICA6IG1fZG9tTm9kZU1hcCgwKQogICAgICwg
bV9hY3RpdmVEb21Ob2RlTWFwKDApCkBAIC05NywyNiArNTAsMTYgQEAgRE9NRGF0YVN0b3JlOjp+
RE9NRGF0YVN0b3JlKCkKIHsKIH0KIAotRE9NRGF0YUxpc3QmIERPTURhdGFTdG9yZTo6YWxsU3Rv
cmVzKCkKLXsKLSAgICByZXR1cm4gVjhQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5hbGxTdG9y
ZXMoKTsKLX0KLQotdm9pZCogRE9NRGF0YVN0b3JlOjpnZXRET01XcmFwcGVyTWFwKERPTVdyYXBw
ZXJNYXBUeXBlIHR5cGUpCitET01EYXRhU3RvcmUqIERPTURhdGFTdG9yZTo6Y3VycmVudCh2ODo6
SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIERPTU5v
ZGVNYXA6Ci0gICAgICAgIHJldHVybiBtX2RvbU5vZGVNYXA7Ci0gICAgY2FzZSBBY3RpdmVET01O
b2RlTWFwOgotICAgICAgICByZXR1cm4gbV9hY3RpdmVEb21Ob2RlTWFwOwotICAgIGNhc2UgRE9N
T2JqZWN0TWFwOgotICAgICAgICByZXR1cm4gbV9kb21PYmplY3RNYXA7Ci0gICAgY2FzZSBBY3Rp
dmVET01PYmplY3RNYXA6Ci0gICAgICAgIHJldHVybiBtX2FjdGl2ZURvbU9iamVjdE1hcDsKLSAg
ICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0YXRpY0RPTURhdGFTdG9yZSwgZGVmYXVsdFN0b3JlLCAoKSk7Cisg
ICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmZyb20oaXNvbGF0
ZSk7CisgICAgaWYgKFVOTElLRUxZKCEhZGF0YS0+ZG9tRGF0YVN0b3JlKCkpKQorICAgICAgICBy
ZXR1cm4gZGF0YS0+ZG9tRGF0YVN0b3JlKCk7CisgICAgVjhET01XaW5kb3dTaGVsbCogY29udGV4
dCA9IFY4RE9NV2luZG93U2hlbGw6OmdldEVudGVyZWQoKTsKKyAgICBpZiAoVU5MSUtFTFkoISFj
b250ZXh0KSkKKyAgICAgICAgcmV0dXJuIGNvbnRleHQtPndvcmxkKCktPmRvbURhdGFTdG9yZSgp
OworICAgIHJldHVybiAmZGVmYXVsdFN0b3JlOwogfQogCiB2b2lkIERPTURhdGFTdG9yZTo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmgKaW5kZXggZTY3NmZlMGM0
MzBiYzRjOGE0YTU5NDcyZGM3NGVkZDBjMmJmNGQzZS4uOTE0ZDBkMDZmOWEwMzk3ZGFlZWU0OWI1
MjljY2FmMmUyNmI2OWZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
RE9NRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0
b3JlLmgKQEAgLTQ1LDEwICs0NSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNs
YXNzIERPTURhdGE7CiAgICAgY2xhc3MgRE9NRGF0YVN0b3JlOwogCi0gICAgdHlwZWRlZiBXVEY6
OlZlY3RvcjxET01EYXRhU3RvcmUqPiBET01EYXRhTGlzdDsKKyAgICB0eXBlZGVmIFZlY3RvcjxE
T01EYXRhU3RvcmUqPiBET01EYXRhTGlzdDsKIAogICAgIC8vIERPTURhdGFTdG9yZQogICAgIC8v
CkBAIC02MiwyMCArNjEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRE9NRGF0
YVN0b3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRE9NRGF0YVN0b3JlKTsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIGVudW0gRE9NV3JhcHBlck1hcFR5cGUgewotICAgICAgICAgICAg
RE9NTm9kZU1hcCwKLSAgICAgICAgICAgIEFjdGl2ZURPTU5vZGVNYXAsCi0gICAgICAgICAgICBE
T01PYmplY3RNYXAsCi0gICAgICAgICAgICBBY3RpdmVET01PYmplY3RNYXAsCi0gICAgICAgIH07
Ci0KLSAgICAgICAgRE9NRGF0YVN0b3JlKCk7CiAgICAgICAgIHZpcnR1YWwgfkRPTURhdGFTdG9y
ZSgpOwogCi0gICAgICAgIC8vIEEgbGlzdCBvZiBhbGwgRE9NRGF0YVN0b3JlIG9iamVjdHMgaW4g
dGhlIGN1cnJlbnQgVjggaXNvbGF0ZS4gTm9ybWFsbHksIGVhY2ggV29ybGQgaGFzIGEgRE9NRGF0
YVN0b3JlLgotICAgICAgICBzdGF0aWMgRE9NRGF0YUxpc3QmIGFsbFN0b3JlcygpOwotCi0gICAg
ICAgIHZvaWQqIGdldERPTVdyYXBwZXJNYXAoRE9NV3JhcHBlck1hcFR5cGUpOworICAgICAgICBz
dGF0aWMgRE9NRGF0YVN0b3JlKiBjdXJyZW50KHY4OjpJc29sYXRlKik7CiAKICAgICAgICAgRE9N
V3JhcHBlck1hcDxOb2RlPiYgZG9tTm9kZU1hcCgpIHsgcmV0dXJuICptX2RvbU5vZGVNYXA7IH0K
ICAgICAgICAgRE9NV3JhcHBlck1hcDxOb2RlPiYgYWN0aXZlRG9tTm9kZU1hcCgpIHsgcmV0dXJu
ICptX2FjdGl2ZURvbU5vZGVNYXA7IH0KQEAgLTg1LDYgKzczLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICBET01EYXRhU3RvcmUoKTsK
KwogICAgICAgICBET01XcmFwcGVyTWFwPE5vZGU+KiBtX2RvbU5vZGVNYXA7CiAgICAgICAgIERP
TVdyYXBwZXJNYXA8Tm9kZT4qIG1fYWN0aXZlRG9tTm9kZU1hcDsKICAgICAgICAgRE9NV3JhcHBl
ck1hcDx2b2lkPiogbV9kb21PYmplY3RNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA0MTczMWMxNDJjZDg0ZTQ1
NWRjOGI5MmE1NjNlNjgzMjcyNGVkZGI3Li5kODQ4ZWY1MDRlNDk3MDQ5MjkwM2MyMmIxZmFiYjhk
ZjJjNzcwMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTIyMDgsNyArMjIwOCw3IEBAIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKCkKIAogc3RhdGljIHZvaWQgbmV1dGVyQmlu
ZGluZyh2b2lkKiBkb21PYmplY3QpIAogewotICAgIERPTURhdGFMaXN0JiBhbGxTdG9yZXMgPSBE
T01EYXRhU3RvcmU6OmFsbFN0b3JlcygpOworICAgIERPTURhdGFMaXN0JiBhbGxTdG9yZXMgPSBW
OFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmFsbFN0b3JlcygpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYWxsU3RvcmVzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gb2JqID0gYWxsU3RvcmVzW2ldLT5kb21PYmplY3RNYXAoKS5nZXQoZG9tT2Jq
ZWN0KTsKICAgICAgICAgaWYgKCFvYmouSXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01NYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01NYXAuY3BwCmluZGV4IDVlYjYzMGJlMWFkY2IwMDc0YWFkMDQzYjgyY2JkOWJmMzdi
M2ExYzYuLmRhNzkzMWMwNDBhYWEyZmVmMjg5ZGE3M2QzMTYyMTEwYmJjNWE4NTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgogCi0jaW5jbHVkZSAiRE9NRGF0
YS5oIgogI2luY2x1ZGUgIkRPTURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIlNjb3BlZERPTURhdGFT
dG9yZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgpAQCAtNTksMzEgKzU4LDM5IEBAIE5vZGVX
cmFwcGVyVmlzaXRvcjo6fk5vZGVXcmFwcGVyVmlzaXRvcigpCiAKIERPTVdyYXBwZXJNYXA8Tm9k
ZT4mIGdldERPTU5vZGVNYXAodjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7Ci0gICAgcmV0dXJuIERP
TURhdGE6OmdldEN1cnJlbnRTdG9yZShpc29sYXRlKS5kb21Ob2RlTWFwKCk7CisgICAgaWYgKCFp
c29sYXRlKQorICAgICAgICBpc29sYXRlID0gdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKTsKKyAg
ICByZXR1cm4gRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5kb21Ob2RlTWFwKCk7CiB9
CiAKIERPTVdyYXBwZXJNYXA8Tm9kZT4mIGdldEFjdGl2ZURPTU5vZGVNYXAodjg6Oklzb2xhdGUq
IGlzb2xhdGUpCiB7Ci0gICAgcmV0dXJuIERPTURhdGE6OmdldEN1cnJlbnRTdG9yZShpc29sYXRl
KS5hY3RpdmVEb21Ob2RlTWFwKCk7CisgICAgaWYgKCFpc29sYXRlKQorICAgICAgICBpc29sYXRl
ID0gdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKTsKKyAgICByZXR1cm4gRE9NRGF0YVN0b3JlOjpj
dXJyZW50KGlzb2xhdGUpLT5hY3RpdmVEb21Ob2RlTWFwKCk7CiB9CiAKIERPTVdyYXBwZXJNYXA8
dm9pZD4mIGdldERPTU9iamVjdE1hcCh2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICByZXR1
cm4gRE9NRGF0YTo6Z2V0Q3VycmVudFN0b3JlKGlzb2xhdGUpLmRvbU9iamVjdE1hcCgpOworICAg
IGlmICghaXNvbGF0ZSkKKyAgICAgICAgaXNvbGF0ZSA9IHY4OjpJc29sYXRlOjpHZXRDdXJyZW50
KCk7CisgICAgcmV0dXJuIERPTURhdGFTdG9yZTo6Y3VycmVudChpc29sYXRlKS0+ZG9tT2JqZWN0
TWFwKCk7CiB9CiAKIERPTVdyYXBwZXJNYXA8dm9pZD4mIGdldEFjdGl2ZURPTU9iamVjdE1hcCh2
ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICByZXR1cm4gRE9NRGF0YTo6Z2V0Q3VycmVudFN0
b3JlKGlzb2xhdGUpLmFjdGl2ZURvbU9iamVjdE1hcCgpOworICAgIGlmICghaXNvbGF0ZSkKKyAg
ICAgICAgaXNvbGF0ZSA9IHY4OjpJc29sYXRlOjpHZXRDdXJyZW50KCk7CisgICAgcmV0dXJuIERP
TURhdGFTdG9yZTo6Y3VycmVudChpc29sYXRlKS0+YWN0aXZlRG9tT2JqZWN0TWFwKCk7CiB9CiAK
IHZvaWQgcmVtb3ZlQWxsRE9NT2JqZWN0cygpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwotICAgIERPTURhdGFTdG9yZSYgc3RvcmUg
PSBET01EYXRhOjpnZXRDdXJyZW50U3RvcmUoKTsKLSAgICBzdG9yZS5kb21PYmplY3RNYXAoKS5j
bGVhcigpOwotICAgIHN0b3JlLmFjdGl2ZURvbU9iamVjdE1hcCgpLmNsZWFyKCk7CisgICAgRE9N
RGF0YVN0b3JlKiBzdG9yZSA9IERPTURhdGFTdG9yZTo6Y3VycmVudCh2ODo6SXNvbGF0ZTo6R2V0
Q3VycmVudCgpKTsKKyAgICBzdG9yZS0+ZG9tT2JqZWN0TWFwKCkuY2xlYXIoKTsKKyAgICBzdG9y
ZS0+YWN0aXZlRG9tT2JqZWN0TWFwKCkuY2xlYXIoKTsKIH0KIAogdm9pZCB2aXNpdEFsbERPTU5v
ZGVzKE5vZGVXcmFwcGVyVmlzaXRvciogdmlzaXRvcikKQEAgLTExOSw3ICsxMjYsNyBAQCB2b2lk
IHZpc2l0QWN0aXZlRE9NTm9kZXMoRE9NV3JhcHBlclZpc2l0b3I8Tm9kZT4qIHZpc2l0b3IpCiB7
CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwogCi0gICAgRE9NRGF0YUxpc3QmIGxpc3QgPSBE
T01EYXRhU3RvcmU6OmFsbFN0b3JlcygpOworICAgIERPTURhdGFMaXN0JiBsaXN0ID0gVjhQZXJJ
c29sYXRlRGF0YTo6Y3VycmVudCgpLT5hbGxTdG9yZXMoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgRE9NRGF0YVN0b3JlKiBzdG9yZSA9
IGxpc3RbaV07CiAKQEAgLTEzMSw3ICsxMzgsNyBAQCB2b2lkIHZpc2l0RE9NT2JqZWN0cyhET01X
cmFwcGVyVmlzaXRvcjx2b2lkPiogdmlzaXRvcikKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgc2Nv
cGU7CiAKLSAgICBET01EYXRhTGlzdCYgbGlzdCA9IERPTURhdGFTdG9yZTo6YWxsU3RvcmVzKCk7
CisgICAgRE9NRGF0YUxpc3QmIGxpc3QgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmFs
bFN0b3JlcygpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkg
ewogICAgICAgICBET01EYXRhU3RvcmUqIHN0b3JlID0gbGlzdFtpXTsKIApAQCAtMTQzLDcgKzE1
MCw3IEBAIHZvaWQgdmlzaXRBY3RpdmVET01PYmplY3RzKERPTVdyYXBwZXJWaXNpdG9yPHZvaWQ+
KiB2aXNpdG9yKQogewogICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKIAotICAgIERPTURhdGFM
aXN0JiBsaXN0ID0gRE9NRGF0YVN0b3JlOjphbGxTdG9yZXMoKTsKKyAgICBET01EYXRhTGlzdCYg
bGlzdCA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+YWxsU3RvcmVzKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKSB7CiAgICAgICAgIERPTURhdGFT
dG9yZSogc3RvcmUgPSBsaXN0W2ldOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>