<?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>30500</bug_id>
          
          <creation_ts>2009-10-18 20:55:08 -0700</creation_ts>
          <short_desc>[Gtk] Find a way for WebKit to &quot;announce&quot; itself so that ATs can readily distinguish it from true Gtk+/Gail</short_desc>
          <delta_ts>2010-07-02 07:02:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>25531</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>mario</cc>
    
    <cc>walker.willie</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155553</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-10-18 20:55:08 -0700</bug_when>
    <thetext>See http://library.gnome.org/devel/atk/unstable/AtkUtil.html for more information.
We&apos;ll need to ensure that we claim to be WebKit when within the WebView and let the app handle the rest of the cases.

(I&apos;d provide more details now, but I&apos;m a tad sleepy and I plan to tackle this one myself. I just didn&apos;t want to forget about it.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155639</commentid>
    <comment_count>1</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2009-10-19 03:49:35 -0700</bug_when>
    <thetext>I haven&apos;t tested it, but I suppose that right now, it is returning as toolkit name, GAIL. Right?

As far as I know, the gtk accessibility support in WebKit is not defining a new AtkUtil at all. It is just a new AtkObject that works as a wrapper of the internal a11y support in Webkit.

It is just the a11y support for a specific Gtk Widget, so I don&apos;t understand why this require to explicitly say that the toolkit is Webkit (as I really think that we are not in a different toolkit).

I think that you are asking it because in the Gecko implementation, it returns as toolkit &quot;Gecko&quot;. But this is different:
  * Gecko defines a new AtkUtil implementation (see nsAppRootAccessible)
  * It redefines get_root, returning a different root (gail_root if not possible)
     * AFAIK, this doesn&apos;t happens with Webkit, Webkit always return the gail root.
  * It wraps the event management, as the &quot;window:&quot; signal can also be emitted by MaiAtkObject.
  * Other issues

So, in this case Gecko is defining a new toolkit (the root is different) that wraps part of their functionality on Gail.

But this is not the case with Webkit. The Webkit a11y support is just implement the Atk interfaces in a new Gtk widget. Technically (IMHO) this doesn&apos;t mean a new toolkit, it is just a &quot;library&quot; that defines a new gtk widget that requires a11y support. The main point of that is that Webkit is not defining a new get_root method. So I think that the correct toolkit is GAIL.

I&apos;m missing any reason to consider that we are in a different toolkit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155644</commentid>
    <comment_count>2</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-10-19 04:02:27 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I&apos;m missing any reason to consider that we are in a different toolkit?

Yes. :-)

For any app for which there is not a specific, custom script in Orca, Orca queries the app to determine what toolkit is being used. How WebKit implements things is in some cases quite different from how the same things would be implemented by a Gtk+ app. If WebKit claims to be Gail, Orca&apos;s default script will handle things, and it will handle them wrong.

Does this make sense??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155651</commentid>
    <comment_count>3</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2009-10-19 04:37:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; I&apos;m missing any reason to consider that we are in a different toolkit?
&gt; 
&gt; Yes. :-)
&gt; 
&gt; For any app for which there is not a specific, custom script in Orca, Orca
&gt; queries the app to determine what toolkit is being used. How WebKit implements
&gt; things is in some cases quite different from how the same things would be
&gt; implemented by a Gtk+ app. If WebKit claims to be Gail, Orca&apos;s default script
&gt; will handle things, and it will handle them wrong.
&gt; 
&gt; Does this make sense??

Yes, know I understand the reasons. Thanks.

Anyway, and probably just a nitpick, my concern about redefine toolkit_name and toolkit_version is because, as I said in my previous comment, there isn&apos;t a new toolkit here, so redefine the toolkit_name as &quot;Webkit&quot; is just a hack hint for the AT applications (like Orca).

But I also understand that from the POV of Orca would be more easy to implement a lot of things, as Webkit will not be tied to one specific application (it would be used for epiphany, devhelp, and so on) so it has sense to share it. The other option, quick-thought, would be have a epiphany, devhelp and so on scripts, all of them calling common python scripts, but the problem is that if it appears a new Gtk+ using WebKitWebView, it wouldn&apos;t use the specific Orca scripts without updating Orca.

Probably the best option to solve that is just redefine toolkit_name as you suggest, perhaps any others (Xan?) have their own opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155656</commentid>
    <comment_count>4</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-10-19 04:50:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; The other option, quick-thought, would be have a epiphany, devhelp and so on
&gt; scripts, all of them calling common python scripts,

Yup, we do that sort of thing in Orca now.

&gt; but the problem is that if
&gt; it appears a new Gtk+ using WebKitWebView, it wouldn&apos;t use the specific Orca
&gt; scripts without updating Orca.

Exactly.

&gt; Probably the best option to solve that is just redefine toolkit_name as you
&gt; suggest, perhaps any others (Xan?) have their own opinion.

The other option is to make WebKit act more Gailish. The biggest issue is the fact that text is rendered as a child (and in some cases multiple children) of HTMLElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155659</commentid>
    <comment_count>5</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-10-19 04:53:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; I&apos;m missing any reason to consider that we are in a different toolkit?
&gt; 
&gt; Yes. :-)
&gt; 
&gt; For any app for which there is not a specific, custom script in Orca, Orca
&gt; queries the app to determine what toolkit is being used. How WebKit implements
&gt; things is in some cases quite different from how the same things would be
&gt; implemented by a Gtk+ app. If WebKit claims to be Gail, Orca&apos;s default script
&gt; will handle things, and it will handle them wrong.
&gt; 
&gt; Does this make sense??

I think the only thing that matters here is what the de-facto expected behavior is, so if Orca and others expect widgets within the WebView hierarchy to report something other than GTK+ as toolkit name, I&apos;m fine with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155668</commentid>
    <comment_count>6</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2009-10-19 06:08:35 -0700</bug_when>
    <thetext>I was thinking a little about that, and, although probably I should check this deeply, right now I think that the problem is that this is not a easy change, and this would have several consequences.

In order to redefine this two methods you will need to create a new AtkUtil implementation. This is not just implement a new interface, is a subclass of AtkUtil, and it is designed to be a singleton class (so you can&apos;t implement it on the current atk wrapper, a new object is required).

This means that probably you will need to redefine all the AtkUtil methods in order to wrap properly the gail_util implementation of AtkUtil, and then redefine this two methods.

And of course, this class needs to be loaded in order to redefine all this methods, and this is required to be done *after* GAIL to overwrite properly the methods. We all know all the problems we had to load the specific a11y thingies on Firefox, ie: 

http://mail.gnome.org/archives/gnome-accessibility-list/2009-January/msg00030.html

How this class will be loaded?
  * There is something like webkit_init ()? Could be used?
  * A specific module for webkit a11y (WAIL)?
  * On the application side? (Check nsApplicationAccessibleWrap::Init() on nsAppRootAccessible.cpp)
     * This would be a mess with several applications using Webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155672</commentid>
    <comment_count>7</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-10-19 06:32:21 -0700</bug_when>
    <thetext>Note to self: Given what a mess this is starting to sound like, we could alternatively cause WebKit to &quot;announce itself&quot; via an object attribute placed on its top-level object. Or something along those lines. I&apos;ll give it some more thought.

Resummarizing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155720</commentid>
    <comment_count>8</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2009-10-19 09:01:09 -0700</bug_when>
    <thetext>I was just chatting with Will Walker about this issue. He suggested such an object attribute be added to the Atk API. Enhancement request filed here: https://bugzilla.gnome.org/show_bug.cgi?id=598952. Once we know what the attribute&apos;s name is, we can add it to WebKit. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199417</commentid>
    <comment_count>9</comment_count>
      <attachid>50663</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-13 15:14:12 -0800</bug_when>
    <thetext>Created attachment 50663
new object attribute - includes layout test

Nothing has happened to the GNOME bug I filed; in the meantime, Orca (and potentially other ATs) still have the need to know if a given object is a WebKitGtk object. 

I discussed this further with Will, and he suggested an object attribute of &apos;toolkit:WebKitGtk&apos;. Other toolkits (e.g. Gecko) can follow our lead. :-)

Note: This has no impact on the reported toolkit for the application; merely gives ATs a hint about where the object is coming from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200472</commentid>
    <comment_count>10</comment_count>
      <attachid>50663</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-16 15:27:13 -0700</bug_when>
    <thetext>Comment on attachment 50663
new object attribute - includes layout test

Clearing the review? flag. Xan pointed out how my list iteration could be done better. (Thanks!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200918</commentid>
    <comment_count>11</comment_count>
      <attachid>50943</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-17 12:59:47 -0700</bug_when>
    <thetext>Created attachment 50943
new object attribute - includes layout test

Hopefully this is the right way to do things. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223359</commentid>
    <comment_count>12</comment_count>
      <attachid>50943</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-05-10 09:45:23 -0700</bug_when>
    <thetext>Comment on attachment 50943
new object attribute - includes layout test

Thanks, this looks great now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223371</commentid>
    <comment_count>13</comment_count>
      <attachid>50943</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-10 10:04:37 -0700</bug_when>
    <thetext>Comment on attachment 50943
new object attribute - includes layout test

Rejecting patch 50943 from commit-queue.

Unexpected failure when landing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 50943, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
0943&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=30500&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Processing patch 50943 from bug 30500.
NOBODY (OOPS!) found in /Users/eseidel/Projects/CommitQueue/LayoutTests/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /Users/eseidel/Projects/CommitQueue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223376</commentid>
    <comment_count>14</comment_count>
      <attachid>50943</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-05-10 10:11:15 -0700</bug_when>
    <thetext>Comment on attachment 50943
new object attribute - includes layout test

Pretty please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223387</commentid>
    <comment_count>15</comment_count>
      <attachid>50943</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-10 10:28:12 -0700</bug_when>
    <thetext>Comment on attachment 50943
new object attribute - includes layout test

Rejecting patch 50943 from commit-queue.

Unexpected failure when landing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 50943, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
0943&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=30500&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Processing patch 50943 from bug 30500.
NOBODY (OOPS!) found in /Users/eseidel/Projects/CommitQueue/LayoutTests/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /Users/eseidel/Projects/CommitQueue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225928</commentid>
    <comment_count>16</comment_count>
      <attachid>50943</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-05-14 11:45:21 -0700</bug_when>
    <thetext>Comment on attachment 50943
new object attribute - includes layout test

Try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226207</commentid>
    <comment_count>17</comment_count>
      <attachid>50943</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-15 02:56:02 -0700</bug_when>
    <thetext>Comment on attachment 50943
new object attribute - includes layout test

Clearing flags on attachment: 50943

Committed r59532: &lt;http://trac.webkit.org/changeset/59532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226208</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-15 02:56:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226221</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-15 04:09:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59532 might have broken GTK Linux 32-bit Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/59530
http://trac.webkit.org/changeset/59531
http://trac.webkit.org/changeset/59532
http://trac.webkit.org/changeset/59533</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226246</commentid>
    <comment_count>20</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-05-15 07:24:36 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; http://trac.webkit.org/changeset/59532 might have broken GTK Linux 32-bit Release
&gt; The following changes are on the blame list:
&gt; http://trac.webkit.org/changeset/59530
&gt; http://trac.webkit.org/changeset/59531
&gt; http://trac.webkit.org/changeset/59532
&gt; http://trac.webkit.org/changeset/59533

Maybe.... But I doubt it. 

* This change adds an attribute onto the AtkObject

* (To my knowledge) none of our existing tests were checking object attributes, so this isn&apos;t introducing anything new which might break a test.

* This change implements a previously-unimplemented function in our DRT

* (To my knowledge) none of our existing tests were calling that function because it wasn&apos;t implemented. :-)

Having said that, I&apos;ve been known to be wrong before. If it&apos;s my fault, let me know.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50663</attachid>
            <date>2010-03-13 15:14:12 -0800</date>
            <delta_ts>2010-03-17 12:59:47 -0700</delta_ts>
            <desc>new object attribute - includes layout test</desc>
            <filename>30500.patch</filename>
            <type>text/plain</type>
            <size>10934</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSAwOWZiNmQxODk5ODYxOThjNmNhM2FkYTA3MDk4YWQzYzM3OTNkMzdlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+
CkRhdGU6IFNhdCwgMTMgTWFyIDIwMTAgMTg6MDU6MTAgLTA1MDAKU3ViamVjdDogW1BBVENIXSAy
MDEwLTAzLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgoK
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTAwCiAgICAgICAgW0d0a10gRmluZCBhIHdh
eSBmb3IgV2ViS2l0IHRvICJhbm5vdW5jZSIgaXRzZWxmIHNvIHRoYXQgQVRzIGNhbiByZWFkaWx5
IGRpc3Rpbmd1aXNoIGl0IGZyb20gdHJ1ZSBHdGsrL0dhaWwKCiAgICAgICAgVGhlICJhbm5vdW5j
ZW1lbnQiIGlzIG5vdyBtYWRlIGluIHRoZSBmb3JtIG9mIGFuIG9iamVjdCBhdHRyaWJ1dGUKICAg
ICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIEF0a09iamVjdC4KCiAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9vYmplY3QtYXR0cmlidXRlcy5odG1sOiBBZGRlZC4KICAgICAgICAq
IHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCgoyMDEwLTAzLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NA
Z21haWwuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTAwCiAgICAgICAgW0d0
a10gRmluZCBhIHdheSBmb3IgV2ViS2l0IHRvICJhbm5vdW5jZSIgaXRzZWxmIHNvIHRoYXQgQVRz
IGNhbiByZWFkaWx5IGRpc3Rpbmd1aXNoIGl0IGZyb20gdHJ1ZSBHdGsrL0dhaWwKCiAgICAgICAg
VGhlICJhbm5vdW5jZW1lbnQiIGlzIG5vdyBtYWRlIGluIHRoZSBmb3JtIG9mIGFuIG9iamVjdCBh
dHRyaWJ1dGUKICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIEF0a09iamVjdC4KCiAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CiAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMpOgogICAgICAgIChhdHRy
aWJ1dGVTZXRUb1N0cmluZyk6CgoyMDEwLTAzLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFy
aWUuZGlnZ3NAZ21haWwuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTAwCiAg
ICAgICAgW0d0a10gRmluZCBhIHdheSBmb3IgV2ViS2l0IHRvICJhbm5vdW5jZSIgaXRzZWxmIHNv
IHRoYXQgQVRzIGNhbiByZWFkaWx5IGRpc3Rpbmd1aXNoIGl0IGZyb20gdHJ1ZSBHdGsrL0dhaWwK
CiAgICAgICAgVGhlICJhbm5vdW5jZW1lbnQiIGlzIG5vdyBtYWRlIGluIHRoZSBmb3JtIG9mIGFu
IG9iamVjdCBhdHRyaWJ1dGUKICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIEF0a09iamVjdC4K
CiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0
ay5jcHA6CiAgICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX2dldF9hdHRyaWJ1dGVzKToKLS0tCiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMg
KysrKwogLi4uL2FjY2Vzc2liaWxpdHkvb2JqZWN0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0ICAg
fCAgIDUwICsrKysrKysrKysrKysrKwogLi4uL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1hdHRy
aWJ1dGVzLmh0bWwgICAgICAgfCAgIDY3ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogLi4u
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgICAgICAgICAgfCAgICAyICsK
IFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NCArKysrCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwICAgICAgICAgICAg
ICB8ICAgMTcgKysrKystCiA3IGZpbGVzIGNoYW5nZWQsIDE3NCBpbnNlcnRpb25zKCspLCAyIGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L29iamVjdC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1hdHRy
aWJ1dGVzLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTEwYzM5Yy4uYmMyOTQwOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEwLTAzLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwMAorICAgICAgICBbR3Rr
XSBGaW5kIGEgd2F5IGZvciBXZWJLaXQgdG8gImFubm91bmNlIiBpdHNlbGYgc28gdGhhdCBBVHMg
Y2FuIHJlYWRpbHkgZGlzdGluZ3Vpc2ggaXQgZnJvbSB0cnVlIEd0aysvR2FpbAorCisgICAgICAg
IFRoZSAiYW5ub3VuY2VtZW50IiBpcyBub3cgbWFkZSBpbiB0aGUgZm9ybSBvZiBhbiBvYmplY3Qg
YXR0cmlidXRlCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgQXRrT2JqZWN0LgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvb2JqZWN0LWF0dHJpYnV0ZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvb2JqZWN0LWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0wMy0xMiAgU2h1IENoYW5nICA8Y2hh
bmcuc2h1QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L29iamVjdC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zY2QzMzBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvb2JqZWN0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNTAgQEAKK0hlYWRpbmcgTGV2ZWwgMQorCitIZWFkaW5nIExldmVsIDIKKwor
SGVhZGluZyBMZXZlbCAzCisKK0hlYWRpbmcgTGV2ZWwgNAorCitIZWFkaW5nIExldmVsIDUKKwor
SGVhZGluZyBMZXZlbCA2CisKK0xpbmsKK2ZvbwliYXIKK09kZAlFdmVuCisxCisKKzIKKworMwor
Cis0CisKK1RoaXMgdGVzdHMgdGhlIGV4cG9zdXJlIG9mIEF0ayBvYmplY3QgYXR0cmlidXRlcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVh
ZGluZycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDoxLCB0b29sa2l0Oldl
YktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVhZGluZycKK1BBU1MgY2hpbGQuYWxsQXR0
cmlidXRlcygpIGlzICdsZXZlbDoyLCB0b29sa2l0OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9s
ZSBpcyAnaGVhZGluZycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDozLCB0
b29sa2l0OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVhZGluZycKK1BBU1MgY2hp
bGQuYWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDo0LCB0b29sa2l0OldlYktpdEd0aycKK1BBU1Mg
Y2hpbGQucm9sZSBpcyAnaGVhZGluZycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICds
ZXZlbDo1LCB0b29sa2l0OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVhZGluZycK
K1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDo2LCB0b29sa2l0OldlYktpdEd0
aycKK1BBU1MgY2hpbGQucm9sZSBpcyAnbGluaycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygp
IGlzICd0b29sa2l0OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAndGFibGUnCitQQVNT
IGNoaWxkLmFsbEF0dHJpYnV0ZXMoKSBpcyAndG9vbGtpdDpXZWJLaXRHdGsnCitQQVNTIGNoaWxk
LnJvbGUgaXMgJ3RhYmxlJworUEFTUyBjaGlsZC5hbGxBdHRyaWJ1dGVzKCkgaXMgJ3Rvb2xraXQ6
V2ViS2l0R3RrJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L29iamVjdC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNz
aWJpbGl0eS9vYmplY3QtYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjk0NWJjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvYWNjZXNzaWJpbGl0eS9vYmplY3QtYXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsNjcg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gZmFsc2U7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+
Cis8aDE+SGVhZGluZyBMZXZlbCAxPC9oMT4KKzxoMj5IZWFkaW5nIExldmVsIDI8L2gyPgorPGgz
PkhlYWRpbmcgTGV2ZWwgMzwvaDM+Cis8aDQ+SGVhZGluZyBMZXZlbCA0PC9oND4KKzxoNT5IZWFk
aW5nIExldmVsIDU8L2g1PgorPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+Cis8YSBocmVmPSJmb28u
aHRtbCI+TGluazwvYT4KKzx0YWJsZT4KKzx0cj48dGQ+Zm9vPC90ZD48dGQ+YmFyPC90ZD48L3Ry
PgorPC90YWJsZT4KKzx0YWJsZT4KKzx0YWJsZSBib3JkZXI9MT4KKzx0cj48dGg+T2RkPC90aD48
dGg+RXZlbjwvdGg+PC90cj4KKzx0cj48dGQ+PHA+MTwvcD48L3RkPjx0ZD48cD4yPC9wPjwvdGQ+
PC90cj4KKzx0cj48dGQ+PHA+MzwvcD48L3RkPjx0ZD48cD40PC9wPjwvdGQ+PC90cj4KKzwvdGFi
bGU+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgZXhwb3N1cmUgb2YgQXRr
IG9iamVjdCBhdHRyaWJ1dGVzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisgICAgICAgIHZh
ciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAg
ICAgIHZhciBjaGlsZCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDApOworICAgICAgICBzaG91bGRC
ZSgiY2hpbGQucm9sZSIsICInaGVhZGluZyciKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLmFs
bEF0dHJpYnV0ZXMoKSIsICInbGV2ZWw6MSwgdG9vbGtpdDpXZWJLaXRHdGsnIik7CisgICAgICAg
IGNoaWxkID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMSk7CisgICAgICAgIHNob3VsZEJlKCJjaGls
ZC5yb2xlIiwgIidoZWFkaW5nJyIpOworICAgICAgICBzaG91bGRCZSgiY2hpbGQuYWxsQXR0cmli
dXRlcygpIiwgIidsZXZlbDoyLCB0b29sa2l0OldlYktpdEd0ayciKTsKKyAgICAgICAgY2hpbGQg
PSB3ZWJBcmVhLmNoaWxkQXRJbmRleCgyKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLnJvbGUi
LCAiJ2hlYWRpbmcnIik7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5hbGxBdHRyaWJ1dGVzKCki
LCAiJ2xldmVsOjMsIHRvb2xraXQ6V2ViS2l0R3RrJyIpOworICAgICAgICBjaGlsZCA9IHdlYkFy
ZWEuY2hpbGRBdEluZGV4KDMpOworICAgICAgICBzaG91bGRCZSgiY2hpbGQucm9sZSIsICInaGVh
ZGluZyciKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLmFsbEF0dHJpYnV0ZXMoKSIsICInbGV2
ZWw6NCwgdG9vbGtpdDpXZWJLaXRHdGsnIik7CisgICAgICAgIGNoaWxkID0gd2ViQXJlYS5jaGls
ZEF0SW5kZXgoNCk7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5yb2xlIiwgIidoZWFkaW5nJyIp
OworICAgICAgICBzaG91bGRCZSgiY2hpbGQuYWxsQXR0cmlidXRlcygpIiwgIidsZXZlbDo1LCB0
b29sa2l0OldlYktpdEd0ayciKTsKKyAgICAgICAgY2hpbGQgPSB3ZWJBcmVhLmNoaWxkQXRJbmRl
eCg1KTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLnJvbGUiLCAiJ2hlYWRpbmcnIik7CisgICAg
ICAgIHNob3VsZEJlKCJjaGlsZC5hbGxBdHRyaWJ1dGVzKCkiLCAiJ2xldmVsOjYsIHRvb2xraXQ6
V2ViS2l0R3RrJyIpOworICAgICAgICBjaGlsZCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDYpOwor
ICAgICAgICBzaG91bGRCZSgiY2hpbGQucm9sZSIsICInbGluayciKTsKKyAgICAgICAgc2hvdWxk
QmUoImNoaWxkLmFsbEF0dHJpYnV0ZXMoKSIsICIndG9vbGtpdDpXZWJLaXRHdGsnIik7CisgICAg
ICAgIGNoaWxkID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoNyk7CisgICAgICAgIHNob3VsZEJlKCJj
aGlsZC5yb2xlIiwgIid0YWJsZSciKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLmFsbEF0dHJp
YnV0ZXMoKSIsICIndG9vbGtpdDpXZWJLaXRHdGsnIik7CisgICAgICAgIGNoaWxkID0gd2ViQXJl
YS5jaGlsZEF0SW5kZXgoOCk7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5yb2xlIiwgIid0YWJs
ZSciKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLmFsbEF0dHJpYnV0ZXMoKSIsICIndG9vbGtp
dDpXZWJLaXRHdGsnIik7CisgICAgfQorICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZGYwNGI1Li41MzI2ZGQ2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEwLTAzLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGln
Z3NAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwMAorICAg
ICAgICBbR3RrXSBGaW5kIGEgd2F5IGZvciBXZWJLaXQgdG8gImFubm91bmNlIiBpdHNlbGYgc28g
dGhhdCBBVHMgY2FuIHJlYWRpbHkgZGlzdGluZ3Vpc2ggaXQgZnJvbSB0cnVlIEd0aysvR2FpbAor
CisgICAgICAgIFRoZSAiYW5ub3VuY2VtZW50IiBpcyBub3cgbWFkZSBpbiB0aGUgZm9ybSBvZiBh
biBvYmplY3QgYXR0cmlidXRlCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgQXRrT2JqZWN0
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJBdGsuY3BwOgorICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X2F0dHJpYnV0ZXMpOgor
CiAyMDEwLTAzLTEzICBLaW0gR3LDtm5ob2xtICA8a2ltLmdyb25ob2xtQG5vbW92b2suY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQXRrLmNwcAppbmRleCBjNWJjMDFkLi5lYjU5M2EzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRr
LmNwcApAQCAtMzI4LDYgKzMyOCw4IEBAIHN0YXRpYyBBdGtBdHRyaWJ1dGVTZXQqIHdlYmtpdF9h
Y2Nlc3NpYmxlX2dldF9hdHRyaWJ1dGVzKEF0a09iamVjdCogb2JqZWN0KQogewogICAgIEF0a0F0
dHJpYnV0ZVNldCogYXR0cmlidXRlU2V0ID0gMDsKIAorICAgIGF0dHJpYnV0ZVNldCA9IGFkZEF0
dHJpYnV0ZVRvU2V0KGF0dHJpYnV0ZVNldCwgInRvb2xraXQiLCAiV2ViS2l0R3RrIik7CisKICAg
ICBpbnQgaGVhZGluZ0xldmVsID0gY29yZShvYmplY3QpLT5oZWFkaW5nTGV2ZWwoKTsKICAgICBp
ZiAoaGVhZGluZ0xldmVsKSB7CiAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFN0cmluZzo6bnVtYmVy
KGhlYWRpbmdMZXZlbCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKaW5kZXggYzM2NzgxZC4uMDgwNDJjZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEwLTAzLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21h
aWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwMAorICAgICAgICBb
R3RrXSBGaW5kIGEgd2F5IGZvciBXZWJLaXQgdG8gImFubm91bmNlIiBpdHNlbGYgc28gdGhhdCBB
VHMgY2FuIHJlYWRpbHkgZGlzdGluZ3Vpc2ggaXQgZnJvbSB0cnVlIEd0aysvR2FpbAorCisgICAg
ICAgIFRoZSAiYW5ub3VuY2VtZW50IiBpcyBub3cgbWFkZSBpbiB0aGUgZm9ybSBvZiBhbiBvYmpl
Y3QgYXR0cmlidXRlCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgQXRrT2JqZWN0LgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3Bw
OgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQXR0cmlidXRlcyk6CisgICAg
ICAgIChhdHRyaWJ1dGVTZXRUb1N0cmluZyk6CisKIDIwMTAtMDMtMTIgIFJvYmVydCBIb2dhbiAg
PHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEd0ay5jcHAKaW5kZXggMTExOTM2Zi4uZTRiYzYzOCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50R3RrLmNwcApAQCAtMTIwLDEwICsxMjAsMjMgQEAgdW5zaWduZWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQp
CiAgICAgcmV0dXJuIDA7CiB9CiAKK2djaGFyKiBhdHRyaWJ1dGVTZXRUb1N0cmluZyhBdGtBdHRy
aWJ1dGVTZXQqIGF0dHJpYnV0ZVNldCkKK3sKKyAgICBHU3RyaW5nKiBzdHIgPSBnX3N0cmluZ19u
ZXcoMCk7CisgICAgZ2ludCBsZW5ndGggPSBnX3NsaXN0X2xlbmd0aChhdHRyaWJ1dGVTZXQpOwor
ICAgIGZvciAoaW50IGk7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBBdGtBdHRyaWJ1dGUq
IGF0dHJpYnV0ZSA9IHN0YXRpY19jYXN0PEF0a0F0dHJpYnV0ZSo+KGdfc2xpc3RfbnRoX2RhdGEo
YXR0cmlidXRlU2V0LCBpKSk7CisgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsIGdfc3RyY29u
Y2F0KGF0dHJpYnV0ZS0+bmFtZSwgIjoiLCBhdHRyaWJ1dGUtPnZhbHVlLCBOVUxMKSk7CisgICAg
ICAgIGlmIChpIDwgbGVuZ3RoIC0gMSkKKyAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChzdHIs
ICIsICIpOworICAgIH0KKworICAgIHJldHVybiBnX3N0cmluZ19mcmVlKHN0ciwgRkFMU0UpOwor
fQorCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzKCkK
IHsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0
aENoYXJhY3RlcnMoMCwgMCk7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGF0dHJpYnV0ZVNldFRvU3RyaW5nKGF0a19vYmplY3RfZ2V0X2F0dHJpYnV0ZXMoQVRLX09C
SkVDVChtX2VsZW1lbnQpKSkpOwogfQogCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzKCkKLS0gCjEuNy4wCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50943</attachid>
            <date>2010-03-17 12:59:47 -0700</date>
            <delta_ts>2010-05-15 02:56:02 -0700</delta_ts>
            <desc>new object attribute - includes layout test</desc>
            <filename>30500-1.patch</filename>
            <type>text/plain</type>
            <size>10892</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSBmYjFlMjQ3MjU3OWMxNzdiNDI0YmM0ZGIzZTBjZDEyNzAwNjI3OTg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+
CkRhdGU6IFdlZCwgMTcgTWFyIDIwMTAgMTU6NDA6MTcgLTA0MDAKU3ViamVjdDogW1BBVENIXSAy
MDEwLTAzLTE3ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgoK
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTAwCiAgICAgICAgW0d0a10gRmluZCBhIHdh
eSBmb3IgV2ViS2l0IHRvICJhbm5vdW5jZSIgaXRzZWxmIHNvIHRoYXQgQVRzIGNhbiByZWFkaWx5
IGRpc3Rpbmd1aXNoIGl0IGZyb20gdHJ1ZSBHdGsvR2FpbAoKICAgICAgICBUaGUgImFubm91bmNl
bWVudCIgaXMgbm93IG1hZGUgaW4gdGhlIGZvcm0gb2YgYW4gb2JqZWN0IGF0dHJpYnV0ZQogICAg
ICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgQXRrT2JqZWN0LgoKICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKICAgICAgICAod2Via2l0
X2FjY2Vzc2libGVfZ2V0X2F0dHJpYnV0ZXMpOgoKMjAxMC0wMy0xNyAgSm9hbm1hcmllIERpZ2dz
ICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMDUwMAogICAgICAgIFtHdGtdIEZpbmQgYSB3YXkgZm9yIFdlYktpdCB0byAiYW5ub3VuY2Ui
IGl0c2VsZiBzbyB0aGF0IEFUcyBjYW4gcmVhZGlseSBkaXN0aW5ndWlzaCBpdCBmcm9tIHRydWUg
R3RrL0dhaWwKCiAgICAgICAgVGhlICJhbm5vdW5jZW1lbnQiIGlzIG5vdyBtYWRlIGluIHRoZSBm
b3JtIG9mIGFuIG9iamVjdCBhdHRyaWJ1dGUKICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIEF0
a09iamVjdC4KCiAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudEd0ay5jcHA6CiAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0
ZXMpOgogICAgICAgIChhdHRyaWJ1dGVTZXRUb1N0cmluZyk6CgoyMDEwLTAzLTE3ICBKb2FubWFy
aWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgoKICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMwNTAwCiAgICAgICAgW0d0a10gRmluZCBhIHdheSBmb3IgV2ViS2l0IHRvICJh
bm5vdW5jZSIgaXRzZWxmIHNvIHRoYXQgQVRzIGNhbiByZWFkaWx5IGRpc3Rpbmd1aXNoIGl0IGZy
b20gdHJ1ZSBHdGsvR2FpbAoKICAgICAgICBUaGUgImFubm91bmNlbWVudCIgaXMgbm93IG1hZGUg
aW4gdGhlIGZvcm0gb2YgYW4gb2JqZWN0IGF0dHJpYnV0ZQogICAgICAgIGFzc29jaWF0ZWQgd2l0
aCB0aGUgQXRrT2JqZWN0LgoKICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29i
amVjdC1hdHRyaWJ1dGVzLmh0bWw6IEFkZGVkLgogICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvb2JqZWN0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KLS0tCiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysr
KwogLi4uL2FjY2Vzc2liaWxpdHkvb2JqZWN0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0ICAgfCAg
IDUwICsrKysrKysrKysrKysrKwogLi4uL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1hdHRyaWJ1
dGVzLmh0bWwgICAgICAgfCAgIDY3ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogLi4uL2d0
ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgICAgICAgICAgfCAgICAyICsKIFdl
YktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCAr
KysrCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwICAgICAgICAgICAgICB8
ICAgMTcgKysrKystCiA3IGZpbGVzIGNoYW5nZWQsIDE3NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0
aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L29iamVjdC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1hdHRyaWJ1
dGVzLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMjMxMDEzMC4uMmRjZmVmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEwLTAzLTE3ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwMAorICAgICAgICBbR3RrXSBG
aW5kIGEgd2F5IGZvciBXZWJLaXQgdG8gImFubm91bmNlIiBpdHNlbGYgc28gdGhhdCBBVHMgY2Fu
IHJlYWRpbHkgZGlzdGluZ3Vpc2ggaXQgZnJvbSB0cnVlIEd0ay9HYWlsCisKKyAgICAgICAgVGhl
ICJhbm5vdW5jZW1lbnQiIGlzIG5vdyBtYWRlIGluIHRoZSBmb3JtIG9mIGFuIG9iamVjdCBhdHRy
aWJ1dGUKKyAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBBdGtPYmplY3QuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9vYmplY3QtYXR0cmlidXRlcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9vYmplY3QtYXR0cmlidXRl
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTAzLTE1ICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVj
dC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zY2QzMzBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvb2JqZWN0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NTAgQEAKK0hlYWRpbmcgTGV2ZWwgMQorCitIZWFkaW5nIExldmVsIDIKKworSGVhZGluZyBMZXZl
bCAzCisKK0hlYWRpbmcgTGV2ZWwgNAorCitIZWFkaW5nIExldmVsIDUKKworSGVhZGluZyBMZXZl
bCA2CisKK0xpbmsKK2ZvbwliYXIKK09kZAlFdmVuCisxCisKKzIKKworMworCis0CisKK1RoaXMg
dGVzdHMgdGhlIGV4cG9zdXJlIG9mIEF0ayBvYmplY3QgYXR0cmlidXRlcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVhZGluZycKK1BBU1Mg
Y2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDoxLCB0b29sa2l0OldlYktpdEd0aycKK1BB
U1MgY2hpbGQucm9sZSBpcyAnaGVhZGluZycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlz
ICdsZXZlbDoyLCB0b29sa2l0OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVhZGlu
ZycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDozLCB0b29sa2l0OldlYktp
dEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVhZGluZycKK1BBU1MgY2hpbGQuYWxsQXR0cmli
dXRlcygpIGlzICdsZXZlbDo0LCB0b29sa2l0OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBp
cyAnaGVhZGluZycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDo1LCB0b29s
a2l0OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAnaGVhZGluZycKK1BBU1MgY2hpbGQu
YWxsQXR0cmlidXRlcygpIGlzICdsZXZlbDo2LCB0b29sa2l0OldlYktpdEd0aycKK1BBU1MgY2hp
bGQucm9sZSBpcyAnbGluaycKK1BBU1MgY2hpbGQuYWxsQXR0cmlidXRlcygpIGlzICd0b29sa2l0
OldlYktpdEd0aycKK1BBU1MgY2hpbGQucm9sZSBpcyAndGFibGUnCitQQVNTIGNoaWxkLmFsbEF0
dHJpYnV0ZXMoKSBpcyAndG9vbGtpdDpXZWJLaXRHdGsnCitQQVNTIGNoaWxkLnJvbGUgaXMgJ3Rh
YmxlJworUEFTUyBjaGlsZC5hbGxBdHRyaWJ1dGVzKCkgaXMgJ3Rvb2xraXQ6V2ViS2l0R3RrJwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L29iamVjdC1hdHRy
aWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9vYmpl
Y3QtYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0
NWJjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNz
aWJpbGl0eS9vYmplY3QtYXR0cmlidXRlcy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+Cis8aDE+SGVhZGlu
ZyBMZXZlbCAxPC9oMT4KKzxoMj5IZWFkaW5nIExldmVsIDI8L2gyPgorPGgzPkhlYWRpbmcgTGV2
ZWwgMzwvaDM+Cis8aDQ+SGVhZGluZyBMZXZlbCA0PC9oND4KKzxoNT5IZWFkaW5nIExldmVsIDU8
L2g1PgorPGg2PkhlYWRpbmcgTGV2ZWwgNjwvaDY+Cis8YSBocmVmPSJmb28uaHRtbCI+TGluazwv
YT4KKzx0YWJsZT4KKzx0cj48dGQ+Zm9vPC90ZD48dGQ+YmFyPC90ZD48L3RyPgorPC90YWJsZT4K
Kzx0YWJsZT4KKzx0YWJsZSBib3JkZXI9MT4KKzx0cj48dGg+T2RkPC90aD48dGg+RXZlbjwvdGg+
PC90cj4KKzx0cj48dGQ+PHA+MTwvcD48L3RkPjx0ZD48cD4yPC9wPjwvdGQ+PC90cj4KKzx0cj48
dGQ+PHA+MzwvcD48L3RkPjx0ZD48cD40PC9wPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgZXhwb3N1cmUgb2YgQXRrIG9iamVjdCBhdHRy
aWJ1dGVzLiIpOworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7CisgICAgICAgIHZhciB3ZWJBcmVhID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIHZhciBjaGls
ZCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDApOworICAgICAgICBzaG91bGRCZSgiY2hpbGQucm9s
ZSIsICInaGVhZGluZyciKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLmFsbEF0dHJpYnV0ZXMo
KSIsICInbGV2ZWw6MSwgdG9vbGtpdDpXZWJLaXRHdGsnIik7CisgICAgICAgIGNoaWxkID0gd2Vi
QXJlYS5jaGlsZEF0SW5kZXgoMSk7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5yb2xlIiwgIido
ZWFkaW5nJyIpOworICAgICAgICBzaG91bGRCZSgiY2hpbGQuYWxsQXR0cmlidXRlcygpIiwgIids
ZXZlbDoyLCB0b29sa2l0OldlYktpdEd0ayciKTsKKyAgICAgICAgY2hpbGQgPSB3ZWJBcmVhLmNo
aWxkQXRJbmRleCgyKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLnJvbGUiLCAiJ2hlYWRpbmcn
Iik7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5hbGxBdHRyaWJ1dGVzKCkiLCAiJ2xldmVsOjMs
IHRvb2xraXQ6V2ViS2l0R3RrJyIpOworICAgICAgICBjaGlsZCA9IHdlYkFyZWEuY2hpbGRBdElu
ZGV4KDMpOworICAgICAgICBzaG91bGRCZSgiY2hpbGQucm9sZSIsICInaGVhZGluZyciKTsKKyAg
ICAgICAgc2hvdWxkQmUoImNoaWxkLmFsbEF0dHJpYnV0ZXMoKSIsICInbGV2ZWw6NCwgdG9vbGtp
dDpXZWJLaXRHdGsnIik7CisgICAgICAgIGNoaWxkID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoNCk7
CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5yb2xlIiwgIidoZWFkaW5nJyIpOworICAgICAgICBz
aG91bGRCZSgiY2hpbGQuYWxsQXR0cmlidXRlcygpIiwgIidsZXZlbDo1LCB0b29sa2l0OldlYktp
dEd0ayciKTsKKyAgICAgICAgY2hpbGQgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCg1KTsKKyAgICAg
ICAgc2hvdWxkQmUoImNoaWxkLnJvbGUiLCAiJ2hlYWRpbmcnIik7CisgICAgICAgIHNob3VsZEJl
KCJjaGlsZC5hbGxBdHRyaWJ1dGVzKCkiLCAiJ2xldmVsOjYsIHRvb2xraXQ6V2ViS2l0R3RrJyIp
OworICAgICAgICBjaGlsZCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDYpOworICAgICAgICBzaG91
bGRCZSgiY2hpbGQucm9sZSIsICInbGluayciKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLmFs
bEF0dHJpYnV0ZXMoKSIsICIndG9vbGtpdDpXZWJLaXRHdGsnIik7CisgICAgICAgIGNoaWxkID0g
d2ViQXJlYS5jaGlsZEF0SW5kZXgoNyk7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5yb2xlIiwg
Iid0YWJsZSciKTsKKyAgICAgICAgc2hvdWxkQmUoImNoaWxkLmFsbEF0dHJpYnV0ZXMoKSIsICIn
dG9vbGtpdDpXZWJLaXRHdGsnIik7CisgICAgICAgIGNoaWxkID0gd2ViQXJlYS5jaGlsZEF0SW5k
ZXgoOCk7CisgICAgICAgIHNob3VsZEJlKCJjaGlsZC5yb2xlIiwgIid0YWJsZSciKTsKKyAgICAg
ICAgc2hvdWxkQmUoImNoaWxkLmFsbEF0dHJpYnV0ZXMoKSIsICIndG9vbGtpdDpXZWJLaXRHdGsn
Iik7CisgICAgfQorICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGVmMmI5Li5lNWY5NzhlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEwLTAzLTE3ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDUwMAorICAgICAgICBbR3RrXSBG
aW5kIGEgd2F5IGZvciBXZWJLaXQgdG8gImFubm91bmNlIiBpdHNlbGYgc28gdGhhdCBBVHMgY2Fu
IHJlYWRpbHkgZGlzdGluZ3Vpc2ggaXQgZnJvbSB0cnVlIEd0ay9HYWlsCisKKyAgICAgICAgVGhl
ICJhbm5vdW5jZW1lbnQiIGlzIG5vdyBtYWRlIGluIHRoZSBmb3JtIG9mIGFuIG9iamVjdCBhdHRy
aWJ1dGUKKyAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBBdGtPYmplY3QuCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6Cisg
ICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfYXR0cmlidXRlcyk6CisKIDIwMTAtMDMtMTUg
IExlYW5kcm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IGM1YmMwMWQu
LmViNTkzYTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBAIC0zMjgsNiArMzI4LDggQEAgc3Rh
dGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0X2FjY2Vzc2libGVfZ2V0X2F0dHJpYnV0ZXMoQXRr
T2JqZWN0KiBvYmplY3QpCiB7CiAgICAgQXRrQXR0cmlidXRlU2V0KiBhdHRyaWJ1dGVTZXQgPSAw
OwogCisgICAgYXR0cmlidXRlU2V0ID0gYWRkQXR0cmlidXRlVG9TZXQoYXR0cmlidXRlU2V0LCAi
dG9vbGtpdCIsICJXZWJLaXRHdGsiKTsKKwogICAgIGludCBoZWFkaW5nTGV2ZWwgPSBjb3JlKG9i
amVjdCktPmhlYWRpbmdMZXZlbCgpOwogICAgIGlmIChoZWFkaW5nTGV2ZWwpIHsKICAgICAgICAg
U3RyaW5nIHZhbHVlID0gU3RyaW5nOjpudW1iZXIoaGVhZGluZ0xldmVsKTsKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAyMjU0
YTg4Li4wOGU4ZmE0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDMtMTcgIEpvYW5tYXJp
ZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMwNTAwCisgICAgICAgIFtHdGtdIEZpbmQgYSB3YXkgZm9yIFdlYktpdCB0
byAiYW5ub3VuY2UiIGl0c2VsZiBzbyB0aGF0IEFUcyBjYW4gcmVhZGlseSBkaXN0aW5ndWlzaCBp
dCBmcm9tIHRydWUgR3RrL0dhaWwKKworICAgICAgICBUaGUgImFubm91bmNlbWVudCIgaXMgbm93
IG1hZGUgaW4gdGhlIGZvcm0gb2YgYW4gb2JqZWN0IGF0dHJpYnV0ZQorICAgICAgICBhc3NvY2lh
dGVkIHdpdGggdGhlIEF0a09iamVjdC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmFsbEF0dHJpYnV0ZXMpOgorICAgICAgICAoYXR0cmlidXRlU2V0VG9TdHJpbmcpOgor
CiAyMDEwLTAzLTE1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBsYXlvdXQgdGVzdCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHAgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHAK
aW5kZXggN2FjNTMwOC4uYmQ0YzIzYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcApAQCAtMTIw
LDEwICsxMjAsMjIgQEAgdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNo
aWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAK
K2djaGFyKiBhdHRyaWJ1dGVTZXRUb1N0cmluZyhBdGtBdHRyaWJ1dGVTZXQqIGF0dHJpYnV0ZVNl
dCkKK3sKKyAgICBHU3RyaW5nKiBzdHIgPSBnX3N0cmluZ19uZXcoMCk7CisgICAgZm9yIChHU0xp
c3QqIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVTZXQ7IGF0dHJpYnV0ZXM7IGF0dHJpYnV0ZXMgPSBh
dHRyaWJ1dGVzLT5uZXh0KSB7CisgICAgICAgIEF0a0F0dHJpYnV0ZSogYXR0cmlidXRlID0gc3Rh
dGljX2Nhc3Q8QXRrQXR0cmlidXRlKj4oYXR0cmlidXRlcy0+ZGF0YSk7CisgICAgICAgIGdfc3Ry
aW5nX2FwcGVuZChzdHIsIGdfc3RyY29uY2F0KGF0dHJpYnV0ZS0+bmFtZSwgIjoiLCBhdHRyaWJ1
dGUtPnZhbHVlLCBOVUxMKSk7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLT5uZXh0KQorICAgICAg
ICAgICAgZ19zdHJpbmdfYXBwZW5kKHN0ciwgIiwgIik7CisgICAgfQorCisgICAgcmV0dXJuIGdf
c3RyaW5nX2ZyZWUoc3RyLCBGQUxTRSk7Cit9CisKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQogewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAg
ICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKKyAgICByZXR1cm4g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoYXR0cmlidXRlU2V0VG9TdHJpbmcoYXRrX29i
amVjdF9nZXRfYXR0cmlidXRlcyhBVEtfT0JKRUNUKG1fZWxlbWVudCkpKSk7CiB9CiAKIEpTU3Ry
aW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxlbWVu
dHMoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>