<?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>25639</bug_id>
          
          <creation_ts>2009-05-07 21:30:33 -0700</creation_ts>
          <short_desc>Spellcheck disabling does not disable context menu</short_desc>
          <delta_ts>2010-05-16 17:26:50 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julie Parent">jparent</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>mark.tsui.01</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>120392</commentid>
    <comment_count>0</comment_count>
    <who name="Julie Parent">jparent</who>
    <bug_when>2009-05-07 21:30:33 -0700</bug_when>
    <thetext>Setting spellcheck=false seems to disable the red squiggly, but if you right click on a misspelled word, the context menu still has spelling suggestions and other spellcheck related items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224483</commentid>
    <comment_count>1</comment_count>
      <attachid>55819</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-12 02:29:27 -0700</bug_when>
    <thetext>Created attachment 55819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224486</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-12 02:31:56 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=55819) [details]
&gt; Patch

This is not for review because it has no tests.  But I wanted some suggestions on how to test.  We can&apos;t use a pixel test because context menus aren&apos;t shown.  I considered adding a method to eventSender, but there&apos;s no method in the WebKit api for getting the menu items.  It&apos;s probably possible for me to crawl the NSMenu of a showing context menu, but is that too much of a hack?

The other option is to just write a manual layout test.  Suggestions welcome, otherwise I&apos;ll probably try to crawl the NSMenu tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224504</commentid>
    <comment_count>3</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2010-05-12 03:32:26 -0700</bug_when>
    <thetext>I wonder how other context menu items (cut/copy/paste/copy link address) are tested?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224751</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-12 11:27:29 -0700</bug_when>
    <thetext>I don&apos;t think this is the right level to do this check; the check itself is OK but a bit too low level. If you look at the call site in ContextMenu::populate, it has some logic about menu items related to spelling that runs even if the function returns false.

I think a better fix would be creating a function that combines the isInPasswordField check with the spellCheckingEnabledInFocusedNode check and calling that in ContextMenu::populate. That function could be local to the ContextMenu file and class or in the Editor or wherever seems most natural and clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225093</commentid>
    <comment_count>5</comment_count>
      <attachid>55937</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-12 21:33:37 -0700</bug_when>
    <thetext>Created attachment 55937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225099</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-12 21:38:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I wonder how other context menu items (cut/copy/paste/copy link address) are tested?

As far as I can tell, people test the behavior (e.g., the result of a paste), not the menu itself.

(In reply to comment #4)
&gt; I don&apos;t think this is the right level to do this check; the check itself is OK but a bit too low level. If you look at the call site in ContextMenu::populate, it has some logic about menu items related to spelling that runs even if the function returns false.

I moved the check to ContextMenu.  I wasn&apos;t sure what to do about the &quot;Spelling and Grammar&quot; menu.  The current patch keeps it, but I think either behavior would be ok.  I didn&apos;t merge with the isInPasswordField because it&apos;s used for other things like disabling transformations.

This includes a layout test with an extension to eventSender.  Since it gets the context menu items, I&apos;ll have to grab results for Tiger and Snow Leopard from the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225497</commentid>
    <comment_count>7</comment_count>
      <attachid>55937</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-13 14:15:07 -0700</bug_when>
    <thetext>Comment on attachment 55937
Patch

Comments in Skipped files start with &quot;#&quot; rather than &quot;//&quot;.

You have a TODO to add a bug number. Please do that.

&gt; +    if (subView) {
&gt; +        NSMenu* menu = [subView menuForEvent:event];
&gt; +        if (shouldPrintMenuItems) {
&gt; +            printf(&quot;ContextMenuItems: &quot;);
&gt; +            for (int i = 0; i &lt; [menu numberOfItems]; ++i) {

It doesn&apos;t make sense to set up the menu local variable before checking the shouldPrintMenuItems.

&gt; +                if (i &gt; 0)
&gt; +                    printf(&quot;, &quot;);
&gt; +                NSMenuItem* menuItem = [menu itemAtIndex:i];
&gt; +                printf(&quot;%s&quot;, [menuItem isSeparatorItem] ? &quot;----&quot; : [[menuItem title] UTF8String]);

Since menu item titles are localized, it might be better to log something else, perhaps the selector, reformatted in to the style of a WebCore editor command name.

    SEL selector = [menuItem action];
    char commandName[256];
    strcpy(commandName, sel_getName(selector));
    size_t commandName Length = strlen(commandName);
    if (commandNameLength &gt;= 2 &amp;&amp; commandName[commandNameLength - 1] == &apos;:&apos;) {
        commandName[0] = toupper(commandName[0]);
        commandName[commandNameLength - 1] = &apos;\0&apos;;
    }

Using printf with a constant string or a string of just &quot;%s&quot; is an anti-pattern. fputs(stdio, &lt;string&gt;) is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225498</commentid>
    <comment_count>8</comment_count>
      <attachid>55937</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-13 14:15:42 -0700</bug_when>
    <thetext>Comment on attachment 55937
Patch

review- so you can rework the tests a bit. The code change seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225625</commentid>
    <comment_count>9</comment_count>
      <attachid>56044</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-13 19:32:50 -0700</bug_when>
    <thetext>Created attachment 56044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225626</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-13 19:36:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 55937 [details])
&gt; Comments in Skipped files start with &quot;#&quot; rather than &quot;//&quot;.

Fixed.

&gt; You have a TODO to add a bug number. Please do that.

Fixed.

&gt; &gt; +    if (subView) {
&gt; &gt; +        NSMenu* menu = [subView menuForEvent:event];
&gt; &gt; +        if (shouldPrintMenuItems) {
&gt; &gt; +            printf(&quot;ContextMenuItems: &quot;);
&gt; &gt; +            for (int i = 0; i &lt; [menu numberOfItems]; ++i) {
&gt; 
&gt; It doesn&apos;t make sense to set up the menu local variable before checking the shouldPrintMenuItems.

We always want to run [subView menuForEvent:event], so I put it outside the shouldPrintMenuItems check.

&gt; &gt; +                if (i &gt; 0)
&gt; &gt; +                    printf(&quot;, &quot;);
&gt; &gt; +                NSMenuItem* menuItem = [menu itemAtIndex:i];
&gt; &gt; +                printf(&quot;%s&quot;, [menuItem isSeparatorItem] ? &quot;----&quot; : [[menuItem title] UTF8String]);
&gt; 
&gt; Since menu item titles are localized, it might be better to log something else, perhaps the selector, reformatted in to the style of a WebCore editor command name.

I see.  I tried this using the code you provided, but I got a bunch of ForwardContextMenuAction and SubmenuAction.  It looks like it keeps the value in tag and there&apos;s a big switch statement for determining the action.  We could just write out the tag (int) or maybe have a switch to map enum values to strings (seems like it might be a pain to keep in sync).

The current patch has tag number + title, but it&apos;s mostly just to demonstrate the output.  Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225881</commentid>
    <comment_count>11</comment_count>
      <attachid>56044</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-14 09:25:53 -0700</bug_when>
    <thetext>Comment on attachment 56044
Patch

I guess dumping the title is best. Probably not all that helpful to dump the tag. Sorry for sending you off on a wild goose chase before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226156</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-14 23:31:01 -0700</bug_when>
    <thetext>Attachment 56044 was posted by a committer and has review+, assigning to Tony Chang for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226382</commentid>
    <comment_count>13</comment_count>
      <attachid>56044</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-15 18:54:15 -0700</bug_when>
    <thetext>Comment on attachment 56044
Patch

This looks straightforward enough.  Tossing it on the commit-queue for Tony.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226546</commentid>
    <comment_count>14</comment_count>
      <attachid>56044</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-16 14:33:32 -0700</bug_when>
    <thetext>Comment on attachment 56044
Patch

Rejecting patch 56044 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Adler&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
opard/editing/spelling/context-menu-suggestions-expected.txt
patching file LayoutTests/platform/qt/Skipped
Hunk #1 succeeded at 5090 (offset -6 lines).
patching file LayoutTests/platform/win/Skipped
Hunk #1 succeeded at 876 (offset 4 lines).
patching file WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebCore/platform/ContextMenu.cpp
patching file WebKitTools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebKitTools/DumpRenderTree/mac/EventSendingController.mm

Full output: http://webkit-commit-queue.appspot.com/results/2273195</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226565</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-16 17:26:50 -0700</bug_when>
    <thetext>Committed r59585: &lt;http://trac.webkit.org/changeset/59585&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55819</attachid>
            <date>2010-05-12 02:29:27 -0700</date>
            <delta_ts>2010-05-12 21:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-25639-20100512182926.patch</filename>
            <type>text/plain</type>
            <size>1500</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDgyZWU0MzhkZDgxMDlmM2E5YjRiNDEwNTc3MDkzMWEyMWM2NDBmYy4uYjk4MjA4NGFkMDE3N2I1
Nzk1NTk5ZGM4OGI5M2YzZGUzMWExMDBiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNS0xMiAgVG9u
eSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNwZWxsY2hlY2sgZGlzYWJsaW5nIGRvZXMgbm90IGRpc2Fi
bGUgY29udGV4dCBtZW51CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNTYzOQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpndWVzc2Vz
Rm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0aWNhbFNlbGVjdGlvbik6CisKIDIwMTAtMDUtMTEgIERh
dmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2ll
aiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBiZTg5ODQ2YTlkYTE1ODU5NGVkY2NhNTY2
OWVmZWE5OGQ5Njg4MjcyLi42NWFmODFjYmVjZTgxOWFhNzA0MDc0NTNiYTdjNGYyZWNlMGZjM2Y2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcApAQCAtMjE2OSw2ICsyMTY5LDEyIEBAIHN0YXRpYyBWZWN0b3I8U3Ry
aW5nPiBndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0aWNhbFJhbmdlKEVkaXRvckNsaWVu
dCogY2xpCiAKIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVu
Z3JhbW1hdGljYWxTZWxlY3Rpb24oYm9vbCYgbWlzc3BlbGxlZCwgYm9vbCYgdW5ncmFtbWF0aWNh
bCkKIHsKKyAgICBpZiAoIXNwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9kZSgpKSB7Cisg
ICAgICAgIG1pc3NwZWxsZWQgPSBmYWxzZTsKKyAgICAgICAgdW5ncmFtbWF0aWNhbCA9IGZhbHNl
OworICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKKyAgICB9CisKICNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKQogICAgIHJldHVybiBndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0
aWNhbFJhbmdlKGNsaWVudCgpLCBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFu
Z2UoKS5nZXQoKSwgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCksIG1pc3NwZWxsZWQsIHVuZ3Jh
bW1hdGljYWwpOwogI2Vsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55937</attachid>
            <date>2010-05-12 21:33:37 -0700</date>
            <delta_ts>2010-05-13 19:32:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-25639-20100513133335.patch</filename>
            <type>text/plain</type>
            <size>10595</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZGM5ZThlMDU3OTFmYWRiM2U3MjBiMTNmMGU4ZTg5ZGI0OTc1YWEzLi44M2Y2ODlk
MmQyOTg5YmE4NmU1YjY0NmU1YjlmYThjZDA0NTk1ZmU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMTIgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVsbGNoZWNrIGRpc2FibGlu
ZyBkb2VzIG5vdCBkaXNhYmxlIGNvbnRleHQgbWVudQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2MzkKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9lZGl0aW5nL3NwZWxs
aW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6
CisKIDIwMTAtMDUtMTEgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNTMyNzA1OWJjNjU4MmUxMGYzZThlODQxZjYxODIyODMxNWVlNTA3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlv
bnMuaHRtbApAQCAtMCwwICsxLDM0IEBACis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cD5UaGlz
IHRlc3QgY2hlY2tzIHRoYXQgc3BlbGxpbmcgc3VnZ2VzdGlvbnMgaW4gdGhlIGNvbnRleHQgbWVu
dSBhcmUgbm90IHNob3cgd2hlbiBzcGVsbGNoZWNrPSJmYWxzZSIuCitUbyB0ZXN0IG1hbnVhbGx5
LCByaWdodCBjbGljayBvbiB0aGUgdGV4dCBpbiB0aGUgaW5wdXQgYm94LjwvcD4KKzxpbnB1dCBp
ZD0iaW5wdXQiIHNwZWxsY2hlY2s9ImZhbHNlIiAvPgorPC9ib2R5PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBpbnB1dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpOworICAgIGlucHV0LmZvY3VzKCk7Cisg
ICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgJ3cnKTsKKyAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAndycpOworICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICcgJyk7CisKKyAgICB2YXIgeCA9
IGlucHV0Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0TGVmdCArIDQ7Cisg
ICAgdmFyIHkgPSBpbnB1dC5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0VG9w
ICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zb2xlLmxvZygiU3BlbGxpbmcgc3VnZ2VzdGlu
Z3Mgc2hvdWxkIE5PVCBiZSBoZXJlIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwg
eSk7CisgICAgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKHRydWUpOworCisgICAgaW5wdXQuc2V0
QXR0cmlidXRlKCJzcGVsbGNoZWNrIiwgInRydWUiKTsKKworICAgIGNvbnNvbGUubG9nKCJTcGVs
bGluZyBzdWdnZXN0aW5ncyBTSE9VTEQgYmUgaGVyZSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljayh0cnVlKTsKK30KKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CmluZGV4IDAxODY1NjczNDU1NWYzODQwZGRlNDc0NDdmYmM4ZjU3OGUwMzY1
MTUuLmRiZGZmZDhiZDA4M2I3MGFlODE3MzgzNTIxYTA2Y2VkZTQyZjYxOTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAg
LTI4MzAsMyArMjgzMCw2IEBAIEJVRzQzODkwIE1BQyA6IGZhc3QvZm9ybXMvaW1wbGljaXQtc3Vi
bWlzc2lvbi5odG1sID0gVEVYVCBQQVNTCiAKIC8vIFRvIGJlIGVuYWJsZWQgYWZ0ZXIgdHVybmlu
ZyBvbiBGSUxFX1JFQURFUgogQlVHSklBTkxJIFNLSVAgOiBmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVy
Lmh0bWwgPSBURVhUCisKKy8vIE5lZWQgdG8gZHVtcCBjb250ZXh0IG1lbnUgaXRlbXMgb24gZXZl
bnRTZW5kZXIuY29udGV4dENsaWNrKHRydWUpLiBUT0RPOiBhZGQgYnVnIG51bWJlcgorQlVHVE9O
WSA6IGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgPSBURVhU
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDI3MmU0MzM3YjU2Y2Q5ZmYzZGVkMGI4NjYz
M2ZlMjkxMzYwMzlhZTIuLmZmNTNkZTIyZTJhZjNhZDQ5NTFmNjBlYWM5NzIyNWJhMjc3MTY1YzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC02MDI1LDMgKzYwMjUsNiBAQCBmYXN0L2Nz
cy9mb250LWZhY2Utd29mZi5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM4OTU2CiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGgtZGVm
YXVsdC5odG1sCisKKy8vIE5lZWQgdG8gZHVtcCBjb250ZXh0IG1lbnUgaXRlbXMgb24gZXZlbnRT
ZW5kZXIuY29udGV4dENsaWNrKHRydWUpLiBUT0RPOiBhZGQgYnVnIG51bWJlcgorZWRpdGluZy9z
cGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUt
c3VnZ2VzdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3Bh
cmQvZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE5YWNiODEzYzQyN2ZkNjc5YjAwN2RiM2IzOGJlMzBlM2Q2MGJkZGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9lZGl0aW5n
L3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IFNwZWxsaW5nIHN1Z2dlc3RpbmdzIHNo
b3VsZCBOT1QgYmUgaGVyZQorQ29udGV4dE1lbnVJdGVtczogU2VhcmNoIGluIFNwb3RsaWdodCwg
U2VhcmNoIGluIEdvb2dsZSwgLS0tLSwgTG9vayBVcCBpbiBEaWN0aW9uYXJ5LCAtLS0tLCBDdXQs
IENvcHksIFBhc3RlLCAtLS0tLCBTcGVsbGluZyBhbmQgR3JhbW1hciwgRm9udCwgU3BlZWNoLCBX
cml0aW5nIERpcmVjdGlvbiwgSW5zcGVjdCBFbGVtZW50CitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzA6IFNwZWxsaW5nIHN1Z2dlc3RpbmdzIFNIT1VMRCBiZSBoZXJlCitDb250ZXh0TWVudUl0ZW1z
OiB3b3csIC0tLS0sIElnbm9yZSBTcGVsbGluZywgTGVhcm4gU3BlbGxpbmcsIC0tLS0sIFNlYXJj
aCBpbiBTcG90bGlnaHQsIFNlYXJjaCBpbiBHb29nbGUsIC0tLS0sIExvb2sgVXAgaW4gRGljdGlv
bmFyeSwgLS0tLSwgQ3V0LCBDb3B5LCBQYXN0ZSwgLS0tLSwgU3BlbGxpbmcgYW5kIEdyYW1tYXIs
IEZvbnQsIFNwZWVjaCwgV3JpdGluZyBEaXJlY3Rpb24sIEluc3BlY3QgRWxlbWVudAorVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHNwZWxsaW5nIHN1Z2dlc3Rpb25zIGluIHRoZSBjb250ZXh0IG1lbnUg
YXJlIG5vdCBzaG93IHdoZW4gc3BlbGxjaGVjaz0iZmFsc2UiLiBUbyB0ZXN0IG1hbnVhbGx5LCBy
aWdodCBjbGljayBvbiB0aGUgdGV4dCBpbiB0aGUgaW5wdXQgYm94LgorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCmluZGV4IDQ3NDhkNGU5ZWNjZTExNGM3NGM3YjIyZDMwY2U0NjhkZTAyYzY0MTku
LmQyYjY1ZDg0NDNmODJkNDRlMjJlMzY5Yjk5N2Q4ODMyYWY0MWNjMWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZApAQCAtNTA5NywzICs1MDk3LDYgQEAgZmFzdC9qcy9zcHV0bmlrL1VuaWNvZGUv
VW5pY29kZV8yMTgvUzcuNl9BNS4zX1QyLmh0bWwKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NTYKIGVkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLmh0
bWwKKworLy8gTmVlZCB0byBkdW1wIGNvbnRleHQgbWVudSBpdGVtcyBvbiBldmVudFNlbmRlci5j
b250ZXh0Q2xpY2sodHJ1ZSkuIFRPRE86IGFkZCBidWcgbnVtYmVyCitlZGl0aW5nL3NwZWxsaW5n
L2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmlu
ZGV4IGUyMmM1MzZmNTg3Njk1MmFiMDZhNmVkMzJiYzllYzIxOWFmOTlmYTEuLmE5ODViZDQ1ODY4
MzUxNzE1YTAyZDE3MDY2ODRhNzgxOWNkMjc0MWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVk
CkBAIC04NzIsMyArODcyLDYgQEAgZmFzdC9jc3MvZGlzcGxheS1ub25lLWlubGluZS1zdHlsZS1j
aGFuZ2UtY3Jhc2guaHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODc5NSAtIGRvZXNuJ3QgcHJpbnQgUGFpbnRFdmVudCBpbnN0cnVtZW50YXRpb24gb3V0
cHV0CiBpbnNwZWN0b3IvdGltZWxpbmUtcGFpbnQuaHRtbAorCisvLyBOZWVkIHRvIGR1bXAgY29u
dGV4dCBtZW51IGl0ZW1zIG9uIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljayh0cnVlKS4gVE9ETzog
YWRkIGJ1ZyBudW1iZXIKK2VkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25z
Lmh0bWwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNDgyZWU0MzhkZDgxMDlmM2E5YjRiNDEwNTc3MDkzMWEyMWM2NDBmYy4uNDkwMWU2NGJj
NTVhYWQyZmRkMmUyOTU2NDhlNmM5NWFjYmY2NTdhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNS0x
MiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWxsY2hlY2sgZGlzYWJsaW5nIGRvZXMgbm90
IGRpc2FibGUgY29udGV4dCBtZW51CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNTYzOQorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvY29u
dGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRN
ZW51LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojpwb3B1bGF0ZSk6CisKIDIw
MTAtMDUtMTEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcAppbmRleCA4
Y2E0MGY1N2ZhMTUxOGY4YjYzZDJkYmU5NDY2YzExMDQxOWRiYTNkLi43ZmE1ZjhjNWM2ZDBlY2U4
ZWYzN2Q5ZDdkYTk1YWU4MjZlNDM2MmQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAt
MzkyLDggKzM5Miw5IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICB9IGVsc2Ug
eyAvLyBNYWtlIGFuIGVkaXRpbmcgY29udGV4dCBtZW51CiAgICAgICAgIFNlbGVjdGlvbkNvbnRy
b2xsZXIqIHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKTsKICAgICAgICAgYm9vbCBpblBh
c3N3b3JkRmllbGQgPSBzZWxlY3Rpb24tPmlzSW5QYXNzd29yZEZpZWxkKCk7CisgICAgICAgIGJv
b2wgc3BlbGxDaGVja2luZ0VuYWJsZWQgPSBmcmFtZS0+ZWRpdG9yKCktPnNwZWxsQ2hlY2tpbmdF
bmFibGVkSW5Gb2N1c2VkTm9kZSgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCFpblBhc3N3b3Jk
RmllbGQpIHsKKyAgICAgICAgaWYgKCFpblBhc3N3b3JkRmllbGQgJiYgc3BlbGxDaGVja2luZ0Vu
YWJsZWQpIHsKICAgICAgICAgICAgIC8vIENvbnNpZGVyIGFkZGluZyBzcGVsbGluZy1yZWxhdGVk
IG9yIGdyYW1tYXItcmVsYXRlZCBjb250ZXh0IG1lbnUgaXRlbXMgKG5ldmVyIGJvdGgsIHNpbmNl
IGEgc2luZ2xlIHNlbGVjdGVkIHJhbmdlCiAgICAgICAgICAgICAvLyBpcyBuZXZlciBjb25zaWRl
cmVkIGEgbWlzc3BlbGxpbmcgYW5kIGJhZCBncmFtbWFyIGF0IHRoZSBzYW1lIHRpbWUpCiAgICAg
ICAgICAgICBib29sIG1pc3NwZWxsaW5nOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk2YTU5NjQ3MWQ5NzM1ZDhlNmUxNTA5
ZTU3OWFiMGVjNTcwOTkyNzUuLmE3ODM0ZjZiMGMyMmMwNTJlOTEyZTJkYjA1Y2Q3NmQxYzg1M2Zk
NzUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0xMiAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNwZWxsY2hlY2sgZGlzYWJsaW5nIGRvZXMgbm90IGRpc2FibGUgY29udGV4dCBtZW51
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTYzOQor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW06
CisgICAgICAgICgrW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgaXNTZWxlY3RvckV4Y2x1ZGVkRnJv
bVdlYlNjcmlwdDpdKToKKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciB3ZWJTY3Jp
cHROYW1lRm9yU2VsZWN0b3I6XSk6CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIg
Y29udGV4dENsaWNrOl0pOiBhZGQgYSBib29sIHBhcmFtZXRlciB0aGF0CisgICAgICAgICAgICAg
IHdoZW4gdHJ1ZSwgZHVtcHMgdGhlIGNvbnRleHQgbWVudSBpdGVtcyB0byBzdGRvdXQuCisKIDIw
MTAtMDUtMTEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbSBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCmluZGV4IDhjNWNlYmY4
ZTU3Njg0YmMyZGRmYjA0MzYxNjZiYmRkYzlkN2I3MmMuLjBhMGRmZWQ0MzJlNjIwNjRjYWI5ZmFi
NDY4YjkzOTRlNmE4YjBiM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCkBAIC0xMjIsNyArMTIyLDcgQEAg
Qk9PTCByZXBsYXlpbmdTYXZlZEV2ZW50czsKIHsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxl
Y3RvcihiZWdpbkRyYWdXaXRoRmlsZXM6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBz
ZWxlY3RvcihjbGVhcktpbGxSaW5nKQotICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxl
Y3Rvcihjb250ZXh0Q2xpY2spCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGNvbnRleHRDbGljazopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGVu
YWJsZURPTVVJRXZlbnRMb2dnaW5nOikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3IoZmlyZUtleWJvYXJkRXZlbnRzVG9FbGVtZW50OikKICAgICAgICAgICAgIHx8IGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3Ioa2V5RG93bjp3aXRoTW9kaWZpZXJzOndpdGhMb2NhdGlvbjopCkBA
IC0xNTIsNiArMTUyLDggQEAgQk9PTCByZXBsYXlpbmdTYXZlZEV2ZW50czsKIHsKICAgICBpZiAo
YVNlbGVjdG9yID09IEBzZWxlY3RvcihiZWdpbkRyYWdXaXRoRmlsZXM6KSkKICAgICAgICAgcmV0
dXJuIEAiYmVnaW5EcmFnV2l0aEZpbGVzIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rv
cihjb250ZXh0Q2xpY2s6KSkKKyAgICAgICAgcmV0dXJuIEAiY29udGV4dENsaWNrIjsKICAgICBp
ZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihlbmFibGVET01VSUV2ZW50TG9nZ2luZzopKQogICAg
ICAgICByZXR1cm4gQCJlbmFibGVET01VSUV2ZW50TG9nZ2luZyI7CiAgICAgaWYgKGFTZWxlY3Rv
ciA9PSBAc2VsZWN0b3IoZmlyZUtleWJvYXJkRXZlbnRzVG9FbGVtZW50OikpCkBAIC00OTIsNyAr
NDk0LDcgQEAgc3RhdGljIGludCBidWlsZE1vZGlmaWVyRmxhZ3MoY29uc3QgV2ViU2NyaXB0T2Jq
ZWN0KiBtb2RpZmllcnMpCiAgICAgW3NlbGYgbW91c2VTY3JvbGxCeVg6eCBhbmRZOnkgY29udGlu
dW91c2x5Ok5PXTsKIH0KIAotLSAodm9pZCljb250ZXh0Q2xpY2sKKy0gKHZvaWQpY29udGV4dENs
aWNrOihCT09MKXNob3VsZFByaW50TWVudUl0ZW1zCiB7CiAgICAgW1tbbWFpbkZyYW1lIGZyYW1l
Vmlld10gZG9jdW1lbnRWaWV3XSBsYXlvdXRdOwogICAgIFtzZWxmIHVwZGF0ZUNsaWNrQ291bnRG
b3JCdXR0b246UmlnaHRNb3VzZUJ1dHRvbl07CkBAIC01MDgsOCArNTEwLDE5IEBAIHN0YXRpYyBp
bnQgYnVpbGRNb2RpZmllckZsYWdzKGNvbnN0IFdlYlNjcmlwdE9iamVjdCogbW9kaWZpZXJzKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOjAuMF07CiAK
ICAgICBOU1ZpZXcgKnN1YlZpZXcgPSBbW21haW5GcmFtZSB3ZWJWaWV3XSBoaXRUZXN0OltldmVu
dCBsb2NhdGlvbkluV2luZG93XV07Ci0gICAgaWYgKHN1YlZpZXcpCi0gICAgICAgIFtzdWJWaWV3
IG1lbnVGb3JFdmVudDpldmVudF07CisgICAgaWYgKHN1YlZpZXcpIHsKKyAgICAgICAgTlNNZW51
KiBtZW51ID0gW3N1YlZpZXcgbWVudUZvckV2ZW50OmV2ZW50XTsKKyAgICAgICAgaWYgKHNob3Vs
ZFByaW50TWVudUl0ZW1zKSB7CisgICAgICAgICAgICBwcmludGYoIkNvbnRleHRNZW51SXRlbXM6
ICIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBbbWVudSBudW1iZXJPZkl0ZW1z
XTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAwKQorICAgICAgICAgICAgICAgICAg
ICBwcmludGYoIiwgIik7CisgICAgICAgICAgICAgICAgTlNNZW51SXRlbSogbWVudUl0ZW0gPSBb
bWVudSBpdGVtQXRJbmRleDppXTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiVzIiwgW21lbnVJ
dGVtIGlzU2VwYXJhdG9ySXRlbV0gPyAiLS0tLSIgOiBbW21lbnVJdGVtIHRpdGxlXSBVVEY4U3Ry
aW5nXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludGYoIlxuIik7CisgICAgICAg
IH0KKyAgICB9CiB9CiAKIC0gKHZvaWQpc2NoZWR1bGVBc3luY2hyb25vdXNDbGljawo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56044</attachid>
            <date>2010-05-13 19:32:50 -0700</date>
            <delta_ts>2010-05-16 14:33:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-25639-20100514113248.patch</filename>
            <type>text/plain</type>
            <size>11072</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTA4MzY3YTRkYWJmMjcxOGJkMzQ2MzUzY2UxZjcxNzZmNDkzZjNjLi5iOGIyZWVm
ZWRmYTJiNjY1NDMxN2RmMmVhYjdlN2YwZTY1MDJiNWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMTIgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVsbGNoZWNrIGRpc2FibGlu
ZyBkb2VzIG5vdCBkaXNhYmxlIGNvbnRleHQgbWVudQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2MzkKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9lZGl0aW5nL3NwZWxs
aW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6
CisKIDIwMTAtMDUtMTMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIE5vIHJldmlldy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MzI3
MDU5YmM2NTgyZTEwZjNlOGU4NDFmNjE4MjI4MzE1ZWU1MDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1s
CkBAIC0wLDAgKzEsMzQgQEAKKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPlRoaXMgdGVzdCBj
aGVja3MgdGhhdCBzcGVsbGluZyBzdWdnZXN0aW9ucyBpbiB0aGUgY29udGV4dCBtZW51IGFyZSBu
b3Qgc2hvdyB3aGVuIHNwZWxsY2hlY2s9ImZhbHNlIi4KK1RvIHRlc3QgbWFudWFsbHksIHJpZ2h0
IGNsaWNrIG9uIHRoZSB0ZXh0IGluIHRoZSBpbnB1dCBib3guPC9wPgorPGlucHV0IGlkPSJpbnB1
dCIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+Cis8L2JvZHk+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIGlucHV0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7CisgICAgaW5wdXQuZm9jdXMoKTsKKyAgICBkb2N1
bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAndycpOworICAgIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICd3Jyk7CisgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgJyAnKTsKKworICAgIHZhciB4ID0gaW5wdXQu
b2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRMZWZ0ICsgNDsKKyAgICB2YXIg
eSA9IGlucHV0Lm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1
dC5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNvbnNvbGUubG9nKCJTcGVsbGluZyBzdWdnZXN0aW5ncyBzaG91
bGQgTk9UIGJlIGhlcmUiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAg
ICBldmVudFNlbmRlci5jb250ZXh0Q2xpY2sodHJ1ZSk7CisKKyAgICBpbnB1dC5zZXRBdHRyaWJ1
dGUoInNwZWxsY2hlY2siLCAidHJ1ZSIpOworCisgICAgY29uc29sZS5sb2coIlNwZWxsaW5nIHN1
Z2dlc3RpbmdzIFNIT1VMRCBiZSBoZXJlIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
eCwgeSk7CisgICAgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKHRydWUpOworfQorPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKaW5kZXggNTAyMDJmZDI0ZWViNTZjMTAzM2I5MTU1NTZmZGIzMzhlYTdlNWQyYi4uZmRk
MDU4ODQ3Yjc1NGE0ZjdjODc5M2YxZWQyYTc0ZTE1MzU3YzUwYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjgyMSwz
ICsyODIxLDYgQEAgQlVHNDM4OTAgTUFDIExJTlVYIDogZmFzdC9mb3Jtcy9pbXBsaWNpdC1zdWJt
aXNzaW9uLmh0bWwgPSBURVhUIFBBU1MKIAogLy8gV2ViS2l0IHJvbGwgNTkxNzA6NTkyNjcKIEJV
RzQ0MDE4IFdJTiA6IGluc3BlY3Rvci9zdHlsZXMtZGlzYWJsZS10aGVuLWVuYWJsZS5odG1sID0g
VEVYVAorCisvLyBOZWVkIHRvIGR1bXAgY29udGV4dCBtZW51IGl0ZW1zIG9uIGV2ZW50U2VuZGVy
LmNvbnRleHRDbGljayh0cnVlKS4KK0JVR1dLMzkxMDUgOiBlZGl0aW5nL3NwZWxsaW5nL2NvbnRl
eHQtbWVudS1zdWdnZXN0aW9ucy5odG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApp
bmRleCAxMzlhMTc5NjliYzRiMWVjOTFlZDA5MGRhMWNiNTMxOGIwNWU2NDc2Li5jNjQyZjYxMjM0
MjgxOWMwOWZlNTk0NGJlYjliMTQzMzBhYmZjM2MyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZApAQCAtNTkyMSwzICs1OTIxLDcgQEAgZmFzdC9sb2FkZXIvcmVjdXJzaXZlLWJlZm9yZS11bmxv
YWQtY3Jhc2guaHRtbAogIyBUZXN0cyBmYWlsaW5nIG9ubHkgb24gdGhlIDMyLWJpdCBkZWJ1ZyBi
b3QKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTAxCiBjc3Mx
L2NvbG9yX2FuZF9iYWNrZ3JvdW5kL2JhY2tncm91bmRfYXR0YWNobWVudC5odG1sCisKKyMgTmVl
ZCB0byBkdW1wIGNvbnRleHQgbWVudSBpdGVtcyBvbiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2so
dHJ1ZSkuCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgor
ZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvZWRpdGluZy9zcGVsbGluZy9jb250
ZXh0LW1lbnUtc3VnZ2VzdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZThiNzJjMWU2YjE3Y2NhYTMyNmNiOGYyZDVlZmNiNTA3
ZDU2ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFy
ZC9lZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw3IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IFNwZWxsaW5nIHN1Z2dl
c3RpbmdzIHNob3VsZCBOT1QgYmUgaGVyZQorQ29udGV4dE1lbnVJdGVtczogMjAgU2VhcmNoIGlu
IFNwb3RsaWdodCwgMjEgU2VhcmNoIGluIEdvb2dsZSwgPHNlcGFyYXRvcj4sIDIyIExvb2sgVXAg
aW4gRGljdGlvbmFyeSwgPHNlcGFyYXRvcj4sIDEzIEN1dCwgOCBDb3B5LCAxNCBQYXN0ZSwgPHNl
cGFyYXRvcj4sIDIwMDIgU3BlbGxpbmcgYW5kIEdyYW1tYXIsIDIwMDcgRm9udCwgMjAxNSBTcGVl
Y2gsIDIwMTggV3JpdGluZyBEaXJlY3Rpb24sIDIwMjQgSW5zcGVjdCBFbGVtZW50CitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzA6IFNwZWxsaW5nIHN1Z2dlc3RpbmdzIFNIT1VMRCBiZSBoZXJlCitD
b250ZXh0TWVudUl0ZW1zOiAxNSB3b3csIDxzZXBhcmF0b3I+LCAxNyBJZ25vcmUgU3BlbGxpbmcs
IDE4IExlYXJuIFNwZWxsaW5nLCA8c2VwYXJhdG9yPiwgMjAgU2VhcmNoIGluIFNwb3RsaWdodCwg
MjEgU2VhcmNoIGluIEdvb2dsZSwgPHNlcGFyYXRvcj4sIDIyIExvb2sgVXAgaW4gRGljdGlvbmFy
eSwgPHNlcGFyYXRvcj4sIDEzIEN1dCwgOCBDb3B5LCAxNCBQYXN0ZSwgPHNlcGFyYXRvcj4sIDIw
MDIgU3BlbGxpbmcgYW5kIEdyYW1tYXIsIDIwMDcgRm9udCwgMjAxNSBTcGVlY2gsIDIwMTggV3Jp
dGluZyBEaXJlY3Rpb24sIDIwMjQgSW5zcGVjdCBFbGVtZW50CitUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgc3BlbGxpbmcgc3VnZ2VzdGlvbnMgaW4gdGhlIGNvbnRleHQgbWVudSBhcmUgbm90IHNob3cg
d2hlbiBzcGVsbGNoZWNrPSJmYWxzZSIuIFRvIHRlc3QgbWFudWFsbHksIHJpZ2h0IGNsaWNrIG9u
IHRoZSB0ZXh0IGluIHRoZSBpbnB1dCBib3guCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5k
ZXggZWQwMWMxY2U3YjBhM2RkZDEzYWZiZmE4ZTVlZmEwNDE1YzQyODIyZi4uZmU0MWIxZjgwMjI5
OTQ4OGEzZDdmYTZkMTNkZGIyMTQwZDQyOTExNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBA
IC01MDk2LDMgKzUwOTYsNyBAQCBlZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1sCiAj
IE5ldyB0ZXN0IGhhbmdzIFFUIGJvdAogIyBEaXNjdXNzZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTI4CiBmYXN0L2xvYWRlci9yZWN1cnNpdmUtYmVmb3Jl
LXVubG9hZC1jcmFzaC5odG1sIAorCisjIE5lZWQgdG8gZHVtcCBjb250ZXh0IG1lbnUgaXRlbXMg
b24gZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKHRydWUpLgorIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkxMDMKK2VkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51
LXN1Z2dlc3Rpb25zLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggZTIyYzUzNmY1
ODc2OTUyYWIwNmE2ZWQzMmJjOWVjMjE5YWY5OWZhMS4uM2RlN2QwNzJmNzJlNmY4NzMyOTVhYzQ0
YzlhMDBiZmE4NzA3Y2I2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTg3MiwzICs4
NzIsNyBAQCBmYXN0L2Nzcy9kaXNwbGF5LW5vbmUtaW5saW5lLXN0eWxlLWNoYW5nZS1jcmFzaC5o
dG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Nzk1IC0g
ZG9lc24ndCBwcmludCBQYWludEV2ZW50IGluc3RydW1lbnRhdGlvbiBvdXRwdXQKIGluc3BlY3Rv
ci90aW1lbGluZS1wYWludC5odG1sCisKKyMgTmVlZCB0byBkdW1wIGNvbnRleHQgbWVudSBpdGVt
cyBvbiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2sodHJ1ZSkuIFRPRE86IGFkZCBidWcgbnVtYmVy
CisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwNAorZWRpdGlu
Zy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NjEwMGZhN2ZlN2RmNDhh
NDIxNDRhMzdhODBkNDRiZGEzYzkyOGMxLi5lMzhjNGQ2NzkzOWRjNDU3Zjg1OTY2MmI4ZWI0MDNl
ZGFmOTFjNjgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA1LTEyICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3BlbGxjaGVjayBkaXNhYmxpbmcgZG9lcyBub3QgZGlzYWJsZSBjb250ZXh0IG1lbnUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjM5CisK
KyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGV4dE1lbnU6OnBvcHVsYXRlKToKKwogMjAxMC0wNS0xMyAgVGltb3RoeSBIYXRj
aGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIFdlYkNvcmU6OnJlcG9y
dEV4Y2VwdGlvbiBhbmQgV2ViQ29yZTo6dG9KU0RPTVdpbmRvdyBzeW1ib2xzLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51LmNwcAppbmRleCA4Y2E0MGY1N2ZhMTUxOGY4YjYzZDJkYmU5NDY2YzExMDQxOWRi
YTNkLi43ZmE1ZjhjNWM2ZDBlY2U4ZWYzN2Q5ZDdkYTk1YWU4MjZlNDM2MmQ5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51LmNwcApAQCAtMzkyLDggKzM5Miw5IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBv
cHVsYXRlKCkKICAgICB9IGVsc2UgeyAvLyBNYWtlIGFuIGVkaXRpbmcgY29udGV4dCBtZW51CiAg
ICAgICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIqIHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24o
KTsKICAgICAgICAgYm9vbCBpblBhc3N3b3JkRmllbGQgPSBzZWxlY3Rpb24tPmlzSW5QYXNzd29y
ZEZpZWxkKCk7CisgICAgICAgIGJvb2wgc3BlbGxDaGVja2luZ0VuYWJsZWQgPSBmcmFtZS0+ZWRp
dG9yKCktPnNwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9kZSgpOwogICAgICAgICAKLSAg
ICAgICAgaWYgKCFpblBhc3N3b3JkRmllbGQpIHsKKyAgICAgICAgaWYgKCFpblBhc3N3b3JkRmll
bGQgJiYgc3BlbGxDaGVja2luZ0VuYWJsZWQpIHsKICAgICAgICAgICAgIC8vIENvbnNpZGVyIGFk
ZGluZyBzcGVsbGluZy1yZWxhdGVkIG9yIGdyYW1tYXItcmVsYXRlZCBjb250ZXh0IG1lbnUgaXRl
bXMgKG5ldmVyIGJvdGgsIHNpbmNlIGEgc2luZ2xlIHNlbGVjdGVkIHJhbmdlCiAgICAgICAgICAg
ICAvLyBpcyBuZXZlciBjb25zaWRlcmVkIGEgbWlzc3BlbGxpbmcgYW5kIGJhZCBncmFtbWFyIGF0
IHRoZSBzYW1lIHRpbWUpCiAgICAgICAgICAgICBib29sIG1pc3NwZWxsaW5nOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU4
MTY4YTM2YTA4Zjc2MGNhNjkyNmVkOGQwNTkxYjg5MzZkY2I1NzYuLmZiYzM1M2I0YWUyZjg5MTgw
YjgwNjRjYmQ2NzEyNDk0Yjk0ZjRhZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0x
MiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWxsY2hlY2sgZGlzYWJsaW5nIGRvZXMgbm90
IGRpc2FibGUgY29udGV4dCBtZW51CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNTYzOQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIubW06CisgICAgICAgICgrW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIg
aXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKToKKyAgICAgICAgKCtbRXZlbnRTZW5k
aW5nQ29udHJvbGxlciB3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6XSk6CisgICAgICAgICgtW0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIgY29udGV4dENsaWNrOl0pOiBhZGQgYSBib29sIHBhcmFtZXRl
ciB0aGF0CisgICAgICAgICAgICAgIHdoZW4gdHJ1ZSwgZHVtcHMgdGhlIGNvbnRleHQgbWVudSBp
dGVtcyB0byBzdGRvdXQuCisKIDIwMTAtMDUtMTMgIERpZWdvIEdvbnphbGV6ICA8ZGllZ29oY2dA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNl
bmRpbmdDb250cm9sbGVyLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggOGM1Y2ViZjhlNTc2ODRiYzJkZGZiMDQzNjE2NmJi
ZGRjOWQ3YjcyYy4uYjNhODVhMzQxYzBkZTUwYjNmZTg3ZGZkMDg2NmU3ZjhlYmQzYjExZSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBCT09MIHJlcGxheWluZ1NhdmVkRXZl
bnRzOwogewogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGJlZ2luRHJhZ1dpdGhGaWxl
czopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNsZWFyS2lsbFJpbmcp
Ci0gICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNvbnRleHRDbGljaykKKyAg
ICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoY29udGV4dENsaWNrOikKICAgICAg
ICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZW5hYmxlRE9NVUlFdmVudExvZ2dpbmc6
KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihmaXJlS2V5Ym9hcmRFdmVu
dHNUb0VsZW1lbnQ6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihrZXlE
b3duOndpdGhNb2RpZmllcnM6d2l0aExvY2F0aW9uOikKQEAgLTE1Miw2ICsxNTIsOCBAQCBCT09M
IHJlcGxheWluZ1NhdmVkRXZlbnRzOwogewogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGJlZ2luRHJhZ1dpdGhGaWxlczopKQogICAgICAgICByZXR1cm4gQCJiZWdpbkRyYWdXaXRoRmls
ZXMiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNvbnRleHRDbGljazopKQorICAg
ICAgICByZXR1cm4gQCJjb250ZXh0Q2xpY2siOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKGVuYWJsZURPTVVJRXZlbnRMb2dnaW5nOikpCiAgICAgICAgIHJldHVybiBAImVuYWJsZURP
TVVJRXZlbnRMb2dnaW5nIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihmaXJlS2V5
Ym9hcmRFdmVudHNUb0VsZW1lbnQ6KSkKQEAgLTQ5Miw3ICs0OTQsNyBAQCBzdGF0aWMgaW50IGJ1
aWxkTW9kaWZpZXJGbGFncyhjb25zdCBXZWJTY3JpcHRPYmplY3QqIG1vZGlmaWVycykKICAgICBb
c2VsZiBtb3VzZVNjcm9sbEJ5WDp4IGFuZFk6eSBjb250aW51b3VzbHk6Tk9dOwogfQogCi0tICh2
b2lkKWNvbnRleHRDbGljaworLSAodm9pZCljb250ZXh0Q2xpY2s6KEJPT0wpc2hvdWxkUHJpbnRN
ZW51SXRlbXMKIHsKICAgICBbW1ttYWluRnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIGxh
eW91dF07CiAgICAgW3NlbGYgdXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbjpSaWdodE1vdXNlQnV0
dG9uXTsKQEAgLTUwOCw4ICs1MTAsMjIgQEAgc3RhdGljIGludCBidWlsZE1vZGlmaWVyRmxhZ3Mo
Y29uc3QgV2ViU2NyaXB0T2JqZWN0KiBtb2RpZmllcnMpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIAogICAgIE5TVmlldyAqc3ViVmlldyA9
IFtbbWFpbkZyYW1lIHdlYlZpZXddIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsK
LSAgICBpZiAoc3ViVmlldykKLSAgICAgICAgW3N1YlZpZXcgbWVudUZvckV2ZW50OmV2ZW50XTsK
KyAgICBpZiAoc3ViVmlldykgeworICAgICAgICBOU01lbnUqIG1lbnUgPSBbc3ViVmlldyBtZW51
Rm9yRXZlbnQ6ZXZlbnRdOworICAgICAgICBpZiAoc2hvdWxkUHJpbnRNZW51SXRlbXMpIHsKKyAg
ICAgICAgICAgIHByaW50ZigiQ29udGV4dE1lbnVJdGVtczogIik7CisgICAgICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IFttZW51IG51bWJlck9mSXRlbXNdOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoaSA+IDApCisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiLCAiKTsKKyAgICAg
ICAgICAgICAgICBOU01lbnVJdGVtKiBtZW51SXRlbSA9IFttZW51IGl0ZW1BdEluZGV4OmldOwor
ICAgICAgICAgICAgICAgIGlmIChbbWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtXSkKKyAgICAgICAg
ICAgICAgICAgICAgcHJpbnRmKCI8c2VwYXJhdG9yPiIpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlZCAlcyIsIFttZW51SXRlbSB0YWddLCBbW21l
bnVJdGVtIHRpdGxlXSBVVEY4U3RyaW5nXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBw
cmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIC0gKHZvaWQpc2NoZWR1bGVBc3lu
Y2hyb25vdXNDbGljawo=
</data>
<flag name="review"
          id="40366"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="40558"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>