<?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>30928</bug_id>
          
          <creation_ts>2009-10-29 14:01:48 -0700</creation_ts>
          <short_desc>MSAA: Accessibility of links is wrong</short_desc>
          <delta_ts>2009-10-30 14:39:18 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159069</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 14:01:48 -0700</bug_when>
    <thetext>The accessibility of links is incorrect on Windows. An anchor element and its &quot;linkable&quot; children, such as text and images, should return the anchor&apos;s href from IAccessible::get_accValue(). Text nodes currently return their text from IAccessible::get_accValue(), but they should return their text from IAccessible::get_accName().

&lt;rdar://problem/7342102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159079</commentid>
    <comment_count>1</comment_count>
      <attachid>42145</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 14:19:09 -0700</bug_when>
    <thetext>Created attachment 42145
patch

Test to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159087</commentid>
    <comment_count>2</comment_count>
      <attachid>42145</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-29 14:29:07 -0700</bug_when>
    <thetext>Comment on attachment 42145
patch

&gt; +#if PLATFORM(WIN)
&gt; +    virtual String stringValueForMSAA() const { return String(); }
&gt; +    virtual String nameForMSAA() const { return String(); }
&gt; +#endif

Thanks for taking my suggestion of putting these here in this class instead of just in the Windows AccessibleBase. I also think they can be included unconditionally, even though the code won&apos;t be called on other platforms.

&gt; +++ b/WebCore/accessibility/win/AccessibilityRenderObjectWin.cpp

Please take my suggestion above and thus don&apos;t add a new source file.

&gt; +        Element* anchor = anchorElement();
&gt; +        if (anchor &amp;&amp; anchor-&gt;hasTagName(aTag))
&gt; +            return static_cast&lt;HTMLAnchorElement*&gt;(anchor)-&gt;href();

Not all HTMLAnchorElement are &lt;a&gt; tags. It would be good to handle &lt;area&gt; too.

Otherwise looks good to me.

review- so you can consider my suggested approach of putting this code in cross-platform source files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159099</commentid>
    <comment_count>3</comment_count>
      <attachid>42145</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-10-29 14:49:20 -0700</bug_when>
    <thetext>Comment on attachment 42145
patch


&gt; +bool AccessibilityRenderObject::isLinked() const
&gt; +{
&gt; +    if (!isLinkable(*this))
&gt; +        return false;
&gt; +
&gt; +    Element* anchor = anchorElement();
&gt; +    if (!anchor || !anchor-&gt;hasTagName(aTag))
&gt; +        return false;
&gt; +
&gt; +    return !static_cast&lt;HTMLAnchorElement*&gt;(anchor)-&gt;href().isEmpty();
&gt; +}

Isn&apos;t this requiring that an image tag within an anchor have a non-empty href in order to be considered linked?  the mozilla documentation just says the img needs to be within an link, not that the link be considered STATE_LINKED as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159115</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 15:33:18 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; Isn&apos;t this requiring that an image tag within an anchor have a non-empty href
&gt; in order to be considered linked?  the mozilla documentation just says the img
&gt; needs to be within an link, not that the link be considered STATE_LINKED as
&gt; well.

I tested with Firefox, and their implementation does require that the anchor element have an href before returning STATE_LINKED for an image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159116</commentid>
    <comment_count>5</comment_count>
      <attachid>42153</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 15:33:29 -0700</bug_when>
    <thetext>Created attachment 42153
patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159125</commentid>
    <comment_count>6</comment_count>
      <attachid>42153</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-29 15:44:24 -0700</bug_when>
    <thetext>Comment on attachment 42153
patch v2

What about my &lt;area&gt; comment? You&apos;re checking specifically for the &lt;a&gt; tag, but &lt;area&gt; are also derived from HTMLAnchorElement.

&gt; +    if (m_renderer &amp;&amp; m_renderer-&gt;isText())
&gt; +        return static_cast&lt;RenderText*&gt;(m_renderer)-&gt;text();

Is this really right? This won&apos;t take things like whitespace-collapsing into account. Lets investigate that further at some point.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159133</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 15:59:14 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 42153 [details])
&gt; What about my &lt;area&gt; comment? You&apos;re checking specifically for the &lt;a&gt; tag, but
&gt; &lt;area&gt; are also derived from HTMLAnchorElement.

We create AccessibilityImageMapLinks for &lt;area&gt; elements. I added code to return the URL for the value property, and the alt text for the name property, of these objects.

&gt; 
&gt; &gt; +    if (m_renderer &amp;&amp; m_renderer-&gt;isText())
&gt; &gt; +        return static_cast&lt;RenderText*&gt;(m_renderer)-&gt;text();
&gt; 
&gt; Is this really right? This won&apos;t take things like whitespace-collapsing into
&gt; account. Lets investigate that further at some point.
&gt; 
&gt; r=me

No, this wouldn&apos;t be right, then. There&apos;s an AccessibilityObject::textUnderElement() that is used elsewhere. I&apos;ll test and make that change if it fixes this issue. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159211</commentid>
    <comment_count>8</comment_count>
      <attachid>42173</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 20:51:08 -0700</bug_when>
    <thetext>Created attachment 42173
DRT changes, layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159451</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-30 14:39:18 -0700</bug_when>
    <thetext>Committed in r50353, r50355.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42145</attachid>
            <date>2009-10-29 14:19:09 -0700</date>
            <delta_ts>2009-10-29 15:33:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-MSAA-Accessibility-of-links-is-wrong.patch</filename>
            <type>text/plain</type>
            <size>10582</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA4NDdjNDFmMjk1ZDFkOTNmYWNjMzQ3YjUxYjliNWNmOTY4ZWI0YWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVGh1LCAyOSBPY3QgMjAwOSAxMzoyMzo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIE1T
QUE6IEFjY2Vzc2liaWxpdHkgb2YgbGlua3MgaXMgd3JvbmcKCmh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkyOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpX
ZWJDb3JlOgoKKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKQWRkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3RXaW4uY3BwIHRvIHByb2plY3QuCgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNMaW5rZWQp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nVmFsdWVGb3JNU0FBKToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Om5hbWVGb3JNU0FBKToKCiogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CgoqIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3RXaW4uY3BwOiBBZGRlZC4KKFdlYkNvcmU6OmlzTGlua2FibGUp
OgpSZXR1cm4gdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBjb25zaWRlcmVkICJsaW5rYWJsZSIgd2l0
aCByZXNwZWN0IHRvCmFjY2Vzc2liaWxpdHkuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzdHJpbmdWYWx1ZUZvck1TQUEpOgpJZiB0aGUgZWxlbWVudCBpcyBsaW5rYWJsZSwg
Y2hlY2sgd2hldGhlciBpdCBoYXMgYSBwYXJlbnQgYW5jaG9yCmVsZW1lbnQuIElmIHNvLCByZXR1
cm4gdGhlIGFuY2hvciBlbGVtZW50J3MgaHJlZi4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmlzTGlua2VkKToKUmV0dXJuIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgbGlua2Fi
bGUgYW5kIGlmIGl0J3MgcGFyZW50IGFuY2hvciB0YWcncwpocmVmIGlzIG5vbi1lbXB0eS4KKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5hbWVGb3JNU0FBKToKRm9yIHRleHQg
bm9kZXMsIHJldHVybiB0aGUgdGV4dC4KCldlYktpdC93aW46CgoqIEFjY2Vzc2libGVCYXNlLmNw
cDoKKEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjU3RhdGUpOgpDaGVjayB3aGV0aGVyIHRoZSBlbGVt
ZW50IGlzIGxpbmtlZCwgaW5zdGVhZCBvZiB3aGV0aGVyIHRoZSBub2RlIGlzIGFuCmFuY2hvciwg
c28gdGhlIGNoaWxkICJsaW5rYWJsZSIgZWxlbWVudHMgb2YgYW5jaG9yIGVsZW1lbnRzIHdpbGwg
YWxzbwpiZSAibGlua2VkIi4KKEFjY2Vzc2libGVCYXNlOjpuYW1lKToKUmV0dXJuIHRoZSBuYW1l
IGZvciBNU0FBLgooQWNjZXNzaWJsZUJhc2U6OnZhbHVlKToKUmV0dXJuIHRoZSBzdHJpbmcgdmFs
dWUgZm9yIE1TQUEuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDMxICsrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaCAgICAgICAgfCAgICA2ICsrCiBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oICB8ICAgIDggKystCiAuLi4vd2luL0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3RXaW4uY3BwICAgICAgICAgICB8ICAgNzggKysrKysrKysrKysr
KysrKysrKysKIFdlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNiArLQogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDE4ICsrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCsp
LCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS93aW4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdFdpbi5jcHAKCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNmNmIzOWMuLmM2MGU5MWUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMTAtMjkgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFw
cGxlLmNvbT4KKworICAgICAgICBNU0FBOiBBY2Nlc3NpYmlsaXR5IG9mIGxpbmtzIGlzIHdyb25n
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwOTI4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgQWRkIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3RXaW4uY3BwIHRvIHByb2plY3QuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmlzTGlua2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0
cmluZ1ZhbHVlRm9yTVNBQSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpuYW1lRm9yTVNBQSk6CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaDoKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3RXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzTGlua2Fi
bGUpOgorICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBjb25zaWRlcmVkICJs
aW5rYWJsZSIgd2l0aCByZXNwZWN0IHRvCisgICAgICAgIGFjY2Vzc2liaWxpdHkuCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZUZvck1TQUEp
OgorICAgICAgICBJZiB0aGUgZWxlbWVudCBpcyBsaW5rYWJsZSwgY2hlY2sgd2hldGhlciBpdCBo
YXMgYSBwYXJlbnQgYW5jaG9yCisgICAgICAgIGVsZW1lbnQuIElmIHNvLCByZXR1cm4gdGhlIGFu
Y2hvciBlbGVtZW50J3MgaHJlZi4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmlzTGlua2VkKToKKyAgICAgICAgUmV0dXJuIHRydWUgaWYgdGhlIGVsZW1lbnQg
aXMgbGlua2FibGUgYW5kIGlmIGl0J3MgcGFyZW50IGFuY2hvciB0YWcncworICAgICAgICBocmVm
IGlzIG5vbi1lbXB0eS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6Om5hbWVGb3JNU0FBKToKKyAgICAgICAgRm9yIHRleHQgbm9kZXMsIHJldHVybiB0aGUgdGV4
dC4KKwogMjAwOS0xMC0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDk3Yjc5YzkuLjA5ODRjYjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtMjA0MjAsNiArMjA0MjAsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+
DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3RXaW4uY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQor
CQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFYT2Jq
ZWN0Q2FjaGVXaW4uY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggNjIxMTI5My4uYjJlMTdmNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0yNzcsNiAr
Mjc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH07CiAgICAgdmlydHVhbCBib29sIGlzVmlzaXRlZCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH07CisgICAgdmlydHVhbCBib29sIGlzTGlua2VkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRUZXh0UmFuZ2VBdHRy
aWJ1dGVzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH07CkBAIC00MzksNiArNDQwLDExIEBAIHB1
YmxpYzoKIAogICAgIHVuc2lnbmVkIGRvQVhMaW5lRm9ySW5kZXgodW5zaWduZWQpOwogCisjaWYg
UExBVEZPUk0oV0lOKQorICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVlRm9yTVNBQSgpIGNv
bnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgbmFtZUZvck1TQUEo
KSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQorI2VuZGlmCisKICNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
KiB3cmFwcGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCBjNmZkNzQ4Li5lZTk2OGVhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTEwMiw2
ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUmVhZE9ubHkoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNWaXNpdGVkKCkgY29uc3Q7ICAgICAgICAKICAgICB2aXJ0dWFs
IGJvb2wgaXNSZXF1aXJlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtlZCgpIGNv
bnN0OwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgp
IGNvbnN0OwpAQCAtMjI0LDcgKzIyNSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbnRSZWN0
IGRvQVhCb3VuZHNGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0OwogICAgIAog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUoKTsKLSAgICAKKworI2lmIFBMQVRG
T1JNKFdJTikKKyAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZUZvck1TQUEoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lRm9yTVNBQSgpIGNvbnN0OworI2VuZGlmCisKIHByb3Rl
Y3RlZDoKICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CiAgICAgQWNjZXNzaWJpbGl0eVJv
bGUgbV9hcmlhUm9sZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdFdpbi5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2lu
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3RXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjI4NWE2YzkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvd2luL0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3RXaW4uY3BwCkBAIC0wLDAgKzEsNzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKKwor
I2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CisKK3N0YXRpYyBib29sIGlzTGlua2FibGUoY29uc3QgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdCYgb2JqZWN0KQoreworICAgIGlmICghb2JqZWN0LnJlbmRlcmVy
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFNlZSBodHRwczovL3dpa2kubW96
aWxsYS5vcmcvQWNjZXNzaWJpbGl0eS9BVC1XaW5kb3dzLUFQSSBmb3IgdGhlIGVsZW1lbnRzCisg
ICAgLy8gTW96aWxsYSBjb25zaWRlcnMgbGlua2FibGUuCisgICAgcmV0dXJuIG9iamVjdC5pc0xp
bmsoKSB8fCBvYmplY3QuaXNJbWFnZSgpIHx8IG9iamVjdC5yZW5kZXJlcigpLT5pc1RleHQoKTsK
K30KKworU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlRm9yTVNB
QSgpIGNvbnN0Cit7CisgICAgaWYgKGlzTGlua2FibGUoKnRoaXMpKSB7CisgICAgICAgIEVsZW1l
bnQqIGFuY2hvciA9IGFuY2hvckVsZW1lbnQoKTsKKyAgICAgICAgaWYgKGFuY2hvciAmJiBhbmNo
b3ItPmhhc1RhZ05hbWUoYVRhZykpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRN
TEFuY2hvckVsZW1lbnQqPihhbmNob3IpLT5ocmVmKCk7CisgICAgfQorCisgICAgcmV0dXJuIHN0
cmluZ1ZhbHVlKCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNMaW5r
ZWQoKSBjb25zdAoreworICAgIGlmICghaXNMaW5rYWJsZSgqdGhpcykpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIEVsZW1lbnQqIGFuY2hvciA9IGFuY2hvckVsZW1lbnQoKTsKKyAgICBp
ZiAoIWFuY2hvciB8fCAhYW5jaG9yLT5oYXNUYWdOYW1lKGFUYWcpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gIXN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4oYW5j
aG9yKS0+aHJlZigpLmlzRW1wdHkoKTsKK30KKworU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6Om5hbWVGb3JNU0FBKCkgY29uc3QKK3sKKyAgICBpZiAobV9yZW5kZXJlciAmJiBtX3Jl
bmRlcmVyLT5pc1RleHQoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHQq
PihtX3JlbmRlcmVyKS0+dGV4dCgpOworCisgICAgcmV0dXJuIHRpdGxlKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2Uu
Y3BwIGIvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKaW5kZXggNTVjYmFiMy4uNGU0ZTZk
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKKysrIGIvV2ViS2l0
L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKQEAgLTIzMiw3ICsyMzIsNyBAQCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjU3RhdGUoVkFSSUFOVCB2Q2hpbGQs
IFZBUklBTlQqCiAgICAgcHZTdGF0ZS0+dnQgPSBWVF9JNDsKICAgICBwdlN0YXRlLT5sVmFsID0g
MDsKIAotICAgIGlmIChjaGlsZE9iai0+aXNBbmNob3IoKSkKKyAgICBpZiAoY2hpbGRPYmotPmlz
TGlua2VkKCkpCiAgICAgICAgIHB2U3RhdGUtPmxWYWwgfD0gU1RBVEVfU1lTVEVNX0xJTktFRDsK
IAogICAgIGlmIChjaGlsZE9iai0+aXNIb3ZlcmVkKCkpCkBAIC01MTQsMTIgKzUxNCwxMiBAQCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEFjY2Vzc2libGVCYXNlOjphY2NEb0RlZmF1bHRBY3Rp
b24oVkFSSUFOVCB2Q2hpbGQpCiAvLyBBY2Nlc3NpYmxlQmFzZQogU3RyaW5nIEFjY2Vzc2libGVC
YXNlOjpuYW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9vYmplY3QtPnRpdGxlKCk7CisgICAg
cmV0dXJuIG1fb2JqZWN0LT5uYW1lRm9yTVNBQSgpOwogfQogCiBTdHJpbmcgQWNjZXNzaWJsZUJh
c2U6OnZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9vYmplY3QtPnN0cmluZ1ZhbHVlKCk7
CisgICAgcmV0dXJuIG1fb2JqZWN0LT5zdHJpbmdWYWx1ZUZvck1TQUEoKTsKIH0KIAogU3RyaW5n
IEFjY2Vzc2libGVCYXNlOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJLaXQv
d2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGYyMzZlNmUuLmRiNDYx
ZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTAtMjkgIEpvbiBIb25leWN1dHQgIDxqaG9u
ZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBNU0FBOiBBY2Nlc3NpYmlsaXR5IG9mIGxpbmtz
IGlzIHdyb25nCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMwOTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBY2Nlc3NpYmxlQmFzZS5jcHA6CisgICAgICAgIChBY2Nlc3NpYmxlQmFzZTo6Z2V0X2Fj
Y1N0YXRlKToKKyAgICAgICAgQ2hlY2sgd2hldGhlciB0aGUgZWxlbWVudCBpcyBsaW5rZWQsIGlu
c3RlYWQgb2Ygd2hldGhlciB0aGUgbm9kZSBpcyBhbgorICAgICAgICBhbmNob3IsIHNvIHRoZSBj
aGlsZCAibGlua2FibGUiIGVsZW1lbnRzIG9mIGFuY2hvciBlbGVtZW50cyB3aWxsIGFsc28KKyAg
ICAgICAgYmUgImxpbmtlZCIuCisgICAgICAgIChBY2Nlc3NpYmxlQmFzZTo6bmFtZSk6CisgICAg
ICAgIFJldHVybiB0aGUgbmFtZSBmb3IgTVNBQS4KKyAgICAgICAgKEFjY2Vzc2libGVCYXNlOjp2
YWx1ZSk6CisgICAgICAgIFJldHVybiB0aGUgc3RyaW5nIHZhbHVlIGZvciBNU0FBLgorCiAyMDA5
LTEwLTI2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVyLXN0
YW1wZWQgYnkgRGFyaW4gQWRsZXIuCi0tIAoxLjYuNS5yYzIKCg==
</data>
<flag name="review"
          id="23649"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42153</attachid>
            <date>2009-10-29 15:33:29 -0700</date>
            <delta_ts>2009-10-29 15:44:23 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>0001-MSAA-Accessibility-of-links-is-wrong.patch</filename>
            <type>text/plain</type>
            <size>10439</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA5MzQ0N2QxY2I3NjlkZDZjMWE2MDVlNjEyODQyZTEwMTBlNmRhZjNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVGh1LCAyOSBPY3QgMjAwOSAxMzoyMzo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIE1T
QUE6IEFjY2Vzc2liaWxpdHkgb2YgbGlua3MgaXMgd3JvbmcKCmh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkyOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpX
ZWJDb3JlOgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuY3BwOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6c3RyaW5nVmFsdWVGb3JNU0FBKToK
UmV0dXJuIHRoZSBVUkwuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpuYW1l
Rm9yTVNBQSk6ClJldHVybiB0aGUgYWx0IHRleHQuCgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUltYWdlTWFwTGluay5oOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6
aXNMaW5rZWQpOgpSZXR1cm4gdHJ1ZS4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0Lmg6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0xpbmtlZCk6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdWYWx1ZUZvck1TQUEpOgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6bmFtZUZvck1TQUEpOgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6aXNMaW5rYWJsZSk6ClJldHVybiB0cnVl
IGlmIHRoZSBlbGVtZW50IGlzIGNvbnNpZGVyZWQgImxpbmthYmxlIiB3aXRoIHJlc3BlY3QgdG8K
YWNjZXNzaWJpbGl0eS4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmlu
Z1ZhbHVlRm9yTVNBQSk6CklmIHRoZSBlbGVtZW50IGlzIGxpbmthYmxlLCBjaGVjayB3aGV0aGVy
IGl0IGhhcyBhIHBhcmVudCBhbmNob3IKZWxlbWVudC4gSWYgc28sIHJldHVybiB0aGUgYW5jaG9y
IGVsZW1lbnQncyBocmVmLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNM
aW5rZWQpOgpSZXR1cm4gdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBsaW5rYWJsZSBhbmQgaWYgaXQn
cyBwYXJlbnQgYW5jaG9yIHRhZydzCmhyZWYgaXMgbm9uLWVtcHR5LgooV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6bmFtZUZvck1TQUEpOgpGb3IgdGV4dCBub2RlcywgcmV0dXJu
IHRoZSB0ZXh0LgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoK
CldlYktpdC93aW46CgoqIEFjY2Vzc2libGVCYXNlLmNwcDoKKEFjY2Vzc2libGVCYXNlOjpnZXRf
YWNjU3RhdGUpOgpDaGVjayB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIGxpbmtlZCwgaW5zdGVhZCBv
ZiB3aGV0aGVyIHRoZSBub2RlIGlzIGFuCmFuY2hvciwgc28gdGhlIGNoaWxkICJsaW5rYWJsZSIg
ZWxlbWVudHMgb2YgYW5jaG9yIGVsZW1lbnRzIHdpbGwgYWxzbwpiZSAibGlua2VkIi4KKEFjY2Vz
c2libGVCYXNlOjpuYW1lKToKUmV0dXJuIHRoZSBuYW1lIGZvciBNU0FBLgooQWNjZXNzaWJsZUJh
c2U6OnZhbHVlKToKUmV0dXJuIHRoZSBzdHJpbmcgdmFsdWUgZm9yIE1TQUEuCi0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM4ICsrKysr
KysrKysrKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGlu
ay5jcHAgICAgfCAgIDEyICsrKysrLQogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbmsuaCAgfCAgICA2ICsrLQogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaCAgICAgICAgfCAgICA0ICsrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgNDEgKysrKysrKysrKysrKysrKysrKysK
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggIHwgICAg
NiArKy0KIFdlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNiArLQogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE4ICsrKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygr
KSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDNmNmIzOWMuLmVhYmI2YmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMDkt
MTAtMjkgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBN
U0FBOiBBY2Nlc3NpYmlsaXR5IG9mIGxpbmtzIGlzIHdyb25nCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwOTI4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbmsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUltYWdl
TWFwTGluazo6c3RyaW5nVmFsdWVGb3JNU0FBKToKKyAgICAgICAgUmV0dXJuIHRoZSBVUkwuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rOjpuYW1lRm9yTVNBQSk6
CisgICAgICAgIFJldHVybiB0aGUgYWx0IHRleHQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbms6OmlzTGlua2VkKToKKyAgICAgICAgUmV0dXJuIHRydWUuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzTGlua2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ1ZhbHVlRm9yTVNBQSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpuYW1lRm9yTVNBQSk6CisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNMaW5rYWJsZSk6CisgICAgICAgIFJldHVybiB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGNv
bnNpZGVyZWQgImxpbmthYmxlIiB3aXRoIHJlc3BlY3QgdG8KKyAgICAgICAgYWNjZXNzaWJpbGl0
eS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1Zh
bHVlRm9yTVNBQSk6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGxpbmthYmxlLCBjaGVjayB3
aGV0aGVyIGl0IGhhcyBhIHBhcmVudCBhbmNob3IKKyAgICAgICAgZWxlbWVudC4gSWYgc28sIHJl
dHVybiB0aGUgYW5jaG9yIGVsZW1lbnQncyBocmVmLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6aXNMaW5rZWQpOgorICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0
aGUgZWxlbWVudCBpcyBsaW5rYWJsZSBhbmQgaWYgaXQncyBwYXJlbnQgYW5jaG9yIHRhZydzCisg
ICAgICAgIGhyZWYgaXMgbm9uLWVtcHR5LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6bmFtZUZvck1TQUEpOgorICAgICAgICBGb3IgdGV4dCBub2RlcywgcmV0
dXJuIHRoZSB0ZXh0LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Lmg6CisKIDIwMDktMTAtMjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAgYi9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAKaW5kZXggOTQzMTIy
ZS4uMzFhYjBjMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbmsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5SW1hZ2VNYXBMaW5rLmNwcApAQCAtMTM0LDUgKzEzNCwxNSBAQCBJbnRTaXplIEFjY2Vzc2li
aWxpdHlJbWFnZU1hcExpbms6OnNpemUoKSBjb25zdAogewogICAgIHJldHVybiBlbGVtZW50UmVj
dCgpLnNpemUoKTsKIH0KLSAgICAKKworU3RyaW5nIEFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbms6
OnN0cmluZ1ZhbHVlRm9yTVNBQSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHVybCgpOworfQorCitT
dHJpbmcgQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluazo6bmFtZUZvck1TQUEoKSBjb25zdAorewor
ICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlJbWFnZU1hcExpbmsuaCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1h
Z2VNYXBMaW5rLmgKaW5kZXggMmMyN2U0Ni4uMjdjZWJhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaAorKysgYi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5oCkBAIC01Niw5ICs1NiwxMyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBFbGVtZW50KiBhY3Rpb25FbGVtZW50KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBLVVJMIHVybCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0xpbmsoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9IAorICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtlZCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogICAg
IHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIAor
CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWVGb3JNU0FBKCkgY29uc3Q7CisgICAgdmly
dHVhbCBTdHJpbmcgbmFtZUZvck1TQUEoKSBjb25zdDsKKwogICAgIHZpcnR1YWwgSW50U2l6ZSBz
aXplKCkgY29uc3Q7CiAgICAgdmlydHVhbCBJbnRSZWN0IGVsZW1lbnRSZWN0KCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmgg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDYyMTEy
OTMuLjcwNzY3NjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaApAQCAtMjc3LDYgKzI3Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFk
T25seSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2l0
ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfTsKICAgICB2aXJ0dWFsIGJvb2wgaXNSZXF1aXJl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OworICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtlZCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNB
dHRyaWJ1dGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfTsKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
U2V0VGV4dFJhbmdlQXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OwpAQCAtNDM5
LDYgKzQ0MCw5IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGRvQVhMaW5lRm9ySW5kZXgodW5z
aWduZWQpOwogCisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWVGb3JNU0FBKCkgY29uc3Qg
eyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lRm9yTVNBQSgpIGNv
bnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiB3cmFwcGVyKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKaW5kZXggNDA3MjU0MS4uNGI1OGZlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjcwMCw0ICsy
NzAwLDQ1IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlQmFja2luZ1N0
b3JlKCkKICAgICBtX3JlbmRlcmVyLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKIH0KIAorc3RhdGljIGJvb2wgaXNMaW5rYWJsZShjb25zdCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0JiBvYmplY3QpCit7CisgICAgaWYgKCFvYmplY3QucmVuZGVy
ZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gU2VlIGh0dHBzOi8vd2lraS5t
b3ppbGxhLm9yZy9BY2Nlc3NpYmlsaXR5L0FULVdpbmRvd3MtQVBJIGZvciB0aGUgZWxlbWVudHMK
KyAgICAvLyBNb3ppbGxhIGNvbnNpZGVycyBsaW5rYWJsZS4KKyAgICByZXR1cm4gb2JqZWN0Lmlz
TGluaygpIHx8IG9iamVjdC5pc0ltYWdlKCkgfHwgb2JqZWN0LnJlbmRlcmVyKCktPmlzVGV4dCgp
OworfQorCitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWVGb3JN
U0FBKCkgY29uc3QKK3sKKyAgICBpZiAoaXNMaW5rYWJsZSgqdGhpcykpIHsKKyAgICAgICAgRWxl
bWVudCogYW5jaG9yID0gYW5jaG9yRWxlbWVudCgpOworICAgICAgICBpZiAoYW5jaG9yICYmIGFu
Y2hvci0+aGFzVGFnTmFtZShhVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxI
VE1MQW5jaG9yRWxlbWVudCo+KGFuY2hvciktPmhyZWYoKTsKKyAgICB9CisKKyAgICByZXR1cm4g
c3RyaW5nVmFsdWUoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc0xp
bmtlZCgpIGNvbnN0Cit7CisgICAgaWYgKCFpc0xpbmthYmxlKCp0aGlzKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgRWxlbWVudCogYW5jaG9yID0gYW5jaG9yRWxlbWVudCgpOworICAg
IGlmICghYW5jaG9yIHx8ICFhbmNob3ItPmhhc1RhZ05hbWUoYVRhZykpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVsZW1lbnQqPihh
bmNob3IpLT5ocmVmKCkuaXNFbXB0eSgpOworfQorCitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6bmFtZUZvck1TQUEoKSBjb25zdAoreworICAgIGlmIChtX3JlbmRlcmVyICYmIG1f
cmVuZGVyZXItPmlzVGV4dCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGV4
dCo+KG1fcmVuZGVyZXIpLT50ZXh0KCk7CisKKyAgICByZXR1cm4gdGl0bGUoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggYzZmZDc0OC4uNjkzYTIzYSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0xMDIs
NiArMTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGlzVmlzaXRlZCgpIGNvbnN0OyAgICAgICAgCiAgICAgdmlydHVh
bCBib29sIGlzUmVxdWlyZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNMaW5rZWQoKSBj
b25zdDsKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0QXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUo
KSBjb25zdDsKQEAgLTIyNCw3ICsyMjUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UmVj
dCBkb0FYQm91bmRzRm9yUmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdDsKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCk7Ci0gICAgCisKKyAgICB2aXJ0
dWFsIFN0cmluZyBzdHJpbmdWYWx1ZUZvck1TQUEoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBuYW1lRm9yTVNBQSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyT2JqZWN0KiBt
X3JlbmRlcmVyOwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIG1fYXJpYVJvbGU7CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcCBiL1dlYktpdC93aW4vQWNjZXNzaWJsZUJh
c2UuY3BwCmluZGV4IDU1Y2JhYjMuLjRlNGU2ZGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQWNj
ZXNzaWJsZUJhc2UuY3BwCisrKyBiL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCkBAIC0y
MzIsNyArMjMyLDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nlc3NpYmxlQmFzZTo6
Z2V0X2FjY1N0YXRlKFZBUklBTlQgdkNoaWxkLCBWQVJJQU5UKgogICAgIHB2U3RhdGUtPnZ0ID0g
VlRfSTQ7CiAgICAgcHZTdGF0ZS0+bFZhbCA9IDA7CiAKLSAgICBpZiAoY2hpbGRPYmotPmlzQW5j
aG9yKCkpCisgICAgaWYgKGNoaWxkT2JqLT5pc0xpbmtlZCgpKQogICAgICAgICBwdlN0YXRlLT5s
VmFsIHw9IFNUQVRFX1NZU1RFTV9MSU5LRUQ7CiAKICAgICBpZiAoY2hpbGRPYmotPmlzSG92ZXJl
ZCgpKQpAQCAtNTE0LDEyICs1MTQsMTIgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nl
c3NpYmxlQmFzZTo6YWNjRG9EZWZhdWx0QWN0aW9uKFZBUklBTlQgdkNoaWxkKQogLy8gQWNjZXNz
aWJsZUJhc2UKIFN0cmluZyBBY2Nlc3NpYmxlQmFzZTo6bmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fb2JqZWN0LT50aXRsZSgpOworICAgIHJldHVybiBtX29iamVjdC0+bmFtZUZvck1TQUEo
KTsKIH0KIAogU3RyaW5nIEFjY2Vzc2libGVCYXNlOjp2YWx1ZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fb2JqZWN0LT5zdHJpbmdWYWx1ZSgpOworICAgIHJldHVybiBtX29iamVjdC0+c3RyaW5n
VmFsdWVGb3JNU0FBKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmxlQmFzZTo6ZGVzY3JpcHRpb24o
KSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCBmMjM2ZTZlLi5kYjQ2MWRlIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0No
YW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDA5
LTEwLTI5ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAg
TVNBQTogQWNjZXNzaWJpbGl0eSBvZiBsaW5rcyBpcyB3cm9uZworCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkyOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuY3BwOgorICAg
ICAgICAoQWNjZXNzaWJsZUJhc2U6OmdldF9hY2NTdGF0ZSk6CisgICAgICAgIENoZWNrIHdoZXRo
ZXIgdGhlIGVsZW1lbnQgaXMgbGlua2VkLCBpbnN0ZWFkIG9mIHdoZXRoZXIgdGhlIG5vZGUgaXMg
YW4KKyAgICAgICAgYW5jaG9yLCBzbyB0aGUgY2hpbGQgImxpbmthYmxlIiBlbGVtZW50cyBvZiBh
bmNob3IgZWxlbWVudHMgd2lsbCBhbHNvCisgICAgICAgIGJlICJsaW5rZWQiLgorICAgICAgICAo
QWNjZXNzaWJsZUJhc2U6Om5hbWUpOgorICAgICAgICBSZXR1cm4gdGhlIG5hbWUgZm9yIE1TQUEu
CisgICAgICAgIChBY2Nlc3NpYmxlQmFzZTo6dmFsdWUpOgorICAgICAgICBSZXR1cm4gdGhlIHN0
cmluZyB2YWx1ZSBmb3IgTVNBQS4KKwogMjAwOS0xMC0yNiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhcmluIEFkbGVyLgotLSAKMS42
LjUucmMyCgo=
</data>
<flag name="review"
          id="23655"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42173</attachid>
            <date>2009-10-29 20:51:08 -0700</date>
            <delta_ts>2009-10-30 10:58:55 -0700</delta_ts>
            <desc>DRT changes, layout test</desc>
            <filename>0003-Test-for-MSAA-Accessibility-of-links-is-wrong.patch</filename>
            <type>text/plain</type>
            <size>11225</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA4NGNmMzk4YzU3YzAwZTU2MjNjODE1MmI1YTE1YzQ0YWQ3MDcyYmMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVGh1LCAyOSBPY3QgMjAwOSAyMDo0NjoyNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFRl
c3QgZm9yIE1TQUE6IEFjY2Vzc2liaWxpdHkgb2YgbGlua3MgaXMgd3JvbmcKCmh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkyOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgpXZWJLaXRUb29sczoKCiogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHA6CihnZXRBY2Nlc3NpYmlsaXR5VmFsdWVDYWxsYmFjayk6ClJldHVybiB0aGUgYWNj
ZXNzaWJpbGl0eSB2YWx1ZS4KKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MpOgpB
ZGRlZCAiYWNjZXNzaWJpbGl0eVZhbHVlIiB2YWx1ZS4KCiogRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oOgoKKiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEd0ay5jcHA6CihBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5VmFs
dWUpOgpTdHViYmVkLgoKKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbToKKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSk6ClN0
dWJiZWQuCgoqIER1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNw
cDoKKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CkdldCB0aGUg
b2JqZWN0J3MgdmFsdWUsIGFuZCByZXR1cm4gaXQgYXMgYSBKUyBzdHJpbmcuCgpMYXlvdXRUZXN0
czoKCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvbGlua2VkLWVsZW1lbnRzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvbGlua2VkLWVsZW1lbnRz
Lmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMSArKysrCiAuLi4vd2luL2FjY2Vzc2liaWxpdHkvbGlua2VkLWVs
ZW1lbnRzLWV4cGVjdGVkLnR4dCB8ICAgMTUgKysrKysKIC4uLi93aW4vYWNjZXNzaWJpbGl0eS9s
aW5rZWQtZWxlbWVudHMuaHRtbCAgICAgICAgIHwgICA2MyArKysrKysrKysrKysrKysrKysrKwog
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI4
ICsrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3Bw
ICAgICAgfCAgICA3ICsrCiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oICAgICAgICB8ICAgIDEgKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNw
cCAgICAgICAgICAgICAgfCAgICA2ICsrCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0gICAgICAgICAgICAgICB8ICAgIDYgKysKIC4uLi93aW4vQWNjZXNzaWJpbGl0eVVJRWxl
bWVudFdpbi5jcHAgICAgICAgICAgICAgIHwgICAxMiArKysrCiA5IGZpbGVzIGNoYW5nZWQsIDE0
OSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L2xpbmtlZC1lbGVtZW50cy1leHBlY3Rl
ZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNz
aWJpbGl0eS9saW5rZWQtZWxlbWVudHMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkODhiOTU1Li5iZDE3M2MxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTAtMjkgIEpvbiBIb25leWN1dHQgIDxqaG9uZXlj
dXR0QGFwcGxlLmNvbT4KKworICAgICAgICBUZXN0IGZvciBNU0FBOiBBY2Nlc3NpYmlsaXR5IG9m
IGxpbmtzIGlzIHdyb25nCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMwOTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9saW5rZWQtZWxlbWVudHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9s
aW5rZWQtZWxlbWVudHMuaHRtbDogQWRkZWQuCisKIDIwMDktMTAtMjkgIFNoaW5pY2hpcm8gSGFt
YWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5
L2xpbmtlZC1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
YWNjZXNzaWJpbGl0eS9saW5rZWQtZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MDQ1MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9saW5rZWQtZWxlbWVudHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKKyAKK2xpbmsgdGV4dCAKKyAKK1RoaXMgdGVzdCB2ZXJpZmll
cyB0aGF0LCBvbiBXaW5kb3dzLCBsaW5rZWQgdGV4dCwgbGlua2VkIGltYWdlcywgYW5kIGFuY2hv
ciBlbGVtZW50cyByZXR1cm4gdGhlIGFuY2hvcidzIGhyZWYgYXR0cmlidXRlIGZvciB0aGUgJ3Zh
bHVlJyBwcm9wZXJ0eSwgYW5kIHRleHQgbm9kZXMgcmV0dXJuIHRoZWlyIHRleHQgZm9yIHRoZWly
ICd0aXRsZScgcHJvcGVydHkuIAorCitCdWcgMzA5MjggLSBNU0FBOiBBY2Nlc3NpYmlsaXR5IG9m
IGxpbmtzIGlzIHdyb25nCisKK1BBU1MgZS5hY2Nlc3NpYmlsaXR5VmFsdWUuc3Vic3RyKC04KSBp
cyAiaW1nLmh0bWwiCitQQVNTIGUuYWNjZXNzaWJpbGl0eVZhbHVlLnN1YnN0cigtOCkgaXMgImlt
Zy5odG1sIgorUEFTUyBlLmFjY2Vzc2liaWxpdHlWYWx1ZS5zdWJzdHIoLTkpIGlzICJ0ZXh0Lmh0
bWwiCitQQVNTIGUuYWNjZXNzaWJpbGl0eVZhbHVlLnN1YnN0cigtOSkgaXMgInRleHQuaHRtbCIK
K1BBU1MgZS50aXRsZSBpcyAibGluayB0ZXh0IgorUEFTUyBlLmFjY2Vzc2liaWxpdHlWYWx1ZS5z
dWJzdHIoLTEwKSBpcyAiaW5wdXQuaHRtbCIKK1BBU1MgZS5hY2Nlc3NpYmlsaXR5VmFsdWUgaXMg
ImlucHV0IHZhbHVlIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNj
ZXNzaWJpbGl0eS9saW5rZWQtZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9hY2Nlc3NpYmlsaXR5L2xpbmtlZC1lbGVtZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmM2MjViMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9saW5rZWQtZWxlbWVudHMuaHRtbApAQCAtMCwwICsx
LDYzIEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisKKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgaWQ9ImJvZHkiPgorICAgICAgICA8YSBpZD0ibGluazEiIGhyZWY9ImltZy5odG1sIiB0
aXRsZT0idGl0bGUgdGV4dCI+PGltZyBzcmM9IjQwNC5wbmciIGFsdD0iYWx0IHRleHQiIHRpdGxl
PSJ0aXRsZSB0ZXh0Ij48L2E+CisgICAgICAgIDxicj4KKworICAgICAgICA8YSBpZD0ibGluazIi
IGhyZWY9InRleHQuaHRtbCIgdGl0bGU9InRpdGxlIHRleHQiPmxpbmsgdGV4dDwvYT4KKyAgICAg
ICAgPGJyPgorCisgICAgICAgIDxhIGlkPSJsaW5rMyIgaHJlZj0iaW5wdXQuaHRtbCIgdGl0bGU9
InRpdGxlIHRleHQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iaW5wdXQgdmFsdWUiPjwvYT4K
KyAgICAgICAgPGJyPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgVGhpcyB0ZXN0IHZlcmlm
aWVzIHRoYXQsIG9uIFdpbmRvd3MsIGxpbmtlZCB0ZXh0LCBsaW5rZWQgaW1hZ2VzLCBhbmQKKyAg
ICAgICAgICAgIGFuY2hvciBlbGVtZW50cyByZXR1cm4gdGhlIGFuY2hvcidzIGhyZWYgYXR0cmli
dXRlIGZvciB0aGUgJ3ZhbHVlJworICAgICAgICAgICAgcHJvcGVydHksIGFuZCB0ZXh0IG5vZGVz
IHJldHVybiB0aGVpciB0ZXh0IGZvciB0aGVpciAndGl0bGUnCisgICAgICAgICAgICBwcm9wZXJ0
eS4KKyAgICAgICAgICAgIDxicj48YnI+CisgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA5MjgiPkJ1ZyAzMDkyOAorICAgICAgICAg
ICAgLSBNU0FBOiBBY2Nlc3NpYmlsaXR5IG9mIGxpbmtzIGlzIHdyb25nPC9hPgorICAgICAgICA8
L3A+CisKKyAgICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKworICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaW5rMSIpLmZvY3VzKCk7CisgICAg
ICAgICAgICAgICAgdmFyIGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnZS5hY2Nlc3NpYmlsaXR5VmFsdWUuc3Vic3Ry
KC04KScsICciaW1nLmh0bWwiJyk7CisKKyAgICAgICAgICAgICAgICAvLyBUaGUgY2hpbGQgaW1n
IGVsZW1lbnQuCisgICAgICAgICAgICAgICAgZSA9IGUuY2hpbGRBdEluZGV4KDApOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCdlLmFjY2Vzc2liaWxpdHlWYWx1ZS5zdWJzdHIoLTgpJywgJyJp
bWcuaHRtbCInKTsKKworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJs
aW5rMiIpLmZvY3VzKCk7CisgICAgICAgICAgICAgICAgZSA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdlLmFjY2Vzc2li
aWxpdHlWYWx1ZS5zdWJzdHIoLTkpJywgJyJ0ZXh0Lmh0bWwiJyk7CisKKyAgICAgICAgICAgICAg
ICAvLyBUaGUgY2hpbGQgdGV4dCBub2RlLgorICAgICAgICAgICAgICAgIGUgPSBlLmNoaWxkQXRJ
bmRleCgwKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnZS5hY2Nlc3NpYmlsaXR5VmFsdWUu
c3Vic3RyKC05KScsICcidGV4dC5odG1sIicpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdl
LnRpdGxlJywgJyJsaW5rIHRleHQiJyk7CisKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibGluazMiKS5mb2N1cygpOworICAgICAgICAgICAgICAgIGUgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgnZS5hY2Nlc3NpYmlsaXR5VmFsdWUuc3Vic3RyKC0xMCknLCAnImlucHV0Lmh0bWwiJyk7CisK
KyAgICAgICAgICAgICAgICAvLyBUaGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gVGhpcyBzaG91bGQg
bm90IHJldHVybiB0aGUgVVJMIGFzCisgICAgICAgICAgICAgICAgLy8gaXRzIHZhbHVlLgorICAg
ICAgICAgICAgICAgIGUgPSBlLmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgnZS5hY2Nlc3NpYmlsaXR5VmFsdWUnLCAnImlucHV0IHZhbHVlIicpOworICAgICAgICAg
ICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggYWE5
OWNiNC4uYjRmNjc3MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDA5LTEwLTI5ICBKb24gSG9u
ZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgTVNBQTog
QWNjZXNzaWJpbGl0eSBvZiBsaW5rcyBpcyB3cm9uZworCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHA6CisgICAgICAgIChnZXRBY2Nlc3NpYmlsaXR5VmFsdWVDYWxsYmFjayk6Cisg
ICAgICAgIFJldHVybiB0aGUgYWNjZXNzaWJpbGl0eSB2YWx1ZS4KKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MpOgorICAgICAgICBBZGRlZCAiYWNjZXNzaWJpbGl0
eVZhbHVlIiB2YWx1ZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaDoKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50R3RrLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vz
c2liaWxpdHlWYWx1ZSk6CisgICAgICAgIFN0dWJiZWQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSk6CisgICAgICAgIFN0dWJiZWQuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5j
cHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5VmFsdWUp
OgorICAgICAgICBHZXQgdGhlIG9iamVjdCdzIHZhbHVlLCBhbmQgcmV0dXJuIGl0IGFzIGEgSlMg
c3RyaW5nLgorCiAyMDA5LTEwLTI5ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IDU5NThj
Y2IuLjFlZDgyMTcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC0zNjQsNiArMzY0LDEyIEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIGdldFZhbHVlRGVzY3JpcHRpb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgdmFsdWVE
ZXNjcmlwdGlvbi5nZXQoKSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldEFjY2Vzc2liaWxp
dHlWYWx1ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sK
KyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gYWNjZXNzaWJpbGl0eVZhbHVlKEFkb3B0LCB0
b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+YWNjZXNzaWJpbGl0eVZhbHVlKCkpOworICAgIHJldHVy
biBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBhY2Nlc3NpYmlsaXR5VmFsdWUuZ2V0KCkpOwor
fQorCiAvLyBEZXN0cnVjdGlvbgogCiBzdGF0aWMgdm9pZCBmaW5hbGl6ZShKU09iamVjdFJlZiB0
aGlzT2JqZWN0KQpAQCAtMzgxLDYgKzM4Nyw3IEBAIEpTT2JqZWN0UmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQoSlNDb250ZXh0UmVmIGNvCiBK
U0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQogewogICAgIHN0
YXRpYyBKU1N0YXRpY1ZhbHVlIHN0YXRpY1ZhbHVlc1tdID0geworICAgICAgICB7ICJhY2Nlc3Np
YmlsaXR5VmFsdWUiLCBnZXRBY2Nlc3NpYmlsaXR5VmFsdWVDYWxsYmFjaywgMCwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJyb2xlIiwgZ2V0Um9sZUNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InN1YnJvbGUiLCBnZXRTdWJyb2xlQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidGl0
bGUiLCBnZXRUaXRsZUNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXggZmZmZGFkOC4uZWE0
NWEyNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaApAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgSlNTdHJpbmdSZWYg
dGl0bGUoKTsKICAgICBKU1N0cmluZ1JlZiBkZXNjcmlwdGlvbigpOwogICAgIEpTU3RyaW5nUmVm
IGxhbmd1YWdlKCk7CisgICAgSlNTdHJpbmdSZWYgYWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3Q7
CiAgICAgZG91YmxlIHgoKTsKICAgICBkb3VibGUgeSgpOwogICAgIGRvdWJsZSB3aWR0aCgpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRHdGsuY3BwCmluZGV4IDlhYTMxYTguLmU1ZjI2ZDIgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3Rr
LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEd0ay5jcHAKQEAgLTQyNiwzICs0MjYsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmRlY3JlbWVudCgpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQorCitKU1N0
cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25z
dAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygwLCAwKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggMzc1ZGJh
ZC4uZWYwZjlkYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTU3MSwzICs1NzEsOSBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudCgpCiB7CiAgICAgW21fZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpOU0FjY2Vzc2liaWxpdHlEZWNyZW1lbnRBY3Rp
b25dOwogfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmls
aXR5VmFsdWUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
SlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2lu
LmNwcAppbmRleCBkZTNkOWZmLi5jMWY1N2VmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAKKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCkBA
IC0zNjYsMyArMzY2LDE1IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5jcmVtZW50
KCkKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVjcmVtZW50KCkKIHsKIH0KKworSlNT
dHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29u
c3QKK3sKKyAgICBCU1RSIHZhbHVlQlNUUjsKKyAgICBpZiAoRkFJTEVEKG1fZWxlbWVudC0+Z2V0
X2FjY1ZhbHVlKHNlbGYoKSwgJnZhbHVlQlNUUikpIHx8ICF2YWx1ZUJTVFIpCisgICAgICAgIHJl
dHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworCisgICAgd3N0cmluZyB2
YWx1ZSh2YWx1ZUJTVFIsIFN5c1N0cmluZ0xlbih2YWx1ZUJTVFIpKTsKKyAgICA6OlN5c0ZyZWVT
dHJpbmcodmFsdWVCU1RSKTsKKworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0
ZXJzKHZhbHVlLmRhdGEoKSwgdmFsdWUubGVuZ3RoKCkpOworfQotLSAKMS42LjUucmMyCgo=
</data>
<flag name="review"
          id="23676"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>