<?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>69022</bug_id>
          
          <creation_ts>2011-09-28 13:16:30 -0700</creation_ts>
          <short_desc>Get rid of EditingText</short_desc>
          <delta_ts>2011-10-21 06:39:24 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>hyatt</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>kaustubh.ra</cc>
    
    <cc>leviw</cc>
    
    <cc>sullivan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>474952</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-28 13:16:30 -0700</bug_when>
    <thetext>http://trac.webkit.org/browser/trunk/Source/WebCore/dom/EditingText.h

It seems like introducing WebCore-only node is a bad idea because it breaks down whenever the page is reloaded or rendered by other engines.

For the reference, this class was initially introduced by http://trac.webkit.org/changeset/6341/trunk/WebCore/khtml/xml/dom_textimpl.cpp. Dave told me this class was introduced to let users edit inside an empty block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476820</commentid>
    <comment_count>1</comment_count>
      <attachid>109446</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-02 23:49:40 -0700</bug_when>
    <thetext>Created attachment 109446
Patch

Perhaps not proper way but just giving a try to Get rid of EditingText. Not sure if its right. 
Ryosuke can you check once?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476825</commentid>
    <comment_count>2</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-03 00:02:01 -0700</bug_when>
    <thetext>I will be sending out full patch with removed EditingText files (.cpp/.h) and updated Makefiles as well once this patch is approved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476826</commentid>
    <comment_count>3</comment_count>
      <attachid>109446</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-03 00:16:17 -0700</bug_when>
    <thetext>Comment on attachment 109446
Patch

No, this is what we want to do. I&apos;d like to get rid of the heck in rendererIsNeeded. This just moves the hack from one place to another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476828</commentid>
    <comment_count>4</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-03 00:24:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 109446 [details])
&gt; No, this is what we want to do. I&apos;d like to get rid of the heck in rendererIsNeeded. This just moves the hack from one place to another.

Agree, then is it that we need to allow empty blocks to be editable, by changing InsertTextCommand itself where its inserting empty textNode (EditingText node as of now)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476830</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-03 00:25:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 109446 [details] [details])
&gt; &gt; No, this is what we want to do. I&apos;d like to get rid of the heck in rendererIsNeeded. This just moves the hack from one place to another.
&gt; 
&gt; Agree, then is it that we need to allow empty blocks to be editable, by changing InsertTextCommand itself where its inserting empty textNode (EditingText node as of now)

Yeah, I thought we normally insert br in empty blocks but maybe br has zero-height? We just need to figure out other ways to make it work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476832</commentid>
    <comment_count>6</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-03 00:42:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; 
&gt; Yeah, I thought we normally insert br in empty blocks but maybe br has zero-height? We just need to figure out other ways to make it work.

Got it. May be we can use white spaces? They do create renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476968</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-03 07:52:21 -0700</bug_when>
    <thetext>What we need is a set of tests covering all the good effects of EditingText. Then we can try out different ways of accomplishing the same thing. We should design the tests so that they test only the actual end-user-visible effects and don’t expose the internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479925</commentid>
    <comment_count>8</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-07 04:07:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Yeah, I thought we normally insert br in empty blocks but maybe br has zero-height? We just need to figure out other ways to make it work.

I had a look through the code and found that EditingText is used to create empty text nodes having renderer in InsertTextCommand, htmlediting (for tabSpan) and ReplaceCommandSelection . I could not find other way to make blank text node with renderer. We might have to just add a special case for Text node as i tried in previous patch or we might have to change the logic wherever EditingText is being used. Any guidelines/suggestions will be helpful. 

(In reply to comment #7)
&gt; What we need is a set of tests covering all the good effects of EditingText. Then we can try out different ways of accomplishing the same thing. We should design the tests so that they test only the actual end-user-visible effects and don’t expose the internals.

True, I can try to get some good tests covering EditingText use cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480094</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-07 10:06:31 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #5)
&gt; &gt; Yeah, I thought we normally insert br in empty blocks but maybe br has zero-height? We just need to figure out other ways to make it work.
&gt; 
&gt; I had a look through the code and found that EditingText is used to create empty text nodes having renderer in InsertTextCommand, htmlediting (for tabSpan) and ReplaceCommandSelection . I could not find other way to make blank text node with renderer. We might have to just add a special case for Text node as i tried in previous patch or we might have to change the logic wherever EditingText is being used. Any guidelines/suggestions will be helpful.

I think the only reason we do that is to allow empty blocks editable but we can accomplish the same by inserting a br. Whether it&apos;s an empty text node or br isn&apos;t important as long as you can edit an empty block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485943</commentid>
    <comment_count>10</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-18 03:51:17 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; 
&gt; I think the only reason we do that is to allow empty blocks editable but we can accomplish the same by inserting a br. Whether it&apos;s an empty text node or br isn&apos;t important as long as you can edit an empty block.

Adding br element is breaking many of the current use cases. Also adding new known tag element inside editing block might create problem for java script which might be listening or operating on br tag may be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487548</commentid>
    <comment_count>11</comment_count>
      <attachid>111767</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-20 07:22:21 -0700</bug_when>
    <thetext>Created attachment 111767
Updated Patch

Instead of inserting br, i tried with empty text nodes which does allows editing inside empty block as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487612</commentid>
    <comment_count>12</comment_count>
      <attachid>111767</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-20 09:06:01 -0700</bug_when>
    <thetext>Comment on attachment 111767
Updated Patch

Attachment 111767 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10183485

New failing tests:
editing/inserting/insert-at-end-02.html
editing/input/password-echo-passnode.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487688</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-20 10:18:39 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=111767) [details]
&gt; Updated Patch
&gt; 
&gt; Instead of inserting br, i tried with empty text nodes which does allows editing inside empty block as well.

That&apos;s interesting...

(In reply to comment #12)
&gt; (From update of attachment 111767 [details])
&gt; Attachment 111767 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10183485
&gt; 
&gt; New failing tests:
&gt; editing/inserting/insert-at-end-02.html
&gt; editing/input/password-echo-passnode.html

But these two tests are failing. Did you run layout tests on whatever platform you&apos;re working on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487719</commentid>
    <comment_count>14</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-20 11:18:59 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; editing/inserting/insert-at-end-02.html
&gt; &gt; editing/input/password-echo-passnode.html
&gt; 
&gt; But these two tests are failing. Did you run layout tests on whatever platform you&apos;re working on?

Yes I did, but I tried all those test cases which were added specifically for EditingText mainly editing empty blocks test cases. insert-at-end-02.html test is actually working with GtkLauncher but has one diff added (RenderText node added at the end) which can be modified. 2nd test cases seems to be related to setPasswordEchoEnabled feature added here - https://trac.webkit.org/changeset/93291 and has again a diff where it is checking for right characters is secured or not. I am debugging this currently but you can suggest if we can modify the expected.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487735</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-20 11:37:08 -0700</bug_when>
    <thetext>Rebaseline is fine as long as the test passes semantically (i.e. no odd behavior, etc... and the feature the test claims to work as expected).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488082</commentid>
    <comment_count>16</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-20 19:04:29 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Rebaseline is fine as long as the test passes semantically (i.e. no odd behavior, etc... and the feature the test claims to work as expected).

For 1) insert-at-end-02.html -&gt; The test expectation is check the visual position at the end of an editable block. This test has no changes as per user perspective other than adding an empty Text Node at the end of editable block in the render tree. 

For 2) password-echo-passnode.html -&gt; This tests if the passwords entered can be secured right after or after a delay. Initially the test expectation was secure right after will fail and only secure after delay works. After the changes, secure right after for regular texts is success. Again no change from user perspective.

Is re-baseline possible in the both cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488209</commentid>
    <comment_count>17</comment_count>
      <attachid>111911</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2011-10-20 23:44:56 -0700</bug_when>
    <thetext>Created attachment 111911
Updated Patch

Added Rebaseline for removing EditingText</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488230</commentid>
    <comment_count>18</comment_count>
      <attachid>111911</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-21 00:04:39 -0700</bug_when>
    <thetext>Comment on attachment 111911
Updated Patch

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

&gt; LayoutTests/editing/input/password-echo-passnode.html:6
&gt; -        [[&apos;a&apos;], false, true, true],         // test password (when only 1 char) is only secured after a delay(regular).
&gt; +        [[&apos;a&apos;], true, true, true],         // test password (when only 1 char) is only secured after a delay(regular).

Why is it okay to change this expectation?

&gt; LayoutTests/platform/gtk/editing/inserting/insert-at-end-02-expected.txt:30
&gt; +          RenderText {#text} at (0,0) size 0x0

Why are adding an empty RenderText now? Ideally, we&apos;d like to remove these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488243</commentid>
    <comment_count>19</comment_count>
      <attachid>111911</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-21 00:27:44 -0700</bug_when>
    <thetext>Comment on attachment 111911
Updated Patch

Attachment 111911 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10178754

New failing tests:
editing/inserting/insert-at-end-02.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488345</commentid>
    <comment_count>20</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-10-21 06:22:14 -0700</bug_when>
    <thetext>&gt; &gt; LayoutTests/editing/input/password-echo-passnode.html:6
&gt; &gt; -        [[&apos;a&apos;], false, true, true],         // test password (when only 1 char) is only secured after a delay(regular).
&gt; &gt; +        [[&apos;a&apos;], true, true, true],         // test password (when only 1 char) is only secured after a delay(regular).
&gt; 
&gt; Why is it okay to change this expectation?

It looks to me the code breaks the original test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488349</commentid>
    <comment_count>21</comment_count>
      <attachid>111911</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-10-21 06:35:27 -0700</bug_when>
    <thetext>Comment on attachment 111911
Updated Patch

I have to r- this patch since it breaks the test case. Btw, the test case [[&apos;a&apos;], false, true, true] means you enter &apos;a&apos; and you expects &apos;a&apos; remains the same and after a delay it changes to &apos;*&apos;. The last &apos;true&apos; simply tells the test engine to check the expectations before running to the 2nd line. While in password-echo-passnode2.html, you don&apos;t check result for 1st line, i.e., you type two characters without a delay in between. I suggest you put some breakpoints in my original patch to debug this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488351</commentid>
    <comment_count>22</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-10-21 06:39:24 -0700</bug_when>
    <thetext>&gt;. I suggest you put some breakpoints in my original patch to debug this.

Another way to debug it is to enable password echo (Settings.cpp) and run it in your browser. This should be easier than debugging DRT.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109446</attachid>
            <date>2011-10-02 23:49:40 -0700</date>
            <delta_ts>2011-10-20 07:22:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3702</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2NDgyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDktMjkgIEthdXN0dWJo
IEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBFZGl0aW5nVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjkwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgRWRpdGluZ1RleHQgY2xhc3MgYXMgaXRzIGp1c3QgdXNlZCB0byBsZXQgdXNl
cnMgZWRpdCBpbnNpZGUgZW1wdHkgYmxvY2suCisgICAgICAgIEFjaGVpdmVkIHVzaW5nIFRleHQg
bm9kZSB3aXRoIGFsd2F5cyBjcmVhdGUgcmVuZGVyZXIuCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9k
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1RleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogZG9t
L1RleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OnNldEVkaXRpbmdUZXh0Tm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0Ojppc0VkaXRpbmdUZXh0Tm9kZSk6CisKIDIwMTEtMTAtMDIg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTdHJlbmd0aCByZWR1Y2Ug
TWFjIG9ubHkgRnJhbWU6OnNlYXJjaEZvckxhYmVsc0JlZm9yZUVsZW1lbnQgYW5kIEZyYW1lOjpt
YXRjaExhYmVsc0FnYWluc3RFbGVtZW50IGludG8gY2FsbGVycwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiA5NjQ4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAKICNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50VHlwZS5oIgotI2luY2x1ZGUgIkVkaXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAi
RWRpdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5j
ZS5oIgpAQCAtODAyLDkgKzgwMSwxMSBAQCBQYXNzUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gRG9j
dW1lbnQ6OmNyCiAgICAgcmV0dXJuIEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKHRoaXMsIG5hbWUp
OwogfQogCi1QYXNzUmVmUHRyPEVkaXRpbmdUZXh0PiBEb2N1bWVudDo6Y3JlYXRlRWRpdGluZ1Rl
eHROb2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKK1Bhc3NSZWZQdHI8VGV4dD4gRG9jdW1lbnQ6OmNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmIHRleHQpCiB7Ci0gICAgcmV0dXJuIEVk
aXRpbmdUZXh0OjpjcmVhdGUodGhpcywgdGV4dCk7CisgICAgUmVmUHRyPFRleHQ+IHRleHROb2Rl
ID0gY3JlYXRlVGV4dE5vZGUodGV4dCk7CisgICAgdGV4dE5vZGUtPnNldEVkaXRpbmdUZXh0Tm9k
ZSgpOworICAgIHJldHVybiB0ZXh0Tm9kZTsKIH0KIAogUGFzc1JlZlB0cjxDU1NTdHlsZURlY2xh
cmF0aW9uPiBEb2N1bWVudDo6Y3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAkocmV2aXNpb24gOTY0ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQxLDcgKzU0MSw3IEBAIHB1YmxpYzoKIAogICAg
IC8vIFNwZWNpYWwgc3VwcG9ydCBmb3IgZWRpdGluZwogICAgIFBhc3NSZWZQdHI8Q1NTU3R5bGVE
ZWNsYXJhdGlvbj4gY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwotICAgIFBhc3NSZWZQdHI8
RWRpdGluZ1RleHQ+IGNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmKTsKKyAgICBQ
YXNzUmVmUHRyPFRleHQ+IGNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmKTsKIAog
ICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAgICAgYm9vbCBj
aGlsZE5lZWRzQW5kTm90SW5TdHlsZVJlY2FsYygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAkocmV2
aXNpb24gOTY0ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE5MSw2ICsxOTEsOSBAQCBQYXNzUmVmUHRyPE5vZGU+IFRleHQ6OmNsb25lTm9kZShi
b29sIC8qCiAKIGJvb2wgVGV4dDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5n
Q29udGV4dCYgY29udGV4dCkKIHsKKyAgICBpZiAoaXNFZGl0aW5nVGV4dE5vZGUoKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoIUNoYXJhY3RlckRhdGE6OnJlbmRlcmVySXNOZWVk
ZWQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCShy
ZXZpc2lvbiA5NjQ4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDYgKzQ3LDkgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5D
b250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZvaWQg
c2V0RWRpdGluZ1RleHROb2RlKCkge21faXNFZGl0aW5nVGV4dE5vZGUgPSB0cnVlOyB9CisgICAg
Ym9vbCBpc0VkaXRpbmdUZXh0Tm9kZSgpIHsgcmV0dXJuIG1faXNFZGl0aW5nVGV4dE5vZGU7IH0K
KwogcHJvdGVjdGVkOgogICAgIFRleHQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IGRhdGEpCiAgICAgICAgIDogQ2hhcmFjdGVyRGF0YShkb2N1bWVudCwgZGF0YSwgQ3JlYXRlVGV4
dCkKQEAgLTY1LDYgKzY4LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxU
ZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpOwogCisgICAgYm9vbCBtX2lzRWRpdGlu
Z1RleHROb2RlOworCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBmb3JtYXRGb3JE
ZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CiAjZW5kaWYK
</data>
<flag name="review"
          id="106685"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111767</attachid>
            <date>2011-10-20 07:22:21 -0700</date>
            <delta_ts>2011-10-20 23:44:56 -0700</delta_ts>
            <desc>Updated Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>16196</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3OTczKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTAtMjAgIEthdXN0dWJo
IEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBFZGl0aW5nVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjkwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmVkIFdlYkNvcmUtb25seSBub2RlIGZyb20gZG9tLiBEb2VzIG5vdCBicmVhayBh
bnkgZXhpc3RpbmcgZnVuY3Rpb25hbGl0eS4gTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZUVudGl0eVJlZmVyZW5jZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogZG9tL0VkaXRpbmdUZXh0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vRWRpdGluZ1Rl
eHQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRU
ZXh0Q29tbWFuZDo6cG9zaXRpb25JbnNpZGVUZXh0Tm9kZSk6CisgICAgICAgICogZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6YWRkU3BhY2VzRm9yU21hcnRSZXBsYWNlKToKKyAgICAgICAgKiBlZGl0
aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYlNwYW5FbGVt
ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpzdHlsZUZvclNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KwogMjAxMS0xMC0yMCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgbV9jbGllbnQgaW4gRGV2aWNlTW90aW9uQ29udHJvbGxlciBjYW4g
bmV2ZXIgYmUgMCwgc28gbm8gbmVlZCB0byBjaGVjayBmb3IgaXQKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiA5Nzk3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC01NDMsNyArNTQzLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGRvbS9ET01TdHJpbmdMaXN0LmNwcAogICAgIGRvbS9ET01TdHJpbmdNYXAuY3BwCiAgICAg
ZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAKLSAgICBkb20vRWRpdGluZ1RleHQuY3BwCiAgICAgZG9t
L0VsZW1lbnQuY3BwCiAgICAgZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKICAgICBkb20vRXJyb3JF
dmVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gOTc5
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTkxLDggKzExOTEsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9ET01UaW1lU3RhbXAuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2Rl
TGlzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxpc3QuaCBcCi0JU291
cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdUZXh0LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0Vk
aXRpbmdUZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk3OTczKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC01MTgyLDggKzUxODIsNiBA
QAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudFR5cGUuY3BwJywKICAgICAgICAgICAgICdkb20v
RHluYW1pY05vZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0R5bmFtaWNOb2RlTGlzdC5o
JywKLSAgICAgICAgICAgICdkb20vRWRpdGluZ1RleHQuY3BwJywKLSAgICAgICAgICAgICdkb20v
RWRpdGluZ1RleHQuaCcsCiAgICAgICAgICAgICAnZG9tL0VsZW1lbnQuY3BwJywKICAgICAgICAg
ICAgICdkb20vRWxlbWVudFJhcmVEYXRhLmgnLAogICAgICAgICAgICAgJ2RvbS9FbnRpdHkuaCcs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTc5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNDk1LDcgKzQ5NSw2IEBAIFNPVVJDRVMgKz0g
XAogICAgIGRvbS9ET01TdHJpbmdNYXAuY3BwIFwKICAgICBkb20vRGF0YXNldERPTVN0cmluZ01h
cC5jcHAgXAogICAgIGRvbS9EeW5hbWljTm9kZUxpc3QuY3BwIFwKLSAgICBkb20vRWRpdGluZ1Rl
eHQuY3BwIFwKICAgICBkb20vRWxlbWVudC5jcHAgXAogICAgIGRvbS9FbnRpdHlSZWZlcmVuY2Uu
Y3BwIFwKICAgICBkb20vRXJyb3JFdmVudC5jcHAgXApAQCAtMTU0OCw3ICsxNTQ3LDYgQEAgSEVB
REVSUyArPSBcCiAgICAgZG9tL0RPTVRpbWVTdGFtcC5oIFwKICAgICBkb20vRGF0YXNldERPTVN0
cmluZ01hcC5oIFwKICAgICBkb20vRHluYW1pY05vZGVMaXN0LmggXAotICAgIGRvbS9FZGl0aW5n
VGV4dC5oIFwKICAgICBkb20vRWxlbWVudC5oIFwKICAgICBkb20vRW50aXR5LmggXAogICAgIGRv
bS9FbnRpdHlSZWZlcmVuY2UuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gOTc5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNDU2OTQsNjIg
KzQ1Njk0LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXEVkaXRpbmdUZXh0LmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJ
CQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0J
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEVkaXRpbmdUZXh0LmgiCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxFbGVtZW50LmNw
cCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRE9NQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01B
bGxJbk9uZS5jcHAJKHJldmlzaW9uIDk3OTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIkRv
Y3VtZW50UGFyc2VyLmNwcCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuY3BwIgogI2luY2x1ZGUg
IkR5bmFtaWNOb2RlTGlzdC5jcHAiCi0jaW5jbHVkZSAiRWRpdGluZ1RleHQuY3BwIgogI2luY2x1
ZGUgIkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5jcHAiCiAjaW5jbHVk
ZSAiRXJyb3JFdmVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9u
IDk3OTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTUsNyArNTUsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgi
Ci0jaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCkBAIC03NTUsMTEgKzc1
NCw2IEBAIFBhc3NSZWZQdHI8RW50aXR5UmVmZXJlbmNlPiBEb2N1bWVudDo6Y3IKICAgICByZXR1
cm4gRW50aXR5UmVmZXJlbmNlOjpjcmVhdGUodGhpcywgbmFtZSk7CiB9CiAKLVBhc3NSZWZQdHI8
RWRpdGluZ1RleHQ+IERvY3VtZW50OjpjcmVhdGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5n
JiB0ZXh0KQotewotICAgIHJldHVybiBFZGl0aW5nVGV4dDo6Y3JlYXRlKHRoaXMsIHRleHQpOwot
fQotCiBQYXNzUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+IERvY3VtZW50OjpjcmVhdGVDU1NT
dHlsZURlY2xhcmF0aW9uKCkKIHsKICAgICByZXR1cm4gQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OmNyZWF0ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDk3OTczKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcg
Kzc2LDYgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXI7CiBjbGFzcyBEb2N1bWVudFR5cGU7CiBjbGFzcyBEb2N1bWVudFdlYWtSZWZlcmVuY2U7
Ci1jbGFzcyBFZGl0aW5nVGV4dDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFbnRpdHlSZWZlcmVu
Y2U7CiBjbGFzcyBFdmVudDsKQEAgLTUzNyw3ICs1MzYsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBT
cGVjaWFsIHN1cHBvcnQgZm9yIGVkaXRpbmcKICAgICBQYXNzUmVmUHRyPENTU1N0eWxlRGVjbGFy
YXRpb24+IGNyZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKLSAgICBQYXNzUmVmUHRyPEVkaXRp
bmdUZXh0PiBjcmVhdGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lk
IHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlID0gTm9DaGFuZ2UpOwogICAgIGJvb2wgY2hpbGROZWVk
c0FuZE5vdEluU3R5bGVSZWNhbGMoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FZGl0aW5n
VGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdUZXh0LmNw
cAkocmV2aXNpb24gOTc5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWRpdGluZ1RleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0K
LS8vIEZJWE1FOiBEb2VzIHRoaXMgcmVhbGx5IHJlcXVpcmUgYSBjbGFzcz8gUGVyaGFwcyBpbnN0
ZWFkIGFueSB0ZXh0IG5vZGUKLS8vIGluc2lkZSBhbiBlZGl0YWJsZSBlbGVtZW50IGNvdWxkIGhh
dmUgdGhlICJhbHdheXMgY3JlYXRlIGEgcmVuZGVyZXIiIGJlaGF2aW9yLgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWlubGluZSBFZGl0aW5nVGV4dDo6RWRpdGluZ1RleHQoRG9jdW1lbnQqIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCi0gICAgOiBUZXh0KGRvY3VtZW50LCBkYXRhKQot
ewotfQotCi1QYXNzUmVmUHRyPEVkaXRpbmdUZXh0PiBFZGl0aW5nVGV4dDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBkYXRhKQotewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRWRpdGluZ1RleHQoZG9jdW1lbnQsIGRhdGEpKTsKLX0KLQotYm9vbCBFZGl0aW5nVGV4
dDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpCi17Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9FZGl0aW5nVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FZGl0aW5nVGV4dC5oCShyZXZpc2lvbiA5Nzk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
ZGl0aW5nVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQot
I2lmbmRlZiBFZGl0aW5nVGV4dF9oCi0jZGVmaW5lIEVkaXRpbmdUZXh0X2gKLQotI2luY2x1ZGUg
IlRleHQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBFZGl0aW5nVGV4dCA6IHB1
YmxpYyBUZXh0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFZGl0aW5nVGV4dD4g
Y3JlYXRlKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsKLQot
ICAgIEVkaXRpbmdUZXh0KERvY3VtZW50KiwgY29uc3QgU3RyaW5nJik7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFZGl0aW5nVGV4dF9oCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiA5Nzk3MykKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1
ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRWRp
dGluZ1RleHQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFdmVudEhh
bmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAkocmV2aXNpb24gOTc5NzMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsMTAgKzI4LDEwIEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJFZGl0aW5nVGV4dC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEludGVyY2hhbmdlLmgiCisjaW5jbHVk
ZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAidmlzaWJsZV91
bml0cy5oIgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CkBAIC01MCw3
ICs1MCw3IEBAIFBvc2l0aW9uIEluc2VydFRleHRDb21tYW5kOjpwb3NpdGlvbkluc2kKIHsKICAg
ICBQb3NpdGlvbiBwb3MgPSBwOwogICAgIGlmIChpc1RhYlNwYW5UZXh0Tm9kZShwb3MuYW5jaG9y
Tm9kZSgpKSkgewotICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudCgpLT5j
cmVhdGVFZGl0aW5nVGV4dE5vZGUoIiIpOworICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUg
PSBkb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZSgiIik7CiAgICAgICAgIGluc2VydE5vZGVBdFRh
YlNwYW5Qb3NpdGlvbih0ZXh0Tm9kZS5nZXQoKSwgcG9zKTsKICAgICAgICAgcmV0dXJuIGZpcnN0
UG9zaXRpb25Jbk5vZGUodGV4dE5vZGUuZ2V0KCkpOwogICAgIH0KQEAgLTU4LDcgKzU4LDcgQEAg
UG9zaXRpb24gSW5zZXJ0VGV4dENvbW1hbmQ6OnBvc2l0aW9uSW5zaQogICAgIC8vIFByZXBhcmUg
Zm9yIHRleHQgaW5wdXQgYnkgbG9va2luZyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgogICAg
IC8vIEl0IG1heSBiZSBuZWNlc3NhcnkgdG8gaW5zZXJ0IGEgdGV4dCBub2RlIHRvIHJlY2VpdmUg
Y2hhcmFjdGVycy4KICAgICBpZiAoIXBvcy5jb250YWluZXJOb2RlKCktPmlzVGV4dE5vZGUoKSkg
ewotICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudCgpLT5jcmVhdGVFZGl0
aW5nVGV4dE5vZGUoIiIpOworICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVu
dCgpLT5jcmVhdGVUZXh0Tm9kZSgiIik7CiAgICAgICAgIGluc2VydE5vZGVBdCh0ZXh0Tm9kZS5n
ZXQoKSwgcG9zKTsKICAgICAgICAgcmV0dXJuIGZpcnN0UG9zaXRpb25Jbk5vZGUodGV4dE5vZGUu
Z2V0KCkpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZpc2lvbiA5Nzk3MykKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgotI2luY2x1ZGUgIkVk
aXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNDksNiArNDgsNyBAQAogI2luY2x1ZGUgIlJlbmRl
ck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxh
Y2UuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTExNDEsNyArMTE0
MSw3IEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFkZFNwYWNlc0YKICAgICAgICAg
ICAgIGlmIChtX2VuZE9mSW5zZXJ0ZWRDb250ZW50LmNvbnRhaW5lck5vZGUoKSA9PSB0ZXh0KQog
ICAgICAgICAgICAgICAgIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQubW92ZVRvT2Zmc2V0KG1fZW5k
T2ZJbnNlcnRlZENvbnRlbnQub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgKyAxKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBub2RlID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWRpdGluZ1RleHROb2RlKGNvbGxhcHNlV2hpdGVTcGFjZSA/IG5vbkJyZWFraW5nU3BhY2VT
dHJpbmcoKSA6ICIgIik7CisgICAgICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IGRvY3VtZW50
KCktPmNyZWF0ZVRleHROb2RlKGNvbGxhcHNlV2hpdGVTcGFjZSA/IG5vbkJyZWFraW5nU3BhY2VT
dHJpbmcoKSA6ICIgIik7CiAgICAgICAgICAgICBpbnNlcnROb2RlQWZ0ZXIobm9kZSwgZW5kTm9k
ZSk7CiAgICAgICAgICAgICB1cGRhdGVOb2Rlc0luc2VydGVkKG5vZGUuZ2V0KCkpOwogICAgICAg
ICB9CkBAIC0xMTYzLDcgKzExNjMsNyBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjph
ZGRTcGFjZXNGCiAgICAgICAgICAgICBpZiAobV9lbmRPZkluc2VydGVkQ29udGVudC5jb250YWlu
ZXJOb2RlKCkgPT0gc3RhcnROb2RlICYmIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQub2Zmc2V0SW5D
b250YWluZXJOb2RlKCkpCiAgICAgICAgICAgICAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudC5t
b3ZlVG9PZmZzZXQobV9lbmRPZkluc2VydGVkQ29udGVudC5vZmZzZXRJbkNvbnRhaW5lck5vZGUo
KSArIDEpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGUg
PSBkb2N1bWVudCgpLT5jcmVhdGVFZGl0aW5nVGV4dE5vZGUoY29sbGFwc2VXaGl0ZVNwYWNlID8g
bm9uQnJlYWtpbmdTcGFjZVN0cmluZygpIDogIiAiKTsKKyAgICAgICAgICAgIFJlZlB0cjxOb2Rl
PiBub2RlID0gZG9jdW1lbnQoKS0+Y3JlYXRlVGV4dE5vZGUoY29sbGFwc2VXaGl0ZVNwYWNlID8g
bm9uQnJlYWtpbmdTcGFjZVN0cmluZygpIDogIiAiKTsKICAgICAgICAgICAgIC8vIERvbid0IHVw
ZGF0ZU5vZGVzSW5zZXJ0ZWQuIERvaW5nIHNvIHdvdWxkIHNldCBtX2VuZE9mSW5zZXJ0ZWRDb250
ZW50IHRvIGJlIHRoZSBub2RlIGNvbnRhaW5pbmcgdGhlIGxlYWRpbmcgc3BhY2UsCiAgICAgICAg
ICAgICAvLyBidXQgbV9lbmRPZkluc2VydGVkQ29udGVudCBpcyBzdXBwb3NlZCB0byBtYXJrIHRo
ZSBlbmQgb2YgcGFzdGVkIGNvbnRlbnQuCiAgICAgICAgICAgICBpbnNlcnROb2RlQmVmb3JlKG5v
ZGUsIHN0YXJ0Tm9kZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNw
cAkocmV2aXNpb24gOTc5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgImh0bWxlZGl0
aW5nLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkVkaXRpbmdUZXh0Lmgi
CiAjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCkBAIC05MTAsNyArOTA5LDcgQEAgUGFz
c1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudAogCiAgICAgLy8gQWRkIHRhYiB0
ZXh0IHRvIHRoYXQgc3Bhbi4KICAgICBpZiAoIXRhYlRleHROb2RlKQotICAgICAgICB0YWJUZXh0
Tm9kZSA9IGRvY3VtZW50LT5jcmVhdGVFZGl0aW5nVGV4dE5vZGUoIlx0Iik7CisgICAgICAgIHRh
YlRleHROb2RlID0gZG9jdW1lbnQtPmNyZWF0ZVRleHROb2RlKCJcdCIpOwogCiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgc3BhbkVsZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2Rl
LnJlbGVhc2UoKSwgZWMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9y
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1h
Yy5tbQkocmV2aXNpb24gOTc5NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0
b3JNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIkNsaXBi
b2FyZE1hYy5oIgogI2ltcG9ydCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKLSNpbXBvcnQgIkVkaXRpbmdUZXh0LmgiCiAjaW1wb3J0ICJFZGl0
b3IuaCIKICNpbXBvcnQgIkVkaXRvckNsaWVudC5oIgogI2ltcG9ydCAiRnJhbWUuaCIKQEAgLTEx
Niw3ICsxMTUsNyBAQCBzdGF0aWMgUmVuZGVyU3R5bGUqIHN0eWxlRm9yU2VsZWN0aW9uU3RhCiAg
ICAgc3R5bGVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBzdHlsZVRleHQuaW1wbCgp
LCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CiAKLSAgICBzdHlsZUVsZW1lbnQtPmFwcGVuZENoaWxk
KGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFZGl0aW5nVGV4dE5vZGUoIiIpLCBlYyk7CisgICAg
c3R5bGVFbGVtZW50LT5hcHBlbmRDaGlsZChmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlVGV4dE5v
ZGUoIiIpLCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CiAKICAgICBwb3NpdGlvbi5kZXByZWNhdGVk
Tm9kZSgpLT5wYXJlbnROb2RlKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgZWMpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDk3OTczKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRl
ICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50VHlwZS5oIgotI2luY2x1ZGUgIkVkaXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAi
RWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgo=
</data>
<flag name="commit-queue"
          id="109682"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111911</attachid>
            <date>2011-10-20 23:44:56 -0700</date>
            <delta_ts>2011-10-21 06:35:27 -0700</delta_ts>
            <desc>Updated Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>19446</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4MDcwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMTAtMjAgIEthdXN0dWJo
IEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBFZGl0aW5nVGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjkwMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9u
ZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpjcmVhdGVFbnRpdHlSZWZlcmVuY2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGRvbS9FZGl0aW5nVGV4dC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9t
L0VkaXRpbmdUZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgor
ICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OnBvc2l0aW9uSW5zaWRlVGV4dE5vZGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFkZFNwYWNlc0ZvclNtYXJ0UmVwbGFjZSk6CisgICAg
ICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVU
YWJTcGFuRWxlbWVudCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6c3R5bGVGb3JTZWxlY3Rpb25TdGFydCk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisKIDIwMTEtMTAtMjAgIFBldGVyIFJ5YmluICA8cGV0ZXIucnliaW5AZ21haWwu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlaW1wbGVtZW50IHByb3RvY29sIGJhY2tl
bmQvZnJvbnRlbmQgc291cmNlIGdlbmVyYXRvcgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJl
dmlzaW9uIDk4MDY5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTU0Myw3ICs1NDMsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RP
TVN0cmluZ0xpc3QuY3BwCiAgICAgZG9tL0RPTVN0cmluZ01hcC5jcHAKICAgICBkb20vRHluYW1p
Y05vZGVMaXN0LmNwcAotICAgIGRvbS9FZGl0aW5nVGV4dC5jcHAKICAgICBkb20vRWxlbWVudC5j
cHAKICAgICBkb20vRW50aXR5UmVmZXJlbmNlLmNwcAogICAgIGRvbS9FcnJvckV2ZW50LmNwcApJ
bmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA5ODA2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTExOTMs
OCArMTE5Myw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RP
TVRpbWVTdGFtcC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oIFwKLQlTb3VyY2UvV2ViQ29y
ZS9kb20vRWRpdGluZ1RleHQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vRWRpdGluZ1RleHQu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggXApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gOTgwNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTUxODQsOCArNTE4NCw2IEBACiAgICAgICAg
ICAgICAnZG9tL0RvY3VtZW50VHlwZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EeW5hbWljTm9k
ZUxpc3QuY3BwJywKICAgICAgICAgICAgICdkb20vRHluYW1pY05vZGVMaXN0LmgnLAotICAgICAg
ICAgICAgJ2RvbS9FZGl0aW5nVGV4dC5jcHAnLAotICAgICAgICAgICAgJ2RvbS9FZGl0aW5nVGV4
dC5oJywKICAgICAgICAgICAgICdkb20vRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9F
bGVtZW50UmFyZURhdGEuaCcsCiAgICAgICAgICAgICAnZG9tL0VudGl0eS5oJywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCShyZXZpc2lvbiA5ODA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CSh3b3JraW5nIGNvcHkpCkBAIC00OTUsNyArNDk1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgZG9t
L0RPTVN0cmluZ01hcC5jcHAgXAogICAgIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCBcCiAg
ICAgZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAgXAotICAgIGRvbS9FZGl0aW5nVGV4dC5jcHAgXAog
ICAgIGRvbS9FbGVtZW50LmNwcCBcCiAgICAgZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgXAogICAg
IGRvbS9FcnJvckV2ZW50LmNwcCBcCkBAIC0xNTQ4LDcgKzE1NDcsNiBAQCBIRUFERVJTICs9IFwK
ICAgICBkb20vRE9NVGltZVN0YW1wLmggXAogICAgIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgg
XAogICAgIGRvbS9EeW5hbWljTm9kZUxpc3QuaCBcCi0gICAgZG9tL0VkaXRpbmdUZXh0LmggXAog
ICAgIGRvbS9FbGVtZW50LmggXAogICAgIGRvbS9FbnRpdHkuaCBcCiAgICAgZG9tL0VudGl0eVJl
ZmVyZW5jZS5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCShyZXZpc2lvbiA5ODA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NTcwMiw2MiArNDU3MDIsNiBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
RWRpdGluZ1RleHQuY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJ
CT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
LQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRWRpdGluZ1RleHQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+
Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEVsZW1lbnQuY3BwIgogCQkJCT4K
IAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNw
cAkocmV2aXNpb24gOTgwNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJz
ZXIuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5jcHAiCiAjaW5jbHVkZSAiRHluYW1pY05v
ZGVMaXN0LmNwcCIKLSNpbmNsdWRlICJFZGl0aW5nVGV4dC5jcHAiCiAjaW5jbHVkZSAiRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmNwcCIKICNpbmNsdWRlICJFcnJvckV2
ZW50LmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gOTgwNjkpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3
ICs1MSw2IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKLSNpbmNsdWRl
ICJFZGl0aW5nVGV4dC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKICNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKQEAgLTc1MCwxMSArNzQ5LDYgQEAgUGFz
c1JlZlB0cjxFbnRpdHlSZWZlcmVuY2U+IERvY3VtZW50OjpjcgogICAgIHJldHVybiBFbnRpdHlS
ZWZlcmVuY2U6OmNyZWF0ZSh0aGlzLCBuYW1lKTsKIH0KIAotUGFzc1JlZlB0cjxFZGl0aW5nVGV4
dD4gRG9jdW1lbnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmIHRleHQpCi17
Ci0gICAgcmV0dXJuIEVkaXRpbmdUZXh0OjpjcmVhdGUodGhpcywgdGV4dCk7Ci19Ci0KIFBhc3NS
ZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gRG9jdW1lbnQ6OmNyZWF0ZUNTU1N0eWxlRGVjbGFy
YXRpb24oKQogewogICAgIHJldHVybiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRl
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gOTgwNjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNiBAQCBj
bGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjsKIGNs
YXNzIERvY3VtZW50VHlwZTsKIGNsYXNzIERvY3VtZW50V2Vha1JlZmVyZW5jZTsKLWNsYXNzIEVk
aXRpbmdUZXh0OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEVudGl0eVJlZmVyZW5jZTsKIGNsYXNz
IEV2ZW50OwpAQCAtNTM3LDcgKzUzNiw2IEBAIHB1YmxpYzoKIAogICAgIC8vIFNwZWNpYWwgc3Vw
cG9ydCBmb3IgZWRpdGluZwogICAgIFBhc3NSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gY3Jl
YXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwotICAgIFBhc3NSZWZQdHI8RWRpdGluZ1RleHQ+IGNy
ZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgcmVjYWxjU3R5
bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAgICAgYm9vbCBjaGlsZE5lZWRzQW5kTm90SW5T
dHlsZVJlY2FsYygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdUZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWRpdGluZ1RleHQuY3BwCShyZXZpc2lv
biA5ODA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FZGl0aW5nVGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJFZGl0aW5nVGV4dC5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLQotLy8gRklYTUU6
IERvZXMgdGhpcyByZWFsbHkgcmVxdWlyZSBhIGNsYXNzPyBQZXJoYXBzIGluc3RlYWQgYW55IHRl
eHQgbm9kZQotLy8gaW5zaWRlIGFuIGVkaXRhYmxlIGVsZW1lbnQgY291bGQgaGF2ZSB0aGUgImFs
d2F5cyBjcmVhdGUgYSByZW5kZXJlciIgYmVoYXZpb3IuCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotaW5saW5lIEVkaXRpbmdUZXh0OjpFZGl0aW5nVGV4dChEb2N1bWVudCogZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgZGF0YSkKLSAgICA6IFRleHQoZG9jdW1lbnQsIGRhdGEpCi17Ci19Ci0KLVBh
c3NSZWZQdHI8RWRpdGluZ1RleHQ+IEVkaXRpbmdUZXh0OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFZGl0
aW5nVGV4dChkb2N1bWVudCwgZGF0YSkpOwotfQotCi1ib29sIEVkaXRpbmdUZXh0OjpyZW5kZXJl
cklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikKLXsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0VkaXRpbmdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdU
ZXh0LmgJKHJldmlzaW9uIDk4MDY5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdUZXh0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwMywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIEVk
aXRpbmdUZXh0X2gKLSNkZWZpbmUgRWRpdGluZ1RleHRfaAotCi0jaW5jbHVkZSAiVGV4dC5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEVkaXRpbmdUZXh0IDogcHVibGljIFRleHQg
ewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVkaXRpbmdUZXh0PiBjcmVhdGUoRG9j
dW1lbnQqLCBjb25zdCBTdHJpbmcmKTsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwotCi0gICAgRWRpdGlu
Z1RleHQoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVkaXRpbmdUZXh0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHJldmlzaW9uIDk4MDY5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJFZGl0aW5nVGV4dC5o
IgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCShyZXZpc2lvbiA5ODA2OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMCAr
MjgsMTAgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgot
I2luY2x1ZGUgIkVkaXRpbmdUZXh0LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJIVE1MSW50ZXJjaGFuZ2UuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgiCiAj
aW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KQEAgLTUwLDcgKzUwLDcgQEAg
UG9zaXRpb24gSW5zZXJ0VGV4dENvbW1hbmQ6OnBvc2l0aW9uSW5zaQogewogICAgIFBvc2l0aW9u
IHBvcyA9IHA7CiAgICAgaWYgKGlzVGFiU3BhblRleHROb2RlKHBvcy5hbmNob3JOb2RlKCkpKSB7
Ci0gICAgICAgIFJlZlB0cjxOb2RlPiB0ZXh0Tm9kZSA9IGRvY3VtZW50KCktPmNyZWF0ZUVkaXRp
bmdUZXh0Tm9kZSgiIik7CisgICAgICAgIFJlZlB0cjxOb2RlPiB0ZXh0Tm9kZSA9IGRvY3VtZW50
KCktPmNyZWF0ZVRleHROb2RlKCIiKTsKICAgICAgICAgaW5zZXJ0Tm9kZUF0VGFiU3BhblBvc2l0
aW9uKHRleHROb2RlLmdldCgpLCBwb3MpOwogICAgICAgICByZXR1cm4gZmlyc3RQb3NpdGlvbklu
Tm9kZSh0ZXh0Tm9kZS5nZXQoKSk7CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBQb3NpdGlvbiBJ
bnNlcnRUZXh0Q29tbWFuZDo6cG9zaXRpb25JbnNpCiAgICAgLy8gUHJlcGFyZSBmb3IgdGV4dCBp
bnB1dCBieSBsb29raW5nIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCiAgICAgLy8gSXQgbWF5
IGJlIG5lY2Vzc2FyeSB0byBpbnNlcnQgYSB0ZXh0IG5vZGUgdG8gcmVjZWl2ZSBjaGFyYWN0ZXJz
LgogICAgIGlmICghcG9zLmNvbnRhaW5lck5vZGUoKS0+aXNUZXh0Tm9kZSgpKSB7Ci0gICAgICAg
IFJlZlB0cjxOb2RlPiB0ZXh0Tm9kZSA9IGRvY3VtZW50KCktPmNyZWF0ZUVkaXRpbmdUZXh0Tm9k
ZSgiIik7CisgICAgICAgIFJlZlB0cjxOb2RlPiB0ZXh0Tm9kZSA9IGRvY3VtZW50KCktPmNyZWF0
ZVRleHROb2RlKCIiKTsKICAgICAgICAgaW5zZXJ0Tm9kZUF0KHRleHROb2RlLmdldCgpLCBwb3Mp
OwogICAgICAgICByZXR1cm4gZmlyc3RQb3NpdGlvbkluTm9kZSh0ZXh0Tm9kZS5nZXQoKSk7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAJKHJldmlzaW9uIDk4MDY5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDYgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCi0jaW5jbHVkZSAiRWRpdGluZ1RleHQu
aCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCkBAIC00OSw2ICs0OCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTE0MSw3ICsxMTQxLDcgQEAgdm9p
ZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6YWRkU3BhY2VzRgogICAgICAgICAgICAgaWYgKG1f
ZW5kT2ZJbnNlcnRlZENvbnRlbnQuY29udGFpbmVyTm9kZSgpID09IHRleHQpCiAgICAgICAgICAg
ICAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudC5tb3ZlVG9PZmZzZXQobV9lbmRPZkluc2VydGVk
Q29udGVudC5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSArIDEpOwogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBkb2N1bWVudCgpLT5jcmVhdGVFZGl0aW5n
VGV4dE5vZGUoY29sbGFwc2VXaGl0ZVNwYWNlID8gbm9uQnJlYWtpbmdTcGFjZVN0cmluZygpIDog
IiAiKTsKKyAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBub2RlID0gZG9jdW1lbnQoKS0+Y3JlYXRl
VGV4dE5vZGUoY29sbGFwc2VXaGl0ZVNwYWNlID8gbm9uQnJlYWtpbmdTcGFjZVN0cmluZygpIDog
IiAiKTsKICAgICAgICAgICAgIGluc2VydE5vZGVBZnRlcihub2RlLCBlbmROb2RlKTsKICAgICAg
ICAgICAgIHVwZGF0ZU5vZGVzSW5zZXJ0ZWQobm9kZS5nZXQoKSk7CiAgICAgICAgIH0KQEAgLTEx
NjMsNyArMTE2Myw3IEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFkZFNwYWNlc0YK
ICAgICAgICAgICAgIGlmIChtX2VuZE9mSW5zZXJ0ZWRDb250ZW50LmNvbnRhaW5lck5vZGUoKSA9
PSBzdGFydE5vZGUgJiYgbV9lbmRPZkluc2VydGVkQ29udGVudC5vZmZzZXRJbkNvbnRhaW5lck5v
ZGUoKSkKICAgICAgICAgICAgICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50Lm1vdmVUb09mZnNl
dChtX2VuZE9mSW5zZXJ0ZWRDb250ZW50Lm9mZnNldEluQ29udGFpbmVyTm9kZSgpICsgMSk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IGRvY3VtZW50
KCktPmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZShjb2xsYXBzZVdoaXRlU3BhY2UgPyBub25CcmVha2lu
Z1NwYWNlU3RyaW5nKCkgOiAiICIpOworICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBk
b2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZShjb2xsYXBzZVdoaXRlU3BhY2UgPyBub25CcmVha2lu
Z1NwYWNlU3RyaW5nKCkgOiAiICIpOwogICAgICAgICAgICAgLy8gRG9uJ3QgdXBkYXRlTm9kZXNJ
bnNlcnRlZC4gRG9pbmcgc28gd291bGQgc2V0IG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQgdG8gYmUg
dGhlIG5vZGUgY29udGFpbmluZyB0aGUgbGVhZGluZyBzcGFjZSwKICAgICAgICAgICAgIC8vIGJ1
dCBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50IGlzIHN1cHBvc2VkIHRvIG1hcmsgdGhlIGVuZCBvZiBw
YXN0ZWQgY29udGVudC4KICAgICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobm9kZSwgc3RhcnRO
b2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lv
biA5ODA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIKICNpbmNsdWRl
ICJIVE1MQlJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKQEAgLTkxMCw3ICs5MDksNyBAQCBQYXNzUmVmUHRyPEVs
ZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50CiAKICAgICAvLyBBZGQgdGFiIHRleHQgdG8gdGhh
dCBzcGFuLgogICAgIGlmICghdGFiVGV4dE5vZGUpCi0gICAgICAgIHRhYlRleHROb2RlID0gZG9j
dW1lbnQtPmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSgiXHQiKTsKKyAgICAgICAgdGFiVGV4dE5vZGUg
PSBkb2N1bWVudC0+Y3JlYXRlVGV4dE5vZGUoIlx0Iik7CiAKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBzcGFuRWxlbWVudC0+YXBwZW5kQ2hpbGQodGFiVGV4dE5vZGUucmVsZWFzZSgp
LCBlYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCShyZXZp
c2lvbiA5ODA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2ltcG9ydCAiQ2xpcGJvYXJkTWFjLmgi
CiAjaW1wb3J0ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiRG9jdW1lbnRGcmFn
bWVudC5oIgotI2ltcG9ydCAiRWRpdGluZ1RleHQuaCIKICNpbXBvcnQgIkVkaXRvci5oIgogI2lt
cG9ydCAiRWRpdG9yQ2xpZW50LmgiCiAjaW1wb3J0ICJGcmFtZS5oIgpAQCAtMTE2LDcgKzExNSw3
IEBAIHN0YXRpYyBSZW5kZXJTdHlsZSogc3R5bGVGb3JTZWxlY3Rpb25TdGEKICAgICBzdHlsZUVs
ZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsIHN0eWxlVGV4dC5pbXBsKCksIGVjKTsKICAg
ICBBU1NFUlQoIWVjKTsKIAotICAgIHN0eWxlRWxlbWVudC0+YXBwZW5kQ2hpbGQoZnJhbWUtPmRv
Y3VtZW50KCktPmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSgiIiksIGVjKTsKKyAgICBzdHlsZUVsZW1l
bnQtPmFwcGVuZENoaWxkKGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZSgiIiksIGVj
KTsKICAgICBBU1NFUlQoIWVjKTsKIAogICAgIHBvc2l0aW9uLmRlcHJlY2F0ZWROb2RlKCktPnBh
cmVudE5vZGUoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBlYyk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAkocmV2aXNpb24gOTgwNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNiBAQAogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRUeXBlLmgiCi0jaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGll
bnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA5ODA3MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTEwLTIwICBLYXVzdHViaCBBdHJhd2Fsa2Fy
ICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIEdldCByaWQgb2YgRWRpdGluZ1Rl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3RrIHJl
YmFzZWxpbmUgYWZ0ZXIgcmVtb3ZpbmcgZG9tIG9ubHkgbm9kZSBFZGl0aW5nVGV4dC4KKworICAg
ICAgICAqIGVkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZWRpdGluZy9pbnB1dC9wYXNzd29yZC1lY2hvLXBhc3Nub2RlLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1hdC1lbmQtMDIt
ZXhwZWN0ZWQudHh0OgorCiAyMDExLTEwLTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEhpZGRlbiBjb21wb3NpdGVkIGlmcmFtZXMgY2F1c2UgaW5m
aW5pdGUgbG9vcApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9wYXNzd29yZC1lY2hv
LXBhc3Nub2RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2lucHV0L3Bhc3N3b3JkLWVjaG8tcGFzc25vZGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODA2
OSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiBUZXN0cyBpZiBpbnB1
dCBjaGFycyBhcmUgc2VjdXJlZCBjb3JyZWN0bHkgCiAKLVN1Y2Nlc3M6IHNlY3VyZWQgcmlnaHQg
YWZ0ZXIuIGV4cGVjdGVkPWZhbHNlLCBhY3R1YWw9ZmFsc2UKK1N1Y2Nlc3M6IHNlY3VyZWQgcmln
aHQgYWZ0ZXIuIGV4cGVjdGVkPXRydWUsIGFjdHVhbD10cnVlCiBTdWNjZXNzOiBzZWN1cmVkIGFm
dGVyIGRlbGF5LiBleHBlY3RlZD10cnVlLCBhY3R1YWw9dHJ1ZQogU3VjY2Vzczogc2VjdXJlZCBy
aWdodCBhZnRlci4gZXhwZWN0ZWQ9ZmFsc2UsIGFjdHVhbD1mYWxzZQogU3VjY2Vzczogc2VjdXJl
ZCBhZnRlciBkZWxheS4gZXhwZWN0ZWQ9dHJ1ZSwgYWN0dWFsPXRydWUKSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZS5odG1s
CShyZXZpc2lvbiA5ODA2OSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvcGFzc3dvcmQt
ZWNoby1wYXNzbm9kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlw
dCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIHZhciBteXRl
c3RzID0gWwogICAgICAgICAvL2Zvcm1hdDogW3ByZWVkaXQxLCBwcmVlZGl0MiwuLi4sY29tbWl0
X3RleHRdLCBzZWN1cmVkX3JpZ2h0X2FmdGVyPywgc2VjdXJlZF9hZnRlcl9kZWxheT8gY2hlY2s/
Ci0gICAgICAgIFtbJ2EnXSwgZmFsc2UsIHRydWUsIHRydWVdLCAgICAgICAgIC8vIHRlc3QgcGFz
c3dvcmQgKHdoZW4gb25seSAxIGNoYXIpIGlzIG9ubHkgc2VjdXJlZCBhZnRlciBhIGRlbGF5KHJl
Z3VsYXIpLgorICAgICAgICBbWydhJ10sIHRydWUsIHRydWUsIHRydWVdLCAgICAgICAgIC8vIHRl
c3QgcGFzc3dvcmQgKHdoZW4gb25seSAxIGNoYXIpIGlzIG9ubHkgc2VjdXJlZCBhZnRlciBhIGRl
bGF5KHJlZ3VsYXIpLgogICAgICAgICBbWycyJywnMicsJ2InXSwgZmFsc2UsIHRydWUsIHRydWVd
LCAvLyB0ZXN0IHBhc3N3b3JkICh3aGVuIG9ubHkgMSBjaGFyKSBpcyBvbmx5IHNlY3VyZWQgYWZ0
ZXIgYSBkZWxheShpbWUpLgogICAgIF07CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtYXQtZW5kLTAyLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9pbnNlcnRp
bmcvaW5zZXJ0LWF0LWVuZC0wMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk4MDY5KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1hdC1lbmQtMDIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsMyBAQAotRURJVElORyBERUxF
R0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNyBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudAotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlk
QmVnaW5FZGl0aW5nTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCkBAIC0yOSw0ICsy
Nyw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJCbG9jayAo
YW5vbnltb3VzKSBhdCAoMiw0OCkgc2l6ZSA3ODB4MTkKICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA4eDE5CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA4OiAieCIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKIGNhcmV0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDUgeyN0ZXh0fSBvZiBjaGlsZCA1IHtESVZ9
IG9mIGJvZHkK
</data>
<flag name="review"
          id="109851"
          type_id="1"
          status="-"
          setter="cshu"
    />
    <flag name="commit-queue"
          id="109852"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>