<?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>26264</bug_id>
          
          <creation_ts>2009-06-08 17:41:03 -0700</creation_ts>
          <short_desc>add Android platform-specific files: WebCore/platform/android/RenderThemeAndroid.*</short_desc>
          <delta_ts>2009-06-10 12:18:24 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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="Feng Qian">feng</reporter>
          <assigned_to name="Feng Qian">feng</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>124851</commentid>
    <comment_count>0</comment_count>
    <who name="Feng Qian">feng</who>
    <bug_when>2009-06-08 17:41:03 -0700</bug_when>
    <thetext>This is a spin-off bug 23296 to make review easier. Patch 6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124852</commentid>
    <comment_count>1</comment_count>
      <attachid>31075</attachid>
    <who name="Feng Qian">feng</who>
    <bug_when>2009-06-08 17:45:00 -0700</bug_when>
    <thetext>Created attachment 31075
patch set 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124905</commentid>
    <comment_count>2</comment_count>
      <attachid>31075</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-08 23:31:53 -0700</bug_when>
    <thetext>Comment on attachment 31075
patch set 1

Seems sane enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125192</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-06-10 12:18:24 -0700</bug_when>
    <thetext>Landed in @r44585.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31075</attachid>
            <date>2009-06-08 17:45:00 -0700</date>
            <delta_ts>2009-06-08 23:31:53 -0700</delta_ts>
            <desc>patch set 1</desc>
            <filename>bug26264.txt</filename>
            <type>text/plain</type>
            <size>17285</size>
            <attacher name="Feng Qian">feng</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDUxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMDktMDYtMDggIEZlbmcgUWlhbiAgPGZlbmdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBB
bmRyb2lkIHBvcnQgZmlsZXMgdG8gV2ViQ29yZS9wbGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MjY0CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hbmRyb2lkL1JlbmRlclRoZW1lQW5kcm9pZC5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2FuZHJvaWQvUmVuZGVyVGhlbWVBbmRyb2lkLmg6IEFkZGVkLgorCiAyMDA5LTA2LTA4ICBE
aW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvUmVuZGVy
VGhlbWVBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQv
UmVuZGVyVGhlbWVBbmRyb2lkLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
YW5kcm9pZC9SZW5kZXJUaGVtZUFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9q
ZWN0CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZUFu
ZHJvaWQuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRm9ybUNvbnRyb2xFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1H
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZW5kZXJTa2luQW5kcm9pZC5oIgorI2luY2x1
ZGUgIlJlbmRlclNraW5CdXR0b24uaCIKKyNpbmNsdWRlICJSZW5kZXJTa2luQ29tYm8uaCIKKyNp
bmNsdWRlICJSZW5kZXJTa2luUmFkaW8uaCIKKyNpbmNsdWRlICJTa0NhbnZhcy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGludCBNQVhfQ09NQk9fSEVJR0hUID0gMjA7CisKKy8v
IEFkZCBhIGNvbnN0YW50IGFtb3VudCBvZiBwYWRkaW5nIHRvIHRoZSB0ZXh0c2l6ZSB0byBnZXQg
dGhlIGZpbmFsIGhlaWdodAorLy8gb2YgYnV0dG9ucywgc28gdGhhdCBvdXIgYnV0dG9uIGltYWdl
cyBhcmUgbGFyZ2UgZW5vdWdoIHRvIHByb3Blcmx5IGZpdAorLy8gdGhlIHRleHQuCitjb25zdCBp
bnQgQlVUVE9OX1BBRERJTkcgPSAxODsKKworLy8gQWRkIHBhZGRpbmcgdG8gdGhlIGZvbnRTaXpl
IG9mIExpc3RCb3hlcyB0byBnZXQgdGhlaXIgbWF4aW11bSBzaXplcy4KKy8vIExpc3Rib3hlcyBv
ZnRlbiBoYXZlIGEgc3BlY2lmaWVkIHNpemUuICBTaW5jZSB3ZSBjaGFuZ2UgdGhlbSBpbnRvCisv
LyBkcm9wZG93bnMsIHdlIHdhbnQgYSBtdWNoIHNtYWxsZXIgaGVpZ2h0LCB3aGljaCBlbmNvbXBh
c3NlcyB0aGUgdGV4dC4KK2NvbnN0IGludCBMSVNUQk9YX1BBRERJTkcgPSA1OworCisvLyBUaGlz
IGlzIHRoZSBjb2xvciBvZiBzZWxlY3Rpb24gaW4gYSB0ZXh0ZmllbGQuICBJdCB3YXMgb2J0YWlu
ZWQgYnkgY2hlY2tpbmcKKy8vIHRoZSBjb2xvciBvZiBzZWxlY3Rpb24gaW4gVGV4dFZpZXdzIGlu
IHRoZSBzeXN0ZW0uCitjb25zdCBSR0JBMzIgU0VMRUNUSU9OX0NPTE9SID0gbWFrZVJHQigyNTUs
IDE0NiwgMCk7CisKK3N0YXRpYyBTa0NhbnZhcyogZ2V0Q2FudmFzRnJvbUluZm8oY29uc3QgUmVu
ZGVyT2JqZWN0OjpQYWludEluZm8mIGluZm8pCit7CisgICAgcmV0dXJuIGluZm8uY29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCktPm1DYW52YXM7Cit9CisKK1JlbmRlclRoZW1lKiB0aGVtZSgpCit7
CisgICAgc3RhdGljIFJlbmRlclRoZW1lQW5kcm9pZCBhbmRyb2lkVGhlbWU7CisgICAgcmV0dXJu
ICZhbmRyb2lkVGhlbWU7Cit9CisKK1JlbmRlclRoZW1lQW5kcm9pZDo6UmVuZGVyVGhlbWVBbmRy
b2lkKCkKK3sKK30KKworUmVuZGVyVGhlbWVBbmRyb2lkOjp+UmVuZGVyVGhlbWVBbmRyb2lkKCkK
K3sKK30KKwordm9pZCBSZW5kZXJUaGVtZUFuZHJvaWQ6OmNsb3NlKCkKK3sKK30KKworYm9vbCBS
ZW5kZXJUaGVtZUFuZHJvaWQ6OnN0YXRlQ2hhbmdlZChSZW5kZXJPYmplY3QqIG9iaiwgQ29udHJv
bFN0YXRlIHN0YXRlKSBjb25zdAoreworICAgIGlmIChDaGVja2VkU3RhdGUgPT0gc3RhdGUpIHsK
KyAgICAgICAgb2JqLT5yZXBhaW50KCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lQW5kcm9pZDo6cGxhdGZvcm1B
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBDb2xv
cihTRUxFQ1RJT05fQ09MT1IpOworfQorCitDb2xvciBSZW5kZXJUaGVtZUFuZHJvaWQ6OnBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVy
biBDb2xvcihDb2xvcjo6dHJhbnNwYXJlbnQpOworfQorCitDb2xvciBSZW5kZXJUaGVtZUFuZHJv
aWQ6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gQ29sb3I6OmJsYWNrOworfQorCitDb2xvciBSZW5kZXJUaGVtZUFuZHJvaWQ6OnBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJl
dHVybiBDb2xvcjo6YmxhY2s7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lQW5kcm9pZDo6cGxhdGZv
cm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBDb2xvcihD
b2xvcjo6dHJhbnNwYXJlbnQpOworfQorCitpbnQgUmVuZGVyVGhlbWVBbmRyb2lkOjpiYXNlbGlu
ZVBvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqKSBjb25zdAoreworICAgIC8vIEZyb20g
dGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgZnVuY3Rpb24gaW4gUmVuZGVyVGhlbWUuaDoKKyAgICAv
LyBBIG1ldGhvZCB0byBvYnRhaW4gdGhlIGJhc2VsaW5lIHBvc2l0aW9uIGZvciBhICJsZWFmIiBj
b250cm9sLiAgVGhpcyB3aWxsIG9ubHkgYmUgdXNlZCBpZiBhIGJhc2VsaW5lCisgICAgLy8gcG9z
aXRpb24gY2Fubm90IGJlIGRldGVybWluZWQgYnkgZXhhbWluaW5nIGNoaWxkIGNvbnRlbnQuIENo
ZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgYXJlIGV4YW1wbGVzIG9mCisgICAgLy8gY29udHJv
bHMgdGhhdCBuZWVkIHRvIGRvIHRoaXMuCisgICAgLy8KKyAgICAvLyBPdXIgY2hlY2tib3hlcyBh
bmQgcmFkaW8gYnV0dG9ucyBuZWVkIHRvIGJlIG9mZnNldCB0byBsaW5lIHVwIHByb3Blcmx5Lgor
ICAgIHJldHVybiBSZW5kZXJUaGVtZTo6YmFzZWxpbmVQb3NpdGlvbihvYmopIC0gNTsKK30KKwor
dm9pZCBSZW5kZXJUaGVtZUFuZHJvaWQ6OmFkZEludHJpbnNpY01hcmdpbnMoUmVuZGVyU3R5bGUq
IHN0eWxlKSBjb25zdAoreworICAgIC8vIEN1dCBvdXQgdGhlIGludHJpbnNpYyBtYXJnaW5zIGNv
bXBsZXRlbHkgaWYgd2UgZW5kIHVwIHVzaW5nIGEgc21hbGwgZm9udCBzaXplCisgICAgaWYgKHN0
eWxlLT5mb250U2l6ZSgpIDwgMTEpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBJbnRy
aW5zaWMgbWFyZ2luIHZhbHVlLgorICAgIGNvbnN0IGludCBtID0gMjsKKyAgICAKKyAgICAvLyBG
SVhNRTogVXNpbmcgd2lkdGgvaGVpZ2h0IGFsb25lIGFuZCBub3QgYWxzbyBkZWFsaW5nIHdpdGgg
bWluLXdpZHRoL21heC13aWR0aCBpcyBmbGF3ZWQuCisgICAgaWYgKHN0eWxlLT53aWR0aCgpLmlz
SW50cmluc2ljT3JBdXRvKCkpIHsKKyAgICAgICAgaWYgKHN0eWxlLT5tYXJnaW5MZWZ0KCkucXVp
cmsoKSkKKyAgICAgICAgICAgIHN0eWxlLT5zZXRNYXJnaW5MZWZ0KExlbmd0aChtLCBGaXhlZCkp
OworICAgICAgICBpZiAoc3R5bGUtPm1hcmdpblJpZ2h0KCkucXVpcmsoKSkKKyAgICAgICAgICAg
IHN0eWxlLT5zZXRNYXJnaW5SaWdodChMZW5ndGgobSwgRml4ZWQpKTsKKyAgICB9CisKKyAgICBp
ZiAoc3R5bGUtPmhlaWdodCgpLmlzQXV0bygpKSB7CisgICAgICAgIGlmIChzdHlsZS0+bWFyZ2lu
VG9wKCkucXVpcmsoKSkKKyAgICAgICAgICAgIHN0eWxlLT5zZXRNYXJnaW5Ub3AoTGVuZ3RoKG0s
IEZpeGVkKSk7CisgICAgICAgIGlmIChzdHlsZS0+bWFyZ2luQm90dG9tKCkucXVpcmsoKSkKKyAg
ICAgICAgICAgIHN0eWxlLT5zZXRNYXJnaW5Cb3R0b20oTGVuZ3RoKG0sIEZpeGVkKSk7CisgICAg
fQorfQorCitib29sIFJlbmRlclRoZW1lQW5kcm9pZDo6c3VwcG9ydHNGb2N1cyhDb250cm9sUGFy
dCBhcHBlYXJhbmNlKQoreworICAgIHN3aXRjaCAoYXBwZWFyYW5jZSkgeworICAgIGNhc2UgUHVz
aEJ1dHRvblBhcnQ6CisgICAgY2FzZSBCdXR0b25QYXJ0OgorICAgIGNhc2UgVGV4dEZpZWxkUGFy
dDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZUFu
ZHJvaWQ6OmFkanVzdEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSog
c3R5bGUsIFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdAoreworICAgIC8vIFBhZGRpbmcgY29kZSBp
cyB0YWtlbiBmcm9tIFJlbmRlclRoZW1lU2FmYXJpLmNwcAorICAgIC8vIEl0IG1ha2VzIHN1cmUg
d2UgaGF2ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBidXR0b24gdGV4dC4KKyAgICBjb25zdCBpbnQg
cGFkZGluZyA9IDg7CisgICAgc3R5bGUtPnNldFBhZGRpbmdMZWZ0KExlbmd0aChwYWRkaW5nLCBG
aXhlZCkpOworICAgIHN0eWxlLT5zZXRQYWRkaW5nUmlnaHQoTGVuZ3RoKHBhZGRpbmcsIEZpeGVk
KSk7CisgICAgc3R5bGUtPnNldE1pbkhlaWdodChMZW5ndGgoc3R5bGUtPmZvbnRTaXplKCkgKyBC
VVRUT05fUEFERElORywgRml4ZWQpKTsKK30KKworYm9vbCBSZW5kZXJUaGVtZUFuZHJvaWQ6OnBh
aW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiBvYmosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJ
bmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFJlbmRlclNraW5SYWRpbzo6
RHJhdyhnZXRDYW52YXNGcm9tSW5mbyhpbmZvKSwgb2JqLT5ub2RlKCksIHJlY3QsIHRydWUpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZW5kZXJUaGVtZUFuZHJvaWQ6OnBhaW50QnV0
dG9uKFJlbmRlck9iamVjdCogb2JqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBJZiBpdCBpcyBhIGRpc2FibGVkIGJ1
dHRvbiwgc2ltcGx5IHBhaW50IGl0IHRvIHRoZSBtYXN0ZXIgcGljdHVyZS4KKyAgICBOb2RlKiBu
b2RlID0gb2JqLT5ub2RlKCk7CisgICAgRm9ybUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVs
ZW1lbnQgPSB0b0Zvcm1Db250cm9sRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkp
OworICAgIGlmIChmb3JtQ29udHJvbEVsZW1lbnQgJiYgIWZvcm1Db250cm9sRWxlbWVudC0+aXNF
bmFibGVkKCkpCisgICAgICAgIFJlbmRlclNraW5CdXR0b246OkRyYXcoZ2V0Q2FudmFzRnJvbUlu
Zm8oaW5mbyksIHJlY3QsIFJlbmRlclNraW5BbmRyb2lkOjprRGlzYWJsZWQpOworICAgIGVsc2UK
KyAgICAgICAgLy8gU3RvcmUgYWxsIHRoZSBpbXBvcnRhbnQgaW5mb3JtYXRpb24gaW4gdGhlIHBs
YXRmb3JtIGNvbnRleHQuCisgICAgICAgIGluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkt
PnN0b3JlQnV0dG9uSW5mbyhub2RlLCByZWN0KTsKKworICAgIC8vIFdlIGFsd2F5cyByZXR1cm4g
ZmFsc2Ugc28gd2UgZG8gbm90IHJlcXVlc3QgdG8gYmUgcmVkcmF3bi4KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVBbmRyb2lkOjpwYWludFJhZGlvKFJlbmRlck9iamVj
dCogb2JqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50UmVj
dCYgcmVjdCkKK3sKKyAgICBSZW5kZXJTa2luUmFkaW86OkRyYXcoZ2V0Q2FudmFzRnJvbUluZm8o
aW5mbyksIG9iai0+bm9kZSgpLCByZWN0LCBmYWxzZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIFJlbmRlclRoZW1lQW5kcm9pZDo6c2V0Q2hlY2tib3hTaXplKFJlbmRlclN0eWxlKiBz
dHlsZSkgY29uc3QKK3sKKyAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKDE5LCBGaXhlZCkpOwor
ICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKDE5LCBGaXhlZCkpOworfQorCit2b2lkIFJlbmRl
clRoZW1lQW5kcm9pZDo6c2V0UmFkaW9TaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK3sK
KyAgICAvLyBUaGlzIGlzIHRoZSBzYW1lIGFzIGNoZWNrYm94ZXMuCisgICAgc2V0Q2hlY2tib3hT
aXplKHN0eWxlKTsKK30KKwordm9pZCBSZW5kZXJUaGVtZUFuZHJvaWQ6OmFkanVzdFRleHRGaWVs
ZFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVs
ZW1lbnQqKSBjb25zdAoreworICAgIGFkZEludHJpbnNpY01hcmdpbnMoc3R5bGUpOworfQorCiti
b29sIFJlbmRlclRoZW1lQW5kcm9pZDo6cGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiwgY29u
c3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikKK3sKKyAgICByZXR1
cm4gdHJ1ZTsgICAgCit9CisKK3ZvaWQgUmVuZGVyVGhlbWVBbmRyb2lkOjphZGp1c3RUZXh0QXJl
YVN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVs
ZW1lbnQqKSBjb25zdAoreworICAgIGFkZEludHJpbnNpY01hcmdpbnMoc3R5bGUpOworfQorCiti
b29sIFJlbmRlclRoZW1lQW5kcm9pZDo6cGFpbnRUZXh0QXJlYShSZW5kZXJPYmplY3QqIG9iaiwg
Y29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgaWYgKG9iai0+aXNNZW51TGlzdCgpKQorICAgICAgICByZXR1cm4gcGFpbnRDb21i
byhvYmosIGluZm8sIHJlY3QpOworICAgIHJldHVybiB0cnVlOyAgICAKK30KKwordm9pZCBSZW5k
ZXJUaGVtZUFuZHJvaWQ6OmFkanVzdFNlYXJjaEZpZWxkU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvcios
IFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit7CisgICAgYWRkSW50cmluc2lj
TWFyZ2lucyhzdHlsZSk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVBbmRyb2lkOjpwYWludFNlYXJj
aEZpZWxkKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpCit7CisgICAgcmV0dXJuIHRydWU7ICAgIAorfQorCit2b2lkIFJlbmRlclRo
ZW1lQW5kcm9pZDo6YWRqdXN0TGlzdGJveFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJT
dHlsZSogc3R5bGUsIEVsZW1lbnQqKSBjb25zdAoreworICAgIHN0eWxlLT5zZXRQYWRkaW5nUmln
aHQoTGVuZ3RoKFJlbmRlclNraW5Db21ibzo6ZXh0cmFXaWR0aCgpLCBGaXhlZCkpOworICAgIHN0
eWxlLT5zZXRNYXhIZWlnaHQoTGVuZ3RoKHN0eWxlLT5mb250U2l6ZSgpICsgTElTVEJPWF9QQURE
SU5HLCBGaXhlZCkpOworICAgIGFkZEludHJpbnNpY01hcmdpbnMoc3R5bGUpOworfQorCitzdGF0
aWMgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxlQ29tbW9uKFJlbmRlclN0eWxlKiBzdHlsZSwgRWxl
bWVudCogZSkKK3sKKyAgICAvLyBBZGRlZCB0byBtYWtlIHJvb20gZm9yIG91ciBhcnJvdy4KKyAg
ICBzdHlsZS0+c2V0UGFkZGluZ1JpZ2h0KExlbmd0aChSZW5kZXJTa2luQ29tYm86OmV4dHJhV2lk
dGgoKSwgRml4ZWQpKTsKKyAgICAvLyBDb2RlIGNvcGllZCBmcm9tIFJlbmRlclRoZW1lTWFjLm1t
CisgICAgLy8gTWFrZXMgc3VyZSB0aGF0IHRoZSB0ZXh0IHNob3dzIHVwIG9uIG91ciB0cmVhdG1l
bnQKKyAgICBib29sIGlzRW5hYmxlZCA9IHRydWU7CisgICAgaWYgKEZvcm1Db250cm9sRWxlbWVu
dCogZm9ybUNvbnRyb2xFbGVtZW50ID0gdG9Gb3JtQ29udHJvbEVsZW1lbnQoZSkpCisgICAgICAg
IGlzRW5hYmxlZCA9IGZvcm1Db250cm9sRWxlbWVudC0+aXNFbmFibGVkKCk7CisgICAgc3R5bGUt
PnNldENvbG9yKGlzRW5hYmxlZCA/IENvbG9yOjpibGFjayA6IENvbG9yOjpkYXJrR3JheSk7Cit9
CisKK3ZvaWQgUmVuZGVyVGhlbWVBbmRyb2lkOjphZGp1c3RNZW51TGlzdFN0eWxlKENTU1N0eWxl
U2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpIGNvbnN0Cit7CisgICAg
YWRqdXN0TWVudUxpc3RTdHlsZUNvbW1vbihzdHlsZSwgZSk7CisgICAgYWRkSW50cmluc2ljTWFy
Z2lucyhzdHlsZSk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVBbmRyb2lkOjpwYWludENvbWJvKFJl
bmRlck9iamVjdCogb2JqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaW5mbywgIGNv
bnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgaWYgKG9iai0+c3R5bGUoKSAmJiAhb2JqLT5zdHls
ZSgpLT5iYWNrZ3JvdW5kQ29sb3IoKS5hbHBoYSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBOb2RlKiBub2RlID0gb2JqLT5ub2RlKCk7CisgICAgaW50IGhlaWdodCA9IHJlY3QuaGVpZ2h0
KCk7CisgICAgaW50IHkgPSByZWN0LnkoKTsKKyAgICAvLyBJZiB0aGUgY29tYm8gYm94IGlzIHRv
byBsYXJnZSwgbGVhdmUgaXQgYXQgaXRzIG1heCBoZWlnaHQsIGFuZCBjZW50ZXIgaXQuCisgICAg
aWYgKGhlaWdodCA+IE1BWF9DT01CT19IRUlHSFQpIHsKKyAgICAgICAgeSArPSAoaGVpZ2h0IC0g
TUFYX0NPTUJPX0hFSUdIVCkgPj4gMTsKKyAgICAgICAgaGVpZ2h0ID0gTUFYX0NPTUJPX0hFSUdI
VDsKKyAgICB9CisgICAgcmV0dXJuIFJlbmRlclNraW5Db21ibzo6RHJhdyhnZXRDYW52YXNGcm9t
SW5mbyhpbmZvKSwgbm9kZSwgcmVjdC54KCksIHksCisgICAgICAgICAgICByZWN0LndpZHRoKCks
IGhlaWdodCk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVBbmRyb2lkOjpwYWludE1lbnVMaXN0KFJl
bmRlck9iamVjdCogb2JqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaW5mbywgY29u
c3QgSW50UmVjdCYgcmVjdCkgCit7IAorICAgIHJldHVybiBwYWludENvbWJvKG9iaiwgaW5mbywg
cmVjdCk7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVBbmRyb2lkOjphZGp1c3RNZW51TGlzdEJ1dHRv
blN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUp
IGNvbnN0Cit7CisgICAgLy8gQ29waWVkIGZyb20gUmVuZGVyVGhlbWVTYWZhcmkuCisgICAgY29u
c3QgZmxvYXQgYmFzZUZvbnRTaXplID0gMTEuMGY7CisgICAgY29uc3QgaW50IGJhc2VCb3JkZXJS
YWRpdXMgPSA1OworICAgIGZsb2F0IGZvbnRTY2FsZSA9IHN0eWxlLT5mb250U2l6ZSgpIC8gYmFz
ZUZvbnRTaXplOworICAgIAorICAgIHN0eWxlLT5yZXNldFBhZGRpbmcoKTsKKyAgICBzdHlsZS0+
c2V0Qm9yZGVyUmFkaXVzKEludFNpemUoaW50KGJhc2VCb3JkZXJSYWRpdXMgKyBmb250U2NhbGUg
LSAxKSwgaW50KGJhc2VCb3JkZXJSYWRpdXMgKyBmb250U2NhbGUgLSAxKSkpOyAvLyBGSVhNRTog
Um91bmQgdXA/CisKKyAgICBjb25zdCBpbnQgbWluSGVpZ2h0ID0gMTU7CisgICAgc3R5bGUtPnNl
dE1pbkhlaWdodChMZW5ndGgobWluSGVpZ2h0LCBGaXhlZCkpOworICAgIAorICAgIHN0eWxlLT5z
ZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpKTsKKyAgICAvLyBG
b3VuZCB0aGVzZSBwYWRkaW5nIG51bWJlcnMgYnkgdHJpYWwgYW5kIGVycm9yLgorICAgIGNvbnN0
IGludCBwYWRkaW5nID0gNDsKKyAgICBzdHlsZS0+c2V0UGFkZGluZ1RvcChMZW5ndGgocGFkZGlu
ZywgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0UGFkZGluZ0xlZnQoTGVuZ3RoKHBhZGRpbmcsIEZp
eGVkKSk7CisgICAgYWRqdXN0TWVudUxpc3RTdHlsZUNvbW1vbihzdHlsZSwgZSk7Cit9CisKK2Jv
b2wgUmVuZGVyVGhlbWVBbmRyb2lkOjpwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCog
b2JqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50UmVjdCYg
cmVjdCkgCit7CisgICAgcmV0dXJuIHBhaW50Q29tYm8ob2JqLCBpbmZvLCByZWN0KTsKK30KKwor
Ym9vbCBSZW5kZXJUaGVtZUFuZHJvaWQ6OnN1cHBvcnRzRm9jdXNSaW5nKGNvbnN0IFJlbmRlclN0
eWxlKiBzdHlsZSkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUtPm9wYWNpdHkoKSA+IDAKKyAg
ICAgICAgJiYgc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSAKKyAgICAgICAgJiYgc3R5bGUtPmFwcGVh
cmFuY2UoKSAhPSBUZXh0RmllbGRQYXJ0IAorICAgICAgICAmJiBzdHlsZS0+YXBwZWFyYW5jZSgp
ICE9IFNlYXJjaEZpZWxkUGFydCAKKyAgICAgICAgJiYgc3R5bGUtPmFwcGVhcmFuY2UoKSAhPSBU
ZXh0QXJlYVBhcnQgCisgICAgICAgICYmIHN0eWxlLT5hcHBlYXJhbmNlKCkgIT0gQ2hlY2tib3hQ
YXJ0CisgICAgICAgICYmIHN0eWxlLT5hcHBlYXJhbmNlKCkgIT0gUmFkaW9QYXJ0CisgICAgICAg
ICYmIHN0eWxlLT5hcHBlYXJhbmNlKCkgIT0gUHVzaEJ1dHRvblBhcnQKKyAgICAgICAgJiYgc3R5
bGUtPmFwcGVhcmFuY2UoKSAhPSBTcXVhcmVCdXR0b25QYXJ0CisgICAgICAgICYmIHN0eWxlLT5h
cHBlYXJhbmNlKCkgIT0gQnV0dG9uUGFydAorICAgICAgICAmJiBzdHlsZS0+YXBwZWFyYW5jZSgp
ICE9IEJ1dHRvbkJldmVsUGFydAorICAgICAgICAmJiBzdHlsZS0+YXBwZWFyYW5jZSgpICE9IE1l
bnVsaXN0UGFydAorICAgICAgICAmJiBzdHlsZS0+YXBwZWFyYW5jZSgpICE9IE1lbnVsaXN0QnV0
dG9uUGFydDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9hbmRyb2lkL1JlbmRlclRoZW1lQW5kcm9pZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vYW5kcm9pZC9SZW5kZXJUaGVtZUFuZHJvaWQuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9SZW5kZXJUaGVtZUFuZHJvaWQuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3Bl
biBTb3VyY2UgUHJvamVjdAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlbmRlclRoZW1lQW5kcm9pZF9oCisj
ZGVmaW5lIFJlbmRlclRoZW1lQW5kcm9pZF9oCisKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclNraW5CdXR0b247CitjbGFzcyBS
ZW5kZXJTa2luUmFkaW87CitjbGFzcyBSZW5kZXJTa2luQ29tYm87CisKK3N0cnVjdCBUaGVtZURh
dGEgeworICAgIFRoZW1lRGF0YSgpCisgICAgICAgIDogbV9wYXJ0KDApCisgICAgICAgICwgbV9z
dGF0ZSgwKQorICAgIHsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBtX3BhcnQ7CisgICAgdW5zaWdu
ZWQgbV9zdGF0ZTsKK307CisKK2NsYXNzIFJlbmRlclRoZW1lQW5kcm9pZCA6IHB1YmxpYyBSZW5k
ZXJUaGVtZSB7CitwdWJsaWM6CisgICAgUmVuZGVyVGhlbWVBbmRyb2lkKCk7CisgICAgflJlbmRl
clRoZW1lQW5kcm9pZCgpOworICAgIAorICAgIHZpcnR1YWwgYm9vbCBzdGF0ZUNoYW5nZWQoUmVu
ZGVyT2JqZWN0KiwgQ29udHJvbFN0YXRlKSBjb25zdDsKKyAgICAgICAKKyAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKKyAgICAvLyBB
IG1ldGhvZCBhc2tpbmcgaWYgdGhlIHRoZW1lJ3MgY29udHJvbHMgYWN0dWFsbHkgY2FyZSBhYm91
dCByZWRyYXdpbmcgd2hlbiBob3ZlcmVkLgorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0hvdmVy
KGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QgeyByZXR1cm4gc3R5bGUtPmFmZmVjdGVk
QnlIb3ZlclJ1bGVzKCk7IH0KKworICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oY29u
c3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7CisKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBw
bGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgdmly
dHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0
OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcigpIGNvbnN0OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IoKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChpbnQs
IFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbiYpIGNvbnN0IHt9CisKKyAgICB2aXJ0dWFsIGludCBt
aW5pbXVtTWVudUxpc3RTaXplKFJlbmRlclN0eWxlKikgY29uc3QgeyByZXR1cm4gMDsgfQorCitw
cm90ZWN0ZWQ6CisgICAgdmlydHVhbCBib29sIHBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAgdmly
dHVhbCB2b2lkIHNldENoZWNrYm94U2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OworCisgICAgdmly
dHVhbCBib29sIHBhaW50UmFkaW8oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHNldFJhZGlvU2l6
ZShSZW5kZXJTdHlsZSopIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGFkanVzdEJ1dHRvblN0
eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIFdlYkNvcmU6OkVsZW1lbnQqKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisKKyAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0VGV4dEZpZWxkU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxl
KiwgV2ViQ29yZTo6RWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFRleHRG
aWVsZChSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RUZXh0QXJlYVN0eWxlKENTU1N0
eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRUZXh0QXJlYShSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJP
YmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyAgICAKKyAgICBib29sIHBhaW50
Q29tYm8oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCAgY29u
c3QgSW50UmVjdCYpOworCisgICAgdmlydHVhbCB2b2lkIGFkanVzdExpc3Rib3hTdHlsZShDU1NT
dHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIGFkanVzdE1lbnVMaXN0U3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxl
KiwgRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0KFJlbmRl
ck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
OworCisgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVT
ZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9v
bCBwYWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBhZGp1
c3RTZWFyY2hGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1l
bnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTZWFyY2hGaWVsZChSZW5kZXJPYmpl
Y3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKwor
cHJpdmF0ZToKKyAgICB2b2lkIGFkZEludHJpbnNpY01hcmdpbnMoUmVuZGVyU3R5bGUqKSBjb25z
dDsKKyAgICB2b2lkIGNsb3NlKCk7CisKKyAgICBib29sIHN1cHBvcnRzRm9jdXMoQ29udHJvbFBh
cnQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVuZGVyVGhl
bWVBbmRyb2lkX2gKKwo=
</data>
<flag name="review"
          id="15829"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>