<?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>204491</bug_id>
          
          <creation_ts>2019-11-21 22:32:52 -0800</creation_ts>
          <short_desc>Associate each microtask with a task group and remove ActiveDOMCallbackMicrotask</short_desc>
          <delta_ts>2019-11-22 17:53:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>204042</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1592664</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-21 22:32:52 -0800</bug_when>
    <thetext>We should associate each microtask with a EventLoopTaskGroup like we do with a regular task.
This will allow suspension &amp; stopping of each microtask when the task group&apos;s script execution context is suspend or stopped,
and eliminates the need for ActiveDOMCallbackMicrotask.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592666</commentid>
    <comment_count>1</comment_count>
      <attachid>384125</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-21 22:44:16 -0800</bug_when>
    <thetext>Created attachment 384125
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592667</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-21 22:45:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/57420554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592863</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-22 10:12:10 -0800</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592925</commentid>
    <comment_count>4</comment_count>
      <attachid>384125</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-22 11:31:07 -0800</bug_when>
    <thetext>Comment on attachment 384125
Cleanup

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

nice!

&gt; Source/WebCore/ChangeLog:12
&gt; +        suspsned or stopped along with the script execution context without having to wrap each

typo suspended</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593129</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-22 17:53:21 -0800</bug_when>
    <thetext>Committed r252820: &lt;https://trac.webkit.org/changeset/252820&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384125</attachid>
            <date>2019-11-21 22:44:16 -0800</date>
            <delta_ts>2019-11-22 11:31:07 -0800</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-204491-20191121224415.patch</filename>
            <type>text/plain</type>
            <size>24462</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjc2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTIxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFzc29jaWF0ZSBlYWNoIG1pY3Jv
dGFzayB3aXRoIGEgdGFzayBncm91cCBhbmQgcmVtb3ZlIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90
YXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ0
OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGFzc29jaWF0ZXMgZWFjaCBtaWNyb3Rhc2sgd2l0aCBhIEV2ZW50TG9vcFRhc2tHcm91
cCBieSBtYWtpbmcgTWljcm90YXNrUXVldWUKKyAgICAgICAgdXNlIEV2ZW50TG9vcFRhc2tHcm91
cCBpbiBwbGFjZSBvZiBNaWNyb3Rhc2ssIGVsaW1pbmF0aW5nIHRoZSBsYXR0ZXIuCisKKyAgICAg
ICAgVGhpcyBhbGxvd3MgbWljcm90YXNrcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBzY3JpcHQgZXhl
Y3V0aW9uIGNvbnRleHQncyB0ZXN0IGdyb3VwIHRvIGJlCisgICAgICAgIHN1c3BzbmVkIG9yIHN0
b3BwZWQgYWxvbmcgd2l0aCB0aGUgc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0IHdpdGhvdXQgaGF2
aW5nIHRvIHdyYXAgZWFjaAorICAgICAgICBtaWNyb3Rhc2sgaW4gQWN0aXZlRE9NQ2FsbGJhY2tN
aWNyb3Rhc2ssIHdoaWNoIGlzIG5vdyByZWR1bmRhbnQgYW5kIHRoZXJlZm9yZSBkZWxldGVkLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSBzaG91bGQgYmUgbm8gb2JzZXJ2YWJs
ZSBiZWhhdmlvcmFsIGNoYW5nZSBoZXJlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
d0Jhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3ApOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlOjpxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wKToKKyAgICAgICAgKiBk
b20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRv
bS9BY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9F
dmVudExvb3AuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29wOjpxdWV1ZVRhc2spOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRMb29wOjpxdWV1ZU1pY3JvdGFzayk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlTWljcm90YXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50TG9vcFRhc2tHcm91cDo6cXVldWVNaWNyb3Rhc2tDYWxsYmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL0V2ZW50TG9vcC5oOgorICAgICAgICAqIGRvbS9NaWNyb3Rhc2tz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvdGFzazo6cmVtb3ZlU2VsZkZyb21RdWV1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNaWNyb3Rhc2tRdWV1ZTo6YXBwZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1pY3JvdGFza1F1ZXVlOjpyZW1vdmUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TWljcm90YXNrUXVldWU6OnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KTog
TGlrZSBFdmVudExvb3A6OnJ1biwgc2tpcCBhbnkgdGFzaworICAgICAgICBhc3NvY2lhdGVkIHdp
dGggYSBzdG9wcGVkIGdyb3VwIChzY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQpIGFuZCBhZGQgYmFj
ayBhbnkgdGFzayBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggYSBzdXNwZW5lZCBncm91cDsgdGhl
c2UgYXJlIHRhc2tzIHdoaWNoIHVzZWQgdG8gcmV0dXJuIE1pY3JvdGFzazo6UmVzdWx0OjpLZWVw
SW5RdWV1ZS4KKyAgICAgICAgKiBkb20vTWljcm90YXNrcy5oOgorICAgICAgICAoV2ViQ29yZTo6
TWljcm90YXNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1pY3JvdGFzazo6fk1pY3Jv
dGFzayk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL1Rhc2tTb3VyY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlRhc2tTb3VyY2UpOiBBZGRlZCBNaWNyb3Rhc2sgYXMgYSBuZXcgdGFzayBzb3VyY2Uu
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9u
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnF1ZXVlTWljcm9UYXNrKToKKwogMjAxOS0xMS0yMSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBlcmltZW50YWwgc3VwcG9ydCBmb3IgSERS
IG1lZGlhIHF1ZXJ5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjUyNzYyKQorKysgU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgxOCw3ICs4MTgsNiBA
QCBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKIGRvbS9BYm9ydENvbnRyb2xsZXIuY3BwCiBk
b20vQWJvcnRTaWduYWwuY3BwCiBkb20vQWN0aXZlRE9NQ2FsbGJhY2suY3BwCi1kb20vQWN0aXZl
RE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwCiBkb20vQWN0aXZlRE9NT2JqZWN0LmNwcAogZG9tL0Fs
bERlc2NlbmRhbnRzQ29sbGVjdGlvbi5jcHAKIGRvbS9BbmltYXRpb25FdmVudC5jcHAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDI1Mjc2MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjMwOCw3ICsyMzA4LDYgQEAKIAkJN0ND
Njk5NDExOTFFQzVGNTAwQUYyMjcwIC8qIEpTV2ViS2l0TmFtZXNwYWNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0M2OTkzRjE5MUVDNUY1MDBBRjIy
NzAgLyogSlNXZWJLaXROYW1lc3BhY2UuaCAqLzsgfTsKIAkJN0NDOTcyMkUxRjkzRTMzNjAwMDRE
NENGIC8qIFNldHRpbmdzQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NDNjYwOTkxRjkzMDU3ODAwRDUwMEU5IC8qIFNldHRpbmdzQmFzZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDQ0VCRkMw
MUREOEY2QUIwMDJDNDBCOCAvKiBTVkdMZW5ndGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFNThENTMxREQ3QjA5MzAwMTI4NTUyIC8qIFNW
R0xlbmd0aFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJN0NEMEJBMDUxQjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNhbGxiYWNrTWlj
cm90YXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAq
LzsgfTsKIAkJN0NEMEUyQjgxRjgwQTQ4MjAwMTZBNENFIC8qIEFib3J0Q29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NEMEUyQjUxRjgw
QTQ4MjAwMTZBNENFIC8qIEFib3J0Q29udHJvbGxlci5oICovOyB9OwogCQk3Q0QwRTJCRjFGODBB
NTZFMDAxNkE0Q0UgLyogQWJvcnRTaWduYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRDBFMkJDMUY4MEE1NkUwMDE2QTRDRSAvKiBBYm9ydFNpZ25h
bC5oICovOyB9OwogCQk3Q0Q0OTRDRDFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NENDk0
Q0IxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTk2MSw4ICs5OTYwLDYgQEAKIAkJ
N0NDNjYwOUIxRjkzMDU3OTAwRDUwMEU5IC8qIFNldHRpbmdzQmFzZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXR0aW5nc0Jhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Q0M2OTkzRTE5MUVDNUY1MDBBRjIyNzAgLyogSlNXZWJLaXROYW1l
c3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRO
YW1lc3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0M2OTkzRjE5MUVD
NUY1MDBBRjIyNzAgLyogSlNXZWJLaXROYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXZWJLaXROYW1lc3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJN0NEMEJBMDIxQjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90
YXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjdGl2ZURPTUNh
bGxiYWNrTWljcm90YXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NEMEJB
MDMxQjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDBFMkI1MUY4MEE0ODIwMDE2QTRDRSAv
KiBBYm9ydENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWJvcnRDb250cm9sbGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDBFMkI2MUY4MEE0ODIwMDE2QTRDRSAvKiBB
Ym9ydENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWJvcnRDb250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NEMEUyQjcxRjgwQTQ4MjAwMTZBNENF
IC8qIEFib3J0Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWJvcnRDb250cm9sbGVyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3ODE4LDggKzI3ODE1LDYgQEAKIAkJCQk3Q0QwRTJC
RTFGODBBNTZFMDAxNkE0Q0UgLyogQWJvcnRTaWduYWwuaWRsICovLAogCQkJCTdDNTIyMjk3MUUx
REFFMTYwMDJDQjhGNyAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgKi8sCiAJCQkJN0M1MjIyOTgx
RTFEQUUxNjAwMkNCOEY3IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmggKi8sCi0JCQkJN0NEMEJBMDIx
QjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcCAqLywKLQkJ
CQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2su
aCAqLywKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNw
cCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0Lmgg
Ki8sCiAJCQkJRTNBRTZDRDEyMjUyRjI3MDAwQzcwQjUwIC8qIEFsbERlc2NlbmRhbnRzQ29sbGVj
dGlvbi5jcHAgKi8sCkBAIC0yODgyNSw3ICsyODgyMCw2IEBACiAJCQkJQTkxQzlGQkYxQjY1ODZE
RTAwQUZGRDU0IC8qIEFjY2Vzc2liaWxpdHlUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOTFD
OUZDMzFCNjU5QTY3MDBBRkZENTQgLyogQWNjZXNzaWJpbGl0eVRyZWVJdGVtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QzUyMjI5OTFFMURBRTFDMDAyQ0I4RjcgLyogQWN0aXZlRE9NQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAotCQkJCTdDRDBCQTA1MUI4Rjc5QzkwMDVDRUJCRSAvKiBBY3RpdmVE
T01DYWxsYmFja01pY3JvdGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDNERFNjkwRUE3NUMx
RTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI0RUU1
NTAxREM4MEQ3RjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCShyZXZpc2lvbiAyNTI3NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsy
NCw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgi
CiAKLSNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oIgogI2luY2x1ZGUgIkNo
cm9tZS5oIgogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCkBA
IC0yMTEsMTAgKzIxMCw5IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpxdWV1ZU1pY3JvdGFza1Rv
RXYKIAogICAgIGF1dG8gY2FsbGJhY2sgPSBKU01pY3JvdGFza0NhbGxiYWNrOjpjcmVhdGUodGhp
c09iamVjdCwgV1RGTW92ZSh0YXNrKSk7CiAgICAgYXV0byYgZXZlbnRMb29wID0gdGhpc09iamVj
dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9vcCgpOwotICAgIGF1dG8gbWljcm90
YXNrID0gbWFrZVVuaXF1ZTxBY3RpdmVET01DYWxsYmFja01pY3JvdGFzaz4oZXZlbnRMb29wLm1p
Y3JvdGFza1F1ZXVlKCksICp0aGlzT2JqZWN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgW2Nh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgZXZlbnRMb29wLnF1
ZXVlTWljcm90YXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewog
ICAgICAgICBjYWxsYmFjay0+Y2FsbCgpOwogICAgIH0pOwotICAgIGV2ZW50TG9vcC5xdWV1ZU1p
Y3JvdGFza0NhbGxiYWNrKFdURk1vdmUobWljcm90YXNrKSk7CiB9CiAKIHZvaWQgSlNET01XaW5k
b3dCYXNlOjp3aWxsUmVtb3ZlRnJvbVdpbmRvd1Byb3h5KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAJKHJl
dmlzaW9uIDI1Mjc2MikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgiCiAKLSNp
bmNsdWRlICJBY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oIgogI2luY2x1ZGUgIkRPTVdyYXBw
ZXJXb3JsZC5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFs
T2JqZWN0VGFzay5oIgpAQCAtMTM3LDEwICsxMzYsOSBAQCB2b2lkIEpTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlOjpxdWV1ZU1pY3JvCiAKICAgICBhdXRvIGNhbGxiYWNrID0gSlNNaWNyb3Rhc2tDYWxs
YmFjazo6Y3JlYXRlKHRoaXNPYmplY3QsIFdURk1vdmUodGFzaykpOwogICAgIGF1dG8mIGNvbnRl
eHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKLSAgICBhdXRvIG1pY3JvdGFzayA9IG1ha2VVbmlx
dWU8QWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2s+KGNvbnRleHQuZXZlbnRMb29wKCkubWljcm90
YXNrUXVldWUoKSwgY29udGV4dCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0
YWJsZSB7CisgICAgY29udGV4dC5ldmVudExvb3AoKS5xdWV1ZU1pY3JvdGFzayhbY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgY2FsbGJhY2stPmNhbGwo
KTsKICAgICB9KTsKLSAgICBjb250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlTWljcm90YXNrQ2FsbGJh
Y2soV1RGTW92ZShtaWNyb3Rhc2spKTsKIH0KIAogSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCosIFdvcmtlckdsb2JhbFNj
b3BlJiB3b3JrZXJHbG9iYWxTY29wZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01DYWxsYmFja01pY3JvdGFzay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcAkocmV2aXNpb24gMjUyNzYyKQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1BY3RpdmVET01DYWxsYmFja01pY3JvdGFzazo6QWN0aXZlRE9NQ2FsbGJhY2tNaWNy
b3Rhc2soTWljcm90YXNrUXVldWUmIHF1ZXVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKLSAgICA6IEFjdGl2
ZURPTUNhbGxiYWNrKCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICwgbV9xdWV1ZShxdWV1
ZSkKLSAgICAsIG1fdGFzayhXVEZNb3ZlKHRhc2spKQotewotfQotCi1BY3RpdmVET01DYWxsYmFj
a01pY3JvdGFzazo6fkFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrKCkgPSBkZWZhdWx0OwotCi1N
aWNyb3Rhc2s6OlJlc3VsdCBBY3RpdmVET01DYWxsYmFja01pY3JvdGFzazo6cnVuKCkKLXsKLSAg
ICBpZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCi0gICAgICAgIHJldHVybiBSZXN1bHQ6OktlZXBJ
blF1ZXVlOwotCi0gICAgbV90YXNrKCk7Ci0gICAgcmV0dXJuIFJlc3VsdDo6RG9uZTsKLX0KLQot
dm9pZCBBY3RpdmVET01DYWxsYmFja01pY3JvdGFzazo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0g
ICAgLy8gTk9URTogQ2FsbGluZyB0aGUgZnVuY3Rpb24gYmVsb3cgd2lsbCBjYXVzZSB0aGlzIHRv
IGJlIGRlc3Ryb3llZC4KLSAgICByZW1vdmVTZWxmRnJvbVF1ZXVlKG1fcXVldWUpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9N
Q2FsbGJhY2tNaWNyb3Rhc2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaAkocmV2aXNpb24gMjUyNzYyKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmgJKG5vbmV4aXN0ZW50KQpAQCAt
MSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRl
ICJBY3RpdmVET01DYWxsYmFjay5oIgotI2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKLSNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBBY3RpdmVE
T01DYWxsYmFja01pY3JvdGFzayBmaW5hbCA6IHB1YmxpYyBNaWNyb3Rhc2ssIHB1YmxpYyBBY3Rp
dmVET01DYWxsYmFjayB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2soTWljcm90YXNrUXVl
dWUmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5BY3RpdmVET01DYWxsYmFja01pY3JvdGFzaygp
OwotCi0gICAgUmVzdWx0IHJ1bigpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZvaWQgY29u
dGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOwotCi0gICAgLy8gRklYTUU6IEl0IHNob3VsZCBub3Qg
YmUgbmVjZXNzYXJ5IHRvIGhhdmUgdGhlIHF1ZXVlIGFzIGEgbWVtYmVyLiBJbnN0ZWFkLCBpdCBz
aG91bGQKLSAgICAvLyBiZSBhY2Nlc3NlZCB2aWEgdGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IHdoaWNoIHNob3VsZCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSByZWxldmVudAotICAgIC8vIHF1
ZXVlLgotICAgIE1pY3JvdGFza1F1ZXVlJiBtX3F1ZXVlOwotICAgIFdURjo6RnVuY3Rpb248dm9p
ZCAoKT4gbV90YXNrOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TG9vcC5jcHAJKHJldmlzaW9uIDI1Mjc2MikKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudExvb3AuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyMSArMjYsMjIgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKIAotI2luY2x1ZGUgIkFjdGl2
ZURPTUNhbGxiYWNrTWljcm90YXNrLmgiCiAjaW5jbHVkZSAiTWljcm90YXNrcy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRXZlbnRMb29wOjpxdWV1ZVRhc2soc3RkOjp1bmlxdWVf
cHRyPEV2ZW50TG9vcFRhc2s+JiYgdGFzaykKIHsKKyAgICBBU1NFUlQodGFzay0+dGFza1NvdXJj
ZSgpICE9IFRhc2tTb3VyY2U6Ok1pY3JvdGFzayk7CiAgICAgQVNTRVJUKHRhc2stPmdyb3VwKCkp
OwogICAgIEFTU0VSVChpc0NvbnRleHRUaHJlYWQoKSk7CiAgICAgc2NoZWR1bGVUb1J1bklmTmVl
ZGVkKCk7CiAgICAgbV90YXNrcy5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CiB9CiAKLXZvaWQgRXZl
bnRMb29wOjpxdWV1ZU1pY3JvdGFzayhzdGQ6OnVuaXF1ZV9wdHI8TWljcm90YXNrPiYmIG1pY3Jv
dGFzaykKK3ZvaWQgRXZlbnRMb29wOjpxdWV1ZU1pY3JvdGFzayhzdGQ6OnVuaXF1ZV9wdHI8RXZl
bnRMb29wVGFzaz4mJiBtaWNyb3Rhc2spCiB7CisgICAgQVNTRVJUKG1pY3JvdGFzay0+dGFza1Nv
dXJjZSgpID09IFRhc2tTb3VyY2U6Ok1pY3JvdGFzayk7CiAgICAgbWljcm90YXNrUXVldWUoKS5h
cHBlbmQoV1RGTW92ZShtaWNyb3Rhc2spKTsKIH0KIApAQCAtMTMzLDM1ICsxMzQsMTEgQEAgdm9p
ZCBFdmVudExvb3BUYXNrR3JvdXA6OnF1ZXVlVGFzayhUYXNrUwogICAgIHJldHVybiBxdWV1ZVRh
c2sobWFrZVVuaXF1ZTxFdmVudExvb3BGdW5jdGlvbkRpc3BhdGNoVGFzaz4oc291cmNlLCAqdGhp
cywgV1RGTW92ZShmdW5jdGlvbikpKTsKIH0KIAotdm9pZCBFdmVudExvb3BUYXNrR3JvdXA6OnF1
ZXVlTWljcm90YXNrQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEFjdGl2ZURPTUNhbGxiYWNrTWlj
cm90YXNrPiYmIG1pY3JvdGFzaykKLXsKLSAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6U3RvcHBl
ZCB8fCAhbV9ldmVudExvb3ApCi0gICAgICAgIHJldHVybjsKLSAgICBtX2V2ZW50TG9vcC0+cXVl
dWVNaWNyb3Rhc2soV1RGTW92ZShtaWNyb3Rhc2spKTsKLX0KLQotY2xhc3MgVm9pZE1pY3JvdGFz
ayBmaW5hbCA6IHB1YmxpYyBNaWNyb3Rhc2sgewotcHVibGljOgotICAgIGV4cGxpY2l0IFZvaWRN
aWNyb3Rhc2soRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQotICAgICAgICA6IG1fZnVuY3Rp
b24oV1RGTW92ZShmdW5jdGlvbikpCi0gICAgewotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZXN1
bHQgcnVuKCkgZmluYWwKLSAgICB7Ci0gICAgICAgIG1fZnVuY3Rpb24oKTsKLSAgICAgICAgcmV0
dXJuIFJlc3VsdDo6RG9uZTsKLSAgICB9Ci0KLSAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rp
b247Ci19OwotCiB2b2lkIEV2ZW50TG9vcFRhc2tHcm91cDo6cXVldWVNaWNyb3Rhc2soRXZlbnRM
b29wOjpUYXNrRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0
ZTo6U3RvcHBlZCB8fCAhbV9ldmVudExvb3ApCiAgICAgICAgIHJldHVybjsKLSAgICBtX2V2ZW50
TG9vcC0+cXVldWVNaWNyb3Rhc2sobWFrZVVuaXF1ZTxWb2lkTWljcm90YXNrPihXVEZNb3ZlKGZ1
bmN0aW9uKSkpOworICAgIG1fZXZlbnRMb29wLT5xdWV1ZU1pY3JvdGFzayhtYWtlVW5pcXVlPEV2
ZW50TG9vcEZ1bmN0aW9uRGlzcGF0Y2hUYXNrPihUYXNrU291cmNlOjpNaWNyb3Rhc2ssICp0aGlz
LCBXVEZNb3ZlKGZ1bmN0aW9uKSkpOwogfQogCiB2b2lkIEV2ZW50TG9vcFRhc2tHcm91cDo6cGVy
Zm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TG9vcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExvb3AuaAkocmV2
aXNpb24gMjUyNzYyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TG9vcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlVGFzayhzdGQ6
OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFzaz4mJik7CiAKICAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcXVldWUtYS1taWNyb3Rhc2sK
LSAgICB2b2lkIHF1ZXVlTWljcm90YXNrKHN0ZDo6dW5pcXVlX3B0cjxNaWNyb3Rhc2s+JiYpOwor
ICAgIHZvaWQgcXVldWVNaWNyb3Rhc2soc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+JiYp
OwogCiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBw
YXBpcy5odG1sI3BlcmZvcm0tYS1taWNyb3Rhc2stY2hlY2twb2ludAogICAgIHZvaWQgcGVyZm9y
bU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKQEAgLTE0MSwxMiArMTQxLDkgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcXVldWVUYXNrKFRhc2tTb3VyY2UsIEV2ZW50TG9vcDo6VGFz
a0Z1bmN0aW9uJiYpOwogCiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3F1ZXVlLWEtbWljcm90YXNrCi0gICAgdm9pZCBxdWV1ZU1p
Y3JvdGFzayhFdmVudExvb3A6OlRhc2tGdW5jdGlvbiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHF1ZXVlTWljcm90YXNrKEV2ZW50TG9vcDo6VGFza0Z1bmN0aW9uJiYpOwogICAgIE1pY3Jv
dGFza1F1ZXVlJiBtaWNyb3Rhc2tRdWV1ZSgpIHsgcmV0dXJuIG1fZXZlbnRMb29wLT5taWNyb3Rh
c2tRdWV1ZSgpOyB9CiAKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBhbmQgQWN0aXZlRE9N
Q2FsbGJhY2tNaWNyb3Rhc2sgc2hvdWxkIGdvIGF3YXkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBxdWV1ZU1pY3JvdGFza0NhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxBY3RpdmVET01DYWxsYmFj
a01pY3JvdGFzaz4mJik7Ci0KICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcGVyZm9ybS1hLW1pY3JvdGFzay1jaGVja3BvaW50CiAg
ICAgdm9pZCBwZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vTWljcm90YXNrcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L01pY3JvdGFza3MuY3BwCShyZXZpc2lvbiAyNTI3NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
TWljcm90YXNrcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl
ICJNaWNyb3Rhc2tzLmgiCiAKICNpbmNsdWRlICJDb21tb25WTS5oIgorI2luY2x1ZGUgIkV2ZW50
TG9vcC5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTMwLDExICsz
MSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBNaWNyb3Rhc2s6OnJlbW92ZVNl
bGZGcm9tUXVldWUoTWljcm90YXNrUXVldWUmIHF1ZXVlKQotewotICAgIHF1ZXVlLnJlbW92ZSgq
dGhpcyk7Ci19Ci0KIE1pY3JvdGFza1F1ZXVlOjpNaWNyb3Rhc2tRdWV1ZShKU0M6OlZNJiB2bSkK
ICAgICA6IG1fdm0obWFrZVJlZih2bSkpCiAgICAgLCBtX3RpbWVyKCp0aGlzLCAmTWljcm90YXNr
UXVldWU6OnRpbWVyRmlyZWQpCkBAIC00MywyMyArMzksMTMgQEAgTWljcm90YXNrUXVldWU6Ok1p
Y3JvdGFza1F1ZXVlKEpTQzo6Vk0mIAogCiBNaWNyb3Rhc2tRdWV1ZTo6fk1pY3JvdGFza1F1ZXVl
KCkgPSBkZWZhdWx0OwogCi12b2lkIE1pY3JvdGFza1F1ZXVlOjphcHBlbmQoc3RkOjp1bmlxdWVf
cHRyPE1pY3JvdGFzaz4mJiB0YXNrKQordm9pZCBNaWNyb3Rhc2tRdWV1ZTo6YXBwZW5kKHN0ZDo6
dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmIHRhc2spCiB7CiAgICAgbV9taWNyb3Rhc2tRdWV1
ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CiAKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwX3Mp
OwogfQogCi12b2lkIE1pY3JvdGFza1F1ZXVlOjpyZW1vdmUoY29uc3QgTWljcm90YXNrJiB0YXNr
KQotewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9taWNyb3Rhc2tRdWV1ZS5zaXplKCk7
ICsraSkgewotICAgICAgICBpZiAobV9taWNyb3Rhc2tRdWV1ZVtpXS5nZXQoKSA9PSAmdGFzaykg
ewotICAgICAgICAgICAgbV9taWNyb3Rhc2tRdWV1ZS5yZW1vdmUoaSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIHZvaWQgTWljcm90YXNrUXVldWU6OnRpbWVy
RmlyZWQoKQogewogICAgIHBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CkBAIC03MywxOCAr
NTksMTcgQEAgdm9pZCBNaWNyb3Rhc2tRdWV1ZTo6cGVyZm9ybU1pY3JvdGFza0NoZQogICAgIFNl
dEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX3BlcmZvcm1pbmdNaWNyb3Rhc2tDaGVja3BvaW50LCB0
cnVlKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodm0oKSk7CiAKLSAgICBWZWN0b3I8
c3RkOjp1bmlxdWVfcHRyPE1pY3JvdGFzaz4+IHRvS2VlcDsKKyAgICBWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPEV2ZW50TG9vcFRhc2s+PiB0b0tlZXA7CiAgICAgd2hpbGUgKCFtX21pY3JvdGFza1F1
ZXVlLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPE1pY3JvdGFz
az4+IHF1ZXVlID0gV1RGTW92ZShtX21pY3JvdGFza1F1ZXVlKTsKKyAgICAgICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPj4gcXVldWUgPSBXVEZNb3ZlKG1fbWljcm90YXNr
UXVldWUpOwogICAgICAgICBmb3IgKGF1dG8mIHRhc2sgOiBxdWV1ZSkgewotICAgICAgICAgICAg
YXV0byByZXN1bHQgPSB0YXNrLT5ydW4oKTsKLSAgICAgICAgICAgIHN3aXRjaCAocmVzdWx0KSB7
Ci0gICAgICAgICAgICBjYXNlIE1pY3JvdGFzazo6UmVzdWx0OjpEb25lOgotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBNaWNyb3Rhc2s6OlJlc3VsdDo6S2VlcEluUXVl
dWU6CisgICAgICAgICAgICBhdXRvKiBncm91cCA9IHRhc2stPmdyb3VwKCk7CisgICAgICAgICAg
ICBpZiAoIWdyb3VwIHx8IGdyb3VwLT5pc1N0b3BwZWRQZXJtYW5lbnRseSgpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGdyb3VwLT5pc1N1c3BlbmRlZCgpKQog
ICAgICAgICAgICAgICAgIHRvS2VlcC5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGFzay0+ZXhlY3V0ZSgpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vTWljcm90YXNrcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9NaWNyb3Rhc2tzLmgJKHJldmlzaW9uIDI1Mjc2MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9N
aWNyb3Rhc2tzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDQ3ICszMSwyNSBAQCBjbGFzcyBWTTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNaWNyb3Rhc2tRdWV1ZTsKK2NsYXNzIEV2
ZW50TG9vcFRhc2s7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBNaWNy
b3Rhc2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIHZpcnR1
YWwgfk1pY3JvdGFzaygpCi0gICAgewotICAgIH0KLQotICAgIGVudW0gY2xhc3MgUmVzdWx0IHsK
LSAgICAgICAgRG9uZSwKLSAgICAgICAgS2VlcEluUXVldWUKLSAgICB9OwotCi0gICAgdmlydHVh
bCBSZXN1bHQgcnVuKCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCByZW1vdmVTZWxmRnJv
bVF1ZXVlKE1pY3JvdGFza1F1ZXVlJik7Ci19OwotCiBjbGFzcyBNaWNyb3Rhc2tRdWV1ZSBmaW5h
bCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgZnJpZW5kIE5ldmVyRGVzdHJv
eWVkPE1pY3JvdGFza1F1ZXVlPjsKLSAgICBmcmllbmQgY2xhc3MgTWljcm90YXNrOwogcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIE1pY3JvdGFza1F1ZXVlKEpTQzo6Vk0mKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB+TWljcm90YXNrUXVldWUoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
YXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxNaWNyb3Rhc2s+JiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgYXBwZW5kKHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPiYmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CiAKICAgICBKU0M6
OlZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm0uZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZShjb25zdCBNaWNyb3Rhc2smKTsKLQogICAgIHZvaWQg
dGltZXJGaXJlZCgpOwogCiAgICAgYm9vbCBtX3BlcmZvcm1pbmdNaWNyb3Rhc2tDaGVja3BvaW50
IHsgZmFsc2UgfTsKLSAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPE1pY3JvdGFzaz4+IG1fbWlj
cm90YXNrUXVldWU7CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrPj4g
bV9taWNyb3Rhc2tRdWV1ZTsKICAgICAvLyBGb3IgdGhlIG1haW4gdGhyZWFkIHRoZSBWTSBsaXZl
cyBmb3JldmVyLiBGb3Igd29ya2VycyBpdCdzIGxpZmV0aW1lIGlzIHRpZWQgdG8gb3VyIG93bmlu
ZyBXb3JrZXJHbG9iYWxTY29wZS4gUmVnYXJkbGVzcywgd2UgcmV0YWluIHRoZSBWTSBoZXJlIHRv
IGJlIHNhZmUuCiAgICAgUmVmPEpTQzo6Vk0+IG1fdm07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9UYXNrU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tT
b3VyY2UuaAkocmV2aXNpb24gMjUyNzYyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3Vy
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBlbnVtIGNsYXNzIFRhc2tTb3Vy
Y2UgOiB1aW50OF90IHsKICAgICBGaWxlUmVhZGluZywKICAgICBGb250TG9hZGluZywKICAgICBJ
ZGxlVGFzaywKKyAgICBNaWNyb3Rhc2ssCiAgICAgTmV0d29ya2luZywKICAgICBQb3N0ZWRNZXNz
YWdlUXVldWUsCiAgICAgVXNlckludGVyYWN0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAkocmV2
aXNpb24gMjUyNzYyKQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDYW52YXNBZ2VudC5oIgogCi0jaW5j
bHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCIKICNpbmNsdWRlICJDYW52YXNSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTQ1NSw3ICs0NTQsNyBAQCB2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpyZWNvcmRDYW52YXNBCiAgICAgaWYgKCFpbnNwZWN0b3JDYW52YXMtPmN1cnJl
bnRGcmFtZUhhc0RhdGEoKSkgewogICAgICAgICBpZiAoYXV0byogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCA9IGluc3BlY3RvckNhbnZhcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CiAgICAg
ICAgICAgICBhdXRvJiBldmVudExvb3AgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5ldmVudExv
b3AoKTsKLSAgICAgICAgICAgIGF1dG8gbWljcm90YXNrID0gbWFrZVVuaXF1ZTxBY3RpdmVET01D
YWxsYmFja01pY3JvdGFzaz4oZXZlbnRMb29wLm1pY3JvdGFza1F1ZXVlKCksICpzY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBbJiwgcHJvdGVjdGVkSW5zcGVjdG9yQ2FudmFzID0gaW5zcGVjdG9yQ2Fu
dmFzLmNvcHlSZWYoKV0geworICAgICAgICAgICAgZXZlbnRMb29wLnF1ZXVlTWljcm90YXNrKFsm
LCBwcm90ZWN0ZWRJbnNwZWN0b3JDYW52YXMgPSBpbnNwZWN0b3JDYW52YXMuY29weVJlZigpXSB7
CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGNhbnZhc0VsZW1lbnQgPSBwcm90ZWN0ZWRJbnNw
ZWN0b3JDYW52YXMtPmNhbnZhc0VsZW1lbnQoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAo
Y2FudmFzRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoY2FudmFzRWxlbWVudC0+ZG9jdW1lbnQoKSkp
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC00NjQsNyArNDYzLDYgQEAgdm9p
ZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVjb3JkQ2FudmFzQQogICAgICAgICAgICAgICAgIGlm
IChjYW52YXNSZW5kZXJpbmdDb250ZXh0LmNhbGxUcmFjaW5nQWN0aXZlKCkpCiAgICAgICAgICAg
ICAgICAgICAgIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lKGNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBldmVudExvb3AucXVldWVNaWNy
b3Rhc2tDYWxsYmFjayhXVEZNb3ZlKG1pY3JvdGFzaykpOwogICAgICAgICB9CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNTI3NjIpCisr
KyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJJbnRlcm5hbHMuaCIKIAogI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oIgogI2lu
Y2x1ZGUgIkFjdGl2aXR5U3RhdGUuaCIKICNpbmNsdWRlICJBbmltYXRpb25UaW1lbGluZS5oIgog
I2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCkBAIC00MzI5LDEwICs0MzI4LDkg
QEAgdm9pZCBJbnRlcm5hbHM6OnF1ZXVlTWljcm9UYXNrKGludCB0ZXN0TgogCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGRvY3VtZW50OwogICAgIGF1dG8mIGV2ZW50TG9v
cCA9IGNvbnRleHQtPmV2ZW50TG9vcCgpOwotICAgIGF1dG8gbWljcm90YXNrID0gbWFrZVVuaXF1
ZTxBY3RpdmVET01DYWxsYmFja01pY3JvdGFzaz4oZXZlbnRMb29wLm1pY3JvdGFza1F1ZXVlKCks
ICpkb2N1bWVudCwgW2RvY3VtZW50LCB0ZXN0TnVtYmVyXSgpIHsKKyAgICBldmVudExvb3AucXVl
dWVNaWNyb3Rhc2soW2RvY3VtZW50ID0gbWFrZVJlZigqZG9jdW1lbnQpLCB0ZXN0TnVtYmVyXSgp
IHsKICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBtYWtlU3RyaW5nKCJNaWNyb1Rhc2sgIyIsIHRlc3ROdW1i
ZXIsICIgaGFzIHJ1bi4iKSk7CiAgICAgfSk7Ci0gICAgZXZlbnRMb29wLnF1ZXVlTWljcm90YXNr
Q2FsbGJhY2soV1RGTW92ZShtaWNyb3Rhc2spKTsKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0ZJ
TFRFUklORykK
</data>
<flag name="review"
          id="399921"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>