<?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>58161</bug_id>
          
          <creation_ts>2011-04-08 13:44:49 -0700</creation_ts>
          <short_desc>Allow ShadowBlur to re-use the last buffer if it already contains the correct shadow</short_desc>
          <delta_ts>2012-02-15 12:29:50 -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>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://people.mozilla.org/~roc/scrolling-boxes.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56162</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ariya.hidayat</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>mrobinson</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>382525</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-04-08 13:44:49 -0700</bug_when>
    <thetext>ShadowBlur can simply re-use the last buffer if the shadow parameters are the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382579</commentid>
    <comment_count>1</comment_count>
      <attachid>88879</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-04-08 15:04:00 -0700</bug_when>
    <thetext>Created attachment 88879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383012</commentid>
    <comment_count>2</comment_count>
      <attachid>88879</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2011-04-10 20:22:34 -0700</bug_when>
    <thetext>Comment on attachment 88879
Patch

LGTM. re=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383026</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-04-10 21:52:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/83422</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88879</attachid>
            <date>2011-04-08 15:04:00 -0700</date>
            <delta_ts>2011-04-10 20:22:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58161-20110408150358.patch</filename>
            <type>text/plain</type>
            <size>23402</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyMDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZTViNzY2ZDAzMzU4ZGQx
OTQ2ZjVhMjc1OGJiYzMyNTEwOWYwYzk5Li5iZDNjN2Q1NmEwMWQyNmMzNzA3NzZhZTRlMTQxNWYw
NGM2ZGMwMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMDQtMDggIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgU2hhZG93Qmx1ciB0byByZS11c2UgdGhl
IGxhc3QgYnVmZmVyIGlmIGl0IGFscmVhZHkgY29udGFpbnMgdGhlIGNvcnJlY3Qgc2hhZG93Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODE2MQorICAg
ICAgICAKKyAgICAgICAgU2hhZG93Qmx1ciBhbHJlYWR5IGhhcyBhIHNpbmdsZXRvbiBzY3JhdGNo
IGJ1ZmZlciB0aGF0IGlzIHJlLXVzZWQKKyAgICAgICAgYmV0d2VlbiBzaGFkb3dzLiBFbmhhbmNl
IHVzZSBvZiB0aGlzIHNjcmF0Y2ggYnVmZmVyIHRvIGF2b2lkIGRyYXdpbmcKKyAgICAgICAgYW5k
IGJsdXJyaW5nIHRoZSBzaGFkb3cgaWYgdGhlIHJlc3VsdHMgd2lsbCBtYXRjaCB3aGF0IGlzIGFs
cmVhZHkKKyAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgCisgICAgICAgIENsZWFuZWQg
dXAgU2hhZG93Qmx1ciBjb2RlIHRvIHJlbW92ZSBiZWdpblNoYWRvd0xheWVyKCkgYW5kIGVuZFNo
YWRvd0xheWVyKCksCisgICAgICAgIHdoaWNoIGVuZGVkIHVwIHdpdGggbGl0dGxlIHJldXNhYmxl
IGNvZGUgYWZ0ZXIgYWRkaW5nIHRoZSByZS11c2UgbG9naWMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nSW50
UmVjdCk6IFJlcGxhY2Ugc2FmZUZsb2F0VG9JbnQoKSB3aXRoIHRoZSBleGlzdGluZworICAgICAg
ICBjbGFtcFRvSW50ZWdlcigpIGZyb20gTWF0aEV4dHJhcy5oCisgICAgICAgIAorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oOgorICAgICAgICAoV2ViQ29yZTo6ZXhwYW5k
ZWRJbnRTaXplKTogTmV3IG1ldGhvZCB0byBzYWZlbHkgY2VpbCgpIHRoZSBzaXplLgorICAgICAg
ICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkSW50UmVjdC5oOgorICAgICAg
ICBBZGQgb3BlcmF0b3I9PSBmb3IgUmFkaWkgYW5kIFJvdW5kZWRJbnRSZWN0LgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JhdGNoQnVmZmVyOjpTY3JhdGNoQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hC
dWZmZXI6OnNldExhc3RTaGFkb3dWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2NyYXRjaEJ1
ZmZlcjo6c2V0TGFzdEluc2V0U2hhZG93VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0
Y2hCdWZmZXI6Om1hdGNoZXNMYXN0U2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hC
dWZmZXI6Om1hdGNoZXNMYXN0SW5zZXRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6U2NyYXRj
aEJ1ZmZlcjo6Y2xlYXJTY3JhdGNoQnVmZmVyKToKKyAgICAgICAgSGF2ZSB0aGUgc2NyYXRjaCBi
dWZmZXIgcmVtZW1iZXIgd2hhdCBzaGFkb3cgcGFyYW1ldGVycyB3ZXJlIHVzZWQKKyAgICAgICAg
dG8gcmVuZGVyIHRoZSBidWZmZXIgY29udGVudHMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Qmx1cjo6ZHJhd1NoYWRvd0J1ZmZlcik6CisgICAgICAgIFJlbmFtZWQgZnJvbSBl
bmRTaGFkb3dMYXllcigpLCBhbmQgb25seSBjb250YWlucyB0aGUgZHJhd2luZworICAgICAgICBs
b2dpYyBub3cuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1Jl
Y3RTaGFkb3cpOgorICAgICAgICBQcm9tb3RlIHNvbWUgY29kZSBmcm9tIGJlZ2luU2hhZG93TGF5
ZXIoKS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3SW5zZXRT
aGFkb3cpOgorICAgICAgICBQcm9tb3RlIHNvbWUgY29kZSBmcm9tIGJlZ2luU2hhZG93TGF5ZXIo
KS4KKworICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dXaXRob3V0
VGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvd1dp
dGhvdXRUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hh
ZG93V2l0aFRpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3UmVjdFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICBUaGVzZSBtZXRob2RzIG5vdyBjaGVjayB0byBzZWUg
aWYgdGhlIGJ1ZmZlciBhbHJlYWR5IG1hdGNoZXMKKyAgICAgICAgdGhlaXIgcmVxdWlyZWQgcGFy
YW1ldGVycywgYW5kIGF2b2lkIHdvcmsgaWYgaXQgZG9lcy4KKyAgICAgICAgCisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dCbHVyOjpibHVyU2hhZG93QnVmZmVyKToKKyAgICAgICAgRmFjdG9yZWQg
c29tZSBjb2RlIGludG8gdGhpcyBuZXcgbWV0aG9kLgorICAgICAgICAKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd0JsdXI6OmJsdXJBbmRDb2xvclNoYWRvd0J1ZmZlcik6CisgICAgICAgIE1pbm9y
IHJlZmFjdG9yaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5o
OgorCiAyMDExLTA0LTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKaW5kZXggMDU4N2ExZmQwYWQ0ZmViY2Ey
ZDUxOGNhYTMyZTczYTMxMzcxZWNjZC4uYTUzNmU1ZGYyOGRmYTc5MDM2MTkzMDczOGM4ZWU1MjFk
MzAzNTVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuY3BwCkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAj
aW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxsaW1p
dHM+CiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIHVz
aW5nIHN0ZDo6bWF4OwogdXNpbmcgc3RkOjptaW47CkBAIC0xODIsMjYgKzE4MiwxNCBAQCB2b2lk
IEZsb2F0UmVjdDo6Zml0VG9Qb2ludHMoY29uc3QgRmxvYXRQb2ludCYgcDAsIGNvbnN0IEZsb2F0
UG9pbnQmIHAxLCBjb25zdCBGbAogICAgIHNldExvY2F0aW9uQW5kU2l6ZUZyb21FZGdlcyhsZWZ0
LCB0b3AsIHJpZ2h0LCBib3R0b20pOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBzYWZlRmxvYXRU
b0ludChmbG9hdCB4KQotewotICAgIHN0YXRpYyBjb25zdCBpbnQgc19pbnRNYXggPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludD46Om1heCgpOwotICAgIHN0YXRpYyBjb25zdCBpbnQgc19pbnRNaW4g
PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbigpOwotCi0gICAgaWYgKHggPj0gc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHNfaW50TWF4KSkKLSAgICAgICAgcmV0dXJuIHNfaW50TWF4OwotICAgIGlm
ICh4IDwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNfaW50TWluKSkKLSAgICAgICAgcmV0dXJuIHNfaW50
TWluOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHgpOwotfQotCiBJbnRSZWN0IGVuY2xv
c2luZ0ludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGZsb2F0IGxlZnQgPSBm
bG9vcmYocmVjdC54KCkpOwogICAgIGZsb2F0IHRvcCA9IGZsb29yZihyZWN0LnkoKSk7CiAgICAg
ZmxvYXQgd2lkdGggPSBjZWlsZihyZWN0Lm1heFgoKSkgLSBsZWZ0OwogICAgIGZsb2F0IGhlaWdo
dCA9IGNlaWxmKHJlY3QubWF4WSgpKSAtIHRvcDsKLSAgICByZXR1cm4gSW50UmVjdChzYWZlRmxv
YXRUb0ludChsZWZ0KSwgc2FmZUZsb2F0VG9JbnQodG9wKSwgCi0gICAgICAgICAgICAgICAgICAg
c2FmZUZsb2F0VG9JbnQod2lkdGgpLCBzYWZlRmxvYXRUb0ludChoZWlnaHQpKTsKKyAgICByZXR1
cm4gSW50UmVjdChjbGFtcFRvSW50ZWdlcihsZWZ0KSwgY2xhbXBUb0ludGVnZXIodG9wKSwgCisg
ICAgICAgICAgICAgICAgICAgY2xhbXBUb0ludGVnZXIod2lkdGgpLCBjbGFtcFRvSW50ZWdlciho
ZWlnaHQpKTsKIH0KIAogRmxvYXRSZWN0IG1hcFJlY3QoY29uc3QgRmxvYXRSZWN0JiByLCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oCmluZGV4IDE2MGZjOWFhOWVl
MDJmODFmODdlM2UzYmNmNmQ4NDI2NjUwOTY2NTguLjRmYjViYWFmMDM3YTk3NTk5ODcxZTNjZTAw
OWQyZGM3NmNhMDEwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0U2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0U2l6ZS5oCkBAIC0xNDgsNiArMTQ4LDExIEBAIGlubGluZSBJbnRTaXplIHJvdW5kZWRJbnRT
aXplKGNvbnN0IEZsb2F0U2l6ZSYgcCkKICAgICByZXR1cm4gSW50U2l6ZShzdGF0aWNfY2FzdDxp
bnQ+KHJvdW5kZihwLndpZHRoKCkpKSwgc3RhdGljX2Nhc3Q8aW50Pihyb3VuZGYocC5oZWlnaHQo
KSkpKTsKIH0KIAoraW5saW5lIEludFNpemUgZXhwYW5kZWRJbnRTaXplKGNvbnN0IEZsb2F0U2l6
ZSYgcCkKK3sKKyAgICByZXR1cm4gSW50U2l6ZShjbGFtcFRvSW50ZWdlcihjZWlsZihwLndpZHRo
KCkpKSwgY2xhbXBUb0ludGVnZXIoY2VpbGYocC5oZWlnaHQoKSkpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRmxvYXRTaXplX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRJbnRSZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkSW50UmVjdC5oCmluZGV4IGMzYzk3MmZkM2E1
N2UxODczZDhlYjBiNzdhYzRiYjk1MzFlYzdhYjYuLjhmNzQ5ZjY5NzEzZGJjZDhkNWYyOGU0OWFh
YTU1MWZkNzczNjk1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JvdW5kZWRJbnRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUm91bmRlZEludFJlY3QuaApAQCAtOTgsNiArOTgsMTcgQEAgcHJpdmF0ZToKICAgICBSYWRp
aSBtX3JhZGlpOwogfTsKIAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSb3VuZGVkSW50
UmVjdDo6UmFkaWkmIGEsIGNvbnN0IFJvdW5kZWRJbnRSZWN0OjpSYWRpaSYgYikKK3sKKyAgICBy
ZXR1cm4gYS50b3BMZWZ0KCkgPT0gYi50b3BMZWZ0KCkgJiYgYS50b3BSaWdodCgpID09IGIudG9w
UmlnaHQoKSAmJiBhLmJvdHRvbUxlZnQoKSA9PSBiLmJvdHRvbUxlZnQoKSAmJiBhLmJvdHRvbVJp
Z2h0KCkgPT0gYi5ib3R0b21SaWdodCgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFJvdW5kZWRJbnRSZWN0JiBhLCBjb25zdCBSb3VuZGVkSW50UmVjdCYgYikKK3sKKyAgICBy
ZXR1cm4gYS5yZWN0KCkgPT0gYi5yZWN0KCkgJiYgYS5yYWRpaSgpID09IGIucmFkaWkoKTsKK30K
KworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSb3VuZGVkSW50UmVjdF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmlu
ZGV4IDQxODg3NTE0MDkxZTk5YmYyZmUwYjRiNmExNTBhMDFmYzA5NmFmMDEuLjJmMjUyMjFhNmRl
NzE3NzYwMzk0ZTVhNGU2YWNlYjFhM2NiNGRkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCkBAIC01NCw2ICs1NCw4IEBAIGNsYXNzIFNj
cmF0Y2hCdWZmZXIgewogcHVibGljOgogICAgIFNjcmF0Y2hCdWZmZXIoKQogICAgICAgICA6IG1f
cHVyZ2VUaW1lcih0aGlzLCAmU2NyYXRjaEJ1ZmZlcjo6dGltZXJGaXJlZCkKKyAgICAgICAgLCBt
X2xhc3RSYWRpdXMoMCkKKyAgICAgICAgLCBtX2xhc3RXYXNJbnNldChmYWxzZSkKICNpZiAhQVNT
RVJUX0RJU0FCTEVECiAgICAgICAgICwgbV9idWZmZXJJblVzZShmYWxzZSkKICNlbmRpZgpAQCAt
NzcsNiArNzksNDEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlci5nZXQo
KTsKICAgICB9CiAKKyAgICB2b2lkIHNldExhc3RTaGFkb3dWYWx1ZXMoZmxvYXQgcmFkaXVzLCBj
b25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0
JiBzaGFkb3dSZWN0LCBjb25zdCBSb3VuZGVkSW50UmVjdDo6UmFkaWkmIHJhZGlpKQorICAgIHsK
KyAgICAgICAgbV9sYXN0V2FzSW5zZXQgPSBmYWxzZTsKKyAgICAgICAgbV9sYXN0UmFkaXVzID0g
cmFkaXVzOworICAgICAgICBtX2xhc3RDb2xvciA9IGNvbG9yOworICAgICAgICBtX2xhc3RDb2xv
clNwYWNlID0gY29sb3JTcGFjZTsKKyAgICAgICAgbV9sYXN0U2hhZG93UmVjdCA9IHNoYWRvd1Jl
Y3Q7CisgICAgICAgIG1fbGFzdFJhZGlpID0gcmFkaWk7CisgICAgfQorCisgICAgdm9pZCBzZXRM
YXN0SW5zZXRTaGFkb3dWYWx1ZXMoZmxvYXQgcmFkaXVzLCBjb25zdCBDb2xvciYgY29sb3IsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZHMsIGNvbnN0IEZsb2F0
UmVjdCYgc2hhZG93UmVjdCwgY29uc3QgUm91bmRlZEludFJlY3Q6OlJhZGlpJiByYWRpaSkKKyAg
ICB7CisgICAgICAgIG1fbGFzdFdhc0luc2V0ID0gdHJ1ZTsKKyAgICAgICAgbV9sYXN0SW5zZXRC
b3VuZHMgPSBib3VuZHM7CisgICAgICAgIG1fbGFzdFJhZGl1cyA9IHJhZGl1czsKKyAgICAgICAg
bV9sYXN0Q29sb3IgPSBjb2xvcjsKKyAgICAgICAgbV9sYXN0Q29sb3JTcGFjZSA9IGNvbG9yU3Bh
Y2U7CisgICAgICAgIG1fbGFzdFNoYWRvd1JlY3QgPSBzaGFkb3dSZWN0OworICAgICAgICBtX2xh
c3RSYWRpaSA9IHJhZGlpOworICAgIH0KKyAgICAKKyAgICBib29sIG1hdGNoZXNMYXN0U2hhZG93
KGZsb2F0IHJhZGl1cywgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Us
IGNvbnN0IEZsb2F0UmVjdCYgc2hhZG93UmVjdCwgY29uc3QgUm91bmRlZEludFJlY3Q6OlJhZGlp
JiByYWRpaSkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChtX2xhc3RXYXNJbnNldCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1fbGFzdFJhZGl1cyA9PSByYWRp
dXMgJiYgbV9sYXN0Q29sb3IgPT0gY29sb3IgJiYgbV9sYXN0Q29sb3JTcGFjZSA9PSBjb2xvclNw
YWNlICYmIHNoYWRvd1JlY3QgPT0gbV9sYXN0U2hhZG93UmVjdCAmJiByYWRpaSA9PSBtX2xhc3RS
YWRpaTsKKyAgICB9CisKKyAgICBib29sIG1hdGNoZXNMYXN0SW5zZXRTaGFkb3coZmxvYXQgcmFk
aXVzLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgRmxv
YXRSZWN0JiBib3VuZHMsIGNvbnN0IEZsb2F0UmVjdCYgc2hhZG93UmVjdCwgY29uc3QgUm91bmRl
ZEludFJlY3Q6OlJhZGlpJiByYWRpaSkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9sYXN0
V2FzSW5zZXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtX2xh
c3RSYWRpdXMgPT0gcmFkaXVzICYmIG1fbGFzdENvbG9yID09IGNvbG9yICYmIG1fbGFzdENvbG9y
U3BhY2UgPT0gY29sb3JTcGFjZSAmJiBtX2xhc3RJbnNldEJvdW5kcyA9PSBib3VuZHMgJiYgc2hh
ZG93UmVjdCA9PSBtX2xhc3RTaGFkb3dSZWN0ICYmIHJhZGlpID09IG1fbGFzdFJhZGlpOworICAg
IH0KKwogICAgIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVmZmVyUHVyZ2UoKQogICAgIHsKICNpZiAh
QVNTRVJUX0RJU0FCTEVECkBAIC0xMDAsMTAgKzEzNywyMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y2xlYXJTY3JhdGNoQnVmZmVyKCkKICAgICB7CiAgICAgICAgIG1faW1hZ2VCdWZmZXIgPSAwOwor
ICAgICAgICBtX2xhc3RSYWRpdXMgPSAwOwogICAgIH0KIAogICAgIE93blB0cjxJbWFnZUJ1ZmZl
cj4gbV9pbWFnZUJ1ZmZlcjsKICAgICBUaW1lcjxTY3JhdGNoQnVmZmVyPiBtX3B1cmdlVGltZXI7
CisgICAgCisgICAgRmxvYXRSZWN0IG1fbGFzdEluc2V0Qm91bmRzOworICAgIEZsb2F0UmVjdCBt
X2xhc3RTaGFkb3dSZWN0OworICAgIFJvdW5kZWRJbnRSZWN0OjpSYWRpaSBtX2xhc3RSYWRpaTsK
KyAgICBDb2xvciBtX2xhc3RDb2xvcjsKKyAgICBDb2xvclNwYWNlIG1fbGFzdENvbG9yU3BhY2U7
CisgICAgZmxvYXQgbV9sYXN0UmFkaXVzOworICAgIGJvb2wgbV9sYXN0V2FzSW5zZXQ7CisgICAg
CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIGJvb2wgbV9idWZmZXJJblVzZTsKICNlbmRpZgpA
QCAtMzQ5LDQwICszOTYsMTAgQEAgSW50UmVjdCBTaGFkb3dCbHVyOjpjYWxjdWxhdGVMYXllckJv
dW5kaW5nUmVjdChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEYKICAgICByZXR1cm4g
ZW5jbG9zaW5nSW50UmVjdChsYXllclJlY3QpOwogfQogCi1HcmFwaGljc0NvbnRleHQqIFNoYWRv
d0JsdXI6OmJlZ2luU2hhZG93TGF5ZXIoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQs
IGNvbnN0IEludFJlY3QmIGxheWVyUmVjdCkKLXsKLSAgICBhZGp1c3RCbHVyUmFkaXVzKGdyYXBo
aWNzQ29udGV4dCk7Ci0KLSAgICAvLyBEb24ndCBwYWludCBpZiB3ZSBhcmUgdG90YWxseSBvdXRz
aWRlIHRoZSBjbGlwIHJlZ2lvbi4KLSAgICBpZiAobGF5ZXJSZWN0LmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICBtX2xheWVySW1hZ2UgPSBTY3JhdGNoQnVmZmVyOjpzaGFyZWQo
KS5nZXRTY3JhdGNoQnVmZmVyKGxheWVyUmVjdC5zaXplKCkpOwotICAgIEdyYXBoaWNzQ29udGV4
dCogbGF5ZXJDb250ZXh0ID0gbV9sYXllckltYWdlLT5jb250ZXh0KCk7Ci0KLSAgICBsYXllckNv
bnRleHQtPnNhdmUoKTsgLy8gQmFsYW5jZWQgYnkgcmVzdG9yZSgpIGluIGVuZFNoYWRvd0xheWVy
KCkuCi0KLSAgICAvLyBBbHdheXMgY2xlYXIgdGhlIHN1cmZhY2UgZmlyc3QuIEZJWE1FOiB3ZSBj
b3VsZCBhdm9pZCB0aGUgY2xlYXIgb24gZmlyc3QgYWxsb2NhdGlvbi4KLSAgICAvLyBBZGQgYSBw
aXhlbCB0byBhdm9pZCBsYXRlciBlZGdlIGFsaWFzaW5nIHdoZW4gcm90YXRlZC4KLSAgICBsYXll
ckNvbnRleHQtPmNsZWFyUmVjdChGbG9hdFJlY3QoMCwgMCwgbV9sYXllclNpemUud2lkdGgoKSAr
IDEsIG1fbGF5ZXJTaXplLmhlaWdodCgpICsgMSkpOwotICAgIGxheWVyQ29udGV4dC0+dHJhbnNs
YXRlKG1fbGF5ZXJDb250ZXh0VHJhbnNsYXRpb24pOwotCi0gICAgcmV0dXJuIGxheWVyQ29udGV4
dDsKLX0KLQotdm9pZCBTaGFkb3dCbHVyOjplbmRTaGFkb3dMYXllcihHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCkKK3ZvaWQgU2hhZG93Qmx1cjo6ZHJhd1NoYWRvd0J1ZmZlcihHcmFw
aGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCkKIHsKICAgICBpZiAoIW1fbGF5ZXJJbWFnZSkK
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICBtX2xheWVySW1hZ2UtPmNvbnRleHQoKS0+
cmVzdG9yZSgpOwotCi0gICAgaWYgKG1fdHlwZSA9PSBCbHVyU2hhZG93KSB7Ci0gICAgICAgIElu
dFJlY3QgYmx1clJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IG1fbGF5ZXJTaXplKSk7Ci0gICAgICAgIFJlZlB0cjxCeXRlQXJyYXk+IGxheWVyRGF0YSA9IG1f
bGF5ZXJJbWFnZS0+Z2V0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhKGJsdXJSZWN0KTsKLSAgICAgICAg
Ymx1ckxheWVySW1hZ2UobGF5ZXJEYXRhLT5kYXRhKCksIGJsdXJSZWN0LnNpemUoKSwgYmx1clJl
Y3Qud2lkdGgoKSAqIDQpOwotICAgICAgICBtX2xheWVySW1hZ2UtPnB1dFVubXVsdGlwbGllZElt
YWdlRGF0YShsYXllckRhdGEuZ2V0KCksIGJsdXJSZWN0LnNpemUoKSwgYmx1clJlY3QsIEludFBv
aW50KCkpOwotICAgIH0KIAogICAgIGdyYXBoaWNzQ29udGV4dC0+c2F2ZSgpOwogCkBAIC0zOTks
MTEgKzQxNiw2IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZW5kU2hhZG93TGF5ZXIoR3JhcGhpY3NDb250
ZXh0KiBncmFwaGljc0NvbnRleHQpCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5maWxsUmVjdChGbG9h
dFJlY3QobV9sYXllck9yaWdpbiwgbV9zb3VyY2VSZWN0LnNpemUoKSkpOwogICAgIAogICAgIGdy
YXBoaWNzQ29udGV4dC0+cmVzdG9yZSgpOwotCi0gICAgbV9sYXllckltYWdlID0gMDsKLQotICAg
IC8vIFNjaGVkdWxlIGEgcHVyZ2Ugb2YgdGhlIHNjcmF0Y2ggYnVmZmVyLiBXZSBkbyBub3QgbmVl
ZCB0byBkZXN0cm95IHRoZSBzdXJmYWNlLgotICAgIFNjcmF0Y2hCdWZmZXI6OnNoYXJlZCgpLnNj
aGVkdWxlU2NyYXRjaEJ1ZmZlclB1cmdlKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGNvbXB1dGVTbGlj
ZVNpemVzRnJvbVJhZGlpKGludCB0d2ljZVJhZGl1cywgY29uc3QgUm91bmRlZEludFJlY3Q6OlJh
ZGlpJiByYWRpaSwgaW50JiBsZWZ0U2xpY2UsIGludCYgcmlnaHRTbGljZSwgaW50JiB0b3BTbGlj
ZSwgaW50JiBib3R0b21TbGljZSkKQEAgLTQzNSw2ICs0NDcsOCBAQCB2b2lkIFNoYWRvd0JsdXI6
OmRyYXdSZWN0U2hhZG93KEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBG
bG9hdFJlYwogICAgIGlmIChsYXllclJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAK
KyAgICBhZGp1c3RCbHVyUmFkaXVzKGdyYXBoaWNzQ29udGV4dCk7CisKICAgICAvLyBkcmF3UmVj
dFNoYWRvd1dpdGhUaWxpbmcgZG9lcyBub3Qgd29yayB3aXRoIHJvdGF0aW9ucy4KICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwNDIKICAgICBpZiAoIWdy
YXBoaWNzQ29udGV4dC0+Z2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25PckZsaXBwZWQo
KSB8fCBtX3R5cGUgIT0gQmx1clNoYWRvdykgewpAQCAtNDU5LDYgKzQ3Myw4IEBAIHZvaWQgU2hh
ZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93KEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0
LCBjb25zdCBGbG9hdFJlCiAgICAgaWYgKGxheWVyUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGFkanVzdEJsdXJSYWRpdXMoZ3JhcGhpY3NDb250ZXh0KTsKKwogICAgIC8v
IGRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcgZG9lcyBub3Qgd29yayB3aXRoIHJvdGF0aW9ucy4K
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwNDIKICAg
ICBpZiAoIWdyYXBoaWNzQ29udGV4dC0+Z2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25P
ckZsaXBwZWQoKSB8fCBtX3R5cGUgIT0gQmx1clNoYWRvdykgewpAQCAtNDc5LDM0ICs0OTUsODEg
QEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBncmFw
aGljc0NvbnRleHQsIGNvbnN0IEZsb2F0UmUKIAogdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNo
YWRvd1dpdGhvdXRUaWxpbmcoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgc2hhZG93ZWRSZWN0LCBjb25zdCBSb3VuZGVkSW50UmVjdDo6UmFkaWkmIHJh
ZGlpLCBjb25zdCBJbnRSZWN0JiBsYXllclJlY3QpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBz
aGFkb3dDb250ZXh0ID0gYmVnaW5TaGFkb3dMYXllcihncmFwaGljc0NvbnRleHQsIGxheWVyUmVj
dCk7Ci0gICAgaWYgKCFzaGFkb3dDb250ZXh0KQorICAgIG1fbGF5ZXJJbWFnZSA9IFNjcmF0Y2hC
dWZmZXI6OnNoYXJlZCgpLmdldFNjcmF0Y2hCdWZmZXIobGF5ZXJSZWN0LnNpemUoKSk7CisgICAg
aWYgKCFtX2xheWVySW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFBhdGggcGF0aDsKLSAg
ICBwYXRoLmFkZFJvdW5kZWRSZWN0KHNoYWRvd2VkUmVjdCwgcmFkaWkudG9wTGVmdCgpLCByYWRp
aS50b3BSaWdodCgpLCByYWRpaS5ib3R0b21MZWZ0KCksIHJhZGlpLmJvdHRvbVJpZ2h0KCkpOwor
ICAgIEZsb2F0UmVjdCBidWZmZXJSZWxhdGl2ZVNoYWRvd2VkUmVjdCA9IHNoYWRvd2VkUmVjdDsK
KyAgICBidWZmZXJSZWxhdGl2ZVNoYWRvd2VkUmVjdC5tb3ZlKG1fbGF5ZXJDb250ZXh0VHJhbnNs
YXRpb24pOworICAgIGlmICghU2NyYXRjaEJ1ZmZlcjo6c2hhcmVkKCkubWF0Y2hlc0xhc3RTaGFk
b3cobV9ibHVyUmFkaXVzLCBDb2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZpY2VSR0IsIGJ1ZmZl
clJlbGF0aXZlU2hhZG93ZWRSZWN0LCByYWRpaSkpIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0
KiBzaGFkb3dDb250ZXh0ID0gbV9sYXllckltYWdlLT5jb250ZXh0KCk7CisgICAgICAgIHNoYWRv
d0NvbnRleHQtPnNhdmUoKTsKKworICAgICAgICAvLyBBZGQgYSBwaXhlbCB0byBhdm9pZCBsYXRl
ciBlZGdlIGFsaWFzaW5nIHdoZW4gcm90YXRlZC4KKyAgICAgICAgc2hhZG93Q29udGV4dC0+Y2xl
YXJSZWN0KEZsb2F0UmVjdCgwLCAwLCBtX2xheWVyU2l6ZS53aWR0aCgpICsgMSwgbV9sYXllclNp
emUuaGVpZ2h0KCkgKyAxKSk7CisgICAgICAgIHNoYWRvd0NvbnRleHQtPnRyYW5zbGF0ZShtX2xh
eWVyQ29udGV4dFRyYW5zbGF0aW9uKTsKKyAgICAgICAgc2hhZG93Q29udGV4dC0+c2V0RmlsbENv
bG9yKENvbG9yOjpibGFjaywgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgICAgIGlmIChyYWRp
aS5pc1plcm8oKSkKKyAgICAgICAgICAgIHNoYWRvd0NvbnRleHQtPmZpbGxSZWN0KHNoYWRvd2Vk
UmVjdCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUGF0aCBwYXRoOworICAgICAgICAg
ICAgcGF0aC5hZGRSb3VuZGVkUmVjdChzaGFkb3dlZFJlY3QsIHJhZGlpLnRvcExlZnQoKSwgcmFk
aWkudG9wUmlnaHQoKSwgcmFkaWkuYm90dG9tTGVmdCgpLCByYWRpaS5ib3R0b21SaWdodCgpKTsK
KyAgICAgICAgICAgIHNoYWRvd0NvbnRleHQtPmZpbGxQYXRoKHBhdGgpOworICAgICAgICB9CisK
KyAgICAgICAgYmx1clNoYWRvd0J1ZmZlcihleHBhbmRlZEludFNpemUobV9sYXllclNpemUpKTsK
IAotICAgIHNoYWRvd0NvbnRleHQtPnNldEZpbGxDb2xvcihDb2xvcjo6YmxhY2ssIENvbG9yU3Bh
Y2VEZXZpY2VSR0IpOwotICAgIHNoYWRvd0NvbnRleHQtPmZpbGxQYXRoKHBhdGgpOworICAgICAg
ICBzaGFkb3dDb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgIAorICAgICAgICBTY3JhdGNoQnVm
ZmVyOjpzaGFyZWQoKS5zZXRMYXN0U2hhZG93VmFsdWVzKG1fYmx1clJhZGl1cywgQ29sb3I6OmJs
YWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBidWZmZXJSZWxhdGl2ZVNoYWRvd2VkUmVjdCwgcmFk
aWkpOworICAgIH0KICAgICAKLSAgICBlbmRTaGFkb3dMYXllcihncmFwaGljc0NvbnRleHQpOwor
ICAgIGRyYXdTaGFkb3dCdWZmZXIoZ3JhcGhpY3NDb250ZXh0KTsKKyAgICBtX2xheWVySW1hZ2Ug
PSAwOworICAgIFNjcmF0Y2hCdWZmZXI6OnNoYXJlZCgpLnNjaGVkdWxlU2NyYXRjaEJ1ZmZlclB1
cmdlKCk7CiB9CiAKIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aG91dFRpbGlu
ZyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBjb25zdCBGbG9hdFJlY3QmIGhvbGVSZWN0LCBjb25zdCBSb3VuZGVkSW50UmVjdDo6UmFkaWkm
IGhvbGVSYWRpaSwgY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0KQogewotICAgIEdyYXBoaWNzQ29u
dGV4dCogc2hhZG93Q29udGV4dCA9IGJlZ2luU2hhZG93TGF5ZXIoZ3JhcGhpY3NDb250ZXh0LCBs
YXllclJlY3QpOwotICAgIGlmICghc2hhZG93Q29udGV4dCkKKyAgICBtX2xheWVySW1hZ2UgPSBT
Y3JhdGNoQnVmZmVyOjpzaGFyZWQoKS5nZXRTY3JhdGNoQnVmZmVyKGxheWVyUmVjdC5zaXplKCkp
OworICAgIGlmICghbV9sYXllckltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBQYXRoIHBh
dGg7Ci0gICAgcGF0aC5hZGRSZWN0KHJlY3QpOwotICAgIHBhdGguYWRkUm91bmRlZFJlY3QoaG9s
ZVJlY3QsIGhvbGVSYWRpaS50b3BMZWZ0KCksIGhvbGVSYWRpaS50b3BSaWdodCgpLCBob2xlUmFk
aWkuYm90dG9tTGVmdCgpLCBob2xlUmFkaWkuYm90dG9tUmlnaHQoKSk7CisgICAgRmxvYXRSZWN0
IGJ1ZmZlclJlbGF0aXZlUmVjdCA9IHJlY3Q7CisgICAgYnVmZmVyUmVsYXRpdmVSZWN0Lm1vdmUo
bV9sYXllckNvbnRleHRUcmFuc2xhdGlvbik7CisKKyAgICBGbG9hdFJlY3QgYnVmZmVyUmVsYXRp
dmVIb2xlUmVjdCA9IGhvbGVSZWN0OworICAgIGJ1ZmZlclJlbGF0aXZlSG9sZVJlY3QubW92ZSht
X2xheWVyQ29udGV4dFRyYW5zbGF0aW9uKTsKKworICAgIGlmICghU2NyYXRjaEJ1ZmZlcjo6c2hh
cmVkKCkubWF0Y2hlc0xhc3RJbnNldFNoYWRvdyhtX2JsdXJSYWRpdXMsIENvbG9yOjpibGFjaywg
Q29sb3JTcGFjZURldmljZVJHQiwgYnVmZmVyUmVsYXRpdmVSZWN0LCBidWZmZXJSZWxhdGl2ZUhv
bGVSZWN0LCBob2xlUmFkaWkpKSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCogc2hhZG93Q29u
dGV4dCA9IG1fbGF5ZXJJbWFnZS0+Y29udGV4dCgpOworICAgICAgICBzaGFkb3dDb250ZXh0LT5z
YXZlKCk7CiAKLSAgICBzaGFkb3dDb250ZXh0LT5zZXRGaWxsUnVsZShSVUxFX0VWRU5PREQpOwot
ICAgIHNoYWRvd0NvbnRleHQtPnNldEZpbGxDb2xvcihDb2xvcjo6YmxhY2ssIENvbG9yU3BhY2VE
ZXZpY2VSR0IpOwotICAgIHNoYWRvd0NvbnRleHQtPmZpbGxQYXRoKHBhdGgpOworICAgICAgICAv
LyBBZGQgYSBwaXhlbCB0byBhdm9pZCBsYXRlciBlZGdlIGFsaWFzaW5nIHdoZW4gcm90YXRlZC4K
KyAgICAgICAgc2hhZG93Q29udGV4dC0+Y2xlYXJSZWN0KEZsb2F0UmVjdCgwLCAwLCBtX2xheWVy
U2l6ZS53aWR0aCgpICsgMSwgbV9sYXllclNpemUuaGVpZ2h0KCkgKyAxKSk7CisgICAgICAgIHNo
YWRvd0NvbnRleHQtPnRyYW5zbGF0ZShtX2xheWVyQ29udGV4dFRyYW5zbGF0aW9uKTsKIAotICAg
IGVuZFNoYWRvd0xheWVyKGdyYXBoaWNzQ29udGV4dCk7CisgICAgICAgIFBhdGggcGF0aDsKKyAg
ICAgICAgcGF0aC5hZGRSZWN0KHJlY3QpOworICAgICAgICBpZiAoaG9sZVJhZGlpLmlzWmVybygp
KQorICAgICAgICAgICAgcGF0aC5hZGRSZWN0KGhvbGVSZWN0KTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChob2xlUmVjdCwgaG9sZVJhZGlpLnRvcExlZnQo
KSwgaG9sZVJhZGlpLnRvcFJpZ2h0KCksIGhvbGVSYWRpaS5ib3R0b21MZWZ0KCksIGhvbGVSYWRp
aS5ib3R0b21SaWdodCgpKTsKKworICAgICAgICBzaGFkb3dDb250ZXh0LT5zZXRGaWxsUnVsZShS
VUxFX0VWRU5PREQpOworICAgICAgICBzaGFkb3dDb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6
OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgc2hhZG93Q29udGV4dC0+Zmls
bFBhdGgocGF0aCk7CisKKyAgICAgICAgYmx1clNoYWRvd0J1ZmZlcihleHBhbmRlZEludFNpemUo
bV9sYXllclNpemUpKTsKKworICAgICAgICBzaGFkb3dDb250ZXh0LT5yZXN0b3JlKCk7CisKKyAg
ICAgICAgU2NyYXRjaEJ1ZmZlcjo6c2hhcmVkKCkuc2V0TGFzdEluc2V0U2hhZG93VmFsdWVzKG1f
Ymx1clJhZGl1cywgQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBidWZmZXJSZWxh
dGl2ZVJlY3QsIGJ1ZmZlclJlbGF0aXZlSG9sZVJlY3QsIGhvbGVSYWRpaSk7CisgICAgfQorICAg
IAorICAgIGRyYXdTaGFkb3dCdWZmZXIoZ3JhcGhpY3NDb250ZXh0KTsKKyAgICBtX2xheWVySW1h
Z2UgPSAwOworICAgIFNjcmF0Y2hCdWZmZXI6OnNoYXJlZCgpLnNjaGVkdWxlU2NyYXRjaEJ1ZmZl
clB1cmdlKCk7CiB9CiAKIC8qCkBAIC01NTAsMjMgKzYxMywzNSBAQCB2b2lkIFNoYWRvd0JsdXI6
OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRl
eHQsIGNvbgogICAgIGNvbnN0IGZsb2F0IHR3aWNlUmFkaXVzID0gcm91bmRlZFJhZGl1cyAqIDI7
CiAKICAgICBtX2xheWVySW1hZ2UgPSBTY3JhdGNoQnVmZmVyOjpzaGFyZWQoKS5nZXRTY3JhdGNo
QnVmZmVyKHRlbXBsYXRlU2l6ZSk7CisgICAgaWYgKCFtX2xheWVySW1hZ2UpCisgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIERyYXcgdGhlIHJlY3RhbmdsZSB3aXRoIGhvbGUuCiAgICAgRmxvYXRS
ZWN0IHRlbXBsYXRlQm91bmRzKDAsIDAsIHRlbXBsYXRlU2l6ZS53aWR0aCgpLCB0ZW1wbGF0ZVNp
emUuaGVpZ2h0KCkpOwogICAgIEZsb2F0UmVjdCB0ZW1wbGF0ZUhvbGUgPSBGbG9hdFJlY3Qocm91
bmRlZFJhZGl1cywgcm91bmRlZFJhZGl1cywgdGVtcGxhdGVTaXplLndpZHRoKCkgLSB0d2ljZVJh
ZGl1cywgdGVtcGxhdGVTaXplLmhlaWdodCgpIC0gdHdpY2VSYWRpdXMpOwotICAgIFBhdGggcGF0
aDsKLSAgICBwYXRoLmFkZFJlY3QodGVtcGxhdGVCb3VuZHMpOwotICAgIHBhdGguYWRkUm91bmRl
ZFJlY3QodGVtcGxhdGVIb2xlLCByYWRpaS50b3BMZWZ0KCksIHJhZGlpLnRvcFJpZ2h0KCksIHJh
ZGlpLmJvdHRvbUxlZnQoKSwgcmFkaWkuYm90dG9tUmlnaHQoKSk7CiAKLSAgICAvLyBEcmF3IHNo
YWRvdyBpbnRvIGEgbmV3IEltYWdlQnVmZmVyLgotICAgIEdyYXBoaWNzQ29udGV4dCogc2hhZG93
Q29udGV4dCA9IG1fbGF5ZXJJbWFnZS0+Y29udGV4dCgpOwotICAgIHNoYWRvd0NvbnRleHQtPnNh
dmUoKTsKLSAgICBzaGFkb3dDb250ZXh0LT5jbGVhclJlY3QodGVtcGxhdGVCb3VuZHMpOwotICAg
IHNoYWRvd0NvbnRleHQtPnNldEZpbGxSdWxlKFJVTEVfRVZFTk9ERCk7Ci0gICAgc2hhZG93Q29u
dGV4dC0+c2V0RmlsbENvbG9yKENvbG9yOjpibGFjaywgQ29sb3JTcGFjZURldmljZVJHQik7Ci0g
ICAgc2hhZG93Q29udGV4dC0+ZmlsbFBhdGgocGF0aCk7Ci0gICAgYmx1ckFuZENvbG9yU2hhZG93
QnVmZmVyKHRlbXBsYXRlU2l6ZSk7Ci0gICAgc2hhZG93Q29udGV4dC0+cmVzdG9yZSgpOworICAg
IGlmICghU2NyYXRjaEJ1ZmZlcjo6c2hhcmVkKCkubWF0Y2hlc0xhc3RJbnNldFNoYWRvdyhtX2Js
dXJSYWRpdXMsIG1fY29sb3IsIG1fY29sb3JTcGFjZSwgdGVtcGxhdGVCb3VuZHMsIHRlbXBsYXRl
SG9sZSwgcmFkaWkpKSB7CisgICAgICAgIC8vIERyYXcgc2hhZG93IGludG8gYSBuZXcgSW1hZ2VC
dWZmZXIuCisgICAgICAgIEdyYXBoaWNzQ29udGV4dCogc2hhZG93Q29udGV4dCA9IG1fbGF5ZXJJ
bWFnZS0+Y29udGV4dCgpOworICAgICAgICBzaGFkb3dDb250ZXh0LT5zYXZlKCk7CisgICAgICAg
IHNoYWRvd0NvbnRleHQtPmNsZWFyUmVjdCh0ZW1wbGF0ZUJvdW5kcyk7CisgICAgICAgIHNoYWRv
d0NvbnRleHQtPnNldEZpbGxSdWxlKFJVTEVfRVZFTk9ERCk7CisgICAgICAgIHNoYWRvd0NvbnRl
eHQtPnNldEZpbGxDb2xvcihDb2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworCisg
ICAgICAgIFBhdGggcGF0aDsKKyAgICAgICAgcGF0aC5hZGRSZWN0KHRlbXBsYXRlQm91bmRzKTsK
KyAgICAgICAgaWYgKHJhZGlpLmlzWmVybygpKQorICAgICAgICAgICAgcGF0aC5hZGRSZWN0KHRl
bXBsYXRlSG9sZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhdGguYWRkUm91bmRlZFJl
Y3QodGVtcGxhdGVIb2xlLCByYWRpaS50b3BMZWZ0KCksIHJhZGlpLnRvcFJpZ2h0KCksIHJhZGlp
LmJvdHRvbUxlZnQoKSwgcmFkaWkuYm90dG9tUmlnaHQoKSk7CisKKyAgICAgICAgc2hhZG93Q29u
dGV4dC0+ZmlsbFBhdGgocGF0aCk7CisKKyAgICAgICAgYmx1ckFuZENvbG9yU2hhZG93QnVmZmVy
KHRlbXBsYXRlU2l6ZSk7CisgICAgICAgIHNoYWRvd0NvbnRleHQtPnJlc3RvcmUoKTsKKyAgICAK
KyAgICAgICAgU2NyYXRjaEJ1ZmZlcjo6c2hhcmVkKCkuc2V0TGFzdEluc2V0U2hhZG93VmFsdWVz
KG1fYmx1clJhZGl1cywgbV9jb2xvciwgbV9jb2xvclNwYWNlLCB0ZW1wbGF0ZUJvdW5kcywgdGVt
cGxhdGVIb2xlLCByYWRpaSk7CisgICAgfQogCiAgICAgRmxvYXRSZWN0IGJvdW5kaW5nUmVjdCA9
IHJlY3Q7CiAgICAgYm91bmRpbmdSZWN0Lm1vdmUobV9vZmZzZXQpOwpAQCAtNTkyLDcgKzY2Nyw2
IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyhHcmFwaGljc0Nv
bnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5yZXN0b3Jl
KCk7CiAKICAgICBtX2xheWVySW1hZ2UgPSAwOwotICAgIC8vIFNjaGVkdWxlIGEgcHVyZ2Ugb2Yg
dGhlIHNjcmF0Y2ggYnVmZmVyLgogICAgIFNjcmF0Y2hCdWZmZXI6OnNoYXJlZCgpLnNjaGVkdWxl
U2NyYXRjaEJ1ZmZlclB1cmdlKCk7CiB9CiAKQEAgLTYwNSwyMCArNjc5LDMxIEBAIHZvaWQgU2hh
ZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhp
Y3NDb250ZXh0LCBjb25zCiAgICAgY29uc3QgZmxvYXQgdHdpY2VSYWRpdXMgPSByb3VuZGVkUmFk
aXVzICogMjsKIAogICAgIG1fbGF5ZXJJbWFnZSA9IFNjcmF0Y2hCdWZmZXI6OnNoYXJlZCgpLmdl
dFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKKyAgICBpZiAoIW1fbGF5ZXJJbWFnZSkKKyAg
ICAgICAgcmV0dXJuOwogCi0gICAgLy8gRHJhdyB0aGUgcmVjdGFuZ2xlLgogICAgIEZsb2F0UmVj
dCB0ZW1wbGF0ZVNoYWRvdyA9IEZsb2F0UmVjdChyb3VuZGVkUmFkaXVzLCByb3VuZGVkUmFkaXVz
LCB0ZW1wbGF0ZVNpemUud2lkdGgoKSAtIHR3aWNlUmFkaXVzLCB0ZW1wbGF0ZVNpemUuaGVpZ2h0
KCkgLSB0d2ljZVJhZGl1cyk7Ci0gICAgUGF0aCBwYXRoOwotICAgIHBhdGguYWRkUm91bmRlZFJl
Y3QodGVtcGxhdGVTaGFkb3csIHJhZGlpLnRvcExlZnQoKSwgcmFkaWkudG9wUmlnaHQoKSwgcmFk
aWkuYm90dG9tTGVmdCgpLCByYWRpaS5ib3R0b21SaWdodCgpKTsKIAotICAgIC8vIERyYXcgc2hh
ZG93IGludG8gdGhlIEltYWdlQnVmZmVyLgotICAgIEdyYXBoaWNzQ29udGV4dCogc2hhZG93Q29u
dGV4dCA9IG1fbGF5ZXJJbWFnZS0+Y29udGV4dCgpOwotICAgIHNoYWRvd0NvbnRleHQtPnNhdmUo
KTsKLSAgICBzaGFkb3dDb250ZXh0LT5jbGVhclJlY3QoRmxvYXRSZWN0KDAsIDAsIHRlbXBsYXRl
U2l6ZS53aWR0aCgpLCB0ZW1wbGF0ZVNpemUuaGVpZ2h0KCkpKTsKLSAgICBzaGFkb3dDb250ZXh0
LT5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBz
aGFkb3dDb250ZXh0LT5maWxsUGF0aChwYXRoKTsKLSAgICBibHVyQW5kQ29sb3JTaGFkb3dCdWZm
ZXIodGVtcGxhdGVTaXplKTsKLSAgICBzaGFkb3dDb250ZXh0LT5yZXN0b3JlKCk7CisgICAgaWYg
KCFTY3JhdGNoQnVmZmVyOjpzaGFyZWQoKS5tYXRjaGVzTGFzdFNoYWRvdyhtX2JsdXJSYWRpdXMs
IG1fY29sb3IsIG1fY29sb3JTcGFjZSwgdGVtcGxhdGVTaGFkb3csIHJhZGlpKSkgeworICAgICAg
ICAvLyBEcmF3IHNoYWRvdyBpbnRvIHRoZSBJbWFnZUJ1ZmZlci4KKyAgICAgICAgR3JhcGhpY3ND
b250ZXh0KiBzaGFkb3dDb250ZXh0ID0gbV9sYXllckltYWdlLT5jb250ZXh0KCk7CisgICAgICAg
IHNoYWRvd0NvbnRleHQtPnNhdmUoKTsKKyAgICAgICAgc2hhZG93Q29udGV4dC0+Y2xlYXJSZWN0
KEZsb2F0UmVjdCgwLCAwLCB0ZW1wbGF0ZVNpemUud2lkdGgoKSwgdGVtcGxhdGVTaXplLmhlaWdo
dCgpKSk7CisgICAgICAgIHNoYWRvd0NvbnRleHQtPnNldEZpbGxDb2xvcihDb2xvcjo6YmxhY2ss
IENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgICAgICAKKyAgICAgICAgaWYgKHJhZGlpLmlzWmVy
bygpKQorICAgICAgICAgICAgc2hhZG93Q29udGV4dC0+ZmlsbFJlY3QodGVtcGxhdGVTaGFkb3cp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFBhdGggcGF0aDsKKyAgICAgICAgICAgIHBh
dGguYWRkUm91bmRlZFJlY3QodGVtcGxhdGVTaGFkb3csIHJhZGlpLnRvcExlZnQoKSwgcmFkaWku
dG9wUmlnaHQoKSwgcmFkaWkuYm90dG9tTGVmdCgpLCByYWRpaS5ib3R0b21SaWdodCgpKTsKKyAg
ICAgICAgICAgIHNoYWRvd0NvbnRleHQtPmZpbGxQYXRoKHBhdGgpOworICAgICAgICB9CisKKyAg
ICAgICAgYmx1ckFuZENvbG9yU2hhZG93QnVmZmVyKHRlbXBsYXRlU2l6ZSk7CisgICAgICAgIHNo
YWRvd0NvbnRleHQtPnJlc3RvcmUoKTsKKworICAgICAgICBTY3JhdGNoQnVmZmVyOjpzaGFyZWQo
KS5zZXRMYXN0U2hhZG93VmFsdWVzKG1fYmx1clJhZGl1cywgbV9jb2xvciwgbV9jb2xvclNwYWNl
LCB0ZW1wbGF0ZVNoYWRvdywgcmFkaWkpOworICAgIH0KIAogICAgIEZsb2F0UmVjdCBzaGFkb3dC
b3VuZHMgPSBzaGFkb3dlZFJlY3Q7CiAgICAgc2hhZG93Qm91bmRzLm1vdmUobV9vZmZzZXQud2lk
dGgoKSwgbV9vZmZzZXQuaGVpZ2h0KCkpOwpAQCAtNjI5LDcgKzcxNCw2IEBAIHZvaWQgU2hhZG93
Qmx1cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3ND
b250ZXh0LCBjb25zCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5yZXN0b3JlKCk7CiAKICAgICBtX2xh
eWVySW1hZ2UgPSAwOwotICAgIC8vIFNjaGVkdWxlIGEgcHVyZ2Ugb2YgdGhlIHNjcmF0Y2ggYnVm
ZmVyLgogICAgIFNjcmF0Y2hCdWZmZXI6OnNoYXJlZCgpLnNjaGVkdWxlU2NyYXRjaEJ1ZmZlclB1
cmdlKCk7CiB9CiAKQEAgLTcwNywxNCArNzkxLDIwIEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0xh
eWVyUGllY2VzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBGbG9hdFJl
CiB9CiAKIAordm9pZCBTaGFkb3dCbHVyOjpibHVyU2hhZG93QnVmZmVyKGNvbnN0IEludFNpemUm
IHRlbXBsYXRlU2l6ZSkKK3sKKyAgICBpZiAobV90eXBlICE9IEJsdXJTaGFkb3cpCisgICAgICAg
IHJldHVybjsKKworICAgIEludFJlY3QgYmx1clJlY3QoSW50UG9pbnQoKSwgdGVtcGxhdGVTaXpl
KTsKKyAgICBSZWZQdHI8Qnl0ZUFycmF5PiBsYXllckRhdGEgPSBtX2xheWVySW1hZ2UtPmdldFVu
bXVsdGlwbGllZEltYWdlRGF0YShibHVyUmVjdCk7CisgICAgYmx1ckxheWVySW1hZ2UobGF5ZXJE
YXRhLT5kYXRhKCksIGJsdXJSZWN0LnNpemUoKSwgYmx1clJlY3Qud2lkdGgoKSAqIDQpOworICAg
IG1fbGF5ZXJJbWFnZS0+cHV0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhKGxheWVyRGF0YS5nZXQoKSwg
Ymx1clJlY3Quc2l6ZSgpLCBibHVyUmVjdCwgSW50UG9pbnQoKSk7Cit9CisKIHZvaWQgU2hhZG93
Qmx1cjo6Ymx1ckFuZENvbG9yU2hhZG93QnVmZmVyKGNvbnN0IEludFNpemUmIHRlbXBsYXRlU2l6
ZSkKIHsKLSAgICB7Ci0gICAgICAgIEludFJlY3QgYmx1clJlY3QoSW50UG9pbnQoKSwgdGVtcGxh
dGVTaXplKTsKLSAgICAgICAgUmVmUHRyPEJ5dGVBcnJheT4gbGF5ZXJEYXRhID0gbV9sYXllcklt
YWdlLT5nZXRVbm11bHRpcGxpZWRJbWFnZURhdGEoYmx1clJlY3QpOwotICAgICAgICBibHVyTGF5
ZXJJbWFnZShsYXllckRhdGEtPmRhdGEoKSwgYmx1clJlY3Quc2l6ZSgpLCBibHVyUmVjdC53aWR0
aCgpICogNCk7Ci0gICAgICAgIG1fbGF5ZXJJbWFnZS0+cHV0VW5tdWx0aXBsaWVkSW1hZ2VEYXRh
KGxheWVyRGF0YS5nZXQoKSwgYmx1clJlY3Quc2l6ZSgpLCBibHVyUmVjdCwgSW50UG9pbnQoKSk7
Ci0gICAgfQorICAgIGJsdXJTaGFkb3dCdWZmZXIodGVtcGxhdGVTaXplKTsKIAogICAgIC8vIE1h
c2sgdGhlIGltYWdlIHdpdGggdGhlIHNoYWRvdyBjb2xvci4KICAgICBHcmFwaGljc0NvbnRleHQq
IHNoYWRvd0NvbnRleHQgPSBtX2xheWVySW1hZ2UtPmNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuaAppbmRleCBlNTJkNmRjZmNjN2NmODQ1
YTIwYjQ0YjYzYTI2NzIwMjI5MTI0ZTFhLi40YmE4ZTIzOWNiMTliNjMwMGMyYjVjYTI0YWJlYWUy
MDNmMzU3MDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
aGFkb3dCbHVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93
Qmx1ci5oCkBAIC01Myw4ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdJbnNldFNoYWRv
dyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmIGhv
bGVSZWN0LCBjb25zdCBSb3VuZGVkSW50UmVjdDo6UmFkaWkmIGhvbGVSYWRpaSk7CiAKIHByaXZh
dGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBiZWdpblNoYWRvd0xheWVyKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEludFJlY3QmIGxheWVyUmVjdCk7Ci0gICAgdm9pZCBlbmRTaGFkb3dMYXllcihH
cmFwaGljc0NvbnRleHQqKTsKKyAgICB2b2lkIGRyYXdTaGFkb3dCdWZmZXIoR3JhcGhpY3NDb250
ZXh0Kik7CiAKICAgICB2b2lkIGFkanVzdEJsdXJSYWRpdXMoR3JhcGhpY3NDb250ZXh0Kik7CiAg
ICAgdm9pZCBibHVyTGF5ZXJJbWFnZSh1bnNpZ25lZCBjaGFyKiwgY29uc3QgSW50U2l6ZSYsIGlu
dCBzdHJpZGUpOwpAQCAtNzUsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgZHJh
d0xheWVyUGllY2VzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc2hhZG93Qm91
bmRzLCBjb25zdCBSb3VuZGVkSW50UmVjdDo6UmFkaWkmLCBmbG9hdCByb3VuZGVkUmFkaXVzLCBj
b25zdCBJbnRTaXplJiB0ZW1wbGF0ZVNpemUsIFNoYWRvd0RpcmVjdGlvbik7CiAgICAgCisgICAg
dm9pZCBibHVyU2hhZG93QnVmZmVyKGNvbnN0IEludFNpemUmIHRlbXBsYXRlU2l6ZSk7CiAgICAg
dm9pZCBibHVyQW5kQ29sb3JTaGFkb3dCdWZmZXIoY29uc3QgSW50U2l6ZSYgdGVtcGxhdGVTaXpl
KTsKICAgICAKICAgICBlbnVtIFNoYWRvd1R5cGUgewo=
</data>
<flag name="review"
          id="81472"
          type_id="1"
          status="+"
          setter="ariya.hidayat"
    />
          </attachment>
      

    </bug>

</bugzilla>