<?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>134186</bug_id>
          
          <creation_ts>2014-06-22 23:27:16 -0700</creation_ts>
          <short_desc>Make it clear to get m_svgExtensions using svgExtensions()</short_desc>
          <delta_ts>2014-08-23 07:33:33 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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="Jeongeun Kim">je_julie.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>krit</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1017487</commentid>
    <comment_count>0</comment_count>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-06-22 23:27:16 -0700</bug_when>
    <thetext>There are two APIs, svgExtensions() and accessSVGExtensions() to access m_svgExtensions. 
svgExtensions() is a getter API and accessSVGExtensions() checks the presence or absence of m_svgExtensions and create m_svgExtensions if it does not exist. 
After checking presence of &apos;m_svgExtensions&apos;, we don&apos;t need to use accessSVGExtensions().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017490</commentid>
    <comment_count>1</comment_count>
      <attachid>233586</attachid>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-06-22 23:38:39 -0700</bug_when>
    <thetext>Created attachment 233586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017502</commentid>
    <comment_count>2</comment_count>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-06-23 01:14:00 -0700</bug_when>
    <thetext>This patch makes sure that the purpose of code is to get m_svgExtensions
as changing accessSVGExtensions() to svgExtensions().

Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017524</commentid>
    <comment_count>3</comment_count>
      <attachid>233586</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-23 04:11:44 -0700</bug_when>
    <thetext>Comment on attachment 233586
Patch

Clearing flags on attachment: 233586

Committed r170287: &lt;http://trac.webkit.org/changeset/170287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017525</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-23 04:11:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018879</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-06-26 22:36:40 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 233586 [details])
&gt; Clearing flags on attachment: 233586
&gt; 
&gt; Committed r170287: &lt;http://trac.webkit.org/changeset/170287&gt;

This regressed the re-association of elements to their target element in SVGDocumentExtensions::rebuildElements(). See bug #134304 for more details.

Rolled out &lt;http://trac.webkit.org/changeset/170287&gt; in &lt;http://trac.webkit.org/changeset/170519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026200</commentid>
    <comment_count>6</comment_count>
      <attachid>235879</attachid>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-08-01 00:24:59 -0700</bug_when>
    <thetext>Created attachment 235879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026210</commentid>
    <comment_count>7</comment_count>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-08-01 01:31:35 -0700</bug_when>
    <thetext>This patch makes svgExtensions() return mutual pointer, not const pointer and uses it instead of accessSVGExtensions() where svgExyensions() pointer checking is already done.
Daniel, Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030638</commentid>
    <comment_count>8</comment_count>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-08-21 19:16:04 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This patch makes svgExtensions() return mutual pointer, not const pointer and uses it instead of accessSVGExtensions() where svgExyensions() pointer checking is already done.
&gt; Daniel, Please take a look.
He seems to be busy.
If anyone of reviewers is available, review please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030683</commentid>
    <comment_count>9</comment_count>
      <attachid>235879</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-08-21 23:22:06 -0700</bug_when>
    <thetext>Comment on attachment 235879
Patch

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

&gt; Source/WebCore/dom/Document.h:1088
&gt; -    const SVGDocumentExtensions* svgExtensions();
&gt; +    SVGDocumentExtensions* svgExtensions();
&gt;      SVGDocumentExtensions* accessSVGExtensions();

What do you envision we do with accessSVGExtensions() given its similarity in signature to to svgExtensions()? I mean, it&apos;s unclear which function should be called to ensure we get a non-null SVGDocumentExtensions without looking at the implementation of each function, looking at other call sites and reasoning about their usage. One way to resolve this is to remove accessSVGExtensions() entirely. Another way is to take an approach similar to Node::ensureEventTargetData() and rename accessSVGExtensions() to ensureSVGExtensions() and have it return a reference to SVGDocumentExtensions. If we choose to take the latter approach then I suggest we rename svgExtensions() to svgExtensionsIfExists() to better describe the conditionality of its return value.

&gt; Source/WebCore/svg/SVGDocumentExtensions.h:76
&gt; -    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() const { return m_svgFontFaceElements; }
&gt; +    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() { return m_svgFontFaceElements; }

How did you come to the decision to make this function non-const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030709</commentid>
    <comment_count>10</comment_count>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-08-22 03:10:17 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 235879 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235879&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.h:1088
&gt; &gt; -    const SVGDocumentExtensions* svgExtensions();
&gt; &gt; +    SVGDocumentExtensions* svgExtensions();
&gt; &gt;      SVGDocumentExtensions* accessSVGExtensions();
&gt; 
&gt; What do you envision we do with accessSVGExtensions() given its similarity in signature to to svgExtensions()? I mean, it&apos;s unclear which function should be called to ensure we get a non-null SVGDocumentExtensions without looking at the implementation of each function, looking at other call sites and reasoning about their usage. One way to resolve this is to remove accessSVGExtensions() entirely. Another way is to take an approach similar to Node::ensureEventTargetData() and rename accessSVGExtensions() to ensureSVGExtensions() and have it return a reference to SVGDocumentExtensions. If we choose to take the latter approach then I suggest we rename svgExtensions() to svgExtensionsIfExists() to better describe the conditionality of its return value.
It&apos;s a great idea. I&apos;ll try the latter approach. Thank you for you suggestion.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGDocumentExtensions.h:76
&gt; &gt; -    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() const { return m_svgFontFaceElements; }
&gt; &gt; +    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() { return m_svgFontFaceElements; }
&gt; 
&gt; How did you come to the decision to make this function non-const?
Actually, that is one of my worries and the part that I&apos;d like to hear your opinion. 
I changed it to non-const and it&apos;s according to change of  &apos;svgExtensions()&apos; but I think it&apos;s not good.
Do I need to keep &apos;const SVGDocumentExtensions* svgExtensions()&apos; for this part?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030902</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-08-22 23:18:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; &gt; Source/WebCore/svg/SVGDocumentExtensions.h:76
&gt; &gt; &gt; -    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() const { return m_svgFontFaceElements; }
&gt; &gt; &gt; +    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() { return m_svgFontFaceElements; }
&gt; &gt; 
&gt; &gt; How did you come to the decision to make this function non-const?
&gt; Actually, that is one of my worries and the part that I&apos;d like to hear your opinion. 
&gt; I changed it to non-const and it&apos;s according to change of  &apos;svgExtensions()&apos; but I think it&apos;s not good.
&gt; Do I need to keep &apos;const SVGDocumentExtensions* svgExtensions()&apos; for this part?

I don&apos;t know at the moment. I will look through the code shortly. Can you save me some time and elaborate on the callers of svgFontFaceElements()? Regardless, it doesn&apos;t seem correct to make svgFontFaceElements() non-const given that it doesn&apos;t modify state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030925</commentid>
    <comment_count>12</comment_count>
    <who name="Jeongeun Kim">je_julie.kim</who>
    <bug_when>2014-08-23 07:33:33 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; &gt; &gt; Source/WebCore/svg/SVGDocumentExtensions.h:76
&gt; &gt; &gt; &gt; -    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() const { return m_svgFontFaceElements; }
&gt; &gt; &gt; &gt; +    const HashSet&lt;SVGFontFaceElement*&gt;&amp; svgFontFaceElements() { return m_svgFontFaceElements; }
&gt; &gt; &gt; 
&gt; &gt; &gt; How did you come to the decision to make this function non-const?
&gt; &gt; Actually, that is one of my worries and the part that I&apos;d like to hear your opinion. 
&gt; &gt; I changed it to non-const and it&apos;s according to change of  &apos;svgExtensions()&apos; but I think it&apos;s not good.
&gt; &gt; Do I need to keep &apos;const SVGDocumentExtensions* svgExtensions()&apos; for this part?
&gt; 
&gt; I don&apos;t know at the moment. I will look through the code shortly. Can you save me some time and elaborate on the callers of svgFontFaceElements()? Regardless, it doesn&apos;t seem correct to make svgFontFaceElements() non-const given that it doesn&apos;t modify state.

When StyleResolver is created, svg font face rules are added to fontSelector using svgFontFaceElements through iterating svgFontFaceElements(). That code is located at StyleResolver::StyleResolver(Document&amp; document, bool matchAuthorAndUserStyles) in StyleResolver.cpp.
At that time, it&apos;s used only for collecting data without any modification. 

The field, m_svgFontFaceElements, which is gotten from svgFontFaceElements(),
is collected when SVGFontFaceElement is inserted at SVGFontFaceElement::insertedInto.

Thanks,</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233586</attachid>
            <date>2014-06-22 23:38:39 -0700</date>
            <delta_ts>2014-08-01 00:24:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134186-20140623153817.patch</filename>
            <type>text/plain</type>
            <size>7970</size>
            <attacher name="Jeongeun Kim">je_julie.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdlOTA5OTc0NGY4YTkx
MTEzMGJiNTIzNWYwNDAxYTlhOTM0YTczZS4uNzYwY2FmNjU1YzdiMjBlMTE0OTUyZjI2MjVmMzI2
OTMxYWFjMjMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA2LTIyICBKZW9u
Z2V1biBLaW0gIDxqZV9qdWxpZS5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTWFrZSBpdCBj
bGVhciB0byBnZXQgbV9zdmdFeHRlbnNpb25zIHVzaW5nIHN2Z0V4dGVuc2lvbnMoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDE4Ni4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1h
a2VzIHN1cmUgdGhhdCB0aGUgcHVycG9zZSBvZiBjb2RlIGlzIHRvIGdldCBtX3N2Z0V4dGVuc2lv
bnMgCisgICAgICAgIGFzIGNoYW5naW5nIGFjY2Vzc1NWR0V4dGVuc2lvbnMoKSB0byBzdmdFeHRl
bnNpb25zKCkuIAorICAgICAgICBzdmdFeHRlbnNpb25zKCkgaXMgYSBnZXR0ZXIgQVBJIGFuZCBh
Y2Nlc3NTVkdFeHRlbnNpb25zKCkgY2hlY2tzIAorICAgICAgICB0aGUgcHJlc2VuY2Ugb2YgbV9z
dmdFeHRlbnNpb25zIGFuZCBjcmVhdGUgbV9zdmdFeHRlbnNpb25zIGlmIGl0IGRvZXMgbm90IGV4
aXN0LiAKKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAg
ICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJl
bW92ZUNoaWxkcmVuKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjppbXBsaWNpdENsb3NlKToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgICog
c3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1
bWVudEV4dGVuc2lvbnM6OnN0YXJ0QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdE
b2N1bWVudEV4dGVuc2lvbnM6OnBhdXNlQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdEb2N1bWVudEV4dGVuc2lvbnM6OnVucGF1c2VBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6ZGlzcGF0Y2hTVkdMb2FkRXZlbnRUb091dGVybW9z
dFNWR0VsZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50RXh0ZW5zaW9uczo6
cmVidWlsZEVsZW1lbnRzKToKKyAgICAgICAgKiBzdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmg6
CisKIDIwMTQtMDYtMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUcmFuc2l0aW9uIGxheWVyIG9mZnNldHMgZnJvbSBMYXlvdXRQb2ludCB0byBMYXlvdXRTaXpl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDFiMTE0MDJiYWYyMTcyYTVl
ZmU2YWZjYTRiNzNiZTdkOTVkNGRjNTIuLjg4MjdiNDNkNjMxMTlkZjdjZDQxYTRiMTY0YzUzYjVh
YzI2MmJiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTU3Myw3ICs1
NzMsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZG9jdW1lbnQoKS5zdmdFeHRlbnNpb25zKCkpIHsK
ICAgICAgICAgRWxlbWVudCogc2hhZG93SG9zdCA9IHRoaXMtPnNoYWRvd0hvc3QoKTsKICAgICAg
ICAgaWYgKCFzaGFkb3dIb3N0IHx8ICFzaGFkb3dIb3N0LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp1
c2VUYWcpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJl
YnVpbGRFbGVtZW50cygpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5zdmdFeHRlbnNpb25zKCkt
PnJlYnVpbGRFbGVtZW50cygpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVk
RXZlbnQoKTsKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNo
aWxkcmVuKCkKICAgICBpZiAoZG9jdW1lbnQoKS5zdmdFeHRlbnNpb25zKCkpIHsKICAgICAgICAg
RWxlbWVudCogc2hhZG93SG9zdCA9IHRoaXMtPnNoYWRvd0hvc3QoKTsKICAgICAgICAgaWYgKCFz
aGFkb3dIb3N0IHx8ICFzaGFkb3dIb3N0LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp1c2VUYWcpKQot
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlYnVpbGRFbGVt
ZW50cygpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5zdmdFeHRlbnNpb25zKCktPnJlYnVpbGRF
bGVtZW50cygpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDI2NTUyNDQ3NWJiMWY3ZTRkOGQyYWYxMmIxNTZk
NDcyNDJkYzhiODAuLjFjOTZiNGM5NDVkZjUxZDAyNjc3NTFmNDM3NTVjYjlmZDM4YzRkZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjkxLDcgKzY5MSw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnJlbW92ZWRMYXN0UmVmKCkKIHZvaWQgRG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKCkKIHsKICAg
ICBpZiAoc3ZnRXh0ZW5zaW9ucygpKQotICAgICAgICBhY2Nlc3NTVkdFeHRlbnNpb25zKCktPnBh
dXNlQW5pbWF0aW9ucygpOworICAgICAgICBzdmdFeHRlbnNpb25zKCktPnBhdXNlQW5pbWF0aW9u
cygpOwogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIGNsZWFyU2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyKCk7CkBAIC0yMzg2LDcgKzIzODYsNyBAQCB2b2lkIERv
Y3VtZW50OjppbXBsaWNpdENsb3NlKCkKICAgICAvLyBoZXJlLCBpbnN0ZWFkIG9mIGRvaW5nIGl0
IGZyb20gU1ZHRWxlbWVudDo6ZmluaXNoZWRQYXJzaW5nQ2hpbGRyZW4gKGlmIGV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ9ImZhbHNlIiwKICAgICAvLyB3aGljaCBpcyB0aGUgZGVmYXVsdCwgZm9y
ID0ndHJ1ZScgaXRzIGZpcmVkIGF0IGEgbGF0ZXIgdGltZSwgb25jZSBhbGwgZXh0ZXJuYWwgcmVz
b3VyY2VzIGZpbmlzaGVkIGxvYWRpbmcpLgogICAgIGlmIChzdmdFeHRlbnNpb25zKCkpCi0gICAg
ICAgIGFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+ZGlzcGF0Y2hTVkdMb2FkRXZlbnRUb091dGVybW9z
dFNWR0VsZW1lbnRzKCk7CisgICAgICAgIHN2Z0V4dGVuc2lvbnMoKS0+ZGlzcGF0Y2hTVkdMb2Fk
RXZlbnRUb091dGVybW9zdFNWR0VsZW1lbnRzKCk7CiAKICAgICBkaXNwYXRjaFdpbmRvd0xvYWRF
dmVudCgpOwogICAgIGVucXVldWVQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnROb3RQZXJzaXN0
ZWQpOwpAQCAtMjQ1MSw3ICsyNDUxLDcgQEAgdm9pZCBEb2N1bWVudDo6aW1wbGljaXRDbG9zZSgp
CiAjZW5kaWYKIAogICAgIGlmIChzdmdFeHRlbnNpb25zKCkpCi0gICAgICAgIGFjY2Vzc1NWR0V4
dGVuc2lvbnMoKS0+c3RhcnRBbmltYXRpb25zKCk7CisgICAgICAgIHN2Z0V4dGVuc2lvbnMoKS0+
c3RhcnRBbmltYXRpb25zKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnNldFBhcnNpbmcoYm9vbCBi
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAzNDg2OTBhZWE5N2M3
NmY0ZTE5MTNlNjI0ZGJiOWVlMjk3ZGZjYTAwLi5lZWIzNGExZTY5NWY0NDEzNDUwYjUzYjQ4ZjM2
MGUzNDNiMDI5MjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApAQCAt
ODksNyArODksNyBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgbV9jYWNo
ZWRGcmFtZVNjcmlwdERhdGEtPnJlc3RvcmUoZnJhbWUpOwogCiAgICAgaWYgKG1fZG9jdW1lbnQt
PnN2Z0V4dGVuc2lvbnMoKSkKLSAgICAgICAgbV9kb2N1bWVudC0+YWNjZXNzU1ZHRXh0ZW5zaW9u
cygpLT51bnBhdXNlQW5pbWF0aW9ucygpOworICAgICAgICBtX2RvY3VtZW50LT5zdmdFeHRlbnNp
b25zKCktPnVucGF1c2VBbmltYXRpb25zKCk7CiAKICAgICBmcmFtZS5hbmltYXRpb24oKS5yZXN1
bWVBbmltYXRpb25zRm9yRG9jdW1lbnQobV9kb2N1bWVudC5nZXQoKSk7CiAgICAgbV9kb2N1bWVu
dC0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OkRvY3VtZW50V2lsbEJl
Y29tZUluYWN0aXZlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVu
dEV4dGVuc2lvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9u
cy5jcHAKaW5kZXggNGI0MjgzODMwYzg0YzgzNzgxOTViOThmY2EwZmMzMTgxMzE5MjQ3Ni4uYWM3
M2ZkYzNjMzVlYTA2ZDkxNjAyN2Y2ZTYzZGIwMDg1NTNhM2ZjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgUmVuZGVy
U1ZHUmVzb3VyY2VDb250YWluZXIqIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVzb3VyY2VCeUlk
KGNvbnN0IEF0b21pY1N0cmkKICAgICByZXR1cm4gbV9yZXNvdXJjZXMuZ2V0KGlkKTsKIH0KIAot
dm9pZCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnN0YXJ0QW5pbWF0aW9ucygpCit2b2lkIFNWR0Rv
Y3VtZW50RXh0ZW5zaW9uczo6c3RhcnRBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogRXZlbnR1YWxseSBldmVyeSAiVGltZSBDb250YWluZXIiIHdpbGwgbmVlZCBhIHdheSB0byBs
YXRjaCBvbiB0byBzb21lIGdsb2JhbCB0aW1lcgogICAgIC8vIHN0YXJ0aW5nIGFuaW1hdGlvbnMg
Zm9yIGEgZG9jdW1lbnQgd2lsbCBkbyB0aGlzICJsYXRjaGluZyIKQEAgLTEwMCwyMSArMTAwLDIx
IEBAIHZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpzdGFydEFuaW1hdGlvbnMoKQogICAgICAg
ICAoKml0KS0+dGltZUNvbnRhaW5lcigpLT5iZWdpbigpOwogfQogCi12b2lkIFNWR0RvY3VtZW50
RXh0ZW5zaW9uczo6cGF1c2VBbmltYXRpb25zKCkKK3ZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25z
OjpwYXVzZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIGF1dG8gZW5kID0gbV90aW1lQ29udGFp
bmVycy5lbmQoKTsKICAgICBmb3IgKGF1dG8gaXQgPSBtX3RpbWVDb250YWluZXJzLmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPnBhdXNlQW5pbWF0aW9ucygpOwogfQog
Ci12b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6dW5wYXVzZUFuaW1hdGlvbnMoKQordm9pZCBT
VkdEb2N1bWVudEV4dGVuc2lvbnM6OnVucGF1c2VBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICBh
dXRvIGVuZCA9IG1fdGltZUNvbnRhaW5lcnMuZW5kKCk7CiAgICAgZm9yIChhdXRvIGl0ID0gbV90
aW1lQ29udGFpbmVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICgqaXQpLT51
bnBhdXNlQW5pbWF0aW9ucygpOwogfQogCi12b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6ZGlz
cGF0Y2hTVkdMb2FkRXZlbnRUb091dGVybW9zdFNWR0VsZW1lbnRzKCkKK3ZvaWQgU1ZHRG9jdW1l
bnRFeHRlbnNpb25zOjpkaXNwYXRjaFNWR0xvYWRFdmVudFRvT3V0ZXJtb3N0U1ZHRWxlbWVudHMo
KSBjb25zdAogewogICAgIFZlY3RvcjxSZWZQdHI8U1ZHU1ZHRWxlbWVudD4+IHRpbWVDb250YWlu
ZXJzOwogICAgIHRpbWVDb250YWluZXJzLmFwcGVuZFJhbmdlKG1fdGltZUNvbnRhaW5lcnMuYmVn
aW4oKSwgbV90aW1lQ29udGFpbmVycy5lbmQoKSk7CkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBT
VkdEb2N1bWVudEV4dGVuc2lvbnM6OnJlbW92ZUFsbFRhcmdldFJlZmVyZW5jZXNGb3JFbGVtZW50
KFNWR0VsZW1lbnQqIHJlZmUKICAgICAgICAgbV9lbGVtZW50RGVwZW5kZW5jaWVzLnJlbW92ZSgq
aXQpOwogfQogCi12b2lkIFNWR0RvY3VtZW50RXh0ZW5zaW9uczo6cmVidWlsZEVsZW1lbnRzKCkK
K3ZvaWQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOjpyZWJ1aWxkRWxlbWVudHMoKSBjb25zdAogewog
ICAgIFZlY3RvcjxTVkdFbGVtZW50Kj4gc2hhZG93UmVidWlsZEVsZW1lbnRzID0gc3RkOjptb3Zl
KG1fcmVidWlsZEVsZW1lbnRzKTsKICAgICBmb3IgKGF1dG8qIGVsZW1lbnQgOiBzaGFkb3dSZWJ1
aWxkRWxlbWVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgK
aW5kZXggODlkNDc0NjY4ZDBmZDg0ZjAzMTI0MDNhMjZhYzA0ZjY1NGE5NjlkZC4uYjgwNjRjM2My
YzQ4Y2Y1YjI2MjhlYjYxN2YyZGE1MjFjZWM4ZmUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdEb2N1bWVudEV4dGVuc2lvbnMuaApAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZVJlc291cmNlKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpOwogICAgIFJlbmRlclNW
R1Jlc291cmNlQ29udGFpbmVyKiByZXNvdXJjZUJ5SWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkg
Y29uc3Q7CiAKLSAgICB2b2lkIHN0YXJ0QW5pbWF0aW9ucygpOwotICAgIHZvaWQgcGF1c2VBbmlt
YXRpb25zKCk7Ci0gICAgdm9pZCB1bnBhdXNlQW5pbWF0aW9ucygpOwotICAgIHZvaWQgZGlzcGF0
Y2hTVkdMb2FkRXZlbnRUb091dGVybW9zdFNWR0VsZW1lbnRzKCk7CisgICAgdm9pZCBzdGFydEFu
aW1hdGlvbnMoKSBjb25zdDsKKyAgICB2b2lkIHBhdXNlQW5pbWF0aW9ucygpIGNvbnN0OworICAg
IHZvaWQgdW5wYXVzZUFuaW1hdGlvbnMoKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoU1ZHTG9h
ZEV2ZW50VG9PdXRlcm1vc3RTVkdFbGVtZW50cygpIGNvbnN0OwogCiAgICAgdm9pZCByZXBvcnRX
YXJuaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwb3J0RXJyb3IoY29uc3QgU3RyaW5n
Jik7CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUFsbEVsZW1lbnRS
ZWZlcmVuY2VzRm9yVGFyZ2V0KFNWR0VsZW1lbnQqKTsKIAogICAgIHZvaWQgY2xlYXJUYXJnZXRE
ZXBlbmRlbmNpZXMoU1ZHRWxlbWVudCYpOwotICAgIHZvaWQgcmVidWlsZEVsZW1lbnRzKCk7Cisg
ICAgdm9pZCByZWJ1aWxkRWxlbWVudHMoKSBjb25zdDsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMp
CiAgICAgY29uc3QgSGFzaFNldDxTVkdGb250RmFjZUVsZW1lbnQqPiYgc3ZnRm9udEZhY2VFbGVt
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fc3ZnRm9udEZhY2VFbGVtZW50czsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235879</attachid>
            <date>2014-08-01 00:24:59 -0700</date>
            <delta_ts>2014-08-21 23:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134186-20140801162445.patch</filename>
            <type>text/plain</type>
            <size>6128</size>
            <attacher name="Jeongeun Kim">je_julie.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxODQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQzZGFmMWFlM2FkOTQ4
YzViYjcwOWEwMjdhMzRiOTQ4YWNhMDQ4ZS4uODYyYWY5OTJhMmI3ZGUwYjg1OTc4NWM4Mjk1MDY2
ZDgyOWEwMDMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA4LTAxICBKZW9u
Z2V1biBLaW0gIDxqZV9qdWxpZS5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTWFrZSBpdCBj
bGVhciB0byBnZXQgbV9zdmdFeHRlbnNpb25zIHVzaW5nIHN2Z0V4dGVuc2lvbnMoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDE4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFr
ZXMgc3VyZSB0aGF0IHRoZSBwdXJwb3NlIG9mIGNvZGUgaXMgdG8gZ2V0IG1fc3ZnRXh0ZW5zaW9u
cworICAgICAgICBhcyBjaGFuZ2luZyBhY2Nlc3NTVkdFeHRlbnNpb25zKCkgdG8gc3ZnRXh0ZW5z
aW9ucygpLgorICAgICAgICBzdmdFeHRlbnNpb25zKCkgaXMgYSBnZXR0ZXIgQVBJIGFuZCBhY2Nl
c3NTVkdFeHRlbnNpb25zKCkgY2hlY2tzCisgICAgICAgIHRoZSBwcmVzZW5jZSBvZiBtX3N2Z0V4
dGVuc2lvbnMgYW5kIGNyZWF0ZSBtX3N2Z0V4dGVuc2lvbnMgaWYgaXQgZG9lcyBub3QgZXhpc3Qu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2Rl
OjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVD
aGlsZHJlbik6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojpjb21tb25UZWFyZG93bik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
aW1wbGljaXRDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3ZnRXh0ZW5zaW9u
cyk6IHJlbW92ZWQgY29uc3QgZnJvbSByZXR1cm4gdHlwZQorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkRnJhbWVCYXNlOjpyZXN0b3JlKToKKyAgICAgICAgKiBzdmcvU1ZHRG9jdW1lbnRF
eHRlbnNpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnN2
Z0ZvbnRGYWNlRWxlbWVudHMpOiByZW1vdmVkIGNvbnN0CisKIDIwMTQtMDctMzAgIEFuZHJlYXMg
S2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFByb3BlcnR5TmFtZSdzIGludGVy
bmFsIHN0cmluZyBpcyBhbHdheXMgYXRvbWljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCmluZGV4IDFiMTE0MDJiYWYyMTcyYTVlZmU2YWZjYTRiNzNiZTdkOTVkNGRjNTIuLjg4Mjdi
NDNkNjMxMTlkZjdjZDQxYTRiMTY0YzUzYjVhYzI2MmJiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAKQEAgLTU3Myw3ICs1NzMsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJl
bW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZG9j
dW1lbnQoKS5zdmdFeHRlbnNpb25zKCkpIHsKICAgICAgICAgRWxlbWVudCogc2hhZG93SG9zdCA9
IHRoaXMtPnNoYWRvd0hvc3QoKTsKICAgICAgICAgaWYgKCFzaGFkb3dIb3N0IHx8ICFzaGFkb3dI
b3N0LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp1c2VUYWcpKQotICAgICAgICAgICAgZG9jdW1lbnQo
KS5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlYnVpbGRFbGVtZW50cygpOworICAgICAgICAgICAg
ZG9jdW1lbnQoKS5zdmdFeHRlbnNpb25zKCktPnJlYnVpbGRFbGVtZW50cygpOwogICAgIH0KIAog
ICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKQEAgLTY3MCw3ICs2NzAsNyBAQCB2
b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuKCkKICAgICBpZiAoZG9jdW1lbnQoKS5z
dmdFeHRlbnNpb25zKCkpIHsKICAgICAgICAgRWxlbWVudCogc2hhZG93SG9zdCA9IHRoaXMtPnNo
YWRvd0hvc3QoKTsKICAgICAgICAgaWYgKCFzaGFkb3dIb3N0IHx8ICFzaGFkb3dIb3N0LT5oYXNU
YWdOYW1lKFNWR05hbWVzOjp1c2VUYWcpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NT
VkdFeHRlbnNpb25zKCktPnJlYnVpbGRFbGVtZW50cygpOworICAgICAgICAgICAgZG9jdW1lbnQo
KS5zdmdFeHRlbnNpb25zKCktPnJlYnVpbGRFbGVtZW50cygpOwogICAgIH0KIAogICAgIGRpc3Bh
dGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDk2
NDU2MmZjNDUyYzMwN2Y3OWUyZTIxNzljOTk3MjU0Yzc2NWJhZGUuLmNkNDM4NTRhYzhjMzc2MmU0
MTg2NzFiMmRjZGZmMTc2ZDlmYjk5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjky
LDcgKzY5Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKCkKIHZvaWQgRG9jdW1l
bnQ6OmNvbW1vblRlYXJkb3duKCkKIHsKICAgICBpZiAoc3ZnRXh0ZW5zaW9ucygpKQotICAgICAg
ICBhY2Nlc3NTVkdFeHRlbnNpb25zKCktPnBhdXNlQW5pbWF0aW9ucygpOworICAgICAgICBzdmdF
eHRlbnNpb25zKCktPnBhdXNlQW5pbWF0aW9ucygpOwogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKQogICAgIGNsZWFyU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKCk7CkBA
IC0yMzkzLDcgKzIzOTMsNyBAQCB2b2lkIERvY3VtZW50OjppbXBsaWNpdENsb3NlKCkKICAgICAv
LyBoZXJlLCBpbnN0ZWFkIG9mIGRvaW5nIGl0IGZyb20gU1ZHRWxlbWVudDo6ZmluaXNoZWRQYXJz
aW5nQ2hpbGRyZW4gKGlmIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ9ImZhbHNlIiwKICAgICAv
LyB3aGljaCBpcyB0aGUgZGVmYXVsdCwgZm9yID0ndHJ1ZScgaXRzIGZpcmVkIGF0IGEgbGF0ZXIg
dGltZSwgb25jZSBhbGwgZXh0ZXJuYWwgcmVzb3VyY2VzIGZpbmlzaGVkIGxvYWRpbmcpLgogICAg
IGlmIChzdmdFeHRlbnNpb25zKCkpCi0gICAgICAgIGFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+ZGlz
cGF0Y2hTVkdMb2FkRXZlbnRUb091dGVybW9zdFNWR0VsZW1lbnRzKCk7CisgICAgICAgIHN2Z0V4
dGVuc2lvbnMoKS0+ZGlzcGF0Y2hTVkdMb2FkRXZlbnRUb091dGVybW9zdFNWR0VsZW1lbnRzKCk7
CiAKICAgICBkaXNwYXRjaFdpbmRvd0xvYWRFdmVudCgpOwogICAgIGVucXVldWVQYWdlc2hvd0V2
ZW50KFBhZ2VzaG93RXZlbnROb3RQZXJzaXN0ZWQpOwpAQCAtMjQ1OCw3ICsyNDU4LDcgQEAgdm9p
ZCBEb2N1bWVudDo6aW1wbGljaXRDbG9zZSgpCiAjZW5kaWYKIAogICAgIGlmIChzdmdFeHRlbnNp
b25zKCkpCi0gICAgICAgIGFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+c3RhcnRBbmltYXRpb25zKCk7
CisgICAgICAgIHN2Z0V4dGVuc2lvbnMoKS0+c3RhcnRBbmltYXRpb25zKCk7CiB9CiAKIHZvaWQg
RG9jdW1lbnQ6OnNldFBhcnNpbmcoYm9vbCBiKQpAQCAtNDQxMCw3ICs0NDEwLDcgQEAgUGFzc1Jl
ZlB0cjxBdHRyPiBEb2N1bWVudDo6Y3JlYXRlQXR0cmlidXRlTlMoY29uc3QgU3RyaW5nJiBuYW1l
c3BhY2VVUkksIGNvbnN0IFMKICAgICByZXR1cm4gQXR0cjo6Y3JlYXRlKCp0aGlzLCBxTmFtZSwg
ZW1wdHlTdHJpbmcoKSk7CiB9CiAKLWNvbnN0IFNWR0RvY3VtZW50RXh0ZW5zaW9ucyogRG9jdW1l
bnQ6OnN2Z0V4dGVuc2lvbnMoKQorU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBEb2N1bWVudDo6c3Zn
RXh0ZW5zaW9ucygpCiB7CiAgICAgcmV0dXJuIG1fc3ZnRXh0ZW5zaW9ucy5nZXQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKaW5kZXggMGUxYWRhNjJjYTE4MjAzNzY3Zjk4NTQyZTJiMWFjYTNlOGU3
YjQ5NC4uZDAyZjY3N2Q1NGIwZWIyYzUyNWNkMjkxMjFjYTVhNDI0MWMzMDFjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTEwODQsNyArMTA4NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92ZXJyaWRlOwogCi0gICAgY29uc3QgU1ZH
RG9jdW1lbnRFeHRlbnNpb25zKiBzdmdFeHRlbnNpb25zKCk7CisgICAgU1ZHRG9jdW1lbnRFeHRl
bnNpb25zKiBzdmdFeHRlbnNpb25zKCk7CiAgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBhY2Nl
c3NTVkdFeHRlbnNpb25zKCk7CiAKICAgICB2b2lkIGluaXRTZWN1cml0eUNvbnRleHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5kZXggNzY0OTc0YmMzMTNmYjgyMjFl
OWQ3ODAyZjIxOGNlM2M4NjkxZThiYS4uMjcxZmVhMDY3ZmEwNzg5YzY5MGMzYjgwNDAxN2I1YmRm
ZmRmZTVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAgLTg5LDcg
Kzg5LDcgQEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgIG1fY2FjaGVkRnJh
bWVTY3JpcHREYXRhLT5yZXN0b3JlKGZyYW1lKTsKIAogICAgIGlmIChtX2RvY3VtZW50LT5zdmdF
eHRlbnNpb25zKCkpCi0gICAgICAgIG1fZG9jdW1lbnQtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+
dW5wYXVzZUFuaW1hdGlvbnMoKTsKKyAgICAgICAgbV9kb2N1bWVudC0+c3ZnRXh0ZW5zaW9ucygp
LT51bnBhdXNlQW5pbWF0aW9ucygpOwogCiAgICAgZnJhbWUuYW5pbWF0aW9uKCkucmVzdW1lQW5p
bWF0aW9uc0ZvckRvY3VtZW50KG1fZG9jdW1lbnQuZ2V0KCkpOwogICAgIG1fZG9jdW1lbnQtPnJl
c3VtZUFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpEb2N1bWVudFdpbGxCZWNvbWVJ
bmFjdGl2ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRl
bnNpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgKaW5k
ZXggODlkNDc0NjY4ZDBmZDg0ZjAzMTI0MDNhMjZhYzA0ZjY1NGE5NjlkZC4uYjNlYWI2NTdlNWYw
YzRlYzIyZWI1ZTM3NDY3YTM3NTFkNDliYjZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
b2N1bWVudEV4dGVuc2lvbnMuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWJ1aWxkRWxlbWVudHMoKTsKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCi0gICAgY29uc3QgSGFz
aFNldDxTVkdGb250RmFjZUVsZW1lbnQqPiYgc3ZnRm9udEZhY2VFbGVtZW50cygpIGNvbnN0IHsg
cmV0dXJuIG1fc3ZnRm9udEZhY2VFbGVtZW50czsgfQorICAgIGNvbnN0IEhhc2hTZXQ8U1ZHRm9u
dEZhY2VFbGVtZW50Kj4mIHN2Z0ZvbnRGYWNlRWxlbWVudHMoKSB7IHJldHVybiBtX3N2Z0ZvbnRG
YWNlRWxlbWVudHM7IH0KICAgICB2b2lkIHJlZ2lzdGVyU1ZHRm9udEZhY2VFbGVtZW50KFNWR0Zv
bnRGYWNlRWxlbWVudCopOwogICAgIHZvaWQgdW5yZWdpc3RlclNWR0ZvbnRGYWNlRWxlbWVudChT
VkdGb250RmFjZUVsZW1lbnQqKTsKICNlbmRpZgo=
</data>
<flag name="review"
          id="260460"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="260461"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>