<?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>140582</bug_id>
          
          <creation_ts>2015-01-16 18:18:14 -0800</creation_ts>
          <short_desc>bmalloc: refactored XLarge allocation for better alignment</short_desc>
          <delta_ts>2015-01-16 18:53:24 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1062068</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-16 18:18:14 -0800</bug_when>
    <thetext>bmalloc: refactored XLarge allocation for better alignment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062072</commentid>
    <comment_count>1</comment_count>
      <attachid>244829</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-16 18:28:08 -0800</bug_when>
    <thetext>Created attachment 244829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062078</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-01-16 18:53:24 -0800</bug_when>
    <thetext>Committed r178621: &lt;http://trac.webkit.org/changeset/178621&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244829</attachid>
            <date>2015-01-16 18:28:08 -0800</date>
            <delta_ts>2015-01-16 18:52:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140582-20150116182815.patch</filename>
            <type>text/plain</type>
            <size>20772</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3ODYxOSkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE1LTAxLTE2ICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogcmVmYWN0b3Jl
ZCBYTGFyZ2UgYWxsb2NhdGlvbiBmb3IgYmV0dGVyIGFsaWdubWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNTgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgWExhcmdlIG9iamVjdHMgdXNlZCB0byBi
ZSBMYXJnZSBvYmplY3RzIHdpdGggYW4gZXh0cmEgYml0IG9mIG1ldGFkYXRhCisgICAgICAgIHRo
YXQgc2FpZCAiYWN0dWFsbHksIEknbSBub3QgbGFyZ2UgLS0gSSdtIGV4dHJhIGxhcmdlIi4KKwor
ICAgICAgICBUaGUgbWV0YWRhdGEgaGVhZGVyIGluIGFuIFhMYXJnZSBhbGxvY2F0aW9uIG1hZGUg
aXQgaW1wb3NzaWJsZSBmb3IgdGhlCisgICAgICAgIFhMYXJnZSBvYmplY3QgdG8gaG9ub3IgYSB2
ZXJ5IGxhcmdlIGFsaWdubWVudCByZXF1ZXN0LgorCisgICAgICAgIFRoZSBzb2x1dGlvbiBpcyB0
byBzdG9wIHVzaW5nYSBhIG1ldGFkYXRhIGhlYWRlciBmb3IgWExhcmdlIG9iamVjdHMsIGFuZAor
ICAgICAgICBpbnN0ZWFkIHRvIHN0b3JlIGV4cGxpY2l0IG1ldGFkYXRhIG9uIHRoZSBzaWRlLgor
CisgICAgICAgIFRoaXMgaXMgYSBiaXQgbGVzcyBhc3RvbmlzaGluZywgd2hpY2ggaXMgYWxzbyBu
aWNlLgorCisgICAgICAgIEZpbmRpbmcgWExhcmdlIG1ldGFkYXRhIGlzIG5vdyBhIGxpbmVhciBz
ZWFyY2guIFRoYXQncyBwcm9iYWJseSBPSywgc2luY2UKKyAgICAgICAgaXQgd2FzIGFsd2F5cyBz
byBpbiBUQ01hbGxvYywgYW5kIHRoZSB1c3VhbCBudW1iZXIgb2YgWExhcmdlIGFsbG9jYXRpb25z
CisgICAgICAgIGluIGEgcHJvY2VzcyBpcyAwLgorCisgICAgICAgICogYm1hbGxvYy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJtYWxsb2MvQWxsb2NhdG9yLmNwcDoKKyAg
ICAgICAgKGJtYWxsb2M6OkFsbG9jYXRvcjo6cmVhbGxvY2F0ZSk6IFJlbW92ZWQgdGhlIGNvbmNl
cHQgb2YgYW4gWExhcmdlQ2h1bmssCisgICAgICAgIHNpbmNlIGFuIFhMYXJnZSBhbGxvY2F0aW9u
IGlzIG5vdyBqdXN0IGEgbmFrZWQgYnVmZmVyIHdpdGhvdXQgYSBoZWFkZXIuCisKKyAgICAgICAg
KGJtYWxsb2M6OkFsbG9jYXRvcjo6YWxsb2NhdGVYTGFyZ2UpOiBBZGRlZCBhbiBleHBsaWNpdCBx
dWFsaWZpZXIgZm9yCisgICAgICAgIFhMYXJnZSBhbGlnbm1lbnQsIHNpbmNlIFhMYXJnZUNodW5r
IHdvbid0IGdpdmUgdGhpcyB0byB1cyBpbXBsaWNpdGx5CisgICAgICAgIGFueW1vcmUuCisKKyAg
ICAgICAgKiBibWFsbG9jL0JvdW5kYXJ5VGFnLmg6CisgICAgICAgIChibWFsbG9jOjpCb3VuZGFy
eVRhZzo6c2V0UmFuZ2UpOgorICAgICAgICAoYm1hbGxvYzo6Qm91bmRhcnlUYWc6OmlzWExhcmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKGJtYWxsb2M6OkJvdW5kYXJ5VGFnOjpzZXRYTGFyZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIGJtYWxsb2MvQm91bmRhcnlUYWdJbmxpbmVzLmg6CisgICAgICAg
IChibWFsbG9jOjp2YWxpZGF0ZSk6CisgICAgICAgIChibWFsbG9jOjpCb3VuZGFyeVRhZzo6ZGVh
bGxvY2F0ZSk6IFJlbW92ZWQgdGhlIFhMYXJnZSBoYWNrcyBmcm9tIExhcmdlIGFsbG9jYXRpb25z
LgorCisgICAgICAgICogYm1hbGxvYy9EZWFsbG9jYXRvci5jcHA6CisgICAgICAgIChibWFsbG9j
OjpEZWFsbG9jYXRvcjo6ZGVhbGxvY2F0ZVhMYXJnZSk6CisgICAgICAgIChibWFsbG9jOjpEZWFs
bG9jYXRvcjo6ZGVhbGxvY2F0ZVNsb3dDYXNlKToKKyAgICAgICAgKiBibWFsbG9jL0hlYXAuY3Bw
OgorICAgICAgICAoYm1hbGxvYzo6SGVhcDo6ZmluZFhMYXJnZSk6CisgICAgICAgIChibWFsbG9j
OjpIZWFwOjphbGxvY2F0ZVhMYXJnZSk6CisgICAgICAgIChibWFsbG9jOjpIZWFwOjpkZWFsbG9j
YXRlWExhcmdlKToKKyAgICAgICAgKiBibWFsbG9jL0hlYXAuaDogVXBkYXRlZCBmb3IgaW50ZXJm
YWNlIGNoYW5nZXMuCisKKyAgICAgICAgKiBibWFsbG9jL09iamVjdFR5cGUuY3BwOgorICAgICAg
ICAoYm1hbGxvYzo6b2JqZWN0VHlwZSk6CisgICAgICAgICogYm1hbGxvYy9PYmplY3RUeXBlLmg6
CisgICAgICAgIChibWFsbG9jOjppc1hMYXJnZSk6IFdlIGNhbiBub3cgdGVsbCBpZiBhIHBvaW50
ZXIgaXMgWExhcmdlIGp1c3QgYnkKKyAgICAgICAgZXhhbWluaW5nIGl0cyBiaXQgcGF0dGVybiAt
LSBqdXN0IGxpa2Ugd2UgZG8gZm9yIG90aGVyIGtpbmRzIG9mCisgICAgICAgIGFsbG9jYXRpb25z
IC0tIHdoaWNoIGlzIG5pY2UuCisKKyAgICAgICAgKiBibWFsbG9jL1NpemVzLmg6CisgICAgICAg
ICogYm1hbGxvYy9WTUhlYXAuaDoKKyAgICAgICAgKGJtYWxsb2M6OlZNSGVhcDo6YWxsb2NhdGVY
TGFyZ2UpOgorICAgICAgICAoYm1hbGxvYzo6Vk1IZWFwOjpmaW5kWExhcmdlKToKKyAgICAgICAg
KGJtYWxsb2M6OlZNSGVhcDo6ZGVhbGxvY2F0ZVhMYXJnZSk6IEtlZXAgYW4gZXhwbGljaXQgdmVj
dG9yIG9mIG1ldGFkYXRhCisgICAgICAgIGZvciBYTGFyZ2UgYWxsb2NhdGlvbnMuCisKKyAgICAg
ICAgKiBibWFsbG9jL1hMYXJnZUNodW5rLmg6IFJlbW92ZWQuCisKIDIwMTUtMDEtMTYgIEdlb2Zm
cmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBibWFsbG9jOiBhZGRlZCBz
b21lIGluZnJhc3RydWN0dXJlIGZvciBhbGlnbmVkIGFsbG9jYXRpb24KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDE3ODU4NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNiBAQAogCQkxNERENzhDRTE4RjQ4RDc1
MDA5NTA3MDIgLyogU3lzY2FsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQxN0Y2NEYxOEI3MjgwQzAwNzZGQTNGIC8qIFN5c2NhbGwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNERENzhDRjE4RjQ4
RDc1MDA5NTA3MDIgLyogVmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxNDc5RTIxMjE3QTFBMjU1MDA2RDRFOUQgLyogVmVjdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRERDc4RDAxOEY0
OEQ3NTAwOTUwNzAyIC8qIFZNQWxsb2NhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlFMjE0MTdBMUE2M0UwMDZENEU5RCAvKiBWTUFsbG9jYXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMTRE
RDc4RDExOEY0OEVDNjAwOTUwNzAyIC8qIFhMYXJnZUNodW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDdBQUE4OTE4Q0QxN0NFMDAyMjAxRTQgLyog
WExhcmdlQ2h1bmsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxNEYyNzFDMzE4RUEzOTc4MDA4QzE1MkYgLyogQWxsb2NhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NUY2ODU1MTc5REM4Q0Ew
MEQ2NTU5OCAvKiBBbGxvY2F0b3IuY3BwICovOyB9OwogCQkxNEYyNzFDNDE4RUEzOTdCMDA4QzE1
MkYgLyogQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ0NDY5RTQxN0E0NkJGRTAwRjlFQTFEIC8qIENhY2hlLmNwcCAqLzsgfTsKIAkJMTRG
MjcxQzUxOEVBMzk3RTAwOEMxNTJGIC8qIERlYWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NUY2ODU5MTc5REM5MDIwMEQ2NTU5OCAv
KiBEZWFsbG9jYXRvci5jcHAgKi87IH07CkBAIC0xMTQsNyArMTEzLDYgQEAKIAkJMTQ3OUUyMTIx
N0ExQTI1NTAwNkQ0RTlEIC8qIFZlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBuYW1lID0gVmVjdG9yLmg7IHBhdGggPSBibWFsbG9jL1ZlY3Rvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJMTQ3OUUyMTQxN0ExQTYzRTAwNkQ0RTlEIC8qIFZN
QWxsb2NhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgbmFt
ZSA9IFZNQWxsb2NhdGUuaDsgcGF0aCA9IGJtYWxsb2MvVk1BbGxvY2F0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5s
YW5nLm9iamNwcDsgfTsKIAkJMTQ3QUFBODgxOENEMTdDRTAwMjIwMUU0IC8qIExhcmdlQ2h1bmsu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGFyZ2VDaHVuay5oOyBwYXRoID0g
Ym1hbGxvYy9MYXJnZUNodW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTE0N0FB
QTg5MThDRDE3Q0UwMDIyMDFFNCAvKiBYTGFyZ2VDaHVuay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBYTGFyZ2VDaHVuay5oOyBwYXRoID0gYm1hbGxvYy9YTGFyZ2VDaHVuay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDdBQUE4QzE4Q0QzNkE3MDAyMjAxRTQg
LyogU21hbGxDaHVuay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTbWFsbENo
dW5rLmg7IHBhdGggPSBibWFsbG9jL1NtYWxsQ2h1bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTQ3QUFBOEUxOENEODlFMzAwMjIwMUU0IC8qIE1lZGl1bUNodW5rLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGl1bUNodW5rLmg7IHBhdGggPSBibWFsbG9j
L01lZGl1bUNodW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0N0FBQTk0MThD
RTVDQTYwMDIyMDFFNCAvKiBDaHVuay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDaHVuay5oOyBwYXRoID0gYm1hbGxvYy9DaHVuay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjE2LDcgKzIxNCw2IEBACiAJCQkJMTQ3QUFBODgxOENEMTdDRTAwMjIwMUU0IC8q
IExhcmdlQ2h1bmsuaCAqLywKIAkJCQkxNDZCRUUyMTE4Qzg0NUFFMDAwMkQ1QTIgLyogU2VncmVn
YXRlZEZyZWVMaXN0LmNwcCAqLywKIAkJCQkxNDZCRUUxRTE4Qzg0MUM1MDAwMkQ1QTIgLyogU2Vn
cmVnYXRlZEZyZWVMaXN0LmggKi8sCi0JCQkJMTQ3QUFBODkxOENEMTdDRTAwMjIwMUU0IC8qIFhM
YXJnZUNodW5rLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJoZWFwOiBsYXJnZSB8IHhsYXJnZSI7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzEwLDcgKzMwNyw2IEBACiAJCQkJMTRE
RDc4QjQxOEY0OEQ2QjAwOTUwNzAyIC8qIENodW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERE
NzhDQTE4RjQ4RDc1MDA5NTA3MDIgLyogTXV0ZXguaCBpbiBIZWFkZXJzICovLAogCQkJCTE0M0NC
ODFEMTkwMjJCQzkwMEIxNkE0NSAvKiBTdGF0aWNNdXRleC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MTRERDc4RDExOEY0OEVDNjAwOTUwNzAyIC8qIFhMYXJnZUNodW5rLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNERENzhCOTE4RjQ4RDZCMDA5NTA3MDIgLyogTWVkaXVtVHJhaXRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNDQ4QzMwMTE4RjM3NTRDMDA1MDI4MzkgLyogYm1hbGxvYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTRERDc4OUExOEY0OEQ0QTAwOTUwNzAyIC8qIERlYWxsb2NhdG9yLmggaW4g
SGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxsb2NhdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsbG9jYXRvci5jcHAJKHJldmlz
aW9uIDE3ODYwOSkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxsb2NhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkxhcmdlQ2h1bmsuaCIKICNp
bmNsdWRlICJQZXJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiU2l6ZXMuaCIKLSNpbmNsdWRlICJYTGFy
Z2VDaHVuay5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxjc3RkbGliPgogCkBA
IC05MCw4ICs4OSwxMCBAQCB2b2lkKiBBbGxvY2F0b3I6OnJlYWxsb2NhdGUodm9pZCogb2JqZWN0
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFhMYXJnZTogewotICAgICAgICBYTGFy
Z2VDaHVuayogY2h1bmsgPSBYTGFyZ2VDaHVuazo6Z2V0KG9iamVjdCk7Ci0gICAgICAgIG9sZFNp
emUgPSBjaHVuay0+c2l6ZSgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+
IGxvY2soUGVyUHJvY2VzczxIZWFwPjo6bXV0ZXgoKSk7CisgICAgICAgIFJhbmdlIHJhbmdlID0g
UGVyUHJvY2VzczxIZWFwPjo6Z2V0RmFzdENhc2UoKS0+ZmluZFhMYXJnZShsb2NrLCBvYmplY3Qp
OworICAgICAgICBSRUxFQVNFX0JBU1NFUlQocmFuZ2UpOworICAgICAgICBvbGRTaXplID0gcmFu
Z2Uuc2l6ZSgpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQpAQCAtMTUxLDcgKzE1Miw3
IEBAIE5PX0lOTElORSB2b2lkKiBBbGxvY2F0b3I6OmFsbG9jYXRlTGFyZ2UKIAogTk9fSU5MSU5F
IHZvaWQqIEFsbG9jYXRvcjo6YWxsb2NhdGVYTGFyZ2Uoc2l6ZV90IHNpemUpCiB7Ci0gICAgc2l6
ZSA9IHJvdW5kVXBUb011bHRpcGxlT2Y8bGFyZ2VBbGlnbm1lbnQ+KHNpemUpOworICAgIHNpemUg
PSByb3VuZFVwVG9NdWx0aXBsZU9mPHhMYXJnZUFsaWdubWVudD4oc2l6ZSk7CiAgICAgc3RkOjps
b2NrX2d1YXJkPFN0YXRpY011dGV4PiBsb2NrKFBlclByb2Nlc3M8SGVhcD46Om11dGV4KCkpOwog
ICAgIHJldHVybiBQZXJQcm9jZXNzPEhlYXA+OjpnZXRGYXN0Q2FzZSgpLT5hbGxvY2F0ZVhMYXJn
ZShsb2NrLCBzaXplKTsKIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQm91bmRhcnlU
YWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JvdW5kYXJ5VGFnLmgJ
KHJldmlzaW9uIDE3ODU4NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQm91bmRhcnlUYWcu
aAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgYWxsb2NhdGUoc2l6ZV90LCBSYW5nZSYsIFJhbmdlJiBsZWZ0b3ZlciwgYm9vbCYgaGFzUGh5
c2ljYWxQYWdlcyk7CiAgICAgc3RhdGljIHVuc2lnbmVkIGNvbXBhY3RCZWdpbihjb25zdCBSYW5n
ZSYpOwogCi0gICAgYm9vbCBpc1hMYXJnZSgpIHsgcmV0dXJuIG1fc2l6ZSA9PSB4TGFyZ2VNYXJr
ZXI7IH0KLSAgICB2b2lkIHNldFhMYXJnZSgpIHsgbV9zaXplID0geExhcmdlTWFya2VyOyB9Ci0K
ICAgICBib29sIGlzRnJlZSgpIHsgcmV0dXJuIG1faXNGcmVlOyB9CiAgICAgdm9pZCBzZXRGcmVl
KGJvb2wgaXNGcmVlKSB7IG1faXNGcmVlID0gaXNGcmVlOyB9CiAgICAgCkBAIC03MSw5ICs2OCw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBmbGFnQml0cyA9IDM7CiAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBjb21wYWN0QmVnaW5CaXRzID0gNTsKICAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IHNpemVCaXRzID0gYml0Q291bnQ8dW5zaWduZWQ+KCkgLSBmbGFnQml0cyAtIGNv
bXBhY3RCZWdpbkJpdHM7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCB4TGFyZ2VNYXJrZXIgPSAx
OyAvLyBUaGlzIHNpemUgaXMgdW51c2VkIGJlY2F1c2Ugb3VyIG1pbmltdW0gb2JqZWN0IHNpemUg
aXMgZ3JlYXRlciB0aGFuIGl0LgogCi0gICAgc3RhdGljX2Fzc2VydChsYXJnZU1pbiA+IHhMYXJn
ZU1hcmtlciwgImxhcmdlTWluIG11c3QgcHJvdmlkZSBlbm91Z2ggdW1icmVsbGEgdG8gZml0IHhM
YXJnZU1hcmtlci4iKTsKICAgICBzdGF0aWNfYXNzZXJ0KCgxIDw8IGNvbXBhY3RCZWdpbkJpdHMp
IC0gMSA+PSBsYXJnZU1pbiAvIGxhcmdlQWxpZ25tZW50LCAiY29tcGFjdEJlZ2luIG11c3QgYmUg
ZW5jb2RhYmxlIGluIGEgQm91bmRhcnlUYWcuIik7CiAgICAgc3RhdGljX2Fzc2VydCgoMSA8PCBz
aXplQml0cykgLSAxID49IGxhcmdlTWF4LCAibGFyZ2VNYXggbXVzdCBiZSBlbmNvZGFibGUgaW4g
YSBCb3VuZGFyeVRhZy4iKTsKIApAQCAtMTAyLDcgKzk3LDYgQEAgaW5saW5lIHZvaWQgQm91bmRh
cnlUYWc6OnNldFJhbmdlKGNvbnN0IAogICAgIG1fY29tcGFjdEJlZ2luID0gY29tcGFjdEJlZ2lu
KHJhbmdlKTsKICAgICBtX3NpemUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZ2Uuc2l6ZSgp
KTsKICAgICBCQVNTRVJUKHRoaXMtPnNpemUoKSA9PSByYW5nZS5zaXplKCkpOwotICAgIEJBU1NF
UlQoIWlzWExhcmdlKCkpOwogfQogCiBpbmxpbmUgRW5kVGFnKiBCb3VuZGFyeVRhZzo6cHJldigp
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JvdW5kYXJ5VGFnSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQm91bmRhcnlUYWdJbmxpbmVzLmgJKHJl
dmlzaW9uIDE3ODU4NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQm91bmRhcnlUYWdJbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDE3ICs0MiwxNCBAQCBJRl9ERUJVRygKICAgICBF
bmRUYWcqIGVuZFRhZyA9IExhcmdlQ2h1bms6OmVuZFRhZyhyYW5nZS5iZWdpbigpLCByYW5nZS5z
aXplKCkpOwogCiAgICAgQkFTU0VSVCghYmVnaW5UYWctPmlzRW5kKCkpOwotICAgIGlmIChiZWdp
blRhZy0+aXNYTGFyZ2UoKSkKLSAgICAgICAgcmV0dXJuOwotKQogICAgIEJBU1NFUlQocmFuZ2Uu
c2l6ZSgpID49IGxhcmdlTWluKTsKICAgICBCQVNTRVJUKGJlZ2luVGFnLT5zaXplKCkgPT0gcmFu
Z2Uuc2l6ZSgpKTsKIAogICAgIEJBU1NFUlQoYmVnaW5UYWctPnNpemUoKSA9PSBlbmRUYWctPnNp
emUoKSk7CiAgICAgQkFTU0VSVChiZWdpblRhZy0+aXNGcmVlKCkgPT0gZW5kVGFnLT5pc0ZyZWUo
KSk7CiAgICAgQkFTU0VSVChiZWdpblRhZy0+aGFzUGh5c2ljYWxQYWdlcygpID09IGVuZFRhZy0+
aGFzUGh5c2ljYWxQYWdlcygpKTsKLSAgICBCQVNTRVJUKGJlZ2luVGFnLT5pc1hMYXJnZSgpID09
IGVuZFRhZy0+aXNYTGFyZ2UoKSk7CiAgICAgQkFTU0VSVChzdGF0aWNfY2FzdDxCb3VuZGFyeVRh
Zyo+KGVuZFRhZykgPT0gc3RhdGljX2Nhc3Q8Qm91bmRhcnlUYWcqPihiZWdpblRhZykgfHwgZW5k
VGFnLT5pc0VuZCgpKTsKKyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB2YWxpZGF0ZVByZXYo
RW5kVGFnKiBwcmV2LCB2b2lkKiBvYmplY3QpCkBAIC0xNjQsNyArMTYxLDYgQEAgaW5saW5lIFJh
bmdlIEJvdW5kYXJ5VGFnOjpkZWFsbG9jYXRlKHZvaQogewogICAgIEJlZ2luVGFnKiBiZWdpblRh
ZyA9IExhcmdlQ2h1bms6OmJlZ2luVGFnKG9iamVjdCk7CiAgICAgQkFTU0VSVCghYmVnaW5UYWct
PmlzRnJlZSgpKTsKLSAgICBCQVNTRVJUKCFiZWdpblRhZy0+aXNYTGFyZ2UoKSkKIAogICAgIFJh
bmdlIHJhbmdlKG9iamVjdCwgYmVnaW5UYWctPnNpemUoKSk7CiAgICAgRW5kVGFnKiBlbmRUYWcg
PSBMYXJnZUNodW5rOjplbmRUYWcocmFuZ2UuYmVnaW4oKSwgcmFuZ2Uuc2l6ZSgpKTsKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvRGVhbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvRGVhbGxvY2F0b3IuY3BwCShyZXZpc2lvbiAxNzg1ODYpCisr
KyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0RlYWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjgsNyArNjgsNyBAQCB2b2lkIERlYWxsb2NhdG9yOjpkZWFsbG9jYXRlTGFyZ2Uodm9pZCog
CiAKIHZvaWQgRGVhbGxvY2F0b3I6OmRlYWxsb2NhdGVYTGFyZ2Uodm9pZCogb2JqZWN0KQogewot
ICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4gbG9jayhQZXJQcm9jZXNzPEhlYXA+Ojpt
dXRleCgpKTsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiBsb2NrKFBlclByb2Nl
c3M8SGVhcD46Om11dGV4KCkpOwogICAgIFBlclByb2Nlc3M8SGVhcD46OmdldEZhc3RDYXNlKCkt
PmRlYWxsb2NhdGVYTGFyZ2UobG9jaywgb2JqZWN0KTsKIH0KIApAQCAtMTA5LDggKzEwOSw3IEBA
IHZvaWQgRGVhbGxvY2F0b3I6OmRlYWxsb2NhdGVTbG93Q2FzZSh2b2kKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIEJlZ2luVGFnKiBiZWdpblRhZyA9IExhcmdlQ2h1bms6OmJlZ2luVGFn
KG9iamVjdCk7Ci0gICAgaWYgKCFiZWdpblRhZy0+aXNYTGFyZ2UoKSkKKyAgICBpZiAoIWlzWExh
cmdlKG9iamVjdCkpCiAgICAgICAgIHJldHVybiBkZWFsbG9jYXRlTGFyZ2Uob2JqZWN0KTsKICAg
ICAKICAgICByZXR1cm4gZGVhbGxvY2F0ZVhMYXJnZShvYmplY3QpOwpJbmRleDogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0hlYXAuY3BwCShyZXZpc2lvbiAxNzg1ODYpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBlclByb2Nlc3MuaCIKICNpbmNsdWRlICJTbWFsbENodW5rLmgiCi0j
aW5jbHVkZSAiWExhcmdlQ2h1bmsuaCIKICNpbmNsdWRlIDx0aHJlYWQ+CiAKIG5hbWVzcGFjZSBi
bWFsbG9jIHsKQEAgLTMyMCwyMiArMzE5LDIzIEBAIHZvaWQgSGVhcDo6ZGVhbGxvY2F0ZU1lZGl1
bUxpbmUoc3RkOjpsb2MKICAgICB9CiB9CiAKK1JhbmdlIEhlYXA6OmZpbmRYTGFyZ2Uoc3RkOjps
b2NrX2d1YXJkPFN0YXRpY011dGV4PiYsIHZvaWQqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gbV92
bUhlYXAuZmluZFhMYXJnZShvYmplY3QpOworfQorCiB2b2lkKiBIZWFwOjphbGxvY2F0ZVhMYXJn
ZShzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+Jiwgc2l6ZV90IHNpemUpCiB7Ci0gICAgWExh
cmdlQ2h1bmsqIGNodW5rID0gWExhcmdlQ2h1bms6OmNyZWF0ZShzaXplKTsKKyAgICBtX2lzQWxs
b2NhdGluZ1BhZ2VzID0gdHJ1ZTsKIAotICAgIEJlZ2luVGFnKiBiZWdpblRhZyA9IExhcmdlQ2h1
bms6OmJlZ2luVGFnKGNodW5rLT5iZWdpbigpKTsKLSAgICBiZWdpblRhZy0+c2V0WExhcmdlKCk7
Ci0gICAgYmVnaW5UYWctPnNldEZyZWUoZmFsc2UpOwotICAgIGJlZ2luVGFnLT5zZXRIYXNQaHlz
aWNhbFBhZ2VzKHRydWUpOwotICAgIAotICAgIHJldHVybiBjaHVuay0+YmVnaW4oKTsKKyAgICB2
b2lkKiByZXN1bHQgPSBtX3ZtSGVhcC5hbGxvY2F0ZVhMYXJnZShzaXplKTsKKyAgICB2bUFsbG9j
YXRlUGh5c2ljYWxQYWdlc1Nsb3BweShyZXN1bHQsIHNpemUpOworICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXZvaWQgSGVhcDo6ZGVhbGxvY2F0ZVhMYXJnZShzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGlj
TXV0ZXg+Jiwgdm9pZCogb2JqZWN0KQordm9pZCBIZWFwOjpkZWFsbG9jYXRlWExhcmdlKHN0ZDo6
dW5pcXVlX2xvY2s8U3RhdGljTXV0ZXg+JiBsb2NrLCB2b2lkKiBvYmplY3QpCiB7Ci0gICAgWExh
cmdlQ2h1bmsqIGNodW5rID0gWExhcmdlQ2h1bms6OmdldChvYmplY3QpOwotICAgIFhMYXJnZUNo
dW5rOjpkZXN0cm95KGNodW5rKTsKKyAgICBtX3ZtSGVhcC5kZWFsbG9jYXRlWExhcmdlKGxvY2ss
IG9iamVjdCk7CiB9CiAKIHZvaWQqIEhlYXA6OmFsbG9jYXRlTGFyZ2Uoc3RkOjpsb2NrX2d1YXJk
PFN0YXRpY011dGV4PiYsIHNpemVfdCBzaXplKQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmgJKHJl
dmlzaW9uIDE3ODU4NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw3ICs2Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlYWxsb2NhdGVMYXJn
ZShzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+Jiwgdm9pZCopOwogCiAgICAgdm9pZCogYWxs
b2NhdGVYTGFyZ2Uoc3RkOjpsb2NrX2d1YXJkPFN0YXRpY011dGV4PiYsIHNpemVfdCk7Ci0gICAg
dm9pZCBkZWFsbG9jYXRlWExhcmdlKHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4mLCB2b2lk
Kik7CisgICAgUmFuZ2UgZmluZFhMYXJnZShzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTXV0ZXg+Jiwg
dm9pZCopOworICAgIHZvaWQgZGVhbGxvY2F0ZVhMYXJnZShzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRp
Y011dGV4PiYsIHZvaWQqKTsKIAogICAgIHZvaWQgc2NhdmVuZ2Uoc3RkOjp1bmlxdWVfbG9jazxT
dGF0aWNNdXRleD4mLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHNsZWVwRHVyYXRpb24pOwog
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL09iamVjdFR5cGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0VHlwZS5jcHAJKHJldmlzaW9uIDE3ODU4
NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0VHlwZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDkgKzM2LDkgQEAgT2JqZWN0VHlwZSBvYmplY3RUeXBlKHZvaWQqIG9iamVjdCkK
ICAgICAgICAgcmV0dXJuIE1lZGl1bTsKICAgICB9CiAgICAgCi0gICAgQmVnaW5UYWcqIGJlZ2lu
VGFnID0gTGFyZ2VDaHVuazo6YmVnaW5UYWcob2JqZWN0KTsKLSAgICBpZiAoIWJlZ2luVGFnLT5p
c1hMYXJnZSgpKQorICAgIGlmICghaXNYTGFyZ2Uob2JqZWN0KSkKICAgICAgICAgcmV0dXJuIExh
cmdlOworICAgIAogICAgIHJldHVybiBYTGFyZ2U7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvT2JqZWN0VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvT2JqZWN0VHlwZS5oCShyZXZpc2lvbiAxNzg1ODYpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL09iamVjdFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTEgQEAgaW5saW5l
IGJvb2wgaXNNZWRpdW0odm9pZCogc21hbGxPck1lZGl1bQogICAgIHJldHVybiAhaXNTbWFsbChz
bWFsbE9yTWVkaXVtKTsKIH0KIAoraW5saW5lIGJvb2wgaXNYTGFyZ2Uodm9pZCogb2JqZWN0KQor
eworICAgIHJldHVybiAhdGVzdChvYmplY3QsIHN1cGVyQ2h1bmtTaXplIC0gMSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIGJtYWxsb2MKIAogI2VuZGlmIC8vIE9iamVjdFR5cGVfaApJbmRleDogU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9TaXplcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvU2l6ZXMuaAkocmV2aXNpb24gMTc4NTg2KQorKysgU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9TaXplcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw4IEBAIG5hbWVzcGFjZSBT
aXplcyB7CiAgICAgc3RhdGljX2Fzc2VydCgxIDw8IGxhcmdlQWxpZ25tZW50U2hpZnQgPT0gbGFy
Z2VBbGlnbm1lbnQsICJsYXJnZUFsaWdubWVudFNoaWZ0IGJlIGxvZzIobGFyZ2VBbGlnbm1lbnQp
LiIpOwogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbGFyZ2VNYXggPSBsYXJnZUNodW5rU2l6ZSAq
IDk5IC8gMTAwOyAvLyBQbGVudHkgb2Ygcm9vbSBmb3IgbWV0YWRhdGEuCiAgICAgc3RhdGljIGNv
bnN0IHNpemVfdCBsYXJnZU1pbiA9IG1lZGl1bU1heDsKKyAgICAKKyAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IHhMYXJnZUFsaWdubWVudCA9IHZtUGFnZVNpemU7CiAKICAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IHNlZ3JlZ2F0ZWRGcmVlTGlzdFNlYXJjaERlcHRoID0gMTY7CiAKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvVk1IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9WTUhlYXAuaAkocmV2aXNpb24gMTc4NTg2KQorKysgU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9WTUhlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDE0IEBAIHB1YmxpYzoK
ICAgICBTbWFsbFBhZ2UqIGFsbG9jYXRlU21hbGxQYWdlKCk7CiAgICAgTWVkaXVtUGFnZSogYWxs
b2NhdGVNZWRpdW1QYWdlKCk7CiAgICAgUmFuZ2UgYWxsb2NhdGVMYXJnZVJhbmdlKHNpemVfdCk7
CisgICAgdm9pZCogYWxsb2NhdGVYTGFyZ2Uoc2l6ZV90KTsKKworICAgIFJhbmdlIGZpbmRYTGFy
Z2Uodm9pZCopOwogCiAgICAgdm9pZCBkZWFsbG9jYXRlU21hbGxQYWdlKHN0ZDo6dW5pcXVlX2xv
Y2s8U3RhdGljTXV0ZXg+JiwgU21hbGxQYWdlKik7CiAgICAgdm9pZCBkZWFsbG9jYXRlTWVkaXVt
UGFnZShzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYsIE1lZGl1bVBhZ2UqKTsKICAgICB2
b2lkIGRlYWxsb2NhdGVMYXJnZVJhbmdlKHN0ZDo6dW5pcXVlX2xvY2s8U3RhdGljTXV0ZXg+Jiwg
UmFuZ2UpOworICAgIHZvaWQgZGVhbGxvY2F0ZVhMYXJnZShzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRp
Y011dGV4PiYsIHZvaWQqKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFsbG9jYXRlU3VwZXJDaHVu
aygpOwpAQCAtNTksNiArNjMsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxTbWFsbFBhZ2UqPiBt
X3NtYWxsUGFnZXM7CiAgICAgVmVjdG9yPE1lZGl1bVBhZ2UqPiBtX21lZGl1bVBhZ2VzOwogICAg
IFNlZ3JlZ2F0ZWRGcmVlTGlzdCBtX2xhcmdlUmFuZ2VzOworICAgIFZlY3RvcjxSYW5nZT4gbV94
TGFyZ2VSYW5nZXM7CiB9OwogCiBpbmxpbmUgU21hbGxQYWdlKiBWTUhlYXA6OmFsbG9jYXRlU21h
bGxQYWdlKCkKQEAgLTg4LDYgKzkzLDI0IEBAIGlubGluZSBSYW5nZSBWTUhlYXA6OmFsbG9jYXRl
TGFyZ2VSYW5nZSgKICAgICByZXR1cm4gcmFuZ2U7CiB9CiAKK2lubGluZSB2b2lkKiBWTUhlYXA6
OmFsbG9jYXRlWExhcmdlKHNpemVfdCBzaXplKQoreworICAgIHZvaWQqIHJlc3VsdCA9IHZtQWxs
b2NhdGUoc2l6ZSwgc3VwZXJDaHVua1NpemUpOworICAgIG1feExhcmdlUmFuZ2VzLnB1c2goUmFu
Z2UocmVzdWx0LCBzaXplKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW5saW5lIFJhbmdl
IFZNSGVhcDo6ZmluZFhMYXJnZSh2b2lkKiBvYmplY3QpCit7CisgICAgZm9yIChhdXRvJiByYW5n
ZSA6IG1feExhcmdlUmFuZ2VzKSB7CisgICAgICAgIGlmIChyYW5nZS5iZWdpbigpICE9IG9iamVj
dCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXR1cm4gcmFuZ2U7CisgICAgfQor
CisgICAgcmV0dXJuIFJhbmdlKCk7Cit9CisKIGlubGluZSB2b2lkIFZNSGVhcDo6ZGVhbGxvY2F0
ZVNtYWxsUGFnZShzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYgbG9jaywgU21hbGxQYWdl
KiBwYWdlKQogewogICAgIGxvY2sudW5sb2NrKCk7CkBAIC0xMjksNiArMTUyLDIzIEBAIGlubGlu
ZSB2b2lkIFZNSGVhcDo6ZGVhbGxvY2F0ZUxhcmdlUmFuZ2UKICAgICBtX2xhcmdlUmFuZ2VzLmlu
c2VydChyYW5nZSk7CiB9CiAKK2lubGluZSB2b2lkIFZNSGVhcDo6ZGVhbGxvY2F0ZVhMYXJnZShz
dGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY011dGV4PiYgbG9jaywgdm9pZCogb2JqZWN0KQoreworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV94TGFyZ2VSYW5nZXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgUmFuZ2UgcmFuZ2UgPSBtX3hMYXJnZVJhbmdlc1tpXTsKKyAgICAgICAgaWYgKHJhbmdl
LmJlZ2luKCkgIT0gb2JqZWN0KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgbV94
TGFyZ2VSYW5nZXMucG9wKGkpOworCisgICAgICAgIGxvY2sudW5sb2NrKCk7CisgICAgICAgIHZt
RGVhbGxvY2F0ZShyYW5nZS5iZWdpbigpLCByYW5nZS5zaXplKCkpOworICAgICAgICBsb2NrLmxv
Y2soKTsKKyAgICAgICAgCisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogfSAvLyBuYW1lc3Bh
Y2UgYm1hbGxvYwogCiAjZW5kaWYgLy8gVk1IZWFwX2gKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvWExhcmdlQ2h1bmsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L1hMYXJnZUNodW5rLmgJKHJldmlzaW9uIDE3ODU4NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvWExhcmdlQ2h1bmsuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4OSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgWExhcmdlQ2h1
bmtfaAotI2RlZmluZSBYTGFyZ2VDaHVua19oCi0KLSNpbmNsdWRlICJTaXplcy5oIgotCi1uYW1l
c3BhY2UgYm1hbGxvYyB7Ci0KLWNsYXNzIFhMYXJnZUNodW5rIHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgWExhcmdlQ2h1bmsqIGNyZWF0ZShzaXplX3QpOwotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3ko
WExhcmdlQ2h1bmsqKTsKLSAgICAKLSAgICBzdGF0aWMgWExhcmdlQ2h1bmsqIGdldCh2b2lkKiBv
YmplY3QpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8WExhcmdlQ2h1bmsqPihMYXJnZUNodW5r
OjpnZXQob2JqZWN0KSk7IH0KLQotICAgIGNoYXIqIGJlZ2luKCkgeyByZXR1cm4gbV9sYXJnZUNo
dW5rLmJlZ2luKCk7IH0KLSAgICBzaXplX3QmIHNpemUoKTsKLQotcHJpdmF0ZToKLSAgICBYTGFy
Z2VDaHVuayhjb25zdCBSYW5nZSYsIHNpemVfdCk7Ci0gICAgUmFuZ2UmIHJhbmdlKCk7Ci0gICAg
Ci0gICAgTGFyZ2VDaHVuayBtX2xhcmdlQ2h1bms7Ci19OwotCi1pbmxpbmUgWExhcmdlQ2h1bms6
OlhMYXJnZUNodW5rKGNvbnN0IFJhbmdlJiByYW5nZSwgc2l6ZV90IHNpemUpCi17Ci0gICAgdGhp
cy0+cmFuZ2UoKSA9IHJhbmdlOwotICAgIHRoaXMtPnNpemUoKSA9IHNpemU7Ci19Ci0KLWlubGlu
ZSBYTGFyZ2VDaHVuayogWExhcmdlQ2h1bms6OmNyZWF0ZShzaXplX3Qgc2l6ZSkKLXsKLSAgICBz
aXplX3Qgdm1TaXplID0gYm1hbGxvYzo6dm1TaXplKHNpemVvZihYTGFyZ2VDaHVuaykgKyBzaXpl
KTsKLSAgICBhdXRvIHhsYXJnZUNodW5rID0gdm1BbGxvY2F0ZSh2bVNpemUsIHN1cGVyQ2h1bmtT
aXplKTsKLSAgICByZXR1cm4gbmV3ICh4bGFyZ2VDaHVuaykgWExhcmdlQ2h1bmsoUmFuZ2UoeGxh
cmdlQ2h1bmssIHZtU2l6ZSksIHNpemUpOwotfQotCi1pbmxpbmUgdm9pZCBYTGFyZ2VDaHVuazo6
ZGVzdHJveShYTGFyZ2VDaHVuayogY2h1bmspCi17Ci0gICAgY29uc3QgUmFuZ2UmIHJhbmdlID0g
Y2h1bmstPnJhbmdlKCk7Ci0gICAgdm1EZWFsbG9jYXRlKHJhbmdlLmJlZ2luKCksIHJhbmdlLnNp
emUoKSk7Ci19Ci0KLWlubGluZSBSYW5nZSYgWExhcmdlQ2h1bms6OnJhbmdlKCkKLXsKLSAgICAv
LyBTaW5jZSB3ZSBob2xkIG9ubHkgb25lIG9iamVjdCwgd2Ugb25seSB1c2Ugb3VyIGZpcnN0IEJv
dW5kYXJ5VGFnLiBTbywgd2UKLSAgICAvLyBjYW4gc3R1ZmYgb3VyIHJhbmdlIGludG8gdGhlIHJl
bWFpbmluZyBtZXRhZGF0YS4KLSAgICBSYW5nZSYgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8
UmFuZ2UqPihyb3VuZFVwVG9NdWx0aXBsZU9mPGFsaWdubWVudD4oTGFyZ2VDaHVuazo6YmVnaW5U
YWcoYmVnaW4oKSkgKyAxKSk7Ci0gICAgQkFTU0VSVChzdGF0aWNfY2FzdDx2b2lkKj4oJnJlc3Vs
dCkgPCBzdGF0aWNfY2FzdDx2b2lkKj4oYmVnaW4oKSkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLWlubGluZSBzaXplX3QmIFhMYXJnZUNodW5rOjpzaXplKCkKLXsKLSAgICAvLyBTaW5jZSB3
ZSBob2xkIG9ubHkgb25lIG9iamVjdCwgd2Ugb25seSB1c2Ugb3VyIGZpcnN0IEJvdW5kYXJ5VGFn
LiBTbywgd2UKLSAgICAvLyBjYW4gc3R1ZmYgb3VyIHNpemUgaW50byB0aGUgcmVtYWluaW5nIG1l
dGFkYXRhLgotICAgIHNpemVfdCYgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Kj4o
cm91bmRVcFRvTXVsdGlwbGVPZjxhbGlnbm1lbnQ+KCZyYW5nZSgpICsgMSkpOwotICAgIEJBU1NF
UlQoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZXN1bHQpIDwgc3RhdGljX2Nhc3Q8dm9pZCo+KGJlZ2lu
KCkpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi19OyAvLyBuYW1lc3BhY2UgYm1hbGxvYwot
Ci0jZW5kaWYgLy8gWExhcmdlQ2h1bmsK
</data>
<flag name="review"
          id="269758"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>