<?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>99843</bug_id>
          
          <creation_ts>2012-10-19 08:39:22 -0700</creation_ts>
          <short_desc>Maintain a list of active CSS stylesheets</short_desc>
          <delta_ts>2012-10-19 12:18:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>glenn</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>746323</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-10-19 08:39:22 -0700</bug_when>
    <thetext>Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining a list of active CSS stylesheets separately simplifies code in number of places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746349</commentid>
    <comment_count>1</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2012-10-19 08:59:43 -0700</bug_when>
    <thetext>I wonder if the code shouldn&apos;t maintain (internally) two separate lists, one for CSS, another for XSLT, and then simply merge them when returning a list from CSS OM. Since there are no (external) add/remove operators on an OM returned list, then it could simply be a copy, rather than live, yes?

Note that in CSS OM ED, at least at the moment, there is no instance of StyleSheet that is not a CSSStyleSheet; i.e., it doesn&apos;t explicitly define (or preclude) another concrete flavor of StyleSheet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746465</commentid>
    <comment_count>2</comment_count>
      <attachid>169654</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-10-19 11:14:44 -0700</bug_when>
    <thetext>Created attachment 169654
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746513</commentid>
    <comment_count>3</comment_count>
      <attachid>169654</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-19 11:59:46 -0700</bug_when>
    <thetext>Comment on attachment 169654
patch

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

Yup, this is nicer.

&gt; Source/WebCore/css/StyleResolver.cpp:408
&gt; -void StyleResolver::appendAuthorStylesheets(unsigned firstNew, const Vector&lt;RefPtr&lt;StyleSheet&gt; &gt;&amp; stylesheets)
&gt; +void StyleResolver::appendAuthorStylesheets(unsigned firstNew, const Vector&lt;RefPtr&lt;CSSStyleSheet&gt; &gt;&amp; styleSheets)

Stylesheets vs styleSheets in function name vs parameter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746521</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-10-19 12:18:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/131929</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169654</attachid>
            <date>2012-10-19 11:14:44 -0700</date>
            <delta_ts>2012-10-19 11:59:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>authorstylesheet-refactor-2.patch</filename>
            <type>text/plain</type>
            <size>15202</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTkwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTEwLTE5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNYWludGFpbiBhIGxpc3Qgb2Yg
YWN0aXZlIENTUyBzdHlsZXNoZWV0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDdXJyZW50bHkgd2UgbWFpbnRhaW4gYSBwZXItZG9jdW1lbnQgbGlzdCBv
ZiBzdHlsZXNoZWV0cyB0aGF0IG1hdGNoZXMgd2hhdCBpcyByZXR1cm5lZCBieSB0aGUgU3R5bGVT
aGVldExpc3QgRE9NIEFQSS4gCisgICAgICAgIFRoaXMgbGlzdCBjb250YWlucyBib3RoIENTUyBh
bmQgWFNMVCBzdHlsZXNoZWV0cyB3aGljaCBpbnRlcm5hbGx5IGhhdmUgYmFzaWNhbGx5IG5vdGhp
bmcgaW4gY29tbW9uLiBNYWludGFpbmluZyAKKyAgICAgICAgYSBsaXN0IG9mIGFjdGl2ZSBDU1Mg
c3R5bGVzaGVldHMgc2VwYXJhdGVseSBzaW1wbGlmaWVzIGNvZGUgaW4gbnVtYmVyIG9mIHBsYWNl
cy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
ZXNvbHZlcjo6YWRkU3R5bGVzaGVldHNGcm9tU2VhbWxlc3NQYXJlbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlc2hlZXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbGxlY3RDU1NPTVdyYXBwZXJzKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNv
bHZlci5oOgorICAgICAgICAoU3R5bGVSZXNvbHZlcik6CisgICAgICAgICogY3NzL1N0eWxlU2hl
ZXRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRMaXN0OjpzdHlsZVNoZWV0
cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0TGlzdDo6ZGV0YWNoRnJvbURvY3VtZW50
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldENvbXBhdGliaWxpdHlNb2RlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRTdHlsZVNo
ZWV0Q29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uOjphbmFseXplU3R5bGVTaGVldENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpz
dHlsZVNoZWV0c1VzZVJlbVVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbHRlckVuYWJsZWRD
U1NTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OnVwZGF0ZUFjdGl2ZVN0eWxlU2hlZXRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6c3R5bGVTaGVl
dHNGb3JTdHlsZVNoZWV0TGlzdCk6CisgICAgICAgIChEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmFj
dGl2ZUF1dGhvclN0eWxlU2hlZXRzKToKKwogMjAxMi0xMC0xOSAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIExvY2FsaXplcjo6bW9udGhGb3JtYXQgdG8g
Y29uc3RydWN0IGlucHV0W3R5cGU9bW9udGhdIFVJCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwCShyZXZpc2lvbiAxMzE4ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNyw3ICszMzcsNyBAQCBTdHlsZVJl
c29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkCiAjZW5kaWYKIAogICAgIGFkZFN0eWxl
c2hlZXRzRnJvbVNlYW1sZXNzUGFyZW50cygpOwotICAgIGFwcGVuZEF1dGhvclN0eWxlc2hlZXRz
KDAsIHN0eWxlU2hlZXRDb2xsZWN0aW9uLT5hdXRob3JTdHlsZVNoZWV0cygpKTsKKyAgICBhcHBl
bmRBdXRob3JTdHlsZXNoZWV0cygwLCBzdHlsZVNoZWV0Q29sbGVjdGlvbi0+YWN0aXZlQXV0aG9y
U3R5bGVTaGVldHMoKSk7CiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRkU3R5bGVzaGVldHNG
cm9tU2VhbWxlc3NQYXJlbnRzKCkKQEAgLTM0NSwxMCArMzQ1LDEwIEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6YWRkU3R5bGVzaGVldHNGcm9tU2UKICAgICAvLyBCdWlsZCBhIGxpc3Qgb2Ygc3R5bGVz
aGVldCBsaXN0cyBmcm9tIG91ciBhbmNlc3RvcnMsIGFuZCB3YWxrIHRoYXQKICAgICAvLyBsaXN0
IGluIHJldmVyc2Ugb3JkZXIgc28gdGhhdCB0aGUgcm9vdC1tb3N0IHNoZWV0cyBhcmUgYXBwZW5k
ZWQgZmlyc3QuCiAgICAgRG9jdW1lbnQqIGNoaWxkRG9jdW1lbnQgPSBkb2N1bWVudCgpOwotICAg
IFZlY3Rvcjxjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlU2hlZXQ+ID4qID4gYW5jZXN0b3JTaGVl
dHM7CisgICAgVmVjdG9yPGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiogPiBh
bmNlc3RvclNoZWV0czsKICAgICB3aGlsZSAoSFRNTElGcmFtZUVsZW1lbnQqIHBhcmVudElGcmFt
ZSA9IGNoaWxkRG9jdW1lbnQtPnNlYW1sZXNzUGFyZW50SUZyYW1lKCkpIHsKICAgICAgICAgRG9j
dW1lbnQqIHBhcmVudERvY3VtZW50ID0gcGFyZW50SUZyYW1lLT5kb2N1bWVudCgpOwotICAgICAg
ICBhbmNlc3RvclNoZWV0cy5hcHBlbmQoJnBhcmVudERvY3VtZW50LT5zdHlsZVNoZWV0Q29sbGVj
dGlvbigpLT5hdXRob3JTdHlsZVNoZWV0cygpKTsKKyAgICAgICAgYW5jZXN0b3JTaGVldHMuYXBw
ZW5kKCZwYXJlbnREb2N1bWVudC0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS0+YWN0aXZlQXV0aG9y
U3R5bGVTaGVldHMoKSk7CiAgICAgICAgIGNoaWxkRG9jdW1lbnQgPSBwYXJlbnREb2N1bWVudDsK
ICAgICB9CiAgICAgZm9yIChpbnQgaSA9IGFuY2VzdG9yU2hlZXRzLnNpemUoKSAtIDE7IGkgPj0g
MDsgaS0tKQpAQCAtNDA1LDE3ICs0MDUsMTQgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpyZXNldEF1
dGhvclN0eWxlKCkKICAgICBtX2F1dGhvclN0eWxlLT5kaXNhYmxlQXV0b1Nocmlua1RvRml0KCk7
CiB9CiAKLXZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVzaGVldHModW5zaWdu
ZWQgZmlyc3ROZXcsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4gPiYgc3R5bGVzaGVl
dHMpCit2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlc2hlZXRzKHVuc2lnbmVk
IGZpcnN0TmV3LCBjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4mIHN0eWxlU2hl
ZXRzKQogewogICAgIC8vIFRoaXMgaGFuZGxlcyBzaGVldHMgYWRkZWQgdG8gdGhlIGVuZCBvZiB0
aGUgc3R5bGVzaGVldCBsaXN0IG9ubHkuIEluIG90aGVyIGNhc2VzIHRoZSBzdHlsZSByZXNvbHZl
cgogICAgIC8vIG5lZWRzIHRvIGJlIHJlY29uc3RydWN0ZWQuIFRvIGhhbmRsZSBpbnNlcnRpb25z
IHRvbyB0aGUgcnVsZSBvcmRlciBudW1iZXJzIHdvdWxkIG5lZWQgdG8gYmUgdXBkYXRlZC4KLSAg
ICB1bnNpZ25lZCBzaXplID0gc3R5bGVzaGVldHMuc2l6ZSgpOworICAgIHVuc2lnbmVkIHNpemUg
PSBzdHlsZVNoZWV0cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gZmlyc3ROZXc7IGkg
PCBzaXplOyArK2kpIHsKLSAgICAgICAgaWYgKCFzdHlsZXNoZWV0c1tpXS0+aXNDU1NTdHlsZVNo
ZWV0KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgQ1NTU3R5bGVTaGVldCogY3Nz
U2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVzaGVldHNbaV0uZ2V0KCkp
OwotICAgICAgICBpZiAoY3NzU2hlZXQtPmRpc2FibGVkKCkpCi0gICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgQ1NTU3R5bGVTaGVldCogY3NzU2hlZXQgPSBzdHlsZVNoZWV0c1tpXS5nZXQo
KTsKKyAgICAgICAgQVNTRVJUKCFjc3NTaGVldC0+ZGlzYWJsZWQoKSk7CiAgICAgICAgIGlmIChj
c3NTaGVldC0+bWVkaWFRdWVyaWVzKCkgJiYgIW1fbWVkaXVtLT5ldmFsKGNzc1NoZWV0LT5tZWRp
YVF1ZXJpZXMoKSwgdGhpcykpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgU3R5bGVT
aGVldENvbnRlbnRzKiBzaGVldCA9IGNzc1NoZWV0LT5jb250ZW50cygpOwpAQCAtMjYwOCwxMyAr
MjYwNSwxMCBAQCBzdGF0aWMgdm9pZCBjb2xsZWN0Q1NTT01XcmFwcGVycyhIYXNoTWFwCiAKIHN0
YXRpYyB2b2lkIGNvbGxlY3RDU1NPTVdyYXBwZXJzKEhhc2hNYXA8U3R5bGVSdWxlKiwgUmVmUHRy
PENTU1N0eWxlUnVsZT4gPiYgd3JhcHBlck1hcCwgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlv
biogc3R5bGVTaGVldENvbGxlY3Rpb24pCiB7Ci0gICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHls
ZVNoZWV0PiA+JiBzdHlsZVNoZWV0cyA9IHN0eWxlU2hlZXRDb2xsZWN0aW9uLT5hdXRob3JTdHls
ZVNoZWV0cygpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdHlsZVNoZWV0cy5zaXpl
KCk7ICsraSkgewotICAgICAgICBTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gc3R5bGVTaGVldHNb
aV0uZ2V0KCk7Ci0gICAgICAgIGlmICghc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCi0g
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY29sbGVjdENTU09NV3JhcHBlcnMod3JhcHBl
ck1hcCwgc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpKTsKLSAgICB9Cisg
ICAgY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+JiBzdHlsZVNoZWV0cyA9IHN0
eWxlU2hlZXRDb2xsZWN0aW9uLT5hY3RpdmVBdXRob3JTdHlsZVNoZWV0cygpOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBzdHlsZVNoZWV0cy5zaXplKCk7ICsraSkKKyAgICAgICAgY29s
bGVjdENTU09NV3JhcHBlcnMod3JhcHBlck1hcCwgc3R5bGVTaGVldHNbaV0uZ2V0KCkpOworCiAg
ICAgY29sbGVjdENTU09NV3JhcHBlcnMod3JhcHBlck1hcCwgc3R5bGVTaGVldENvbGxlY3Rpb24t
PnBhZ2VVc2VyU2hlZXQoKSk7CiAgICAgewogICAgICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPENT
U1N0eWxlU2hlZXQ+ID4qIHBhZ2VHcm91cFVzZXJTaGVldHMgPSBzdHlsZVNoZWV0Q29sbGVjdGlv
bi0+cGFnZUdyb3VwVXNlclNoZWV0cygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5oCShyZXZpc2lvbiAxMzE4ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzUGFyZW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50Tm9kZTsgfQogCiAgICAgdm9p
ZCByZXNldEF1dGhvclN0eWxlKCk7Ci0gICAgdm9pZCBhcHBlbmRBdXRob3JTdHlsZXNoZWV0cyh1
bnNpZ25lZCBmaXJzdE5ldywgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+Jik7Cisg
ICAgdm9pZCBhcHBlbmRBdXRob3JTdHlsZXNoZWV0cyh1bnNpZ25lZCBmaXJzdE5ldywgY29uc3Qg
VmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+Jik7CiAgICAgCiAgICAgLy8gRmluZCB0aGUg
aWRzIG9yIGNsYXNzZXMgdGhlIHNlbGVjdG9ycyBvbiBhIHN0eWxlc2hlZXQgYXJlIHNjb3BlZCB0
by4gVGhlIHNlbGVjdG9ycyBvbmx5IGFwcGx5IHRvIGVsZW1lbnRzIGluIHN1YnRyZWVzIHdoZXJl
IHRoZSByb290IGVsZW1lbnQgbWF0Y2hlcyB0aGUgc2NvcGUuCiAgICAgc3RhdGljIGJvb2wgZGV0
ZXJtaW5lU3R5bGVzaGVldFNlbGVjdG9yU2NvcGVzKFN0eWxlU2hlZXRDb250ZW50cyosIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nSW1wbCo+JiBpZFNjb3BlcywgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBs
Kj4mIGNsYXNzU2NvcGVzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0TGlz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmNw
cAkocmV2aXNpb24gMTMxODg0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTIgKzQ1LDEyIEBAIGlubGluZSBjb25zdCBWZWN0
b3I8UmVmUHRyPFN0eWxlU2hlZXQ+ID4KIHsKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAg
IHJldHVybiBtX2RldGFjaGVkU3R5bGVTaGVldHM7Ci0gICAgcmV0dXJuIG1fZG9jdW1lbnQtPnN0
eWxlU2hlZXRDb2xsZWN0aW9uKCktPmF1dGhvclN0eWxlU2hlZXRzKCk7CisgICAgcmV0dXJuIG1f
ZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCktPnN0eWxlU2hlZXRzRm9yU3R5bGVTaGVl
dExpc3QoKTsKIH0KIAogdm9pZCBTdHlsZVNoZWV0TGlzdDo6ZGV0YWNoRnJvbURvY3VtZW50KCkK
IHsKLSAgICBtX2RldGFjaGVkU3R5bGVTaGVldHMgPSBtX2RvY3VtZW50LT5zdHlsZVNoZWV0Q29s
bGVjdGlvbigpLT5hdXRob3JTdHlsZVNoZWV0cygpOworICAgIG1fZGV0YWNoZWRTdHlsZVNoZWV0
cyA9IG1fZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCktPnN0eWxlU2hlZXRzRm9yU3R5
bGVTaGVldExpc3QoKTsKICAgICBtX2RvY3VtZW50ID0gMDsKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxMzE4ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTcsNyArNzk3LDcgQEAgdm9pZCBEb2N1bWVu
dDo6c2V0Q29tcGF0aWJpbGl0eU1vZGUoQ29tcAogewogICAgIGlmIChtX2NvbXBhdGliaWxpdHlN
b2RlTG9ja2VkIHx8IG1vZGUgPT0gbV9jb21wYXRpYmlsaXR5TW9kZSkKICAgICAgICAgcmV0dXJu
OwotICAgIEFTU0VSVChtX3N0eWxlU2hlZXRDb2xsZWN0aW9uLT5hdXRob3JTdHlsZVNoZWV0cygp
LmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1fc3R5bGVTaGVldENvbGxlY3Rpb24tPmFjdGl2ZUF1
dGhvclN0eWxlU2hlZXRzKCkuaXNFbXB0eSgpKTsKICAgICBib29sIHdhc0luUXVpcmtzTW9kZSA9
IGluUXVpcmtzTW9kZSgpOwogICAgIG1fY29tcGF0aWJpbGl0eU1vZGUgPSBtb2RlOwogICAgIHNl
bGVjdG9yUXVlcnlDYWNoZSgpLT5pbnZhbGlkYXRlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAx
MzE4ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3NCw3ICszNzQsNyBAQCBib29sIERvY3VtZW50U3R5
bGVTaGVldENvbGxlY3Rpb246OnRlc3RBCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIERv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmFuYWx5emVTdHlsZVNoZWV0Q2hhbmdlKFVwZGF0
ZUZsYWcgdXBkYXRlRmxhZywgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiBuZXdT
dHlsZXNoZWV0cywgU3R5bGVSZXNvbHZlclVwZGF0ZVR5cGUmIHN0eWxlUmVzb2x2ZXJVcGRhdGVU
eXBlLCBib29sJiByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYykKK3ZvaWQgRG9jdW1lbnRTdHlsZVNo
ZWV0Q29sbGVjdGlvbjo6YW5hbHl6ZVN0eWxlU2hlZXRDaGFuZ2UoVXBkYXRlRmxhZyB1cGRhdGVG
bGFnLCBjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4mIG5ld1N0eWxlc2hlZXRz
LCBTdHlsZVJlc29sdmVyVXBkYXRlVHlwZSYgc3R5bGVSZXNvbHZlclVwZGF0ZVR5cGUsIGJvb2wm
IHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjKQogewogICAgIHN0eWxlUmVzb2x2ZXJVcGRhdGVUeXBl
ID0gUmVjb25zdHJ1Y3Q7CiAgICAgcmVxdWlyZXNGdWxsU3R5bGVSZWNhbGMgPSB0cnVlOwpAQCAt
Mzk4LDE1ICszOTgsMTUgQEAgdm9pZCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphbmFs
eQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGaW5kIG91dCB3aGljaCBzdHlsZXNoZWV0cyBh
cmUgbmV3LgotICAgIHVuc2lnbmVkIG9sZFN0eWxlc2hlZXRDb3VudCA9IG1fYXV0aG9yU3R5bGVT
aGVldHMuc2l6ZSgpOworICAgIHVuc2lnbmVkIG9sZFN0eWxlc2hlZXRDb3VudCA9IG1fYWN0aXZl
QXV0aG9yU3R5bGVTaGVldHMuc2l6ZSgpOwogICAgIGlmIChuZXdTdHlsZXNoZWV0Q291bnQgPCBv
bGRTdHlsZXNoZWV0Q291bnQpCiAgICAgICAgIHJldHVybjsKLSAgICBWZWN0b3I8U3R5bGVTaGVl
dCo+IGFkZGVkU2hlZXRzOworICAgIFZlY3RvcjxDU1NTdHlsZVNoZWV0Kj4gYWRkZWRTaGVldHM7
CiAgICAgdW5zaWduZWQgbmV3SW5kZXggPSAwOwogICAgIGZvciAodW5zaWduZWQgb2xkSW5kZXgg
PSAwOyBvbGRJbmRleCA8IG9sZFN0eWxlc2hlZXRDb3VudDsgKytvbGRJbmRleCkgewogICAgICAg
ICBpZiAobmV3SW5kZXggPj0gbmV3U3R5bGVzaGVldENvdW50KQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB3aGlsZSAobV9hdXRob3JTdHlsZVNoZWV0c1tvbGRJbmRleF0gIT0gbmV3U3R5
bGVzaGVldHNbbmV3SW5kZXhdKSB7CisgICAgICAgIHdoaWxlIChtX2FjdGl2ZUF1dGhvclN0eWxl
U2hlZXRzW29sZEluZGV4XSAhPSBuZXdTdHlsZXNoZWV0c1tuZXdJbmRleF0pIHsKICAgICAgICAg
ICAgIGFkZGVkU2hlZXRzLmFwcGVuZChuZXdTdHlsZXNoZWV0c1tuZXdJbmRleF0uZ2V0KCkpOwog
ICAgICAgICAgICAgKytuZXdJbmRleDsKICAgICAgICAgICAgIGlmIChuZXdJbmRleCA9PSBuZXdT
dHlsZXNoZWV0Q291bnQpCkBAIC00MjcsMjcgKzQyNywzMiBAQCB2b2lkIERvY3VtZW50U3R5bGVT
aGVldENvbGxlY3Rpb246OmFuYWx5CiAgICAgaWYgKCFtX2RvY3VtZW50LT5ib2R5KCkgfHwgbV9k
b2N1bWVudC0+aGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpKQogICAgICAgICByZXR1cm47
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFkZGVkU2hlZXRzLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgIGlmICghYWRkZWRTaGVldHNbaV0tPmlzQ1NTU3R5bGVTaGVldCgpKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoYWRkZWRTaGVldHNbaV0tPmRpc2FibGVkKCkpCi0g
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHRlc3RBZGRlZFN0eWxlU2hlZXRSZXF1
aXJlc1N0eWxlUmVjYWxjKHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihhZGRlZFNoZWV0c1tp
XSktPmNvbnRlbnRzKCkpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICByZXF1aXJl
c0Z1bGxTdHlsZVJlY2FsYyA9IGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBzdHlsZVNoZWV0c1Vz
ZVJlbVVuaXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4gPiYgc2hlZXRzKQorc3Rh
dGljIGJvb2wgc3R5bGVTaGVldHNVc2VSZW1Vbml0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0
eWxlU2hlZXQ+ID4mIHNoZWV0cykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2hl
ZXRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmICghc2hlZXRzW2ldLT5pc0NTU1N0eWxlU2hl
ZXQoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8Q1NT
U3R5bGVTaGVldCo+KHNoZWV0c1tpXS5nZXQoKSktPmNvbnRlbnRzKCktPnVzZXNSZW1Vbml0cygp
KQorICAgICAgICBpZiAoc2hlZXRzW2ldLT5jb250ZW50cygpLT51c2VzUmVtVW5pdHMoKSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0
YXRpYyB2b2lkIGZpbHRlckVuYWJsZWRDU1NTdHlsZVNoZWV0cyhWZWN0b3I8UmVmUHRyPENTU1N0
eWxlU2hlZXQ+ID4mIHJlc3VsdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiBz
aGVldHMpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNoZWV0cy5zaXplKCk7ICsr
aSkgeworICAgICAgICBpZiAoIXNoZWV0c1tpXS0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKHNoZWV0c1tpXS0+ZGlzYWJsZWQoKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXN1bHQuYXBwZW5kKHN0YXRpY19jYXN0PENTU1N0
eWxlU2hlZXQqPihzaGVldHNbaV0uZ2V0KCkpKTsKKyAgICB9Cit9CisKIGJvb2wgRG9jdW1lbnRT
dHlsZVNoZWV0Q29sbGVjdGlvbjo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlRmxhZyB1
cGRhdGVGbGFnKQogewogICAgIGlmIChtX2RvY3VtZW50LT5pblN0eWxlUmVjYWxjKCkpIHsKQEAg
LTQ2MiwxMiArNDY3LDE1IEBAIGJvb2wgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6dXBk
YXQKICAgICBpZiAoIW1fZG9jdW1lbnQtPnJlbmRlcmVyKCkgfHwgIW1fZG9jdW1lbnQtPmF0dGFj
aGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVT
aGVldD4gPiBuZXdTdHlsZXNoZWV0czsKLSAgICBjb2xsZWN0QWN0aXZlU3R5bGVTaGVldHMobmV3
U3R5bGVzaGVldHMpOworICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4gPiBhY3RpdmVTdHls
ZVNoZWV0czsKKyAgICBjb2xsZWN0QWN0aXZlU3R5bGVTaGVldHMoYWN0aXZlU3R5bGVTaGVldHMp
OworCisgICAgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+IGFjdGl2ZUNTU1N0eWxlU2hl
ZXRzOworICAgIGZpbHRlckVuYWJsZWRDU1NTdHlsZVNoZWV0cyhhY3RpdmVDU1NTdHlsZVNoZWV0
cywgYWN0aXZlU3R5bGVTaGVldHMpOwogCiAgICAgU3R5bGVSZXNvbHZlclVwZGF0ZVR5cGUgc3R5
bGVSZXNvbHZlclVwZGF0ZVR5cGU7CiAgICAgYm9vbCByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYzsK
LSAgICBhbmFseXplU3R5bGVTaGVldENoYW5nZSh1cGRhdGVGbGFnLCBuZXdTdHlsZXNoZWV0cywg
c3R5bGVSZXNvbHZlclVwZGF0ZVR5cGUsIHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjKTsKKyAgICBh
bmFseXplU3R5bGVTaGVldENoYW5nZSh1cGRhdGVGbGFnLCBhY3RpdmVDU1NTdHlsZVNoZWV0cywg
c3R5bGVSZXNvbHZlclVwZGF0ZVR5cGUsIHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjKTsKIAogICAg
IGlmIChzdHlsZVJlc29sdmVyVXBkYXRlVHlwZSA9PSBSZWNvbnN0cnVjdCkKICAgICAgICAgbV9k
b2N1bWVudC0+Y2xlYXJTdHlsZVJlc29sdmVyKCk7CkBAIC00NzUsMTYgKzQ4MywxNyBAQCBib29s
IERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OnVwZGF0CiAgICAgICAgIFN0eWxlUmVzb2x2
ZXIqIHN0eWxlUmVzb2x2ZXIgPSBtX2RvY3VtZW50LT5zdHlsZVJlc29sdmVyKCk7CiAgICAgICAg
IGlmIChzdHlsZVJlc29sdmVyVXBkYXRlVHlwZSA9PSBSZXNldCkgewogICAgICAgICAgICAgc3R5
bGVSZXNvbHZlci0+cmVzZXRBdXRob3JTdHlsZSgpOwotICAgICAgICAgICAgc3R5bGVSZXNvbHZl
ci0+YXBwZW5kQXV0aG9yU3R5bGVzaGVldHMoMCwgbmV3U3R5bGVzaGVldHMpOworICAgICAgICAg
ICAgc3R5bGVSZXNvbHZlci0+YXBwZW5kQXV0aG9yU3R5bGVzaGVldHMoMCwgYWN0aXZlQ1NTU3R5
bGVTaGVldHMpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKHN0eWxlUmVz
b2x2ZXJVcGRhdGVUeXBlID09IEFkZGl0aXZlKTsKLSAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXIt
PmFwcGVuZEF1dGhvclN0eWxlc2hlZXRzKG1fYXV0aG9yU3R5bGVTaGVldHMuc2l6ZSgpLCBuZXdT
dHlsZXNoZWV0cyk7CisgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5hcHBlbmRBdXRob3JTdHls
ZXNoZWV0cyhtX2FjdGl2ZUF1dGhvclN0eWxlU2hlZXRzLnNpemUoKSwgYWN0aXZlQ1NTU3R5bGVT
aGVldHMpOwogICAgICAgICB9CiAgICAgICAgIHJlc2V0Q1NTRmVhdHVyZUZsYWdzKCk7CiAgICAg
fQotICAgIG1fYXV0aG9yU3R5bGVTaGVldHMuc3dhcChuZXdTdHlsZXNoZWV0cyk7CisgICAgbV9h
Y3RpdmVBdXRob3JTdHlsZVNoZWV0cy5zd2FwKGFjdGl2ZUNTU1N0eWxlU2hlZXRzKTsKKyAgICBt
X3N0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3Quc3dhcChhY3RpdmVTdHlsZVNoZWV0cyk7CiAK
LSAgICBtX3VzZXNSZW1Vbml0cyA9IHN0eWxlU2hlZXRzVXNlUmVtVW5pdHMobV9hdXRob3JTdHls
ZVNoZWV0cyk7CisgICAgbV91c2VzUmVtVW5pdHMgPSBzdHlsZVNoZWV0c1VzZVJlbVVuaXRzKG1f
YWN0aXZlQXV0aG9yU3R5bGVTaGVldHMpOwogICAgIG1fbmVlZHNVcGRhdGVBY3RpdmVTdHlsZXNo
ZWV0c09uU3R5bGVSZWNhbGMgPSBmYWxzZTsKIAogICAgIG1fZG9jdW1lbnQtPm5vdGlmeVNlYW1s
ZXNzQ2hpbGREb2N1bWVudHNPZlN0eWxlc2hlZXRVcGRhdGUoKTsKQEAgLTQ5OCw3ICs1MDcsOCBA
QCB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OnJlcG9yCiAgICAgaW5mby5hZGRN
ZW1iZXIobV9wYWdlVXNlclNoZWV0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2VHcm91cFVz
ZXJTaGVldHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fdXNlclNoZWV0cyk7Ci0gICAgaW5mby5h
ZGRNZW1iZXIobV9hdXRob3JTdHlsZVNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hY3Rp
dmVBdXRob3JTdHlsZVNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVNoZWV0c0Zv
clN0eWxlU2hlZXRMaXN0KTsKICAgICBpbmZvLmFkZExpc3RIYXNoU2V0KG1fc3R5bGVTaGVldENh
bmRpZGF0ZU5vZGVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3ByZWZlcnJlZFN0eWxlc2hlZXRT
ZXROYW1lKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlbGVjdGVkU3R5bGVzaGVldFNldE5hbWUp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29s
bGVjdGlvbi5oCShyZXZpc2lvbiAxMzE4ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw5IEBA
IHB1YmxpYzoKICAgICBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uKERvY3VtZW50Kik7CiAg
ICAgfkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24oKTsKIAotICAgIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8U3R5bGVTaGVldD4gPiYgYXV0aG9yU3R5bGVTaGVldHMoKSB7IHJldHVybiBtX2F1dGhv
clN0eWxlU2hlZXRzOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiBz
dHlsZVNoZWV0c0ZvclN0eWxlU2hlZXRMaXN0KCkgeyByZXR1cm4gbV9zdHlsZVNoZWV0c0ZvclN0
eWxlU2hlZXRMaXN0OyB9CisKKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+
ID4mIGFjdGl2ZUF1dGhvclN0eWxlU2hlZXRzKCkgeyByZXR1cm4gbV9hY3RpdmVBdXRob3JTdHls
ZVNoZWV0czsgfQogCiAgICAgQ1NTU3R5bGVTaGVldCogcGFnZVVzZXJTaGVldCgpOwogICAgIGNv
bnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiogcGFnZUdyb3VwVXNlclNoZWV0cygp
IGNvbnN0OwpAQCAtMTA3LDExICsxMDksMTIgQEAgcHJpdmF0ZToKICAgICAgICAgUmVzZXQsCiAg
ICAgICAgIEFkZGl0aXZlCiAgICAgfTsKLSAgICB2b2lkIGFuYWx5emVTdHlsZVNoZWV0Q2hhbmdl
KFVwZGF0ZUZsYWcsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4gPiYgbmV3U3R5bGVz
aGVldHMsIFN0eWxlUmVzb2x2ZXJVcGRhdGVUeXBlJiwgYm9vbCYgcmVxdWlyZXNGdWxsU3R5bGVS
ZWNhbGMpOworICAgIHZvaWQgYW5hbHl6ZVN0eWxlU2hlZXRDaGFuZ2UoVXBkYXRlRmxhZywgY29u
c3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+JiBuZXdTdHlsZXNoZWV0cywgU3R5bGVS
ZXNvbHZlclVwZGF0ZVR5cGUmLCBib29sJiByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyk7CiAKICAg
ICBEb2N1bWVudCogbV9kb2N1bWVudDsKIAotICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4g
PiBtX2F1dGhvclN0eWxlU2hlZXRzOworICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4gPiBt
X3N0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3Q7CisgICAgVmVjdG9yPFJlZlB0cjxDU1NTdHls
ZVNoZWV0PiA+IG1fYWN0aXZlQXV0aG9yU3R5bGVTaGVldHM7CiAKICAgICAvLyBUcmFjayB0aGUg
bnVtYmVyIG9mIGN1cnJlbnRseSBsb2FkaW5nIHRvcC1sZXZlbCBzdHlsZXNoZWV0cyBuZWVkZWQg
Zm9yIHJlbmRlcmluZy4KICAgICAvLyBTaGVldHMgbG9hZGVkIHVzaW5nIHRoZSBAaW1wb3J0IGRp
cmVjdGl2ZSBhcmUgbm90IGluY2x1ZGVkIGluIHRoaXMgY291bnQuCg==
</data>
<flag name="review"
          id="183031"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>