<?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>127209</bug_id>
          
          <creation_ts>2014-01-17 18:23:46 -0800</creation_ts>
          <short_desc>Make ElementData JIT friendly</short_desc>
          <delta_ts>2014-01-18 14:13:03 -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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969354</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-17 18:23:46 -0800</bug_when>
    <thetext>Make ElementData JIT friendly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969355</commentid>
    <comment_count>1</comment_count>
      <attachid>221521</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-17 18:27:04 -0800</bug_when>
    <thetext>Created attachment 221521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969371</commentid>
    <comment_count>2</comment_count>
      <attachid>221521</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-17 20:39:44 -0800</bug_when>
    <thetext>Comment on attachment 221521
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969522</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-18 14:13:03 -0800</bug_when>
    <thetext>Committed r162274: &lt;http://trac.webkit.org/changeset/162274&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221521</attachid>
            <date>2014-01-17 18:27:04 -0800</date>
            <delta_ts>2014-01-17 20:39:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127209-20140117182702.patch</filename>
            <type>text/plain</type>
            <size>19083</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjIzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE0LTAxLTE3ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIEVsZW1lbnRE
YXRhIEpJVCBmcmllbmRseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3MjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIG9mZnNldHMgb2YgRWxlbWVudERhdGEncyBmbGFncyB3ZXJlIG5vdCBhY2Nl
c3NpYmxlIGJ5IHRoZSBKSVQuIFRoaXMgcGF0Y2gKKyAgICAgICAgcmVmYWN0b3IgRWxlbWVudERh
dGEgdG8gdXNlIGV4cGxpY2l0IGZsYWdzIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBmcm9tCisg
ICAgICAgIHRoZSBjb2RlIGdlbmVyYXRvcnMuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c3luY2hyb25pemVBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9FbGVtZW50RGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6ZGVzdHJveSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50RGF0YTo6RWxlbWVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVhYmxlRWxlbWVudERhdGE6OlNoYXJlYWJsZUVsZW1lbnREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYXJlYWJsZUVsZW1lbnREYXRhOjp+U2hhcmVhYmxlRWxlbWVudERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudERhdGE6OmFycmF5U2l6ZUFuZEZsYWdzRnJvbU90aGVyKToKKyAg
ICAgICAgKiBkb20vRWxlbWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRh
OjpoYXNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRhOjppc1VuaXF1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6dXBkYXRlRmxhZyk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50RGF0YTo6YXJyYXlTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRE
YXRhOjpzZXRIYXNOYW1lQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRh
OjpzdHlsZUF0dHJpYnV0ZUlzRGlydHkpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudERhdGE6
OnNldFN0eWxlQXR0cmlidXRlSXNEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0
YTo6cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5KToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnREYXRhOjpzZXRQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudERhdGE6OmFuaW1hdGVkU1ZHQXR0cmlidXRlc0FyZURpcnR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRhOjpzZXRBbmltYXRlZFNWR0F0dHJpYnV0
ZXNBcmVEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6bGVuZ3RoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRhOjphdHRyaWJ1dGVCYXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnREYXRhOjpwcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSk6CisgICAgICAg
ICogZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVu
dDo6c3luY2hyb25pemVTdHlsZUF0dHJpYnV0ZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlZEVsZW1lbnQ6OmlubGluZVN0eWxlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZWRFbGVtZW50OjpyZWJ1aWxkUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUpOgorICAgICAgICAq
IGRvbS9TdHlsZWRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50Ojpp
bnZhbGlkYXRlU3R5bGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVu
dDo6cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQW5pbWF0ZWRT
VkdBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdFbGVtZW50OjppbnZhbGlkYXRlU1ZHQXR0cmlidXRlcyk6CisKIDIwMTQtMDEtMTcg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBj
YWxsT25NYWluVGhyZWFkQW5kV2FpdCB2YXJpYW50IGluIFNvY2tldFN0cmVhbUhhbmRsZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gMTYyMjMyKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogICogICAg
ICAgICAgIChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiAgICAgICAgICAg
KEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDIwMDcgRGF2aWQgU21pdGggKGNhdGZpc2gubWFuQGdtYWlsLmNvbSkKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDcg
RXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zODgsMTIgKzM4
OCwxMiBAQCB2b2lkIEVsZW1lbnQ6OnN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpCiB7CiAgICAg
aWYgKCFlbGVtZW50RGF0YSgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKGVsZW1lbnREYXRh
KCktPm1fc3R5bGVBdHRyaWJ1dGVJc0RpcnR5KSB7CisgICAgaWYgKGVsZW1lbnREYXRhKCktPnN0
eWxlQXR0cmlidXRlSXNEaXJ0eSgpKSB7CiAgICAgICAgIEFTU0VSVChpc1N0eWxlZEVsZW1lbnQo
KSk7CiAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IFN0eWxlZEVsZW1lbnQqPih0aGlzKS0+c3lu
Y2hyb25pemVTdHlsZUF0dHJpYnV0ZUludGVybmFsKCk7CiAgICAgfQogI2lmIEVOQUJMRShTVkcp
Ci0gICAgaWYgKGVsZW1lbnREYXRhKCktPm1fYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkp
IHsKKyAgICBpZiAoZWxlbWVudERhdGEoKS0+YW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHko
KSkgewogICAgICAgICBBU1NFUlQoaXNTVkdFbGVtZW50KCkpOwogICAgICAgICB0b1NWR0VsZW1l
bnQodGhpcyktPnN5bmNocm9uaXplQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoYW55UU5hbWUoKSk7CiAg
ICAgfQpAQCAtNDA0LDEzICs0MDQsMTMgQEAgaW5saW5lIHZvaWQgRWxlbWVudDo6c3luY2hyb25p
emVBdHRyaWJ1dAogewogICAgIGlmICghZWxlbWVudERhdGEoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChVTkxJS0VMWShuYW1lID09IHN0eWxlQXR0ciAmJiBlbGVtZW50RGF0YSgpLT5tX3N0
eWxlQXR0cmlidXRlSXNEaXJ0eSkpIHsKKyAgICBpZiAoVU5MSUtFTFkobmFtZSA9PSBzdHlsZUF0
dHIgJiYgZWxlbWVudERhdGEoKS0+c3R5bGVBdHRyaWJ1dGVJc0RpcnR5KCkpKSB7CiAgICAgICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzU3R5bGVkRWxlbWVudCgpKTsKICAg
ICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgU3R5bGVkRWxlbWVudCo+KHRoaXMpLT5zeW5jaHJvbml6
ZVN0eWxlQXR0cmlidXRlSW50ZXJuYWwoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNpZiBF
TkFCTEUoU1ZHKQotICAgIGlmIChVTkxJS0VMWShlbGVtZW50RGF0YSgpLT5tX2FuaW1hdGVkU1ZH
QXR0cmlidXRlc0FyZURpcnR5KSkgeworICAgIGlmIChVTkxJS0VMWShlbGVtZW50RGF0YSgpLT5h
bmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSgpKSkgewogICAgICAgICBBU1NFUlQoaXNTVkdF
bGVtZW50KCkpOwogICAgICAgICB0b1NWR0VsZW1lbnQodGhpcyktPnN5bmNocm9uaXplQW5pbWF0
ZWRTVkdBdHRyaWJ1dGUobmFtZSk7CiAgICAgfQpAQCAtNDIzLDEzICs0MjMsMTMgQEAgaW5saW5l
IHZvaWQgRWxlbWVudDo6c3luY2hyb25pemVBdHRyaWJ1dAogICAgIC8vIGUuZyB3aGVuIGNhbGxl
ZCBmcm9tIERPTSBBUEkuCiAgICAgaWYgKCFlbGVtZW50RGF0YSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgaWYgKGVsZW1lbnREYXRhKCktPm1fc3R5bGVBdHRyaWJ1dGVJc0RpcnR5ICYmIGVxdWFs
UG9zc2libHlJZ25vcmluZ0Nhc2UobG9jYWxOYW1lLCBzdHlsZUF0dHIubG9jYWxOYW1lKCksIHNo
b3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UoKnRoaXMpKSkgeworICAgIGlmIChlbGVtZW50RGF0YSgp
LT5zdHlsZUF0dHJpYnV0ZUlzRGlydHkoKSAmJiBlcXVhbFBvc3NpYmx5SWdub3JpbmdDYXNlKGxv
Y2FsTmFtZSwgc3R5bGVBdHRyLmxvY2FsTmFtZSgpLCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNl
KCp0aGlzKSkpIHsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNT
dHlsZWRFbGVtZW50KCkpOwogICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBTdHlsZWRFbGVtZW50
Kj4odGhpcyktPnN5bmNocm9uaXplU3R5bGVBdHRyaWJ1dGVJbnRlcm5hbCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogI2lmIEVOQUJMRShTVkcpCi0gICAgaWYgKGVsZW1lbnREYXRhKCktPm1f
YW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkpIHsKKyAgICBpZiAoZWxlbWVudERhdGEoKS0+
YW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkoKSkgewogICAgICAgICAvLyBXZSdyZSBub3Qg
cGFzc2luZyBhIG5hbWVzcGFjZSBhcmd1bWVudCBvbiBwdXJwb3NlLiBTVkdOYW1lczo6KkF0dHIg
YXJlIGRlZmluZWQgdy9vIG5hbWVzcGFjZXMgYXMgd2VsbC4KICAgICAgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oaXNTVkdFbGVtZW50KCkpOwogICAgICAgICB0b1NWR0VsZW1l
bnQodGhpcyktPnN5bmNocm9uaXplQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoUXVhbGlmaWVkTmFtZShu
dWxsQXRvbSwgbG9jYWxOYW1lLCBudWxsQXRvbSkpOwpAQCAtMTEwOSw3ICsxMTA5LDcgQEAgdm9p
ZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YQogICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBjbGFzc0F0dHIpCiAgICAgICAgIGNsYXNzQXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSk7
CiAgICAgZWxzZSBpZiAobmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyKQotICAgICAgICBlbGVt
ZW50RGF0YSgpLT5tX2hhc05hbWVBdHRyaWJ1dGUgPSAhbmV3VmFsdWUuaXNOdWxsKCk7CisgICAg
ICAgIGVsZW1lbnREYXRhKCktPnNldEhhc05hbWVBdHRyaWJ1dGUoIW5ld1ZhbHVlLmlzTnVsbCgp
KTsKICAgICBlbHNlIGlmIChuYW1lID09IEhUTUxOYW1lczo6cHNldWRvQXR0cikKICAgICAgICAg
c2hvdWxkSW52YWxpZGF0ZVN0eWxlIHw9IHRlc3RTaG91bGRJbnZhbGlkYXRlU3R5bGUgJiYgaXNJ
blNoYWRvd1RyZWUoKTsKIApAQCAtMTg3Myw3ICsxODczLDcgQEAgdm9pZCBFbGVtZW50OjpyZW1v
dmVBdHRyaWJ1dGUoY29uc3QgQXRvbQogICAgIEF0b21pY1N0cmluZyBsb2NhbE5hbWUgPSBzaG91
bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKCp0aGlzKSA/IG5hbWUubG93ZXIoKSA6IG5hbWU7CiAgICAg
dW5zaWduZWQgaW5kZXggPSBlbGVtZW50RGF0YSgpLT5maW5kQXR0cmlidXRlSW5kZXhCeU5hbWUo
bG9jYWxOYW1lLCBmYWxzZSk7CiAgICAgaWYgKGluZGV4ID09IEVsZW1lbnREYXRhOjphdHRyaWJ1
dGVOb3RGb3VuZCkgewotICAgICAgICBpZiAoVU5MSUtFTFkobG9jYWxOYW1lID09IHN0eWxlQXR0
cikgJiYgZWxlbWVudERhdGEoKS0+bV9zdHlsZUF0dHJpYnV0ZUlzRGlydHkgJiYgaXNTdHlsZWRF
bGVtZW50KCkpCisgICAgICAgIGlmIChVTkxJS0VMWShsb2NhbE5hbWUgPT0gc3R5bGVBdHRyKSAm
JiBlbGVtZW50RGF0YSgpLT5zdHlsZUF0dHJpYnV0ZUlzRGlydHkoKSAmJiBpc1N0eWxlZEVsZW1l
bnQoKSkKICAgICAgICAgICAgIHRvU3R5bGVkRWxlbWVudCh0aGlzKS0+cmVtb3ZlQWxsSW5saW5l
U3R5bGVQcm9wZXJ0aWVzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50RGF0YS5jcHAJKHJldmlzaW9uIDE2MjIzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDMzICszMywxOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRWxlbWVudERhdGE6OmRlc3Ryb3koKQogewotICAgIGlm
IChtX2lzVW5pcXVlKQorICAgIGlmIChpc1VuaXF1ZSgpKQogICAgICAgICBkZWxldGUgc3RhdGlj
X2Nhc3Q8VW5pcXVlRWxlbWVudERhdGEqPih0aGlzKTsKICAgICBlbHNlCiAgICAgICAgIGRlbGV0
ZSBzdGF0aWNfY2FzdDxTaGFyZWFibGVFbGVtZW50RGF0YSo+KHRoaXMpOwogfQogCiBFbGVtZW50
RGF0YTo6RWxlbWVudERhdGEoKQotICAgIDogbV9pc1VuaXF1ZSh0cnVlKQotICAgICwgbV9hcnJh
eVNpemUoMCkKLSAgICAsIG1faGFzTmFtZUF0dHJpYnV0ZShmYWxzZSkKLSAgICAsIG1fcHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5KGZhbHNlKQotICAgICwgbV9zdHlsZUF0dHJpYnV0
ZUlzRGlydHkoZmFsc2UpCi0jaWYgRU5BQkxFKFNWRykKLSAgICAsIG1fYW5pbWF0ZWRTVkdBdHRy
aWJ1dGVzQXJlRGlydHkoZmFsc2UpCi0jZW5kaWYKKyAgICA6IG1fYXJyYXlTaXplQW5kRmxhZ3Mo
c19mbGFnSXNVbmlxdWUpCiB7CiB9CiAKIEVsZW1lbnREYXRhOjpFbGVtZW50RGF0YSh1bnNpZ25l
ZCBhcnJheVNpemUpCi0gICAgOiBtX2lzVW5pcXVlKGZhbHNlKQotICAgICwgbV9hcnJheVNpemUo
YXJyYXlTaXplKQotICAgICwgbV9oYXNOYW1lQXR0cmlidXRlKGZhbHNlKQotICAgICwgbV9wcmVz
ZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHkoZmFsc2UpCi0gICAgLCBtX3N0eWxlQXR0cmli
dXRlSXNEaXJ0eShmYWxzZSkKLSNpZiBFTkFCTEUoU1ZHKQotICAgICwgbV9hbmltYXRlZFNWR0F0
dHJpYnV0ZXNBcmVEaXJ0eShmYWxzZSkKLSNlbmRpZgorICAgIDogbV9hcnJheVNpemVBbmRGbGFn
cyhhcnJheVNpemUgPDwgc19mbGFnQ291bnQpCiB7CiB9CiAKQEAgLTg5LDEzICs3NSwxNSBAQCBQ
YXNzUmVmPFVuaXF1ZUVsZW1lbnREYXRhPiBVbmlxdWVFbGVtZW50CiBTaGFyZWFibGVFbGVtZW50
RGF0YTo6U2hhcmVhYmxlRWxlbWVudERhdGEoY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJp
YnV0ZXMpCiAgICAgOiBFbGVtZW50RGF0YShhdHRyaWJ1dGVzLnNpemUoKSkKIHsKLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hcnJheVNpemU7ICsraSkKKyAgICB1bnNpZ25lZCBhdHRy
aWJ1dGVBcnJheVNpemUgPSBhcnJheVNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYXR0cmlidXRlQXJyYXlTaXplOyArK2kpCiAgICAgICAgIG5ldyAoTm90TnVsbCwgJm1fYXR0
cmlidXRlQXJyYXlbaV0pIEF0dHJpYnV0ZShhdHRyaWJ1dGVzW2ldKTsKIH0KIAogU2hhcmVhYmxl
RWxlbWVudERhdGE6On5TaGFyZWFibGVFbGVtZW50RGF0YSgpCiB7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fYXJyYXlTaXplOyArK2kpCisgICAgdW5zaWduZWQgYXR0cmlidXRlQXJy
YXlTaXplID0gYXJyYXlTaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF0dHJp
YnV0ZUFycmF5U2l6ZTsgKytpKQogICAgICAgICBtX2F0dHJpYnV0ZUFycmF5W2ldLn5BdHRyaWJ1
dGUoKTsKIH0KIApAQCAtMTA5LDE5ICs5NywyMyBAQCBTaGFyZWFibGVFbGVtZW50RGF0YTo6U2hh
cmVhYmxlRWxlbWVudERhCiAgICAgICAgIG1faW5saW5lU3R5bGUgPSBvdGhlci5tX2lubGluZVN0
eWxlLT5pbW11dGFibGVDb3B5SWZOZWVkZWQoKTsKICAgICB9CiAKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9hcnJheVNpemU7ICsraSkKKyAgICB1bnNpZ25lZCBhdHRyaWJ1dGVBcnJh
eVNpemUgPSBhcnJheVNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXR0cmli
dXRlQXJyYXlTaXplOyArK2kpCiAgICAgICAgIG5ldyAoTm90TnVsbCwgJm1fYXR0cmlidXRlQXJy
YXlbaV0pIEF0dHJpYnV0ZShvdGhlci5tX2F0dHJpYnV0ZVZlY3Rvci5hdChpKSk7CiB9CiAKK2lu
bGluZSB1aW50MzJfdCBFbGVtZW50RGF0YTo6YXJyYXlTaXplQW5kRmxhZ3NGcm9tT3RoZXIoY29u
c3QgRWxlbWVudERhdGEmIG90aGVyLCBib29sIGlzVW5pcXVlKQoreworICAgIGlmIChpc1VuaXF1
ZSkgeworICAgICAgICAvLyBTZXQgaXNVbmlxdWUgYW5kIGlnbm9yZSBhcnJheVNpemUuCisgICAg
ICAgIHJldHVybiAob3RoZXIubV9hcnJheVNpemVBbmRGbGFncyB8IHNfZmxhZ0lzVW5pcXVlKSAm
IHNfZmxhZ3NNYXNrOworICAgIH0KKyAgICAvLyBDbGVhciBpc1VuaXF1ZSBhbmQgc2V0IGFycmF5
U2l6ZS4KKyAgICByZXR1cm4gKG90aGVyLm1fYXJyYXlTaXplQW5kRmxhZ3MgJiAoc19mbGFnc01h
c2sgJiB+c19mbGFnSXNVbmlxdWUpKSB8IG90aGVyLmxlbmd0aCgpIDw8IHNfZmxhZ0NvdW50Owor
fQorCiBFbGVtZW50RGF0YTo6RWxlbWVudERhdGEoY29uc3QgRWxlbWVudERhdGEmIG90aGVyLCBi
b29sIGlzVW5pcXVlKQotICAgIDogbV9pc1VuaXF1ZShpc1VuaXF1ZSkKLSAgICAsIG1fYXJyYXlT
aXplKGlzVW5pcXVlID8gMCA6IG90aGVyLmxlbmd0aCgpKQotICAgICwgbV9oYXNOYW1lQXR0cmli
dXRlKG90aGVyLm1faGFzTmFtZUF0dHJpYnV0ZSkKLSAgICAsIG1fcHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGVJc0RpcnR5KG90aGVyLm1fcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5
KQotICAgICwgbV9zdHlsZUF0dHJpYnV0ZUlzRGlydHkob3RoZXIubV9zdHlsZUF0dHJpYnV0ZUlz
RGlydHkpCi0jaWYgRU5BQkxFKFNWRykKLSAgICAsIG1fYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJl
RGlydHkob3RoZXIubV9hbmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSkKLSNlbmRpZgorICAg
IDogbV9hcnJheVNpemVBbmRGbGFncyhFbGVtZW50RGF0YTo6YXJyYXlTaXplQW5kRmxhZ3NGcm9t
T3RoZXIob3RoZXIsIGlzVW5pcXVlKSkKICAgICAsIG1fY2xhc3NOYW1lcyhvdGhlci5tX2NsYXNz
TmFtZXMpCiAgICAgLCBtX2lkRm9yU3R5bGVSZXNvbHV0aW9uKG90aGVyLm1faWRGb3JTdHlsZVJl
c29sdXRpb24pCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAkocmV2aXNpb24gMTYy
MjMyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnREYXRhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTY5LDI1ICs2OSw1MiBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0lEKCkgY29uc3QgeyByZXR1
cm4gIW1faWRGb3JTdHlsZVJlc29sdXRpb24uaXNOdWxsKCk7IH0KICAgICBib29sIGhhc0NsYXNz
KCkgY29uc3QgeyByZXR1cm4gIW1fY2xhc3NOYW1lcy5pc0VtcHR5KCk7IH0KLSAgICBib29sIGhh
c05hbWUoKSBjb25zdCB7IHJldHVybiBtX2hhc05hbWVBdHRyaWJ1dGU7IH0KKyAgICBib29sIGhh
c05hbWUoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19mbGFnSGFzTmFt
ZUF0dHJpYnV0ZTsgfQogCiAgICAgYm9vbCBpc0VxdWl2YWxlbnQoY29uc3QgRWxlbWVudERhdGEq
IG90aGVyKSBjb25zdDsKIAotICAgIGJvb2wgaXNVbmlxdWUoKSBjb25zdCB7IHJldHVybiBtX2lz
VW5pcXVlOyB9CisgICAgYm9vbCBpc1VuaXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlTaXpl
QW5kRmxhZ3MgJiBzX2ZsYWdJc1VuaXF1ZTsgfQorCitwcml2YXRlOgorICAgIG11dGFibGUgdWlu
dDMyX3QgbV9hcnJheVNpemVBbmRGbGFnczsKKworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBz
X2FycmF5U2l6ZSA9IDI3OworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdDb3VudCA9
IDU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfZmxhZ0lzVW5pcXVlID0gMTsKKyAgICBz
dGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnSGFzTmFtZUF0dHJpYnV0ZSA9IDEgPDwgMTsKKyAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJ
c0RpcnR5ID0gMSA8PCAyOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdTdHlsZUF0
dHJpYnV0ZUlzRGlydHkgPSAxIDw8IDM7CisjaWYgRU5BQkxFKFNWRykKKyAgICBzdGF0aWMgY29u
c3QgdWludDMyX3Qgc19mbGFnQW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkgPSAxIDw8IDQ7
CisjZW5kaWYKKyAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnc01hc2sgPSAoMSA8PCBz
X2ZsYWdDb3VudCkgLSAxOworCisgICAgaW5saW5lIHZvaWQgdXBkYXRlRmxhZyh1aW50MzJfdCBm
bGFnLCBib29sIHNldCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChzZXQpCisgICAgICAgICAg
ICBtX2FycmF5U2l6ZUFuZEZsYWdzIHw9IGZsYWc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG1fYXJyYXlTaXplQW5kRmxhZ3MgJj0gfmZsYWc7CisgICAgfQorICAgIHN0YXRpYyBpbmxpbmUg
dWludDMyX3QgYXJyYXlTaXplQW5kRmxhZ3NGcm9tT3RoZXIoY29uc3QgRWxlbWVudERhdGEmIG90
aGVyLCBib29sIGlzVW5pcXVlKTsKIAogcHJvdGVjdGVkOgogICAgIEVsZW1lbnREYXRhKCk7CiAg
ICAgZXhwbGljaXQgRWxlbWVudERhdGEodW5zaWduZWQgYXJyYXlTaXplKTsKICAgICBFbGVtZW50
RGF0YShjb25zdCBFbGVtZW50RGF0YSYsIGJvb2wgaXNVbmlxdWUpOwogCi0gICAgdW5zaWduZWQg
bV9pc1VuaXF1ZSA6IDE7Ci0gICAgdW5zaWduZWQgbV9hcnJheVNpemUgOiAyNzsKLSAgICBtdXRh
YmxlIHVuc2lnbmVkIG1faGFzTmFtZUF0dHJpYnV0ZSA6IDE7Ci0gICAgbXV0YWJsZSB1bnNpZ25l
ZCBtX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eSA6IDE7Ci0gICAgbXV0YWJsZSB1
bnNpZ25lZCBtX3N0eWxlQXR0cmlidXRlSXNEaXJ0eSA6IDE7Ci0jaWYgRU5BQkxFKFNWRykKLSAg
ICBtdXRhYmxlIHVuc2lnbmVkIG1fYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkgOiAxOwot
I2VuZGlmCisgICAgdW5zaWduZWQgYXJyYXlTaXplKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVNp
emVBbmRGbGFncyA+PiBzX2ZsYWdDb3VudDsgfQorCisgICAgdm9pZCBzZXRIYXNOYW1lQXR0cmli
dXRlKGJvb2wgaGFzTmFtZSkgY29uc3QgeyB1cGRhdGVGbGFnKHNfZmxhZ0hhc05hbWVBdHRyaWJ1
dGUsIGhhc05hbWUpOyB9CisKKyAgICBib29sIHN0eWxlQXR0cmlidXRlSXNEaXJ0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXJyYXlTaXplQW5kRmxhZ3MgJiBzX2ZsYWdTdHlsZUF0dHJpYnV0ZUlzRGly
dHk7IH0KKyAgICB2b2lkIHNldFN0eWxlQXR0cmlidXRlSXNEaXJ0eShib29sIGlzRGlydHkpIGNv
bnN0IHsgdXBkYXRlRmxhZyhzX2ZsYWdTdHlsZUF0dHJpYnV0ZUlzRGlydHksIGlzRGlydHkpOyB9
CisKKyAgICBib29sIHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fYXJyYXlTaXplQW5kRmxhZ3MgJiBzX2ZsYWdQcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZUlzRGlydHk7IH0KKyAgICB2b2lkIHNldFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNE
aXJ0eShib29sIGlzRGlydHkpIGNvbnN0IHsgdXBkYXRlRmxhZyhzX2ZsYWdQcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZUlzRGlydHksIGlzRGlydHkpOyB9CisKKyAgICBib29sIGFuaW1hdGVkU1ZH
QXR0cmlidXRlc0FyZURpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVNpemVBbmRGbGFncyAm
IHNfZmxhZ0FuaW1hdGVkU1ZHQXR0cmlidXRlc0FyZURpcnR5OyB9CisgICAgdm9pZCBzZXRBbmlt
YXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eShib29sIGRpcnR5KSBjb25zdCB7IHVwZGF0ZUZsYWco
c19mbGFnQW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHksIGRpcnR5KTsgfQogCiAgICAgbXV0
YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBtX2lubGluZVN0eWxlOwogICAgIG11dGFibGUg
U3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXM7CkBAIC0xNjIsMTkgKzE4OSwxOSBAQCBpbmxp
bmUgdW5zaWduZWQgRWxlbWVudERhdGE6Omxlbmd0aCgpIGNvCiB7CiAgICAgaWYgKGlzVW5pcXVl
KCkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBVbmlxdWVFbGVtZW50RGF0YSo+
KHRoaXMpLT5tX2F0dHJpYnV0ZVZlY3Rvci5zaXplKCk7Ci0gICAgcmV0dXJuIG1fYXJyYXlTaXpl
OworICAgIHJldHVybiBhcnJheVNpemUoKTsKIH0KIAogaW5saW5lIGNvbnN0IEF0dHJpYnV0ZSog
RWxlbWVudERhdGE6OmF0dHJpYnV0ZUJhc2UoKSBjb25zdAogewotICAgIGlmIChtX2lzVW5pcXVl
KQorICAgIGlmIChpc1VuaXF1ZSgpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
VW5pcXVlRWxlbWVudERhdGEqPih0aGlzKS0+bV9hdHRyaWJ1dGVWZWN0b3IuZGF0YSgpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBTaGFyZWFibGVFbGVtZW50RGF0YSo+KHRoaXMpLT5t
X2F0dHJpYnV0ZUFycmF5OwogfQogCiBpbmxpbmUgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBFbGVt
ZW50RGF0YTo6cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBjb25zdAogewotICAgIGlmICgh
bV9pc1VuaXF1ZSkKKyAgICBpZiAoIWlzVW5pcXVlKCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBVbmlxdWVFbGVtZW50RGF0YSo+KHRoaXMpLT5tX3By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlLmdldCgpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9T
dHlsZWRFbGVtZW50LmNwcAkocmV2aXNpb24gMTYyMjMyKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsOCArMTIxLDggQEAgc3Rh
dGljIFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xlYW5lcgogdm9pZCBTdHlsZWRFbGVtZW50
OjpzeW5jaHJvbml6ZVN0eWxlQXR0cmlidXRlSW50ZXJuYWwoKSBjb25zdAogewogICAgIEFTU0VS
VChlbGVtZW50RGF0YSgpKTsKLSAgICBBU1NFUlQoZWxlbWVudERhdGEoKS0+bV9zdHlsZUF0dHJp
YnV0ZUlzRGlydHkpOwotICAgIGVsZW1lbnREYXRhKCktPm1fc3R5bGVBdHRyaWJ1dGVJc0RpcnR5
ID0gZmFsc2U7CisgICAgQVNTRVJUKGVsZW1lbnREYXRhKCktPnN0eWxlQXR0cmlidXRlSXNEaXJ0
eSgpKTsKKyAgICBlbGVtZW50RGF0YSgpLT5zZXRTdHlsZUF0dHJpYnV0ZUlzRGlydHkoZmFsc2Up
OwogICAgIGlmIChjb25zdCBTdHlsZVByb3BlcnRpZXMqIGlubGluZVN0eWxlID0gdGhpcy0+aW5s
aW5lU3R5bGUoKSkKICAgICAgICAgY29uc3RfY2FzdDxTdHlsZWRFbGVtZW50Kj4odGhpcyktPnNl
dFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoc3R5bGVBdHRyLCBpbmxpbmVTdHlsZS0+YXNUZXh0
KCkpOwogfQpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb24KICAgICBpZiAobmFtZSA9PSBzdHlsZUF0dHIpCiAgICAgICAgIHN0eWxlQXR0
cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSwgcmVhc29uKTsKICAgICBlbHNlIGlmIChpc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShuYW1lKSkgewotICAgICAgICBlbGVtZW50RGF0YSgpLT5tX3ByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eSA9IHRydWU7CisgICAgICAgIGVsZW1lbnREYXRhKCkt
PnNldFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eSh0cnVlKTsKICAgICAgICAgc2V0
TmVlZHNTdHlsZVJlY2FsYyhJbmxpbmVTdHlsZUNoYW5nZSk7CiAgICAgfQogCkBAIC0yMDQsNyAr
MjA0LDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZQogICAgIH0g
ZWxzZSBpZiAocmVhc29uID09IE1vZGlmaWVkQnlDbG9uaW5nIHx8IGRvY3VtZW50KCkuY29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU3R5bGUoZG9jdW1lbnQoKS51cmwoKSwgc3Rh
cnRMaW5lTnVtYmVyKSkKICAgICAgICAgc2V0SW5saW5lU3R5bGVGcm9tU3RyaW5nKG5ld1N0eWxl
U3RyaW5nKTsKIAotICAgIGVsZW1lbnREYXRhKCktPm1fc3R5bGVBdHRyaWJ1dGVJc0RpcnR5ID0g
ZmFsc2U7CisgICAgZWxlbWVudERhdGEoKS0+c2V0U3R5bGVBdHRyaWJ1dGVJc0RpcnR5KGZhbHNl
KTsKIAogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoSW5saW5lU3R5bGVDaGFuZ2UpOwogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW52YWxpZGF0ZVN0eWxlQXR0cigmZG9jdW1lbnQo
KSwgdGhpcyk7CkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjppbmxpbmVT
dHlsZUNoYW5nZWQoKQogewogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoSW5saW5lU3R5bGVDaGFu
Z2UpOwogICAgIEFTU0VSVChlbGVtZW50RGF0YSgpKTsKLSAgICBlbGVtZW50RGF0YSgpLT5tX3N0
eWxlQXR0cmlidXRlSXNEaXJ0eSA9IHRydWU7CisgICAgZWxlbWVudERhdGEoKS0+c2V0U3R5bGVB
dHRyaWJ1dGVJc0RpcnR5KHRydWUpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
SW52YWxpZGF0ZVN0eWxlQXR0cigmZG9jdW1lbnQoKSwgdGhpcyk7CiB9CiAgICAgCkBAIC0zNDUs
NyArMzQ1LDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpyZWJ1aWxkUHJlc2VudGF0aW9uQQogICAg
IC8vIFNoYXJlYWJsZUVsZW1lbnREYXRhIGRvZXNuJ3Qgc3RvcmUgcHJlc2VudGF0aW9uIGF0dHJp
YnV0ZSBzdHlsZSwgc28gbWFrZSBzdXJlIHdlIGhhdmUgYSBVbmlxdWVFbGVtZW50RGF0YS4KICAg
ICBVbmlxdWVFbGVtZW50RGF0YSYgZWxlbWVudERhdGEgPSBlbnN1cmVVbmlxdWVFbGVtZW50RGF0
YSgpOwogCi0gICAgZWxlbWVudERhdGEubV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGly
dHkgPSBmYWxzZTsKKyAgICBlbGVtZW50RGF0YS5zZXRQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHls
ZUlzRGlydHkoZmFsc2UpOwogICAgIGVsZW1lbnREYXRhLm1fcHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUgPSBzdHlsZS0+aXNFbXB0eSgpID8gMCA6IHN0eWxlOwogCiAgICAgaWYgKCFjYWNoZUhh
c2ggfHwgY2FjaGVJdGVyYXRvci0+dmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU3R5
bGVkRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmgJKHJldmlzaW9uIDE2MjIzMikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDE0ICs5MywxNCBAQCBwcml2YXRlOgogaW5saW5l
IHZvaWQgU3R5bGVkRWxlbWVudDo6aW52YWxpZGF0ZVN0eWxlQXR0cmlidXRlKCkKIHsKICAgICBB
U1NFUlQoZWxlbWVudERhdGEoKSk7Ci0gICAgZWxlbWVudERhdGEoKS0+bV9zdHlsZUF0dHJpYnV0
ZUlzRGlydHkgPSB0cnVlOworICAgIGVsZW1lbnREYXRhKCktPnNldFN0eWxlQXR0cmlidXRlSXNE
aXJ0eSh0cnVlKTsKIH0KIAogaW5saW5lIGNvbnN0IFN0eWxlUHJvcGVydGllcyogU3R5bGVkRWxl
bWVudDo6cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKQogewogICAgIGlmICghZWxlbWVudERh
dGEoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKGVsZW1lbnREYXRhKCktPm1fcHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5KQorICAgIGlmIChlbGVtZW50RGF0YSgpLT5wcmVz
ZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHkoKSkKICAgICAgICAgcmVidWlsZFByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKCk7CiAgICAgcmV0dXJuIGVsZW1lbnREYXRhKCktPnByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNjIyMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTczMywxMyArNzMzLDEzIEBAIHZvaWQgU1ZHRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCAKIAogdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUFuaW1h
dGVkU1ZHQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7Ci0gICAg
aWYgKCFlbGVtZW50RGF0YSgpIHx8ICFlbGVtZW50RGF0YSgpLT5tX2FuaW1hdGVkU1ZHQXR0cmli
dXRlc0FyZURpcnR5KQorICAgIGlmICghZWxlbWVudERhdGEoKSB8fCAhZWxlbWVudERhdGEoKS0+
YW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
U1ZHRWxlbWVudCogbm9uQ29uc3RUaGlzID0gY29uc3RfY2FzdDxTVkdFbGVtZW50Kj4odGhpcyk7
CiAgICAgaWYgKG5hbWUgPT0gYW55UU5hbWUoKSkgewogICAgICAgICBub25Db25zdFRoaXMtPmxv
Y2FsQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCgpLnN5bmNocm9uaXplUHJvcGVydGllcyhub25Db25z
dFRoaXMpOwotICAgICAgICBlbGVtZW50RGF0YSgpLT5tX2FuaW1hdGVkU1ZHQXR0cmlidXRlc0Fy
ZURpcnR5ID0gZmFsc2U7CisgICAgICAgIGVsZW1lbnREYXRhKCktPnNldEFuaW1hdGVkU1ZHQXR0
cmlidXRlc0FyZURpcnR5KGZhbHNlKTsKICAgICB9IGVsc2UKICAgICAgICAgbm9uQ29uc3RUaGlz
LT5sb2NhbEF0dHJpYnV0ZVRvUHJvcGVydHlNYXAoKS5zeW5jaHJvbml6ZVByb3BlcnR5KG5vbkNv
bnN0VGhpcywgbmFtZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgJKHJldmlzaW9u
IDE2MjIzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zv
cm0qIHN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpIHsgcmV0dXJuIDA7IH0KIAotICAgIHZvaWQgaW52
YWxpZGF0ZVNWR0F0dHJpYnV0ZXMoKSB7IGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkubV9hbmlt
YXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSA9IHRydWU7IH0KKyAgICB2b2lkIGludmFsaWRhdGVT
VkdBdHRyaWJ1dGVzKCkgeyBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLnNldEFuaW1hdGVkU1ZH
QXR0cmlidXRlc0FyZURpcnR5KHRydWUpOyB9CiAKICAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1l
bnRJbnN0YW5jZSo+JiBpbnN0YW5jZXNGb3JFbGVtZW50KCkgY29uc3Q7CiAK
</data>
<flag name="review"
          id="245460"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>