<?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>127276</bug_id>
          
          <creation_ts>2014-01-20 02:28:56 -0800</creation_ts>
          <short_desc>Move TreeScope, IdTargetObserverRegistry to std::unique_ptr</short_desc>
          <delta_ts>2014-02-08 12:05:19 -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>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969779</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-20 02:28:56 -0800</bug_when>
    <thetext>Move TreeScope, IdTargetObserverRegistry to std::unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969780</commentid>
    <comment_count>1</comment_count>
      <attachid>221639</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-20 02:31:22 -0800</bug_when>
    <thetext>Created attachment 221639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970172</commentid>
    <comment_count>2</comment_count>
      <attachid>221721</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-20 22:34:55 -0800</bug_when>
    <thetext>Created attachment 221721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970360</commentid>
    <comment_count>3</comment_count>
      <attachid>221721</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-21 12:08:08 -0800</bug_when>
    <thetext>Comment on attachment 221721
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=221721&amp;action=review

This looks great!  I would prefer we not use the &apos;get()&apos; method in the shouldCacheLabelsByForAttribute.  Can you confirm it must be implemented the way you have written that?

&gt; Source/WebCore/dom/TreeScope.h:83
&gt; +    bool shouldCacheLabelsByForAttribute() const { return m_labelsByForAttribute.get(); }

std::unique_ptr has an operator (bool).  Why is the &apos;get()&apos; necessary here? At the worst, you should be doing something like &quot;static_cast&lt;bool&gt;(m_labelsByForAttribute)&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970387</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-21 12:38:46 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 221721 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221721&amp;action=review
&gt; 
&gt; This looks great!  I would prefer we not use the &apos;get()&apos; method in the shouldCacheLabelsByForAttribute.  Can you confirm it must be implemented the way you have written that?
&gt; 
&gt; &gt; Source/WebCore/dom/TreeScope.h:83
&gt; &gt; +    bool shouldCacheLabelsByForAttribute() const { return m_labelsByForAttribute.get(); }
&gt; 
&gt; std::unique_ptr has an operator (bool).  Why is the &apos;get()&apos; necessary here? At the worst, you should be doing something like &quot;static_cast&lt;bool&gt;(m_labelsByForAttribute)&quot;.

the bool operator is explicit. I think .get() is better than an explicit static cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977503</commentid>
    <comment_count>5</comment_count>
      <attachid>221721</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-06 12:57:31 -0800</bug_when>
    <thetext>Comment on attachment 221721
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=221721&amp;action=review

r=me

&gt;&gt;&gt; Source/WebCore/dom/TreeScope.h:83
&gt;&gt;&gt; +    bool shouldCacheLabelsByForAttribute() const { return m_labelsByForAttribute.get(); }
&gt;&gt; 
&gt;&gt; std::unique_ptr has an operator (bool).  Why is the &apos;get()&apos; necessary here? At the worst, you should be doing something like &quot;static_cast&lt;bool&gt;(m_labelsByForAttribute)&quot;.
&gt; 
&gt; the bool operator is explicit. I think .get() is better than an explicit static cast.

How about &quot;return !!m_labelsByForAttribute;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978403</commentid>
    <comment_count>6</comment_count>
      <attachid>221721</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-08 11:58:30 -0800</bug_when>
    <thetext>Comment on attachment 221721
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=221721&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/dom/TreeScope.h:83
&gt;&gt;&gt;&gt; +    bool shouldCacheLabelsByForAttribute() const { return m_labelsByForAttribute.get(); }
&gt;&gt;&gt; 
&gt;&gt;&gt; std::unique_ptr has an operator (bool).  Why is the &apos;get()&apos; necessary here? At the worst, you should be doing something like &quot;static_cast&lt;bool&gt;(m_labelsByForAttribute)&quot;.
&gt;&gt; 
&gt;&gt; the bool operator is explicit. I think .get() is better than an explicit static cast.
&gt; 
&gt; How about &quot;return !!m_labelsByForAttribute;&quot;

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978404</commentid>
    <comment_count>7</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-08 12:05:19 -0800</bug_when>
    <thetext>Committed r163719: &lt;http://trac.webkit.org/changeset/163719&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221639</attachid>
            <date>2014-01-20 02:31:22 -0800</date>
            <delta_ts>2014-01-20 22:34:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127276-20140120023121.patch</filename>
            <type>text/plain</type>
            <size>8607</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZkZTgxZTZiNDQ5ZDcw
NDIxYTc5NTA3YjVhZTgzYzc5MDA1ZTRiNy4uODUwNGE1MDFjNTljMDQwNTMwMGVkYjBlNTlmYTE5
MTY5YmNlMmQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAxLTIwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFRyZWVTY29w
ZSwgSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5IHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Mjc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93
blB0ciBpbiB0aGUgVHJlZVNjb3BlIGFuZCBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkgY2xhc3Nl
cyB3aXRoIHN0ZDo6dW5pcXVlX3B0ci4KKworICAgICAgICAqIGRvbS9JZFRhcmdldE9ic2VydmVy
UmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5
OjphZGRPYnNlcnZlcik6CisgICAgICAgICogZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5o
OgorICAgICAgICAoV2ViQ29yZTo6SWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5OjpJZFRhcmdldE9i
c2VydmVyUmVnaXN0cnkpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VHJlZVNjb3BlOjpUcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlOjpkZXN0cm95VHJlZVNjb3BlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
OmFkZEVsZW1lbnRCeUlkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YWRkRWxlbWVu
dEJ5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmFkZEltYWdlTWFwKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6bGFiZWxFbGVtZW50Rm9ySWQpOgorICAgICAgICAq
IGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6c2hvdWxkQ2Fj
aGVMYWJlbHNCeUZvckF0dHJpYnV0ZSk6CisKIDIwMTQtMDEtMjAgIE1vcnRlbiBTdGVuc2hvcm5l
ICA8bXN0ZW5zaG9Ab3BlcmEuY29tPgogCiAgICAgICAgIFJlZ2lvbiBiYXNlZCBtdWx0aWNvbDog
dGFsbCBsaW5lIGNhdXNlcyB0YWxsZXIgbXVsdGljb2wgY29udGFpbmVyIHRoYW4gbmVjZXNzYXJ5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwCmlu
ZGV4IDkxNGRkNDg1ZGFlZDQxYTY1MmY3MTg5NzEyYmNhOGRjN2NkOGNkOGMuLmIzZDZmZDQzYjhj
NWI4YjFmN2ZiY2ZkZWFjMzVkZTAwYjVlNDdlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwCkBAIC0zMCwxMSArMzAsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8SWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5PiBJ
ZFRhcmdldE9ic2VydmVyUmVnaXN0cnk6OmNyZWF0ZSgpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoKSk7Ci19Ci0KIHZvaWQgSWRUYXJnZXRPYnNl
cnZlclJlZ2lzdHJ5OjphZGRPYnNlcnZlcihjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBJZFRhcmdl
dE9ic2VydmVyKiBvYnNlcnZlcikKIHsKICAgICBpZiAoaWQuaXNFbXB0eSgpKQpAQCAtNDIsNyAr
MzcsNyBAQCB2b2lkIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeTo6YWRkT2JzZXJ2ZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCwgSWRUYXJnZXRPYnNlcgogICAgIAogICAgIElkVG9PYnNlcnZlclNl
dE1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fcmVnaXN0cnkuYWRkKGlkLmltcGwoKSwgbnVsbHB0
cik7CiAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICByZXN1bHQuaXRlcmF0b3It
PnZhbHVlID0gYWRvcHRQdHIobmV3IE9ic2VydmVyU2V0KCkpOworICAgICAgICByZXN1bHQuaXRl
cmF0b3ItPnZhbHVlID0gc3RkOjptYWtlX3VuaXF1ZTxPYnNlcnZlclNldD4oKTsKIAogICAgIHJl
c3VsdC5pdGVyYXRvci0+dmFsdWUtPmFkZChvYnNlcnZlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmgKaW5kZXggMjljNDBmNzYzYzMyNTkyOTBm
OTg2OGFhNGI0NWMwZjhmYzMyYjU1MC4uMjBjY2M5YmQyOGI1N2FkNGFjN2UwNWZkYjQxZTBmMjAx
YjUwZDFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJS
ZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkuaApAQCAtMjYsMTAgKzI2LDEwIEBACiAjaWZuZGVmIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3Ry
eV9oCiAjZGVmaW5lIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeV9oCiAKKyNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDAsMTggKzQwLDIwIEBAIGNsYXNzIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeSB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgZnJpZW5kIGNsYXNzIElkVGFyZ2V0T2JzZXJ2
ZXI7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SWRUYXJnZXRPYnNlcnZlclJlZ2lz
dHJ5PiBjcmVhdGUoKTsKKyAgICBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoKQorICAgICAgICA6
IG1fbm90aWZ5aW5nT2JzZXJ2ZXJzSW5TZXQoMCkKKyAgICB7IH0KKwogICAgIHZvaWQgbm90aWZ5
T2JzZXJ2ZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpOwogICAgIHZvaWQgbm90aWZ5T2JzZXJ2
ZXJzKGNvbnN0IEF0b21pY1N0cmluZ0ltcGwmIGlkKTsKIAogcHJpdmF0ZToKLSAgICBJZFRhcmdl
dE9ic2VydmVyUmVnaXN0cnkoKSA6IG1fbm90aWZ5aW5nT2JzZXJ2ZXJzSW5TZXQoMCkgeyB9CiAg
ICAgdm9pZCBhZGRPYnNlcnZlcihjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBJZFRhcmdldE9ic2Vy
dmVyKik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBJ
ZFRhcmdldE9ic2VydmVyKik7CiAgICAgdm9pZCBub3RpZnlPYnNlcnZlcnNJbnRlcm5hbChjb25z
dCBBdG9taWNTdHJpbmdJbXBsJiBpZCk7CiAKICAgICB0eXBlZGVmIEhhc2hTZXQ8SWRUYXJnZXRP
YnNlcnZlcio+IE9ic2VydmVyU2V0OwotICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBBdG9taWNT
dHJpbmdJbXBsKiwgT3duUHRyPE9ic2VydmVyU2V0Pj4gSWRUb09ic2VydmVyU2V0TWFwOworICAg
IHR5cGVkZWYgSGFzaE1hcDxjb25zdCBBdG9taWNTdHJpbmdJbXBsKiwgc3RkOjp1bmlxdWVfcHRy
PE9ic2VydmVyU2V0Pj4gSWRUb09ic2VydmVyU2V0TWFwOwogICAgIElkVG9PYnNlcnZlclNldE1h
cCBtX3JlZ2lzdHJ5OwogICAgIE9ic2VydmVyU2V0KiBtX25vdGlmeWluZ09ic2VydmVyc0luU2V0
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMGFhOTBiZjY5ZjIxYWRmZDU5YmVk
NGFkMDRjNzUyNGQ2NWZmNTI5Yi4uMTIwY2NjNjY5NWRlYzZjMTU5NGNjZDFjYjcwN2M0MTVlNjM0
NTYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgVHJlZVNj
b3BlOjpUcmVlU2NvcGUoQ29udGFpbmVyTm9kZSogcm9vdE5vZGUsIERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICAsIG1fZG9jdW1lbnRTY29wZShkb2N1bWVudCkKICAgICAsIG1fcGFyZW50VHJlZVNj
b3BlKGRvY3VtZW50KQogICAgICwgbV9zZWxmT25seVJlZkNvdW50KDApCi0gICAgLCBtX2lkVGFy
Z2V0T2JzZXJ2ZXJSZWdpc3RyeShJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk6OmNyZWF0ZSgpKQor
ICAgICwgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoc3RkOjptYWtlX3VuaXF1ZTxJZFRhcmdl
dE9ic2VydmVyUmVnaXN0cnk+KCkpCiB7CiAgICAgQVNTRVJUKHJvb3ROb2RlKTsKICAgICBBU1NF
UlQoZG9jdW1lbnQpOwpAQCAtNzcsNyArNzcsNyBAQCBUcmVlU2NvcGU6OlRyZWVTY29wZShEb2N1
bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX2RvY3VtZW50U2NvcGUoZG9jdW1lbnQpCiAgICAgLCBt
X3BhcmVudFRyZWVTY29wZShudWxscHRyKQogICAgICwgbV9zZWxmT25seVJlZkNvdW50KDApCi0g
ICAgLCBtX2lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeShJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk6
OmNyZWF0ZSgpKQorICAgICwgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoc3RkOjptYWtlX3Vu
aXF1ZTxJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk+KCkpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50
KTsKICAgICBtX3Jvb3ROb2RlLT5zZXRUcmVlU2NvcGUoKnRoaXMpOwpAQCAtMTA3LDkgKzEwNyw5
IEBAIFRyZWVTY29wZTo6flRyZWVTY29wZSgpCiAKIHZvaWQgVHJlZVNjb3BlOjpkZXN0cm95VHJl
ZVNjb3BlRGF0YSgpCiB7Ci0gICAgbV9lbGVtZW50c0J5SWQuY2xlYXIoKTsKLSAgICBtX2ltYWdl
TWFwc0J5TmFtZS5jbGVhcigpOwotICAgIG1fbGFiZWxzQnlGb3JBdHRyaWJ1dGUuY2xlYXIoKTsK
KyAgICBtX2VsZW1lbnRzQnlJZC5yZXNldCgpOworICAgIG1faW1hZ2VNYXBzQnlOYW1lLnJlc2V0
KCk7CisgICAgbV9sYWJlbHNCeUZvckF0dHJpYnV0ZS5yZXNldCgpOwogfQogCiB2b2lkIFRyZWVT
Y29wZTo6Y2xlYXJEb2N1bWVudFNjb3BlKCkKQEAgLTE1Myw3ICsxNTMsNyBAQCBjb25zdCBWZWN0
b3I8RWxlbWVudCo+KiBUcmVlU2NvcGU6OmdldEFsbEVsZW1lbnRzQnlJZChjb25zdCBBdG9taWNT
dHJpbmcmIGVsZW1lbgogdm9pZCBUcmVlU2NvcGU6OmFkZEVsZW1lbnRCeUlkKGNvbnN0IEF0b21p
Y1N0cmluZ0ltcGwmIGVsZW1lbnRJZCwgRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAoIW1f
ZWxlbWVudHNCeUlkKQotICAgICAgICBtX2VsZW1lbnRzQnlJZCA9IGFkb3B0UHRyKG5ldyBEb2N1
bWVudE9yZGVyZWRNYXApOworICAgICAgICBtX2VsZW1lbnRzQnlJZCA9IHN0ZDo6bWFrZV91bmlx
dWU8RG9jdW1lbnRPcmRlcmVkTWFwPigpOwogICAgIG1fZWxlbWVudHNCeUlkLT5hZGQoZWxlbWVu
dElkLCBlbGVtZW50LCAqdGhpcyk7CiAgICAgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnktPm5v
dGlmeU9ic2VydmVycyhlbGVtZW50SWQpOwogfQpAQCAtMTc4LDcgKzE3OCw3IEBAIEVsZW1lbnQq
IFRyZWVTY29wZTo6Z2V0RWxlbWVudEJ5TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNv
bnN0CiB2b2lkIFRyZWVTY29wZTo6YWRkRWxlbWVudEJ5TmFtZShjb25zdCBBdG9taWNTdHJpbmdJ
bXBsJiBuYW1lLCBFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmICghbV9lbGVtZW50c0J5TmFt
ZSkKLSAgICAgICAgbV9lbGVtZW50c0J5TmFtZSA9IGFkb3B0UHRyKG5ldyBEb2N1bWVudE9yZGVy
ZWRNYXApOworICAgICAgICBtX2VsZW1lbnRzQnlOYW1lID0gc3RkOjptYWtlX3VuaXF1ZTxEb2N1
bWVudE9yZGVyZWRNYXA+KCk7CiAgICAgbV9lbGVtZW50c0J5TmFtZS0+YWRkKG5hbWUsIGVsZW1l
bnQsICp0aGlzKTsKIH0KIApAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgVHJlZVNjb3BlOjphZGRJ
bWFnZU1hcChIVE1MTWFwRWxlbWVudCYgaW1hZ2VNYXApCiAgICAgaWYgKCFuYW1lKQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCFtX2ltYWdlTWFwc0J5TmFtZSkKLSAgICAgICAgbV9pbWFnZU1h
cHNCeU5hbWUgPSBhZG9wdFB0cihuZXcgRG9jdW1lbnRPcmRlcmVkTWFwKTsKKyAgICAgICAgbV9p
bWFnZU1hcHNCeU5hbWUgPSBzdGQ6Om1ha2VfdW5pcXVlPERvY3VtZW50T3JkZXJlZE1hcD4oKTsK
ICAgICBtX2ltYWdlTWFwc0J5TmFtZS0+YWRkKCpuYW1lLCBpbWFnZU1hcCwgKnRoaXMpOwogfQog
CkBAIC0yOTgsNyArMjk4LDcgQEAgSFRNTExhYmVsRWxlbWVudCogVHJlZVNjb3BlOjpsYWJlbEVs
ZW1lbnRGb3JJZChjb25zdCBBdG9taWNTdHJpbmcmIGZvckF0dHJpYnV0ZVYKIAogICAgIGlmICgh
bV9sYWJlbHNCeUZvckF0dHJpYnV0ZSkgewogICAgICAgICAvLyBQb3B1bGF0ZSB0aGUgbWFwIG9u
IGZpcnN0IGFjY2Vzcy4KLSAgICAgICAgbV9sYWJlbHNCeUZvckF0dHJpYnV0ZSA9IGFkb3B0UHRy
KG5ldyBEb2N1bWVudE9yZGVyZWRNYXApOworICAgICAgICBtX2xhYmVsc0J5Rm9yQXR0cmlidXRl
ID0gc3RkOjptYWtlX3VuaXF1ZTxEb2N1bWVudE9yZGVyZWRNYXA+KCk7CiAKICAgICAgICAgZm9y
IChhdXRvJiBsYWJlbCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEhUTUxMYWJlbEVsZW1lbnQ+KCpyb290
Tm9kZSgpKSkgewogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JWYWx1ZSA9IGxh
YmVsLmZhc3RHZXRBdHRyaWJ1dGUoZm9yQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKaW5kZXgg
YzFjMWRlY2JlM2IxMjUzMjkzYTI1YzNlNDNjNTA1NTFlOTNlMGVmYy4uYTRhMzgyMmRkYWJlY2E1
MWU1MGIwMWY1NzhjZjhiYmY2MDEyYTRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApAQCAtMjgs
NiArMjgsNyBAQAogI2RlZmluZSBUcmVlU2NvcGVfaAogCiAjaW5jbHVkZSAiRG9jdW1lbnRPcmRl
cmVkTWFwLmgiCisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKQEAgLTc5LDcgKzgwLDcgQEAgcHVi
bGljOgogICAgIEVsZW1lbnQqIGVsZW1lbnRGcm9tUG9pbnQoaW50IHgsIGludCB5KSBjb25zdDsK
IAogICAgIC8vIEZvciBhY2Nlc3NpYmlsaXR5LgotICAgIGJvb2wgc2hvdWxkQ2FjaGVMYWJlbHNC
eUZvckF0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWxzQnlGb3JBdHRyaWJ1dGU7IH0K
KyAgICBib29sIHNob3VsZENhY2hlTGFiZWxzQnlGb3JBdHRyaWJ1dGUoKSBjb25zdCB7IHJldHVy
biBtX2xhYmVsc0J5Rm9yQXR0cmlidXRlLmdldCgpOyB9CiAgICAgdm9pZCBhZGRMYWJlbChjb25z
dCBBdG9taWNTdHJpbmdJbXBsJiBmb3JBdHRyaWJ1dGVWYWx1ZSwgSFRNTExhYmVsRWxlbWVudCYp
OwogICAgIHZvaWQgcmVtb3ZlTGFiZWwoY29uc3QgQXRvbWljU3RyaW5nSW1wbCYgZm9yQXR0cmli
dXRlVmFsdWUsIEhUTUxMYWJlbEVsZW1lbnQmKTsKICAgICBIVE1MTGFiZWxFbGVtZW50KiBsYWJl
bEVsZW1lbnRGb3JJZChjb25zdCBBdG9taWNTdHJpbmcmIGZvckF0dHJpYnV0ZVZhbHVlKTsKQEAg
LTE2NCwxMiArMTY1LDEyIEBAIHByaXZhdGU6CiAgICAgVHJlZVNjb3BlKiBtX3BhcmVudFRyZWVT
Y29wZTsKICAgICB1bnNpZ25lZCBtX3NlbGZPbmx5UmVmQ291bnQ7CiAKLSAgICBPd25QdHI8RG9j
dW1lbnRPcmRlcmVkTWFwPiBtX2VsZW1lbnRzQnlJZDsKLSAgICBPd25QdHI8RG9jdW1lbnRPcmRl
cmVkTWFwPiBtX2VsZW1lbnRzQnlOYW1lOwotICAgIE93blB0cjxEb2N1bWVudE9yZGVyZWRNYXA+
IG1faW1hZ2VNYXBzQnlOYW1lOwotICAgIE93blB0cjxEb2N1bWVudE9yZGVyZWRNYXA+IG1fbGFi
ZWxzQnlGb3JBdHRyaWJ1dGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPERvY3VtZW50T3JkZXJlZE1h
cD4gbV9lbGVtZW50c0J5SWQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPERvY3VtZW50T3JkZXJlZE1h
cD4gbV9lbGVtZW50c0J5TmFtZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RG9jdW1lbnRPcmRlcmVk
TWFwPiBtX2ltYWdlTWFwc0J5TmFtZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RG9jdW1lbnRPcmRl
cmVkTWFwPiBtX2xhYmVsc0J5Rm9yQXR0cmlidXRlOwogCi0gICAgT3duUHRyPElkVGFyZ2V0T2Jz
ZXJ2ZXJSZWdpc3RyeT4gbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnk7CisgICAgc3RkOjp1bmlx
dWVfcHRyPElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeT4gbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0
cnk7CiAKICAgICBtdXRhYmxlIFJlZlB0cjxET01TZWxlY3Rpb24+IG1fc2VsZWN0aW9uOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221721</attachid>
            <date>2014-01-20 22:34:55 -0800</date>
            <delta_ts>2014-02-08 11:58:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127276-20140120223453.patch</filename>
            <type>text/plain</type>
            <size>8566</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdjNDc4N2MyYjA0Yzg0
OTEyM2I2YjFiNjdkYjkzYmQ3ZmM4NzJkZS4uNWI4NzljYzE0ZGE1ZmEwNTBlYTRmMzc5ZTQ3OGY0
Y2FiNmY2NTlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAxLTIwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFRyZWVTY29w
ZSwgSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5IHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Mjc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93
blB0ciBpbiB0aGUgVHJlZVNjb3BlIGFuZCBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkgY2xhc3Nl
cyB3aXRoIHN0ZDo6dW5pcXVlX3B0ci4KKworICAgICAgICAqIGRvbS9JZFRhcmdldE9ic2VydmVy
UmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5
OjphZGRPYnNlcnZlcik6CisgICAgICAgICogZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5o
OgorICAgICAgICAoV2ViQ29yZTo6SWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5OjpJZFRhcmdldE9i
c2VydmVyUmVnaXN0cnkpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VHJlZVNjb3BlOjpUcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlOjpkZXN0cm95VHJlZVNjb3BlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
OmFkZEVsZW1lbnRCeUlkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YWRkRWxlbWVu
dEJ5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmFkZEltYWdlTWFwKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6bGFiZWxFbGVtZW50Rm9ySWQpOgorICAgICAgICAq
IGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6c2hvdWxkQ2Fj
aGVMYWJlbHNCeUZvckF0dHJpYnV0ZSk6CisKIDIwMTQtMDEtMjAgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYW4gdW51c2VkIFBhZ2VHcm91
cCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lkVGFyZ2V0T2JzZXJ2
ZXJSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSWRUYXJnZXRPYnNlcnZlclJlZ2lz
dHJ5LmNwcAppbmRleCA5MTRkZDQ4NWRhZWQ0MWE2NTJmNzE4OTcxMmJjYThkYzdjZDhjZDhjLi5i
M2Q2ZmQ0M2I4YzViOGIxZjdmYmNmZGVhYzM1ZGUwMGI1ZTQ3ZTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcApAQCAtMzAsMTEgKzMwLDYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPElkVGFyZ2V0T2JzZXJ2ZXJS
ZWdpc3RyeT4gSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5OjpjcmVhdGUoKQotewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KCkpOwotfQotCiB2b2lkIElk
VGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeTo6YWRkT2JzZXJ2ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBp
ZCwgSWRUYXJnZXRPYnNlcnZlciogb2JzZXJ2ZXIpCiB7CiAgICAgaWYgKGlkLmlzRW1wdHkoKSkK
QEAgLTQyLDcgKzM3LDcgQEAgdm9pZCBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk6OmFkZE9ic2Vy
dmVyKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIElkVGFyZ2V0T2JzZXIKICAgICAKICAgICBJZFRv
T2JzZXJ2ZXJTZXRNYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBtX3JlZ2lzdHJ5LmFkZChpZC5pbXBs
KCksIG51bGxwdHIpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgcmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZSA9IGFkb3B0UHRyKG5ldyBPYnNlcnZlclNldCgpKTsKKyAgICAgICAg
cmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8T2JzZXJ2ZXJTZXQ+KCk7
CiAKICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5hZGQob2JzZXJ2ZXIpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oCmluZGV4IDI5YzQwZjc2
M2MzMjU5MjkwZjk4NjhhYTRiNDVjMGY4ZmMzMmI1NTAuLjIwY2NjOWJkMjhiNTdhZDRhYzdlMDVm
ZGI0MWUwZjIwMWI1MGQxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JZFRhcmdl
dE9ic2VydmVyUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSWRUYXJnZXRPYnNl
cnZlclJlZ2lzdHJ5LmgKQEAgLTI2LDEwICsyNiwxMCBAQAogI2lmbmRlZiBJZFRhcmdldE9ic2Vy
dmVyUmVnaXN0cnlfaAogI2RlZmluZSBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnlfaAogCisjaW5j
bHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQwLDE4ICs0MCwyMCBAQCBjbGFzcyBJZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIGZyaWVuZCBjbGFzcyBJZFRh
cmdldE9ic2VydmVyOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElkVGFyZ2V0T2Jz
ZXJ2ZXJSZWdpc3RyeT4gY3JlYXRlKCk7CisgICAgSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KCkK
KyAgICAgICAgOiBtX25vdGlmeWluZ09ic2VydmVyc0luU2V0KDApCisgICAgeyB9CisKICAgICB2
b2lkIG5vdGlmeU9ic2VydmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGlkKTsKICAgICB2b2lkIG5v
dGlmeU9ic2VydmVycyhjb25zdCBBdG9taWNTdHJpbmdJbXBsJiBpZCk7CiAKIHByaXZhdGU6Ci0g
ICAgSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KCkgOiBtX25vdGlmeWluZ09ic2VydmVyc0luU2V0
KDApIHsgfQogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgSWRU
YXJnZXRPYnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoY29uc3QgQXRvbWljU3Ry
aW5nJiBpZCwgSWRUYXJnZXRPYnNlcnZlciopOwogICAgIHZvaWQgbm90aWZ5T2JzZXJ2ZXJzSW50
ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nSW1wbCYgaWQpOwogCiAgICAgdHlwZWRlZiBIYXNoU2V0
PElkVGFyZ2V0T2JzZXJ2ZXIqPiBPYnNlcnZlclNldDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8Y29u
c3QgQXRvbWljU3RyaW5nSW1wbCosIE93blB0cjxPYnNlcnZlclNldD4+IElkVG9PYnNlcnZlclNl
dE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgQXRvbWljU3RyaW5nSW1wbCosIHN0ZDo6
dW5pcXVlX3B0cjxPYnNlcnZlclNldD4+IElkVG9PYnNlcnZlclNldE1hcDsKICAgICBJZFRvT2Jz
ZXJ2ZXJTZXRNYXAgbV9yZWdpc3RyeTsKICAgICBPYnNlcnZlclNldCogbV9ub3RpZnlpbmdPYnNl
cnZlcnNJblNldDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IDBhYTkwYmY2OWYy
MWFkZmQ1OWJlZDRhZDA0Yzc1MjRkNjVmZjUyOWIuLmM2YzNmNDk3OGU2ZGU0NzVkYTRiZDE0NDM0
ZWNjZjM5ZWM5MDY1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC02Myw3ICs2Myw3
IEBAIFRyZWVTY29wZTo6VHJlZVNjb3BlKENvbnRhaW5lck5vZGUqIHJvb3ROb2RlLCBEb2N1bWVu
dCogZG9jdW1lbnQpCiAgICAgLCBtX2RvY3VtZW50U2NvcGUoZG9jdW1lbnQpCiAgICAgLCBtX3Bh
cmVudFRyZWVTY29wZShkb2N1bWVudCkKICAgICAsIG1fc2VsZk9ubHlSZWZDb3VudCgwKQotICAg
ICwgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5Ojpj
cmVhdGUoKSkKKyAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KHN0ZDo6bWFrZV91bmlx
dWU8SWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5PigpKQogewogICAgIEFTU0VSVChyb290Tm9kZSk7
CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKQEAgLTc3LDcgKzc3LDcgQEAgVHJlZVNjb3BlOjpUcmVl
U2NvcGUoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9kb2N1bWVudFNjb3BlKGRvY3VtZW50
KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUobnVsbHB0cikKICAgICAsIG1fc2VsZk9ubHlSZWZD
b3VudCgwKQotICAgICwgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoSWRUYXJnZXRPYnNlcnZl
clJlZ2lzdHJ5OjpjcmVhdGUoKSkKKyAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KHN0
ZDo6bWFrZV91bmlxdWU8SWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5PigpKQogewogICAgIEFTU0VS
VChkb2N1bWVudCk7CiAgICAgbV9yb290Tm9kZS0+c2V0VHJlZVNjb3BlKCp0aGlzKTsKQEAgLTEw
Nyw5ICsxMDcsOSBAQCBUcmVlU2NvcGU6On5UcmVlU2NvcGUoKQogCiB2b2lkIFRyZWVTY29wZTo6
ZGVzdHJveVRyZWVTY29wZURhdGEoKQogewotICAgIG1fZWxlbWVudHNCeUlkLmNsZWFyKCk7Ci0g
ICAgbV9pbWFnZU1hcHNCeU5hbWUuY2xlYXIoKTsKLSAgICBtX2xhYmVsc0J5Rm9yQXR0cmlidXRl
LmNsZWFyKCk7CisgICAgbV9lbGVtZW50c0J5SWQgPSBudWxscHRyOworICAgIG1faW1hZ2VNYXBz
QnlOYW1lID0gbnVsbHB0cjsKKyAgICBtX2xhYmVsc0J5Rm9yQXR0cmlidXRlID0gbnVsbHB0cjsK
IH0KIAogdm9pZCBUcmVlU2NvcGU6OmNsZWFyRG9jdW1lbnRTY29wZSgpCkBAIC0xNTMsNyArMTUz
LDcgQEAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiogVHJlZVNjb3BlOjpnZXRBbGxFbGVtZW50c0J5
SWQoY29uc3QgQXRvbWljU3RyaW5nJiBlbGVtZW4KIHZvaWQgVHJlZVNjb3BlOjphZGRFbGVtZW50
QnlJZChjb25zdCBBdG9taWNTdHJpbmdJbXBsJiBlbGVtZW50SWQsIEVsZW1lbnQmIGVsZW1lbnQp
CiB7CiAgICAgaWYgKCFtX2VsZW1lbnRzQnlJZCkKLSAgICAgICAgbV9lbGVtZW50c0J5SWQgPSBh
ZG9wdFB0cihuZXcgRG9jdW1lbnRPcmRlcmVkTWFwKTsKKyAgICAgICAgbV9lbGVtZW50c0J5SWQg
PSBzdGQ6Om1ha2VfdW5pcXVlPERvY3VtZW50T3JkZXJlZE1hcD4oKTsKICAgICBtX2VsZW1lbnRz
QnlJZC0+YWRkKGVsZW1lbnRJZCwgZWxlbWVudCwgKnRoaXMpOwogICAgIG1faWRUYXJnZXRPYnNl
cnZlclJlZ2lzdHJ5LT5ub3RpZnlPYnNlcnZlcnMoZWxlbWVudElkKTsKIH0KQEAgLTE3OCw3ICsx
NzgsNyBAQCBFbGVtZW50KiBUcmVlU2NvcGU6OmdldEVsZW1lbnRCeU5hbWUoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lKSBjb25zdAogdm9pZCBUcmVlU2NvcGU6OmFkZEVsZW1lbnRCeU5hbWUoY29u
c3QgQXRvbWljU3RyaW5nSW1wbCYgbmFtZSwgRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAo
IW1fZWxlbWVudHNCeU5hbWUpCi0gICAgICAgIG1fZWxlbWVudHNCeU5hbWUgPSBhZG9wdFB0cihu
ZXcgRG9jdW1lbnRPcmRlcmVkTWFwKTsKKyAgICAgICAgbV9lbGVtZW50c0J5TmFtZSA9IHN0ZDo6
bWFrZV91bmlxdWU8RG9jdW1lbnRPcmRlcmVkTWFwPigpOwogICAgIG1fZWxlbWVudHNCeU5hbWUt
PmFkZChuYW1lLCBlbGVtZW50LCAqdGhpcyk7CiB9CiAKQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lk
IFRyZWVTY29wZTo6YWRkSW1hZ2VNYXAoSFRNTE1hcEVsZW1lbnQmIGltYWdlTWFwKQogICAgIGlm
ICghbmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9pbWFnZU1hcHNCeU5hbWUpCi0g
ICAgICAgIG1faW1hZ2VNYXBzQnlOYW1lID0gYWRvcHRQdHIobmV3IERvY3VtZW50T3JkZXJlZE1h
cCk7CisgICAgICAgIG1faW1hZ2VNYXBzQnlOYW1lID0gc3RkOjptYWtlX3VuaXF1ZTxEb2N1bWVu
dE9yZGVyZWRNYXA+KCk7CiAgICAgbV9pbWFnZU1hcHNCeU5hbWUtPmFkZCgqbmFtZSwgaW1hZ2VN
YXAsICp0aGlzKTsKIH0KIApAQCAtMjk4LDcgKzI5OCw3IEBAIEhUTUxMYWJlbEVsZW1lbnQqIFRy
ZWVTY29wZTo6bGFiZWxFbGVtZW50Rm9ySWQoY29uc3QgQXRvbWljU3RyaW5nJiBmb3JBdHRyaWJ1
dGVWCiAKICAgICBpZiAoIW1fbGFiZWxzQnlGb3JBdHRyaWJ1dGUpIHsKICAgICAgICAgLy8gUG9w
dWxhdGUgdGhlIG1hcCBvbiBmaXJzdCBhY2Nlc3MuCi0gICAgICAgIG1fbGFiZWxzQnlGb3JBdHRy
aWJ1dGUgPSBhZG9wdFB0cihuZXcgRG9jdW1lbnRPcmRlcmVkTWFwKTsKKyAgICAgICAgbV9sYWJl
bHNCeUZvckF0dHJpYnV0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8RG9jdW1lbnRPcmRlcmVkTWFwPigp
OwogCiAgICAgICAgIGZvciAoYXV0byYgbGFiZWwgOiBkZXNjZW5kYW50c09mVHlwZTxIVE1MTGFi
ZWxFbGVtZW50Pigqcm9vdE5vZGUoKSkpIHsKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9yVmFsdWUgPSBsYWJlbC5mYXN0R2V0QXR0cmlidXRlKGZvckF0dHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5oCmluZGV4IGMxYzFkZWNiZTNiMTI1MzI5M2EyNWMzZTQzYzUwNTUxZTkzZTBlZmMu
LmE0YTM4MjJkZGFiZWNhNTFlNTBiMDFmNTc4Y2Y4YmJmNjAxMmE0ZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgVHJlZVNjb3BlX2gKIAogI2luY2x1
ZGUgIkRvY3VtZW50T3JkZXJlZE1hcC5oIgorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCkBAIC03
OSw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBlbGVtZW50RnJvbVBvaW50KGludCB4
LCBpbnQgeSkgY29uc3Q7CiAKICAgICAvLyBGb3IgYWNjZXNzaWJpbGl0eS4KLSAgICBib29sIHNo
b3VsZENhY2hlTGFiZWxzQnlGb3JBdHRyaWJ1dGUoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsc0J5
Rm9yQXR0cmlidXRlOyB9CisgICAgYm9vbCBzaG91bGRDYWNoZUxhYmVsc0J5Rm9yQXR0cmlidXRl
KCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbHNCeUZvckF0dHJpYnV0ZS5nZXQoKTsgfQogICAgIHZv
aWQgYWRkTGFiZWwoY29uc3QgQXRvbWljU3RyaW5nSW1wbCYgZm9yQXR0cmlidXRlVmFsdWUsIEhU
TUxMYWJlbEVsZW1lbnQmKTsKICAgICB2b2lkIHJlbW92ZUxhYmVsKGNvbnN0IEF0b21pY1N0cmlu
Z0ltcGwmIGZvckF0dHJpYnV0ZVZhbHVlLCBIVE1MTGFiZWxFbGVtZW50Jik7CiAgICAgSFRNTExh
YmVsRWxlbWVudCogbGFiZWxFbGVtZW50Rm9ySWQoY29uc3QgQXRvbWljU3RyaW5nJiBmb3JBdHRy
aWJ1dGVWYWx1ZSk7CkBAIC0xNjQsMTIgKzE2NSwxMiBAQCBwcml2YXRlOgogICAgIFRyZWVTY29w
ZSogbV9wYXJlbnRUcmVlU2NvcGU7CiAgICAgdW5zaWduZWQgbV9zZWxmT25seVJlZkNvdW50Owog
Ci0gICAgT3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9lbGVtZW50c0J5SWQ7Ci0gICAgT3du
UHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9lbGVtZW50c0J5TmFtZTsKLSAgICBPd25QdHI8RG9j
dW1lbnRPcmRlcmVkTWFwPiBtX2ltYWdlTWFwc0J5TmFtZTsKLSAgICBPd25QdHI8RG9jdW1lbnRP
cmRlcmVkTWFwPiBtX2xhYmVsc0J5Rm9yQXR0cmlidXRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxE
b2N1bWVudE9yZGVyZWRNYXA+IG1fZWxlbWVudHNCeUlkOworICAgIHN0ZDo6dW5pcXVlX3B0cjxE
b2N1bWVudE9yZGVyZWRNYXA+IG1fZWxlbWVudHNCeU5hbWU7CisgICAgc3RkOjp1bmlxdWVfcHRy
PERvY3VtZW50T3JkZXJlZE1hcD4gbV9pbWFnZU1hcHNCeU5hbWU7CisgICAgc3RkOjp1bmlxdWVf
cHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9sYWJlbHNCeUZvckF0dHJpYnV0ZTsKIAotICAgIE93
blB0cjxJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk+IG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk+IG1faWRUYXJn
ZXRPYnNlcnZlclJlZ2lzdHJ5OwogCiAgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2VsZWN0aW9uPiBt
X3NlbGVjdGlvbjsKIH07Cg==
</data>
<flag name="review"
          id="245675"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>