<?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>42119</bug_id>
          
          <creation_ts>2010-07-12 17:30:09 -0700</creation_ts>
          <short_desc>Get rid of auto_ptr use in WebKit2</short_desc>
          <delta_ts>2010-07-12 17:38:06 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250179</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-12 17:30:09 -0700</bug_when>
    <thetext>Get rid of auto_ptr use in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250181</commentid>
    <comment_count>1</comment_count>
      <attachid>61300</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-12 17:33:16 -0700</bug_when>
    <thetext>Created attachment 61300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250184</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-12 17:38:06 -0700</bug_when>
    <thetext>Committed r63148: &lt;http://trac.webkit.org/changeset/63148&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61300</attachid>
            <date>2010-07-12 17:33:16 -0700</date>
            <delta_ts>2010-07-12 17:36:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42119-20100712173314.patch</filename>
            <type>text/plain</type>
            <size>30105</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzE0NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMTAtMDctMTIgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBH
ZXQgcmlkIG9mIGF1dG9fcHRyIHVzZSBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjExOQorICAgICAgICAKKyAgICAgICAgUmVwbGFj
ZSBhbGwgdXNlIG9mIGF1dG9fcHRyIHdpdGggT3duUHRyL1Bhc3NPd25QdHIuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29u
bmVjdGlvbjo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6d2Fp
dEZvck1lc3NhZ2UpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNz
YWdlKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3Nh
Z2UpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZXMp
OgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlcyk6CisgICAg
ICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChDb3JlSVBDOjpD
b25uZWN0aW9uOjpNZXNzYWdlOjpNZXNzYWdlKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rp
b246OnNlbmQpOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmMpOgorICAg
ICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6d2FpdEZvcik6CisgICAgICAgICogUGxhdGZvcm0v
Q29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0
aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKENvcmVJUEM6OmNyZWF0ZUFyZ3Vt
ZW50RGVjb2Rlcik6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpyZWNlaXZlU291cmNl
RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rpb25R
dC5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpyZWFkeVJlYWRIYW5kbGVyKToK
KyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UpOgorICAg
ICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwOgorICAgICAgICAo
Q29yZUlQQzo6Q29ubmVjdGlvbjo6cmVhZEV2ZW50SGFuZGxlcik6CisgICAgICAgIChDb3JlSVBD
OjpDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9S
dW5Mb29wLmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFJ1
bkxvb3A6OnNjaGVkdWxlV29yayk6CisgICAgICAgICogUGxhdGZvcm0vUnVuTG9vcC5oOgorICAg
ICAgICAqIFBsYXRmb3JtL1dvcmtJdGVtLmg6CisgICAgICAgIChXb3JrSXRlbTo6Y3JlYXRlKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9Xb3JrUXVldWUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMv
V29ya1F1ZXVlTWFjLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6ZXhlY3V0ZVdvcmtJdGVtKToK
KyAgICAgICAgKFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6
RXZlbnRTb3VyY2U6OkV2ZW50U291cmNlKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6cmVnaXN0ZXJN
YWNoUG9ydEV2ZW50SGFuZGxlcik6CisgICAgICAgICogUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQu
Y3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpjb25uZWN0U2lnbmFsKToKKyAgICAgICAgKFdvcmtR
dWV1ZTo6c2NoZWR1bGVXb3JrKToKKyAgICAgICAgKiBQbGF0Zm9ybS93aW4vV29ya1F1ZXVlV2lu
LmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6cmVnaXN0ZXJIYW5kbGUpOgorICAgICAgICAoV29y
a1F1ZXVlOjpzY2hlZHVsZVdvcmspOgorICAgICAgICAoV29ya1F1ZXVlOjpwZXJmb3JtV29yayk6
CisgICAgICAgICogVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnBhaW50KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZCk6
CisKIDIwMTAtMDctMTIgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
QnVpbGQgZml4LiAgQ29weSBXS0FycmF5LmggdG8gdGhlIGluY2x1ZGUgZGlyZWN0b3J5LgpJbmRl
eDogV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1Bs
YXRmb3JtL1J1bkxvb3AuY3BwCShyZXZpc2lvbiA2MzA2MykKKysrIFdlYktpdDIvUGxhdGZvcm0v
UnVuTG9vcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDE1ICs1OCwxNSBAQCB2b2lkIFJ1bkxv
b3A6OnBlcmZvcm1Xb3JrKCkKICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdv
cmtJdGVtUXVldWUuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgc3RkOjphdXRvX3B0cjxXb3JrSXRl
bT4gaXRlbSh3b3JrSXRlbVF1ZXVlW2ldKTsKKyAgICAgICAgT3duUHRyPFdvcmtJdGVtPiBpdGVt
KHdvcmtJdGVtUXVldWVbaV0pOwogICAgICAgICBpdGVtLT5leGVjdXRlKCk7CiAgICAgfQogfQog
Ci12b2lkIFJ1bkxvb3A6OnNjaGVkdWxlV29yayhzdGQ6OmF1dG9fcHRyPFdvcmtJdGVtPiBpdGVt
KQordm9pZCBSdW5Mb29wOjpzY2hlZHVsZVdvcmsoUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSkK
IHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV93b3JrSXRlbVF1ZXVlTG9jayk7Ci0gICAgbV93
b3JrSXRlbVF1ZXVlLmFwcGVuZChpdGVtLnJlbGVhc2UoKSk7CisgICAgbV93b3JrSXRlbVF1ZXVl
LmFwcGVuZChpdGVtLmxlYWtQdHIoKSk7CiAKICAgICB3YWtlVXAoKTsKIH0KSW5kZXg6IFdlYktp
dDIvUGxhdGZvcm0vUnVuTG9vcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxhdGZvcm0vUnVu
TG9vcC5oCShyZXZpc2lvbiA2MzA2MykKKysrIFdlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4IEBACiAjaWZuZGVmIFJ1bkxvb3BfaAogI2RlZmlu
ZSBSdW5Mb29wX2gKIAotI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNp
ZmljLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSdW5Mb29wKiBjdXJyZW50
KCk7CiAgICAgc3RhdGljIFJ1bkxvb3AqIG1haW4oKTsKIAotICAgIHZvaWQgc2NoZWR1bGVXb3Jr
KHN0ZDo6YXV0b19wdHI8V29ya0l0ZW0+KTsKKyAgICB2b2lkIHNjaGVkdWxlV29yayhQYXNzT3du
UHRyPFdvcmtJdGVtPik7CiAKICAgICBzdGF0aWMgdm9pZCBydW4oKTsKICAgICB2b2lkIHN0b3Ao
KTsKSW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vV29ya0l0ZW0uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1BsYXRmb3JtL1dvcmtJdGVtLmgJKHJldmlzaW9uIDYzMDYzKQorKysgV2ViS2l0Mi9QbGF0
Zm9ybS9Xb3JrSXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNSArMjYsMTUgQEAKICNpZm5k
ZWYgV29ya0l0ZW1faAogI2RlZmluZSBXb3JrSXRlbV9oCiAKLSNpbmNsdWRlIDxtZW1vcnk+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogY2xhc3MgV29ya0l0ZW0gewogcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEM+IAotICAgIHN0YXRpYyBzdGQ6OmF1dG9fcHRyPFdvcmtJ
dGVtPiBjcmVhdGUoQyosIHZvaWQgKEM6OiopKCkpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdv
cmtJdGVtPiBjcmVhdGUoQyosIHZvaWQgKEM6OiopKCkpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQywgdHlwZW5hbWUgVDAsIHR5cGVuYW1lIFQxPgotICAgIHN0YXRpYyBzdGQ6OmF1dG9fcHRy
PFdvcmtJdGVtPiBjcmVhdGUoQyosIHZvaWQgKEM6OiopKFQwLCBUMSksIFQwLCBUMSk7CisgICAg
c3RhdGljIFBhc3NPd25QdHI8V29ya0l0ZW0+IGNyZWF0ZShDKiwgdm9pZCAoQzo6KikoVDAsIFQx
KSwgVDAsIFQxKTsKIAogICAgIHZpcnR1YWwgfldvcmtJdGVtKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGV4ZWN1dGUoKSA9IDA7CkBAIC0xMDgsMTUgKzEwOCwxNSBAQCBjbGFzcyBNZW1iZXJGdW5j
dGlvbldvcmtJdGVtMiA6IHByaXZhdGUgCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDPgotc3Rk
OjphdXRvX3B0cjxXb3JrSXRlbT4gV29ya0l0ZW06OmNyZWF0ZShDKiBwdHIsIHZvaWQgKEM6Oipm
dW5jdGlvbikoKSkKK1Bhc3NPd25QdHI8V29ya0l0ZW0+IFdvcmtJdGVtOjpjcmVhdGUoQyogcHRy
LCB2b2lkIChDOjoqZnVuY3Rpb24pKCkpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6YXV0b19wdHI8V29y
a0l0ZW0+KG5ldyBNZW1iZXJGdW5jdGlvbldvcmtJdGVtMDxDPihwdHIsIGZ1bmN0aW9uKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKHN0YXRpY19jYXN0PFdvcmtJdGVtKj4obmV3IE1lbWJlckZ1bmN0
aW9uV29ya0l0ZW0wPEM+KHB0ciwgZnVuY3Rpb24pKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEMsIHR5cGVuYW1lIFQwLCB0eXBlbmFtZSBUMT4KLXN0ZDo6YXV0b19wdHI8V29ya0l0ZW0+IFdv
cmtJdGVtOjpjcmVhdGUoQyogcHRyLCB2b2lkIChDOjoqZnVuY3Rpb24pKFQwLCBUMSksIFQwIHQw
LCBUMSB0MSkKK1Bhc3NPd25QdHI8V29ya0l0ZW0+IFdvcmtJdGVtOjpjcmVhdGUoQyogcHRyLCB2
b2lkIChDOjoqZnVuY3Rpb24pKFQwLCBUMSksIFQwIHQwLCBUMSB0MSkKIHsKLSAgICByZXR1cm4g
c3RkOjphdXRvX3B0cjxXb3JrSXRlbT4obmV3IE1lbWJlckZ1bmN0aW9uV29ya0l0ZW0yPEMsIFQw
LCBUMT4ocHRyLCBmdW5jdGlvbiwgdDAsIHQxKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKHN0YXRp
Y19jYXN0PFdvcmtJdGVtKj4obmV3IE1lbWJlckZ1bmN0aW9uV29ya0l0ZW0yPEMsIFQwLCBUMT4o
cHRyLCBmdW5jdGlvbiwgdDAsIHQxKSkpOwogfQogCiAjZW5kaWYgLy8gV29ya0l0ZW1faApJbmRl
eDogV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1Bs
YXRmb3JtL1dvcmtRdWV1ZS5oCShyZXZpc2lvbiA2MzA2MykKKysrIFdlYktpdDIvUGxhdGZvcm0v
V29ya1F1ZXVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUg
IldvcmtJdGVtLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTQ4LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFdvcmtRdWV1
ZShjb25zdCBjaGFyKiBuYW1lKTsKICAgICB+V29ya1F1ZXVlKCk7CiAKLSAgICB2b2lkIHNjaGVk
dWxlV29yayhzdGQ6OmF1dG9fcHRyPFdvcmtJdGVtPik7CisgICAgdm9pZCBzY2hlZHVsZVdvcmso
UGFzc093blB0cjxXb3JrSXRlbT4pOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAjaWYgUExB
VEZPUk0oTUFDKQpAQCAtNjIsMTMgKzYzLDEzIEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBXaWxs
IGV4ZWN1dGUgdGhlIGdpdmVuIHdvcmsgaXRlbSB3aGVuZXZlciB0aGUgZ2l2ZW4gbWFjaCBwb3J0
IGV2ZW50IGZpcmVzLgogICAgIC8vIE5vdGUgdGhhdCB0aGlzIHdpbGwgYWRvcHQgdGhlIG1hY2gg
cG9ydCBhbmQgZGVzdHJveSBpdCB3aGVuIHRoZSB3b3JrIHF1ZXVlIGlzIGludmFsaWRhdGVkLgot
ICAgIHZvaWQgcmVnaXN0ZXJNYWNoUG9ydEV2ZW50SGFuZGxlcihtYWNoX3BvcnRfdCwgTWFjaFBv
cnRFdmVudFR5cGUsIHN0ZDo6YXV0b19wdHI8V29ya0l0ZW0+KTsKKyAgICB2b2lkIHJlZ2lzdGVy
TWFjaFBvcnRFdmVudEhhbmRsZXIobWFjaF9wb3J0X3QsIE1hY2hQb3J0RXZlbnRUeXBlLCBQYXNz
T3duUHRyPFdvcmtJdGVtPik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRs
ZXIobWFjaF9wb3J0X3QpOwogI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIHZvaWQgcmVnaXN0ZXJI
YW5kbGUoSEFORExFLCBzdGQ6OmF1dG9fcHRyPFdvcmtJdGVtPik7CisgICAgdm9pZCByZWdpc3Rl
ckhhbmRsZShIQU5ETEUsIFBhc3NPd25QdHI8V29ya0l0ZW0+KTsKICAgICB2b2lkIHVucmVnaXN0
ZXJIYW5kbGUoSEFORExFKTsKICNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHZvaWQgY29ubmVjdFNp
Z25hbChRT2JqZWN0KiwgY29uc3QgY2hhciogc2lnbmFsLCBzdGQ6OmF1dG9fcHRyPFdvcmtJdGVt
Pik7CisgICAgdm9pZCBjb25uZWN0U2lnbmFsKFFPYmplY3QqLCBjb25zdCBjaGFyKiBzaWduYWws
IFBhc3NPd25QdHI8V29ya0l0ZW0+KTsKICAgICB2b2lkIGRpc2Nvbm5lY3RTaWduYWwoUU9iamVj
dCosIGNvbnN0IGNoYXIqIHNpZ25hbCk7CiAKICAgICB2b2lkIG1vdmVTb2NrZXRUb1dvcmtUaHJl
YWQoUUxvY2FsU29ja2V0Kik7CkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVj
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uY3BwCShyZXZpc2lvbiA2MzA2MykKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIENvbm5lY3Rp
b246OmludmFsaWRhdGUoKQogICAgIG1fY29ubmVjdGlvblF1ZXVlLnNjaGVkdWxlV29yayhXb3Jr
SXRlbTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRhdGUpKTsKIH0K
IAotYm9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBhdXRv
X3B0cjxBcmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK2Jvb2wgQ29ubmVjdGlvbjo6c2VuZE1l
c3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgUGFzc093blB0cjxBcmd1bWVudEVuY29kZXI+IGFy
Z3VtZW50cykKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtOTAsNyArOTAsNyBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKE1lc3NhZ2VJRCBt
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0ZDo6YXV0b19wdHI8QXJndW1lbnREZWNvZGVyPiBD
b25uZWN0aW9uOjp3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCB1aW50NjRfdCBk
ZXN0aW5hdGlvbklELCBkb3VibGUgdGltZW91dCkKK1Bhc3NPd25QdHI8QXJndW1lbnREZWNvZGVy
PiBDb25uZWN0aW9uOjp3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCB1aW50NjRf
dCBkZXN0aW5hdGlvbklELCBkb3VibGUgdGltZW91dCkKIHsKICAgICAvLyBGaXJzdCwgY2hlY2sg
aWYgdGhpcyBtZXNzYWdlIGlzIGFscmVhZHkgaW4gdGhlIGluY29taW5nIG1lc3NhZ2VzIHF1ZXVl
LgogICAgIHsKQEAgLTEwMCwxMSArMTAwLDExIEBAIHN0ZDo6YXV0b19wdHI8QXJndW1lbnREZWNv
ZGVyPiBDb25uZWN0aW8KICAgICAgICAgICAgIGNvbnN0IEluY29taW5nTWVzc2FnZSYgbWVzc2Fn
ZSA9IG1faW5jb21pbmdNZXNzYWdlc1tpXTsKIAogICAgICAgICAgICAgaWYgKG1lc3NhZ2UubWVz
c2FnZUlEKCkgPT0gbWVzc2FnZUlEICYmIG1lc3NhZ2UuYXJndW1lbnRzKCktPmRlc3RpbmF0aW9u
SUQoKSA9PSBkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgICAgICAgICAgc3RkOjphdXRvX3B0cjxB
cmd1bWVudERlY29kZXI+IGFyZ3VtZW50cyhtZXNzYWdlLmFyZ3VtZW50cygpKTsKKyAgICAgICAg
ICAgICAgICBPd25QdHI8QXJndW1lbnREZWNvZGVyPiBhcmd1bWVudHMobWVzc2FnZS5hcmd1bWVu
dHMoKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgLy8gRXJhc2UgdGhlIGlu
Y29taW5nIG1lc3NhZ2UuCiAgICAgICAgICAgICAgICAgbV9pbmNvbWluZ01lc3NhZ2VzLnJlbW92
ZShpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOworICAgICAgICAgICAgICAg
IHJldHVybiBhcmd1bWVudHMucmVsZWFzZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfQpAQCAtMTMxLDEwICsxMzEsMTAgQEAgc3RkOjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+
IENvbm5lY3RpbwogCiAgICAgICAgIEhhc2hNYXA8c3RkOjpwYWlyPHVuc2lnbmVkLCB1aW50NjRf
dD4sIEFyZ3VtZW50RGVjb2Rlcio+OjppdGVyYXRvciBpdCA9IG1fd2FpdEZvck1lc3NhZ2VNYXAu
ZmluZChtZXNzYWdlQW5kRGVzdGluYXRpb24pOwogICAgICAgICBpZiAoaXQtPnNlY29uZCkgewot
ICAgICAgICAgICAgc3RkOjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IGFyZ3VtZW50cyhpdC0+
c2Vjb25kKTsKKyAgICAgICAgICAgIE93blB0cjxBcmd1bWVudERlY29kZXI+IGFyZ3VtZW50cyhp
dC0+c2Vjb25kKTsKICAgICAgICAgICAgIG1fd2FpdEZvck1lc3NhZ2VNYXAucmVtb3ZlKGl0KTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsKKyAgICAgICAgICAg
IHJldHVybiBhcmd1bWVudHMucmVsZWFzZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICAvLyBXZSBkaWRuJ3QgZmluZCBpdCwga2VlcCB3YWl0aW5nLgpAQCAtMTQ3LDIwICsxNDcsMjAg
QEAgc3RkOjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IENvbm5lY3RpbwogICAgICAgICBtX3dh
aXRGb3JNZXNzYWdlTWFwLnJlbW92ZShtZXNzYWdlQW5kRGVzdGluYXRpb24pOwogICAgIH0KICAg
ICAKLSAgICByZXR1cm4gc3RkOjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+KCk7CisgICAgcmV0
dXJuIFBhc3NPd25QdHI8QXJndW1lbnREZWNvZGVyPigpOwogfQogCi1zdGQ6OmF1dG9fcHRyPEFy
Z3VtZW50RGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCBtZXNz
YWdlSUQsIHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6YXV0b19wdHI8QXJndW1lbnRFbmNv
ZGVyPiBlbmNvZGVyLCBkb3VibGUgdGltZW91dCkKK1Bhc3NPd25QdHI8QXJndW1lbnREZWNvZGVy
PiBDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgdWludDY0
X3Qgc3luY1JlcXVlc3RJRCwgUGFzc093blB0cjxBcmd1bWVudEVuY29kZXI+IGVuY29kZXIsIGRv
dWJsZSB0aW1lb3V0KQogewogICAgIC8vIEZpcnN0IHNlbmQgdGhlIG1lc3NhZ2UuCiAgICAgaWYg
KCFzZW5kTWVzc2FnZShtZXNzYWdlSUQsIGVuY29kZXIpKQotICAgICAgICByZXR1cm4gc3RkOjph
dXRvX3B0cjxBcmd1bWVudERlY29kZXI+KCk7CisgICAgICAgIHJldHVybiBQYXNzT3duUHRyPEFy
Z3VtZW50RGVjb2Rlcj4oKTsKIAogICAgIC8vIE5vdyB3YWl0IGZvciBhIHJlcGx5IGFuZCByZXR1
cm4gaXQuCiAgICAgcmV0dXJuIHdhaXRGb3JNZXNzYWdlKE1lc3NhZ2VJRChDb3JlSVBDTWVzc2Fn
ZTo6U3luY01lc3NhZ2VSZXBseSksIHN5bmNSZXF1ZXN0SUQsIHRpbWVvdXQpOwogfQogCi12b2lk
IENvbm5lY3Rpb246OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwg
c3RkOjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IGFyZ3VtZW50cykKK3ZvaWQgQ29ubmVjdGlv
bjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRy
PEFyZ3VtZW50RGVjb2Rlcj4gYXJndW1lbnRzKQogewogICAgIC8vIEZpcnN0LCBjaGVjayBpZiB3
ZSdyZSB3YWl0aW5nIGZvciB0aGlzIG1lc3NhZ2UuCiAgICAgewpAQCAtMTY4LDcgKzE2OCw3IEBA
IHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSgKICAgICAgICAgCiAgICAg
ICAgIEhhc2hNYXA8c3RkOjpwYWlyPHVuc2lnbmVkLCB1aW50NjRfdD4sIEFyZ3VtZW50RGVjb2Rl
cio+OjppdGVyYXRvciBpdCA9IG1fd2FpdEZvck1lc3NhZ2VNYXAuZmluZChzdGQ6Om1ha2VfcGFp
cihtZXNzYWdlSUQudG9JbnQoKSwgYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpKTsKICAgICAg
ICAgaWYgKGl0ICE9IG1fd2FpdEZvck1lc3NhZ2VNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIGl0
LT5zZWNvbmQgPSBhcmd1bWVudHMucmVsZWFzZSgpOworICAgICAgICAgICAgaXQtPnNlY29uZCA9
IGFyZ3VtZW50cy5sZWFrUHRyKCk7CiAgICAgICAgIAogICAgICAgICAgICAgbV93YWl0Rm9yTWVz
c2FnZUNvbmRpdGlvbi5zaWduYWwoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIxNiw3ICsy
MTYsNyBAQCB2b2lkIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2VzKCkKIAogICAgIC8v
IFNlbmQgbWVzc2FnZXMuCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdXRnb2luZ01lc3Nh
Z2VzLnNpemUoKTsgKytpKQotICAgICAgICBzZW5kT3V0Z29pbmdNZXNzYWdlKG91dGdvaW5nTWVz
c2FnZXNbaV0ubWVzc2FnZUlEKCksIHN0ZDo6YXV0b19wdHI8QXJndW1lbnRFbmNvZGVyPihvdXRn
b2luZ01lc3NhZ2VzW2ldLmFyZ3VtZW50cygpKSk7CisgICAgICAgIHNlbmRPdXRnb2luZ01lc3Nh
Z2Uob3V0Z29pbmdNZXNzYWdlc1tpXS5tZXNzYWdlSUQoKSwgYWRvcHRQdHIob3V0Z29pbmdNZXNz
YWdlc1tpXS5hcmd1bWVudHMoKSkpOwogfQogCiB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVz
c2FnZXMoKQpAQCAtMjQzLDEzICsyNDMsMTMgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1l
c3NhZ2VzKCkKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gQ3JlYXRlIG91ciByZXBs
eSBlbmNvZGVyLgotICAgICAgICAgICAgc3RkOjphdXRvX3B0cjxBcmd1bWVudEVuY29kZXI+IHJl
cGx5RW5jb2RlcihuZXcgQXJndW1lbnRFbmNvZGVyKHN5bmNSZXF1ZXN0SUQpKTsKKyAgICAgICAg
ICAgIE93blB0cjxBcmd1bWVudEVuY29kZXI+IHJlcGx5RW5jb2RlcihuZXcgQXJndW1lbnRFbmNv
ZGVyKHN5bmNSZXF1ZXN0SUQpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSGFuZCBv
ZmYgYm90aCB0aGUgZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50Li4KICAgICAgICAg
ICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZS5tZXNzYWdl
SUQoKSwgYXJndW1lbnRzLCByZXBseUVuY29kZXIuZ2V0KCkpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICAvLyBTZW5kIHRoZSByZXBseS4KLSAgICAgICAgICAgIHNlbmRNZXNzYWdlKE1lc3Nh
Z2VJRChDb3JlSVBDTWVzc2FnZTo6U3luY01lc3NhZ2VSZXBseSksIHJlcGx5RW5jb2Rlcik7Cisg
ICAgICAgICAgICBzZW5kTWVzc2FnZShNZXNzYWdlSUQoQ29yZUlQQ01lc3NhZ2U6OlN5bmNNZXNz
YWdlUmVwbHkpLCByZXBseUVuY29kZXIucmVsZWFzZSgpKTsKICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UodGhpcywgbWVzc2FnZS5tZXNzYWdl
SUQoKSwgYXJndW1lbnRzKTsKIApJbmRleDogV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5l
Y3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5oCShyZXZpc2lvbiA2MzA2MykKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKICNpbmNsdWRlICJXb3JrUXVldWUuaCIKLSNp
bmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTg2LDE2ICs4NSwxNiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyBOb1RpbWVvdXQg
PSAxMDAwMDAwMDAwMFVMTDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFLCB0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBib29sIHNlbmRTeW5jKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELCBjb25zdCBUJiBhcmd1bWVudHMsIGNvbnN0IFUmIHJlcGx5LCBkb3VibGUgdGltZW91dCk7
CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFPiBzdGQ6OmF1dG9fcHRyPEFyZ3VtZW50RGVjb2Rl
cj4gd2FpdEZvcihFIG1lc3NhZ2VJRCwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgZG91YmxlIHRp
bWVvdXQpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEU+IFBhc3NPd25QdHI8QXJndW1lbnREZWNv
ZGVyPiB3YWl0Rm9yKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBkb3VibGUg
dGltZW91dCk7CiAKLSAgICBib29sIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRCwgc3RkOjphdXRvX3B0
cjxBcmd1bWVudEVuY29kZXI+KTsKKyAgICBib29sIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRCwgUGFz
c093blB0cjxBcmd1bWVudEVuY29kZXI+KTsKIAogcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjbGFzcyBNZXNzYWdlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIE1lc3NhZ2UoTWVz
c2FnZUlEIG1lc3NhZ2VJRCwgc3RkOjphdXRvX3B0cjxUPiBhcmd1bWVudHMpCisgICAgICAgIE1l
c3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgUGFzc093blB0cjxUPiBhcmd1bWVudHMpCiAgICAg
ICAgICAgICA6IG1fbWVzc2FnZUlEKG1lc3NhZ2VJRCkKLSAgICAgICAgICAgICwgbV9hcmd1bWVu
dHMoYXJndW1lbnRzLnJlbGVhc2UoKSkKKyAgICAgICAgICAgICwgbV9hcmd1bWVudHMoYXJndW1l
bnRzLmxlYWtQdHIoKSkKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIApAQCAtMTIyLDEz
ICsxMjEsMTMgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQogICAgIAotICAgIHN0ZDo6YXV0b19wdHI8QXJndW1lbnREZWNvZGVy
PiBzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6
OmF1dG9fcHRyPEFyZ3VtZW50RW5jb2Rlcj4sIGRvdWJsZSB0aW1lb3V0KTsKLSAgICBzdGQ6OmF1
dG9fcHRyPEFyZ3VtZW50RGVjb2Rlcj4gd2FpdEZvck1lc3NhZ2UoTWVzc2FnZUlELCB1aW50NjRf
dCBkZXN0aW5hdGlvbklELCBkb3VibGUgdGltZW91dCk7CisgICAgUGFzc093blB0cjxBcmd1bWVu
dERlY29kZXI+IHNlbmRTeW5jTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2NF90IHN5bmNSZXF1ZXN0
SUQsIFBhc3NPd25QdHI8QXJndW1lbnRFbmNvZGVyPiwgZG91YmxlIHRpbWVvdXQpOworICAgIFBh
c3NPd25QdHI8QXJndW1lbnREZWNvZGVyPiB3YWl0Rm9yTWVzc2FnZShNZXNzYWdlSUQsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIGRvdWJsZSB0aW1lb3V0KTsKICAgICAKICAgICAvLyBDYWxsZWQg
b24gdGhlIGNvbm5lY3Rpb24gd29yayBxdWV1ZS4KLSAgICB2b2lkIHByb2Nlc3NJbmNvbWluZ01l
c3NhZ2UoTWVzc2FnZUlELCBzdGQ6OmF1dG9fcHRyPEFyZ3VtZW50RGVjb2Rlcj4pOworICAgIHZv
aWQgcHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNzYWdlSUQsIFBhc3NPd25QdHI8QXJndW1lbnRE
ZWNvZGVyPik7CiAgICAgdm9pZCBzZW5kT3V0Z29pbmdNZXNzYWdlcygpOwotICAgIHZvaWQgc2Vu
ZE91dGdvaW5nTWVzc2FnZShNZXNzYWdlSUQsIHN0ZDo6YXV0b19wdHI8QXJndW1lbnRFbmNvZGVy
Pik7CisgICAgdm9pZCBzZW5kT3V0Z29pbmdNZXNzYWdlKE1lc3NhZ2VJRCwgUGFzc093blB0cjxB
cmd1bWVudEVuY29kZXI+KTsKICAgICB2b2lkIGNvbm5lY3Rpb25EaWRDbG9zZSgpOwogICAgIAog
ICAgIC8vIENhbGxlZCBvbiB0aGUgbGlzdGVuZXIgdGhyZWFkLgpAQCAtMTg1LDE2ICsxODQsMTYg
QEAgcHJpdmF0ZToKIHRlbXBsYXRlPHR5cGVuYW1lIEUsIHR5cGVuYW1lIFQ+CiBib29sIENvbm5l
Y3Rpb246OnNlbmQoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0IFQm
IGFyZ3VtZW50cykKIHsKLSAgICBzdGQ6OmF1dG9fcHRyPEFyZ3VtZW50RW5jb2Rlcj4gYXJndW1l
bnRFbmNvZGVyKG5ldyBBcmd1bWVudEVuY29kZXIoZGVzdGluYXRpb25JRCkpOworICAgIE93blB0
cjxBcmd1bWVudEVuY29kZXI+IGFyZ3VtZW50RW5jb2RlcihuZXcgQXJndW1lbnRFbmNvZGVyKGRl
c3RpbmF0aW9uSUQpKTsKICAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShhcmd1bWVudHMpOwog
Ci0gICAgcmV0dXJuIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRChtZXNzYWdlSUQpLCBhcmd1bWVudEVu
Y29kZXIpOworICAgIHJldHVybiBzZW5kTWVzc2FnZShNZXNzYWdlSUQobWVzc2FnZUlEKSwgYXJn
dW1lbnRFbmNvZGVyLnJlbGVhc2UoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEUsIHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFU+CiBpbmxpbmUgYm9vbCBDb25uZWN0aW9uOjpzZW5kU3luYyhFIG1l
c3NhZ2VJRCwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgVCYgYXJndW1lbnRzLCBjb25z
dCBVJiByZXBseSwgZG91YmxlIHRpbWVvdXQpCiB7Ci0gICAgc3RkOjphdXRvX3B0cjxBcmd1bWVu
dEVuY29kZXI+IGFyZ3VtZW50RW5jb2RlcihuZXcgQXJndW1lbnRFbmNvZGVyKGRlc3RpbmF0aW9u
SUQpKTsKKyAgICBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiBhcmd1bWVudEVuY29kZXIobmV3IEFy
Z3VtZW50RW5jb2RlcihkZXN0aW5hdGlvbklEKSk7CiAKICAgICB1aW50NjRfdCBzeW5jUmVxdWVz
dElEID0gKyttX3N5bmNSZXF1ZXN0SUQ7CiAgICAgCkBAIC0yMDUsMTUgKzIwNCwxNSBAQCBpbmxp
bmUgYm9vbCBDb25uZWN0aW9uOjpzZW5kU3luYyhFIG1lc3NhCiAgICAgYXJndW1lbnRFbmNvZGVy
LT5lbmNvZGUoYXJndW1lbnRzKTsKICAgICAKICAgICAvLyBOb3cgc2VuZCB0aGUgbWVzc2FnZSBh
bmQgd2FpdCBmb3IgYSByZXBseS4KLSAgICBzdGQ6OmF1dG9fcHRyPEFyZ3VtZW50RGVjb2Rlcj4g
cmVwbHlEZWNvZGVyID0gc2VuZFN5bmNNZXNzYWdlKE1lc3NhZ2VJRChtZXNzYWdlSUQsIE1lc3Nh
Z2VJRDo6U3luY01lc3NhZ2UpLCBzeW5jUmVxdWVzdElELCBhcmd1bWVudEVuY29kZXIsIHRpbWVv
dXQpOwotICAgIGlmICghcmVwbHlEZWNvZGVyLmdldCgpKQorICAgIE93blB0cjxBcmd1bWVudERl
Y29kZXI+IHJlcGx5RGVjb2RlciA9IHNlbmRTeW5jTWVzc2FnZShNZXNzYWdlSUQobWVzc2FnZUlE
LCBNZXNzYWdlSUQ6OlN5bmNNZXNzYWdlKSwgc3luY1JlcXVlc3RJRCwgYXJndW1lbnRFbmNvZGVy
LnJlbGVhc2UoKSwgdGltZW91dCk7CisgICAgaWYgKCFyZXBseURlY29kZXIpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAKICAgICAvLyBEZWNvZGUgdGhlIHJlcGx5LgogICAgIHJldHVybiBy
ZXBseURlY29kZXItPmRlY29kZShjb25zdF9jYXN0PFUmPihyZXBseSkpOwogfQogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBFPiBpbmxpbmUgc3RkOjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IENvbm5l
Y3Rpb246OndhaXRGb3IoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGRvdWJs
ZSB0aW1lb3V0KQordGVtcGxhdGU8dHlwZW5hbWUgRT4gaW5saW5lIFBhc3NPd25QdHI8QXJndW1l
bnREZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0
aW5hdGlvbklELCBkb3VibGUgdGltZW91dCkKIHsKICAgICByZXR1cm4gd2FpdEZvck1lc3NhZ2Uo
TWVzc2FnZUlEKG1lc3NhZ2VJRCksIGRlc3RpbmF0aW9uSUQsIHRpbWVvdXQpOwogfQpJbmRleDog
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCShyZXZp
c2lvbiA2MzA2MykKKysrIFdlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1h
Yy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMgaW5saW5lIHNp
emVfdCBtYWNoTWVzc2FnZVNpemUoc2l6CiAgICAgcmV0dXJuIHJvdW5kX21zZyhzaXplKTsKIH0K
IAotdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdl
SUQsIGF1dG9fcHRyPEFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQordm9pZCBDb25uZWN0aW9u
OjpzZW5kT3V0Z29pbmdNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQsIFBhc3NPd25QdHI8QXJn
dW1lbnRFbmNvZGVyPiBhcmd1bWVudHMpCiB7CiAgICAgVmVjdG9yPEF0dGFjaG1lbnQ+IGF0dGFj
aG1lbnRzID0gYXJndW1lbnRzLT5yZWxlYXNlQXR0YWNobWVudHMoKTsKICAgICAKQEAgLTIwNSwx
NCArMjA1LDE0IEBAIHZvaWQgQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZURlYWROYW1lU291cmMKICAg
ICBtX2Nvbm5lY3Rpb25RdWV1ZS5yZWdpc3Rlck1hY2hQb3J0RXZlbnRIYW5kbGVyKG1fc2VuZFBv
cnQsIFdvcmtRdWV1ZTo6TWFjaFBvcnREZWFkTmFtZU5vdGlmaWNhdGlvbiwgV29ya0l0ZW06OmNy
ZWF0ZSh0aGlzLCAmQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlKSk7CiB9CiAKLXN0YXRp
YyBhdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IGNyZWF0ZUFyZ3VtZW50RGVjb2RlcihtYWNoX21z
Z19oZWFkZXJfdCogaGVhZGVyKQorc3RhdGljIFBhc3NPd25QdHI8QXJndW1lbnREZWNvZGVyPiBj
cmVhdGVBcmd1bWVudERlY29kZXIobWFjaF9tc2dfaGVhZGVyX3QqIGhlYWRlcikKIHsKICAgICBp
ZiAoIShoZWFkZXItPm1zZ2hfYml0cyAmIE1BQ0hfTVNHSF9CSVRTX0NPTVBMRVgpKSB7CiAgICAg
ICAgIC8vIFdlIGhhdmUgYSBzaW1wbGUgbWVzc2FnZS4KICAgICAgICAgc2l6ZV90IGJvZHlTaXpl
ID0gaGVhZGVyLT5tc2doX3NpemUgLSBzaXplb2YobWFjaF9tc2dfaGVhZGVyX3QpOwogICAgICAg
ICB1aW50OF90KiBib2R5ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaGVhZGVyICsgMSk7
CiAgICAgICAgIAotICAgICAgICByZXR1cm4gYXV0b19wdHI8QXJndW1lbnREZWNvZGVyPihuZXcg
QXJndW1lbnREZWNvZGVyKGJvZHksIGJvZHlTaXplKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgQXJndW1lbnREZWNvZGVyKGJvZHksIGJvZHlTaXplKSk7CiAgICAgfQogCiAgICAgYm9v
bCBtZXNzYWdlQm9keUlzT09MID0gaGVhZGVyLT5tc2doX2lkICYgTWVzc2FnZUJvZHlJc09PTDsK
QEAgLTI2NiwxMyArMjY2LDEzIEBAIHN0YXRpYyBhdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IGNy
ZWF0ZUEKIAogICAgICAgICB2bV9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIHJlaW50ZXJw
cmV0X2Nhc3Q8dm1fYWRkcmVzc190PihtZXNzYWdlQm9keUF0dGFjaG1lbnQuYWRkcmVzcygpKSwg
bWVzc2FnZUJvZHlBdHRhY2htZW50LnNpemUoKSk7CiAKLSAgICAgICAgcmV0dXJuIGF1dG9fcHRy
PEFyZ3VtZW50RGVjb2Rlcj4oYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKGFyZ3VtZW50RGVjb2Rlcik7CiAgICAgfQogCiAgICAgdWludDhfdCogbWVzc2FnZUJvZHkg
PSBkZXNjcmlwdG9yRGF0YTsKICAgICBzaXplX3QgbWVzc2FnZUJvZHlTaXplID0gaGVhZGVyLT5t
c2doX3NpemUgLSAoZGVzY3JpcHRvckRhdGEgLSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPiho
ZWFkZXIpKTsKIAotICAgIHJldHVybiBhdXRvX3B0cjxBcmd1bWVudERlY29kZXI+KG5ldyBBcmd1
bWVudERlY29kZXIobWVzc2FnZUJvZHksIG1lc3NhZ2VCb2R5U2l6ZSwgYXR0YWNobWVudHMpKTsK
KyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEFyZ3VtZW50RGVjb2RlcihtZXNzYWdlQm9keSwgbWVz
c2FnZUJvZHlTaXplLCBhdHRhY2htZW50cykpOwogfQogCiB2b2lkIENvbm5lY3Rpb246OnJlY2Vp
dmVTb3VyY2VFdmVudEhhbmRsZXIoKQpAQCAtMjkzLDggKzI5Myw4IEBAIHZvaWQgQ29ubmVjdGlv
bjo6cmVjZWl2ZVNvdXJjZUV2ZW50SGFuZGwKICAgICB9CiAgICAgCiAgICAgTWVzc2FnZUlEIG1l
c3NhZ2VJRCA9IE1lc3NhZ2VJRDo6ZnJvbUludChoZWFkZXItPm1zZ2hfaWQpOwotICAgIHN0ZDo6
YXV0b19wdHI8QXJndW1lbnREZWNvZGVyPiBhcmd1bWVudHMgPSBjcmVhdGVBcmd1bWVudERlY29k
ZXIoaGVhZGVyKTsKLSAgICBBU1NFUlQoYXJndW1lbnRzLmdldCgpKTsKKyAgICBPd25QdHI8QXJn
dW1lbnREZWNvZGVyPiBhcmd1bWVudHMgPSBjcmVhdGVBcmd1bWVudERlY29kZXIoaGVhZGVyKTsK
KyAgICBBU1NFUlQoYXJndW1lbnRzKTsKIAogICAgIGlmIChtZXNzYWdlSUQgPT0gTWVzc2FnZUlE
KENvcmVJUENNZXNzYWdlOjpJbml0aWFsaXplQ29ubmVjdGlvbikpIHsKICAgICAgICAgQVNTRVJU
KG1faXNTZXJ2ZXIpOwpAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cmVjZWl2
ZVNvdXJjZUV2ZW50SGFuZGwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBwcm9j
ZXNzSW5jb21pbmdNZXNzYWdlKG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwcm9jZXNzSW5j
b21pbmdNZXNzYWdlKG1lc3NhZ2VJRCwgYXJndW1lbnRzLnJlbGVhc2UoKSk7CiB9ICAgIAogCiB9
IC8vIG5hbWVzcGFjZSBDb3JlSVBDCkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQv
Q29ubmVjdGlvblF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
cXQvQ29ubmVjdGlvblF0LmNwcAkocmV2aXNpb24gNjMwNjMpCisrKyBXZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsOCArNzcs
NyBAQCB2b2lkIENvbm5lY3Rpb246OnJlYWR5UmVhZEhhbmRsZXIoKQogICAgICAgICBzaXplX3Qg
cmVhbEJ1ZmZlclNpemUgPSBtX2N1cnJlbnRNZXNzYWdlU2l6ZSAtIHNpemVvZihNZXNzYWdlSUQp
OwogICAgICAgICB1bnNpZ25lZCBtZXNzYWdlSUQgPSAqcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25l
ZCo+KG1fcmVhZEJ1ZmZlci5kYXRhKCkgKyByZWFsQnVmZmVyU2l6ZSk7CiAKLSAgICAgICAgc3Rk
OjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IGFyZ3VtZW50cyhuZXcgQXJndW1lbnREZWNvZGVy
KG1fcmVhZEJ1ZmZlci5kYXRhKCksIHJlYWxCdWZmZXJTaXplKSk7Ci0gICAgICAgIHByb2Nlc3NJ
bmNvbWluZ01lc3NhZ2UoTWVzc2FnZUlEOjpmcm9tSW50KG1lc3NhZ2VJRCksIGFyZ3VtZW50cyk7
CisgICAgICAgIHByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoTWVzc2FnZUlEOjpmcm9tSW50KG1lc3Nh
Z2VJRCksIGFkb3B0UHRyKG5ldyBBcmd1bWVudERlY29kZXIobV9yZWFkQnVmZmVyLmRhdGEoKSwg
cmVhbEJ1ZmZlclNpemUpKSk7CiAKICAgICAgICAgbV9jdXJyZW50TWVzc2FnZVNpemUgPSAwOwog
ICAgIH0KQEAgLTEwNSw3ICsxMDQsNyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgIHJl
dHVybiBtX2lzQ29ubmVjdGVkOwogfQogCi12b2lkIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01l
c3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgYXV0b19wdHI8QXJndW1lbnRFbmNvZGVyPiBhcmd1
bWVudHMpCit2b2lkIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UoTWVzc2FnZUlEIG1l
c3NhZ2VJRCwgUGFzc093blB0cjxBcmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKIHsKICAgICBp
ZiAoIW1fc29ja2V0KQogICAgICAgICByZXR1cm47CkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvd2luL0Nvbm5lY3Rpb25XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy93aW4vQ29ubmVjdGlvbldpbi5jcHAJKHJldmlzaW9uIDYzMDYzKQorKysgV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3dpbi9Db25uZWN0aW9uV2luLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM3LDggKzEzNyw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cmVhZEV2ZW50SGFuZGxlcigp
CiAKICAgICAgICAgICAgIHVuc2lnbmVkIG1lc3NhZ2VJRCA9ICpyZWludGVycHJldF9jYXN0PHVu
c2lnbmVkKj4obV9yZWFkQnVmZmVyLmRhdGEoKSArIHJlYWxCdWZmZXJTaXplKTsKIAotICAgICAg
ICAgICAgc3RkOjphdXRvX3B0cjxBcmd1bWVudERlY29kZXI+IGFyZ3VtZW50cyhuZXcgQXJndW1l
bnREZWNvZGVyKG1fcmVhZEJ1ZmZlci5kYXRhKCksIHJlYWxCdWZmZXJTaXplKSk7Ci0gICAgICAg
ICAgICBwcm9jZXNzSW5jb21pbmdNZXNzYWdlKE1lc3NhZ2VJRDo6ZnJvbUludChtZXNzYWdlSUQp
LCBhcmd1bWVudHMpOworICAgICAgICAgICAgcHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNzYWdl
SUQ6OmZyb21JbnQobWVzc2FnZUlEKSwgYWRvcHRQdHIobmV3IEFyZ3VtZW50RGVjb2RlcihtX3Jl
YWRCdWZmZXIuZGF0YSgpLCByZWFsQnVmZmVyU2l6ZSkpKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIEZJWE1FOiBEbyB0aGlzIHNvbWV3aGVyZSBlbHNlLgpAQCAtMTk3LDcgKzE5Niw3IEBAIGJv
b2wgQ29ubmVjdGlvbjo6b3BlbigpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ29ubmVj
dGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBhdXRvX3B0cjxB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK3ZvaWQgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5n
TWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4g
YXJndW1lbnRzKQogewogICAgIC8vIEp1c3QgYmFpbCBpZiB0aGUgaGFuZGxlIGhhcyBiZWVuIGNs
b3NlZC4KICAgICBpZiAobV9jb25uZWN0aW9uUGlwZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkK
SW5kZXg6IFdlYktpdDIvUGxhdGZvcm0vbWFjL1dvcmtRdWV1ZU1hYy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFjLmNwcAkocmV2aXNpb24gNjMwNjMp
CisrKyBXZWJLaXQyL1BsYXRmb3JtL21hYy9Xb3JrUXVldWVNYWMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiwxMyArMjYsMTQgQEAKICNpbmNsdWRlICJXb3JrUXVldWUuaCIKIAogI2luY2x1ZGUg
PG1hY2gvbWFjaF9wb3J0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmIEhB
VkUoRElTUEFUQ0hfSCkKIAogdm9pZCBXb3JrUXVldWU6OmV4ZWN1dGVXb3JrSXRlbSh2b2lkKiBp
dGVtKQogewogICAgIFdvcmtRdWV1ZSogcXVldWUgPSBzdGF0aWNfY2FzdDxXb3JrUXVldWUqPihk
aXNwYXRjaF9nZXRfY29udGV4dChkaXNwYXRjaF9nZXRfY3VycmVudF9xdWV1ZSgpKSk7Ci0gICAg
c3RkOjphdXRvX3B0cjxXb3JrSXRlbT4gd29ya0l0ZW0oc3RhdGljX2Nhc3Q8V29ya0l0ZW0qPihp
dGVtKSk7CisgICAgT3duUHRyPFdvcmtJdGVtPiB3b3JrSXRlbShzdGF0aWNfY2FzdDxXb3JrSXRl
bSo+KGl0ZW0pKTsKICAgICAKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihxdWV1
ZS0+bV9pc1ZhbGlkTXV0ZXgpOwpAQCAtNDMsMTQgKzQ0LDE0IEBAIHZvaWQgV29ya1F1ZXVlOjpl
eGVjdXRlV29ya0l0ZW0odm9pZCogaXQKICAgICB3b3JrSXRlbS0+ZXhlY3V0ZSgpOwogfQogCi12
b2lkIFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKHN0ZDo6YXV0b19wdHI8V29ya0l0ZW0+IGl0ZW0p
Cit2b2lkIFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0p
CiB7Ci0gICAgZGlzcGF0Y2hfYXN5bmNfZihtX2Rpc3BhdGNoUXVldWUsIGl0ZW0ucmVsZWFzZSgp
LCBleGVjdXRlV29ya0l0ZW0pOworICAgIGRpc3BhdGNoX2FzeW5jX2YobV9kaXNwYXRjaFF1ZXVl
LCBpdGVtLmxlYWtQdHIoKSwgZXhlY3V0ZVdvcmtJdGVtKTsKIH0KIAogY2xhc3MgV29ya1F1ZXVl
OjpFdmVudFNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgRXZlbnRTb3VyY2UoTWFjaFBvcnRFdmVudFR5
cGUgZXZlbnRUeXBlLCBkaXNwYXRjaF9zb3VyY2VfdCBkaXNwYXRjaFNvdXJjZSwgc3RkOjphdXRv
X3B0cjxXb3JrSXRlbT4gd29ya0l0ZW0pCisgICAgRXZlbnRTb3VyY2UoTWFjaFBvcnRFdmVudFR5
cGUgZXZlbnRUeXBlLCBkaXNwYXRjaF9zb3VyY2VfdCBkaXNwYXRjaFNvdXJjZSwgUGFzc093blB0
cjxXb3JrSXRlbT4gd29ya0l0ZW0pCiAgICAgICAgIDogbV9ldmVudFR5cGUoZXZlbnRUeXBlKQog
ICAgICAgICAsIG1fZGlzcGF0Y2hTb3VyY2UoZGlzcGF0Y2hTb3VyY2UpCiAgICAgICAgICwgbV93
b3JrSXRlbSh3b3JrSXRlbSkKQEAgLTk3LDEwICs5OCwxMCBAQCBwcml2YXRlOgogICAgIC8vIFRo
aXMgaXMgYSB3ZWFrIHJlZmVyZW5jZSwgc2luY2UgbV9kaXNwYXRjaFNvdXJjZSByZWZlcmVuY2Vz
IHRoZSBldmVudCBzb3VyY2UuCiAgICAgZGlzcGF0Y2hfc291cmNlX3QgbV9kaXNwYXRjaFNvdXJj
ZTsKICAgICAKLSAgICBzdGQ6OmF1dG9fcHRyPFdvcmtJdGVtPiBtX3dvcmtJdGVtOworICAgIE93
blB0cjxXb3JrSXRlbT4gbV93b3JrSXRlbTsKIH07CiAKLXZvaWQgV29ya1F1ZXVlOjpyZWdpc3Rl
ck1hY2hQb3J0RXZlbnRIYW5kbGVyKG1hY2hfcG9ydF90IG1hY2hQb3J0LCBNYWNoUG9ydEV2ZW50
VHlwZSBldmVudFR5cGUsIHN0ZDo6YXV0b19wdHI8V29ya0l0ZW0+IHdvcmtJdGVtKQordm9pZCBX
b3JrUXVldWU6OnJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRsZXIobWFjaF9wb3J0X3QgbWFjaFBv
cnQsIE1hY2hQb3J0RXZlbnRUeXBlIGV2ZW50VHlwZSwgUGFzc093blB0cjxXb3JrSXRlbT4gd29y
a0l0ZW0pCiB7CiAgICAgZGlzcGF0Y2hfc291cmNlX3R5cGVfdCBzb3VyY2VUeXBlID0gMDsKICAg
ICBzd2l0Y2ggKGV2ZW50VHlwZSkgewpAQCAtMTY5LDExICsxNzAsMTEgQEAgdm9pZCBXb3JrUXVl
dWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCiAKICNlbHNlIC8qICFIQVZFKERJU1BBVENIX0gpICov
CiAKLXZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoc3RkOjphdXRvX3B0cjxXb3JrSXRlbT4g
aXRlbSkKK3ZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoUGFzc093blB0cjxXb3JrSXRlbT4g
aXRlbSkKIHsKIH0KIAotdm9pZCBXb3JrUXVldWU6OnJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRs
ZXIobWFjaF9wb3J0X3QsIE1hY2hQb3J0RXZlbnRUeXBlLCBzdGQ6OmF1dG9fcHRyPFdvcmtJdGVt
PikKK3ZvaWQgV29ya1F1ZXVlOjpyZWdpc3Rlck1hY2hQb3J0RXZlbnRIYW5kbGVyKG1hY2hfcG9y
dF90LCBNYWNoUG9ydEV2ZW50VHlwZSwgUGFzc093blB0cjxXb3JrSXRlbT4pCiB7CiB9CiAKSW5k
ZXg6IFdlYktpdDIvUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQuY3BwCShyZXZpc2lvbiA2MzA2MykKKysrIFdl
YktpdDIvUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw5
ICs3NCw5IEBAIHB1YmxpYzoKICAgICBXb3JrSXRlbSogbV93b3JrSXRlbTsKIH07CiAKLXZvaWQg
V29ya1F1ZXVlOjpjb25uZWN0U2lnbmFsKFFPYmplY3QqIG8sIGNvbnN0IGNoYXIqIHNpZ25hbCwg
c3RkOjphdXRvX3B0cjxXb3JrSXRlbT4gd29ya0l0ZW0pCit2b2lkIFdvcmtRdWV1ZTo6Y29ubmVj
dFNpZ25hbChRT2JqZWN0KiBvLCBjb25zdCBjaGFyKiBzaWduYWwsIFBhc3NPd25QdHI8V29ya0l0
ZW0+IHdvcmtJdGVtKQogewotICAgIFdvcmtRdWV1ZTo6V29ya0l0ZW1RdCogaXRlbVF0ID0gbmV3
IFdvcmtRdWV1ZTo6V29ya0l0ZW1RdCh0aGlzLCBvLCBzaWduYWwsIHdvcmtJdGVtLnJlbGVhc2Uo
KSk7CisgICAgV29ya1F1ZXVlOjpXb3JrSXRlbVF0KiBpdGVtUXQgPSBuZXcgV29ya1F1ZXVlOjpX
b3JrSXRlbVF0KHRoaXMsIG8sIHNpZ25hbCwgd29ya0l0ZW0ubGVha1B0cigpKTsKICAgICBpdGVt
UXQtPm1vdmVUb1RocmVhZChtX3dvcmtUaHJlYWQpOwogICAgIG1fc2lnbmFsTGlzdGVuZXJzLmFk
ZChvLCBpdGVtUXQpOwogfQpAQCAtMTE2LDkgKzExNiw5IEBAIHZvaWQgV29ya1F1ZXVlOjpwbGF0
Zm9ybUludmFsaWRhdGUoKQogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3NpZ25hbExpc3RlbmVycyk7
CiB9CiAKLXZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoc3RkOjphdXRvX3B0cjxXb3JrSXRl
bT4gaXRlbSkKK3ZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmsoUGFzc093blB0cjxXb3JrSXRl
bT4gaXRlbSkKIHsKLSAgICBXb3JrUXVldWU6OldvcmtJdGVtUXQqIGl0ZW1RdCA9IG5ldyBXb3Jr
UXVldWU6OldvcmtJdGVtUXQodGhpcywgaXRlbS5yZWxlYXNlKCkpOworICAgIFdvcmtRdWV1ZTo6
V29ya0l0ZW1RdCogaXRlbVF0ID0gbmV3IFdvcmtRdWV1ZTo6V29ya0l0ZW1RdCh0aGlzLCBpdGVt
LmxlYWtQdHIoKSk7CiAgICAgaXRlbVF0LT5zdGFydFRpbWVyKDApOwogICAgIGl0ZW1RdC0+bW92
ZVRvVGhyZWFkKG1fd29ya1RocmVhZCk7CiB9CkluZGV4OiBXZWJLaXQyL1BsYXRmb3JtL3dpbi9X
b3JrUXVldWVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxhdGZvcm0vd2luL1dvcmtR
dWV1ZVdpbi5jcHAJKHJldmlzaW9uIDYzMDYzKQorKysgV2ViS2l0Mi9QbGF0Zm9ybS93aW4vV29y
a1F1ZXVlV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDEyIEBACiAjaW5jbHVk
ZSA8cHJvY2Vzcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAotdm9pZCBXb3JrUXVl
dWU6OnJlZ2lzdGVySGFuZGxlKEhBTkRMRSBoYW5kbGUsIHN0ZDo6YXV0b19wdHI8V29ya0l0ZW0+
IGl0ZW0pCit2b2lkIFdvcmtRdWV1ZTo6cmVnaXN0ZXJIYW5kbGUoSEFORExFIGhhbmRsZSwgUGFz
c093blB0cjxXb3JrSXRlbT4gaXRlbSkKIHsKICAgICAvLyBBZGQgdGhlIGl0ZW0uCiAgICAgewog
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9oYW5kbGVzTG9jayk7Ci0gICAgICAgIG1faGFu
ZGxlcy5zZXQoaGFuZGxlLCBpdGVtLnJlbGVhc2UoKSk7CisgICAgICAgIG1faGFuZGxlcy5zZXQo
aGFuZGxlLCBpdGVtLmxlYWtQdHIoKSk7CiAgICAgfQogCiAgICAgLy8gU2V0IHRoZSB3b3JrIGV2
ZW50LgpAQCAtMTAyLDEwICsxMDIsMTAgQEAgdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxp
ZGF0ZSgpCiAgICAgLy8gRklYTUU6IFN0b3AgdGhlIHRocmVhZCBhbmQgZG8gb3RoZXIgY2xlYW51
cC4KIH0KIAotdm9pZCBXb3JrUXVldWU6OnNjaGVkdWxlV29yayhzdGQ6OmF1dG9fcHRyPFdvcmtJ
dGVtPiBpdGVtKQordm9pZCBXb3JrUXVldWU6OnNjaGVkdWxlV29yayhQYXNzT3duPFdvcmtJdGVt
PiBpdGVtKQogewogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dvcmtJdGVtUXVldWVMb2NrKTsK
LSAgICBtX3dvcmtJdGVtUXVldWUuYXBwZW5kKGl0ZW0ucmVsZWFzZSgpKTsKKyAgICBtX3dvcmtJ
dGVtUXVldWUuYXBwZW5kKGl0ZW0ubGVha1B0cigpKTsKIAogICAgIC8vIFNldCB0aGUgd29yayBl
dmVudC4KICAgICA6OlNldEV2ZW50KG1fcGVyZm9ybVdvcmtFdmVudCk7CkBAIC0xMjAsNyArMTIw
LDcgQEAgdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrKCkKICAgICB9CiAKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHdvcmtJdGVtUXVldWUuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgc3Rk
OjphdXRvX3B0cjxXb3JrSXRlbT4gaXRlbSh3b3JrSXRlbVF1ZXVlW2ldKTsKKyAgICAgICAgT3du
UHRyPFdvcmtJdGVtPiBpdGVtKHdvcmtJdGVtUXVldWVbaV0pOwogCiAgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2lzVmFsaWRNdXRleCk7CiAgICAgICAgIGlmIChtX2lzVmFsaWQpCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJv
eHkuY3BwCShyZXZpc2lvbiA2MzA2MykKKysrIFdlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRh
dGVEcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksOCArNTksOCBAQCB2
b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpwYWluCiAgICAgICAgIGlmIChwYWdl
LT5wcm9jZXNzKCktPmlzTGF1bmNoaW5nKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgc3RkOjphdXRvX3B0cjxDb3JlSVBDOjpBcmd1bWVudERlY29kZXI+IGFyZ3VtZW50cyA9IHBh
Z2UtPnByb2Nlc3MoKS0+Y29ubmVjdGlvbigpLT53YWl0Rm9yKERyYXdpbmdBcmVhUHJveHlNZXNz
YWdlOjpEaWRTZXRTaXplLCBwYWdlLT5wYWdlSUQoKSwgMC4wNCk7Ci0gICAgICAgIGlmIChhcmd1
bWVudHMuZ2V0KCkpCisgICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudERlY29kZXI+IGFy
Z3VtZW50cyA9IHBhZ2UtPnByb2Nlc3MoKS0+Y29ubmVjdGlvbigpLT53YWl0Rm9yKERyYXdpbmdB
cmVhUHJveHlNZXNzYWdlOjpEaWRTZXRTaXplLCBwYWdlLT5wYWdlSUQoKSwgMC4wNCk7CisgICAg
ICAgIGlmIChhcmd1bWVudHMpCiAgICAgICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZShwYWdlLT5w
cm9jZXNzKCktPmNvbm5lY3Rpb24oKSwgQ29yZUlQQzo6TWVzc2FnZUlEKERyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlOjpEaWRTZXRTaXplKSwgKmFyZ3VtZW50cy5nZXQoKSk7CiAgICAgfQogCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDYzMDYzKQorKysg
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTIsNyArOTIsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29ubmVjdCgpCiAgICAgbV9wcm9j
ZXNzTGF1bmNoZXIgPSBQcm9jZXNzTGF1bmNoZXI6OmNyZWF0ZSh0aGlzKTsKIH0KIAotYm9vbCBX
ZWJQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IHN0ZDo6YXV0b19wdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiBhcmd1bWVudHMpCitib29s
IFdlYlByb2Nlc3NQcm94eTo6c2VuZE1lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKIHsKICAg
ICAvLyBJZiB3ZSdyZSB3YWl0aW5nIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gbGF1bmNoLCB3ZSBu
ZWVkIHRvIHN0YXNoIGF3YXkgdGhlIG1lc3NhZ2VzIHNvIHdlIGNhbiBzZW5kIHRoZW0gb25jZSB3
ZSBoYXZlCiAgICAgLy8gYSBDb3JlSVBDIGNvbm5lY3Rpb24uCkBAIC0zMDEsNyArMzAxLDcgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZwogICAgIAogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5kaW5nTWVzc2FnZXMuc2l6ZSgpOyArK2kpIHsKICAgICAg
ICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6T3V0Z29pbmdNZXNzYWdlJiBvdXRnb2luZ01lc3NhZ2Ug
PSBtX3BlbmRpbmdNZXNzYWdlc1tpXTsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2Fn
ZShvdXRnb2luZ01lc3NhZ2UubWVzc2FnZUlEKCksIHN0ZDo6YXV0b19wdHI8Q29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyPihvdXRnb2luZ01lc3NhZ2UuYXJndW1lbnRzKCkpKTsKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kTWVzc2FnZShvdXRnb2luZ01lc3NhZ2UubWVzc2FnZUlEKCksIGFkb3B0
UHRyKG91dGdvaW5nTWVzc2FnZS5hcmd1bWVudHMoKSkpOwogICAgIH0KIAogICAgIG1fcGVuZGlu
Z01lc3NhZ2VzLmNsZWFyKCk7ICAgIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgJKHJldmlzaW9uIDYzMDYzKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
dFVwQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOwogI2VuZGlmCiAKLSAgICBib29sIHNlbmRNZXNz
YWdlKENvcmVJUEM6Ok1lc3NhZ2VJRCwgc3RkOjphdXRvX3B0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+KTsKKyAgICBib29sIHNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJRCwgUGFzc093
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+KTsKIAogICAgIHZvaWQgZm9yd2FyZE1lc3Nh
Z2VUb1dlYkNvbnRleHQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CiAgICAgdm9pZCBnZXRQbHVn
aW5zKGJvb2wgcmVmcmVzaCwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7CkBAIC0xMjIs
MTAgKzEyMiwxMCBAQCBwcml2YXRlOgogdGVtcGxhdGU8dHlwZW5hbWUgRSwgdHlwZW5hbWUgVD4K
IGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5h
dGlvbklELCBjb25zdCBUJiBhcmd1bWVudHMpCiB7Ci0gICAgc3RkOjphdXRvX3B0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+IGFyZ3VtZW50RW5jb2RlcihuZXcgQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKGRlc3RpbmF0aW9uSUQpKTsKKyAgICBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPiBhcmd1bWVudEVuY29kZXIobmV3IENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlcihkZXN0aW5h
dGlvbklEKSk7CiAgICAgYXJndW1lbnRFbmNvZGVyLT5lbmNvZGUoYXJndW1lbnRzKTsKIAotICAg
IHJldHVybiBzZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQobWVzc2FnZUlEKSwgYXJndW1l
bnRFbmNvZGVyKTsKKyAgICByZXR1cm4gc2VuZE1lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEKG1l
c3NhZ2VJRCksIGFyZ3VtZW50RW5jb2Rlci5yZWxlYXNlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQK
</data>
<flag name="review"
          id="49299"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>