<?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>3256</bug_id>
          
          <creation_ts>2005-06-02 22:34:17 -0700</creation_ts>
          <short_desc>Onselect event is ignored with TEXTAREA and INPUT</short_desc>
          <delta_ts>2005-07-13 23:12:20 -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>Forms</component>
          <version>412</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Petersen">c.petersen87</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10621</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2005-06-02 22:34:17 -0700</bug_when>
    <thetext>Expected Results: Onselect event should be processed on both HTML 4.0  TEXTAREA and INPUT elements
What I got: Onselect event is not processed

Steps to reproduce:

1) Open attached test case &quot;textarea_onselect.html&quot; in Safari 2.0
2) In the first element (TEXTAREA) , click and place carat in field. Drag a selection over all of the text and 
mouse up. No alert is displayed (onselect)
3) In the second element (INPUT), click and place carat in field. Drag a selection over all of the text and 
mouse up. Again, no alert is displayed (onselect)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10622</commentid>
    <comment_count>1</comment_count>
      <attachid>2092</attachid>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2005-06-02 22:37:52 -0700</bug_when>
    <thetext>Created attachment 2092
Sample test case that contains a TEXTAREA and INPUT element with onselect event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10800</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2005-06-07 11:05:25 -0700</bug_when>
    <thetext>Apple Bug: &lt;rdar://problem/4141141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11261</commentid>
    <comment_count>3</comment_count>
      <attachid>2204</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-06-10 00:37:18 -0700</bug_when>
    <thetext>Created attachment 2204
Partial fix

Here&apos;s a patch that fixes this for textareas, and puts all the necessary
machinery in place for input fields except for the actual selection
notification in KWQTextField.
The reason for it not working in KWQTextField is because the selection
notification function is called too many times, resulting in unnecessary
onSelect() calls. 
I believe the problem is that when the text field gets focus it selects
everything, causing a selection notification. Then setHasFocus changes the
selection too. I&apos;m also getting a notification when the text field loses focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12183</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-15 20:18:14 -0700</bug_when>
    <thetext>I&apos;m working to refine the patch to get it right. Some experiments with Firefox and MacIE show that:

    1) Firefox emits select events whenever you tab into an &lt;input type=text&gt;, even when it&apos;s empty
    2) MacIE emits select events not only when the selection changes from a range to a range and from a 
caret to a range, but also when the selection changes from a range to a caret; we&apos;ll have to keep track the 
old selection if we want to match that behavior

Need some testing with WinIE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12184</commentid>
    <comment_count>5</comment_count>
      <attachid>2376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-15 20:18:57 -0700</bug_when>
    <thetext>Created attachment 2376
Another simple test case with both an &lt;input type=text&gt; and a &lt;textarea&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12185</commentid>
    <comment_count>6</comment_count>
      <attachid>2377</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-15 20:41:25 -0700</bug_when>
    <thetext>Created attachment 2377
More-complete fix

I did a more-complete fix. It seems to do everything except for the fact that
it doesn&apos;t send a selection change event when changing from a range to a caret.
We&apos;ll have to check whether WinIE sends an event in this case, and if it does,
we might have to do something more fancy, since the QTextEdit API doesn&apos;t tell
you the old selection when sending the selection change signal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12186</commentid>
    <comment_count>7</comment_count>
      <attachid>2378</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-15 20:42:23 -0700</bug_when>
    <thetext>Created attachment 2378
Slightly better test that includes 3 types of &lt;input&gt; as well as &lt;textarea&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12187</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-15 20:48:09 -0700</bug_when>
    <thetext>Testing with WinIE shows that it does not do the thing that MacIE does (send an event when the selection 
becomes a caret). So I think this patch is ready to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12204</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-06-15 23:57:04 -0700</bug_when>
    <thetext>Thanks for looking at this. The new patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12693</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Petersen">c.petersen87</who>
    <bug_when>2005-06-20 08:56:36 -0700</bug_when>
    <thetext>Great ! Verified fixed with TOT Webkit (6/20) under 10.4.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14628</commentid>
    <comment_count>11</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2005-07-13 23:03:47 -0700</bug_when>
    <thetext>Fixed in 10.4.2</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2092</attachid>
            <date>2005-06-02 22:37:52 -0700</date>
            <delta_ts>2005-06-02 22:37:52 -0700</delta_ts>
            <desc>Sample test case that contains a TEXTAREA and INPUT element with onselect event</desc>
            <filename>textarea_onselect.html</filename>
            <type>text/html</type>
            <size>620</size>
            <attacher name="Chris Petersen">c.petersen87</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj4KCjxodG1sPgoKPGhlYWQ+CgoKPFRJVExFPkhUTUwgRnVuY3Rpb25hbCAtLSBURVhUQVJF
QSAtIE9OU0VMRUNUPC9USVRMRT4KCjwvaGVhZD4KPHA+IEJvdGggdGhlIHRleHRhcmVhIGFuZCBp
bnB1dCBlbGVtZW50cyBiZWxvdyBoYXZlIGEgb25zZWxlY3QgZXZlbnQgdGhhdCBzaG91bGQgZGlz
cGxheSBhIGFsZXJ0IGRpYWxvZyBhZnRlciB5b3UgaGF2ZSBzZWxlY3RlZCB0aGUgdGV4dCBjb250
ZW50LiA8L3A+Cgo8dGV4dGFyZWEgY29scz0iMTAiIHJvd3M9IjE1IiBvbnNlbGVjdD0iYWxlcnQo
J1RoaXMgZGlhbG9nIGlzIGRpc3BsYXllZCBieSBhIG9uc2VsZWN0IGV2ZW50JykiPgoKUGxlYXNl
IHNlbGVjdCBhbGwgb2YgdGhpcyB0ZXh0IGluIHRoaXMgdGV4dGFyZWEgZWxlbWVudAoKPC90ZXh0
YXJlYT4KPGJyPgo8aW5wdXQgdHlwZT10ZXh0IHZhbHVlPSJTZWxlY3QgdGV4dCBpbiB0aGlzIHRl
eHQgaW5wdXQgZmllbGQiIHNpemU9IjU1IiBvblNlbGVjdD0iYWxlcnQoJ0FuIG9uU2VsZWN0IGhh
bmRsZXIgaGFzIGJlZW4gcHJvY2Vzc2VkLicpIj4KCgo8L2Zvcm0+Cgo8L2h0bWw+Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2204</attachid>
            <date>2005-06-10 00:37:18 -0700</date>
            <delta_ts>2005-06-15 20:41:25 -0700</delta_ts>
            <desc>Partial fix</desc>
            <filename>webcore-onselect.diff</filename>
            <type>text/plain</type>
            <size>11796</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">PyAuRFNfU3RvcmUKPyBpY3UvLkRTX1N0b3JlCj8ga2h0bWwvLkRTX1N0b3JlCj8ga2h0bWwvZWNt
YS8uRFNfU3RvcmUKPyBraHRtbC9taXNjLy5EU19TdG9yZQo/IGtodG1sL3htbC8uRFNfU3RvcmUK
PyBraHRtbC94c2wvLkRTX1N0b3JlCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQy
NTMKZGlmZiAtdSAtcjEuNDI1MyBDaGFuZ2VMb2cKLS0tIENoYW5nZUxvZwkyMDA1LzA2LzEwIDA2
OjQ3OjMyCTEuNDI1MworKysgQ2hhbmdlTG9nCTIwMDUvMDYvMTAgMDc6MzQ6MzEKQEAgLTEsMyAr
MSwzMyBAQAorMjAwNS0wNi0xMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAbWFjLmNvbT4K
KworCSoga2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcDoKKwlEb24ndCBjYWxsIG9uU2VsZWN0
IGhlcmUsIHRoYXQncyBkb25lIHdoZW4gdGhlIHRleHQKKwlhcmVhJ3Mgc2VsZWN0aW9uIGNoYW5n
ZWQuIAorCisJKiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3BwOgorCSoga2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9mb3JtLmg6CisJSG9vayB1cCBzZWxlY3Rpb24gY2hhbmdlZCBzbG90cyBm
b3IgdGhlIGxpbmUgZWRpdCBhbmQKKwl0ZXh0IGFyZWEgZm9ybSBlbGVtZW50cy4KKworCSoga3dx
L0tXUUxpbmVFZGl0Lmg6CisJKiBrd3EvS1dRTGluZUVkaXQubW06CisJKiBrd3EvS1dRVGV4dEVk
aXQuaDoKKwkqIGt3cS9LV1FUZXh0RWRpdC5tbToJCQorCUFkZCBzZWxlY3Rpb25DaGFuZ2VkIHNp
Z25hbHMgYW5kIGhhc1NlbGVjdGVkVGV4dAorCWZ1bmN0aW9ucy4KKworCSoga3dxL0tXUVNsb3Qu
bW06CisJTWFrZSBzZWxlY3Rpb25DaGFuZ2VkIGEgc2lnbmFsIG9uIFJlbmRlckZvcm1FbGVtZW50
LgorCQorCSoga3dxL0tXUVRleHRBcmVhLmg6CisJKiBrd3EvS1dRVGV4dEFyZWEubW06CisJVHJh
Y2sgc2VsZWN0aW9uIGNoYW5nZWQgZXZlbnRzIGFuZCBjYWxsIHNlbGVjdGlvbkNoYW5nZWQoKQor
CW9uIHRoZSB0ZXh0IGVkaXQgd2lkZ2V0IGFjY29yZGluZ2x5LiBBZGQgaGFzU2VsZWN0aW9uIGdl
dHRlci4KKworCSoga3dxL0tXUVRleHRGaWVsZC5oOgorCSoga3dxL0tXUVRleHRGaWVsZC5tbToK
KwlBZGQgaGFzU2VsZWN0aW9uIGdldHRlci4KKwogMjAwNS0wNi0wOSAgRGF2aWQgSHlhdHQgIDxo
eWF0dEBhcHBsZS5jb20+CiAKIAlGaXggZnJvbSBDYXJzdG9uIEd1ZW50aGVyIGZvciBidWd6aWxs
YSBidWcgMzIzNi4KSW5kZXg6IGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNw
cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNjEKZGlmZiAtdSAtcjEuMTYxIGh0bWxfZm9ybWlt
cGwuY3BwCi0tLSBodG1sX2Zvcm1pbXBsLmNwcAkyMDA1LzA1LzMxIDA1OjQ4OjQxCTEuMTYxCisr
KyBodG1sX2Zvcm1pbXBsLmNwcAkyMDA1LzA2LzEwIDA3OjM0OjMyCkBAIC0zMzI4LDcgKzMzMjgs
NiBAQAogewogICAgIGlmIChtX3JlbmRlcikKICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyVGV4
dEFyZWEqPihtX3JlbmRlciktPnNlbGVjdCgpOwotICAgIG9uU2VsZWN0KCk7CiB9CiAKIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudEltcGw6OmNoaWxkcmVuQ2hhbmdlZCgpCkluZGV4OiBraHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJfZm9ybS5jcHAsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMTA1CmRpZmYgLXUgLXIxLjEwNSByZW5kZXJfZm9ybS5jcHAKLS0tIHJlbmRlcl9mb3Jt
LmNwcAkyMDA1LzA1LzE4IDIxOjEwOjI0CTEuMTA1CisrKyByZW5kZXJfZm9ybS5jcHAJMjAwNS8w
Ni8xMCAwNzozNDozMgpAQCAtMjU2LDYgKzI1NiwxMSBAQAogICAgIC8vIGRvIG5vdGhpbmcKIH0K
IAordm9pZCBSZW5kZXJGb3JtRWxlbWVudDo6c2xvdFNlbGVjdGlvbkNoYW5nZWQoKQoreworICAg
IC8vIGRvIG5vdGhpbmcKK30KKwogI2VuZGlmCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUz
OCw2ICs1NDMsNyBAQAogICAgIExpbmVFZGl0V2lkZ2V0ICplZGl0ID0gbmV3IExpbmVFZGl0V2lk
Z2V0KHZpZXcoKS0+dmlld3BvcnQoKSk7CiAjZW5kaWYKICAgICBjb25uZWN0KGVkaXQsU0lHTkFM
KHJldHVyblByZXNzZWQoKSksIHRoaXMsIFNMT1Qoc2xvdFJldHVyblByZXNzZWQoKSkpOworICAg
IGNvbm5lY3QoZWRpdCxTSUdOQUwoc2VsZWN0aW9uQ2hhbmdlZCgpKSx0aGlzLFNMT1Qoc2xvdFNl
bGVjdGlvbkNoYW5nZWQoKSkpOwogICAgIGNvbm5lY3QoZWRpdCxTSUdOQUwodGV4dENoYW5nZWQo
Y29uc3QgUVN0cmluZyAmKSksdGhpcyxTTE9UKHNsb3RUZXh0Q2hhbmdlZChjb25zdCBRU3RyaW5n
ICYpKSk7CiAgICAgY29ubmVjdChlZGl0LFNJR05BTChjbGlja2VkKCkpLHRoaXMsU0xPVChzbG90
Q2xpY2tlZCgpKSk7CiAKQEAgLTU2MSw2ICs1NjcsMTcgQEAKICAgICBzZXRRV2lkZ2V0KGVkaXQp
OwogfQogCit2b2lkIFJlbmRlckxpbmVFZGl0OjpzbG90U2VsZWN0aW9uQ2hhbmdlZCgpCit7Cisg
ICAgUUxpbmVFZGl0KiB3ID0gc3RhdGljX2Nhc3Q8UUxpbmVFZGl0Kj4obV93aWRnZXQpOworICAg
IAorICAgIC8vIFdlIG9ubHkgd2FudCB0byBjYWxsIG9uc2VsZWN0IGlmIHRoZXJlIGFjdHVhbGx5
IGlzIGEgc2VsZWN0aW9uCisgICAgaWYgKCF3LT5oYXNTZWxlY3RlZFRleHQoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIGVsZW1lbnQoKS0+b25TZWxlY3QoKTsKK30KKwogdm9pZCBSZW5k
ZXJMaW5lRWRpdDo6c2xvdFJldHVyblByZXNzZWQoKQogewogI2lmICFBUFBMRV9DSEFOR0VTCkBA
IC0xNDc4LDYgKzE0OTUsNyBAQAogCiAgICAgY29ubmVjdChlZGl0LFNJR05BTCh0ZXh0Q2hhbmdl
ZCgpKSx0aGlzLFNMT1Qoc2xvdFRleHRDaGFuZ2VkKCkpKTsKICAgICBjb25uZWN0KGVkaXQsU0lH
TkFMKGNsaWNrZWQoKSksdGhpcyxTTE9UKHNsb3RDbGlja2VkKCkpKTsKKyAgICBjb25uZWN0KGVk
aXQsU0lHTkFMKHNlbGVjdGlvbkNoYW5nZWQoKSksdGhpcyxTTE9UKHNsb3RTZWxlY3Rpb25DaGFu
Z2VkKCkpKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0QXJlYTo6ZGV0YWNoKCkKQEAgLTE2MjgsNiAr
MTY0NiwxNyBAQAogdm9pZCBSZW5kZXJUZXh0QXJlYTo6c2VsZWN0KCkKIHsKICAgICBzdGF0aWNf
Y2FzdDxRVGV4dEVkaXQgKj4obV93aWRnZXQpLT5zZWxlY3RBbGwoKTsKK30KKwordm9pZCBSZW5k
ZXJUZXh0QXJlYTo6c2xvdFNlbGVjdGlvbkNoYW5nZWQoKQoreworICAgIFFUZXh0RWRpdCogdyA9
IHN0YXRpY19jYXN0PFFUZXh0RWRpdCo+KG1fd2lkZ2V0KTsKKworICAgIC8vIFdlIG9ubHkgd2Fu
dCB0byBjYWxsIG9uc2VsZWN0IGlmIHRoZXJlIGFjdHVhbGx5IGlzIGEgc2VsZWN0aW9uCisgICAg
aWYgKCF3LT5oYXNTZWxlY3RlZFRleHQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGVs
ZW1lbnQoKS0+b25TZWxlY3QoKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBr
aHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0uaCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS41MApkaWZmIC11IC1yMS41MCByZW5kZXJfZm9ybS5oCi0tLSByZW5kZXJfZm9ybS5o
CTIwMDUvMDUvMTggMjE6MTA6MjQJMS41MAorKysgcmVuZGVyX2Zvcm0uaAkyMDA1LzA2LzEwIDA3
OjM0OjMyCkBAIC0xMDQsNyArMTA0LDggQEAKIAogcHVibGljIHNsb3RzOgogICAgIHZpcnR1YWwg
dm9pZCBzbG90Q2xpY2tlZCgpOwotCisgICAgdmlydHVhbCB2b2lkIHNsb3RTZWxlY3Rpb25DaGFu
Z2VkKCk7CisgICAgCiAjaWYgQVBQTEVfQ0hBTkdFUwogICAgIC8vIEhhY2sgdG8gbWFrZSBLV1FT
bG90IGNvZGUgd29yay4KICAgICB2aXJ0dWFsIHZvaWQgc2xvdFRleHRDaGFuZ2VkKGNvbnN0IFFT
dHJpbmcgJnN0cmluZyk7CkBAIC0yNTYsNiArMjU3LDcgQEAKIHB1YmxpYyBzbG90czoKICAgICB2
b2lkIHNsb3RSZXR1cm5QcmVzc2VkKCk7CiAgICAgdm9pZCBzbG90VGV4dENoYW5nZWQoY29uc3Qg
UVN0cmluZyAmc3RyaW5nKTsKKyAgICB2b2lkIHNsb3RTZWxlY3Rpb25DaGFuZ2VkKCk7CiAjaWYg
QVBQTEVfQ0hBTkdFUwogICAgIHZvaWQgc2xvdFBlcmZvcm1TZWFyY2goKTsKIHB1YmxpYzoKQEAg
LTQ3NSw3ICs0NzcsOCBAQAogCiBwcm90ZWN0ZWQgc2xvdHM6CiAgICAgdm9pZCBzbG90VGV4dENo
YW5nZWQoKTsKLQorICAgIHZvaWQgc2xvdFNlbGVjdGlvbkNoYW5nZWQoKTsKKyAgICAKIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRm9jdXNPdXQoKTsKIApJbmRleDoga3dxL0tX
UUxpbmVFZGl0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UUxpbmVFZGl0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzEKZGlmZiAtdSAtcjEuMzEgS1dR
TGluZUVkaXQuaAotLS0gS1dRTGluZUVkaXQuaAkyMDA0LzEwLzIwIDE5OjAxOjE2CTEuMzEKKysr
IEtXUUxpbmVFZGl0LmgJMjAwNS8wNi8xMCAwNzozNDozMgpAQCAtNjYsNiArNjYsNyBAQAogICAg
IHZvaWQgc2V0V3JpdGluZ0RpcmVjdGlvbihRUGFpbnRlcjo6VGV4dERpcmVjdGlvbik7CiAgICAg
CiAgICAgdm9pZCBzZWxlY3RBbGwoKTsKKyAgICBib29sIGhhc1NlbGVjdGVkVGV4dCgpIGNvbnN0
OwogICAgIAogICAgIFFTaXplIHNpemVGb3JDaGFyYWN0ZXJXaWR0aChpbnQgbnVtQ2hhcmFjdGVy
cykgY29uc3Q7CiAgICAgaW50IGJhc2VsaW5lUG9zaXRpb24oaW50IGhlaWdodCkgY29uc3Q7CkBA
IC03Myw3ICs3NCw4IEBACiAgICAgdm9pZCByZXR1cm5QcmVzc2VkKCkgeyBtX3JldHVyblByZXNz
ZWQuY2FsbCgpOyB9CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZCgpIHsgbV90ZXh0Q2hhbmdlZC5jYWxs
KHRleHQoKSk7IH0KICAgICB2b2lkIHBlcmZvcm1TZWFyY2goKSB7IG1fcGVyZm9ybVNlYXJjaC5j
YWxsKCk7IH0KLQorICAgIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZCgpIHsgbV9zZWxlY3Rpb25DaGFu
Z2VkLmNhbGwoKTsgfQorICAgICAgICAKICAgICB2b2lkIGNsaWNrZWQoKTsKICAgICAKICAgICB2
aXJ0dWFsIEZvY3VzUG9saWN5IGZvY3VzUG9saWN5KCkgY29uc3Q7CkBAIC05Miw2ICs5NCw4IEBA
CiAgICAgS1dRU2lnbmFsIG1fdGV4dENoYW5nZWQ7CiAgICAgS1dRU2lnbmFsIG1fY2xpY2tlZDsK
ICAgICBLV1FTaWduYWwgbV9wZXJmb3JtU2VhcmNoOworICAgIEtXUVNpZ25hbCBtX3NlbGVjdGlv
bkNoYW5nZWQ7CisgICAgCiAgICAgVHlwZSBtX3R5cGU7CiAgICAgS1dRVGV4dEZpZWxkQ29udHJv
bGxlciAqbV9jb250cm9sbGVyOwogfTsKSW5kZXg6IGt3cS9LV1FMaW5lRWRpdC5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRTGluZUVkaXQubW0sdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNjUKZGlmZiAtdSAtcjEuNjUgS1dRTGluZUVkaXQubW0KLS0tIEtX
UUxpbmVFZGl0Lm1tCTIwMDUvMDEvMjggMDE6MTY6MjAJMS42NQorKysgS1dRTGluZUVkaXQubW0J
MjAwNS8wNi8xMCAwNzozNDozMgpAQCAtNDQsNiArNDQsNyBAQAogICAgICwgbV90ZXh0Q2hhbmdl
ZCh0aGlzLCBTSUdOQUwodGV4dENoYW5nZWQoY29uc3QgUVN0cmluZyAmKSkpCiAgICAgLCBtX2Ns
aWNrZWQodGhpcywgU0lHTkFMKGNsaWNrZWQoKSkpCiAgICAgLCBtX3BlcmZvcm1TZWFyY2godGhp
cywgU0lHTkFMKHBlcmZvcm1TZWFyY2goKSkpCisgICAgLCBtX3NlbGVjdGlvbkNoYW5nZWQodGhp
cywgU0lHTkFMKHNlbGVjdGlvbkNoYW5nZWQoKSkpCiAgICAgLCBtX3R5cGUodHlwZSkKIHsKICAg
ICBLV1FfQkxPQ0tfRVhDRVBUSU9OUzsKQEAgLTE4Myw2ICsxODQsMTEgQEAKICAgICAgICAgW3Rl
eHRGaWVsZCBzZWxlY3RUZXh0Om5pbF07CiAgICAgICAgIEtXUV9VTkJMT0NLX0VYQ0VQVElPTlM7
CiAgICAgfQorfQorCitib29sIFFMaW5lRWRpdDo6aGFzU2VsZWN0ZWRUZXh0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gW21fY29udHJvbGxlciBoYXNTZWxlY3Rpb25dOwogfQogCiBib29sIFFMaW5l
RWRpdDo6ZWRpdGVkKCkgY29uc3QKSW5kZXg6IGt3cS9LV1FTbG90Lm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FTbG90Lm1tLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjI4CmRpZmYgLXUgLXIxLjI4IEtXUVNsb3QubW0KLS0tIEtXUVNsb3QubW0JMjAwNS8w
NS8xOCAyMToxMDoyNgkxLjI4CisrKyBLV1FTbG90Lm1tCTIwMDUvMDYvMTAgMDc6MzQ6MzIKQEAg
LTEwNCw3ICsxMDQsNyBAQAogICAgIENBU0Uoc2xvdFJlZGlyZWN0LCAoKSwgS0hUTUxQYXJ0KQog
ICAgIENBU0Uoc2xvdFJldHVyblByZXNzZWQsICgpLCBSZW5kZXJMaW5lRWRpdCkKICAgICBDQVNF
KHNsb3RTZWxlY3RlZCwgKGludCksIFJlbmRlclNlbGVjdCkKLSAgICBDQVNFKHNsb3RTZWxlY3Rp
b25DaGFuZ2VkLCAoKSwgUmVuZGVyU2VsZWN0KQorICAgIENBU0Uoc2xvdFNlbGVjdGlvbkNoYW5n
ZWQsICgpLCBSZW5kZXJGb3JtRWxlbWVudCkKICAgICBDQVNFKHNsb3RTbGlkZXJWYWx1ZUNoYW5n
ZWQsICgpLCBSZW5kZXJTbGlkZXIpCiAgICAgQ0FTRShzbG90U3RhdGVDaGFuZ2VkLCAoaW50KSwg
UmVuZGVyQ2hlY2tCb3gpCiAgICAgQ0FTRShzbG90VGV4dENoYW5nZWQsICgpLCBSZW5kZXJUZXh0
QXJlYSkKQEAgLTE3NSw3ICsxNzUsNyBAQAogICAgICAgICBDQVNFKHNsb3RQZXJmb3JtU2VhcmNo
LCBSZW5kZXJMaW5lRWRpdCwgc2xvdFBlcmZvcm1TZWFyY2gpCiAgICAgICAgIENBU0Uoc2xvdFJl
ZGlyZWN0LCBLSFRNTFBhcnQsIHNsb3RSZWRpcmVjdCkKICAgICAgICAgQ0FTRShzbG90UmV0dXJu
UHJlc3NlZCwgUmVuZGVyTGluZUVkaXQsIHNsb3RSZXR1cm5QcmVzc2VkKQotICAgICAgICBDQVNF
KHNsb3RTZWxlY3Rpb25DaGFuZ2VkLCBSZW5kZXJTZWxlY3QsIHNsb3RTZWxlY3Rpb25DaGFuZ2Vk
KQorICAgICAgICBDQVNFKHNsb3RTZWxlY3Rpb25DaGFuZ2VkLCBSZW5kZXJGb3JtRWxlbWVudCwg
c2xvdFNlbGVjdGlvbkNoYW5nZWQpCiAgICAgICAgIENBU0Uoc2xvdFNsaWRlclZhbHVlQ2hhbmdl
ZCwgUmVuZGVyU2xpZGVyLCBzbG90U2xpZGVyVmFsdWVDaGFuZ2VkKQogICAgICAgICBDQVNFKHNs
b3RTdWJtaXRGb3JtQWdhaW4sIEtIVE1MUGFydCwgc3VibWl0Rm9ybUFnYWluKQogICAgICAgICBD
QVNFKHNsb3RUZXh0Q2hhbmdlZCwgUmVuZGVyVGV4dEFyZWEsIHNsb3RUZXh0Q2hhbmdlZCkKSW5k
ZXg6IGt3cS9LV1FUZXh0QXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJD
b3JlL2t3cS9LV1FUZXh0QXJlYS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwCmRpZmYgLXUg
LXIxLjIwIEtXUVRleHRBcmVhLmgKLS0tIEtXUVRleHRBcmVhLmgJMjAwNS8wNS8yNCAyMzo0OToy
NAkxLjIwCisrKyBLV1FUZXh0QXJlYS5oCTIwMDUvMDYvMTAgMDc6MzQ6MzIKQEAgLTY3LDYgKzY3
LDcgQEAKIC0gKEJPT0wpd29yZFdyYXA7CiAKIC0gKHZvaWQpc2VsZWN0QWxsOworLSAoQk9PTClo
YXNTZWxlY3Rpb247CiAKIC0gKE5TU2l6ZSlzaXplV2l0aENvbHVtbnM6KGludCljb2x1bW5zIHJv
d3M6KGludClyb3dzOwogCkluZGV4OiBrd3EvS1dRVGV4dEFyZWEubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVRleHRBcmVhLm1tLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjgxCmRpZmYgLXUgLXIxLjgxIEtXUVRleHRBcmVhLm1tCi0tLSBLV1FUZXh0QXJl
YS5tbQkyMDA1LzA1LzMxIDAzOjA4OjM1CTEuODEKKysrIEtXUVRleHRBcmVhLm1tCTIwMDUvMDYv
MTAgMDc6MzQ6MzIKQEAgLTE5OSw2ICsxOTksMTIgQEAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9
CiAKKy0gKHZvaWQpIHRleHRWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOiAoTlNOb3RpZmljYXRpb24g
Kikgbm90aWZpY2F0aW9uCit7CisgICAgaWYgKHdpZGdldCkKKyAgICAgICAgd2lkZ2V0LT5zZWxl
Y3Rpb25DaGFuZ2VkKCk7Cit9CisKIC0gKHZvaWQpdGV4dERpZENoYW5nZTooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb24KIHsKICAgICBpZiAod2lkZ2V0KQpAQCAtMjc3LDYgKzI4MywxMyBA
QAogLSAodm9pZClzZWxlY3RBbGwKIHsKICAgICBbdGV4dFZpZXcgc2VsZWN0QWxsOm5pbF07Cit9
CisKKy0gKEJPT0wpaGFzU2VsZWN0aW9uCit7CisgICAgTlNSYW5nZSByYW5nZSA9IFt0ZXh0Vmll
dyBzZWxlY3RlZFJhbmdlXTsKKyAgICAKKyAgICByZXR1cm4gcmFuZ2UubGVuZ3RoID4gMDsKIH0K
IAogLSAodm9pZClzZXRFZGl0YWJsZTooQk9PTClmbGFnCkluZGV4OiBrd3EvS1dRVGV4dEVkaXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dEVkaXQu
aCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMwpkaWZmIC11IC1yMS4yMyBLV1FUZXh0RWRpdC5o
Ci0tLSBLV1FUZXh0RWRpdC5oCTIwMDQvMTIvMTAgMjI6MTU6NTkJMS4yMworKysgS1dRVGV4dEVk
aXQuaAkyMDA1LzA2LzEwIDA3OjM0OjMyCkBAIC02MCw2ICs2MCw4IEBACiAgICAgdm9pZCBzZXRE
aXNhYmxlZChib29sKTsKICAgICBib29sIGlzRGlzYWJsZWQoKSBjb25zdDsKIAorICAgIGJvb2wg
aGFzU2VsZWN0ZWRUZXh0KCkgY29uc3Q7CisgICAgCiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IFFT
dHJpbmcgJik7CiAgICAgUVN0cmluZyB0ZXh0KCkgY29uc3Q7CiAgICAgUVN0cmluZyB0ZXh0V2l0
aEhhcmRMaW5lQnJlYWtzKCkgY29uc3Q7CkBAIC03OSw2ICs4MSw3IEBACiAKICAgICB2b2lkIHRl
eHRDaGFuZ2VkKCkgeyBfdGV4dENoYW5nZWQuY2FsbCgpOyB9CiAKKyAgICB2b2lkIHNlbGVjdGlv
bkNoYW5nZWQoKSB7IF9zZWxlY3Rpb25DaGFuZ2VkLmNhbGwoKTsgfQogICAgIHZvaWQgY2xpY2tl
ZCgpOwogCiAgICAgdmlydHVhbCBGb2N1c1BvbGljeSBmb2N1c1BvbGljeSgpIGNvbnN0OwpAQCAt
ODcsNiArOTAsNyBAQAogICBwcml2YXRlOgogICAgIEtXUVNpZ25hbCBfY2xpY2tlZDsKICAgICBL
V1FTaWduYWwgX3RleHRDaGFuZ2VkOworICAgIEtXUVNpZ25hbCBfc2VsZWN0aW9uQ2hhbmdlZDsK
IH07CiAKICNlbmRpZiAvKiBRVEVYVEVESVRfSF8gKi8KSW5kZXg6IGt3cS9LV1FUZXh0RWRpdC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dEVkaXQu
bW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDQKZGlmZiAtdSAtcjEuNDQgS1dRVGV4dEVkaXQu
bW0KLS0tIEtXUVRleHRFZGl0Lm1tCTIwMDUvMDIvMjEgMjE6NTU6NDIJMS40NAorKysgS1dRVGV4
dEVkaXQubW0JMjAwNS8wNi8xMCAwNzozNDozMgpAQCAtMzMsNiArMzMsNyBAQAogUVRleHRFZGl0
OjpRVGV4dEVkaXQoUVdpZGdldCAqcGFyZW50KQogICAgIDogX2NsaWNrZWQodGhpcywgU0lHTkFM
KGNsaWNrZWQoKSkpCiAgICAgLCBfdGV4dENoYW5nZWQodGhpcywgU0lHTkFMKHRleHRDaGFuZ2Vk
KCkpKQorICAgICwgX3NlbGVjdGlvbkNoYW5nZWQodGhpcywgU0lHTkFMKHNlbGVjdGlvbkNoYW5n
ZWQoKSkpCiB7CiAgICAgS1dRX0JMT0NLX0VYQ0VQVElPTlM7CiAgICAgS1dRVGV4dEFyZWEgKnRl
eHRWaWV3ID0gW1tLV1FUZXh0QXJlYSBhbGxvY10gaW5pdFdpdGhRVGV4dEVkaXQ6dGhpc107CkBA
IC0xODMsNiArMTg0LDE3IEBACiAgICAgS1dRX0JMT0NLX0VYQ0VQVElPTlM7CiAgICAgW3RleHRW
aWV3IHNldEVuYWJsZWQ6IWZsYWddOwogICAgIEtXUV9VTkJMT0NLX0VYQ0VQVElPTlM7Cit9CisK
K2Jvb2wgUVRleHRFZGl0OjpoYXNTZWxlY3RlZFRleHQoKSBjb25zdAoreworICAgIEtXUVRleHRB
cmVhICp0ZXh0VmlldyA9IChLV1FUZXh0QXJlYSAqKWdldFZpZXcoKTsKKyAgICAKKyAgICBLV1Ff
QkxPQ0tfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW3RleHRWaWV3IGhhc1NlbGVjdGlvbl07Cisg
ICAgS1dRX1VOQkxPQ0tfRVhDRVBUSU9OUzsKKyAgICAKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAK
IHZvaWQgUVRleHRFZGl0OjpzZWxlY3RBbGwoKQpJbmRleDoga3dxL0tXUVRleHRGaWVsZC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FUZXh0RmllbGQuaCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMApkaWZmIC11IC1yMS4yMCBLV1FUZXh0RmllbGQuaAot
LS0gS1dRVGV4dEZpZWxkLmgJMjAwNS8wMS8yNCAyMDo0ODoyNQkxLjIwCisrKyBLV1FUZXh0Rmll
bGQuaAkyMDA1LzA2LzEwIDA3OjM0OjM0CkBAIC00Niw2ICs0Niw4IEBACiAKIC0gKHZvaWQpc2V0
SGFzRm9jdXM6KEJPT0wpaGFzRm9jdXM7CiAKKy0gKEJPT0wpaGFzU2VsZWN0aW9uOworCiAtICh2
b2lkKXNldE1heGltdW1MZW5ndGg6KGludClsZW47CiAtIChpbnQpbWF4aW11bUxlbmd0aDsKIApJ
bmRleDoga3dxL0tXUVRleHRGaWVsZC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9rd3EvS1dRVGV4dEZpZWxkLm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc3CmRp
ZmYgLXUgLXIxLjc3IEtXUVRleHRGaWVsZC5tbQotLS0gS1dRVGV4dEZpZWxkLm1tCTIwMDUvMDMv
MDMgMDA6NTg6MzUJMS43NworKysgS1dRVGV4dEZpZWxkLm1tCTIwMDUvMDYvMTAgMDc6MzQ6MzQK
QEAgLTM2OSw2ICszNjksMTMgQEAKICAgICB9CiB9CiAKKy0gKEJPT0wpaGFzU2VsZWN0aW9uCit7
CisgICAgTlNSYW5nZSByYW5nZSA9IFtzZWxmIHNlbGVjdGVkUmFuZ2VdOworCisgICAgcmV0dXJu
IHJhbmdlLmxlbmd0aCA+IDA7Cit9CisKIC0gKHZvaWQpc2V0SGFzRm9jdXM6KEJPT0wpbm93SGFz
Rm9jdXMKIHsKICAgICBpZiAoIXdpZGdldCB8fCBub3dIYXNGb2N1cyA9PSBoYXNGb2N1cykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2376</attachid>
            <date>2005-06-15 20:18:57 -0700</date>
            <delta_ts>2005-06-15 20:42:23 -0700</delta_ts>
            <desc>Another simple test case with both an &lt;input type=text&gt; and a &lt;textarea&gt;</desc>
            <filename>onselect-test.html</filename>
            <type>text/html</type>
            <size>326</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCnsKICAgIHZhciBpdGVtID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsKICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobWVzc2FnZSkpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChpdGVtKTsKfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9InRleHQiIG9uc2Vs
ZWN0PSJsb2coJ2lucHV0JykiPgo8dGV4dGFyZWEgb25zZWxlY3Q9ImxvZygndGV4dGFyZWEnKSI+
Cnh4eAo8L3RleHRhcmVhPgo8b2wgaWQ9ImNvbnNvbGUiPgo8L29sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2377</attachid>
            <date>2005-06-15 20:41:25 -0700</date>
            <delta_ts>2005-06-19 21:51:43 -0700</delta_ts>
            <desc>More-complete fix</desc>
            <filename>OnSelectPatch.txt</filename>
            <type>text/plain</type>
            <size>18983</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xNjEKZGlmZiAtcCAtdSAtdSAtcCAtcjEuMTYxIGtodG1sL2h0bWwvaHRt
bF9mb3JtaW1wbC5jcHAKLS0tIGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAJMzEgTWF5IDIw
MDUgMDU6NDg6NDEgLTAwMDAJMS4xNjEKKysrIGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAJ
MTYgSnVuIDIwMDUgMDM6MjI6MjggLTAwMDAKQEAgLTMzMjgsNyArMzMyOCw2IEBAIHZvaWQgSFRN
TFRleHRBcmVhRWxlbWVudEltcGw6OnNlbGVjdCggICkKIHsKICAgICBpZiAobV9yZW5kZXIpCiAg
ICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRleHRBcmVhKj4obV9yZW5kZXIpLT5zZWxlY3QoKTsK
LSAgICBvblNlbGVjdCgpOwogfQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnRJbXBsOjpjaGls
ZHJlbkNoYW5nZWQoKQpJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVy
X2Zvcm0uY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwNQpkaWZmIC1wIC11IC11IC1wIC1y
MS4xMDUga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAotLS0ga2h0bWwvcmVuZGVyaW5n
L3JlbmRlcl9mb3JtLmNwcAkxOCBNYXkgMjAwNSAyMToxMDoyNCAtMDAwMAkxLjEwNQorKysga2h0
bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAkxNiBKdW4gMjAwNSAwMzoyMjoyOSAtMDAwMApA
QCAtMjU2LDYgKzI1NiwxMSBAQCB2b2lkIFJlbmRlckZvcm1FbGVtZW50OjpzbG90VGV4dENoYW5n
ZWQoCiAgICAgLy8gZG8gbm90aGluZwogfQogCit2b2lkIFJlbmRlckZvcm1FbGVtZW50OjpzbG90
U2VsZWN0aW9uQ2hhbmdlZCgpCit7CisgICAgLy8gZG8gbm90aGluZworfQorCiAjZW5kaWYKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTM4LDYgKzU0Myw3IEBAIFJlbmRlckxpbmVFZGl0OjpS
ZW5kZXJMaW5lRWRpdChIVE1MSW5wdXQKICAgICBMaW5lRWRpdFdpZGdldCAqZWRpdCA9IG5ldyBM
aW5lRWRpdFdpZGdldCh2aWV3KCktPnZpZXdwb3J0KCkpOwogI2VuZGlmCiAgICAgY29ubmVjdChl
ZGl0LFNJR05BTChyZXR1cm5QcmVzc2VkKCkpLCB0aGlzLCBTTE9UKHNsb3RSZXR1cm5QcmVzc2Vk
KCkpKTsKKyAgICBjb25uZWN0KGVkaXQsU0lHTkFMKHNlbGVjdGlvbkNoYW5nZWQoKSksdGhpcyxT
TE9UKHNsb3RTZWxlY3Rpb25DaGFuZ2VkKCkpKTsKICAgICBjb25uZWN0KGVkaXQsU0lHTkFMKHRl
eHRDaGFuZ2VkKGNvbnN0IFFTdHJpbmcgJikpLHRoaXMsU0xPVChzbG90VGV4dENoYW5nZWQoY29u
c3QgUVN0cmluZyAmKSkpOwogICAgIGNvbm5lY3QoZWRpdCxTSUdOQUwoY2xpY2tlZCgpKSx0aGlz
LFNMT1Qoc2xvdENsaWNrZWQoKSkpOwogCkBAIC01NjEsNiArNTY3LDE3IEBAIFJlbmRlckxpbmVF
ZGl0OjpSZW5kZXJMaW5lRWRpdChIVE1MSW5wdXQKICAgICBzZXRRV2lkZ2V0KGVkaXQpOwogfQog
Cit2b2lkIFJlbmRlckxpbmVFZGl0OjpzbG90U2VsZWN0aW9uQ2hhbmdlZCgpCit7CisgICAgUUxp
bmVFZGl0KiB3ID0gc3RhdGljX2Nhc3Q8UUxpbmVFZGl0Kj4obV93aWRnZXQpOworICAgIAorICAg
IC8vIFdlIG9ubHkgd2FudCB0byBjYWxsIG9uc2VsZWN0IGlmIHRoZXJlIGFjdHVhbGx5IGlzIGEg
c2VsZWN0aW9uCisgICAgaWYgKCF3LT5oYXNTZWxlY3RlZFRleHQoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIGVsZW1lbnQoKS0+b25TZWxlY3QoKTsKK30KKwogdm9pZCBSZW5kZXJMaW5l
RWRpdDo6c2xvdFJldHVyblByZXNzZWQoKQogewogI2lmICFBUFBMRV9DSEFOR0VTCkBAIC0xNDc4
LDYgKzE0OTUsNyBAQCBSZW5kZXJUZXh0QXJlYTo6UmVuZGVyVGV4dEFyZWEoSFRNTFRleHRBCiAK
ICAgICBjb25uZWN0KGVkaXQsU0lHTkFMKHRleHRDaGFuZ2VkKCkpLHRoaXMsU0xPVChzbG90VGV4
dENoYW5nZWQoKSkpOwogICAgIGNvbm5lY3QoZWRpdCxTSUdOQUwoY2xpY2tlZCgpKSx0aGlzLFNM
T1Qoc2xvdENsaWNrZWQoKSkpOworICAgIGNvbm5lY3QoZWRpdCxTSUdOQUwoc2VsZWN0aW9uQ2hh
bmdlZCgpKSx0aGlzLFNMT1Qoc2xvdFNlbGVjdGlvbkNoYW5nZWQoKSkpOwogfQogCiB2b2lkIFJl
bmRlclRleHRBcmVhOjpkZXRhY2goKQpAQCAtMTYzMCw2ICsxNjQ4LDE3IEBAIHZvaWQgUmVuZGVy
VGV4dEFyZWE6OnNlbGVjdCgpCiAgICAgc3RhdGljX2Nhc3Q8UVRleHRFZGl0ICo+KG1fd2lkZ2V0
KS0+c2VsZWN0QWxsKCk7CiB9CiAKK3ZvaWQgUmVuZGVyVGV4dEFyZWE6OnNsb3RTZWxlY3Rpb25D
aGFuZ2VkKCkKK3sKKyAgICBRVGV4dEVkaXQqIHcgPSBzdGF0aWNfY2FzdDxRVGV4dEVkaXQqPiht
X3dpZGdldCk7CisKKyAgICAvLyBXZSBvbmx5IHdhbnQgdG8gY2FsbCBvbnNlbGVjdCBpZiB0aGVy
ZSBhY3R1YWxseSBpcyBhIHNlbGVjdGlvbgorICAgIGlmICghdy0+aGFzU2VsZWN0ZWRUZXh0KCkp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBlbGVtZW50KCktPm9uU2VsZWN0KCk7Cit9CisK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAjaWYgQVBQTEVfQ0hBTkdFUwpJbmRleDoga2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9mb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dl
YkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNTAKZGlmZiAtcCAtdSAtdSAtcCAtcjEuNTAga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3Jt
LmgKLS0tIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfZm9ybS5oCTE4IE1heSAyMDA1IDIxOjEwOjI0
IC0wMDAwCTEuNTAKKysrIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfZm9ybS5oCTE2IEp1biAyMDA1
IDAzOjIyOjI5IC0wMDAwCkBAIC0xMDQsNyArMTA0LDggQEAgcHVibGljOgogCiBwdWJsaWMgc2xv
dHM6CiAgICAgdmlydHVhbCB2b2lkIHNsb3RDbGlja2VkKCk7Ci0KKyAgICB2aXJ0dWFsIHZvaWQg
c2xvdFNlbGVjdGlvbkNoYW5nZWQoKTsKKyAgICAKICNpZiBBUFBMRV9DSEFOR0VTCiAgICAgLy8g
SGFjayB0byBtYWtlIEtXUVNsb3QgY29kZSB3b3JrLgogICAgIHZpcnR1YWwgdm9pZCBzbG90VGV4
dENoYW5nZWQoY29uc3QgUVN0cmluZyAmc3RyaW5nKTsKQEAgLTI1Niw2ICsyNTcsNyBAQCBwdWJs
aWM6CiBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBzbG90UmV0dXJuUHJlc3NlZCgpOwogICAgIHZv
aWQgc2xvdFRleHRDaGFuZ2VkKGNvbnN0IFFTdHJpbmcgJnN0cmluZyk7CisgICAgdm9pZCBzbG90
U2VsZWN0aW9uQ2hhbmdlZCgpOwogI2lmIEFQUExFX0NIQU5HRVMKICAgICB2b2lkIHNsb3RQZXJm
b3JtU2VhcmNoKCk7CiBwdWJsaWM6CkBAIC00NzUsNyArNDc3LDggQEAgcHVibGljOgogCiBwcm90
ZWN0ZWQgc2xvdHM6CiAgICAgdm9pZCBzbG90VGV4dENoYW5nZWQoKTsKLQorICAgIHZvaWQgc2xv
dFNlbGVjdGlvbkNoYW5nZWQoKTsKKyAgICAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlRm9jdXNPdXQoKTsKIApJbmRleDoga3dxL0tXUUxpbmVFZGl0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUUxpbmVFZGl0LmgsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMzEKZGlmZiAtcCAtdSAtdSAtcCAtcjEuMzEga3dxL0tXUUxpbmVFZGl0LmgK
LS0tIGt3cS9LV1FMaW5lRWRpdC5oCTIwIE9jdCAyMDA0IDE5OjAxOjE2IC0wMDAwCTEuMzEKKysr
IGt3cS9LV1FMaW5lRWRpdC5oCTE2IEp1biAyMDA1IDAzOjIyOjI5IC0wMDAwCkBAIC02Niw2ICs2
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdyaXRpbmdEaXJlY3Rpb24oUVBhaW50ZXI6OlRl
eHREaXJlY3Rpb24pOwogICAgIAogICAgIHZvaWQgc2VsZWN0QWxsKCk7CisgICAgYm9vbCBoYXNT
ZWxlY3RlZFRleHQoKSBjb25zdDsKICAgICAKICAgICBRU2l6ZSBzaXplRm9yQ2hhcmFjdGVyV2lk
dGgoaW50IG51bUNoYXJhY3RlcnMpIGNvbnN0OwogICAgIGludCBiYXNlbGluZVBvc2l0aW9uKGlu
dCBoZWlnaHQpIGNvbnN0OwpAQCAtNzMsNyArNzQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXR1
cm5QcmVzc2VkKCkgeyBtX3JldHVyblByZXNzZWQuY2FsbCgpOyB9CiAgICAgdm9pZCB0ZXh0Q2hh
bmdlZCgpIHsgbV90ZXh0Q2hhbmdlZC5jYWxsKHRleHQoKSk7IH0KICAgICB2b2lkIHBlcmZvcm1T
ZWFyY2goKSB7IG1fcGVyZm9ybVNlYXJjaC5jYWxsKCk7IH0KLQorICAgIHZvaWQgc2VsZWN0aW9u
Q2hhbmdlZCgpIHsgbV9zZWxlY3Rpb25DaGFuZ2VkLmNhbGwoKTsgfQorICAgICAgICAKICAgICB2
b2lkIGNsaWNrZWQoKTsKICAgICAKICAgICB2aXJ0dWFsIEZvY3VzUG9saWN5IGZvY3VzUG9saWN5
KCkgY29uc3Q7CkBAIC05Miw2ICs5NCw4IEBAIHByaXZhdGU6CiAgICAgS1dRU2lnbmFsIG1fdGV4
dENoYW5nZWQ7CiAgICAgS1dRU2lnbmFsIG1fY2xpY2tlZDsKICAgICBLV1FTaWduYWwgbV9wZXJm
b3JtU2VhcmNoOworICAgIEtXUVNpZ25hbCBtX3NlbGVjdGlvbkNoYW5nZWQ7CisgICAgCiAgICAg
VHlwZSBtX3R5cGU7CiAgICAgS1dRVGV4dEZpZWxkQ29udHJvbGxlciAqbV9jb250cm9sbGVyOwog
fTsKSW5kZXg6IGt3cS9LV1FMaW5lRWRpdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9rd3EvS1dRTGluZUVkaXQubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjUK
ZGlmZiAtcCAtdSAtdSAtcCAtcjEuNjUga3dxL0tXUUxpbmVFZGl0Lm1tCi0tLSBrd3EvS1dRTGlu
ZUVkaXQubW0JMjggSmFuIDIwMDUgMDE6MTY6MjAgLTAwMDAJMS42NQorKysga3dxL0tXUUxpbmVF
ZGl0Lm1tCTE2IEp1biAyMDA1IDAzOjIyOjI5IC0wMDAwCkBAIC00NCw2ICs0NCw3IEBAIFFMaW5l
RWRpdDo6UUxpbmVFZGl0KFR5cGUgdHlwZSkKICAgICAsIG1fdGV4dENoYW5nZWQodGhpcywgU0lH
TkFMKHRleHRDaGFuZ2VkKGNvbnN0IFFTdHJpbmcgJikpKQogICAgICwgbV9jbGlja2VkKHRoaXMs
IFNJR05BTChjbGlja2VkKCkpKQogICAgICwgbV9wZXJmb3JtU2VhcmNoKHRoaXMsIFNJR05BTChw
ZXJmb3JtU2VhcmNoKCkpKQorICAgICwgbV9zZWxlY3Rpb25DaGFuZ2VkKHRoaXMsIFNJR05BTChz
ZWxlY3Rpb25DaGFuZ2VkKCkpKQogICAgICwgbV90eXBlKHR5cGUpCiB7CiAgICAgS1dRX0JMT0NL
X0VYQ0VQVElPTlM7CkBAIC0xODUsNiArMTg2LDExIEBAIHZvaWQgUUxpbmVFZGl0OjpzZWxlY3RB
bGwoKQogICAgIH0KIH0KIAorYm9vbCBRTGluZUVkaXQ6Omhhc1NlbGVjdGVkVGV4dCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFttX2NvbnRyb2xsZXIgaGFzU2VsZWN0aW9uXTsKK30KKwogYm9vbCBR
TGluZUVkaXQ6OmVkaXRlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFttX2NvbnRyb2xsZXIgZWRp
dGVkXTsKSW5kZXg6IGt3cS9LV1FTbG90Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2t3cS9LV1FTbG90Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI4CmRpZmYg
LXAgLXUgLXUgLXAgLXIxLjI4IGt3cS9LV1FTbG90Lm1tCi0tLSBrd3EvS1dRU2xvdC5tbQkxOCBN
YXkgMjAwNSAyMToxMDoyNiAtMDAwMAkxLjI4CisrKyBrd3EvS1dRU2xvdC5tbQkxNiBKdW4gMjAw
NSAwMzoyMjoyOSAtMDAwMApAQCAtMTA0LDcgKzEwNCw3IEBAIEtXUVNsb3Q6OktXUVNsb3QoUU9i
amVjdCAqb2JqZWN0LCBjb25zdCAKICAgICBDQVNFKHNsb3RSZWRpcmVjdCwgKCksIEtIVE1MUGFy
dCkKICAgICBDQVNFKHNsb3RSZXR1cm5QcmVzc2VkLCAoKSwgUmVuZGVyTGluZUVkaXQpCiAgICAg
Q0FTRShzbG90U2VsZWN0ZWQsIChpbnQpLCBSZW5kZXJTZWxlY3QpCi0gICAgQ0FTRShzbG90U2Vs
ZWN0aW9uQ2hhbmdlZCwgKCksIFJlbmRlclNlbGVjdCkKKyAgICBDQVNFKHNsb3RTZWxlY3Rpb25D
aGFuZ2VkLCAoKSwgUmVuZGVyRm9ybUVsZW1lbnQpCiAgICAgQ0FTRShzbG90U2xpZGVyVmFsdWVD
aGFuZ2VkLCAoKSwgUmVuZGVyU2xpZGVyKQogICAgIENBU0Uoc2xvdFN0YXRlQ2hhbmdlZCwgKGlu
dCksIFJlbmRlckNoZWNrQm94KQogICAgIENBU0Uoc2xvdFRleHRDaGFuZ2VkLCAoKSwgUmVuZGVy
VGV4dEFyZWEpCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBLV1FTbG90OjpjYWxsKCkgY29uc3QK
ICAgICAgICAgQ0FTRShzbG90UGVyZm9ybVNlYXJjaCwgUmVuZGVyTGluZUVkaXQsIHNsb3RQZXJm
b3JtU2VhcmNoKQogICAgICAgICBDQVNFKHNsb3RSZWRpcmVjdCwgS0hUTUxQYXJ0LCBzbG90UmVk
aXJlY3QpCiAgICAgICAgIENBU0Uoc2xvdFJldHVyblByZXNzZWQsIFJlbmRlckxpbmVFZGl0LCBz
bG90UmV0dXJuUHJlc3NlZCkKLSAgICAgICAgQ0FTRShzbG90U2VsZWN0aW9uQ2hhbmdlZCwgUmVu
ZGVyU2VsZWN0LCBzbG90U2VsZWN0aW9uQ2hhbmdlZCkKKyAgICAgICAgQ0FTRShzbG90U2VsZWN0
aW9uQ2hhbmdlZCwgUmVuZGVyRm9ybUVsZW1lbnQsIHNsb3RTZWxlY3Rpb25DaGFuZ2VkKQogICAg
ICAgICBDQVNFKHNsb3RTbGlkZXJWYWx1ZUNoYW5nZWQsIFJlbmRlclNsaWRlciwgc2xvdFNsaWRl
clZhbHVlQ2hhbmdlZCkKICAgICAgICAgQ0FTRShzbG90U3VibWl0Rm9ybUFnYWluLCBLSFRNTFBh
cnQsIHN1Ym1pdEZvcm1BZ2FpbikKICAgICAgICAgQ0FTRShzbG90VGV4dENoYW5nZWQsIFJlbmRl
clRleHRBcmVhLCBzbG90VGV4dENoYW5nZWQpCkluZGV4OiBrd3EvS1dRVGV4dEFyZWEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dEFyZWEuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4yMApkaWZmIC1wIC11IC11IC1wIC1yMS4yMCBrd3EvS1dRVGV4
dEFyZWEuaAotLS0ga3dxL0tXUVRleHRBcmVhLmgJMjQgTWF5IDIwMDUgMjM6NDk6MjQgLTAwMDAJ
MS4yMAorKysga3dxL0tXUVRleHRBcmVhLmgJMTYgSnVuIDIwMDUgMDM6MjI6MjkgLTAwMDAKQEAg
LTY3LDYgKzY3LDcgQEAgY2xhc3MgUVRleHRFZGl0OwogLSAoQk9PTCl3b3JkV3JhcDsKIAogLSAo
dm9pZClzZWxlY3RBbGw7CistIChCT09MKWhhc1NlbGVjdGlvbjsKIAogLSAoTlNTaXplKXNpemVX
aXRoQ29sdW1uczooaW50KWNvbHVtbnMgcm93czooaW50KXJvd3M7CiAKSW5kZXg6IGt3cS9LV1FU
ZXh0QXJlYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dR
VGV4dEFyZWEubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODEKZGlmZiAtcCAtdSAtdSAtcCAt
cjEuODEga3dxL0tXUVRleHRBcmVhLm1tCi0tLSBrd3EvS1dRVGV4dEFyZWEubW0JMzEgTWF5IDIw
MDUgMDM6MDg6MzUgLTAwMDAJMS44MQorKysga3dxL0tXUVRleHRBcmVhLm1tCTE2IEp1biAyMDA1
IDAzOjIyOjI5IC0wMDAwCkBAIC04Niw2ICs4Niw3IEBAIGNvbnN0IGludCBNaW5pbXVtSGVpZ2h0
V2hpbGVSZXNpemluZyA9IDQKICAgICBCT09MIGRpc2FibGVkOwogICAgIEJPT0wgZWRpdGFibGVJ
ZkVuYWJsZWQ7CiAgICAgQk9PTCBpbkN1dDsKKyAgICBpbnQgaW5SZXNwb25kZXJDaGFuZ2U7CiB9
CiAKIC0gKHZvaWQpc2V0V2lkZ2V0OihRVGV4dEVkaXQgKil3aWRnZXQ7CkBAIC05OCw2ICs5OSw4
IEBAIGNvbnN0IGludCBNaW5pbXVtSGVpZ2h0V2hpbGVSZXNpemluZyA9IDQKIAogLSAodm9pZCl1
cGRhdGVUZXh0Q29sb3I7CiAKKy0gKEJPT0wpaW5SZXNwb25kZXJDaGFuZ2U7CisKIEBlbmQKIAog
QGltcGxlbWVudGF0aW9uIEtXUVRleHRBcmVhCkBAIC0xOTksNiArMjAyLDEyIEBAIGNvbnN0IGZs
b2F0IExhcmdlTnVtYmVyRm9yVGV4dCA9IDEuMGU3OwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0K
IAorLSAodm9pZCl0ZXh0Vmlld0RpZENoYW5nZVNlbGVjdGlvbjooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KK3sKKyAgICBpZiAod2lkZ2V0ICYmICFbdGV4dFZpZXcgaW5SZXNwb25kZXJD
aGFuZ2VdKQorICAgICAgICB3aWRnZXQtPnNlbGVjdGlvbkNoYW5nZWQoKTsKK30KKwogLSAodm9p
ZCl0ZXh0RGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIGlm
ICh3aWRnZXQpCkBAIC0yNzksNiArMjg4LDEzIEBAIGNvbnN0IGZsb2F0IExhcmdlTnVtYmVyRm9y
VGV4dCA9IDEuMGU3OwogICAgIFt0ZXh0VmlldyBzZWxlY3RBbGw6bmlsXTsKIH0KIAorLSAoQk9P
TCloYXNTZWxlY3Rpb24KK3sKKyAgICBOU1JhbmdlIHJhbmdlID0gW3RleHRWaWV3IHNlbGVjdGVk
UmFuZ2VdOworICAgIAorICAgIHJldHVybiByYW5nZS5sZW5ndGggPiAwOworfQorCiAtICh2b2lk
KXNldEVkaXRhYmxlOihCT09MKWZsYWcKIHsKICAgICBbdGV4dFZpZXcgc2V0RWRpdGFibGVJZkVu
YWJsZWQ6ZmxhZ107CkBAIC04MTMsNiArODI5LDggQEAgc3RhdGljIE5TU3RyaW5nICpXZWJDb250
aW51b3VzU3BlbGxDaGVjawogICAgIGlmIChkaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIE5POwog
CisgICAgKytpblJlc3BvbmRlckNoYW5nZTsKKwogICAgIEJPT0wgYmVjb21lID0gW3N1cGVyIGJl
Y29tZUZpcnN0UmVzcG9uZGVyXTsKICAgICAKICAgICBpZiAoYmVjb21lKSB7CkBAIC04MjEsMTEg
KzgzOSwxNSBAQCBzdGF0aWMgTlNTdHJpbmcgKldlYkNvbnRpbnVvdXNTcGVsbENoZWNrCiAgICAg
ICAgIGlmIChbW3NlbGYgd2luZG93XSBrZXlWaWV3U2VsZWN0aW9uRGlyZWN0aW9uXSAhPSBOU0Rp
cmVjdFNlbGVjdGlvbikgewogICAgICAgICAgICAgW3NlbGYgc2VsZWN0QWxsOm5pbF07CiAgICAg
ICAgIH0KKyAgICB9CisKKyAgICAtLWluUmVzcG9uZGVyQ2hhbmdlOworCisgICAgaWYgKGJlY29t
ZSkgewogICAgICAgICBpZiAoIUtXUUtIVE1MUGFydDo6Y3VycmVudEV2ZW50SXNNb3VzZURvd25J
bldpZGdldCh3aWRnZXQpKSB7CiAgICAgICAgICAgICBbW3NlbGYgZW5jbG9zaW5nU2Nyb2xsVmll
d10gX0tXUV9zY3JvbGxGcmFtZVRvVmlzaWJsZV07CiAgICAgICAgIH0KIAlbc2VsZiBfS1dRX3Nl
dEtleWJvYXJkRm9jdXNSaW5nTmVlZHNEaXNwbGF5XTsKLQogICAgICAgICBpZiAod2lkZ2V0KSB7
CiAgICAgICAgICAgICBRRm9jdXNFdmVudCBldmVudChRRXZlbnQ6OkZvY3VzSW4pOwogICAgICAg
ICAgICAgY29uc3RfY2FzdDxRT2JqZWN0ICo+KHdpZGdldC0+ZXZlbnRGaWx0ZXJPYmplY3QoKSkt
PmV2ZW50RmlsdGVyKHdpZGdldCwgJmV2ZW50KTsKQEAgLTgzNyw4ICs4NTksMTIgQEAgc3RhdGlj
IE5TU3RyaW5nICpXZWJDb250aW51b3VzU3BlbGxDaGVjawogCiAtIChCT09MKXJlc2lnbkZpcnN0
UmVzcG9uZGVyCiB7CisgICAgKytpblJlc3BvbmRlckNoYW5nZTsKKwogICAgIEJPT0wgcmVzaWdu
ID0gW3N1cGVyIHJlc2lnbkZpcnN0UmVzcG9uZGVyXTsKIAorICAgIC0taW5SZXNwb25kZXJDaGFu
Z2U7CisKICAgICBpZiAocmVzaWduKSB7CiAJW3NlbGYgX0tXUV9zZXRLZXlib2FyZEZvY3VzUmlu
Z05lZWRzRGlzcGxheV07CiAKQEAgLTkwNiw3ICs5MzIsOCBAQCBzdGF0aWMgTlNTdHJpbmcgKldl
YkNvbnRpbnVvdXNTcGVsbENoZWNrCiAgICAgcmV0dXJuIE5TTWFrZVJlY3QoTlNNYXhYKHZpc2li
bGVSZWN0KSAtIGltYWdlU2l6ZS53aWR0aCAtIDEsIE5TTWF4WSh2aXNpYmxlUmVjdCkgLSBpbWFn
ZVNpemUuaGVpZ2h0IC0gMSwgaW1hZ2VTaXplLndpZHRoICsgMSwgaW1hZ2VTaXplLmhlaWdodCAr
IDEpOwogfQogCi0tICh2b2lkKXJlc2V0Q3Vyc29yUmVjdHMgeworLSAodm9pZClyZXNldEN1cnNv
clJlY3RzCit7CiAgICAgW3N1cGVyIHJlc2V0Q3Vyc29yUmVjdHNdOwogICAgIAogICAgIC8vIEZJ
WE1FIFJhZGFyIDQxMTg1NzU6IFRoaXMgaXMgaW50ZW5kZWQgdG8gY2hhbmdlIHRoZSBjdXJzb3Ig
dG8gdGhlIGFycm93IGN1cnNvciB3aGVuZXZlciBpdCBpcwpAQCAtMTA5Miw2ICsxMTE5LDExIEBA
IHN0YXRpYyBOU1N0cmluZyAqV2ViQ29udGludW91c1NwZWxsQ2hlY2sKICAgICBbc2VsZiBkaXNw
YXRjaEhUTUxFdmVudDpFdmVudEltcGw6OlBBU1RFX0VWRU5UXTsKIH0KIAorLSAoQk9PTClpblJl
c3BvbmRlckNoYW5nZQoreworICAgIHJldHVybiBpblJlc3BvbmRlckNoYW5nZSAhPSAwOworfQor
CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBOU1ZpZXcgKEtXUVRleHRBcmVhKQpJbmRleDoga3dx
L0tXUVRleHRFZGl0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dx
L0tXUVRleHRFZGl0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjMKZGlmZiAtcCAtdSAtdSAt
cCAtcjEuMjMga3dxL0tXUVRleHRFZGl0LmgKLS0tIGt3cS9LV1FUZXh0RWRpdC5oCTEwIERlYyAy
MDA0IDIyOjE1OjU5IC0wMDAwCTEuMjMKKysrIGt3cS9LV1FUZXh0RWRpdC5oCTE2IEp1biAyMDA1
IDAzOjIyOjMwIC0wMDAwCkBAIC02MCw2ICs2MCw4IEBAIGNsYXNzIFFUZXh0RWRpdCA6IHB1Ymxp
YyBRU2Nyb2xsVmlldwogICAgIHZvaWQgc2V0RGlzYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBpc0Rp
c2FibGVkKCkgY29uc3Q7CiAKKyAgICBib29sIGhhc1NlbGVjdGVkVGV4dCgpIGNvbnN0OworICAg
IAogICAgIHZvaWQgc2V0VGV4dChjb25zdCBRU3RyaW5nICYpOwogICAgIFFTdHJpbmcgdGV4dCgp
IGNvbnN0OwogICAgIFFTdHJpbmcgdGV4dFdpdGhIYXJkTGluZUJyZWFrcygpIGNvbnN0OwpAQCAt
NzksNiArODEsNyBAQCBjbGFzcyBRVGV4dEVkaXQgOiBwdWJsaWMgUVNjcm9sbFZpZXcKIAogICAg
IHZvaWQgdGV4dENoYW5nZWQoKSB7IF90ZXh0Q2hhbmdlZC5jYWxsKCk7IH0KIAorICAgIHZvaWQg
c2VsZWN0aW9uQ2hhbmdlZCgpIHsgX3NlbGVjdGlvbkNoYW5nZWQuY2FsbCgpOyB9CiAgICAgdm9p
ZCBjbGlja2VkKCk7CiAKICAgICB2aXJ0dWFsIEZvY3VzUG9saWN5IGZvY3VzUG9saWN5KCkgY29u
c3Q7CkBAIC04Nyw2ICs5MCw3IEBAIGNsYXNzIFFUZXh0RWRpdCA6IHB1YmxpYyBRU2Nyb2xsVmll
dwogICBwcml2YXRlOgogICAgIEtXUVNpZ25hbCBfY2xpY2tlZDsKICAgICBLV1FTaWduYWwgX3Rl
eHRDaGFuZ2VkOworICAgIEtXUVNpZ25hbCBfc2VsZWN0aW9uQ2hhbmdlZDsKIH07CiAKICNlbmRp
ZiAvKiBRVEVYVEVESVRfSF8gKi8KSW5kZXg6IGt3cS9LV1FUZXh0RWRpdC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRVGV4dEVkaXQubW0sdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNDQKZGlmZiAtcCAtdSAtdSAtcCAtcjEuNDQga3dxL0tXUVRleHRFZGl0
Lm1tCi0tLSBrd3EvS1dRVGV4dEVkaXQubW0JMjEgRmViIDIwMDUgMjE6NTU6NDIgLTAwMDAJMS40
NAorKysga3dxL0tXUVRleHRFZGl0Lm1tCTE2IEp1biAyMDA1IDAzOjIyOjMwIC0wMDAwCkBAIC0z
Myw2ICszMyw3IEBACiBRVGV4dEVkaXQ6OlFUZXh0RWRpdChRV2lkZ2V0ICpwYXJlbnQpCiAgICAg
OiBfY2xpY2tlZCh0aGlzLCBTSUdOQUwoY2xpY2tlZCgpKSkKICAgICAsIF90ZXh0Q2hhbmdlZCh0
aGlzLCBTSUdOQUwodGV4dENoYW5nZWQoKSkpCisgICAgLCBfc2VsZWN0aW9uQ2hhbmdlZCh0aGlz
LCBTSUdOQUwoc2VsZWN0aW9uQ2hhbmdlZCgpKSkKIHsKICAgICBLV1FfQkxPQ0tfRVhDRVBUSU9O
UzsKICAgICBLV1FUZXh0QXJlYSAqdGV4dFZpZXcgPSBbW0tXUVRleHRBcmVhIGFsbG9jXSBpbml0
V2l0aFFUZXh0RWRpdDp0aGlzXTsKQEAgLTE4NSw2ICsxODYsMTcgQEAgdm9pZCBRVGV4dEVkaXQ6
OnNldERpc2FibGVkKGJvb2wgZmxhZykKICAgICBLV1FfVU5CTE9DS19FWENFUFRJT05TOwogfQog
Citib29sIFFUZXh0RWRpdDo6aGFzU2VsZWN0ZWRUZXh0KCkgY29uc3QKK3sKKyAgICBLV1FUZXh0
QXJlYSAqdGV4dFZpZXcgPSAoS1dRVGV4dEFyZWEgKilnZXRWaWV3KCk7CisgICAgCisgICAgS1dR
X0JMT0NLX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFt0ZXh0VmlldyBoYXNTZWxlY3Rpb25dOwor
ICAgIEtXUV9VTkJMT0NLX0VYQ0VQVElPTlM7CisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB2b2lkIFFUZXh0RWRpdDo6c2VsZWN0QWxsKCkKIHsKICAgICBLV1FUZXh0QXJlYSAqdGV4dFZp
ZXcgPSAoS1dRVGV4dEFyZWEgKilnZXRWaWV3KCk7CkluZGV4OiBrd3EvS1dRVGV4dEZpZWxkLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVRleHRGaWVsZC5o
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwCmRpZmYgLXAgLXUgLXUgLXAgLXIxLjIwIGt3cS9L
V1FUZXh0RmllbGQuaAotLS0ga3dxL0tXUVRleHRGaWVsZC5oCTI0IEphbiAyMDA1IDIwOjQ4OjI1
IC0wMDAwCTEuMjAKKysrIGt3cS9LV1FUZXh0RmllbGQuaAkxNiBKdW4gMjAwNSAwMzoyMjozMCAt
MDAwMApAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBRTGluZUVkaXQ7CiAgICAgUUxpbmVFZGl0ICp3
aWRnZXQ7CiAgICAgS1dRVGV4dEZpZWxkRm9ybWF0dGVyICpmb3JtYXR0ZXI7CiAgICAgQk9PTCBo
YXNGb2N1czsKKyAgICBCT09MIGhhc0ZvY3VzQW5kU2VsZWN0aW9uU2V0OwogICAgIEJPT0wgZWRp
dGVkOwogICAgIE5TUmFuZ2UgbGFzdFNlbGVjdGVkUmFuZ2U7CiAgICAgQk9PTCBpbkRyYXdpbmdN
YWNoaW5lcnk7CkBAIC00NCw3ICs0NSw3IEBAIGNsYXNzIFFMaW5lRWRpdDsKIAogLSAodm9pZClk
ZXRhY2hRTGluZUVkaXQ7CiAKLS0gKHZvaWQpc2V0SGFzRm9jdXM6KEJPT0wpaGFzRm9jdXM7Cist
IChCT09MKWhhc1NlbGVjdGlvbjsKIAogLSAodm9pZClzZXRNYXhpbXVtTGVuZ3RoOihpbnQpbGVu
OwogLSAoaW50KW1heGltdW1MZW5ndGg7CkluZGV4OiBrd3EvS1dRVGV4dEZpZWxkLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FUZXh0RmllbGQubW0sdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNzcKZGlmZiAtcCAtdSAtdSAtcCAtcjEuNzcga3dxL0tXUVRl
eHRGaWVsZC5tbQotLS0ga3dxL0tXUVRleHRGaWVsZC5tbQkzIE1hciAyMDA1IDAwOjU4OjM1IC0w
MDAwCTEuNzcKKysrIGt3cS9LV1FUZXh0RmllbGQubW0JMTYgSnVuIDIwMDUgMDM6MjI6MzAgLTAw
MDAKQEAgLTcyLDE1ICs3MiwxOSBAQAogLSAoQk9PTCl0ZXh0VmlldzooTlNUZXh0VmlldyAqKXZp
ZXcgc2hvdWxkSGFuZGxlRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKIC0gKHZvaWQpdGV4dFZpZXc6
KE5TVGV4dFZpZXcgKil2aWV3IGRpZEhhbmRsZUV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CiAtIChC
T09MKXRleHRWaWV3OihOU1RleHRWaWV3ICopdmlldyBzaG91bGRDaGFuZ2VUZXh0SW5SYW5nZToo
TlNSYW5nZSlyYW5nZSByZXBsYWNlbWVudFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmc7CistICh2
b2lkKXRleHRWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbjsKIC0gKHZvaWQpdXBkYXRlVGV4dEF0dHJpYnV0ZXM6KE5TTXV0YWJsZURpY3Rpb25hcnkg
KilhdHRyaWJ1dGVzOwogLSAoTlNTdHJpbmcgKilwcmVwcm9jZXNzU3RyaW5nOihOU1N0cmluZyAq
KXN0cmluZzsKKy0gKHZvaWQpc2V0SGFzRm9jdXM6KEJPT0wpaGFzRm9jdXM7CiBAZW5kCiAKIEBp
bXBsZW1lbnRhdGlvbiBLV1FUZXh0RmllbGRDb250cm9sbGVyCiAKIC0gKGlkKWluaXRXaXRoVGV4
dEZpZWxkOihOU1RleHRGaWVsZCAqKWYgUUxpbmVFZGl0OihRTGluZUVkaXQgKil3CiB7Ci0gICAg
W3NlbGYgaW5pdF07CisgICAgc2VsZiA9IFtzZWxmIGluaXRdOworICAgIGlmICghc2VsZikKKyAg
ICAgICAgcmV0dXJuIG5pbDsKIAogICAgIC8vIFRoaXMgaXMgaW5pdGlhbGl6YXRpb24gdGhhdCdz
IHNoYXJlZCBieSBhbGwgdHlwZXMgb2YgdGV4dCBmaWVsZHMuCiAgICAgd2lkZ2V0ID0gdzsKQEAg
LTE2Niw4ICsxNzAsNiBAQAogICAgIFdlYkNvcmVCcmlkZ2UgKmJyaWRnZSA9IEtXUUtIVE1MUGFy
dDo6YnJpZGdlRm9yV2lkZ2V0KHdpZGdldCk7CiAgICAgW2JyaWRnZSBjb250cm9sVGV4dERpZEVu
ZEVkaXRpbmc6bm90aWZpY2F0aW9uXTsKICAgICAKLSAgICBbc2VsZiBzZXRIYXNGb2N1czpOT107
Ci0KICAgICBpZiAod2lkZ2V0ICYmIFtbW25vdGlmaWNhdGlvbiB1c2VySW5mb10gb2JqZWN0Rm9y
S2V5OkAiTlNUZXh0TW92ZW1lbnQiXSBpbnRWYWx1ZV0gPT0gTlNSZXR1cm5UZXh0TW92ZW1lbnQp
CiAgICAgICAgIHdpZGdldC0+cmV0dXJuUHJlc3NlZCgpOwogfQpAQCAtMzY5LDEyICszNzEsMTgg
QEAKICAgICB9CiB9CiAKKy0gKEJPT0wpaGFzU2VsZWN0aW9uCit7CisgICAgcmV0dXJuIFtzZWxm
IHNlbGVjdGVkUmFuZ2VdLmxlbmd0aCA+IDA7Cit9CisKIC0gKHZvaWQpc2V0SGFzRm9jdXM6KEJP
T0wpbm93SGFzRm9jdXMKIHsKICAgICBpZiAoIXdpZGdldCB8fCBub3dIYXNGb2N1cyA9PSBoYXNG
b2N1cykKIAlyZXR1cm47CiAKICAgICBoYXNGb2N1cyA9IG5vd0hhc0ZvY3VzOworICAgIGhhc0Zv
Y3VzQW5kU2VsZWN0aW9uU2V0ID0gTk87CiAgICAgCiAgICAgaWYgKG5vd0hhc0ZvY3VzKSB7CiAg
ICAgICAgIC8vIFNlbGVjdCBhbGwgdGhlIHRleHQgaWYgd2UgYXJlIHRhYmJpbmcgaW4sIGJ1dCBv
dGhlcndpc2UgcHJlc2VydmUvcmVtZW1iZXIKQEAgLTM4NSw2ICszOTMsOCBAQAogICAgICAgICBp
ZiAobGFzdFNlbGVjdGVkUmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3VuZCkKICAgICAgICAgICAg
IFtzZWxmIHNldFNlbGVjdGVkUmFuZ2U6bGFzdFNlbGVjdGVkUmFuZ2VdOwogICAgICAgICAKKyAg
ICAgICAgaGFzRm9jdXNBbmRTZWxlY3Rpb25TZXQgPSBZRVM7CisKICAgICAgICAgaWYgKCFLV1FL
SFRNTFBhcnQ6OmN1cnJlbnRFdmVudElzTW91c2VEb3duSW5XaWRnZXQod2lkZ2V0KSkKICAgICAg
ICAgICAgIFtmaWVsZCBfS1dRX3Njcm9sbEZyYW1lVG9WaXNpYmxlXTsKICAgICAgICAgCkBAIC00
MzQsNyArNDQ0LDcgQEAKICAgICAvLyB3aXRoIHRoZSBzaWRlIGVmZmVjdCBvZiBlbmRpbmcgSW50
ZXJuYXRpb25hbCBpbmxpbmUgaW5wdXQgZm9yIHRoZXNlCiAgICAgLy8gcGFzc3dvcmQgZmllbGRz
IG9uIFBhbnRoZXIgb25seSwgc2luY2UgaXQncyBmaXhlZCBpbiBUaWdlci4KICAgICBpZiAoW2Zp
ZWxkIGlzS2luZE9mQ2xhc3M6W05TU2VjdXJlVGV4dEZpZWxkIGNsYXNzXV0pIHsKLQkgICAgcmV0
dXJuIFtmaWVsZCBzdHJpbmdWYWx1ZV07CisgICAgICAgIHJldHVybiBbZmllbGQgc3RyaW5nVmFs
dWVdOwogICAgIH0KICNlbmRpZgogICAgIC8vIENhbGxpbmcgc3RyaW5nVmFsdWUgY2FuIGhhdmUg
YSBzaWRlIGVmZmVjdCBvZiBlbmRpbmcgSW50ZXJuYXRpb25hbCBpbmxpbmUgaW5wdXQuCkBAIC00
NjksNiArNDc5LDEyIEBACiAgICAgcmV0dXJuIFtyZXN1bHQgX0tXUV90cnVuY2F0ZVRvTnVtQ29t
cG9zZWRDaGFyYWN0ZXJTZXF1ZW5jZXM6W2Zvcm1hdHRlciBtYXhpbXVtTGVuZ3RoXV07CiB9CiAK
Ky0gKHZvaWQpdGV4dFZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246KE5TTm90aWZpY2F0aW9uICopbm90
aWZpY2F0aW9uCit7CisgICAgaWYgKHdpZGdldCAmJiBoYXNGb2N1c0FuZFNlbGVjdGlvblNldCkK
KyAgICAgICAgd2lkZ2V0LT5zZWxlY3Rpb25DaGFuZ2VkKCk7Cit9CisKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIEtXUVRleHRGaWVsZApAQCAtNDgwLDcgKzQ5Niw5IEBACiAKIC0gKGlkKWluaXRX
aXRoUUxpbmVFZGl0OihRTGluZUVkaXQgKil3IAogewotICAgIFtzZWxmIGluaXRdOworICAgIHNl
bGYgPSBbc2VsZiBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgY29udHJvbGxlciA9IFtbS1dRVGV4dEZpZWxkQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhU
ZXh0RmllbGQ6c2VsZiBRTGluZUVkaXQ6d107CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC02MDEs
NiArNjE5LDE4IEBACiAgICAgICAgICYmIFtzdXBlciB0ZXh0Vmlldzp2aWV3IHNob3VsZENoYW5n
ZVRleHRJblJhbmdlOnJhbmdlIHJlcGxhY2VtZW50U3RyaW5nOnN0cmluZ107CiB9CiAKKy0gKHZv
aWQpdGV4dFZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCit7CisgICAgW3N1cGVyIHRleHRWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOm5vdGlmaWNhdGlv
bl07CisgICAgW2NvbnRyb2xsZXIgdGV4dFZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246bm90aWZpY2F0
aW9uXTsKK30KKworLSAodm9pZCl0ZXh0RGlkRW5kRWRpdGluZzooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KK3sKKyAgICBbY29udHJvbGxlciBzZXRIYXNGb2N1czpOT107CisgICAgW3N1
cGVyIHRleHREaWRFbmRFZGl0aW5nOm5vdGlmaWNhdGlvbl07Cit9CisKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIEtXUVRleHRGaWVsZENlbGwKQEAgLTY0Niw3ICs2NzYsOSBAQAogCiAtIChpZClp
bml0V2l0aFFMaW5lRWRpdDooUUxpbmVFZGl0ICopdyAKIHsKLSAgICBbc2VsZiBpbml0XTsKKyAg
ICBzZWxmID0gW3NlbGYgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmls
OwogICAgIGNvbnRyb2xsZXIgPSBbW0tXUVRleHRGaWVsZENvbnRyb2xsZXIgYWxsb2NdIGluaXRX
aXRoVGV4dEZpZWxkOnNlbGYgUUxpbmVFZGl0OnddOwogICAgIHJldHVybiBzZWxmOwogfQpAQCAt
NzUzLDYgKzc4NSwxMiBAQAogICAgICAgICAmJiBbc3VwZXIgdGV4dFZpZXc6dmlldyBzaG91bGRD
aGFuZ2VUZXh0SW5SYW5nZTpyYW5nZSByZXBsYWNlbWVudFN0cmluZzpzdHJpbmddOwogfQogCist
ICh2b2lkKXRleHRWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbgoreworICAgIFtzdXBlciB0ZXh0Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpub3RpZmlj
YXRpb25dOworICAgIFtjb250cm9sbGVyIHRleHRWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOm5vdGlm
aWNhdGlvbl07Cit9CisKIC8vIFRoZXNlIG5leHQgdHdvIG1ldGhvZHMgYXJlIHRoZSB3b3JrYXJv
dW5kIGZvciBidWcgMzAyNDQ0My4KIC8vIEJhc2ljYWxseSwgc2V0RnJhbWVTaXplIGVuZHMgdXAg
Y2FsbGluZyBhbiBpbmFwcHJvcHJpYXRlIHNlbGVjdFRleHQsIHNvIHdlIGp1c3QgaWdub3JlCiAv
LyBjYWxscyB0byBzZWxlY3RUZXh0IHdoaWxlIHNldEZyYW1lU2l6ZSBpcyBydW5uaW5nLgpAQCAt
Nzg1LDYgKzgyMyw3IEBACiAKIC0gKHZvaWQpdGV4dERpZEVuZEVkaXRpbmc6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCiB7CisgICAgW2NvbnRyb2xsZXIgc2V0SGFzRm9jdXM6Tk9dOwog
ICAgIFtzdXBlciB0ZXh0RGlkRW5kRWRpdGluZzpub3RpZmljYXRpb25dOwogCiAgICAgLy8gV2hl
biB0YWJiaW5nIGZyb20gb25lIHNlY3VyZSB0ZXh0IGZpZWxkIHRvIGFub3RoZXIsIHRoZSBzdXBl
cgpAQCAtODUxLDcgKzg5MCw5IEBACiAKIC0gKGlkKWluaXRXaXRoUUxpbmVFZGl0OihRTGluZUVk
aXQgKil3IAogewotICAgIFtzZWxmIGluaXRdOworICAgIHNlbGYgPSBbc2VsZiBpbml0XTsKKyAg
ICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CiAgICAgY29udHJvbGxlciA9IFtbS1dR
VGV4dEZpZWxkQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhUZXh0RmllbGQ6c2VsZiBRTGluZUVk
aXQ6d107CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC05NzIsNiArMTAxMywxOCBAQAogICAgICAg
ICAmJiBbc3VwZXIgdGV4dFZpZXc6dmlldyBzaG91bGRDaGFuZ2VUZXh0SW5SYW5nZTpyYW5nZSBy
ZXBsYWNlbWVudFN0cmluZzpzdHJpbmddOwogfQogCistICh2b2lkKXRleHRWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIFtzdXBlciB0
ZXh0Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpub3RpZmljYXRpb25dOworICAgIFtjb250cm9sbGVy
IHRleHRWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOm5vdGlmaWNhdGlvbl07Cit9CisKKy0gKHZvaWQp
dGV4dERpZEVuZEVkaXRpbmc6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAg
W2NvbnRyb2xsZXIgc2V0SGFzRm9jdXM6Tk9dOworICAgIFtzdXBlciB0ZXh0RGlkRW5kRWRpdGlu
Zzpub3RpZmljYXRpb25dOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBLV1FTZWFyY2hG
aWVsZENlbGwKQEAgLTEwMTEsNyArMTA2NCw5IEBACiAKIC0gaW5pdAogewotICAgIFtzdXBlciBp
bml0XTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAg
cmV0dXJuIG5pbDsKICAgICBtYXhMZW5ndGggPSBJTlRfTUFYOwogICAgIHJldHVybiBzZWxmOwog
fQo=
</data>
<flag name="review"
          id="21"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2378</attachid>
            <date>2005-06-15 20:42:23 -0700</date>
            <delta_ts>2005-06-15 20:42:23 -0700</delta_ts>
            <desc>Slightly better test that includes 3 types of &lt;input&gt; as well as &lt;textarea&gt;</desc>
            <filename>onselect-test.html</filename>
            <type>text/html</type>
            <size>418</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCnsKICAgIHZhciBpdGVtID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsKICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobWVzc2FnZSkpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChpdGVtKTsKfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9InRleHQiIG9uc2Vs
ZWN0PSJsb2coJ2lucHV0JykiPgo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG9uc2VsZWN0PSJsb2co
J3Bhc3N3b3JkJykiPgo8aW5wdXQgdHlwZT0ic2VhcmNoIiBvbnNlbGVjdD0ibG9nKCdzZWFyY2gn
KSI+Cjx0ZXh0YXJlYSBvbnNlbGVjdD0ibG9nKCd0ZXh0YXJlYScpIj48L3RleHRhcmVhPgo8b2wg
aWQ9ImNvbnNvbGUiPjwvb2w+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>