<?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>43004</bug_id>
          
          <creation_ts>2010-07-26 14:36:06 -0700</creation_ts>
          <short_desc>WebElement should provide access to attributes</short_desc>
          <delta_ts>2010-07-27 01:08:06 -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 Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256241</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2010-07-26 14:36:06 -0700</bug_when>
    <thetext>For Windows accessibility, we need direct access to some of the attributes of a WebElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256265</commentid>
    <comment_count>1</comment_count>
      <attachid>62616</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2010-07-26 14:54:54 -0700</bug_when>
    <thetext>Created attachment 62616
Implements proposed feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256266</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-26 14:58:20 -0700</bug_when>
    <thetext>Attachment 62616 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebAttribute.cpp:37:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/chromium/src/WebElement.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256332</commentid>
    <comment_count>3</comment_count>
      <attachid>62616</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-26 16:43:57 -0700</bug_when>
    <thetext>Comment on attachment 62616
Implements proposed feature

is there any chance of getting a layout test with this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256365</commentid>
    <comment_count>4</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2010-07-26 18:33:18 -0700</bug_when>
    <thetext>This is all chromium wrapper code, and I have a chromium browser test ready for review that exercises these new APIs and makes sure they work. I&apos;ll send a link to the code review when I upload it.

I&apos;m also happy to add a layout test as well, but is there any infrastructure now to access chromium wrappers like WebNode, WebElement from a layout test? As far as I can tell, building WebKit by itself doesn&apos;t even compile the code in the chromium/ directory...but if I&apos;m missing something, please point me in the right direction!

- Dominic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256422</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-27 00:30:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; This is all chromium wrapper code, and I have a chromium browser test ready for review that exercises these new APIs and makes sure they work. I&apos;ll send a link to the code review when I upload it.
&gt; 
&gt; I&apos;m also happy to add a layout test as well, but is there any infrastructure now to access chromium wrappers like WebNode, WebElement from a layout test? As far as I can tell, building WebKit by itself doesn&apos;t even compile the code in the chromium/ directory...but if I&apos;m missing something, please point me in the right direction!
&gt; 
&gt; - Dominic

I don&apos;t know anything about how chromium builds accessibility, but I imagine DumpRenderTree could be modified to accommodate testing these things. I think it would be useful to figure out how to write layout tests for changes like these</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256425</commentid>
    <comment_count>6</comment_count>
      <attachid>62616</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-07-27 00:32:59 -0700</bug_when>
    <thetext>Comment on attachment 62616
Implements proposed feature

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256432</commentid>
    <comment_count>7</comment_count>
      <attachid>62616</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 01:08:02 -0700</bug_when>
    <thetext>Comment on attachment 62616
Implements proposed feature

Clearing flags on attachment: 62616

Committed r64112: &lt;http://trac.webkit.org/changeset/64112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256433</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 01:08:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62616</attachid>
            <date>2010-07-26 14:54:54 -0700</date>
            <delta_ts>2010-07-27 01:08:01 -0700</delta_ts>
            <desc>Implements proposed feature</desc>
            <filename>webkit4-1</filename>
            <type>text/plain</type>
            <size>16031</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjQwNzYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMDctMjYgIERvbWlu
aWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIFdpbmRvd3MgYWNjZXNzaWJpbGl0eSwgaGF2
ZSBXZWJFbGVtZW50IHByb3ZpZGUgYWNjZXNzCisgICAgICAgIHRvIGl0cyBhdHRyaWJ1dGVzLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzAwNAor
CisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQXR0cmlidXRlLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJBdHRyaWJ1dGU6On5XZWJBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdHRyaWJ1dGU6OldlYkF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkF0dHJpYnV0ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiBwdWJsaWMvV2ViRWxl
bWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJOYW1lZE5vZGVNYXAuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk5hbWVkTm9kZU1hcDo6fldlYk5hbWVkTm9kZU1hcCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk5hbWVkTm9kZU1hcDo6V2ViTmFtZWROb2RlTWFwKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTmFtZWROb2RlTWFwOjpvcGVyYXRvcj0pOgorICAgICAgICAqIHNyYy9XZWJBdHRy
aWJ1dGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQXR0cmlidXRlOjpyZXNldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkF0dHJpYnV0ZTo6YXNzaWduKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXR0cmlidXRlOjpXZWJBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdHRy
aWJ1dGU6OmxvY2FsTmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF0dHJpYnV0ZTo6dmFsdWUp
OgorICAgICAgICAqIHNyYy9XZWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWxl
bWVudDo6YXR0cmlidXRlcyk6CisgICAgICAgICogc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOYW1lZE5vZGVNYXA6OnJlc2V0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTmFtZWROb2RlTWFwOjphc3NpZ24pOgorICAgICAgICAoV2ViS2l0OjpXZWJO
YW1lZE5vZGVNYXA6OldlYk5hbWVkTm9kZU1hcCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5hbWVk
Tm9kZU1hcDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmFtZWROb2RlTWFwOjphdHRy
aWJ1dGVJdGVtKToKKwogMjAxMC0wNy0yNiAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpJbmRleDogV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAJKHJldmlzaW9uIDY0MDQ1KQorKysgV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdv
cmtpbmcgY29weSkKQEAgLTExNiw2ICsxMTYsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQW5pbWF0aW9uQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkFw
cGxpY2F0aW9uQ2FjaGVIb3N0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQXBwbGlj
YXRpb25DYWNoZUhvc3RDbGllbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJBdHRy
aWJ1dGUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJCaW5kaW5ncy5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYkNhY2hlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQ2FudmFzLmgnLApAQCAtMTkxLDYgKzE5Miw3IEBACiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJNZXNzYWdlUG9ydENoYW5uZWxDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJNaW1lUmVnaXN0cnkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJNdXRhdGlv
bkV2ZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTmFtZWROb2RlTWFwLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTmF2aWdhdGlvblR5cGUuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJOb2RlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTm9k
ZUNvbGxlY3Rpb24uaCcsCkBAIC0zNTgsNiArMzYwLDcgQEAKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkFu
aW1hdGlvbkNvbnRyb2xsZXJJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJBbmlt
YXRpb25Db250cm9sbGVySW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYkF0dHJpYnV0
ZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmluZGluZ3MuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xv
ci5jcHAnLApAQCAtNDI0LDYgKzQyNyw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk11dGF0aW9uRXZlbnQu
Y3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViTm9kZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTm9k
ZUNvbGxlY3Rpb24uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk5vZGVMaXN0LmNwcCcs
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF0dHJpYnV0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQXR0cmlidXRlLmgJKHJldmlzaW9uIDApCisr
KyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF0dHJpYnV0ZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJBdHRyaWJ1dGVfaAorI2RlZmluZSBXZWJBdHRyaWJ1dGVf
aAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIEF0dHJpYnV0ZTsgfQorI2lmIFdFQktJVF9JTVBM
RU1FTlRBVElPTgorbmFtZXNwYWNlIFdURiB7IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBQ
YXNzUmVmUHRyOyB9CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJTdHJp
bmc7CisKKy8vIFByb3ZpZGVzIHJlYWRvbmx5IGFjY2VzcyB0byBzb21lIHByb3BlcnRpZXMgb2Yg
YSBET00gYXR0cmlidXRlLgorY2xhc3MgV2ViQXR0cmlidXRlIHsKK3B1YmxpYzoKKyAgICB+V2Vi
QXR0cmlidXRlKCkgeyByZXNldCgpOyB9CisKKyAgICBXZWJBdHRyaWJ1dGUoKSB7IH0KKyAgICBX
ZWJBdHRyaWJ1dGUoY29uc3QgV2ViQXR0cmlidXRlJiBuKSB7IGFzc2lnbihuKTsgfQorICAgIFdl
YkF0dHJpYnV0ZSYgb3BlcmF0b3I9KGNvbnN0IFdlYkF0dHJpYnV0ZSYgbikKKyAgICB7CisgICAg
ICAgIGFzc2lnbihuKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdFQktJ
VF9BUEkgdm9pZCByZXNldCgpOworICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2Vi
QXR0cmlidXRlJik7CisKKyAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBsb2NhbE5hbWUoKSBjb25z
dDsKKyAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB2YWx1ZSgpIGNvbnN0OworCisjaWYgV0VCS0lU
X0lNUExFTUVOVEFUSU9OCisgICAgV2ViQXR0cmlidXRlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpBdHRyaWJ1dGU+Jik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRl
UHRyPFdlYkNvcmU6OkF0dHJpYnV0ZT4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJBdHRyaWJ1dGUuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsg
TEYKCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkVsZW1lbnQuaAkocmV2aXNpb24gNjQwNDUp
CisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNiArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIEVsZW1lbnQ7IH0KICNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYk5hbWVkTm9kZU1hcDsKKwogICAg
IC8vIFByb3ZpZGVzIGFjY2VzcyB0byBzb21lIHByb3BlcnRpZXMgb2YgYSBET00gZWxlbWVudCBu
b2RlLgogICAgIGNsYXNzIFdlYkVsZW1lbnQgOiBwdWJsaWMgV2ViTm9kZSB7CiAgICAgcHVibGlj
OgpAQCAtNTMsNiArNTUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgV0VCS0lUX0FQ
SSBib29sIGhhc0F0dHJpYnV0ZShjb25zdCBXZWJTdHJpbmcmKSBjb25zdDsKICAgICAgICAgV0VC
S0lUX0FQSSBXZWJTdHJpbmcgZ2V0QXR0cmlidXRlKGNvbnN0IFdlYlN0cmluZyYpIGNvbnN0Owog
ICAgICAgICBXRUJLSVRfQVBJIGJvb2wgc2V0QXR0cmlidXRlKGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSk7CisgICAgICAgIFdFQktJVF9BUEkgV2ViTmFtZWRO
b2RlTWFwIGF0dHJpYnV0ZXMoKSBjb25zdDsKICAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcg
aW5uZXJUZXh0KCkgY29uc3Q7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTmFtZWROb2RlTWFwLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOYW1lZE5vZGVNYXAuaAkocmV2aXNpb24gMCkKKysrIFdl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTmFtZWROb2RlTWFwLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYk5hbWVkTm9kZU1hcF9oCisjZGVmaW5lIFdlYk5hbWVkTm9k
ZU1hcF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgTmFtZWROb2RlTWFwOyB9CisjaWYgV0VC
S0lUX0lNUExFTUVOVEFUSU9OCituYW1lc3BhY2UgV1RGIHsgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGNsYXNzIFBhc3NSZWZQdHI7IH0KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNz
IFdlYkF0dHJpYnV0ZTsKKworLy8gUHJvdmlkZXMgcmVhZG9ubHkgYWNjZXNzIHRvIHNvbWUgcHJv
cGVydGllcyBvZiBhIERPTSBhdHRyaWJ1dGUgbWFwLgorY2xhc3MgV2ViTmFtZWROb2RlTWFwIHsK
K3B1YmxpYzoKKyAgICB+V2ViTmFtZWROb2RlTWFwKCkgeyByZXNldCgpOyB9CisKKyAgICBXZWJO
YW1lZE5vZGVNYXAoKSB7IH0KKyAgICBXZWJOYW1lZE5vZGVNYXAoY29uc3QgV2ViTmFtZWROb2Rl
TWFwJiBuKSB7IGFzc2lnbihuKTsgfQorICAgIFdlYk5hbWVkTm9kZU1hcCYgb3BlcmF0b3I9KGNv
bnN0IFdlYk5hbWVkTm9kZU1hcCYgbikKKyAgICB7CisgICAgICAgIGFzc2lnbihuKTsKKyAgICAg
ICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdFQktJVF9BUEkgdm9pZCByZXNldCgpOwor
ICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViTmFtZWROb2RlTWFwJik7CisKKyAg
ICBXRUJLSVRfQVBJIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgV2Vi
QXR0cmlidXRlIGF0dHJpYnV0ZUl0ZW0odW5zaWduZWQpIGNvbnN0OworCisjaWYgV0VCS0lUX0lN
UExFTUVOVEFUSU9OCisgICAgV2ViTmFtZWROb2RlTWFwKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpOYW1lZE5vZGVNYXA+Jik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2
YXRlUHRyPFdlYkNvcmU6Ok5hbWVkTm9kZU1hcD4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJOYW1lZE5vZGVNYXAuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0
eWxlCiAgICsgTEYKCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkF0dHJpYnV0ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBdHRyaWJ1dGUuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBdHRyaWJ1dGUuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkF0
dHJpYnV0ZS5oIgorCisjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKworI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQXR0cmlidXRlOjpyZXNldCgp
Cit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisKK3ZvaWQgV2ViQXR0cmlidXRlOjphc3Np
Z24oY29uc3QgV2ViQXR0cmlidXRlJiBvdGhlcikKK3sKKyAgICBtX3ByaXZhdGUgPSBvdGhlci5t
X3ByaXZhdGU7Cit9CisKK1dlYkF0dHJpYnV0ZTo6V2ViQXR0cmlidXRlKGNvbnN0IFBhc3NSZWZQ
dHI8QXR0cmlidXRlPiYgb3RoZXIpCisgICAgOiBtX3ByaXZhdGUob3RoZXIpCit7Cit9CisKK1dl
YlN0cmluZyBXZWJBdHRyaWJ1dGU6OmxvY2FsTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdl
YlN0cmluZyhtX3ByaXZhdGUtPmxvY2FsTmFtZSgpKTsKK30KKworV2ViU3RyaW5nIFdlYkF0dHJp
YnV0ZTo6dmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBXZWJTdHJpbmcobV9wcml2YXRlLT52
YWx1ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkF0dHJpYnV0ZS5jcHAKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDog
c3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA2NDA0NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCisjaW5jbHVkZSAiV2ViTmFtZWROb2Rl
TWFwLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTczLDYgKzc1LDExIEBAIGJvb2wgV2ViRWxlbWVudDo6c2V0QXR0cmlidXRlKGNvbnN0IFdl
YlMKICAgICByZXR1cm4gIWV4Y2VwdGlvbkNvZGU7CiB9CiAKK1dlYk5hbWVkTm9kZU1hcCBXZWJF
bGVtZW50OjphdHRyaWJ1dGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViTmFtZWROb2RlTWFw
KG1fcHJpdmF0ZS0+YXR0cmlidXRlcygpKTsKK30KKwogV2ViU3RyaW5nIFdlYkVsZW1lbnQ6Omlu
bmVyVGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbnN0VW53cmFwPEVsZW1lbnQ+KCktPmlu
bmVyVGV4dCgpOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOYW1lZE5vZGVNYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTmFtZWROb2RlTWFwLmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTmFtZWROb2RlTWFwLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJOYW1lZE5vZGVNYXAuaCIKKworI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgorI2luY2x1
ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJXZWJBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJXZWJOb2Rl
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk5hbWVkTm9kZU1hcDo6cmVzZXQo
KQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCit2b2lkIFdlYk5hbWVkTm9kZU1hcDo6
YXNzaWduKGNvbnN0IFdlYk5hbWVkTm9kZU1hcCYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0g
b3RoZXIubV9wcml2YXRlOworfQorCitXZWJOYW1lZE5vZGVNYXA6OldlYk5hbWVkTm9kZU1hcChj
b25zdCBQYXNzUmVmUHRyPE5hbWVkTm9kZU1hcD4mIG90aGVyKQorICAgIDogbV9wcml2YXRlKG90
aGVyKQoreworfQorCit1bnNpZ25lZCBXZWJOYW1lZE5vZGVNYXA6Omxlbmd0aCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bGVuZ3RoKCk7Cit9CisKK1dlYkF0dHJpYnV0ZSBXZWJO
YW1lZE5vZGVNYXA6OmF0dHJpYnV0ZUl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFdlYkF0dHJpYnV0ZShtX3ByaXZhdGUtPmF0dHJpYnV0ZUl0ZW0oaW5kZXgpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk5hbWVkTm9kZU1hcC5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQogICArIExGCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>