<?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>155320</bug_id>
          
          <creation_ts>2016-03-10 13:32:26 -0800</creation_ts>
          <short_desc>bmalloc: Rename SmallPage to SmallRun</short_desc>
          <delta_ts>2016-06-07 16:00:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1173297</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-10 13:32:26 -0800</bug_when>
    <thetext>bmalloc: Rename SmallPage to SmallRun</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173301</commentid>
    <comment_count>1</comment_count>
      <attachid>273612</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-10 13:35:18 -0800</bug_when>
    <thetext>Created attachment 273612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173305</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-10 13:36:26 -0800</bug_when>
    <thetext>Attachment 273612 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/Heap.cpp:183:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173309</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-10 13:41:04 -0800</bug_when>
    <thetext>Committed r197955: &lt;http://trac.webkit.org/changeset/197955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174905</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-14 22:39:19 -0700</bug_when>
    <thetext>Reverted r197955 for reason:

I decided to go in another direction

Committed r198198: &lt;http://trac.webkit.org/changeset/198198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200229</commentid>
    <comment_count>5</comment_count>
      <attachid>273612</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-06-07 16:00:23 -0700</bug_when>
    <thetext>Comment on attachment 273612
Patch

I didn&apos;t do this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273612</attachid>
            <date>2016-03-10 13:35:18 -0800</date>
            <delta_ts>2016-06-07 16:00:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155320-20160310133505.patch</filename>
            <type>text/plain</type>
            <size>29869</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5Nzk1MikKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY5IEBACisyMDE2LTAzLTEwICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogUmVuYW1lIFNt
YWxsUGFnZSB0byBTbWFsbFJ1bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU1MzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQSBwYWdlIGlzIGEgZml4ZWQtc2l6ZSBzZXQgb2YgbGluZXMuCisKKyAgICAg
ICAgQSBydW4gaXMgYW4gdmFyaWFibGUtc2l6ZWQgc2V0IG9mIGxpbmVzLgorCisgICAgICAgIFdl
IHdhbnQgdG8gc3RhcnQgdXNpbmcgcnVucyBiZWNhdXNlOgorCisgICAgICAgICAgICAoYSkgd2Ug
d2FudCB0byBzdXBwb3J0IHZhcnlpbmcgdGhlIGhhcmR3YXJlIHBhZ2Ugc2l6ZSBieSBPUzsKKwor
ICAgICAgICAgICAgKGIpIHdlIHdhbnQgdG8gc3VwcG9ydCBhbGxvY2F0aW9ucyBsYXJnZXIgdGhh
biBvdXIgY3VycmVudCBwYWdlIHNpemUuCisKKyAgICAgICAgKiBibWFsbG9jLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYm1hbGxvYy9BbGxvY2F0b3IuY3BwOgorICAgICAg
ICAoYm1hbGxvYzo6QWxsb2NhdG9yOjpyZWFsbG9jYXRlKToKKyAgICAgICAgKiBibWFsbG9jL0hl
YXAuY3BwOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6SGVhcCk6CisgICAgICAgIChibWFsbG9j
OjpIZWFwOjppbml0aWFsaXplU21hbGxSdW5NZXRhZGF0YSk6CisgICAgICAgIChibWFsbG9jOjpI
ZWFwOjpzY2F2ZW5nZSk6CisgICAgICAgIChibWFsbG9jOjpIZWFwOjpzY2F2ZW5nZVNtYWxsUnVu
cyk6CisgICAgICAgIChibWFsbG9jOjpIZWFwOjphbGxvY2F0ZVNtYWxsQnVtcFJhbmdlcyk6Cisg
ICAgICAgIChibWFsbG9jOjpIZWFwOjphbGxvY2F0ZVNtYWxsUnVuKToKKyAgICAgICAgKGJtYWxs
b2M6OkhlYXA6OmRlYWxsb2NhdGVTbWFsbExpbmUpOgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6
aW5pdGlhbGl6ZUxpbmVNZXRhZGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChibWFsbG9jOjpIZWFw
OjpzY2F2ZW5nZVNtYWxsUGFnZXMpOiBEZWxldGVkLgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6
YWxsb2NhdGVTbWFsbFBhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGJtYWxsb2MvSGVhcC5oOgor
ICAgICAgICAqIGJtYWxsb2MvTGluZU1ldGFkYXRhLmg6CisgICAgICAgICogYm1hbGxvYy9TbWFs
bENodW5rLmg6CisgICAgICAgIChibWFsbG9jOjpTbWFsbENodW5rOjpiZWdpbik6CisgICAgICAg
IChibWFsbG9jOjpTbWFsbENodW5rOjplbmQpOgorICAgICAgICAoYm1hbGxvYzo6U21hbGxDaHVu
azo6bGluZXMpOgorICAgICAgICAoYm1hbGxvYzo6U21hbGxDaHVuazo6cnVucyk6CisgICAgICAg
IChibWFsbG9jOjpTbWFsbENodW5rOjpTbWFsbENodW5rKToKKyAgICAgICAgKGJtYWxsb2M6OlNt
YWxsTGluZTo6ZW5kKToKKyAgICAgICAgKGJtYWxsb2M6OlNtYWxsUnVuOjpnZXQpOgorICAgICAg
ICAoYm1hbGxvYzo6U21hbGxSdW46OmJlZ2luKToKKyAgICAgICAgKGJtYWxsb2M6OlNtYWxsUnVu
OjplbmQpOgorICAgICAgICAoYm1hbGxvYzo6U21hbGxDaHVuazo6cGFnZXMpOiBEZWxldGVkLgor
ICAgICAgICAoYm1hbGxvYzo6U21hbGxQYWdlOjpnZXQpOiBEZWxldGVkLgorICAgICAgICAoYm1h
bGxvYzo6U21hbGxQYWdlOjpiZWdpbik6IERlbGV0ZWQuCisgICAgICAgIChibWFsbG9jOjpTbWFs
bFBhZ2U6OmVuZCk6IERlbGV0ZWQuCisgICAgICAgICogYm1hbGxvYy9TbWFsbFBhZ2UuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBibWFsbG9jL1NtYWxsUnVuLmg6IENvcGllZCBmcm9tIFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvU21hbGxQYWdlLmguCisgICAgICAgIChibWFsbG9jOjpTbWFsbFJ1bjo6
U21hbGxSdW4pOgorICAgICAgICAoYm1hbGxvYzo6U21hbGxSdW46OnJlZik6CisgICAgICAgIChi
bWFsbG9jOjpTbWFsbFJ1bjo6ZGVyZWYpOgorICAgICAgICAoYm1hbGxvYzo6U21hbGxQYWdlOjpT
bWFsbFBhZ2UpOiBEZWxldGVkLgorICAgICAgICAoYm1hbGxvYzo6U21hbGxQYWdlOjpyZWYpOiBE
ZWxldGVkLgorICAgICAgICAoYm1hbGxvYzo6U21hbGxQYWdlOjpkZXJlZik6IERlbGV0ZWQuCisg
ICAgICAgICogYm1hbGxvYy9WTUhlYXAuY3BwOgorICAgICAgICAoYm1hbGxvYzo6Vk1IZWFwOjph
bGxvY2F0ZVNtYWxsQ2h1bmspOgorICAgICAgICAoYm1hbGxvYzo6Vk1IZWFwOjphbGxvY2F0ZUxh
cmdlQ2h1bmspOgorICAgICAgICAqIGJtYWxsb2MvVk1IZWFwLmg6CisgICAgICAgIChibWFsbG9j
OjpWTUhlYXA6OmFsbG9jYXRlU21hbGxSdW4pOgorICAgICAgICAoYm1hbGxvYzo6Vk1IZWFwOjph
bGxvY2F0ZUxhcmdlT2JqZWN0KToKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6ZGVhbGxvY2F0
ZVNtYWxsUnVuKToKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6ZGVhbGxvY2F0ZUxhcmdlT2Jq
ZWN0KToKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6YWxsb2NhdGVTbWFsbFBhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoYm1hbGxvYzo6Vk1IZWFwOjpkZWFsbG9jYXRlU21hbGxQYWdlKTogRGVs
ZXRlZC4KKwogMjAxNi0wMy0wOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgaW4gcjE5NzcyMi4KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDE5Nzk0NykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQAogCQkxNERENzg5QzE4RjQ4RDRB
MDA5NTA3MDIgLyogQnVtcEFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQxM0U0NjIxODlERTFDRDAwNTQ2RDY4IC8qIEJ1bXBBbGxvY2F0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
NERENzhCQjE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxDaHVuay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3QUFBOEMxOENEMzZBNzAwMjIwMUU0IC8q
IFNtYWxsQ2h1bmsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxNERENzhCQzE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxMaW5lLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDUyNDc4NjE4QkM3NTdDMDBG
ODAwOTggLyogU21hbGxMaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJMTRERDc4QkQxOEY0OEQ2QjAwOTUwNzAyIC8qIFNtYWxsUGFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzRTI5RUQxOENB
RTkwNTAwRkU4QTBGIC8qIFNtYWxsUGFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTE0REQ3OEJEMThGNDhENkIwMDk1MDcwMiAvKiBTbWFsbFJ1
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzRTI5
RUQxOENBRTkwNTAwRkU4QTBGIC8qIFNtYWxsUnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRERDc4QzUxOEY0OEQ3NTAwOTUwNzAyIC8qIEFs
Z29yaXRobS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTQyMUE4NzcxOEVFNDYyQTAwQjRERDY4IC8qIEFsZ29yaXRobS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0REQ3OEM2MThGNDhENzUwMDk1MDcw
MiAvKiBBc3luY1Rhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0MTdGNjUyMThCQTg4QTAwMDc2RkEzRiAvKiBBc3luY1Rhc2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNERENzhDNzE4RjQ4RDc1
MDA5NTA3MDIgLyogQkFzc2VydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQxM0U0NjgxODlFRURFNDAwNTQ2RDY4IC8qIEJBc3NlcnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTEsNyArOTEsNyBA
QAogCQkxNDIxQTg3NzE4RUU0NjJBMDBCNERENjggLyogQWxnb3JpdGhtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEFsZ29yaXRobS5oOyBwYXRoID0gYm1hbGxvYy9BbGdvcml0aG0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQzQ0I4MUExOTAyMkJDOTAwQjE2QTQ1IC8qIFN0YXRpY011dGV4
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0YXRpY011dGV4LmNw
cDsgcGF0aCA9IGJtYWxsb2MvU3RhdGljTXV0ZXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxNDNDQjgxQjE5MDIyQkM5MDBCMTZBNDUgLyogU3RhdGljTXV0ZXguaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RhdGljTXV0ZXguaDsgcGF0aCA9IGJtYWxsb2Mv
U3RhdGljTXV0ZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQzRTI5RUQxOENB
RTkwNTAwRkU4QTBGIC8qIFNtYWxsUGFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBTbWFsbFBhZ2UuaDsgcGF0aCA9IGJtYWxsb2MvU21hbGxQYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTE0M0UyOUVEMThDQUU5MDUwMEZFOEEwRiAvKiBTbWFsbFJ1bi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTbWFsbFJ1bi5oOyBwYXRoID0gYm1h
bGxvYy9TbWFsbFJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDNFRjlBRDFB
OUZBQkY2MDA0RjVDNzcgLyogRnJlZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gRnJlZUxpc3QuY3BwOyBwYXRoID0gYm1hbGxvYy9GcmVlTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0M0VGOUFFMUE5RkFCRjYwMDRGNUM3NyAvKiBG
cmVlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGcmVlTGlzdC5oOyBw
YXRoID0gYm1hbGxvYy9GcmVlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
NDQwQUZDODFBOTUxNDI0MDA4MzdGQUEgLyogU3VwZXJDaHVuay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBTdXBlckNodW5rLmg7IHBhdGggPSBibWFsbG9jL1N1cGVyQ2h1bmsu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwOCw3ICsyMDgsNyBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJMTQ3QUFBOEMxOENEMzZBNzAwMjIwMUU0IC8qIFNtYWxsQ2h1bmsuaCAq
LywKIAkJCQkxNDUyNDc4NjE4QkM3NTdDMDBGODAwOTggLyogU21hbGxMaW5lLmggKi8sCi0JCQkJ
MTQzRTI5RUQxOENBRTkwNTAwRkU4QTBGIC8qIFNtYWxsUGFnZS5oICovLAorCQkJCTE0M0UyOUVE
MThDQUU5MDUwMEZFOEEwRiAvKiBTbWFsbFJ1bi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAiaGVh
cDogc21hbGwiOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM0Niw3ICszNDYsNyBA
QAogCQkJCTE0MDAyNzQ5MThGODlDMTMwMDExNUM5NyAvKiBIZWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDBGQTAwMzE5Q0U0MjlDMDBGRkQzQzggLyogQnVtcFJhbmdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNERENzhDNTE4RjQ4RDc1MDA5NTA3MDIgLyogQWxnb3JpdGhtLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkxNERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxQYWdlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxNERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxSdW4uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0REQ3ODhFMThGNDhDQ0QwMDk1MDcwMiAvKiBCb3VuZGFyeVRhZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ2MDQxRTcxQzdGRjJFRjAwRTlGOTRFIC8qIFNvcnRlZFZl
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QzgxOEY0OEQ3NTAwOTUwNzAyIC8qIEZp
eGVkVmVjdG9yLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
QWxsb2NhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsbG9j
YXRvci5jcHAJKHJldmlzaW9uIDE5Nzk0NykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxs
b2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDggKzExNCw4IEBAIHZvaWQqIEFsbG9j
YXRvcjo6cmVhbGxvY2F0ZSh2b2lkKiBvYmplY3QKICAgICBzaXplX3Qgb2xkU2l6ZSA9IDA7CiAg
ICAgc3dpdGNoIChvYmplY3RUeXBlKG9iamVjdCkpIHsKICAgICBjYXNlIFNtYWxsOiB7Ci0gICAg
ICAgIFNtYWxsUGFnZSogcGFnZSA9IFNtYWxsUGFnZTo6Z2V0KFNtYWxsTGluZTo6Z2V0KG9iamVj
dCkpOwotICAgICAgICBvbGRTaXplID0gb2JqZWN0U2l6ZShwYWdlLT5zaXplQ2xhc3MoKSk7Cisg
ICAgICAgIFNtYWxsUnVuKiBydW4gPSBTbWFsbFJ1bjo6Z2V0KFNtYWxsTGluZTo6Z2V0KG9iamVj
dCkpOworICAgICAgICBvbGRTaXplID0gb2JqZWN0U2l6ZShydW4tPnNpemVDbGFzcygpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgTGFyZ2U6IHsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9IZWFwLmNwcAkocmV2aXNpb24gMTk3OTQ3KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9I
ZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIlBlclBy
b2Nlc3MuaCIKICNpbmNsdWRlICJTbWFsbENodW5rLmgiCiAjaW5jbHVkZSAiU21hbGxMaW5lLmgi
Ci0jaW5jbHVkZSAiU21hbGxQYWdlLmgiCisjaW5jbHVkZSAiU21hbGxSdW4uaCIKICNpbmNsdWRl
IDx0aHJlYWQ+CiAKIG5hbWVzcGFjZSBibWFsbG9jIHsKQEAgLTQwLDE2ICs0MCwxNiBAQCBIZWFw
OjpIZWFwKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mCiAgICAgLCBtX2lzQWxsb2NhdGlu
Z1BhZ2VzKGZhbHNlKQogICAgICwgbV9zY2F2ZW5nZXIoKnRoaXMsICZIZWFwOjpjb25jdXJyZW50
U2NhdmVuZ2UpCiB7Ci0gICAgaW5pdGlhbGl6ZUxpbmVNZXRhZGF0YSgpOworICAgIGluaXRpYWxp
emVTbWFsbFJ1bk1ldGFkYXRhKCk7CiB9CiAKLXZvaWQgSGVhcDo6aW5pdGlhbGl6ZUxpbmVNZXRh
ZGF0YSgpCit2b2lkIEhlYXA6OmluaXRpYWxpemVTbWFsbFJ1bk1ldGFkYXRhKCkKIHsKLSAgICAv
LyBXZSBhc3N1bWUgdGhhdCBtX3NtYWxsTGluZU1ldGFkYXRhIGlzIHplcm8tZmlsbGVkLgorICAg
IC8vIFdlIGFzc3VtZSB0aGF0IG1fc21hbGxSdW5NZXRhZGF0YSBpcyB6ZXJvLWZpbGxlZC4KIAog
ICAgIGZvciAoc2l6ZV90IHNpemUgPSBhbGlnbm1lbnQ7IHNpemUgPD0gc21hbGxNYXg7IHNpemUg
Kz0gYWxpZ25tZW50KSB7CiAgICAgICAgIHNpemVfdCBzaXplQ2xhc3MgPSBibWFsbG9jOjpzaXpl
Q2xhc3Moc2l6ZSk7Ci0gICAgICAgIGF1dG8mIG1ldGFkYXRhID0gbV9zbWFsbExpbmVNZXRhZGF0
YVtzaXplQ2xhc3NdOworICAgICAgICBhdXRvJiBtZXRhZGF0YSA9IG1fc21hbGxSdW5NZXRhZGF0
YVtzaXplQ2xhc3NdOwogCiAgICAgICAgIHNpemVfdCBvYmplY3QgPSAwOwogICAgICAgICBzaXpl
X3QgbGluZSA9IDA7CkBAIC04NCwxNyArODQsMTcgQEAgdm9pZCBIZWFwOjpzY2F2ZW5nZShzdGQ6
OnVuaXF1ZV9sb2NrPFN0YQogewogICAgIHdhaXRVbnRpbEZhbHNlKGxvY2ssIHNsZWVwRHVyYXRp
b24sIG1faXNBbGxvY2F0aW5nUGFnZXMpOwogCi0gICAgc2NhdmVuZ2VTbWFsbFBhZ2VzKGxvY2ss
IHNsZWVwRHVyYXRpb24pOworICAgIHNjYXZlbmdlU21hbGxSdW5zKGxvY2ssIHNsZWVwRHVyYXRp
b24pOwogICAgIHNjYXZlbmdlTGFyZ2VPYmplY3RzKGxvY2ssIHNsZWVwRHVyYXRpb24pOwogICAg
IHNjYXZlbmdlWExhcmdlT2JqZWN0cyhsb2NrLCBzbGVlcER1cmF0aW9uKTsKIAogICAgIHNsZWVw
KGxvY2ssIHNsZWVwRHVyYXRpb24pOwogfQogCi12b2lkIEhlYXA6OnNjYXZlbmdlU21hbGxQYWdl
cyhzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYgbG9jaywgc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kcyBzbGVlcER1cmF0aW9uKQordm9pZCBIZWFwOjpzY2F2ZW5nZVNtYWxsUnVucyhzdGQ6
OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYgbG9jaywgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBzbGVlcER1cmF0aW9uKQogewotICAgIHdoaWxlICghbV9zbWFsbFBhZ2VzLmlzRW1wdHkoKSkg
ewotICAgICAgICBtX3ZtSGVhcC5kZWFsbG9jYXRlU21hbGxQYWdlKGxvY2ssIG1fc21hbGxQYWdl
cy5wb3AoKSk7CisgICAgd2hpbGUgKCFtX3NtYWxsUnVucy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
bV92bUhlYXAuZGVhbGxvY2F0ZVNtYWxsUnVuKGxvY2ssIG1fc21hbGxSdW5zLnBvcCgpKTsKICAg
ICAgICAgd2FpdFVudGlsRmFsc2UobG9jaywgc2xlZXBEdXJhdGlvbiwgbV9pc0FsbG9jYXRpbmdQ
YWdlcyk7CiAgICAgfQogfQpAQCAtMTI2LDIyICsxMjYsMjIgQEAgdm9pZCBIZWFwOjpzY2F2ZW5n
ZVhMYXJnZU9iamVjdHMoc3RkOjp1bgogdm9pZCBIZWFwOjphbGxvY2F0ZVNtYWxsQnVtcFJhbmdl
cyhzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JiBsb2NrLCBzaXplX3Qgc2l6ZUNsYXNzLCBC
dW1wQWxsb2NhdG9yJiBhbGxvY2F0b3IsIEJ1bXBSYW5nZUNhY2hlJiByYW5nZUNhY2hlKQogewog
ICAgIEJBU1NFUlQoIXJhbmdlQ2FjaGUuc2l6ZSgpKTsKLSAgICBTbWFsbFBhZ2UqIHBhZ2UgPSBh
bGxvY2F0ZVNtYWxsUGFnZShsb2NrLCBzaXplQ2xhc3MpOwotICAgIFNtYWxsTGluZSogbGluZXMg
PSBwYWdlLT5iZWdpbigpOwotICAgIEJBU1NFUlQocGFnZS0+aGFzRnJlZUxpbmVzKGxvY2spKTsK
KyAgICBTbWFsbFJ1biogcnVuID0gYWxsb2NhdGVTbWFsbFJ1bihsb2NrLCBzaXplQ2xhc3MpOwor
ICAgIFNtYWxsTGluZSogbGluZXMgPSBydW4tPmJlZ2luKCk7CisgICAgQkFTU0VSVChydW4tPmhh
c0ZyZWVMaW5lcyhsb2NrKSk7CiAKICAgICAvLyBGaW5kIGEgZnJlZSBsaW5lLgogICAgIGZvciAo
c2l6ZV90IGxpbmVOdW1iZXIgPSAwOyBsaW5lTnVtYmVyIDwgc21hbGxMaW5lQ291bnQ7ICsrbGlu
ZU51bWJlcikgewogICAgICAgICBpZiAobGluZXNbbGluZU51bWJlcl0ucmVmQ291bnQobG9jaykp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBMaW5lTWV0YWRhdGEmIGxpbmVNZXRh
ZGF0YSA9IG1fc21hbGxMaW5lTWV0YWRhdGFbc2l6ZUNsYXNzXVtsaW5lTnVtYmVyXTsKKyAgICAg
ICAgTGluZU1ldGFkYXRhJiBsaW5lTWV0YWRhdGEgPSBtX3NtYWxsUnVuTWV0YWRhdGFbc2l6ZUNs
YXNzXVtsaW5lTnVtYmVyXTsKICAgICAgICAgaWYgKCFsaW5lTWV0YWRhdGEub2JqZWN0Q291bnQp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAvLyBJbiBhIGZyYWdtZW50ZWQgcGFn
ZSwgc29tZSBmcmVlIHJhbmdlcyBtaWdodCBub3QgZml0IGluIHRoZSBjYWNoZS4KKyAgICAgICAg
Ly8gSW4gYSBmcmFnbWVudGVkIHJ1biwgc29tZSBmcmVlIHJhbmdlcyBtaWdodCBub3QgZml0IGlu
IHRoZSBjYWNoZS4KICAgICAgICAgaWYgKHJhbmdlQ2FjaGUuc2l6ZSgpID09IHJhbmdlQ2FjaGUu
Y2FwYWNpdHkoKSkgewotICAgICAgICAgICAgbV9zbWFsbFBhZ2VzV2l0aEZyZWVMaW5lc1tzaXpl
Q2xhc3NdLnB1c2gocGFnZSk7CisgICAgICAgICAgICBtX3NtYWxsUnVuc1dpdGhGcmVlTGluZXNb
c2l6ZUNsYXNzXS5wdXNoKHJ1bik7CiAgICAgICAgICAgICBCQVNTRVJUKGFsbG9jYXRvci5jYW5B
bGxvY2F0ZSgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTQ5LDIwICsx
NDksMjAgQEAgdm9pZCBIZWFwOjphbGxvY2F0ZVNtYWxsQnVtcFJhbmdlcyhzdGQ6OgogICAgICAg
ICBjaGFyKiBiZWdpbiA9IGxpbmVzW2xpbmVOdW1iZXJdLmJlZ2luKCkgKyBsaW5lTWV0YWRhdGEu
c3RhcnRPZmZzZXQ7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG9iamVjdENvdW50ID0gbGluZU1l
dGFkYXRhLm9iamVjdENvdW50OwogICAgICAgICBsaW5lc1tsaW5lTnVtYmVyXS5yZWYobG9jaywg
bGluZU1ldGFkYXRhLm9iamVjdENvdW50KTsKLSAgICAgICAgcGFnZS0+cmVmKGxvY2spOworICAg
ICAgICBydW4tPnJlZihsb2NrKTsKIAogICAgICAgICAvLyBNZXJnZSB3aXRoIHN1YnNlcXVlbnQg
ZnJlZSBsaW5lcy4KICAgICAgICAgd2hpbGUgKCsrbGluZU51bWJlciA8IHNtYWxsTGluZUNvdW50
KSB7CiAgICAgICAgICAgICBpZiAobGluZXNbbGluZU51bWJlcl0ucmVmQ291bnQobG9jaykpCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIExpbmVNZXRhZGF0YSYgbGluZU1l
dGFkYXRhID0gbV9zbWFsbExpbmVNZXRhZGF0YVtzaXplQ2xhc3NdW2xpbmVOdW1iZXJdOworICAg
ICAgICAgICAgTGluZU1ldGFkYXRhJiBsaW5lTWV0YWRhdGEgPSBtX3NtYWxsUnVuTWV0YWRhdGFb
c2l6ZUNsYXNzXVtsaW5lTnVtYmVyXTsKICAgICAgICAgICAgIGlmICghbGluZU1ldGFkYXRhLm9i
amVjdENvdW50KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBvYmpl
Y3RDb3VudCArPSBsaW5lTWV0YWRhdGEub2JqZWN0Q291bnQ7CiAgICAgICAgICAgICBsaW5lc1ts
aW5lTnVtYmVyXS5yZWYobG9jaywgbGluZU1ldGFkYXRhLm9iamVjdENvdW50KTsKLSAgICAgICAg
ICAgIHBhZ2UtPnJlZihsb2NrKTsKKyAgICAgICAgICAgIHJ1bi0+cmVmKGxvY2spOwogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKCFhbGxvY2F0b3IuY2FuQWxsb2NhdGUoKSkKQEAgLTE3Miw0NiAr
MTcyLDQ1IEBAIHZvaWQgSGVhcDo6YWxsb2NhdGVTbWFsbEJ1bXBSYW5nZXMoc3RkOjoKICAgICB9
CiAKICAgICBCQVNTRVJUKGFsbG9jYXRvci5jYW5BbGxvY2F0ZSgpKTsKLSAgICBwYWdlLT5zZXRI
YXNGcmVlTGluZXMobG9jaywgZmFsc2UpOworICAgIHJ1bi0+c2V0SGFzRnJlZUxpbmVzKGxvY2ss
IGZhbHNlKTsKIH0KIAotU21hbGxQYWdlKiBIZWFwOjphbGxvY2F0ZVNtYWxsUGFnZShzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JiBsb2NrLCBzaXplX3Qgc2l6ZUNsYXNzKQorU21hbGxSdW4q
IEhlYXA6OmFsbG9jYXRlU21hbGxSdW4oc3RkOjpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYgbG9j
aywgc2l6ZV90IHNpemVDbGFzcykKIHsKLSAgICBpZiAoIW1fc21hbGxQYWdlc1dpdGhGcmVlTGlu
ZXNbc2l6ZUNsYXNzXS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBtX3NtYWxsUGFnZXNXaXRo
RnJlZUxpbmVzW3NpemVDbGFzc10ucG9wKCk7CisgICAgaWYgKCFtX3NtYWxsUnVuc1dpdGhGcmVl
TGluZXNbc2l6ZUNsYXNzXS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX3NtYWxsUnVuc1dp
dGhGcmVlTGluZXNbc2l6ZUNsYXNzXS5wb3AoKTsKIAotICAgIFNtYWxsUGFnZSogcGFnZSA9IFt0
aGlzLCAmbG9ja10oKSB7Ci0gICAgICAgIGlmICghbV9zbWFsbFBhZ2VzLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybiBtX3NtYWxsUGFnZXMucG9wKCk7CisgICAgU21hbGxSdW4qIHJ1biA9
IFt0aGlzLCAmbG9ja10oKSB7CisgICAgICAgIGlmICghbV9zbWFsbFJ1bnMuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgcmV0dXJuIG1fc21hbGxSdW5zLnBvcCgpOwogCiAgICAgICAgIG1faXNBbGxv
Y2F0aW5nUGFnZXMgPSB0cnVlOwotICAgICAgICBTbWFsbFBhZ2UqIHBhZ2UgPSBtX3ZtSGVhcC5h
bGxvY2F0ZVNtYWxsUGFnZShsb2NrKTsKLSAgICAgICAgcmV0dXJuIHBhZ2U7CisgICAgICAgIHJl
dHVybiBtX3ZtSGVhcC5hbGxvY2F0ZVNtYWxsUnVuKGxvY2spOwogICAgIH0oKTsKIAotICAgIHBh
Z2UtPnNldFNpemVDbGFzcyhzaXplQ2xhc3MpOwotICAgIHJldHVybiBwYWdlOworICAgIHJ1bi0+
c2V0U2l6ZUNsYXNzKHNpemVDbGFzcyk7CisgICAgcmV0dXJuIHJ1bjsKIH0KIAogdm9pZCBIZWFw
OjpkZWFsbG9jYXRlU21hbGxMaW5lKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mIGxvY2ss
IFNtYWxsTGluZSogbGluZSkKIHsKICAgICBCQVNTRVJUKCFsaW5lLT5yZWZDb3VudChsb2NrKSk7
Ci0gICAgU21hbGxQYWdlKiBwYWdlID0gU21hbGxQYWdlOjpnZXQobGluZSk7Ci0gICAgcGFnZS0+
ZGVyZWYobG9jayk7CisgICAgU21hbGxSdW4qIHJ1biA9IFNtYWxsUnVuOjpnZXQobGluZSk7Cisg
ICAgcnVuLT5kZXJlZihsb2NrKTsKIAotICAgIGlmICghcGFnZS0+aGFzRnJlZUxpbmVzKGxvY2sp
KSB7Ci0gICAgICAgIHBhZ2UtPnNldEhhc0ZyZWVMaW5lcyhsb2NrLCB0cnVlKTsKLSAgICAgICAg
bV9zbWFsbFBhZ2VzV2l0aEZyZWVMaW5lc1twYWdlLT5zaXplQ2xhc3MoKV0ucHVzaChwYWdlKTsK
KyAgICBpZiAoIXJ1bi0+aGFzRnJlZUxpbmVzKGxvY2spKSB7CisgICAgICAgIHJ1bi0+c2V0SGFz
RnJlZUxpbmVzKGxvY2ssIHRydWUpOworICAgICAgICBtX3NtYWxsUnVuc1dpdGhGcmVlTGluZXNb
cnVuLT5zaXplQ2xhc3MoKV0ucHVzaChydW4pOwogCi0gICAgICAgIEJBU1NFUlQocGFnZS0+cmVm
Q291bnQobG9jaykpOworICAgICAgICBCQVNTRVJUKHJ1bi0+cmVmQ291bnQobG9jaykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHBhZ2UtPnJlZkNvdW50KGxvY2spKQorICAg
IGlmIChydW4tPnJlZkNvdW50KGxvY2spKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NtYWxs
UGFnZXNXaXRoRnJlZUxpbmVzW3BhZ2UtPnNpemVDbGFzcygpXS5yZW1vdmUocGFnZSk7Ci0gICAg
bV9zbWFsbFBhZ2VzLnB1c2gocGFnZSk7CisgICAgbV9zbWFsbFJ1bnNXaXRoRnJlZUxpbmVzW3J1
bi0+c2l6ZUNsYXNzKCldLnJlbW92ZShydW4pOworICAgIG1fc21hbGxSdW5zLnB1c2gocnVuKTsK
ICAgICBtX3NjYXZlbmdlci5ydW4oKTsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgJKHJl
dmlzaW9uIDE5Nzk0NykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiU2VncmVnYXRlZEZyZWVMaXN0Lmgi
CiAjaW5jbHVkZSAiU21hbGxDaHVuay5oIgogI2luY2x1ZGUgIlNtYWxsTGluZS5oIgotI2luY2x1
ZGUgIlNtYWxsUGFnZS5oIgorI2luY2x1ZGUgIlNtYWxsUnVuLmgiCiAjaW5jbHVkZSAiVk1IZWFw
LmgiCiAjaW5jbHVkZSAiVmVjdG9yLmgiCiAjaW5jbHVkZSAiWExhcmdlTWFwLmgiCkBAIC03Miw5
ICs3Miw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgfkhlYXAoKSA9IGRlbGV0ZTsKICAgICAK
LSAgICB2b2lkIGluaXRpYWxpemVMaW5lTWV0YWRhdGEoKTsKKyAgICB2b2lkIGluaXRpYWxpemVT
bWFsbFJ1bk1ldGFkYXRhKCk7CiAKLSAgICBTbWFsbFBhZ2UqIGFsbG9jYXRlU21hbGxQYWdlKHN0
ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mLCBzaXplX3Qgc2l6ZUNsYXNzKTsKKyAgICBTbWFs
bFJ1biogYWxsb2NhdGVTbWFsbFJ1bihzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+Jiwgc2l6
ZV90IHNpemVDbGFzcyk7CiAKICAgICB2b2lkIGRlYWxsb2NhdGVTbWFsbExpbmUoc3RkOjpsb2Nr
X2d1YXJkPFN0YXRpY011dGV4PiYsIFNtYWxsTGluZSopOwogICAgIHZvaWQgZGVhbGxvY2F0ZUxh
cmdlKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mLCBjb25zdCBMYXJnZU9iamVjdCYpOwpA
QCAtODgsMTUgKzg4LDE1IEBAIHByaXZhdGU6CiAgICAgWExhcmdlUmFuZ2Ugc3BsaXRBbmRBbGxv
Y2F0ZShYTGFyZ2VSYW5nZSYsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCk7CiAKICAgICB2b2lk
IGNvbmN1cnJlbnRTY2F2ZW5nZSgpOwotICAgIHZvaWQgc2NhdmVuZ2VTbWFsbFBhZ2VzKHN0ZDo6
dW5pcXVlX2xvY2s8U3RhdGljTXV0ZXg+Jiwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyk7Cisg
ICAgdm9pZCBzY2F2ZW5nZVNtYWxsUnVucyhzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYs
IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpOwogICAgIHZvaWQgc2NhdmVuZ2VMYXJnZU9iamVj
dHMoc3RkOjp1bmlxdWVfbG9jazxTdGF0aWNNdXRleD4mLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKTsKICAgICB2b2lkIHNjYXZlbmdlWExhcmdlT2JqZWN0cyhzdGQ6OnVuaXF1ZV9sb2NrPFN0
YXRpY011dGV4PiYsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpOwogCi0gICAgc3RkOjphcnJh
eTxzdGQ6OmFycmF5PExpbmVNZXRhZGF0YSwgc21hbGxMaW5lQ291bnQ+LCBzbWFsbE1heCAvIGFs
aWdubWVudD4gbV9zbWFsbExpbmVNZXRhZGF0YTsKKyAgICBzdGQ6OmFycmF5PFJ1bk1ldGFkYXRh
LCBzbWFsbE1heCAvIGFsaWdubWVudD4gbV9zbWFsbFJ1bk1ldGFkYXRhOwogCi0gICAgc3RkOjph
cnJheTxMaXN0PFNtYWxsUGFnZT4sIHNtYWxsTWF4IC8gYWxpZ25tZW50PiBtX3NtYWxsUGFnZXNX
aXRoRnJlZUxpbmVzOworICAgIHN0ZDo6YXJyYXk8TGlzdDxTbWFsbFJ1bj4sIHNtYWxsTWF4IC8g
YWxpZ25tZW50PiBtX3NtYWxsUnVuc1dpdGhGcmVlTGluZXM7CiAKLSAgICBMaXN0PFNtYWxsUGFn
ZT4gbV9zbWFsbFBhZ2VzOworICAgIExpc3Q8U21hbGxSdW4+IG1fc21hbGxSdW5zOwogCiAgICAg
U2VncmVnYXRlZEZyZWVMaXN0IG1fbGFyZ2VPYmplY3RzOwogICAgIApJbmRleDogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9MaW5lTWV0YWRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0xpbmVNZXRhZGF0YS5oCShyZXZpc2lvbiAxOTc5NDcpCisrKyBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0xpbmVNZXRhZGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4
IEBAIHN0cnVjdCBMaW5lTWV0YWRhdGEgewogICAgIHVuc2lnbmVkIHNob3J0IG9iamVjdENvdW50
OwogfTsKIAordHlwZWRlZiBzdGQ6OmFycmF5PExpbmVNZXRhZGF0YSwgc21hbGxMaW5lQ291bnQ+
IFJ1bk1ldGFkYXRhOworCiB9IC8vIG5hbWVzcGFjZSBibWFsbG9jCiAKICNlbmRpZiAvLyBMaW5l
TWV0YWRhdGFfaApJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TbWFsbENodW5rLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TbWFsbENodW5rLmgJKHJldmlzaW9u
IDE5Nzk0NykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU21hbGxDaHVuay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJTaXplcy5oIgogI2luY2x1ZGUg
IlNtYWxsTGluZS5oIgotI2luY2x1ZGUgIlNtYWxsUGFnZS5oIgorI2luY2x1ZGUgIlNtYWxsUnVu
LmgiCiAjaW5jbHVkZSAiVk1BbGxvY2F0ZS5oIgogCiBuYW1lc3BhY2UgYm1hbGxvYyB7CkBAIC0z
OSwxNSArMzksMTUgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFNtYWxsQ2h1bmsqIGdldCh2b2lk
Kik7CiAKLSAgICBTbWFsbFBhZ2UqIGJlZ2luKCkgeyByZXR1cm4gU21hbGxQYWdlOjpnZXQoU21h
bGxMaW5lOjpnZXQobV9tZW1vcnkpKTsgfQotICAgIFNtYWxsUGFnZSogZW5kKCkgeyByZXR1cm4g
bV9wYWdlcy5lbmQoKTsgfQorICAgIFNtYWxsUnVuKiBiZWdpbigpIHsgcmV0dXJuIFNtYWxsUnVu
OjpnZXQoU21hbGxMaW5lOjpnZXQobV9tZW1vcnkpKTsgfQorICAgIFNtYWxsUnVuKiBlbmQoKSB7
IHJldHVybiBtX3J1bnMuZW5kKCk7IH0KICAgICAKICAgICBTbWFsbExpbmUqIGxpbmVzKCkgeyBy
ZXR1cm4gbV9saW5lcy5iZWdpbigpOyB9Ci0gICAgU21hbGxQYWdlKiBwYWdlcygpIHsgcmV0dXJu
IG1fcGFnZXMuYmVnaW4oKTsgfQorICAgIFNtYWxsUnVuKiBydW5zKCkgeyByZXR1cm4gbV9ydW5z
LmJlZ2luKCk7IH0KICAgICAKIHByaXZhdGU6CiAgICAgc3RkOjphcnJheTxTbWFsbExpbmUsIHNt
YWxsQ2h1bmtTaXplIC8gc21hbGxMaW5lU2l6ZT4gbV9saW5lczsKLSAgICBzdGQ6OmFycmF5PFNt
YWxsUGFnZSwgc21hbGxDaHVua1NpemUgLyB2bVBhZ2VTaXplPiBtX3BhZ2VzOworICAgIHN0ZDo6
YXJyYXk8U21hbGxSdW4sIHNtYWxsQ2h1bmtTaXplIC8gdm1QYWdlU2l6ZT4gbV9ydW5zOwogICAg
IGNoYXIgbV9tZW1vcnlbXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDIgKiBzbWFsbE1heCArIDAp
KSk7CiB9OwogCkBAIC02MywxMSArNjMsMTEgQEAgaW5saW5lIFNtYWxsQ2h1bms6OlNtYWxsQ2h1
bmsoc3RkOjpsb2NrXwogICAgIGZvciAoU21hbGxMaW5lKiBsaW5lID0gbV9saW5lcy5iZWdpbigp
OyBsaW5lIDwgU21hbGxMaW5lOjpnZXQobV9tZW1vcnkpOyArK2xpbmUpIHsKICAgICAgICAgbGlu
ZS0+cmVmKGxvY2ssIDEpOwogCi0gICAgICAgIFNtYWxsUGFnZSogcGFnZSA9IFNtYWxsUGFnZTo6
Z2V0KGxpbmUpOworICAgICAgICBTbWFsbFJ1biogcGFnZSA9IFNtYWxsUnVuOjpnZXQobGluZSk7
CiAgICAgICAgIHBhZ2UtPnJlZihsb2NrKTsKICAgICB9CiAKLSAgICBmb3IgKFNtYWxsUGFnZSog
cGFnZSA9IGJlZ2luKCk7IHBhZ2UgIT0gZW5kKCk7ICsrcGFnZSkKKyAgICBmb3IgKFNtYWxsUnVu
KiBwYWdlID0gYmVnaW4oKTsgcGFnZSAhPSBlbmQoKTsgKytwYWdlKQogICAgICAgICBwYWdlLT5z
ZXRIYXNGcmVlTGluZXMobG9jaywgdHJ1ZSk7CiB9CiAKQEAgLTk4LDIzICs5OCwyMyBAQCBpbmxp
bmUgY2hhciogU21hbGxMaW5lOjplbmQoKQogICAgIHJldHVybiBiZWdpbigpICsgc21hbGxMaW5l
U2l6ZTsKIH0KIAotaW5saW5lIFNtYWxsUGFnZSogU21hbGxQYWdlOjpnZXQoU21hbGxMaW5lKiBs
aW5lKQoraW5saW5lIFNtYWxsUnVuKiBTbWFsbFJ1bjo6Z2V0KFNtYWxsTGluZSogbGluZSkKIHsK
ICAgICBTbWFsbENodW5rKiBjaHVuayA9IFNtYWxsQ2h1bms6OmdldChsaW5lKTsKICAgICBzaXpl
X3QgbGluZU51bWJlciA9IGxpbmUgLSBjaHVuay0+bGluZXMoKTsKLSAgICBzaXplX3QgcGFnZU51
bWJlciA9IGxpbmVOdW1iZXIgKiBzbWFsbExpbmVTaXplIC8gdm1QYWdlU2l6ZTsKLSAgICByZXR1
cm4gJmNodW5rLT5wYWdlcygpW3BhZ2VOdW1iZXJdOworICAgIHNpemVfdCBydW5OdW1iZXIgPSBs
aW5lTnVtYmVyICogc21hbGxMaW5lU2l6ZSAvIHZtUGFnZVNpemU7CisgICAgcmV0dXJuICZjaHVu
ay0+cnVucygpW3J1bk51bWJlcl07CiB9CiAKLWlubGluZSBTbWFsbExpbmUqIFNtYWxsUGFnZTo6
YmVnaW4oKQoraW5saW5lIFNtYWxsTGluZSogU21hbGxSdW46OmJlZ2luKCkKIHsKICAgICBTbWFs
bENodW5rKiBjaHVuayA9IFNtYWxsQ2h1bms6OmdldCh0aGlzKTsKLSAgICBzaXplX3QgcGFnZU51
bWJlciA9IHRoaXMgLSBjaHVuay0+cGFnZXMoKTsKLSAgICBzaXplX3QgbGluZU51bWJlciA9IHBh
Z2VOdW1iZXIgKiBzbWFsbExpbmVDb3VudDsKKyAgICBzaXplX3QgcnVuTnVtYmVyID0gdGhpcyAt
IGNodW5rLT5ydW5zKCk7CisgICAgc2l6ZV90IGxpbmVOdW1iZXIgPSBydW5OdW1iZXIgKiBzbWFs
bExpbmVDb3VudDsKICAgICByZXR1cm4gJmNodW5rLT5saW5lcygpW2xpbmVOdW1iZXJdOwogfQog
Ci1pbmxpbmUgU21hbGxMaW5lKiBTbWFsbFBhZ2U6OmVuZCgpCitpbmxpbmUgU21hbGxMaW5lKiBT
bWFsbFJ1bjo6ZW5kKCkKIHsKICAgICByZXR1cm4gYmVnaW4oKSArIHNtYWxsTGluZUNvdW50Owog
fQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TbWFsbFBhZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NtYWxsUGFnZS5oCShyZXZpc2lvbiAxOTc5NDcpCisr
KyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NtYWxsUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIFNtYWxsUGFnZV9oCi0jZGVmaW5lIFNtYWxsUGFnZV9oCi0KLSNpbmNs
dWRlICJCQXNzZXJ0LmgiCi0jaW5jbHVkZSAiTGlzdC5oIgotI2luY2x1ZGUgIk11dGV4LmgiCi0j
aW5jbHVkZSAiVk1BbGxvY2F0ZS5oIgotI2luY2x1ZGUgPG11dGV4PgotCi1uYW1lc3BhY2UgYm1h
bGxvYyB7Ci0KLWNsYXNzIFNtYWxsUGFnZSA6IHB1YmxpYyBMaXN0Tm9kZTxTbWFsbFBhZ2U+IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBtYXhSZWZDb3VudCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46Om1heCgpOwotICAgIHN0YXRpY19hc3Nl
cnQoc21hbGxMaW5lQ291bnQgPCBtYXhSZWZDb3VudCwgIm1heGltdW0gbGluZSBjb3VudCBtdXN0
IGZpdCBpbiBTbWFsbFBhZ2UiKTsKLSAgICAKLSAgICBzdGF0aWMgU21hbGxQYWdlKiBnZXQoU21h
bGxMaW5lKik7Ci0KLSAgICBTbWFsbFBhZ2UoKQotICAgICAgICA6IG1faGFzRnJlZUxpbmVzKHRy
dWUpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgcmVmKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNN
dXRleD4mKTsKLSAgICBib29sIGRlcmVmKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mKTsK
LSAgICB1bnNpZ25lZCByZWZDb3VudChzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JikgeyBy
ZXR1cm4gbV9yZWZDb3VudDsgfQotICAgIAotICAgIHNpemVfdCBzaXplQ2xhc3MoKSB7IHJldHVy
biBtX3NpemVDbGFzczsgfQotICAgIHZvaWQgc2V0U2l6ZUNsYXNzKHNpemVfdCBzaXplQ2xhc3Mp
IHsgbV9zaXplQ2xhc3MgPSBzaXplQ2xhc3M7IH0KLSAgICAKLSAgICBib29sIGhhc0ZyZWVMaW5l
cyhzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JikgY29uc3QgeyByZXR1cm4gbV9oYXNGcmVl
TGluZXM7IH0KLSAgICB2b2lkIHNldEhhc0ZyZWVMaW5lcyhzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGlj
TXV0ZXg+JiwgYm9vbCBoYXNGcmVlTGluZXMpIHsgbV9oYXNGcmVlTGluZXMgPSBoYXNGcmVlTGlu
ZXM7IH0KLSAgICAKLSAgICBTbWFsbExpbmUqIGJlZ2luKCk7Ci0gICAgU21hbGxMaW5lKiBlbmQo
KTsKLQotcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBjaGFyIG1faGFzRnJlZUxpbmVzOiAxOwotICAg
IHVuc2lnbmVkIGNoYXIgbV9yZWZDb3VudDogNzsKLSAgICB1bnNpZ25lZCBjaGFyIG1fc2l6ZUNs
YXNzOwotfTsKLQotaW5saW5lIHZvaWQgU21hbGxQYWdlOjpyZWYoc3RkOjpsb2NrX2d1YXJkPFN0
YXRpY011dGV4PiYpCi17Ci0gICAgQkFTU0VSVChtX3JlZkNvdW50IDwgbWF4UmVmQ291bnQpOwot
ICAgICsrbV9yZWZDb3VudDsKLX0KLQotaW5saW5lIGJvb2wgU21hbGxQYWdlOjpkZXJlZihzdGQ6
OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JikKLXsKLSAgICBCQVNTRVJUKG1fcmVmQ291bnQpOwot
ICAgIC0tbV9yZWZDb3VudDsKLSAgICByZXR1cm4gIW1fcmVmQ291bnQ7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIGJtYWxsb2MKLQotI2VuZGlmIC8vIFNtYWxsUGFnZV9oCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL1NtYWxsUnVuLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9TbWFsbFJ1bi5oCShyZXZpc2lvbiAxOTc5NDcpCShmcm9tIFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvU21hbGxQYWdlLmg6MTk3OTQ3KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TbWFs
bFJ1bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFNtYWxsUGFnZV9oCisj
ZGVmaW5lIFNtYWxsUGFnZV9oCisKKyNpbmNsdWRlICJCQXNzZXJ0LmgiCisjaW5jbHVkZSAiTGlz
dC5oIgorI2luY2x1ZGUgIk11dGV4LmgiCisjaW5jbHVkZSAiVk1BbGxvY2F0ZS5oIgorI2luY2x1
ZGUgPG11dGV4PgorCituYW1lc3BhY2UgYm1hbGxvYyB7CisKK2NsYXNzIFNtYWxsUGFnZSA6IHB1
YmxpYyBMaXN0Tm9kZTxTbWFsbFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgY2hhciBtYXhSZWZDb3VudCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hh
cj46Om1heCgpOworICAgIHN0YXRpY19hc3NlcnQoc21hbGxMaW5lQ291bnQgPCBtYXhSZWZDb3Vu
dCwgIm1heGltdW0gbGluZSBjb3VudCBtdXN0IGZpdCBpbiBTbWFsbFBhZ2UiKTsKKyAgICAKKyAg
ICBzdGF0aWMgU21hbGxQYWdlKiBnZXQoU21hbGxMaW5lKik7CisKKyAgICBTbWFsbFBhZ2UoKQor
ICAgICAgICA6IG1faGFzRnJlZUxpbmVzKHRydWUpCisgICAgeworICAgIH0KKworICAgIHZvaWQg
cmVmKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mKTsKKyAgICBib29sIGRlcmVmKHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mKTsKKyAgICB1bnNpZ25lZCByZWZDb3VudChzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JikgeyByZXR1cm4gbV9yZWZDb3VudDsgfQorICAgIAorICAg
IHNpemVfdCBzaXplQ2xhc3MoKSB7IHJldHVybiBtX3NpemVDbGFzczsgfQorICAgIHZvaWQgc2V0
U2l6ZUNsYXNzKHNpemVfdCBzaXplQ2xhc3MpIHsgbV9zaXplQ2xhc3MgPSBzaXplQ2xhc3M7IH0K
KyAgICAKKyAgICBib29sIGhhc0ZyZWVMaW5lcyhzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+
JikgY29uc3QgeyByZXR1cm4gbV9oYXNGcmVlTGluZXM7IH0KKyAgICB2b2lkIHNldEhhc0ZyZWVM
aW5lcyhzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JiwgYm9vbCBoYXNGcmVlTGluZXMpIHsg
bV9oYXNGcmVlTGluZXMgPSBoYXNGcmVlTGluZXM7IH0KKyAgICAKKyAgICBTbWFsbExpbmUqIGJl
Z2luKCk7CisgICAgU21hbGxMaW5lKiBlbmQoKTsKKworcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBj
aGFyIG1faGFzRnJlZUxpbmVzOiAxOworICAgIHVuc2lnbmVkIGNoYXIgbV9yZWZDb3VudDogNzsK
KyAgICB1bnNpZ25lZCBjaGFyIG1fc2l6ZUNsYXNzOworfTsKKworaW5saW5lIHZvaWQgU21hbGxQ
YWdlOjpyZWYoc3RkOjpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYpCit7CisgICAgQkFTU0VSVCht
X3JlZkNvdW50IDwgbWF4UmVmQ291bnQpOworICAgICsrbV9yZWZDb3VudDsKK30KKworaW5saW5l
IGJvb2wgU21hbGxQYWdlOjpkZXJlZihzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JikKK3sK
KyAgICBCQVNTRVJUKG1fcmVmQ291bnQpOworICAgIC0tbV9yZWZDb3VudDsKKyAgICByZXR1cm4g
IW1fcmVmQ291bnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIGJtYWxsb2MKKworI2VuZGlmIC8vIFNt
YWxsUGFnZV9oCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NtYWxsUnVuLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TbWFsbFJ1bi5oCSh3b3JraW5nIGNvcHkp
CisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1NtYWxsUnVuLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDggKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgU21hbGxQYWdl
X2gKLSNkZWZpbmUgU21hbGxQYWdlX2gKKyNpZm5kZWYgU21hbGxSdW5faAorI2RlZmluZSBTbWFs
bFJ1bl9oCiAKICNpbmNsdWRlICJCQXNzZXJ0LmgiCiAjaW5jbHVkZSAiTGlzdC5oIgpAQCAtMzQs
MTQgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBibWFsbG9jIHsKIAotY2xhc3MgU21hbGxQYWdlIDog
cHVibGljIExpc3ROb2RlPFNtYWxsUGFnZT4geworY2xhc3MgU21hbGxSdW4gOiBwdWJsaWMgTGlz
dE5vZGU8U21hbGxSdW4+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh
ciBtYXhSZWZDb3VudCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQgY2hhcj46Om1heCgp
OwotICAgIHN0YXRpY19hc3NlcnQoc21hbGxMaW5lQ291bnQgPCBtYXhSZWZDb3VudCwgIm1heGlt
dW0gbGluZSBjb3VudCBtdXN0IGZpdCBpbiBTbWFsbFBhZ2UiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHNtYWxsTGluZUNvdW50IDwgbWF4UmVmQ291bnQsICJtYXhpbXVtIGxpbmUgY291bnQgbXVzdCBm
aXQgaW4gU21hbGxSdW4iKTsKICAgICAKLSAgICBzdGF0aWMgU21hbGxQYWdlKiBnZXQoU21hbGxM
aW5lKik7CisgICAgc3RhdGljIFNtYWxsUnVuKiBnZXQoU21hbGxMaW5lKik7CiAKLSAgICBTbWFs
bFBhZ2UoKQorICAgIFNtYWxsUnVuKCkKICAgICAgICAgOiBtX2hhc0ZyZWVMaW5lcyh0cnVlKQog
ICAgIHsKICAgICB9CkBAIC02NSwxMyArNjUsMTMgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBj
aGFyIG1fc2l6ZUNsYXNzOwogfTsKIAotaW5saW5lIHZvaWQgU21hbGxQYWdlOjpyZWYoc3RkOjps
b2NrX2d1YXJkPFN0YXRpY011dGV4PiYpCitpbmxpbmUgdm9pZCBTbWFsbFJ1bjo6cmVmKHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mKQogewogICAgIEJBU1NFUlQobV9yZWZDb3VudCA8IG1h
eFJlZkNvdW50KTsKICAgICArK21fcmVmQ291bnQ7CiB9CiAKLWlubGluZSBib29sIFNtYWxsUGFn
ZTo6ZGVyZWYoc3RkOjpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYpCitpbmxpbmUgYm9vbCBTbWFs
bFJ1bjo6ZGVyZWYoc3RkOjpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYpCiB7CiAgICAgQkFTU0VS
VChtX3JlZkNvdW50KTsKICAgICAtLW1fcmVmQ291bnQ7CkBAIC04MCw0ICs4MCw0IEBAIGlubGlu
ZSBib29sIFNtYWxsUGFnZTo6ZGVyZWYoc3RkOjpsb2NrX2cKIAogfSAvLyBuYW1lc3BhY2UgYm1h
bGxvYwogCi0jZW5kaWYgLy8gU21hbGxQYWdlX2gKKyNlbmRpZiAvLyBTbWFsbFJ1bl9oCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9WTUhlYXAuY3BwCShyZXZpc2lvbiAxOTc5NDcpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1ZNSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcg
QEAgdm9pZCBWTUhlYXA6OmFsbG9jYXRlU21hbGxDaHVuayhzdGQ6OmxvYwogICAgIC8vIFdlIGlu
aXRpYWxpemUgY2h1bmtzIGxhemlseSB0byBhdm9pZCBkaXJ0eWluZyB0aGVpciBtZXRhZGF0YSBw
YWdlcy4KICAgICBTbWFsbENodW5rKiBzbWFsbENodW5rID0gbmV3IChtX3NtYWxsQ2h1bmtzLnBv
cCgpLT5zbWFsbENodW5rKCkpIFNtYWxsQ2h1bmsobG9jayk7CiAgICAgZm9yIChhdXRvKiBpdCA9
IHNtYWxsQ2h1bmstPmJlZ2luKCk7IGl0IDwgc21hbGxDaHVuay0+ZW5kKCk7ICsraXQpCi0gICAg
ICAgIG1fc21hbGxQYWdlcy5wdXNoKGl0KTsKKyAgICAgICAgbV9zbWFsbFJ1bnMucHVzaChpdCk7
CiB9CiAKIExhcmdlT2JqZWN0IFZNSGVhcDo6YWxsb2NhdGVMYXJnZUNodW5rKHN0ZDo6bG9ja19n
dWFyZDxTdGF0aWNNdXRleD4mIGxvY2spCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZN
SGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1IZWFwLmgJKHJl
dmlzaW9uIDE5Nzk0NykKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1IZWFwLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDExICs1MCwxMSBAQCBjbGFzcyBWTUhlYXAgewogcHVibGljOgogICAg
IFZNSGVhcCgpOwogCi0gICAgU21hbGxQYWdlKiBhbGxvY2F0ZVNtYWxsUGFnZShzdGQ6OmxvY2tf
Z3VhcmQ8U3RhdGljTXV0ZXg+Jik7CisgICAgU21hbGxSdW4qIGFsbG9jYXRlU21hbGxSdW4oc3Rk
Ojpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYpOwogICAgIExhcmdlT2JqZWN0IGFsbG9jYXRlTGFy
Z2VPYmplY3Qoc3RkOjpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYsIHNpemVfdCk7CiAgICAgTGFy
Z2VPYmplY3QgYWxsb2NhdGVMYXJnZU9iamVjdChzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+
Jiwgc2l6ZV90LCBzaXplX3QsIHNpemVfdCk7CiAKLSAgICB2b2lkIGRlYWxsb2NhdGVTbWFsbFBh
Z2Uoc3RkOjp1bmlxdWVfbG9jazxTdGF0aWNNdXRleD4mLCBTbWFsbFBhZ2UqKTsKKyAgICB2b2lk
IGRlYWxsb2NhdGVTbWFsbFJ1bihzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYsIFNtYWxs
UnVuKik7CiAgICAgdm9pZCBkZWFsbG9jYXRlTGFyZ2VPYmplY3Qoc3RkOjp1bmlxdWVfbG9jazxT
dGF0aWNNdXRleD4mLCBMYXJnZU9iamVjdCk7CiAgICAgCiBwcml2YXRlOgpAQCAtNjIsNyArNjIs
NyBAQCBwcml2YXRlOgogICAgIExhcmdlT2JqZWN0IGFsbG9jYXRlTGFyZ2VDaHVuayhzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTXV0ZXg+Jik7CiAgICAgdm9pZCBhbGxvY2F0ZVN1cGVyQ2h1bmsoc3Rk
Ojpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYpOwogCi0gICAgTGlzdDxTbWFsbFBhZ2U+IG1fc21h
bGxQYWdlczsKKyAgICBMaXN0PFNtYWxsUnVuPiBtX3NtYWxsUnVuczsKICAgICBTZWdyZWdhdGVk
RnJlZUxpc3QgbV9sYXJnZU9iamVjdHM7CiAKICAgICBWZWN0b3I8U3VwZXJDaHVuayo+IG1fc21h
bGxDaHVua3M7CkBAIC03MywxNCArNzMsMTQgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotaW5s
aW5lIFNtYWxsUGFnZSogVk1IZWFwOjphbGxvY2F0ZVNtYWxsUGFnZShzdGQ6OmxvY2tfZ3VhcmQ8
U3RhdGljTXV0ZXg+JiBsb2NrKQoraW5saW5lIFNtYWxsUnVuKiBWTUhlYXA6OmFsbG9jYXRlU21h
bGxSdW4oc3RkOjpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYgbG9jaykKIHsKLSAgICBpZiAobV9z
bWFsbFBhZ2VzLmlzRW1wdHkoKSkKKyAgICBpZiAobV9zbWFsbFJ1bnMuaXNFbXB0eSgpKQogICAg
ICAgICBhbGxvY2F0ZVNtYWxsQ2h1bmsobG9jayk7CiAKLSAgICBTbWFsbFBhZ2UqIHBhZ2UgPSBt
X3NtYWxsUGFnZXMucG9wKCk7Ci0gICAgdm1BbGxvY2F0ZVBoeXNpY2FsUGFnZXMocGFnZS0+YmVn
aW4oKS0+YmVnaW4oKSwgdm1QYWdlU2l6ZSk7Ci0gICAgcmV0dXJuIHBhZ2U7CisgICAgU21hbGxS
dW4qIHJ1biA9IG1fc21hbGxSdW5zLnBvcCgpOworICAgIHZtQWxsb2NhdGVQaHlzaWNhbFBhZ2Vz
KHJ1bi0+YmVnaW4oKS0+YmVnaW4oKSwgdm1QYWdlU2l6ZSk7CisgICAgcmV0dXJuIHJ1bjsKIH0K
IAogaW5saW5lIExhcmdlT2JqZWN0IFZNSGVhcDo6YWxsb2NhdGVMYXJnZU9iamVjdChzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTXV0ZXg+JiBsb2NrLCBzaXplX3Qgc2l6ZSkKQEAgLTEwMSwxMyArMTAx
LDEzIEBAIGlubGluZSBMYXJnZU9iamVjdCBWTUhlYXA6OmFsbG9jYXRlTGFyZ2UKICAgICByZXR1
cm4gYWxsb2NhdGVMYXJnZUNodW5rKGxvY2spOwogfQogCi1pbmxpbmUgdm9pZCBWTUhlYXA6OmRl
YWxsb2NhdGVTbWFsbFBhZ2Uoc3RkOjp1bmlxdWVfbG9jazxTdGF0aWNNdXRleD4mIGxvY2ssIFNt
YWxsUGFnZSogcGFnZSkKK2lubGluZSB2b2lkIFZNSGVhcDo6ZGVhbGxvY2F0ZVNtYWxsUnVuKHN0
ZDo6dW5pcXVlX2xvY2s8U3RhdGljTXV0ZXg+JiBsb2NrLCBTbWFsbFJ1biogcnVuKQogewogICAg
IGxvY2sudW5sb2NrKCk7Ci0gICAgdm1EZWFsbG9jYXRlUGh5c2ljYWxQYWdlcyhwYWdlLT5iZWdp
bigpLT5iZWdpbigpLCB2bVBhZ2VTaXplKTsKKyAgICB2bURlYWxsb2NhdGVQaHlzaWNhbFBhZ2Vz
KHJ1bi0+YmVnaW4oKS0+YmVnaW4oKSwgdm1QYWdlU2l6ZSk7CiAgICAgbG9jay5sb2NrKCk7CiAg
ICAgCi0gICAgbV9zbWFsbFBhZ2VzLnB1c2gocGFnZSk7CisgICAgbV9zbWFsbFJ1bnMucHVzaChy
dW4pOwogfQogCiBpbmxpbmUgdm9pZCBWTUhlYXA6OmRlYWxsb2NhdGVMYXJnZU9iamVjdChzdGQ6
OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYgbG9jaywgTGFyZ2VPYmplY3QgbGFyZ2VPYmplY3Qp
Cg==
</data>
<flag name="review"
          id="298187"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>