<?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>78913</bug_id>
          
          <creation_ts>2012-02-17 10:34:45 -0800</creation_ts>
          <short_desc>Add FractionalLayoutPoint for sub-pixel layout</short_desc>
          <delta_ts>2012-02-17 17:09:47 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>78852</dependson>
          <blocked>76571</blocked>
    
    <blocked>78924</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>559306</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 10:34:45 -0800</bug_when>
    <thetext>Add FractionalLayoutUnit implementation of point class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559355</commentid>
    <comment_count>1</comment_count>
      <attachid>127614</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 11:11:52 -0800</bug_when>
    <thetext>Created attachment 127614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559357</commentid>
    <comment_count>2</comment_count>
      <attachid>127614</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-17 11:15:43 -0800</bug_when>
    <thetext>Comment on attachment 127614
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559375</commentid>
    <comment_count>3</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 11:35:58 -0800</bug_when>
    <thetext>Thanks Eric!

Any change you could take a look at 78852 too? I need that patch to go in before this one can be landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559620</commentid>
    <comment_count>4</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-02-17 16:03:29 -0800</bug_when>
    <thetext>Committed r108138: &lt;http://trac.webkit.org/changeset/108138&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127614</attachid>
            <date>2012-02-17 11:11:52 -0800</date>
            <delta_ts>2012-02-17 17:09:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78913-20120217111151.patch</filename>
            <type>text/plain</type>
            <size>15168</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAyLTE3ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRnJhY3Rpb25hbExheW91
dFBvaW50IGZvciBzdWItcGl4ZWwgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODkxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBGcmFjdGlvbmFsTGF5b3V0VW5pdCB2ZXJzaW9uIG9mIFBv
aW50IGNsYXNzIGFuZCBhIGNvdXBsZSBvZgorICAgICAgICBjb252ZXJzaW9uIG1ldGhvZHMgdG8g
dGhlIEludCBhbmQgRmxvYXQgdmVyc2lvbnMgb2Ygc2FtZS4KKworICAgICAgICBObyBuZXcgdGVz
dHMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZsb2F0UG9pbnQ6OkZsb2F0UG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFBvaW50Ojptb3ZlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZsb2F0UG9pbnQ6Om1vdmVCeSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRQb2ludC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChGbG9hdFBvaW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0UG9pbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEZyYWN0aW9uYWxMYXlvdXRQb2ludCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0UG9pbnQ6OkZyYWN0aW9uYWxMYXlv
dXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0UG9pbnQ6Onplcm8p
OgorICAgICAgICAoV2ViQ29yZTo6RnJhY3Rpb25hbExheW91dFBvaW50Ojp4KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRQb2ludDo6eSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFjdGlvbmFsTGF5b3V0UG9pbnQ6OnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6RnJhY3Rpb25h
bExheW91dFBvaW50OjpzZXRZKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRQ
b2ludDo6bW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0UG9pbnQ6Om1v
dmVCeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0UG9pbnQ6OnNjYWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRQb2ludDo6ZXhwYW5kZWRUbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0UG9pbnQ6OnNocnVua1RvKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRQb2ludDo6Y2xhbXBOZWdhdGl2ZVRvWmVybyk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0UG9pbnQ6OnRyYW5zcG9zZWRQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcis9KToKKyAgICAgICAgKFdlYkNvcmU6Om9w
ZXJhdG9yLT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IrKToKKyAgICAgICAgKFdlYkNv
cmU6Om9wZXJhdG9yLSk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6dG9Qb2ludCk6CisgICAg
ICAgIChXZWJDb3JlOjp0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6Zmxvb3JlZEludFBvaW50
KToKKyAgICAgICAgKFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpjZWlsZWRJbnRQb2ludCk6CisKIDIwMTItMDItMTcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVGFibGUgY2VsbCdzIGFub255bW91cyB3cmFw
cGVycyBhcmUgbGVmdCBpbiB0aGUgdHJlZSwgaW1wYWN0aW5nIG91ciBsYXlvdXQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTA3ODQxKQorKysgU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjk1Nyw2ICsyOTU3
LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0UG9p
bnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuY3BwIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lv
biAxMDc4NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjc1MjUsNiArMjc1MjUsMTAgQEAKIAkJCQkJPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XEZyYWN0aW9uYWxMYXlvdXRQb2ludC5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRQb2ludC5jcHAi
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDc4NDEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTI5Nyw2ICsyOTcsNyBAQAogCQkxNDMyRTg0OTBDNTE0OTNGMDBCMTUwMEYgLyogR0NDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0MzJFODQ4MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwICovOyB9OwogCQkx
NDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1Nzkz
RiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9OwogCQkxNDQ5RTI4NzEwN0Q0REI0MDBCNTc5M0Yg
LyogSlNDYWxsYmFja0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNw
cCAqLzsgfTsKKwkJMTQ0RkNFNTkxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRQ
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0
RkNFNTQxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRQb2ludC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0NjRFMDZDMTM1RUMx
MDYwMEZEQjAwQSAvKiBKU01lZGlhTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY0RTA2QjEzNUVDMTA2MDBGREIwMEEgLyogSlNN
ZWRpYUxpc3RDdXN0b20uY3BwICovOyB9OwogCQkxNDc3RTc3NjBCRjQxMzRBMDAxNTI4NzIgLyog
UGFnZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0NzdFNzc0MEJGNDEzNEEwMDE1Mjg3MiAvKiBQYWdlQ2FjaGUuY3BwICovOyB9OwogCQkx
NDc3RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyog
UGFnZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTcwMTYsNiArNzAxNyw3IEBACiAJCTE0MzJFODQ4MEM1MTQ5M0YwMEIxNTAwRiAvKiBH
Q0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdD
Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NDlFMjRBMTA3
RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0NhbGxiYWNrRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxNDQ5RTI4NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxNDRGQ0U1NDE0RUM3OUU3MDAwRDE3QTMgLyogRnJhY3Rp
b25hbExheW91dFBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYWN0
aW9uYWxMYXlvdXRQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDY0RTA2
QjEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYUxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIg
LyogUGFnZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2Fj
aGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTEzLDYgKzE4OTE1LDcgQEAK
IAkJCQkzNzIwMjE5ODEwNjIxM0M2MDBGMjVDNEIgLyogRm9udFNtb290aGluZ01vZGUuaCAqLywK
IAkJCQkzNzg0QzM0QTBFMTFBQTM0MDA3RDhENDggLyogRm9udFRyYWl0c01hc2suaCAqLywKIAkJ
CQlCQ0U0NDEzNTEyRjc0OTBCMDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFudC5oICovLAorCQkJ
CTE0NEZDRTU0MTRFQzc5RTcwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0UG9pbnQuaCAqLywK
IAkJCQlCQzIzRjBEQTBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJ
CQlCQ0UwNEM4OTBEQUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8sCiAJCQkJMkQyRkMw
NTYxNDYwQ0Q2RjAwMjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLywKQEAg
LTI0MjYzLDYgKzI0MjY2LDcgQEAKIAkJCQk5N0NDM0FFMzE0RThFNEEyMDA4OTQ5ODggLyogTmF2
aWdhdG9yU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkwNTcxNEU5QzI4MDAw
RThEMThCIC8qIFBhc3RlYm9hcmRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkw
NTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMTQ0RkNFNTkxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRQb2ludC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFBvaW50LmNwcAkocmV2aXNpb24gMTA3ODQxKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDkg
KzI4LDEwIEBACiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogCiAjaW5jbHVkZSAiQWZmaW5lVHJh
bnNmb3JtLmgiCi0jaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNpbmNsdWRlICJG
cmFjdGlvbmFsTGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNp
bmNsdWRlICJJbnRQb2ludC5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAj
aW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1hdGguaD4KIApAQCAtNDAsNiArNDEsMTAgQEAg
RmxvYXRQb2ludDo6RmxvYXRQb2ludChjb25zdCBJbnRQb2ludCYgcAogewogfQogCitGbG9hdFBv
aW50OjpGbG9hdFBvaW50KGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRQb2ludCYgcCkgOiBtX3gocC54
KCkpLCBtX3kocC55KCkpCit7Cit9CisKIHZvaWQgRmxvYXRQb2ludDo6bm9ybWFsaXplKCkKIHsK
ICAgICBmbG9hdCB0ZW1wTGVuZ3RoID0gbGVuZ3RoKCk7CkBAIC01NSw2ICs2MCwxOCBAQCBmbG9h
dCBGbG9hdFBvaW50OjpsZW5ndGgoKSBjb25zdAogICAgIHJldHVybiBzcXJ0ZihsZW5ndGhTcXVh
cmVkKCkpOwogfQogCit2b2lkIEZsb2F0UG9pbnQ6Om1vdmUoY29uc3QgRnJhY3Rpb25hbExheW91
dFNpemUmIHNpemUpCit7CisgICAgbV94ICs9IHNpemUud2lkdGgoKTsKKyAgICBtX3kgKz0gc2l6
ZS5oZWlnaHQoKTsKK30KKwordm9pZCBGbG9hdFBvaW50Ojptb3ZlQnkoY29uc3QgRnJhY3Rpb25h
bExheW91dFBvaW50JiBwb2ludCkKK3sKKyAgICBtX3ggKz0gcG9pbnQueCgpOworICAgIG1feSAr
PSBwb2ludC55KCk7Cit9CisKIEZsb2F0UG9pbnQgRmxvYXRQb2ludDo6bWF0cml4VHJhbnNmb3Jt
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSBjb25zdAogewogICAgIGRvdWJsZSBu
ZXdYLCBuZXdZOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQ
b2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0UG9pbnQuaAkocmV2aXNpb24gMTA3ODQxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRQb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMyArNjAsMTUgQEAg
Y2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7CiBjbGFz
cyBJbnRQb2ludDsKIGNsYXNzIEludFNpemU7CitjbGFzcyBGcmFjdGlvbmFsTGF5b3V0UG9pbnQ7
CitjbGFzcyBGcmFjdGlvbmFsTGF5b3V0U2l6ZTsKIAogY2xhc3MgRmxvYXRQb2ludCB7CiBwdWJs
aWM6CiAgICAgRmxvYXRQb2ludCgpIDogbV94KDApLCBtX3koMCkgeyB9CiAgICAgRmxvYXRQb2lu
dChmbG9hdCB4LCBmbG9hdCB5KSA6IG1feCh4KSwgbV95KHkpIHsgfQogICAgIEZsb2F0UG9pbnQo
Y29uc3QgSW50UG9pbnQmKTsKLQorICAgIEZsb2F0UG9pbnQoY29uc3QgRnJhY3Rpb25hbExheW91
dFBvaW50Jik7CiAKICAgICBzdGF0aWMgRmxvYXRQb2ludCB6ZXJvKCkgeyByZXR1cm4gRmxvYXRQ
b2ludCgpOyB9CiAKQEAgLTkyLDYgKzk0LDcgQEAgcHVibGljOgogICAgICAgICBtX3ggKz0gYS53
aWR0aCgpOwogICAgICAgICBtX3kgKz0gYS5oZWlnaHQoKTsKICAgICB9CisgICAgdm9pZCBtb3Zl
KGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJik7CiAgICAgdm9pZCBtb3ZlKGNvbnN0IEZsb2F0
U2l6ZSYgYSkKICAgICB7CiAgICAgICAgIG1feCArPSBhLndpZHRoKCk7CkBAIC0xMDIsNiArMTA1
LDcgQEAgcHVibGljOgogICAgICAgICBtX3ggKz0gYS54KCk7CiAgICAgICAgIG1feSArPSBhLnko
KTsKICAgICB9CisgICAgdm9pZCBtb3ZlQnkoY29uc3QgRnJhY3Rpb25hbExheW91dFBvaW50Jik7
CiAgICAgdm9pZCBtb3ZlQnkoY29uc3QgRmxvYXRQb2ludCYgYSkKICAgICB7CiAgICAgICAgIG1f
eCArPSBhLngoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0
aW9uYWxMYXlvdXRQb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRQb2ludC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFBvaW50LmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRnJhY3Rpb25hbExheW91dFBvaW50X2gK
KyNkZWZpbmUgRnJhY3Rpb25hbExheW91dFBvaW50X2gKKworI2luY2x1ZGUgIkZsb2F0UG9pbnQu
aCIKKyNpbmNsdWRlICJGcmFjdGlvbmFsTGF5b3V0U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhY3Rpb25hbExheW91
dFBvaW50IHsKK3B1YmxpYzoKKyAgICBGcmFjdGlvbmFsTGF5b3V0UG9pbnQoKSA6IG1feCgwKSwg
bV95KDApIHsgfQorICAgIEZyYWN0aW9uYWxMYXlvdXRQb2ludChGcmFjdGlvbmFsTGF5b3V0VW5p
dCB4LCBGcmFjdGlvbmFsTGF5b3V0VW5pdCB5KSA6IG1feCh4KSwgbV95KHkpIHsgfQorICAgIEZy
YWN0aW9uYWxMYXlvdXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIDogbV94KHBvaW50Lngo
KSksIG1feShwb2ludC55KCkpIHsgfQorICAgIGV4cGxpY2l0IEZyYWN0aW9uYWxMYXlvdXRQb2lu
dChjb25zdCBGbG9hdFBvaW50JiBzaXplKSA6IG1feChzaXplLngoKSksIG1feShzaXplLnkoKSkg
eyB9CisKKyAgICBzdGF0aWMgRnJhY3Rpb25hbExheW91dFBvaW50IHplcm8oKSB7IHJldHVybiBG
cmFjdGlvbmFsTGF5b3V0UG9pbnQoKTsgfQorCisgICAgRnJhY3Rpb25hbExheW91dFVuaXQgeCgp
IGNvbnN0IHsgcmV0dXJuIG1feDsgfQorICAgIEZyYWN0aW9uYWxMYXlvdXRVbml0IHkoKSBjb25z
dCB7IHJldHVybiBtX3k7IH0KKworICAgIHZvaWQgc2V0WChGcmFjdGlvbmFsTGF5b3V0VW5pdCB4
KSB7IG1feCA9IHg7IH0KKyAgICB2b2lkIHNldFkoRnJhY3Rpb25hbExheW91dFVuaXQgeSkgeyBt
X3kgPSB5OyB9CisKKyAgICB2b2lkIG1vdmUoY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIHMp
IHsgbW92ZShzLndpZHRoKCksIHMuaGVpZ2h0KCkpOyB9IAorICAgIHZvaWQgbW92ZUJ5KGNvbnN0
IEZyYWN0aW9uYWxMYXlvdXRQb2ludCYgb2Zmc2V0KSB7IG1vdmUob2Zmc2V0LngoKSwgb2Zmc2V0
LnkoKSk7IH0KKyAgICB2b2lkIG1vdmUoRnJhY3Rpb25hbExheW91dFVuaXQgZHgsIEZyYWN0aW9u
YWxMYXlvdXRVbml0IGR5KSB7IG1feCArPSBkeDsgbV95ICs9IGR5OyB9CisgICAgdm9pZCBzY2Fs
ZShmbG9hdCBzeCwgZmxvYXQgc3kpCisgICAgeworICAgICAgICBtX3ggKj0gc3g7CisgICAgICAg
IG1feSAqPSBzeTsKKyAgICB9CisgICAgCisgICAgRnJhY3Rpb25hbExheW91dFBvaW50IGV4cGFu
ZGVkVG8oY29uc3QgRnJhY3Rpb25hbExheW91dFBvaW50JiBvdGhlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBGcmFjdGlvbmFsTGF5b3V0UG9pbnQoc3RkOjptYXgobV94LCBvdGhlci5t
X3gpLCBzdGQ6Om1heChtX3ksIG90aGVyLm1feSkpOworICAgIH0KKworICAgIEZyYWN0aW9uYWxM
YXlvdXRQb2ludCBzaHJ1bmtUbyhjb25zdCBGcmFjdGlvbmFsTGF5b3V0UG9pbnQmIG90aGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZyYWN0aW9uYWxMYXlvdXRQb2ludChzdGQ6Om1p
bihtX3gsIG90aGVyLm1feCksIHN0ZDo6bWluKG1feSwgb3RoZXIubV95KSk7CisgICAgfQorCisg
ICAgdm9pZCBjbGFtcE5lZ2F0aXZlVG9aZXJvKCkKKyAgICB7CisgICAgICAgICp0aGlzID0gZXhw
YW5kZWRUbyh6ZXJvKCkpOworICAgIH0KKworICAgIEZyYWN0aW9uYWxMYXlvdXRQb2ludCB0cmFu
c3Bvc2VkUG9pbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZyYWN0aW9uYWxMYXlv
dXRQb2ludChtX3ksIG1feCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEZyYWN0aW9uYWxMYXlv
dXRVbml0IG1feCwgbV95OworfTsKKworaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRQb2ludCYgb3Bl
cmF0b3IrPShGcmFjdGlvbmFsTGF5b3V0UG9pbnQmIGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRT
aXplJiBiKQoreworICAgIGEubW92ZShiLndpZHRoKCksIGIuaGVpZ2h0KCkpOworICAgIHJldHVy
biBhOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFBvaW50JiBvcGVyYXRvci09KEZyYWN0
aW9uYWxMYXlvdXRQb2ludCYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIGIpCit7Cisg
ICAgYS5tb3ZlKC1iLndpZHRoKCksIC1iLmhlaWdodCgpKTsKKyAgICByZXR1cm4gYTsKK30KKwor
aW5saW5lIEZyYWN0aW9uYWxMYXlvdXRQb2ludCBvcGVyYXRvcisoY29uc3QgRnJhY3Rpb25hbExh
eW91dFBvaW50JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0U2l6ZSYgYikKK3sKKyAgICByZXR1
cm4gRnJhY3Rpb25hbExheW91dFBvaW50KGEueCgpICsgYi53aWR0aCgpLCBhLnkoKSArIGIuaGVp
Z2h0KCkpOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFBvaW50IG9wZXJhdG9yKyhjb25z
dCBGcmFjdGlvbmFsTGF5b3V0UG9pbnQmIGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRQb2ludCYg
YikKK3sKKyAgICByZXR1cm4gRnJhY3Rpb25hbExheW91dFBvaW50KGEueCgpICsgYi54KCksIGEu
eSgpICsgYi55KCkpOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFNpemUgb3BlcmF0b3It
KGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRQb2ludCYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFBv
aW50JiBiKQoreworICAgIHJldHVybiBGcmFjdGlvbmFsTGF5b3V0U2l6ZShhLngoKSAtIGIueCgp
LCBhLnkoKSAtIGIueSgpKTsKK30KKworaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRQb2ludCBvcGVy
YXRvci0oY29uc3QgRnJhY3Rpb25hbExheW91dFBvaW50JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5
b3V0U2l6ZSYgYikKK3sKKyAgICByZXR1cm4gRnJhY3Rpb25hbExheW91dFBvaW50KGEueCgpIC0g
Yi53aWR0aCgpLCBhLnkoKSAtIGIuaGVpZ2h0KCkpOworfQorCitpbmxpbmUgRnJhY3Rpb25hbExh
eW91dFBvaW50IG9wZXJhdG9yLShjb25zdCBGcmFjdGlvbmFsTGF5b3V0UG9pbnQmIHBvaW50KQor
eworICAgIHJldHVybiBGcmFjdGlvbmFsTGF5b3V0UG9pbnQoLXBvaW50LngoKSwgLXBvaW50Lnko
KSk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRnJhY3Rpb25hbExheW91dFBv
aW50JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0UG9pbnQmIGIpCit7CisgICAgcmV0dXJuIGEu
eCgpID09IGIueCgpICYmIGEueSgpID09IGIueSgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRQb2ludCYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91
dFBvaW50JiBiKQoreworICAgIHJldHVybiBhLngoKSAhPSBiLngoKSB8fCBhLnkoKSAhPSBiLnko
KTsKK30KKworaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRQb2ludCB0b1BvaW50KGNvbnN0IEZyYWN0
aW9uYWxMYXlvdXRTaXplJiBzaXplKQoreworICAgIHJldHVybiBGcmFjdGlvbmFsTGF5b3V0UG9p
bnQoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKK30KKworaW5saW5lIEZyYWN0aW9uYWxM
YXlvdXRTaXplIHRvU2l6ZShjb25zdCBGcmFjdGlvbmFsTGF5b3V0UG9pbnQmIGEpCit7CisgICAg
cmV0dXJuIEZyYWN0aW9uYWxMYXlvdXRTaXplKGEueCgpLCBhLnkoKSk7Cit9CisKK2lubGluZSBJ
bnRQb2ludCBmbG9vcmVkSW50UG9pbnQoY29uc3QgRnJhY3Rpb25hbExheW91dFBvaW50JiBwb2lu
dCkKK3sKKyAgICByZXR1cm4gSW50UG9pbnQocG9pbnQueCgpLnRvSW50KCksIHBvaW50LnkoKS50
b0ludCgpKTsKK30KKworaW5saW5lIEludFBvaW50IHJvdW5kZWRJbnRQb2ludChjb25zdCBGcmFj
dGlvbmFsTGF5b3V0UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBJbnRQb2ludChwb2ludC54
KCkucm91bmQoKSwgcG9pbnQueSgpLnJvdW5kKCkpOworfQorCitpbmxpbmUgSW50UG9pbnQgY2Vp
bGVkSW50UG9pbnQoY29uc3QgRnJhY3Rpb25hbExheW91dFBvaW50JiBwb2ludCkKK3sKKyAgICBy
ZXR1cm4gSW50UG9pbnQocG9pbnQueCgpLmNlaWwoKSwgcG9pbnQueSgpLmNlaWwoKSk7Cit9CisK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRnJhY3Rpb25hbExheW91dFBv
aW50X2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>