<?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>30937</bug_id>
          
          <creation_ts>2009-10-29 17:22:50 -0700</creation_ts>
          <short_desc>MSAA: Accessibility of headings is not correct</short_desc>
          <delta_ts>2009-10-30 14:39:46 -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>OS X 10.5</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>
          <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159158</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 17:22:50 -0700</bug_when>
    <thetext>The accessibility of heading elements on Windows is not correct. A heading element should return its tag name from IAccessible::get_accRole(), and IAccessible::get_accDescription() should include the level of the heading.

&lt;rdar://problem/7184566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159185</commentid>
    <comment_count>1</comment_count>
      <attachid>42167</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 18:53:19 -0700</bug_when>
    <thetext>Created attachment 42167
patch

Test to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159196</commentid>
    <comment_count>2</comment_count>
      <attachid>42167</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2009-10-29 19:39:08 -0700</bug_when>
    <thetext>Comment on attachment 42167
patch

&gt; +String AccessibilityRenderObject::stringRoleForMSAA() const
&gt; +{
...
&gt; +    // FIXME: Add the other tag names that should be returned as the role.
&gt; +    Element* element = static_cast&lt;Element*&gt;(node);
&gt; +    if (element-&gt;hasTagName(h1Tag) || element-&gt;hasTagName(h2Tag) ||
&gt; +        element-&gt;hasTagName(h3Tag) || element-&gt;hasTagName(h4Tag) ||
&gt; +        element-&gt;hasTagName(h5Tag) || element-&gt;hasTagName(h6Tag))
&gt; +        return element-&gt;tagName();
&gt; +
&gt; +    return String();
&gt; +}

I saw the list of remaining ones, and there aren&apos;t that many, so i would suggest just adding them.  Factoring out the tag name check into a static function would make for more organized code, especially when you add the missing ones. 

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159217</commentid>
    <comment_count>3</comment_count>
      <attachid>42174</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-29 21:13:17 -0700</bug_when>
    <thetext>Created attachment 42174
DRT changes, layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159221</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-10-29 22:05:51 -0700</bug_when>
    <thetext>Just a comment in passing:  
    VARIANT vRole;
    if (FAILED(m_element-&gt;get_accRole(self(), &amp;vRole)))
...
    } else if (V_VT(&amp;vRole) == VT_BSTR)
         result = wstring(V_BSTR(&amp;vRole), ::SysStringLen(V_BSTR(&amp;vRole)));

You may want to add a
    VariantClear(&amp;vRole);
right before the return to clean up the bstr (or anything else in the Variant, if you ever get more exotic) or you could simply do the SysFreeString in the else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159312</commentid>
    <comment_count>5</comment_count>
      <attachid>42174</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-10-30 08:00:07 -0700</bug_when>
    <thetext>Comment on attachment 42174
DRT changes, layout test

&gt; +    ASSERT(V_VT(&amp;vRole) == VT_I4 || V_VT(&amp;vRole) == VT_BSTR);
&gt; +
&gt; +    wstring result;
&gt; +    if (V_VT(&amp;vRole) == VT_I4) {
&gt; +        TCHAR roleText[64] = {0};
&gt; +        ::GetRoleText(V_I4(&amp;vRole), roleText, ARRAYSIZE(roleText));
&gt; +        result = roleText;

How do we know 64 characters is enough?

&gt; +    } else if (V_VT(&amp;vRole) == VT_BSTR)
&gt; +        result = wstring(V_BSTR(&amp;vRole), ::SysStringLen(V_BSTR(&amp;vRole)));
&gt; +
&gt; +    return JSStringCreateWithCharacters(result.data(), result.length());

As David says, you&apos;re leaking a BSTR here.

r=me if you fix the leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159434</commentid>
    <comment_count>6</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-30 14:00:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 42167 [details])
&gt; I saw the list of remaining ones, and there aren&apos;t that many, so i would
&gt; suggest just adding them.  Factoring out the tag name check into a static
&gt; function would make for more organized code, especially when you add the
&gt; missing ones. 
&gt; 
&gt; r=me

I&apos;ll submit a follow-up patch to add the remaining tags. I moved the tag name check into a separate function as you suggested. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159436</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-30 14:01:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Just a comment in passing:  
&gt;     VARIANT vRole;
&gt;     if (FAILED(m_element-&gt;get_accRole(self(), &amp;vRole)))
&gt; ...
&gt;     } else if (V_VT(&amp;vRole) == VT_BSTR)
&gt;          result = wstring(V_BSTR(&amp;vRole), ::SysStringLen(V_BSTR(&amp;vRole)));
&gt; 
&gt; You may want to add a
&gt;     VariantClear(&amp;vRole);
&gt; right before the return to clean up the bstr (or anything else in the Variant,
&gt; if you ever get more exotic) or you could simply do the SysFreeString in the
&gt; else.

I added a VariantClear(). Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159438</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-30 14:02:27 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 42174 [details])
&gt; &gt; +    ASSERT(V_VT(&amp;vRole) == VT_I4 || V_VT(&amp;vRole) == VT_BSTR);
&gt; &gt; +
&gt; &gt; +    wstring result;
&gt; &gt; +    if (V_VT(&amp;vRole) == VT_I4) {
&gt; &gt; +        TCHAR roleText[64] = {0};
&gt; &gt; +        ::GetRoleText(V_I4(&amp;vRole), roleText, ARRAYSIZE(roleText));
&gt; &gt; +        result = roleText;
&gt; 
&gt; How do we know 64 characters is enough?

We don&apos;t. I&apos;ll post a patch to fix this.

&gt; 
&gt; &gt; +    } else if (V_VT(&amp;vRole) == VT_BSTR)
&gt; &gt; +        result = wstring(V_BSTR(&amp;vRole), ::SysStringLen(V_BSTR(&amp;vRole)));
&gt; &gt; +
&gt; &gt; +    return JSStringCreateWithCharacters(result.data(), result.length());
&gt; 
&gt; As David says, you&apos;re leaking a BSTR here.
&gt; 
&gt; r=me if you fix the leak.

Fixed, thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159452</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-10-30 14:39:46 -0700</bug_when>
    <thetext>Committed in r50354, r50356.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42167</attachid>
            <date>2009-10-29 18:53:19 -0700</date>
            <delta_ts>2009-10-29 19:39:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0002-MSAA-Accessibility-of-headings-is-not-correct.patch</filename>
            <type>text/plain</type>
            <size>10298</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSAwMDAwOWEyNGJhYWZhYjY3NDdkNWIxMGU1MGQ2MjI3NjIwMDk1YzhiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVGh1LCAyOSBPY3QgMjAwOSAxODo0NjozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIE1T
QUE6IEFjY2Vzc2liaWxpdHkgb2YgaGVhZGluZ3MgaXMgbm90IGNvcnJlY3QKCmh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkzNwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgpXZWJDb3JlOgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoK
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmluZ1JvbGVGb3JNU0FBKToKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmRlc2NyaXB0aW9uRm9yTVNBQSk6CgoqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdSb2xlRm9yTVNBQSk6CklmIHRoZSBlbGVtZW50J3MgdGFn
IG5hbWUgaXMgb25lIG9mIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHJldHVybiB0aGUKdGFnIG5h
bWUgYXMgdGhlIHJvbGUgdGV4dC4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnBvc2l0aW9uYWxEZXNjcmlwdGlvbkZvck1TQUEpOgpJZiB0aGUgb2JqZWN0IGlzIGEgaGVhZGlu
ZywgcmV0dXJuIHRoZSBzdHJpbmcgIkwiIGZvbGxvd2VkIGJ5IHRoZQpoZWFkaW5nIGxldmVsLgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGVzY3JpcHRpb25Gb3JNU0FBKToK
SWYgdGhlIG9iamVjdCBoYXMgYSBwb3NpdGlvbmFsIGRlc2NyaXB0aW9uLCByZXR1cm4gaXQuIE90
aGVyd2lzZSwgZ2V0CnRoZSBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uLCBhbmQgcHJlZml4IGl0
IHdpdGggIkRlc2NyaXB0aW9uIiBzbyB0aGF0Ck1TQUEgY2xpZW50cyBrbm93IHRoYXQgaXQncyBu
b3QgYSBwb3NpdGlvbmFsIGRlc2NyaXB0aW9uLgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuaDoKCldlYktpdC93aW46CgoqIEFjY2Vzc2libGVCYXNlLmNwcDoKKEFj
Y2Vzc2libGVCYXNlOjpnZXRfYWNjRGVzY3JpcHRpb24pOgpDYWxsIHRoZSBvYmplY3QncyBkZXNj
cmlwdGlvbkZvck1TQUEoKS4gTW92ZWQgdGhlIGNvbW1lbnQgdG8gdGhlCldlYkNvcmUgZmlsZS4K
KEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjUm9sZSk6CklmIHRoZSBvYmplY3QgaGFzIGEgc3RyaW5n
IHJvbGUsIHJldHVybiB0aGF0LiBPdGhlcndpc2UsIHJldHVybiB0aGUKaW50ZWdlciByb2xlLgoK
KiBBY2Nlc3NpYmxlQmFzZS5oOgpSZW1vdmVkIGRlc2NyaXB0aW9uKCksIGFzIHRoaXMgd2FzIG1v
dmVkIHRvIFdlYkNvcmUuCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysKIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmggICAgICAgIHwgICAgMiArCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgNTEgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggIHwg
ICAgMyArCiBXZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjcgKysrKy0tLS0tLS0KIFdlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuaCAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMSAtCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAxMTAg
aW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NmNjZTI1Li5lZDhjOGI5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDMxIEBACiAyMDA5LTEwLTI5ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+
CiAKKyAgICAgICAgTVNBQTogQWNjZXNzaWJpbGl0eSBvZiBoZWFkaW5ncyBpcyBub3QgY29ycmVj
dAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpzdHJpbmdSb2xlRm9yTVNBQSk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpkZXNjcmlwdGlvbkZvck1TQUEpOgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1JvbGVGb3JNU0FBKToKKyAgICAg
ICAgSWYgdGhlIGVsZW1lbnQncyB0YWcgbmFtZSBpcyBvbmUgb2YgaDEsIGgyLCBoMywgaDQsIGg1
LCBoNiwgcmV0dXJuIHRoZQorICAgICAgICB0YWcgbmFtZSBhcyB0aGUgcm9sZSB0ZXh0LgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cG9zaXRpb25hbERlc2Ny
aXB0aW9uRm9yTVNBQSk6CisgICAgICAgIElmIHRoZSBvYmplY3QgaXMgYSBoZWFkaW5nLCByZXR1
cm4gdGhlIHN0cmluZyAiTCIgZm9sbG93ZWQgYnkgdGhlCisgICAgICAgIGhlYWRpbmcgbGV2ZWwu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXNjcmlwdGlv
bkZvck1TQUEpOgorICAgICAgICBJZiB0aGUgb2JqZWN0IGhhcyBhIHBvc2l0aW9uYWwgZGVzY3Jp
cHRpb24sIHJldHVybiBpdC4gT3RoZXJ3aXNlLCBnZXQKKyAgICAgICAgdGhlIGFjY2Vzc2liaWxp
dHkgZGVzY3JpcHRpb24sIGFuZCBwcmVmaXggaXQgd2l0aCAiRGVzY3JpcHRpb24iIHNvIHRoYXQK
KyAgICAgICAgTVNBQSBjbGllbnRzIGtub3cgdGhhdCBpdCdzIG5vdCBhIHBvc2l0aW9uYWwgZGVz
Y3JpcHRpb24uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuaDoKKworMjAwOS0xMC0yOSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUu
Y29tPgorCiAgICAgICAgIE1TQUE6IEFjY2Vzc2liaWxpdHkgb2YgbGlua3MgaXMgd3JvbmcKIAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA5MjgKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDY4YzZjYjgu
LmNmNWQ2NzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtNDQ4LDcgKzQ0OCw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBkb0FYTGluZUZvcklu
ZGV4KHVuc2lnbmVkKTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVlRm9yTVNBQSgp
IGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nUm9s
ZUZvck1TQUEoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgU3RyaW5n
IG5hbWVGb3JNU0FBKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIFN0
cmluZyBkZXNjcmlwdGlvbkZvck1TQUEoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogCiAj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKQogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAwMTM3
NTdmLi5mNTQyOWI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yNzUyLDQgKzI3NTIsNTUgQEAgU3RyaW5nIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6Om5hbWVGb3JNU0FBKCkgY29uc3QKICAgICByZXR1cm4gdGl0
bGUoKTsKIH0KIAorU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1JvbGVG
b3JNU0FBKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKworICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CisgICAgaWYg
KCFub2RlIHx8ICFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKKworICAgIC8vIFNlZSAiZG9jdW1lbnQgc3RydWN0dXJlIiwKKyAgICAvLyBodHRwczovL3dp
a2kubW96aWxsYS5vcmcvQWNjZXNzaWJpbGl0eS9BVC1XaW5kb3dzLUFQSQorICAgIC8vIEZJWE1F
OiBBZGQgdGhlIG90aGVyIHRhZyBuYW1lcyB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBhcyB0aGUg
cm9sZS4KKyAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUp
OworICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGgxVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKGgyVGFnKSB8fAorICAgICAgICBlbGVtZW50LT5oYXNUYWdOYW1lKGgzVGFnKSB8fCBlbGVt
ZW50LT5oYXNUYWdOYW1lKGg0VGFnKSB8fAorICAgICAgICBlbGVtZW50LT5oYXNUYWdOYW1lKGg1
VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGg2VGFnKSkKKyAgICAgICAgcmV0dXJuIGVsZW1l
bnQtPnRhZ05hbWUoKTsKKworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnBvc2l0aW9uYWxEZXNjcmlwdGlvbkZvck1TQUEoKSBjb25z
dAoreworICAgIC8vIFNlZSAicG9zaXRpb25hbCBkZXNjcmlwdGlvbnMiLAorICAgIC8vIGh0dHBz
Oi8vd2lraS5tb3ppbGxhLm9yZy9BY2Nlc3NpYmlsaXR5L0FULVdpbmRvd3MtQVBJCisgICAgaWYg
KGlzSGVhZGluZygpKQorICAgICAgICByZXR1cm4gIkwiICsgU3RyaW5nOjpudW1iZXIoaGVhZGlu
Z0xldmVsKCkpOworCisgICAgLy8gRklYTUU6IEFkZCBwb3NpdGlvbmFsIGRlc2NyaXB0aW9ucyBm
b3Igb3RoZXIgZWxlbWVudHMuCisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGVzY3JpcHRpb25Gb3JNU0FBKCkgY29uc3QKK3sKKyAg
ICBTdHJpbmcgZGVzY3JpcHRpb24gPSBwb3NpdGlvbmFsRGVzY3JpcHRpb25Gb3JNU0FBKCk7Cisg
ICAgaWYgKCFkZXNjcmlwdGlvbi5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBkZXNjcmlwdGlv
bjsKKworICAgIGRlc2NyaXB0aW9uID0gYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCk7CisgICAg
aWYgKCFkZXNjcmlwdGlvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gRnJvbSB0aGUgTW96aWxs
YSBNU0FBIGltcGxlbWVudGF0aW9uOgorICAgICAgICAvLyAiU2lnbmFsIHRvIHNjcmVlbiByZWFk
ZXJzIHRoYXQgdGhpcyBkZXNjcmlwdGlvbiBpcyBzcGVha2FibGUgYW5kIGlzIG5vdAorICAgICAg
ICAvLyBhIGZvcm1hdHRlZCBwb3NpdGlvbmFsIGluZm9ybWF0aW9uIGRlc2NyaXB0aW9uLiBEb24n
dCBsb2NhbGl6ZSB0aGUKKyAgICAgICAgLy8gJ0Rlc2NyaXB0aW9uOiAnIHBhcnQgb2YgdGhpcyBz
dHJpbmcsIGl0IHdpbGwgYmUgcGFyc2VkIG91dCBieSBhc3Npc3RpdmUKKyAgICAgICAgLy8gdGVj
aG5vbG9naWVzLiIKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbjogIiArIGRlc2NyaXB0aW9u
OworICAgIH0KKworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmgKaW5kZXggNjkzYTIzYS4uMTRiN2UzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0yMjcsNyArMjI3LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUoKTsKIAogICAgIHZpcnR1
YWwgU3RyaW5nIHN0cmluZ1ZhbHVlRm9yTVNBQSgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5n
IHN0cmluZ1JvbGVGb3JNU0FBKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgbmFtZUZvck1T
QUEoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlvbkZvck1TQUEoKSBjb25z
dDsKIAogcHJvdGVjdGVkOgogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsKQEAgLTI0Miw2
ICsyNDQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXJpYUxpc3Rib3hTZWxlY3RlZENoaWxkcmVu
KEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwogICAgIHZvaWQgYXJpYUxpc3Rib3hWaXNp
YmxlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJik7CiAgICAgYm9vbCBhcmlh
SXNIaWRkZW4oKSBjb25zdDsKKyAgICBTdHJpbmcgcG9zaXRpb25hbERlc2NyaXB0aW9uRm9yTVNB
QSgpIGNvbnN0OwogCiAgICAgRWxlbWVudCogbWVudUVsZW1lbnRGb3JNZW51QnV0dG9uKCkgY29u
c3Q7CiAgICAgRWxlbWVudCogbWVudUl0ZW1FbGVtZW50Rm9yTWVudSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAgYi9XZWJLaXQvd2luL0FjY2Vzc2li
bGVCYXNlLmNwcAppbmRleCA0ZTRlNmRhLi40N2I4MzY5IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L0FjY2Vzc2libGVCYXNlLmNwcAorKysgYi9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcApA
QCAtMTkwLDExICsxOTAsOSBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIEFjY2Vzc2libGVC
YXNlOjpnZXRfYWNjRGVzY3JpcHRpb24oVkFSSUFOVCB2Q2hpbGQsIEJTVAogICAgIGlmIChGQUlM
RUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CiAKLSAgICAvLyBUT0RPOiBEZXNjcmlwdGlvbiwg
Zm9yIFNFTEVDVCBzdWJpdGVtcywgc2hvdWxkIGJlIGEgc3RyaW5nIGRlc2NyaWJpbmcKLSAgICAv
LyB0aGUgcG9zaXRpb24gb2YgdGhlIGl0ZW0gaW4gaXRzIGdyb3VwIGFuZCBvZiB0aGUgZ3JvdXAg
aW4gdGhlIGxpc3QgKHNlZQotICAgIC8vIEZpcmVmb3gpLgotICAgIGlmICgqZGVzY3JpcHRpb24g
PSBCU3RyaW5nKHdyYXBwZXIoY2hpbGRPYmopLT5kZXNjcmlwdGlvbigpKS5yZWxlYXNlKCkpCisg
ICAgaWYgKCpkZXNjcmlwdGlvbiA9IEJTdHJpbmcoY2hpbGRPYmotPmRlc2NyaXB0aW9uRm9yTVNB
QSgpKS5yZWxlYXNlKCkpCiAgICAgICAgIHJldHVybiBTX09LOworCiAgICAgcmV0dXJuIFNfRkFM
U0U7CiB9CiAKQEAgLTIxMSw2ICsyMDksMTMgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBB
Y2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY1JvbGUoVkFSSUFOVCB2Q2hpbGQsIFZBUklBTlQqIHAKICAg
ICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwogCisgICAgU3RyaW5nIHJvbGVT
dHJpbmcgPSBjaGlsZE9iai0+c3RyaW5nUm9sZUZvck1TQUEoKTsKKyAgICBpZiAoIXJvbGVTdHJp
bmcuaXNFbXB0eSgpKSB7CisgICAgICAgIFZfVlQocHZSb2xlKSA9IFZUX0JTVFI7CisgICAgICAg
IFZfQlNUUihwdlJvbGUpID0gQlN0cmluZyhyb2xlU3RyaW5nKS5yZWxlYXNlKCk7CisgICAgICAg
IHJldHVybiBTX09LOworICAgIH0KKwogICAgIHB2Um9sZS0+dnQgPSBWVF9JNDsKICAgICBwdlJv
bGUtPmxWYWwgPSB3cmFwcGVyKGNoaWxkT2JqKS0+cm9sZSgpOwogICAgIHJldHVybiBTX09LOwpA
QCAtNTIyLDIwICs1MjcsNiBAQCBTdHJpbmcgQWNjZXNzaWJsZUJhc2U6OnZhbHVlKCkgY29uc3QK
ICAgICByZXR1cm4gbV9vYmplY3QtPnN0cmluZ1ZhbHVlRm9yTVNBQSgpOwogfQogCi1TdHJpbmcg
QWNjZXNzaWJsZUJhc2U6OmRlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICBTdHJpbmcgZGVzYyA9
IG1fb2JqZWN0LT5hY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKTsKLSAgICBpZiAoZGVzYy5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIGRlc2M7Ci0KLSAgICAvLyBGcm9tIHRoZSBNb3ppbGxhIE1T
QUEgaW1wbGVtZW50YXRpb246Ci0gICAgLy8gIlNpZ25hbCB0byBzY3JlZW4gcmVhZGVycyB0aGF0
IHRoaXMgZGVzY3JpcHRpb24gaXMgc3BlYWthYmxlIGFuZCBpcyBub3QKLSAgICAvLyBhIGZvcm1h
dHRlZCBwb3NpdGlvbmFsIGluZm9ybWF0aW9uIGRlc2NyaXB0aW9uLiBEb24ndCBsb2NhbGl6ZSB0
aGUKLSAgICAvLyAnRGVzY3JpcHRpb246ICcgcGFydCBvZiB0aGlzIHN0cmluZywgaXQgd2lsbCBi
ZSBwYXJzZWQgb3V0IGJ5IGFzc2lzdGl2ZQotICAgIC8vIHRlY2hub2xvZ2llcy4iCi0gICAgcmV0
dXJuICJEZXNjcmlwdGlvbjogIiArIGRlc2M7Ci19Ci0KIHN0YXRpYyBsb25nIE1TQUFSb2xlKEFj
Y2Vzc2liaWxpdHlSb2xlIHJvbGUpCiB7CiAgICAgc3dpdGNoIChyb2xlKSB7CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmggYi9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNl
LmgKaW5kZXggYzY5YzU3ZC4uM2I2YmNlOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9BY2Nlc3Np
YmxlQmFzZS5oCisrKyBiL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuaApAQCAtOTUsNyArOTUs
NiBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBuYW1lKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgdmFsdWUoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OlN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgbG9u
ZyByb2xlKCkgY29uc3Q7CiAKICAgICBIUkVTVUxUIGdldEFjY2Vzc2liaWxpdHlPYmplY3RGb3JD
aGlsZChWQVJJQU5UIHZDaGlsZCwgV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdComKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKaW5kZXggNWFiZDIzMi4uZDNhYzgyZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAwOS0xMC0y
OSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCisgICAgICAgIE1TQUE6
IEFjY2Vzc2liaWxpdHkgb2YgaGVhZGluZ3MgaXMgbm90IGNvcnJlY3QKKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA5MzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFjY2Vzc2libGVCYXNlLmNwcDoK
KyAgICAgICAgKEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjRGVzY3JpcHRpb24pOgorICAgICAgICBD
YWxsIHRoZSBvYmplY3QncyBkZXNjcmlwdGlvbkZvck1TQUEoKS4gTW92ZWQgdGhlIGNvbW1lbnQg
dG8gdGhlCisgICAgICAgIFdlYkNvcmUgZmlsZS4KKyAgICAgICAgKEFjY2Vzc2libGVCYXNlOjpn
ZXRfYWNjUm9sZSk6CisgICAgICAgIElmIHRoZSBvYmplY3QgaGFzIGEgc3RyaW5nIHJvbGUsIHJl
dHVybiB0aGF0LiBPdGhlcndpc2UsIHJldHVybiB0aGUKKyAgICAgICAgaW50ZWdlciByb2xlLgor
CisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuaDoKKyAgICAgICAgUmVtb3ZlZCBkZXNjcmlwdGlv
bigpLCBhcyB0aGlzIHdhcyBtb3ZlZCB0byBXZWJDb3JlLgorCisyMDA5LTEwLTI5ICBKb24gSG9u
ZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKICAgICAgICAgTVNBQTogQWNjZXNzaWJp
bGl0eSBvZiBsaW5rcyBpcyB3cm9uZwogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDkyOAotLSAKMS42LjUucmMyCgo=
</data>
<flag name="review"
          id="23670"
          type_id="1"
          status="+"
          setter="alice.barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42174</attachid>
            <date>2009-10-29 21:13:17 -0700</date>
            <delta_ts>2009-10-30 08:00:06 -0700</delta_ts>
            <desc>DRT changes, layout test</desc>
            <filename>0004-Test-for-MSAA-Accessibility-of-headings-is-not-corre.patch</filename>
            <type>text/plain</type>
            <size>7738</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA0OGYwYTM4YzhiZmNhNDJhOWMzOTQ0NTE0NTM2MzNmZGQyODRiYzYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVGh1LCAyOSBPY3QgMjAwOSAyMTowOTo0NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFRl
c3QgZm9yIE1TQUE6IEFjY2Vzc2liaWxpdHkgb2YgaGVhZGluZ3MgaXMgbm90IGNvcnJlY3QKCmh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkzNwoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgpXZWJLaXRUb29sczoKCiogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZSk6
CkFsbG93IHRoZSByb2xlIHJldHVybmVkIHRvIGJlIGEgQlNUUi4KKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmRlc2NyaXB0aW9uKToKRml4IGEgY29weS9wYXN0ZSBlcnJvci4KCkxheW91dFRlc3Rz
OgoKKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWVsZW1lbnRzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1lbGVtZW50
cy5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTEgKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1lbGVt
ZW50cy1leHBlY3RlZC50eHQgICAgfCAgIDI5ICsrKysrKysrKysKIC4uLi93aW4vYWNjZXNzaWJp
bGl0eS9oZWFkaW5nLWVsZW1lbnRzLmh0bWwgICAgICAgIHwgICA2MCArKysrKysrKysrKysrKysr
KysrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDE0ICsrKysrCiAuLi4vd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwICAgICAg
ICAgICAgICB8ICAgMTggKysrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCsp
LCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9hY2Nlc3NpYmlsaXR5L2hlYWRpbmctZWxlbWVudHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvaGVhZGlu
Zy1lbGVtZW50cy5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJkMTczYzEuLjA5YjkwNjUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwxNiBAQAogMjAwOS0xMC0yOSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29t
PgogCisgICAgICAgIFRlc3QgZm9yIE1TQUE6IEFjY2Vzc2liaWxpdHkgb2YgaGVhZGluZ3MgaXMg
bm90IGNvcnJlY3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzA5MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L2hlYWRpbmctZWxlbWVudHMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9oZWFk
aW5nLWVsZW1lbnRzLmh0bWw6IEFkZGVkLgorCisyMDA5LTEwLTI5ICBKb24gSG9uZXljdXR0ICA8
amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKICAgICAgICAgVGVzdCBmb3IgTVNBQTogQWNjZXNzaWJp
bGl0eSBvZiBsaW5rcyBpcyB3cm9uZwogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMDkyOApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWVsZW1lbnRzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDMxODUyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvaGVhZGlu
Zy1lbGVtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOSBAQAoraDEKKworaDIKKworaDMK
KworaDQKKworaDUKKworaDYKKworVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQsIG9uIFdpbmRvd3Ms
IGhlYWRpbmcgZWxlbWVudHMgcmV0dXJuIHRoZWlyIHRhZyBuYW1lIGZvciB0aGVpciAncm9sZScg
cHJvcGVydHkgYW5kIGEgcG9zaXRpb25hbCBkZXNjcmlwdGlvbiBvZiAiTCMiLCB3aGVyZSAjIGlz
IHRoZSBoZWFkaW5nIGxldmVsLCBmb3IgdGhlaXIgZGVzY3JpcHRpb24uIAorCitCdWcgMzA5Mzcg
LSBNU0FBOiBBY2Nlc3NpYmlsaXR5IG9mIGhlYWRpbmdzIGlzIG5vdCBjb3JyZWN0CisKK1BBU1Mg
ZS5yb2xlIGlzICJIMSIKK1BBU1MgZS5kZXNjcmlwdGlvbiBpcyAiTDEiCitQQVNTIGUucm9sZSBp
cyAiSDIiCitQQVNTIGUuZGVzY3JpcHRpb24gaXMgIkwyIgorUEFTUyBlLnJvbGUgaXMgIkgzIgor
UEFTUyBlLmRlc2NyaXB0aW9uIGlzICJMMyIKK1BBU1MgZS5yb2xlIGlzICJINCIKK1BBU1MgZS5k
ZXNjcmlwdGlvbiBpcyAiTDQiCitQQVNTIGUucm9sZSBpcyAiSDUiCitQQVNTIGUuZGVzY3JpcHRp
b24gaXMgIkw1IgorUEFTUyBlLnJvbGUgaXMgIkg2IgorUEFTUyBlLmRlc2NyaXB0aW9uIGlzICJM
NiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkv
aGVhZGluZy1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2li
aWxpdHkvaGVhZGluZy1lbGVtZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNlNWFhZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWVsZW1lbnRzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IGlk
PSJib2R5Ij4KKyAgICAgICAgPGgxPmgxPC9oMT4KKyAgICAgICAgPGgyPmgyPC9oMj4KKyAgICAg
ICAgPGgzPmgzPC9oMz4KKyAgICAgICAgPGg0Pmg0PC9oND4KKyAgICAgICAgPGg1Pmg1PC9oNT4K
KyAgICAgICAgPGg2Pmg2PC9oNj4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIFRoaXMgdGVz
dCB2ZXJpZmllcyB0aGF0LCBvbiBXaW5kb3dzLCBoZWFkaW5nIGVsZW1lbnRzIHJldHVybiB0aGVp
cgorICAgICAgICAgICAgdGFnIG5hbWUgZm9yIHRoZWlyICdyb2xlJyBwcm9wZXJ0eSBhbmQgYSBw
b3NpdGlvbmFsIGRlc2NyaXB0aW9uIG9mCisgICAgICAgICAgICAiTCMiLCB3aGVyZSAjIGlzIHRo
ZSBoZWFkaW5nIGxldmVsLCBmb3IgdGhlaXIgZGVzY3JpcHRpb24uCisgICAgICAgICAgICA8YnI+
PGJyPgorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMwOTM3Ij5CdWcgMzA5MzcKKyAgICAgICAgICAgIC0gTVNBQTogQWNjZXNzaWJp
bGl0eSBvZiBoZWFkaW5ncyBpcyBub3QgY29ycmVjdDwvYT4KKyAgICAgICAgPC9wPgorCisgICAg
ICAgIDxwIGlkPSJjb25zb2xlIj48L3A+CisKKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAg
IGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisKKyAgICAgICAgICAgICAg
ICB2YXIgZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmNoaWxkQXRJ
bmRleCgwKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnZS5yb2xlJywgJyJIMSInKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgnZS5kZXNjcmlwdGlvbicsICciTDEiJyk7CisKKyAgICAg
ICAgICAgICAgICBlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hp
bGRBdEluZGV4KDEpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdlLnJvbGUnLCAnIkgyIicp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdlLmRlc2NyaXB0aW9uJywgJyJMMiInKTsKKwor
ICAgICAgICAgICAgICAgIGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dC5jaGlsZEF0SW5kZXgoMik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2Uucm9sZScsICci
SDMiJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2UuZGVzY3JpcHRpb24nLCAnIkwzIicp
OworCisgICAgICAgICAgICAgICAgZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50LmNoaWxkQXRJbmRleCgzKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnZS5yb2xl
JywgJyJINCInKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnZS5kZXNjcmlwdGlvbicsICci
TDQiJyk7CisKKyAgICAgICAgICAgICAgICBlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9j
dXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDQpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdl
LnJvbGUnLCAnIkg1IicpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdlLmRlc2NyaXB0aW9u
JywgJyJMNSInKTsKKworICAgICAgICAgICAgICAgIGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5mb2N1c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoNSk7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoJ2Uucm9sZScsICciSDYiJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2UuZGVzY3Jp
cHRpb24nLCAnIkw2IicpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKaW5kZXggYjRmNjc3MC4uYjJiM2Y2YiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDE5IEBACiAyMDA5LTEwLTI5ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+
CiAKKyAgICAgICAgVGVzdCBmb3IgTVNBQTogQWNjZXNzaWJpbGl0eSBvZiBoZWFkaW5ncyBpcyBu
b3QgY29ycmVjdAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMDkzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZSk6CisgICAgICAgIEFsbG93IHRo
ZSByb2xlIHJldHVybmVkIHRvIGJlIGEgQlNUUi4KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmRlc2NyaXB0aW9uKToKKyAgICAgICAgRml4IGEgY29weS9wYXN0ZSBlcnJvci4KKwor
MjAwOS0xMC0yOSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCiAgICAg
ICAgIFRlc3QgZm9yIE1TQUE6IEFjY2Vzc2liaWxpdHkgb2YgbGlua3MgaXMgd3JvbmcKIAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA5MjgKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50V2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50V2luLmNwcAppbmRleCBjMWY1N2VmLi5jM2Q4MmY2IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRXaW4uY3BwCkBAIC0xNTEsMTAgKzE1MSwxOCBAQCBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpyb2xlKCkKICAgICBWQVJJQU5UIHZSb2xlOwogICAgIGlmIChGQUlMRUQobV9l
bGVtZW50LT5nZXRfYWNjUm9sZShzZWxmKCksICZ2Um9sZSkpKQogICAgICAgICByZXR1cm4gSlNT
dHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKLSAgICBBU1NFUlQoVl9WVCgmdlJvbGUp
ID09IFZUX0k0KTsKLSAgICBUQ0hBUiByb2xlVGV4dFs2NF0gPSB7MH07Ci0gICAgOjpHZXRSb2xl
VGV4dChWX0k0KCZ2Um9sZSksIHJvbGVUZXh0LCBBUlJBWVNJWkUocm9sZVRleHQpKTsKLSAgICBy
ZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycyhyb2xlVGV4dCwgX3Rjc2xlbihyb2xl
VGV4dCkpOworCisgICAgQVNTRVJUKFZfVlQoJnZSb2xlKSA9PSBWVF9JNCB8fCBWX1ZUKCZ2Um9s
ZSkgPT0gVlRfQlNUUik7CisKKyAgICB3c3RyaW5nIHJlc3VsdDsKKyAgICBpZiAoVl9WVCgmdlJv
bGUpID09IFZUX0k0KSB7CisgICAgICAgIFRDSEFSIHJvbGVUZXh0WzY0XSA9IHswfTsKKyAgICAg
ICAgOjpHZXRSb2xlVGV4dChWX0k0KCZ2Um9sZSksIHJvbGVUZXh0LCBBUlJBWVNJWkUocm9sZVRl
eHQpKTsKKyAgICAgICAgcmVzdWx0ID0gcm9sZVRleHQ7CisgICAgfSBlbHNlIGlmIChWX1ZUKCZ2
Um9sZSkgPT0gVlRfQlNUUikKKyAgICAgICAgcmVzdWx0ID0gd3N0cmluZyhWX0JTVFIoJnZSb2xl
KSwgOjpTeXNTdHJpbmdMZW4oVl9CU1RSKCZ2Um9sZSkpKTsKKworICAgIHJldHVybiBKU1N0cmlu
Z0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKHJlc3VsdC5kYXRhKCksIHJlc3VsdC5sZW5ndGgoKSk7CiB9
CiAKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1YnJvbGUoKQpAQCAtMTc1
LDcgKzE4Myw3IEBAIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlKCkK
IEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uKCkKIHsKICAg
ICBCU1RSIGRlc2NyaXB0aW9uQlNUUjsKLSAgICBpZiAoRkFJTEVEKG1fZWxlbWVudC0+Z2V0X2Fj
Y05hbWUoc2VsZigpLCAmZGVzY3JpcHRpb25CU1RSKSkgfHwgIWRlc2NyaXB0aW9uQlNUUikKKyAg
ICBpZiAoRkFJTEVEKG1fZWxlbWVudC0+Z2V0X2FjY0Rlc2NyaXB0aW9uKHNlbGYoKSwgJmRlc2Ny
aXB0aW9uQlNUUikpIHx8ICFkZXNjcmlwdGlvbkJTVFIpCiAgICAgICAgIHJldHVybiBKU1N0cmlu
Z0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwogICAgIHdzdHJpbmcgZGVzY3JpcHRpb24oZGVz
Y3JpcHRpb25CU1RSLCBTeXNTdHJpbmdMZW4oZGVzY3JpcHRpb25CU1RSKSk7CiAgICAgOjpTeXNG
cmVlU3RyaW5nKGRlc2NyaXB0aW9uQlNUUik7Ci0tIAoxLjYuNS5yYzIKCg==
</data>
<flag name="review"
          id="23677"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>