<?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>12060</bug_id>
          
          <creation_ts>2007-01-01 14:42:34 -0800</creation_ts>
          <short_desc>SVG needs to be wired into the shared attribute system</short_desc>
          <delta_ts>2007-01-15 20:21:48 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>38460</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-01 14:42:34 -0800</bug_when>
    <thetext>SVG needs to be wired into the shared attribute system

HTML has a mechanism for sharing attribute nodes.  SVG has not yet implemented the proper DOM methods in order to wire into this system.

I just haven&apos;t bothered to learn much about the attribute sharing system.  But anyone who has, should find this to be an easy bug to fix.  I don&apos;t expect one needs to know much about the actual SVG attributes to be able to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34851</commentid>
    <comment_count>1</comment_count>
      <attachid>12452</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-15 03:52:34 -0800</bug_when>
    <thetext>Created attachment 12452
a first step in that direction (breaks layout tests)

Unfortunately this breaks all the SVG layout tests.  I expect that this patch is causing us to share RenderStyles and as a result exposing other bugs in SVG code.  I&apos;m not certain however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34854</commentid>
    <comment_count>2</comment_count>
      <attachid>12453</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-15 05:53:53 -0800</bug_when>
    <thetext>Created attachment 12453
Fixed patch

This patch has a beautiful attribute lookup system.  Eventually perhaps that system should be a .in file and auto-generated instead of being inline, but it&apos;s OK for now.

One could make a test to check that &lt;g width=&quot;10px&quot;&gt; is not actually mapped to g.style.width, but I didn&apos;t bother.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34834</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-15 06:41:21 -0800</bug_when>
    <thetext>My patch seems to have no affect on SVG style sharing however.  I turned on STYLE_SHARING_STATS and saw that simple SVGs are already sharing styles (and share no more after this change), and complicated SVGs (like plan.svg) are sharing no styles at all, even with this change.

It looks (from my minimal testing) that style sharing work when only attributes are used (those are mapped correctly -- at least after my change).  inline style declarations seem to kill style sharing, plan.svg is full of inline style declarations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34835</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-15 06:43:35 -0800</bug_when>
    <thetext>It looks like
bool CSSStyleSelector::canShareStyleWithElement(Node* n)
has !s-&gt;inlineStyleDecl() as part of its check.  That would explain why style sharing doesn&apos;t work at all for plan.svg.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34822</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-15 06:52:28 -0800</bug_when>
    <thetext>I filed:
http://bugs.webkit.org/show_bug.cgi?id=12281
asking for the style sharing system to support inline styles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34753</commentid>
    <comment_count>6</comment_count>
      <attachid>12453</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-01-15 20:10:52 -0800</bug_when>
    <thetext>Comment on attachment 12453
Fixed patch

static HashMap&lt;AtomicStringImpl*, int&gt;* propertyNameToIdMap = 0;

Remove the &quot;= 0&quot;.  Statics in a function are already initialized to 0.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34755</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-01-15 20:21:48 -0800</bug_when>
    <thetext>Well, lots more could be wired up.  But this is a big step in the right direction.

r18876,</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12452</attachid>
            <date>2007-01-15 03:52:34 -0800</date>
            <delta_ts>2007-01-15 05:54:24 -0800</delta_ts>
            <desc>a first step in that direction (breaks layout tests)</desc>
            <filename>try.patch</filename>
            <type>text/plain</type>
            <size>3882</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDctMDEt
MTUgIEVyaWMgU2VpZGVsICA8ZXJpY0Blc2VpZGVsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBoeWF0dC4KKworICAgICAgICBBZGQgbWluaW1hbCBtYXBUb0VudHJ5IHN1cHBvcnQgZm9yIFNW
Ry4KKworICAgICAgICBObyB0ZXN0cyBwb3NzaWJsZSwgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQg
b25seS4KKworICAgICAgICAqIGRvbS9NYXBwZWRBdHRyaWJ1dGVFbnRyeS5oOgorICAgICAgICAo
V2ViQ29yZTo6KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTdHlsZWRFbGVtZW50OjptYXBUb0VudHJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oOgorCiAyMDA3LTAxLTE1ICBEYXZpZCBIeWF0
dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggIGZvciAxMjI3NSwgbmVnYXRpdmUg
bWFyZ2lucyBjb25mdXNlIHBhZ2UgYnJlYWtzLgpJbmRleDogZG9tL01hcHBlZEF0dHJpYnV0ZUVu
dHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gZG9tL01hcHBlZEF0dHJpYnV0ZUVudHJ5LmgJKHJldmlzaW9u
IDE4ODU3KQorKysgZG9tL01hcHBlZEF0dHJpYnV0ZUVudHJ5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDYgKzQzLDkgQEAgZW51bSBNYXBwZWRBdHRyaWJ1dGVFbnRyeSB7CiAgICAgLCBlQ2FwdGlv
bgogICAgICwgZUJETwogICAgICwgZVByZQorI2lmZGVmIFNWR19TVVBQT1JUCisgICAgLCBlU1ZH
CisjZW5kaWYKIC8vIFdoZW4gYWRkaW5nIG5ldyBlbnRyaWVzLCBtYWtlIHN1cmUgdG8ga2VlcCBl
TGFzdEVudHJ5IGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgICAgLCBlTGFzdEVudHJ5CiB9OwpJ
bmRleDoga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcy
L3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAkocmV2aXNpb24gMTg4NTcpCisrKyBrc3ZnMi9zdmcv
U1ZHU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDE2ICs2NCwzNiBAQCBS
ZW5kZXJPYmplY3QqIFNWR1N0eWxlZEVsZW1lbnQ6OmNyZWF0ZVJlCiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlclBhdGgoc3R5bGUsIHRoaXMpOwogfQogCisvLyBGSVhNRTogVXNpbmcgdGhp
cyBmdW5jdGlvbiBpbiBtYXBUb0VudHJ5IGFuZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZSBpcyBraW5k
YSBhIGhhY2ssIGFuZCB3aWxsCisvLyBsZWFkIHRvIGluY29ycmVjdCBiZWhhdmlvciBpbiB0d28g
d2F5czoKKy8vIDEuIGNlcnRhaW4gQ1NTIGF0dHJpYnV0ZXMgbWlnaHQgbm90IGhhdmUgdGhlIHNh
bWUgYXR0cmlidXRlIG5hbWUgYXMgdGhleSBkbyBDU1MgcHJvcGVydHkgbmFtZQorLy8gMi4gaXQn
cyBwb3NzaWJsZSB0aGF0IG5vdCBhbGwgQ1NTIHByb3BlcnRpZXMgc2hvdWxkIGJlIHNldHRhYmxl
IHZpYSBYTUwgYXR0cmlidXRlcworLy8gVGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSBhIHN0ZXAg
aW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiwgaXQganVzdCBzaG91bGRuJ3QgcGVyZm9ybSB0aGUgbG9v
a3VwCisvLyBhZ2FpbnN0IHRoZSBmdWxsIGxpc3Qgb2YgQ1NTIHByb3BlcnRpZXMsIGJ1dCBpbnN0
ZWFkIHVzZSBhIHByZWNpc2Ugc3ViLXNldC4KK3N0YXRpYyBpbmxpbmUgaW50IGNzc1Byb3BlcnR5
SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQorewor
ICAgIERlcHJlY2F0ZWRTdHJpbmcgcHJvcGVydHlOYW1lID0gYXR0ck5hbWUubG9jYWxOYW1lKCku
ZGVwcmVjYXRlZFN0cmluZygpOworICAgIGludCBwcm9wSWQgPSBnZXRQcm9wZXJ0eUlEKHByb3Bl
cnR5TmFtZS5hc2NpaSgpLCBwcm9wZXJ0eU5hbWUubGVuZ3RoKCkpOworICAgIGlmIChwcm9wSWQg
PT0gMCkKKyAgICAgICAgcHJvcElkID0gU1ZHOjpnZXRTVkdDU1NQcm9wZXJ0eUlEKHByb3BlcnR5
TmFtZS5hc2NpaSgpLCBwcm9wZXJ0eU5hbWUubGVuZ3RoKCkpOworICAgIHJldHVybiBwcm9wSWQ7
Cit9CisKK2Jvb2wgU1ZHU3R5bGVkRWxlbWVudDo6bWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSwgTWFwcGVkQXR0cmlidXRlRW50cnkmIHJlc3VsdCkgY29uc3QKK3sKKyAg
ICBpZiAoY3NzUHJvcGVydHlJZEZvclNWR0F0dHJpYnV0ZU5hbWUoYXR0ck5hbWUpID4gMCkgewor
ICAgICAgICByZXN1bHQgPSBlU1ZHOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IHJldHVybiBTVkdFbGVtZW50OjptYXBUb0VudHJ5KGF0dHJOYW1lLCByZXN1bHQpOworfQorCiB2
b2lkIFNWR1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZSogYXR0cikKIHsKLSAgICBjb25zdCBTdHJpbmcmIHZhbHVlID0gYXR0ci0+dmFsdWUoKTsKICAg
ICAvLyBpZCBhbmQgY2xhc3MgYXJlIGhhbmRsZWQgYnkgU3R5bGVkRWxlbWVudAotICAgIERlcHJl
Y2F0ZWRTdHJpbmcgcVByb3AgPSBhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCkuZGVwcmVjYXRlZFN0
cmluZygpOwotICAgIGludCBwcm9wSWQgPSBnZXRQcm9wZXJ0eUlEKHFQcm9wLmFzY2lpKCksIHFQ
cm9wLmxlbmd0aCgpKTsKLSAgICBpZiAocHJvcElkID09IDApCi0gICAgICAgIHByb3BJZCA9IFNW
Rzo6Z2V0U1ZHQ1NTUHJvcGVydHlJRChxUHJvcC5hc2NpaSgpLCBxUHJvcC5sZW5ndGgoKSk7Cisg
ICAgaW50IHByb3BJZCA9IGNzc1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGF0dHItPm5h
bWUoKSk7CiAgICAgaWYgKHByb3BJZCA+IDApIHsKLSAgICAgICAgYWRkQ1NTUHJvcGVydHkoYXR0
ciwgcHJvcElkLCB2YWx1ZSk7CisgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIHByb3BJZCwg
YXR0ci0+dmFsdWUoKSk7CiAgICAgICAgIHNldENoYW5nZWQoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkocmV2aXNpb24gMTg4NTcpCisrKyBrc3ZnMi9z
dmcvU1ZHU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICAgICAgdmlydHVhbCBTVkdS
ZXNvdXJjZSogY2FudmFzUmVzb3VyY2UoKSB7IHJldHVybiAwOyB9CiAgICAgICAgIAorICAgICAg
ICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0
cmlidXRlRW50cnkmKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0
cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOwogCiAgICAgICAgIFJlbmRlclZpZXcqIHZpZXcoKSBj
b25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12453</attachid>
            <date>2007-01-15 05:53:53 -0800</date>
            <delta_ts>2007-01-15 20:10:52 -0800</delta_ts>
            <desc>Fixed patch</desc>
            <filename>sharing.patch</filename>
            <type>text/plain</type>
            <size>9433</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODU4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDctMDEt
MTUgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBTVkdTdHlsZWRFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZSB0byBvbmx5IG1hcCBTVkctYWxsb3dlZCBDU1MgcHJvcGVydGllcworICAg
ICAgICAoaS5lLiB3aWR0aCBpcyBubyBsb25nZXIgbWFwcGVkIHRvIENTUyBmb3IgU1ZHKQorICAg
ICAgICBBZGQgU1ZHU3R5bGVkRWxlbWVudDo6bWFwVG9FbnRyeSB0byBhbGxvdyBSZW5kZXJTdHls
ZS1zaGFyaW5nCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMDYwCisKKyAgICAgICAgKiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaDoKKyAgICAgICAg
KFdlYkNvcmU6Oik6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3NzUHJvcGVydHlJZEZvck5hbWUpOiBuZXcgaGVscGVyCisgICAg
ICAgIChXZWJDb3JlOjptYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KTogbmV3IGhlbHBlcgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6Y3NzUHJvcGVydHlJZEZvclNWR0F0dHJp
YnV0ZU5hbWUpOiBuZXcgaGVscGVyCisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRFbGVtZW50
OjptYXBUb0VudHJ5KTogYWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IHVzZSBjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRl
TmFtZQorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50Lmg6CisKIDIwMDctMDEt
MTUgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMu
CkluZGV4OiBkb20vTWFwcGVkQXR0cmlidXRlRW50cnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vTWFw
cGVkQXR0cmlidXRlRW50cnkuaAkocmV2aXNpb24gMTg4NTcpCisrKyBkb20vTWFwcGVkQXR0cmli
dXRlRW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsOSBAQCBlbnVtIE1hcHBlZEF0
dHJpYnV0ZUVudHJ5IHsKICAgICAsIGVDYXB0aW9uCiAgICAgLCBlQkRPCiAgICAgLCBlUHJlCisj
aWZkZWYgU1ZHX1NVUFBPUlQKKyAgICAsIGVTVkcKKyNlbmRpZgogLy8gV2hlbiBhZGRpbmcgbmV3
IGVudHJpZXMsIG1ha2Ugc3VyZSB0byBrZWVwIGVMYXN0RW50cnkgYXQgdGhlIGVuZCBvZiB0aGUg
bGlzdC4KICAgICAsIGVMYXN0RW50cnkKIH07CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxODg1NykKKysrIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsMjAgKzY0LDExNCBAQCBSZW5kZXJPYmplY3QqIFNWR1N0eWxlZEVsZW1l
bnQ6OmNyZWF0ZVJlCiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclBhdGgoc3R5bGUsIHRo
aXMpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBjc3NQcm9wZXJ0eUlkRm9yTmFtZShjb25zdCBj
aGFyKiBwcm9wZXJ0eU5hbWUsIGludCBwcm9wZXJ0eUxlbmd0aCkKK3sKKyAgICBpbnQgcHJvcGVy
dHlJZCA9IGdldFByb3BlcnR5SUQocHJvcGVydHlOYW1lLCBwcm9wZXJ0eUxlbmd0aCk7CisgICAg
aWYgKHByb3BlcnR5SWQgPT0gMCkKKyAgICAgICAgcHJvcGVydHlJZCA9IFNWRzo6Z2V0U1ZHQ1NT
UHJvcGVydHlJRChwcm9wZXJ0eU5hbWUsIHByb3BlcnR5TGVuZ3RoKTsKKyAgICByZXR1cm4gcHJv
cGVydHlJZDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkoSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgaW50PiogcHJvcGVydHlOYW1lVG9JZE1hcCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIGNvbnN0IGNoYXIqIGNzc1Byb3BlcnR5TmFt
ZSA9IDApCit7CisgICAgaW50IHByb3BlcnR5SWQgPSAwOworICAgIGlmIChjc3NQcm9wZXJ0eU5h
bWUpCisgICAgICAgIHByb3BlcnR5SWQgPSBjc3NQcm9wZXJ0eUlkRm9yTmFtZShjc3NQcm9wZXJ0
eU5hbWUsIHN0cmxlbihjc3NQcm9wZXJ0eU5hbWUpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgRGVw
cmVjYXRlZFN0cmluZyBwcm9wZXJ0eU5hbWUgPSBhdHRyTmFtZS5sb2NhbE5hbWUoKS5kZXByZWNh
dGVkU3RyaW5nKCk7CisgICAgICAgIHByb3BlcnR5SWQgPSBjc3NQcm9wZXJ0eUlkRm9yTmFtZShw
cm9wZXJ0eU5hbWUuYXNjaWkoKSwgcHJvcGVydHlOYW1lLmxlbmd0aCgpKTsKKyAgICB9CisgICAg
QVNTRVJUKHByb3BlcnR5SWQgPiAwKTsKKyAgICBwcm9wZXJ0eU5hbWVUb0lkTWFwLT5zZXQoYXR0
ck5hbWUubG9jYWxOYW1lKCkuaW1wbCgpLCBwcm9wZXJ0eUlkKTsKK30KKworaW50IFNWR1N0eWxl
ZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQoreworICAgIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwq
LCBpbnQ+KiBwcm9wZXJ0eU5hbWVUb0lkTWFwID0gMDsKKyAgICBpZiAoIXByb3BlcnR5TmFtZVRv
SWRNYXApIHsKKyAgICAgICAgcHJvcGVydHlOYW1lVG9JZE1hcCA9IG5ldyBIYXNoTWFwPEF0b21p
Y1N0cmluZ0ltcGwqLCBpbnQ+OworICAgICAgICAvLyBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgYmFz
ZSBDU1MgYW5kIFNWRyBDU1MgcHJvcGVydGllcyB3aGljaCBhcmUgZXhwb3NlZCBhcyBTVkcgWE1M
IGF0dHJpYnV0ZXMKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBhbGlnbm1lbnRfYmFzZWxpbmVBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRl
VG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBiYXNlbGluZV9zaGlmdEF0dHIpOwor
ICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNs
aXBBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBjbGlwX3BhdGhBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjbGlwX3J1bGVBdHRyKTsKKyAgICAgICAgbWFwQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb2xvckF0dHIpOworICAgICAg
ICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX2lu
dGVycG9sYXRpb25fZmlsdGVyc0F0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGNvbG9yX3Byb2ZpbGVBdHRyKTsKKyAgICAgICAgbWFw
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjdXJzb3JBdHRyKTsK
KyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBk
aXJlY3Rpb25BdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBkaXNwbGF5QXR0cik7CisgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZG9taW5hbnRfYmFzZWxpbmVBdHRyKTsKKyAgICAg
ICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBlbmFibGVf
YmFja2dyb3VuZEF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3Bl
cnR5TmFtZVRvSWRNYXAsIGZpbGxBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmaWxsX29wYWNpdHlBdHRyKTsKKyAgICAgICAgbWFw
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmaWxsX3J1bGVBdHRy
KTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBmaWx0ZXJBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBmbG9vZF9jb2xvckF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZsb29kX29wYWNpdHlBdHRyKTsKKyAgICAg
ICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X2Zh
bWlseUF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGZvbnRfc2l6ZUF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc3RyZXRjaEF0dHIpOworICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfc3R5bGVBdHRy
KTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCBmb250X3ZhcmlhbnRBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBmb250X3dlaWdodEF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGdseXBoX29yaWVudGF0aW9uX2hv
cml6b250YWxBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCBnbHlwaF9vcmllbnRhdGlvbl92ZXJ0aWNhbEF0dHIpOworICAgICAgICBt
YXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGltYWdlX3JlbmRl
cmluZ0F0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGtlcm5pbmdBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBsZXR0ZXJfc3BhY2luZ0F0dHIpOworICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGxpZ2h0aW5nX2NvbG9y
QXR0cik7CisgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgbWFya2VyX2VuZEF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIG1hcmtlcl9taWRBdHRyKTsKKyAgICAgICAgbWFwQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXJrZXJfc3RhcnRBdHRyKTsK
KyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBt
YXNrQXR0cik7CisgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgb3BhY2l0eUF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIG92ZXJmbG93QXR0cik7CisgICAgICAgIG1hcEF0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgcG9pbnRlcl9ldmVudHNBdHRyKTsK
KyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBz
aGFwZV9yZW5kZXJpbmdBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBzdG9wX2NvbG9yQXR0cik7CisgICAgICAgIG1hcEF0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3RvcF9vcGFjaXR5QXR0cik7Cisg
ICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ry
b2tlQXR0cik7CisgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1l
VG9JZE1hcCwgc3Ryb2tlX2Rhc2hhcnJheUF0dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NT
U1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0cm9rZV9kYXNob2Zmc2V0QXR0cik7Cisg
ICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ry
b2tlX2xpbmVjYXBBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9w
ZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfbGluZWpvaW5BdHRyKTsKKyAgICAgICAgbWFwQXR0cmli
dXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdHJva2VfbWl0ZXJsaW1pdEF0
dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIHN0cm9rZV9vcGFjaXR5QXR0cik7CisgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ryb2tlX3dpZHRoQXR0cik7CisgICAgICAgIG1hcEF0
dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdGV4dF9hbmNob3JBdHRy
KTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCB0ZXh0X2RlY29yYXRpb25BdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB0ZXh0X3JlbmRlcmluZ0F0dHIpOworICAgICAgICBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHVuaWNvZGVfYmlkaUF0
dHIpOworICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRN
YXAsIHZpc2liaWxpdHlBdHRyKTsKKyAgICAgICAgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCB3b3JkX3NwYWNpbmdBdHRyKTsKKyAgICB9CisgICAgCisgICAg
cmV0dXJuIHByb3BlcnR5TmFtZVRvSWRNYXAtPmdldChhdHRyTmFtZS5sb2NhbE5hbWUoKS5pbXBs
KCkpOworfQorCitib29sIFNWR1N0eWxlZEVsZW1lbnQ6Om1hcFRvRW50cnkoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0Cit7
CisgICAgaWYgKFNWR1N0eWxlZEVsZW1lbnQ6OmNzc1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVO
YW1lKGF0dHJOYW1lKSA+IDApIHsKKyAgICAgICAgcmVzdWx0ID0gZVNWRzsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gU1ZHRWxlbWVudDo6bWFwVG9FbnRyeShhdHRy
TmFtZSwgcmVzdWx0KTsKK30KKwogdm9pZCBTVkdTdHlsZWRFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiB7Ci0gICAgY29uc3QgU3RyaW5nJiB2YWx1
ZSA9IGF0dHItPnZhbHVlKCk7Ci0gICAgLy8gaWQgYW5kIGNsYXNzIGFyZSBoYW5kbGVkIGJ5IFN0
eWxlZEVsZW1lbnQKLSAgICBEZXByZWNhdGVkU3RyaW5nIHFQcm9wID0gYXR0ci0+bmFtZSgpLmxv
Y2FsTmFtZSgpLmRlcHJlY2F0ZWRTdHJpbmcoKTsKLSAgICBpbnQgcHJvcElkID0gZ2V0UHJvcGVy
dHlJRChxUHJvcC5hc2NpaSgpLCBxUHJvcC5sZW5ndGgoKSk7Ci0gICAgaWYgKHByb3BJZCA9PSAw
KQotICAgICAgICBwcm9wSWQgPSBTVkc6OmdldFNWR0NTU1Byb3BlcnR5SUQocVByb3AuYXNjaWko
KSwgcVByb3AubGVuZ3RoKCkpOworICAgIC8vIE5PVEU6IEFueSBzdWJjbGFzcyB3aGljaCBvdmVy
cmlkZXMgcGFyc2VNYXBwZWRBdHRyaWJ1dGUgZm9yIGEgcHJvcGVydHkgaGFuZGxlZCBieQorICAg
IC8vIGNzc1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lIHdpbGwgYWxzbyBoYXZlIHRvIG92
ZXJyaWRlIG1hcFRvRW50cnkgdG8gZGlzYWJsZSB0aGUgZGVmYXVsdCBlU1ZHIG1hcHBpbmcKKyAg
ICBpbnQgcHJvcElkID0gU1ZHU3R5bGVkRWxlbWVudDo6Y3NzUHJvcGVydHlJZEZvclNWR0F0dHJp
YnV0ZU5hbWUoYXR0ci0+bmFtZSgpKTsKICAgICBpZiAocHJvcElkID4gMCkgewotICAgICAgICBh
ZGRDU1NQcm9wZXJ0eShhdHRyLCBwcm9wSWQsIHZhbHVlKTsKKyAgICAgICAgYWRkQ1NTUHJvcGVy
dHkoYXR0ciwgcHJvcElkLCBhdHRyLT52YWx1ZSgpKTsKICAgICAgICAgc2V0Q2hhbmdlZCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAorICAgIC8vIGlkIGFuZCBjbGFzcyBhcmUgaGFu
ZGxlZCBieSBTdHlsZWRFbGVtZW50CiAgICAgU1ZHRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cik7CiB9CiAKSW5kZXg6IGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuaAkocmV2aXNpb24gMTg4NTcpCisr
KyBrc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3Qq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICAgICAgdmly
dHVhbCBTVkdSZXNvdXJjZSogY2FudmFzUmVzb3VyY2UoKSB7IHJldHVybiAwOyB9CiAgICAgICAg
IAorICAgICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwg
TWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNl
TWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOwogCiAgICAgICAgIFJlbmRlclZpZXcq
IHZpZXcoKSBjb25zdDsKQEAgLTY0LDYgKzY1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHJlYnVpbGRSZW5kZXJlcigpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBoYXNSZWxhdGl2ZVZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIAor
ICAgICAgICBzdGF0aWMgaW50IGNzc1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRy
PENTU1N0eWxlRGVjbGFyYXRpb24+IG1fcGE7Cg==
</data>
<flag name="review"
          id="4694"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>