<?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>59030</bug_id>
          
          <creation_ts>2011-04-20 15:57:25 -0700</creation_ts>
          <short_desc>Make WebKit expose extra touch information</short_desc>
          <delta_ts>2011-05-17 13:05:15 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>miletus</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>anicolao</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>miletus</cc>
    
    <cc>mjs</cc>
    
    <cc>rjkroege</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>389586</commentid>
    <comment_count>0</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-04-20 15:57:25 -0700</bug_when>
    <thetext>Some touch devices provide, other than (x,y) location, extra touch information, like the major/minor axis length, and  
the orientation of the touch ellipse. Attached is a proposed patch that routes these extra touch information through
chromium port to WebKit and exposes them to DOM.

WebCore::Touch is augmented with three fields :
m_radius ,  the major axis length of the touch ellipse
m_ratio  ,  the ratio between major and minor axis length of the touch ellipse
m_angle  ,  the orientation of the touch ellipse


The extra touch information is passed in from chromium&apos;s representation of touch event
WebKit::WebTouchPoint and then routed to platform touch event WebKit::PlatformTouchEventBuilder

Touch.idl and Document.idl are modified to expose these extra fields to DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389591</commentid>
    <comment_count>1</comment_count>
      <attachid>90431</attachid>
    <who name="">miletus</who>
    <bug_when>2011-04-20 16:07:36 -0700</bug_when>
    <thetext>Created attachment 90431
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389600</commentid>
    <comment_count>2</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-04-20 16:16:25 -0700</bug_when>
    <thetext>update cc list</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389619</commentid>
    <comment_count>3</comment_count>
      <attachid>90431</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-20 16:33:57 -0700</bug_when>
    <thetext>Comment on attachment 90431
Patch

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

&gt; Source/WebCore/dom/Touch.idl:39
&gt; +        readonly attribute float            radius;

what specification covers these additions?  if none, then shouldn&apos;t
we vendor prefix these to avoid possible collisions in the future
with a formal specification that may define these fields differently?

i confess that i don&apos;t know much about the history of this file.
is there already a spec covering the existing fields?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389858</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-20 22:50:22 -0700</bug_when>
    <thetext>If there is no specification, then adding this code to WebKit even under an #if and even with a vendor prefix shouldn&apos;t be taken lightly.

Also, this patch has style errors that the bot didn&apos;t find.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390217</commentid>
    <comment_count>5</comment_count>
      <attachid>90568</attachid>
    <who name="">miletus</who>
    <bug_when>2011-04-21 11:53:35 -0700</bug_when>
    <thetext>Created attachment 90568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390236</commentid>
    <comment_count>6</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-04-21 12:12:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 90431 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=90431&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Touch.idl:39
&gt; &gt; +        readonly attribute float            radius;
&gt; 
&gt; what specification covers these additions?  if none, then shouldn&apos;t
&gt; we vendor prefix these to avoid possible collisions in the future
&gt; with a formal specification that may define these fields differently?
&gt; 
&gt; i confess that i don&apos;t know much about the history of this file.
&gt; is there already a spec covering the existing fields?

W3C has a Draft of the &quot;Touch Events Specification&quot; at

http://dvcs.w3.org/hg/webevents/raw-file/tip/touchevents.html

It is largely compatible with the touch event interface used in the Safari
DOM model (and the API exposed by WebKit). 

Also the draft is going to add some extra properties for touch point,
including radiusX, radiusY (the X and Y axis of the touch ellipse) and
roatationAngle, which is covered by this patch.

Even Safari/WebKit is not going to follow the draft spec (which is true
currently since the Safari/WebKit DOM model is already there while the 
spec is still being drafted, and also note that Mozilla exposes different
set of API for the touch events), it is still desirable to have the features
to expose these touch information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390238</commentid>
    <comment_count>7</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-04-21 12:13:26 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; If there is no specification, then adding this code to WebKit even under an #if and even with a vendor prefix shouldn&apos;t be taken lightly.
&gt;

Please see the comment #6.

 
&gt; Also, this patch has style errors that the bot didn&apos;t find.

Would you mind pointing me where it is ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390240</commentid>
    <comment_count>8</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-04-21 12:15:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=90568) [details]
&gt; Patch


The extra touch information are changed to comply with the draft spec  

http://dvcs.w3.org/hg/webevents/raw-file/tip/touchevents.html

Now the WebCore::Touch is augmented with 3 fields :

m_radiusX
m_radiusY
m_rotationAngle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390254</commentid>
    <comment_count>9</comment_count>
      <attachid>90568</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-21 12:33:32 -0700</bug_when>
    <thetext>Comment on attachment 90568
Patch

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

I was also going to complain about text alignment (we normally use one space), but those are all pre-exisintg issues in this code.

I don&apos;t object to landing this, given the kind of support there already is for touch events.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

The patch can&apos;t be landed with this line. You should add tests.

&gt; Source/WebKit/chromium/public/WebTouchPoint.h:52
&gt; +        , rotationAngle(0.0) { }

Just &quot;0&quot;, and the braces should go on separate lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392644</commentid>
    <comment_count>10</comment_count>
      <attachid>91147</attachid>
    <who name="">miletus</who>
    <bug_when>2011-04-26 13:02:19 -0700</bug_when>
    <thetext>Created attachment 91147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392646</commentid>
    <comment_count>11</comment_count>
      <attachid>90568</attachid>
    <who name="">miletus</who>
    <bug_when>2011-04-26 13:06:02 -0700</bug_when>
    <thetext>Comment on attachment 90568
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        No new tests. (OOPS!)
&gt; 
&gt; The patch can&apos;t be landed with this line. You should add tests.

done.

&gt;&gt; Source/WebKit/chromium/public/WebTouchPoint.h:52
&gt;&gt; +        , rotationAngle(0.0) { }
&gt; 
&gt; Just &quot;0&quot;, and the braces should go on separate lines.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392647</commentid>
    <comment_count>12</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-04-26 13:06:26 -0700</bug_when>
    <thetext>tests added.

(In reply to comment #10)
&gt; Created an attachment (id=91147) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398053</commentid>
    <comment_count>13</comment_count>
      <attachid>92277</attachid>
    <who name="">miletus</who>
    <bug_when>2011-05-04 10:39:08 -0700</bug_when>
    <thetext>Created attachment 92277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398064</commentid>
    <comment_count>14</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-05-04 10:48:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=92277) [details]
&gt; Patch

prefix the three fields of WebCore::Touch

radiusX
radiusY
rotationAngle

to be 

webkitRadiusX
webkitRadiusY
webkitRotationAngle

for now and will change to the standard name when the draft 

http://dvcs.w3.org/hg/webevents/raw-file/tip/touchevents.html#idl-def-Touch

is approved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398548</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-05-04 22:18:14 -0700</bug_when>
    <thetext>Well, hmm...

It looks like that spec also covers the other pre-existing fields of Touch.  It looks like the spec is co-edited by folks from Mozilla and Opera.  Do you know the state of their implementations?  Have they vendor prefixed these fields?  Have they been shipping these fields for some time already?

Comment #6 makes me concerned that there may be considerable divergence between the browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398878</commentid>
    <comment_count>16</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-05-05 11:43:31 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Well, hmm...
&gt; 
&gt; It looks like that spec also covers the other pre-existing fields of Touch.  It looks like the spec is co-edited by folks from Mozilla and Opera.  Do you know the state of their implementations?  Have they vendor prefixed these fields?  Have they been shipping these fields for some time already?
&gt; 
&gt; Comment #6 makes me concerned that there may be considerable divergence between the browsers.


According to this thread

http://lists.w3.org/Archives/Public/public-webevents/2011AprJun/0083.html

Matt Brubeck from Mozilla, also one of the editors of the draft, has an
experimental implementation in the nightly build of mobile Firefox.

Also Mozilla has vendor prefixed MozTouchEvent and related APIs which are
not compatible with WebKit.

Opera&apos;s implementation is based on iphone (and so the same as WebKit)

The draft is based on WebKit&apos;s implementation but some divergence is 
developing.

As for the radius and angle information, since they are now available
from many touch devices, it is good to expose them to web developers.
And as the draft is still evolving, vendor-prefixing the fields seems the
safe way to go for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405167</commentid>
    <comment_count>17</comment_count>
    <who name="">miletus</who>
    <bug_when>2011-05-17 11:00:38 -0700</bug_when>
    <thetext>Hi Darin,

more thoughts on this patch ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405202</commentid>
    <comment_count>18</comment_count>
      <attachid>92277</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-05-17 11:42:31 -0700</bug_when>
    <thetext>Comment on attachment 92277
Patch

Agreed.  Sorry for the high latency here.  I was out on vacation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405253</commentid>
    <comment_count>19</comment_count>
      <attachid>92277</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-17 13:05:09 -0700</bug_when>
    <thetext>Comment on attachment 92277
Patch

Clearing flags on attachment: 92277

Committed r86700: &lt;http://trac.webkit.org/changeset/86700&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405254</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-17 13:05:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90431</attachid>
            <date>2011-04-20 16:07:36 -0700</date>
            <delta_ts>2011-04-21 11:53:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59030-20110420190735.patch</filename>
            <type>text/plain</type>
            <size>11931</size>
            <attacher>miletus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ0MTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4Nzk0NGY5ODc5NDlhYzQy
OGM1NjljMTBmMWVjNzNiMmQ5YzQxYzE0Li43MzQwNWQxNzYzNTI2MDc4ZDM2MjU2NGU0YjliNzFi
MDJkNzZlNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDQtMjAgIFl1ZmVu
ZyBTaGVuICA8bWlsZXR1c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXZWJLaXQgZXhwb3NlIGV4dHJhIHRvdWNoIGlu
Zm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01OTAzMAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVUb3VjaCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoK
KyAgICAgICAgKiBkb20vVG91Y2guY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2g6OlRvdWNo
KToKKyAgICAgICAgKiBkb20vVG91Y2guaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2g6OnJhZGl1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpUb3VjaDo6YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2g6OnJhdGlvKToKKyAgICAg
ICAgKiBkb20vVG91Y2guaWRsOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAg
ICogcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNo
UG9pbnQ6OmFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hQb2ludDo6cmF0
aW8pOgorCiAyMDExLTA0LTIwICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggM2VkZGJlZjk0ODJiYmFjMzdhNWM3MGQ3ZTJlMmI5YmJlODQ4MDY4My4uZjViNWFhMTQxNWZl
ZmZkNzEzOTIyNjNhZDJmMzYwZmZlYjA3ZjVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC00OTYxLDcgKzQ5NjEsNyBAQCB2b2lkIERvY3VtZW50OjpzZXJ2aWNlU2NyaXB0ZWRBbmltYXRp
b25zKERPTVRpbWVTdGFtcCB0aW1lKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotUGFzc1JlZlB0cjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoKERPTVdpbmRvdyogd2lu
ZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQg
cGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0CitQ
YXNzUmVmUHRyPFRvdWNoPiBEb2N1bWVudDo6Y3JlYXRlVG91Y2goRE9NV2luZG93KiB3aW5kb3cs
IEV2ZW50VGFyZ2V0KiB0YXJnZXQsIGludCBpZGVudGlmaWVyLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBmbG9hdCByYWRpdXMsIGZsb2F0IGFuZ2xlLCBm
bG9hdCByYXRpbywgRXhjZXB0aW9uQ29kZSYpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IEl0J3Mg
bm90IGNsZWFyIGZyb20gdGhlIGRvY3VtZW50YXRpb24gYXQKICAgICAvLyBodHRwOi8vZGV2ZWxv
cGVyLmFwcGxlLmNvbS9saWJyYXJ5L3NhZmFyaS8jZG9jdW1lbnRhdGlvbi9Vc2VyRXhwZXJpZW5j
ZS9SZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlvbnNSZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlvbnMv
RG9jdW1lbnRBZGRpdGlvbnMuaHRtbApAQCAtNDk2OSw3ICs0OTY5LDcgQEAgUGFzc1JlZlB0cjxU
b3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoKERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdl
dCogdGFyZ2V0LAogICAgIC8vIGFuZCBpbXBsZW1lbnQgdGhlbSBoZXJlLiBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3ODE5CiAgICAgLy8gRGl0dG8gZm9yIHRo
ZSBjcmVhdGVUb3VjaExpc3QgbWV0aG9kIGJlbG93LgogICAgIEZyYW1lKiBmcmFtZSA9IHdpbmRv
dyA/IHdpbmRvdy0+ZnJhbWUoKSA6IHRoaXMtPmZyYW1lKCk7Ci0gICAgcmV0dXJuIFRvdWNoOjpj
cmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgs
IHBhZ2VZKTsKKyAgICByZXR1cm4gVG91Y2g6OmNyZWF0ZShmcmFtZSwgdGFyZ2V0LCBpZGVudGlm
aWVyLCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVksIHJhZGl1cywgYW5nbGUsIHJhdGlv
KTsKIH0KIAogUGFzc1JlZlB0cjxUb3VjaExpc3Q+IERvY3VtZW50OjpjcmVhdGVUb3VjaExpc3Qo
RXhjZXB0aW9uQ29kZSYpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc5ZWVlY2U3MGEw
YWFkNzQwM2YyMjRjY2ZkMTIxMThlZjNkZTRmYWIuLjI3YjRkNmUyMTZmYTk4OTc5N2VjOWY1NzY4
YmI2NzViZmVkYzIyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDcwLDcgKzEwNzAsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlbGF5aW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9sb2FkRXZlbnREZWxheUNvdW50OyB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAg
IFBhc3NSZWZQdHI8VG91Y2g+IGNyZWF0ZVRvdWNoKERPTVdpbmRvdyosIEV2ZW50VGFyZ2V0Kiwg
aW50IGlkZW50aWZpZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNj
cmVlblksIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFRvdWNoPiBjcmVh
dGVUb3VjaChET01XaW5kb3cqLCBFdmVudFRhcmdldCosIGludCBpZGVudGlmaWVyLCBpbnQgcGFn
ZVgsIGludCBwYWdlWSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBmbG9hdCByYWRpdXMsIGZs
b2F0IGFuZ2xlLCBmbG9hdCByYXRpbywgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIFBhc3NS
ZWZQdHI8VG91Y2hMaXN0PiBjcmVhdGVUb3VjaExpc3QoRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IGNmODIwYmE5YzA2MWVjMDE4OGYx
OGI2NDFlYmUwMWM1MWQ0Y2RhOTkuLjUzNWY3YzUxZjM4YzZjM2FkMjFkN2RkMWU1NjgyN2EyZDkz
ZWZmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMzMwLDcgKzMzMCwxMCBAQCBtb2R1
bGUgY29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBsb25nIHBhZ2VYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBwYWdlWSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgU2NyZWVu
WCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGxvbmcgc2NyZWVuWSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgc2NyZWVuWSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGZsb2F0IHJhZGl1cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIGZsb2F0IGFuZ2xlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gZmxvYXQgcmF0aW8xKQogICAgICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOwogICAgICAgICBbUmV0dXJuc05ldywgRW5hYmxlZEF0UnVudGltZSwgQ3Vz
dG9tXSBUb3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KCkKICAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2guY3BwCmluZGV4IGZiYjNmZWRhNDI0YzFkOGFiYjhmMzQ2
YmE5ZjgzMTc0ZmJkNTljMGUuLjRjYjQ0YTEzNzU1NzcwZjY2NjE5OWM5NzNkZmE4Nzk3NTQ3Y2M0
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RvdWNoLmNwcApAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgaW50IGNvbnRl
bnRzWShGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIGZyYW1lVmlldy0+c2Nyb2xsWSgpIC8gZnJh
bWUtPnBhZ2Vab29tRmFjdG9yKCk7CiB9CiAKLVRvdWNoOjpUb3VjaChGcmFtZSogZnJhbWUsIEV2
ZW50VGFyZ2V0KiB0YXJnZXQsIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVkpCitUb3VjaDo6VG91Y2goRnJhbWUqIGZyYW1l
LCBFdmVudFRhcmdldCogdGFyZ2V0LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBpbnQgc2NyZWVuWCwg
aW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLCBmbG9hdCByYWRpdXMsIGZsb2F0IGFu
Z2xlLCBmbG9hdCByYXRpbykKICAgICA6IG1fdGFyZ2V0KHRhcmdldCkKICAgICAsIG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jbGllbnRYKHBhZ2VYIC0gY29udGVudHNYKGZyYW1l
KSkKQEAgLTYyLDYgKzYyLDkgQEAgVG91Y2g6OlRvdWNoKEZyYW1lKiBmcmFtZSwgRXZlbnRUYXJn
ZXQqIHRhcmdldCwgdW5zaWduZWQgaWRlbnRpZmllciwgaW50IHNjcmVlblgKICAgICAsIG1fc2Ny
ZWVuWShzY3JlZW5ZKQogICAgICwgbV9wYWdlWChwYWdlWCkKICAgICAsIG1fcGFnZVkocGFnZVkp
CisgICAgLCBtX3JhZGl1cyhyYWRpdXMpCisgICAgLCBtX2FuZ2xlKGFuZ2xlKQorICAgICwgbV9y
YXRpbyhyYXRpbykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNo
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaAppbmRleCA1NGU4NWE1M2YwMWEwY2NlN2Yy
NGZkNmUzNDBjNmMzN2QxNzg5N2Q2Li5lYTE1NmY3NTllYTExNDRhMDFiZmM3M2E4ZmUxMzVlZmJi
ZWM4OWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVG91Y2guaApAQCAtMzksMTAgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFRvdWNoIDogcHVibGljIFJlZkNvdW50ZWQ8VG91Y2g+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUb3VjaD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgRXZlbnRU
YXJnZXQqIHRhcmdldCwKLSAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVkpCisgICAgICAgICAgICB1bnNp
Z25lZCBpZGVudGlmaWVyLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgICAgICAgICAgZmxvYXQgcmFkaXVzLCBmbG9hdCBhbmdsZSwgZmxvYXQgcmF0
aW8pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRvdWNoKGZyYW1lLCB0YXJn
ZXQsIGlkZW50aWZpZXIsIHNjcmVlblgsIAotICAgICAgICAgICAgICAgIHNjcmVlblksIHBhZ2VY
LCBwYWdlWSkpOworICAgICAgICAgICAgICAgIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwgcmFkaXVz
LCBhbmdsZSwgcmF0aW8pKTsKICAgICB9CiAKICAgICBFdmVudFRhcmdldCogdGFyZ2V0KCkgY29u
c3QgeyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0KQEAgLTUzLDEwICs1NCwxNCBAQCBwdWJsaWM6
CiAgICAgaW50IHNjcmVlblkoKSBjb25zdCB7IHJldHVybiBtX3NjcmVlblk7IH0KICAgICBpbnQg
cGFnZVgoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VYOyB9CiAgICAgaW50IHBhZ2VZKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlWTsgfQorICAgIGZsb2F0IHJhZGl1cygpIGNvbnN0IHsgcmV0dXJuIG1f
cmFkaXVzOyB9CisgICAgZmxvYXQgYW5nbGUoKSBjb25zdCB7IHJldHVybiBtX2FuZ2xlOyB9Cisg
ICAgZmxvYXQgcmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3JhdGlvOyB9CiAKIHByaXZhdGU6CiAg
ICAgVG91Y2goRnJhbWUqIGZyYW1lLCBFdmVudFRhcmdldCogdGFyZ2V0LCB1bnNpZ25lZCBpZGVu
dGlmaWVyLAotICAgICAgICAgICAgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgs
IGludCBwYWdlWSk7CisgICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBw
YWdlWCwgaW50IHBhZ2VZLAorICAgICAgICAgICAgZmxvYXQgcmFkaXVzLCBmbG9hdCBhbmdsZSwg
ZmxvYXQgcmF0aW8pOwogCiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKICAgICB1
bnNpZ25lZCBtX2lkZW50aWZpZXI7CkBAIC02Niw2ICs3MSw5IEBAIHByaXZhdGU6CiAgICAgaW50
IG1fc2NyZWVuWTsKICAgICBpbnQgbV9wYWdlWDsKICAgICBpbnQgbV9wYWdlWTsKKyAgICBmbG9h
dCBtX3JhZGl1czsKKyAgICBmbG9hdCBtX2FuZ2xlOworICAgIGZsb2F0IG1fcmF0aW87CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VG91Y2guaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmlkbAppbmRleCAxYWZjNjNhYjQ5
NTRiNWU3YTU1YjkzYjZlZjZhNGRiNjc0NzgwYTYwLi5hMWRjNmE2ZDBjOTE5MTI1Mjc4OWMzYzdj
ODFkYWYxNjE3ZjVhZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5pZGwKQEAgLTM2LDUgKzM2LDggQEAgbW9k
dWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAg
IHBhZ2VZOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQgICAgICB0YXJn
ZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgIGlkZW50aWZp
ZXI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICAgIHJhZGl1czsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0ICAgICAgICAgICAgYW5nbGU7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCAgICAgICAgICAgIHJhdGlvOwogICAgIH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZTczYzRmYjk2ZTAwN2I2MTU1
MmEzYTEyNWEyZGRmYmRiOTZlN2FjZS4uZmUwZGI0YzdkYmIxZTk2ODVmNjE0YjNkYTdhYzJjZDYz
YmViYjAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzEzMSw3ICsz
MTMxLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZv
cm1Ub3VjaEV2ZW50JiBldmVudCkKIAogICAgICAgICBSZWZQdHI8VG91Y2g+IHRvdWNoID0gVG91
Y2g6OmNyZWF0ZShkb2MtPmZyYW1lKCksIHRvdWNoVGFyZ2V0LmdldCgpLCBwb2ludC5pZCgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludC5zY3JlZW5Q
b3MoKS54KCksIHBvaW50LnNjcmVlblBvcygpLnkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRQYWdlWCwgYWRqdXN0ZWRQYWdlWSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdGVkUGFnZVgsIGFk
anVzdGVkUGFnZVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvaW50LnJhZGl1cygpLCBwb2ludC5hbmdsZSgpLCBwb2ludC5yYXRpbygpKTsKIAogICAgICAg
ICAvLyBFbnN1cmUgdGhpcyB0YXJnZXQncyB0b3VjaCBsaXN0IGV4aXN0cywgZXZlbiBpZiBpdCBl
bmRzIHVwIGVtcHR5LCBzbyBpdCBjYW4gYWx3YXlzIGJlIHBhc3NlZCB0byBUb3VjaEV2ZW50OjpD
cmVhdGUgYmVsb3cuCiAgICAgICAgIFRhcmdldFRvdWNoZXNNYXA6Oml0ZXJhdG9yIHRhcmdldFRv
dWNoZXNJdGVyYXRvciA9IHRvdWNoZXNCeVRhcmdldC5maW5kKHRvdWNoVGFyZ2V0LmdldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKaW5kZXggYmMx
OWY4MDZhOGZkM2E4NzA2ZWVkMDZiZDY1MzcxYjU4YTdkZGNmMS4uNGU5NTc0YTdiNDlmMzRiYzRl
ZDkxOGVlMmJlNTM3NjZkNDc2Y2FkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1Ub3VjaFBvaW50LmgKQEAgLTU5LDEyICs1OSwxOCBAQCBwdWJsaWM6CiAgICAgU3RhdGUg
c3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgSW50UG9pbnQgc2NyZWVuUG9z
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Qb3M7IH0KICAgICBJbnRQb2ludCBwb3MoKSBjb25z
dCB7IHJldHVybiBtX3BvczsgfQotICAgIAorICAgIGZsb2F0IHJhZGl1cygpIGNvbnN0IHsgcmV0
dXJuIG1fcmFkaXVzOyB9CisgICAgZmxvYXQgYW5nbGUoKSBjb25zdCB7IHJldHVybiBtX2FuZ2xl
OyB9CisgICAgZmxvYXQgcmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3JhdGlvOyB9CisKIHByb3Rl
Y3RlZDoKICAgICB1bnNpZ25lZCBtX2lkOwogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgSW50UG9p
bnQgbV9zY3JlZW5Qb3M7CiAgICAgSW50UG9pbnQgbV9wb3M7CisgICAgZmxvYXQgbV9yYWRpdXM7
CisgICAgZmxvYXQgbV9hbmdsZTsKKyAgICBmbG9hdCBtX3JhdGlvOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBlZWM4MDljNWJhN2Q4MTZlMDdkYjcwNGE0YTM4YzVlNTU3
YjlkNDVkLi44ZmM0MWUyODQ0ZmU2NGVjNjY0MTM5ZTkxMjUzNGIwMzU0MDk0ZDAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA0LTIwICBZdWZlbmcg
U2hlbiAgPG1pbGV0dXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IGV4cG9zZSBleHRyYSB0b3VjaCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTkwMzAKKworICAgICAgICAqIHB1YmxpYy9XZWJUb3VjaFBvaW50Lmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlRvdWNoUG9pbnQ6OldlYlRvdWNoUG9pbnQpOgorICAgICAgICAqIHNyYy9XZWJJbnB1
dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtVG91Y2hQb2lu
dEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hQb2ludEJ1aWxkZXIpOgorCiAyMDExLTA0LTIwICBFdmFu
IE1hcnRpbiAgPGV2YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkg
Q2hhbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUb3Vj
aFBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUb3VjaFBvaW50LmgK
aW5kZXggM2Q2MDc0NDAxMTFkYzIxZTdmMWUwZWY0YmE5OWM3YmJkNTBjOWIzZi4uMTNjOTA3ZmNk
OWJiNzI0NWU1OGVhMzFhMzFiMTFkMjJkOGQ2ZDU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVG91Y2hQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlRvdWNoUG9pbnQuaApAQCAtNDYsNyArNDYsMTAgQEAgcHVibGljOgog
CiAgICAgV2ViVG91Y2hQb2ludCgpCiAgICAgICAgIDogaWQoRmluZ2VyRmlyc3QpCi0gICAgICAg
ICwgc3RhdGUoU3RhdGVVbmRlZmluZWQpIHsgfQorICAgICAgICAsIHN0YXRlKFN0YXRlVW5kZWZp
bmVkKQorICAgICAgICAsIHJhZGl1cygwLjApCisgICAgICAgICwgYW5nbGUoMC4wKQorICAgICAg
ICAsIHJhdGlvKDEuMCkgeyB9CiAKICAgICBlbnVtIFN0YXRlIHsKICAgICAgICAgU3RhdGVVbmRl
ZmluZWQsCkBAIC02MSw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgU3RhdGUgc3RhdGU7CiAgICAg
V2ViUG9pbnQgc2NyZWVuUG9zaXRpb247CiAgICAgV2ViUG9pbnQgcG9zaXRpb247CisKKyAgICBm
bG9hdCByYWRpdXM7CisgICAgZmxvYXQgYW5nbGU7CisgICAgZmxvYXQgcmF0aW87CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCAyNGVlYjg4NWIwZjI4MGM2YzIw
OWRmMWYyMjBkOGMyZjM0MzY4M2NmLi5kYWFkNzAwMDAwNWQ2ZmZlMWNkMDI5MGM2MDhlZGJiNDZj
OGQyODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC0yMTIsNiArMjEyLDkgQEAgUGxhdGZvcm1Ub3VjaFBv
aW50QnVpbGRlcjo6UGxhdGZvcm1Ub3VjaFBvaW50QnVpbGRlcihXaWRnZXQqIHdpZGdldCwgY29u
c3QgV2ViVG8KICAgICBtX3N0YXRlID0gdG9QbGF0Zm9ybVRvdWNoUG9pbnRTdGF0ZShwb2ludC5z
dGF0ZSk7CiAgICAgbV9wb3MgPSB3aWRnZXQtPmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyhw
b2ludC5wb3NpdGlvbik7CiAgICAgbV9zY3JlZW5Qb3MgPSBwb2ludC5zY3JlZW5Qb3NpdGlvbjsK
KyAgICBtX3JhZGl1cyA9IHBvaW50LnJhZGl1czsKKyAgICBtX2FuZ2xlID0gcG9pbnQuYW5nbGU7
CisgICAgbV9yYXRpbyA9IHBvaW50LnJhdGlvOwogfQogCiBQbGF0Zm9ybVRvdWNoRXZlbnRCdWls
ZGVyOjpQbGF0Zm9ybVRvdWNoRXZlbnRCdWlsZGVyKFdpZGdldCogd2lkZ2V0LCBjb25zdCBXZWJU
b3VjaEV2ZW50JiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90568</attachid>
            <date>2011-04-21 11:53:35 -0700</date>
            <delta_ts>2011-04-26 13:06:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59030-20110421145334.patch</filename>
            <type>text/plain</type>
            <size>12148</size>
            <attacher>miletus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ0MTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4Nzk0NGY5ODc5NDlhYzQy
OGM1NjljMTBmMWVjNzNiMmQ5YzQxYzE0Li5kNmIxNDM5YTI2N2RjMTk5ZDgyNDkzODIzNTgzYWM5
YmMwNDdkZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDQtMjEgIFl1ZmVu
ZyBTaGVuICA8bWlsZXR1c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXZWJLaXQgZXhwb3NlIGV4dHJhIHRvdWNoIGlu
Zm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01OTAzMAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVUb3VjaCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoK
KyAgICAgICAgKiBkb20vVG91Y2guY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2g6OlRvdWNo
KToKKyAgICAgICAgKiBkb20vVG91Y2guaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2g6OnJhZGl1c1gpOgorICAgICAgICAoV2ViQ29y
ZTo6VG91Y2g6OnJhZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2g6OnJvdGF0aW9uQW5n
bGUpOgorICAgICAgICAqIGRvbS9Ub3VjaC5pZGw6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzWCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1kpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1U
b3VjaFBvaW50Ojpyb3RhdGlvbkFuZ2xlKToKKwogMjAxMS0wNC0yMCAgQ2hyaXMgTWFycmluICA8
Y21hcnJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNlZGRiZWY5NDgyYmJhYzM3YTVjNzBkN2UyZTJiOWJi
ZTg0ODA2ODMuLmUzOWIwMjUyM2U1MDU3Y2M3ZmQ3NGE2ZDNiYTk4MjlmMTQ5NGM1ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDk2MSw3ICs0OTYxLDcgQEAgdm9pZCBEb2N1bWVudDo6
c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhET01UaW1lU3RhbXAgdGltZSkKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLVBhc3NSZWZQdHI8VG91Y2g+IERvY3VtZW50OjpjcmVh
dGVUb3VjaChET01XaW5kb3cqIHdpbmRvdywgRXZlbnRUYXJnZXQqIHRhcmdldCwgaW50IGlkZW50
aWZpZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdAorUGFzc1JlZlB0cjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRv
dWNoKERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmll
ciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJh
ZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBFeGNlcHRpb25Db2RlJikg
Y29uc3QKIHsKICAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRh
dGlvbiBhdAogICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJp
LyNkb2N1bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9u
c1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCkBAIC00
OTY5LDcgKzQ5NjksNyBAQCBQYXNzUmVmUHRyPFRvdWNoPiBEb2N1bWVudDo6Y3JlYXRlVG91Y2go
RE9NV2luZG93KiB3aW5kb3csIEV2ZW50VGFyZ2V0KiB0YXJnZXQsCiAgICAgLy8gYW5kIGltcGxl
bWVudCB0aGVtIGhlcmUuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDc4MTkKICAgICAvLyBEaXR0byBmb3IgdGhlIGNyZWF0ZVRvdWNoTGlzdCBtZXRob2QgYmVs
b3cuCiAgICAgRnJhbWUqIGZyYW1lID0gd2luZG93ID8gd2luZG93LT5mcmFtZSgpIDogdGhpcy0+
ZnJhbWUoKTsKLSAgICByZXR1cm4gVG91Y2g6OmNyZWF0ZShmcmFtZSwgdGFyZ2V0LCBpZGVudGlm
aWVyLCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVkpOworICAgIHJldHVybiBUb3VjaDo6
Y3JlYXRlKGZyYW1lLCB0YXJnZXQsIGlkZW50aWZpZXIsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VY
LCBwYWdlWSwgcmFkaXVzWCwgcmFkaXVzWSwgcm90YXRpb25BbmdsZSk7CiB9CiAKIFBhc3NSZWZQ
dHI8VG91Y2hMaXN0PiBEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3OWVlZWNlNzBhMGFhZDc0MDNmMjI0Y2NmZDEy
MTE4ZWYzZGU0ZmFiLi5lZTFmMDU0YTMxNjZmYmYwNTQ3OGE5OWY0ZGU2YTc5ZTc5Y2YyN2ZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTA3MCw3ICsxMDcwLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNEZWxheWluZ0xvYWRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2ZW50RGVsYXlD
b3VudDsgfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBQYXNzUmVmUHRyPFRvdWNo
PiBjcmVhdGVUb3VjaChET01XaW5kb3cqLCBFdmVudFRhcmdldCosIGludCBpZGVudGlmaWVyLCBp
bnQgcGFnZVgsIGludCBwYWdlWSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBFeGNlcHRpb25D
b2RlJikgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxUb3VjaD4gY3JlYXRlVG91Y2goRE9NV2luZG93
KiwgRXZlbnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCBy
b3RhdGlvbkFuZ2xlLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxUb3Vj
aExpc3Q+IGNyZWF0ZVRvdWNoTGlzdChFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggY2Y4MjBiYTljMDYxZWMwMTg4ZjE4YjY0MWViZTAx
YzUxZDRjZGE5OS4uMjYzOGYwMGI4YWRmYjZmODA5Y2IxODc5MmMzMTk5ZTNlMmUyZTliYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0zMzAsNyArMzMwLDEwIEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIGxvbmcgcGFnZVgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBsb25nIHBhZ2VZLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBTY3JlZW5YLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9u
ZyBzY3JlZW5ZKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyByYWRpdXNYLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBy
YWRpdXNZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gZmxvYXQgcm90YXRpb25BbmdsZSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgW1JldHVybnNOZXcsIEVuYWJsZWRBdFJ1bnRpbWUsIEN1c3Rv
bV0gVG91Y2hMaXN0IGNyZWF0ZVRvdWNoTGlzdCgpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmNwcAppbmRleCBmYmIzZmVkYTQyNGMxZDhhYmI4ZjM0NmJh
OWY4MzE3NGZiZDU5YzBlLi40NzgwOTBiMjEzNWI5M2QyOTA4ZDAxMDljZTI5NjY5Y2EyNTU1OWQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ub3VjaC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGljIGludCBjb250ZW50
c1koRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBmcmFtZVZpZXctPnNjcm9sbFkoKSAvIGZyYW1l
LT5wYWdlWm9vbUZhY3RvcigpOwogfQogCi1Ub3VjaDo6VG91Y2goRnJhbWUqIGZyYW1lLCBFdmVu
dFRhcmdldCogdGFyZ2V0LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBpbnQgc2NyZWVuWCwgaW50IHNj
cmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZKQorVG91Y2g6OlRvdWNoKEZyYW1lKiBmcmFtZSwg
RXZlbnRUYXJnZXQqIHRhcmdldCwgdW5zaWduZWQgaWRlbnRpZmllciwgaW50IHNjcmVlblgsIGlu
dCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZ
LCBmbG9hdCByb3RhdGlvbkFuZ2xlKQogICAgIDogbV90YXJnZXQodGFyZ2V0KQogICAgICwgbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2NsaWVudFgocGFnZVggLSBjb250ZW50c1go
ZnJhbWUpKQpAQCAtNjIsNiArNjIsOSBAQCBUb3VjaDo6VG91Y2goRnJhbWUqIGZyYW1lLCBFdmVu
dFRhcmdldCogdGFyZ2V0LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBpbnQgc2NyZWVuWAogICAgICwg
bV9zY3JlZW5ZKHNjcmVlblkpCiAgICAgLCBtX3BhZ2VYKHBhZ2VYKQogICAgICwgbV9wYWdlWShw
YWdlWSkKKyAgICAsIG1fcmFkaXVzWChyYWRpdXNYKQorICAgICwgbV9yYWRpdXNZKHJhZGl1c1kp
CisgICAgLCBtX3JvdGF0aW9uQW5nbGUocm90YXRpb25BbmdsZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2gu
aAppbmRleCA1NGU4NWE1M2YwMWEwY2NlN2YyNGZkNmUzNDBjNmMzN2QxNzg5N2Q2Li5hZWQzYzI4
Y2FhMTI5OWRmZjc0NmIxNjdiMGIyZjIzOTA4MjVlYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVG91Y2guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaApAQCAtMzks
MTAgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRvdWNoIDogcHVibGljIFJl
ZkNvdW50ZWQ8VG91Y2g+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUb3VjaD4g
Y3JlYXRlKEZyYW1lKiBmcmFtZSwgRXZlbnRUYXJnZXQqIHRhcmdldCwKLSAgICAgICAgICAgIHVu
c2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBp
bnQgcGFnZVkpCisgICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyLCBpbnQgc2NyZWVuWCwg
aW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAorICAgICAgICAgICAgaW50IHJhZGl1
c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBUb3VjaChmcmFtZSwgdGFyZ2V0LCBpZGVudGlmaWVyLCBzY3JlZW5Y
LCAKLSAgICAgICAgICAgICAgICBzY3JlZW5ZLCBwYWdlWCwgcGFnZVkpKTsKKyAgICAgICAgICAg
ICAgICBzY3JlZW5ZLCBwYWdlWCwgcGFnZVksIHJhZGl1c1gsIHJhZGl1c1ksIHJvdGF0aW9uQW5n
bGUpKTsKICAgICB9CiAKICAgICBFdmVudFRhcmdldCogdGFyZ2V0KCkgY29uc3QgeyByZXR1cm4g
bV90YXJnZXQuZ2V0KCk7IH0KQEAgLTUzLDEwICs1NCwxNCBAQCBwdWJsaWM6CiAgICAgaW50IHNj
cmVlblkoKSBjb25zdCB7IHJldHVybiBtX3NjcmVlblk7IH0KICAgICBpbnQgcGFnZVgoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2VYOyB9CiAgICAgaW50IHBhZ2VZKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlWTsgfQorICAgIGludCByYWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9Cisg
ICAgaW50IHJhZGl1c1koKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1k7IH0KKyAgICBmbG9hdCBy
b3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CiAKIHByaXZh
dGU6CiAgICAgVG91Y2goRnJhbWUqIGZyYW1lLCBFdmVudFRhcmdldCogdGFyZ2V0LCB1bnNpZ25l
ZCBpZGVudGlmaWVyLAotICAgICAgICAgICAgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQg
cGFnZVgsIGludCBwYWdlWSk7CisgICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblks
IGludCBwYWdlWCwgaW50IHBhZ2VZLAorICAgICAgICAgICAgaW50IHJhZGl1c1gsIGludCByYWRp
dXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlKTsKIAogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV90
YXJnZXQ7CiAgICAgdW5zaWduZWQgbV9pZGVudGlmaWVyOwpAQCAtNjYsNiArNzEsOSBAQCBwcml2
YXRlOgogICAgIGludCBtX3NjcmVlblk7CiAgICAgaW50IG1fcGFnZVg7CiAgICAgaW50IG1fcGFn
ZVk7CisgICAgaW50IG1fcmFkaXVzWDsKKyAgICBpbnQgbV9yYWRpdXNZOworICAgIGZsb2F0IG1f
cm90YXRpb25BbmdsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2gu
aWRsCmluZGV4IDFhZmM2M2FiNDk1NGI1ZTdhNTViOTNiNmVmNmE0ZGI2NzQ3ODBhNjAuLmZlZGVm
Njk5OTVjZTdkMWY1MTVlMTFjZWQxMDBiMTZmYWZkMDNkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ub3VjaC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmlkbApA
QCAtMzYsNSArMzYsOCBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgICAgICAgICAgICAgcGFnZVk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBF
dmVudFRhcmdldCAgICAgIHRhcmdldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgICAgaWRlbnRpZmllcjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCAg
ICAgICAgICAgICAgcmFkaXVzWDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCAgICAg
ICAgICAgICAgcmFkaXVzWTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0ICAgICAg
ICAgICAgcm90YXRpb25BbmdsZTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IGU3M2M0ZmI5NmUwMDdiNjE1NTJhM2ExMjVhMmRkZmJkYjk2ZTdhY2UuLmY5
ODQxMWU3MjdiMzU4YThjMTAzNjkzM2IyZmQxMzEzM2I5Y2MxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxMzEsNyArMzEzMSw4IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAKICAg
ICAgICAgUmVmUHRyPFRvdWNoPiB0b3VjaCA9IFRvdWNoOjpjcmVhdGUoZG9jLT5mcmFtZSgpLCB0
b3VjaFRhcmdldC5nZXQoKSwgcG9pbnQuaWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9pbnQuc2NyZWVuUG9zKCkueCgpLCBwb2ludC5zY3JlZW5Qb3Mo
KS55KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVz
dGVkUGFnZVgsIGFkanVzdGVkUGFnZVkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhZGp1c3RlZFBhZ2VYLCBhZGp1c3RlZFBhZ2VZLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludC5yYWRpdXNYKCksIHBvaW50LnJh
ZGl1c1koKSwgcG9pbnQucm90YXRpb25BbmdsZSgpKTsKIAogICAgICAgICAvLyBFbnN1cmUgdGhp
cyB0YXJnZXQncyB0b3VjaCBsaXN0IGV4aXN0cywgZXZlbiBpZiBpdCBlbmRzIHVwIGVtcHR5LCBz
byBpdCBjYW4gYWx3YXlzIGJlIHBhc3NlZCB0byBUb3VjaEV2ZW50OjpDcmVhdGUgYmVsb3cuCiAg
ICAgICAgIFRhcmdldFRvdWNoZXNNYXA6Oml0ZXJhdG9yIHRhcmdldFRvdWNoZXNJdGVyYXRvciA9
IHRvdWNoZXNCeVRhcmdldC5maW5kKHRvdWNoVGFyZ2V0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKaW5kZXggYmMxOWY4MDZhOGZkM2E4NzA2
ZWVkMDZiZDY1MzcxYjU4YTdkZGNmMS4uOWQ5YjRmYzYwYmNjNDJhZTE3NzkwMjdjMWVkZDlkMGQw
ZGM3M2RlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3Vj
aFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50
LmgKQEAgLTU5LDEyICs1OSwxOCBAQCBwdWJsaWM6CiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlOyB9CiAgICAgSW50UG9pbnQgc2NyZWVuUG9zKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JlZW5Qb3M7IH0KICAgICBJbnRQb2ludCBwb3MoKSBjb25zdCB7IHJldHVybiBtX3Bv
czsgfQotICAgIAorICAgIGludCByYWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9
CisgICAgaW50IHJhZGl1c1koKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1k7IH0KKyAgICBmbG9h
dCByb3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CisKIHBy
b3RlY3RlZDoKICAgICB1bnNpZ25lZCBtX2lkOwogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgSW50
UG9pbnQgbV9zY3JlZW5Qb3M7CiAgICAgSW50UG9pbnQgbV9wb3M7CisgICAgaW50IG1fcmFkaXVz
WTsKKyAgICBpbnQgbV9yYWRpdXNYOworICAgIGZsb2F0IG1fcm90YXRpb25BbmdsZTsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWVjODA5YzViYTdkODE2ZTA3ZGI3MDRh
NGEzOGM1ZTU1N2I5ZDQ1ZC4uOGVkMWViZmM4NjE3NzgxZjU2YjFiZWVjMTdkNWU2ZTE5Mzc3YWRm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNC0y
MSAgWXVmZW5nIFNoZW4gIDxtaWxldHVzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYktpdCBleHBvc2UgZXh0cmEg
dG91Y2ggaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU5MDMwCisKKyAgICAgICAgKiBwdWJsaWMvV2ViVG91Y2hQb2ludC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJUb3VjaFBvaW50OjpXZWJUb3VjaFBvaW50KToKKyAgICAgICAgKiBz
cmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9y
bVRvdWNoUG9pbnRCdWlsZGVyOjpQbGF0Zm9ybVRvdWNoUG9pbnRCdWlsZGVyKToKKwogMjAxMS0w
NC0yMCAgRXZhbiBNYXJ0aW4gIDxldmFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVG91Y2hQb2ludC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVG91
Y2hQb2ludC5oCmluZGV4IDNkNjA3NDQwMTExZGMyMWU3ZjFlMGVmNGJhOTljN2JiZDUwYzliM2Yu
LjAyOTIyMDQ3Y2IxMGNlZWRhNmE0NjJlZmQzYjc1N2NkYTY2NDcyYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRvdWNoUG9pbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUb3VjaFBvaW50LmgKQEAgLTQ2LDcgKzQ2LDEwIEBA
IHB1YmxpYzoKIAogICAgIFdlYlRvdWNoUG9pbnQoKQogICAgICAgICA6IGlkKEZpbmdlckZpcnN0
KQotICAgICAgICAsIHN0YXRlKFN0YXRlVW5kZWZpbmVkKSB7IH0KKyAgICAgICAgLCBzdGF0ZShT
dGF0ZVVuZGVmaW5lZCkKKyAgICAgICAgLCByYWRpdXNYKDApCisgICAgICAgICwgcmFkaXVzWSgw
KQorICAgICAgICAsIHJvdGF0aW9uQW5nbGUoMC4wKSB7IH0KIAogICAgIGVudW0gU3RhdGUgewog
ICAgICAgICBTdGF0ZVVuZGVmaW5lZCwKQEAgLTYxLDYgKzY0LDEwIEBAIHB1YmxpYzoKICAgICBT
dGF0ZSBzdGF0ZTsKICAgICBXZWJQb2ludCBzY3JlZW5Qb3NpdGlvbjsKICAgICBXZWJQb2ludCBw
b3NpdGlvbjsKKworICAgIGludCByYWRpdXNYOworICAgIGludCByYWRpdXNZOworICAgIGZsb2F0
IHJvdGF0aW9uQW5nbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcApp
bmRleCAyNGVlYjg4NWIwZjI4MGM2YzIwOWRmMWYyMjBkOGMyZjM0MzY4M2NmLi5mODliODA3OWQw
YmQxZTUzYjMxOTU4NDE5ODdkMzE2ZjBjZmE5MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC0yMTIsNiAr
MjEyLDkgQEAgUGxhdGZvcm1Ub3VjaFBvaW50QnVpbGRlcjo6UGxhdGZvcm1Ub3VjaFBvaW50QnVp
bGRlcihXaWRnZXQqIHdpZGdldCwgY29uc3QgV2ViVG8KICAgICBtX3N0YXRlID0gdG9QbGF0Zm9y
bVRvdWNoUG9pbnRTdGF0ZShwb2ludC5zdGF0ZSk7CiAgICAgbV9wb3MgPSB3aWRnZXQtPmNvbnZl
cnRGcm9tQ29udGFpbmluZ1dpbmRvdyhwb2ludC5wb3NpdGlvbik7CiAgICAgbV9zY3JlZW5Qb3Mg
PSBwb2ludC5zY3JlZW5Qb3NpdGlvbjsKKyAgICBtX3JhZGl1c1kgPSBwb2ludC5yYWRpdXNZOwor
ICAgIG1fcmFkaXVzWCA9IHBvaW50LnJhZGl1c1g7CisgICAgbV9yb3RhdGlvbkFuZ2xlID0gcG9p
bnQucm90YXRpb25BbmdsZTsKIH0KIAogUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcjo6UGxhdGZv
cm1Ub3VjaEV2ZW50QnVpbGRlcihXaWRnZXQqIHdpZGdldCwgY29uc3QgV2ViVG91Y2hFdmVudCYg
ZXZlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91147</attachid>
            <date>2011-04-26 13:02:19 -0700</date>
            <delta_ts>2011-05-04 10:38:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59030-20110426160217.patch</filename>
            <type>text/plain</type>
            <size>16604</size>
            <attacher>miletus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ5MTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNWZmYTcxNzFjNzM5NzYyNmVjOWQ2
MzYwMzRmNDkyNTkzNGMzMTRmLi4wODliMWQxMDgwYzJlOTQ1YTJmNmNkOTJhYjJkNjI2MjM0NjI4
ZTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMjYgIFl1ZmVuZyBTaGVuICA8bWls
ZXR1c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTWFrZSBXZWJLaXQgZXhwb3NlIGV4dHJhIHRvdWNoIGluZm9ybWF0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTAzMAorCisg
ICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQt
Y3JlYXRlLXRvdWNoLmpzOgorCiAyMDExLTA0LTI2ICBLcmlzdMOzZiBLb3N6dHnDsyAgPEtvc3p0
eW8uS3Jpc3RvZkBzdHVkLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJh
IE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2RvY3VtZW50LWNyZWF0ZS10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtZXhwZWN0ZWQudHh0CmluZGV4IDJiZjMz
Y2JmMzc1MDM0NGEzMzc3OTU1MWFiMWFjNGU4MDdkYzYyNTIuLjkwMjA0ZTkyYmFmYzcyNzRkYTRm
NGU2NTc5Yzg4MWI0YTg1ZGRmM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVjdGVkLnR4dApA
QCAtMTEsNiArMTEsOSBAQCBQQVNTIHRvdWNoLnBhZ2VYIGlzIDEwMAogUEFTUyB0b3VjaC5wYWdl
WSBpcyAxMDEKIFBBU1MgdG91Y2guc2NyZWVuWCBpcyAxMDIKIFBBU1MgdG91Y2guc2NyZWVuWSBp
cyAxMDMKK1BBU1MgdG91Y2gucmFkaXVzWCBpcyA1CitQQVNTIHRvdWNoLnJhZGl1c1kgaXMgMwor
UEFTUyB0b3VjaC5yb3RhdGlvbkFuZ2xlIGlzIDEwCiBQQVNTIGVtcHR5VG91Y2ggaXMgbm9uLW51
bGwuCiBQQVNTIGVtcHR5VG91Y2gudGFyZ2V0IGlzIG51bGwKIFBBU1MgZW1wdHlUb3VjaC5pZGVu
dGlmaWVyIGlzIDAKQEAgLTE4LDYgKzIxLDkgQEAgUEFTUyBlbXB0eVRvdWNoLnBhZ2VYIGlzIDAK
IFBBU1MgZW1wdHlUb3VjaC5wYWdlWSBpcyAwCiBQQVNTIGVtcHR5VG91Y2guc2NyZWVuWCBpcyAw
CiBQQVNTIGVtcHR5VG91Y2guc2NyZWVuWSBpcyAwCitQQVNTIGVtcHR5VG91Y2gucmFkaXVzWCBp
cyAwCitQQVNTIGVtcHR5VG91Y2gucmFkaXVzWSBpcyAwCitQQVNTIGVtcHR5VG91Y2gucm90YXRp
b25BbmdsZSBpcyBOYU4KIFBBU1MgYmFkUGFyYW1zVG91Y2ggaXMgbm9uLW51bGwuCiBQQVNTIGJh
ZFBhcmFtc1RvdWNoLnRhcmdldCBpcyBudWxsCiBQQVNTIGJhZFBhcmFtc1RvdWNoLmlkZW50aWZp
ZXIgaXMgMApAQCAtMjUsNiArMzEsOSBAQCBQQVNTIGJhZFBhcmFtc1RvdWNoLnBhZ2VYIGlzIDAK
IFBBU1MgYmFkUGFyYW1zVG91Y2gucGFnZVkgaXMgMAogUEFTUyBiYWRQYXJhbXNUb3VjaC5zY3Jl
ZW5YIGlzIDAKIFBBU1MgYmFkUGFyYW1zVG91Y2guc2NyZWVuWSBpcyAxMDQKK1BBU1MgYmFkUGFy
YW1zVG91Y2gucmFkaXVzWCBpcyAwCitQQVNTIGJhZFBhcmFtc1RvdWNoLnJhZGl1c1kgaXMgMAor
UEFTUyBiYWRQYXJhbXNUb3VjaC5yb3RhdGlvbkFuZ2xlIGlzIE5hTgogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2RvY3VtZW50LWNy
ZWF0ZS10b3VjaC5qcwppbmRleCBjNTFjN2UzMGIyODRmOWU2ZDM1NjQyMmJjZTM1OWE1MTJlNmU4
ZDg0Li5lNjZhNzk5ZjI4YjdmZGZhYjg5MTE2N2Y5ZWYzNjVkODZhM2VjYmY4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3Jl
YXRlLXRvdWNoLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10
ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91Y2guanMKQEAgLTksNyArOSw3IEBAIGJveC5zdHlsZS5o
ZWlnaHQgPSAiMTAwcHgiOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChib3gpOwogCiB2YXIg
dGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIpOwotdmFyIHRvdWNoID0gZG9j
dW1lbnQuY3JlYXRlVG91Y2god2luZG93LCB0YXJnZXQsIDEsIDEwMCwgMTAxLCAxMDIsIDEwMyk7
Cit2YXIgdG91Y2ggPSBkb2N1bWVudC5jcmVhdGVUb3VjaCh3aW5kb3csIHRhcmdldCwgMSwgMTAw
LCAxMDEsIDEwMiwgMTAzLCA1LCAzLCAxMCk7CiBzaG91bGRCZU5vbk51bGwoInRvdWNoIik7CiBz
aG91bGRCZSgidG91Y2gudGFyZ2V0IiwgImJveCIpOwogc2hvdWxkQmUoInRvdWNoLmlkZW50aWZp
ZXIiLCAiMSIpOwpAQCAtMTcsNiArMTcsOSBAQCBzaG91bGRCZSgidG91Y2gucGFnZVgiLCAiMTAw
Iik7CiBzaG91bGRCZSgidG91Y2gucGFnZVkiLCAiMTAxIik7CiBzaG91bGRCZSgidG91Y2guc2Ny
ZWVuWCIsICIxMDIiKTsKIHNob3VsZEJlKCJ0b3VjaC5zY3JlZW5ZIiwgIjEwMyIpOworc2hvdWxk
QmUoInRvdWNoLnJhZGl1c1giLCAiNSIpOworc2hvdWxkQmUoInRvdWNoLnJhZGl1c1kiLCAiMyIp
Oworc2hvdWxkQmUoInRvdWNoLnJvdGF0aW9uQW5nbGUiLCAiMTAiKTsKIAogdmFyIGVtcHR5VG91
Y2ggPSBkb2N1bWVudC5jcmVhdGVUb3VjaCgpOwogc2hvdWxkQmVOb25OdWxsKCJlbXB0eVRvdWNo
Iik7CkBAIC0yNiw5ICsyOSwxMiBAQCBzaG91bGRCZSgiZW1wdHlUb3VjaC5wYWdlWCIsICIwIik7
CiBzaG91bGRCZSgiZW1wdHlUb3VjaC5wYWdlWSIsICIwIik7CiBzaG91bGRCZSgiZW1wdHlUb3Vj
aC5zY3JlZW5YIiwgIjAiKTsKIHNob3VsZEJlKCJlbXB0eVRvdWNoLnNjcmVlblkiLCAiMCIpOwor
c2hvdWxkQmUoImVtcHR5VG91Y2gucmFkaXVzWCIsICIwIik7CitzaG91bGRCZSgiZW1wdHlUb3Vj
aC5yYWRpdXNZIiwgIjAiKTsKK3Nob3VsZEJlTmFOKCJlbXB0eVRvdWNoLnJvdGF0aW9uQW5nbGUi
KTsKIAogLy8gVHJ5IGludm9raW5nIHdpdGggaW5jb3JyZWN0IHBhcmFtZXRlciB0eXBlcy4KLXZh
ciBiYWRQYXJhbXNUb3VjaCA9IGRvY3VtZW50LmNyZWF0ZVRvdWNoKGZ1bmN0aW9uKHgpIHsgcmV0
dXJuIHg7IH0sIDEyLCAnYScsICdiJywgJ2MnLCBmdW5jdGlvbih4KSB7IHJldHVybiB4OyB9LCAx
MDQpOwordmFyIGJhZFBhcmFtc1RvdWNoID0gZG9jdW1lbnQuY3JlYXRlVG91Y2goZnVuY3Rpb24o
eCkgeyByZXR1cm4geDsgfSwgMTIsICdhJywgJ2InLCAnYycsIGZ1bmN0aW9uKHgpIHsgcmV0dXJu
IHg7IH0sIDEwNCwgJ2EnLCAnYicsICdjJyk7CiBzaG91bGRCZU5vbk51bGwoImJhZFBhcmFtc1Rv
dWNoIik7CiBzaG91bGRCZU51bGwoImJhZFBhcmFtc1RvdWNoLnRhcmdldCIpOwogc2hvdWxkQmUo
ImJhZFBhcmFtc1RvdWNoLmlkZW50aWZpZXIiLCAiMCIpOwpAQCAtMzYsNiArNDIsOSBAQCBzaG91
bGRCZSgiYmFkUGFyYW1zVG91Y2gucGFnZVgiLCAiMCIpOwogc2hvdWxkQmUoImJhZFBhcmFtc1Rv
dWNoLnBhZ2VZIiwgIjAiKTsKIHNob3VsZEJlKCJiYWRQYXJhbXNUb3VjaC5zY3JlZW5YIiwgIjAi
KTsKIHNob3VsZEJlKCJiYWRQYXJhbXNUb3VjaC5zY3JlZW5ZIiwgIjEwNCIpOworc2hvdWxkQmUo
ImJhZFBhcmFtc1RvdWNoLnJhZGl1c1giLCAiMCIpOworc2hvdWxkQmUoImJhZFBhcmFtc1RvdWNo
LnJhZGl1c1kiLCAiMCIpOworc2hvdWxkQmVOYU4oImJhZFBhcmFtc1RvdWNoLnJvdGF0aW9uQW5n
bGUiKTsKIAogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIGlzU3VjY2Vzc2Z1bGx5UGFyc2Vk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMDc0Y2M5OGUzODliZTVlMTgzOTU2NGM4ZDI4ZTVhZDY3YzUzMGY1
My4uZmMyN2Y2NDc3MDY0ZGFjYzJjNjFkODdlODVlYWI5NjY5NjZkYWUzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDExLTA0LTI2ICBZdWZlbmcgU2hlbiAgPG1pbGV0dXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1ha2UgV2ViS2l0IGV4cG9zZSBleHRyYSB0b3VjaCBpbmZvcm1hdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkwMzAKKworICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlVG91Y2gp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6
CisgICAgICAgICogZG9tL1RvdWNoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoOjpUb3Vj
aCk6CisgICAgICAgICogZG9tL1RvdWNoLmg6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoOjpyYWRpdXNYKToKKyAgICAgICAgKFdlYkNv
cmU6OlRvdWNoOjpyYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoOjpyb3RhdGlvbkFu
Z2xlKToKKyAgICAgICAgKiBkb20vVG91Y2guaWRsOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1gpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1Ub3VjaFBvaW50OjpyYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
VG91Y2hQb2ludDo6cm90YXRpb25BbmdsZSk6CisKIDIwMTEtMDQtMjYgIEdhYm9yIExva2kgIDxs
b2tpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6Fj
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMzVmZTA5NmFjZDY2OTAzZTg2MTYzMTYyM2Q4
ZjhiNDg2NDg2ZGM3MC4uY2JkYjM4MmI2ZDNhNmFmZWFkZWFlODM3MjEzYWE1MGE4MTY1MTE5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00OTg1LDcgKzQ5ODUsNyBAQCB2b2lkIERvY3Vt
ZW50OjpzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVTdGFtcCB0aW1lKQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotUGFzc1JlZlB0cjxUb3VjaD4gRG9jdW1lbnQ6
OmNyZWF0ZVRvdWNoKERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQg
aWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVu
WSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0CitQYXNzUmVmUHRyPFRvdWNoPiBEb2N1bWVudDo6Y3Jl
YXRlVG91Y2goRE9NV2luZG93KiB3aW5kb3csIEV2ZW50VGFyZ2V0KiB0YXJnZXQsIGludCBpZGVu
dGlmaWVyLCBpbnQgcGFnZVgsIGludCBwYWdlWSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcmFkaXVzWCwgaW50IHJhZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUsIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBjbGVhciBmcm9tIHRoZSBkb2N1
bWVudGF0aW9uIGF0CiAgICAgLy8gaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9z
YWZhcmkvI2RvY3VtZW50YXRpb24vVXNlckV4cGVyaWVuY2UvUmVmZXJlbmNlL0RvY3VtZW50QWRk
aXRpb25zUmVmZXJlbmNlL0RvY3VtZW50QWRkaXRpb25zL0RvY3VtZW50QWRkaXRpb25zLmh0bWwK
QEAgLTQ5OTMsNyArNDk5Myw3IEBAIFBhc3NSZWZQdHI8VG91Y2g+IERvY3VtZW50OjpjcmVhdGVU
b3VjaChET01XaW5kb3cqIHdpbmRvdywgRXZlbnRUYXJnZXQqIHRhcmdldCwKICAgICAvLyBhbmQg
aW1wbGVtZW50IHRoZW0gaGVyZS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NzgxOQogICAgIC8vIERpdHRvIGZvciB0aGUgY3JlYXRlVG91Y2hMaXN0IG1ldGhv
ZCBiZWxvdy4KICAgICBGcmFtZSogZnJhbWUgPSB3aW5kb3cgPyB3aW5kb3ctPmZyYW1lKCkgOiB0
aGlzLT5mcmFtZSgpOwotICAgIHJldHVybiBUb3VjaDo6Y3JlYXRlKGZyYW1lLCB0YXJnZXQsIGlk
ZW50aWZpZXIsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSk7CisgICAgcmV0dXJuIFRv
dWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwg
cGFnZVgsIHBhZ2VZLCByYWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlKTsKIH0KIAogUGFz
c1JlZlB0cjxUb3VjaExpc3Q+IERvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QoRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDE0NTljOTI1YzkwMmI2YmIyMzJmMmU1
MjcwOTM3NmRjNGQ3NTZhZWQuLmIxODVkYzU2NjA0Yzg0Y2NjOGE4YTQ5NGEyZTVjZGQxZWRkZTk0
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDcwLDcgKzEwNzAsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0RlbGF5aW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkRXZlbnRE
ZWxheUNvdW50OyB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIFBhc3NSZWZQdHI8
VG91Y2g+IGNyZWF0ZVRvdWNoKERPTVdpbmRvdyosIEV2ZW50VGFyZ2V0KiwgaW50IGlkZW50aWZp
ZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFRvdWNoPiBjcmVhdGVUb3VjaChET01X
aW5kb3cqLCBFdmVudFRhcmdldCosIGludCBpZGVudGlmaWVyLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcmFkaXVzWCwgaW50IHJhZGl1c1ksIGZs
b2F0IHJvdGF0aW9uQW5nbGUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBQYXNzUmVmUHRy
PFRvdWNoTGlzdD4gY3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCBkMjhjNmVkMDhiYWYyNjY0ZDYzYTcyZDQx
NDQ4ZTk1ODNhMWM0MzdjLi4xZjUzZWM0ZDU3ZDI1ZWFiNmRmNTkzMmExODc4ZTYxMjFhM2JmMzAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTMyOSw3ICszMjksMTAgQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gbG9uZyBwYWdlWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgcGFnZVksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIFNjcmVlblgsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBsb25nIHNjcmVlblkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVlblksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHJhZGl1c1gsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBs
b25nIHJhZGl1c1ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBmbG9hdCByb3RhdGlvbkFuZ2xlKQogICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwogICAgICAgICBbUmV0dXJuc05ldywgRW5hYmxlZEF0UnVudGltZSwg
Q3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KCkKICAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guY3BwCmluZGV4IGZiYjNmZWRhNDI0YzFkOGFiYjhm
MzQ2YmE5ZjgzMTc0ZmJkNTljMGUuLjQ3ODA5MGIyMTM1YjkzZDI5MDhkMDEwOWNlMjk2NjljYTI1
NTU5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmNwcApAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgaW50IGNv
bnRlbnRzWShGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIGZyYW1lVmlldy0+c2Nyb2xsWSgpIC8g
ZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCk7CiB9CiAKLVRvdWNoOjpUb3VjaChGcmFtZSogZnJhbWUs
IEV2ZW50VGFyZ2V0KiB0YXJnZXQsIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3JlZW5YLCBp
bnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVkpCitUb3VjaDo6VG91Y2goRnJhbWUqIGZy
YW1lLCBFdmVudFRhcmdldCogdGFyZ2V0LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgcmFkaXVzWCwgaW50IHJh
ZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUpCiAgICAgOiBtX3RhcmdldCh0YXJnZXQpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY2xpZW50WChwYWdlWCAtIGNvbnRl
bnRzWChmcmFtZSkpCkBAIC02Miw2ICs2Miw5IEBAIFRvdWNoOjpUb3VjaChGcmFtZSogZnJhbWUs
IEV2ZW50VGFyZ2V0KiB0YXJnZXQsIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3JlZW5YCiAg
ICAgLCBtX3NjcmVlblkoc2NyZWVuWSkKICAgICAsIG1fcGFnZVgocGFnZVgpCiAgICAgLCBtX3Bh
Z2VZKHBhZ2VZKQorICAgICwgbV9yYWRpdXNYKHJhZGl1c1gpCisgICAgLCBtX3JhZGl1c1kocmFk
aXVzWSkKKyAgICAsIG1fcm90YXRpb25BbmdsZShyb3RhdGlvbkFuZ2xlKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
b3VjaC5oCmluZGV4IDU0ZTg1YTUzZjAxYTBjY2U3ZjI0ZmQ2ZTM0MGM2YzM3ZDE3ODk3ZDYuLmFl
ZDNjMjhjYWExMjk5ZGZmNzQ2YjE2N2IwYjJmMjM5MDgyNWViNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5oCkBA
IC0zOSwxMCArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVG91Y2ggOiBwdWJs
aWMgUmVmQ291bnRlZDxUb3VjaD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRv
dWNoPiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBFdmVudFRhcmdldCogdGFyZ2V0LAotICAgICAgICAg
ICAgdW5zaWduZWQgaWRlbnRpZmllciwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFn
ZVgsIGludCBwYWdlWSkKKyAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCisgICAgICAgICAgICBpbnQg
cmFkaXVzWCwgaW50IHJhZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFRvdWNoKGZyYW1lLCB0YXJnZXQsIGlkZW50aWZpZXIsIHNj
cmVlblgsIAotICAgICAgICAgICAgICAgIHNjcmVlblksIHBhZ2VYLCBwYWdlWSkpOworICAgICAg
ICAgICAgICAgIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwgcmFkaXVzWCwgcmFkaXVzWSwgcm90YXRp
b25BbmdsZSkpOwogICAgIH0KIAogICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXQoKSBjb25zdCB7IHJl
dHVybiBtX3RhcmdldC5nZXQoKTsgfQpAQCAtNTMsMTAgKzU0LDE0IEBAIHB1YmxpYzoKICAgICBp
bnQgc2NyZWVuWSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuWTsgfQogICAgIGludCBwYWdlWCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFnZVg7IH0KICAgICBpbnQgcGFnZVkoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2VZOyB9CisgICAgaW50IHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1g7
IH0KKyAgICBpbnQgcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIGZs
b2F0IHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0aW9uQW5nbGU7IH0KIAog
cHJpdmF0ZToKICAgICBUb3VjaChGcmFtZSogZnJhbWUsIEV2ZW50VGFyZ2V0KiB0YXJnZXQsIHVu
c2lnbmVkIGlkZW50aWZpZXIsCi0gICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblks
IGludCBwYWdlWCwgaW50IHBhZ2VZKTsKKyAgICAgICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCisgICAgICAgICAgICBpbnQgcmFkaXVzWCwgaW50
IHJhZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUpOwogCiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0
PiBtX3RhcmdldDsKICAgICB1bnNpZ25lZCBtX2lkZW50aWZpZXI7CkBAIC02Niw2ICs3MSw5IEBA
IHByaXZhdGU6CiAgICAgaW50IG1fc2NyZWVuWTsKICAgICBpbnQgbV9wYWdlWDsKICAgICBpbnQg
bV9wYWdlWTsKKyAgICBpbnQgbV9yYWRpdXNYOworICAgIGludCBtX3JhZGl1c1k7CisgICAgZmxv
YXQgbV9yb3RhdGlvbkFuZ2xlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
b3VjaC5pZGwKaW5kZXggMWFmYzYzYWI0OTU0YjVlN2E1NWI5M2I2ZWY2YTRkYjY3NDc4MGE2MC4u
ZmVkZWY2OTk5NWNlN2QxZjUxNWUxMWNlZDEwMGIxNmZhZmQwM2Q3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2gu
aWRsCkBAIC0zNiw1ICszNiw4IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBwYWdlWTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEV2ZW50VGFyZ2V0ICAgICAgdGFyZ2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyAgICBpZGVudGlmaWVyOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
aW50ICAgICAgICAgICAgICByYWRpdXNYOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgaW50
ICAgICAgICAgICAgICByYWRpdXNZOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQg
ICAgICAgICAgICByb3RhdGlvbkFuZ2xlOwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggZjFmM2M5ZjFmZDVkMThlYjdiNjUzZDcwMjk5MDM3MWNjMDYwYzBl
OS4uMTdkZTVmYjhhYWM1ZDcxZGE1ZGZlMzgzMjkzNzY3YTQ1ZTlhOGM5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzEzMSw3ICszMTMxLDggQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkK
IAogICAgICAgICBSZWZQdHI8VG91Y2g+IHRvdWNoID0gVG91Y2g6OmNyZWF0ZShkb2MtPmZyYW1l
KCksIHRvdWNoVGFyZ2V0LmdldCgpLCBwb2ludC5pZCgpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb2ludC5zY3JlZW5Qb3MoKS54KCksIHBvaW50LnNjcmVl
blBvcygpLnkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWRqdXN0ZWRQYWdlWCwgYWRqdXN0ZWRQYWdlWSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFkanVzdGVkUGFnZVgsIGFkanVzdGVkUGFnZVksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50LnJhZGl1c1goKSwgcG9p
bnQucmFkaXVzWSgpLCBwb2ludC5yb3RhdGlvbkFuZ2xlKCkpOwogCiAgICAgICAgIC8vIEVuc3Vy
ZSB0aGlzIHRhcmdldCdzIHRvdWNoIGxpc3QgZXhpc3RzLCBldmVuIGlmIGl0IGVuZHMgdXAgZW1w
dHksIHNvIGl0IGNhbiBhbHdheXMgYmUgcGFzc2VkIHRvIFRvdWNoRXZlbnQ6OkNyZWF0ZSBiZWxv
dy4KICAgICAgICAgVGFyZ2V0VG91Y2hlc01hcDo6aXRlcmF0b3IgdGFyZ2V0VG91Y2hlc0l0ZXJh
dG9yID0gdG91Y2hlc0J5VGFyZ2V0LmZpbmQodG91Y2hUYXJnZXQuZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaAppbmRleCBiYzE5ZjgwNmE4ZmQz
YTg3MDZlZWQwNmJkNjUzNzFiNThhN2RkY2YxLi45ZDliNGZjNjBiY2M0MmFlMTc3OTAyN2MxZWRk
OWQwZDBkYzczZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNo
UG9pbnQuaApAQCAtNTksMTIgKzU5LDE4IEBAIHB1YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICBJbnRQb2ludCBzY3JlZW5Qb3MoKSBjb25zdCB7
IHJldHVybiBtX3NjcmVlblBvczsgfQogICAgIEludFBvaW50IHBvcygpIGNvbnN0IHsgcmV0dXJu
IG1fcG9zOyB9Ci0gICAgCisgICAgaW50IHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1
c1g7IH0KKyAgICBpbnQgcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAg
IGZsb2F0IHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0aW9uQW5nbGU7IH0K
KwogcHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIG1faWQ7CiAgICAgU3RhdGUgbV9zdGF0ZTsKICAg
ICBJbnRQb2ludCBtX3NjcmVlblBvczsKICAgICBJbnRQb2ludCBtX3BvczsKKyAgICBpbnQgbV9y
YWRpdXNZOworICAgIGludCBtX3JhZGl1c1g7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xlOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwZWU2ZTFjNzViM2JmODAxN2Q4
ODQyNzVkYjA1MDFmYjNkZDMzNDU1Li44ZWQwNmNkODEyNmQ5YWMxNTcwZGIwYTc2NDIyNWJjM2Qx
MTZlYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEx
LTA0LTI2ICBZdWZlbmcgU2hlbiAgPG1pbGV0dXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IGV4cG9zZSBl
eHRyYSB0b3VjaCBpbmZvcm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTkwMzAKKworICAgICAgICAqIHB1YmxpYy9XZWJUb3VjaFBvaW50Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoUG9pbnQ6OldlYlRvdWNoUG9pbnQpOgorICAgICAg
ICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
YXRmb3JtVG91Y2hQb2ludEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hQb2ludEJ1aWxkZXIpOgorCiAy
MDExLTA0LTI2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpAQCAtMTU1LDYgKzE2Nyw3IEBACiAKICAg
ICAgICAgKiBzcmMvZ3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcDogc2V0IGNsaWNrIGNvdW50
IGZvciBtb3VzZSB1cCBldmVudHMuCiAgICAgICAgICogdGVzdHMvV2ViSW5wdXRFdmVudEZhY3Rv
cnlUZXN0R3RrLmNwcDogYWRkZWQgdGVzdCBjYXNlIE1vdXNlVXBDbGlja0NvdW50LgorCiAyMDEx
LTA0LTIwICBFdmFuIE1hcnRpbiAgPGV2YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJUb3VjaFBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJU
b3VjaFBvaW50LmgKaW5kZXggM2Q2MDc0NDAxMTFkYzIxZTdmMWUwZWY0YmE5OWM3YmJkNTBjOWIz
Zi4uNjJlNTc2OWExNWRkYjE0NTIxZTIzZmE2ZGRhN2YxZTcwNzNjNTRhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVG91Y2hQb2ludC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRvdWNoUG9pbnQuaApAQCAtNDYsNyArNDYsMTIg
QEAgcHVibGljOgogCiAgICAgV2ViVG91Y2hQb2ludCgpCiAgICAgICAgIDogaWQoRmluZ2VyRmly
c3QpCi0gICAgICAgICwgc3RhdGUoU3RhdGVVbmRlZmluZWQpIHsgfQorICAgICAgICAsIHN0YXRl
KFN0YXRlVW5kZWZpbmVkKQorICAgICAgICAsIHJhZGl1c1goMCkKKyAgICAgICAgLCByYWRpdXNZ
KDApCisgICAgICAgICwgcm90YXRpb25BbmdsZSgwKQorICAgIHsKKyAgICB9CiAKICAgICBlbnVt
IFN0YXRlIHsKICAgICAgICAgU3RhdGVVbmRlZmluZWQsCkBAIC02MSw2ICs2NiwxMCBAQCBwdWJs
aWM6CiAgICAgU3RhdGUgc3RhdGU7CiAgICAgV2ViUG9pbnQgc2NyZWVuUG9zaXRpb247CiAgICAg
V2ViUG9pbnQgcG9zaXRpb247CisKKyAgICBpbnQgcmFkaXVzWDsKKyAgICBpbnQgcmFkaXVzWTsK
KyAgICBmbG9hdCByb3RhdGlvbkFuZ2xlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAKaW5kZXggMjRlZWI4ODViMGYyODBjNmMyMDlkZjFmMjIwZDhjMmYzNDM2ODNjZi4u
Zjg5YjgwNzlkMGJkMWU1M2IzMTk1ODQxOTg3ZDMxNmYwY2ZhOTJmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcApA
QCAtMjEyLDYgKzIxMiw5IEBAIFBsYXRmb3JtVG91Y2hQb2ludEJ1aWxkZXI6OlBsYXRmb3JtVG91
Y2hQb2ludEJ1aWxkZXIoV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IFdlYlRvCiAgICAgbV9zdGF0ZSA9
IHRvUGxhdGZvcm1Ub3VjaFBvaW50U3RhdGUocG9pbnQuc3RhdGUpOwogICAgIG1fcG9zID0gd2lk
Z2V0LT5jb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cocG9pbnQucG9zaXRpb24pOwogICAgIG1f
c2NyZWVuUG9zID0gcG9pbnQuc2NyZWVuUG9zaXRpb247CisgICAgbV9yYWRpdXNZID0gcG9pbnQu
cmFkaXVzWTsKKyAgICBtX3JhZGl1c1ggPSBwb2ludC5yYWRpdXNYOworICAgIG1fcm90YXRpb25B
bmdsZSA9IHBvaW50LnJvdGF0aW9uQW5nbGU7CiB9CiAKIFBsYXRmb3JtVG91Y2hFdmVudEJ1aWxk
ZXI6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXIoV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IFdlYlRv
dWNoRXZlbnQmIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92277</attachid>
            <date>2011-05-04 10:39:08 -0700</date>
            <delta_ts>2011-05-17 13:05:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59030-20110504133906.patch</filename>
            <type>text/plain</type>
            <size>16933</size>
            <attacher>miletus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU2NTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMDNjOWYwMzBlZmRlNDM2ODBmZDYy
YjBkZDc3NzU0N2M4NDdiM2VkLi4xY2E4MjdkYzMzNGZmNDhkZTE0YmQ2Y2Y2NzM4ZjdiMzEzZDJj
YTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDUtMDQgIFl1ZmVuZyBTaGVuICA8bWls
ZXR1c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTWFrZSBXZWJLaXQgZXhwb3NlIGV4dHJhIHRvdWNoIGluZm9ybWF0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTAzMAorCisg
ICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQt
Y3JlYXRlLXRvdWNoLmpzOgorCiAyMDExLTA1LTAzICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91
Y2gtZXhwZWN0ZWQudHh0CmluZGV4IDJiZjMzY2JmMzc1MDM0NGEzMzc3OTU1MWFiMWFjNGU4MDdk
YzYyNTIuLjNlOWM1MTgzOGRhMzFiMThiNmU4YTgwN2U4M2U2Yzg3YjQ5ZDQyZWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQt
Y3JlYXRlLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsOSBAQCBQQVNTIHRvdWNoLnBh
Z2VYIGlzIDEwMAogUEFTUyB0b3VjaC5wYWdlWSBpcyAxMDEKIFBBU1MgdG91Y2guc2NyZWVuWCBp
cyAxMDIKIFBBU1MgdG91Y2guc2NyZWVuWSBpcyAxMDMKK1BBU1MgdG91Y2gud2Via2l0UmFkaXVz
WCBpcyA1CitQQVNTIHRvdWNoLndlYmtpdFJhZGl1c1kgaXMgMworUEFTUyB0b3VjaC53ZWJraXRS
b3RhdGlvbkFuZ2xlIGlzIDEwCiBQQVNTIGVtcHR5VG91Y2ggaXMgbm9uLW51bGwuCiBQQVNTIGVt
cHR5VG91Y2gudGFyZ2V0IGlzIG51bGwKIFBBU1MgZW1wdHlUb3VjaC5pZGVudGlmaWVyIGlzIDAK
QEAgLTE4LDYgKzIxLDkgQEAgUEFTUyBlbXB0eVRvdWNoLnBhZ2VYIGlzIDAKIFBBU1MgZW1wdHlU
b3VjaC5wYWdlWSBpcyAwCiBQQVNTIGVtcHR5VG91Y2guc2NyZWVuWCBpcyAwCiBQQVNTIGVtcHR5
VG91Y2guc2NyZWVuWSBpcyAwCitQQVNTIGVtcHR5VG91Y2gud2Via2l0UmFkaXVzWCBpcyAwCitQ
QVNTIGVtcHR5VG91Y2gud2Via2l0UmFkaXVzWSBpcyAwCitQQVNTIGVtcHR5VG91Y2gud2Via2l0
Um90YXRpb25BbmdsZSBpcyBOYU4KIFBBU1MgYmFkUGFyYW1zVG91Y2ggaXMgbm9uLW51bGwuCiBQ
QVNTIGJhZFBhcmFtc1RvdWNoLnRhcmdldCBpcyBudWxsCiBQQVNTIGJhZFBhcmFtc1RvdWNoLmlk
ZW50aWZpZXIgaXMgMApAQCAtMjUsNiArMzEsOSBAQCBQQVNTIGJhZFBhcmFtc1RvdWNoLnBhZ2VY
IGlzIDAKIFBBU1MgYmFkUGFyYW1zVG91Y2gucGFnZVkgaXMgMAogUEFTUyBiYWRQYXJhbXNUb3Vj
aC5zY3JlZW5YIGlzIDAKIFBBU1MgYmFkUGFyYW1zVG91Y2guc2NyZWVuWSBpcyAxMDQKK1BBU1Mg
YmFkUGFyYW1zVG91Y2gud2Via2l0UmFkaXVzWCBpcyAwCitQQVNTIGJhZFBhcmFtc1RvdWNoLndl
YmtpdFJhZGl1c1kgaXMgMAorUEFTUyBiYWRQYXJhbXNUb3VjaC53ZWJraXRSb3RhdGlvbkFuZ2xl
IGlzIE5hTgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMv
ZG9jdW1lbnQtY3JlYXRlLXRvdWNoLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
c2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC5qcwppbmRleCBjNTFjN2UzMGIyODRm
OWU2ZDM1NjQyMmJjZTM1OWE1MTJlNmU4ZDg0Li4zYzQwNWIyZDFlMGY2N2Q4YjczMTY0NzYwOGY2
N2M3ZjhmNzBhYmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9z
Y3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91Y2guanMKQEAg
LTksNyArOSw3IEBAIGJveC5zdHlsZS5oZWlnaHQgPSAiMTAwcHgiOwogZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChib3gpOwogCiB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJveCIpOwotdmFyIHRvdWNoID0gZG9jdW1lbnQuY3JlYXRlVG91Y2god2luZG93LCB0YXJnZXQs
IDEsIDEwMCwgMTAxLCAxMDIsIDEwMyk7Cit2YXIgdG91Y2ggPSBkb2N1bWVudC5jcmVhdGVUb3Vj
aCh3aW5kb3csIHRhcmdldCwgMSwgMTAwLCAxMDEsIDEwMiwgMTAzLCA1LCAzLCAxMCk7CiBzaG91
bGRCZU5vbk51bGwoInRvdWNoIik7CiBzaG91bGRCZSgidG91Y2gudGFyZ2V0IiwgImJveCIpOwog
c2hvdWxkQmUoInRvdWNoLmlkZW50aWZpZXIiLCAiMSIpOwpAQCAtMTcsNiArMTcsOSBAQCBzaG91
bGRCZSgidG91Y2gucGFnZVgiLCAiMTAwIik7CiBzaG91bGRCZSgidG91Y2gucGFnZVkiLCAiMTAx
Iik7CiBzaG91bGRCZSgidG91Y2guc2NyZWVuWCIsICIxMDIiKTsKIHNob3VsZEJlKCJ0b3VjaC5z
Y3JlZW5ZIiwgIjEwMyIpOworc2hvdWxkQmUoInRvdWNoLndlYmtpdFJhZGl1c1giLCAiNSIpOwor
c2hvdWxkQmUoInRvdWNoLndlYmtpdFJhZGl1c1kiLCAiMyIpOworc2hvdWxkQmUoInRvdWNoLndl
YmtpdFJvdGF0aW9uQW5nbGUiLCAiMTAiKTsKIAogdmFyIGVtcHR5VG91Y2ggPSBkb2N1bWVudC5j
cmVhdGVUb3VjaCgpOwogc2hvdWxkQmVOb25OdWxsKCJlbXB0eVRvdWNoIik7CkBAIC0yNiw5ICsy
OSwxMiBAQCBzaG91bGRCZSgiZW1wdHlUb3VjaC5wYWdlWCIsICIwIik7CiBzaG91bGRCZSgiZW1w
dHlUb3VjaC5wYWdlWSIsICIwIik7CiBzaG91bGRCZSgiZW1wdHlUb3VjaC5zY3JlZW5YIiwgIjAi
KTsKIHNob3VsZEJlKCJlbXB0eVRvdWNoLnNjcmVlblkiLCAiMCIpOworc2hvdWxkQmUoImVtcHR5
VG91Y2gud2Via2l0UmFkaXVzWCIsICIwIik7CitzaG91bGRCZSgiZW1wdHlUb3VjaC53ZWJraXRS
YWRpdXNZIiwgIjAiKTsKK3Nob3VsZEJlTmFOKCJlbXB0eVRvdWNoLndlYmtpdFJvdGF0aW9uQW5n
bGUiKTsKIAogLy8gVHJ5IGludm9raW5nIHdpdGggaW5jb3JyZWN0IHBhcmFtZXRlciB0eXBlcy4K
LXZhciBiYWRQYXJhbXNUb3VjaCA9IGRvY3VtZW50LmNyZWF0ZVRvdWNoKGZ1bmN0aW9uKHgpIHsg
cmV0dXJuIHg7IH0sIDEyLCAnYScsICdiJywgJ2MnLCBmdW5jdGlvbih4KSB7IHJldHVybiB4OyB9
LCAxMDQpOwordmFyIGJhZFBhcmFtc1RvdWNoID0gZG9jdW1lbnQuY3JlYXRlVG91Y2goZnVuY3Rp
b24oeCkgeyByZXR1cm4geDsgfSwgMTIsICdhJywgJ2InLCAnYycsIGZ1bmN0aW9uKHgpIHsgcmV0
dXJuIHg7IH0sIDEwNCwgJ2EnLCAnYicsICdjJyk7CiBzaG91bGRCZU5vbk51bGwoImJhZFBhcmFt
c1RvdWNoIik7CiBzaG91bGRCZU51bGwoImJhZFBhcmFtc1RvdWNoLnRhcmdldCIpOwogc2hvdWxk
QmUoImJhZFBhcmFtc1RvdWNoLmlkZW50aWZpZXIiLCAiMCIpOwpAQCAtMzYsNiArNDIsOSBAQCBz
aG91bGRCZSgiYmFkUGFyYW1zVG91Y2gucGFnZVgiLCAiMCIpOwogc2hvdWxkQmUoImJhZFBhcmFt
c1RvdWNoLnBhZ2VZIiwgIjAiKTsKIHNob3VsZEJlKCJiYWRQYXJhbXNUb3VjaC5zY3JlZW5YIiwg
IjAiKTsKIHNob3VsZEJlKCJiYWRQYXJhbXNUb3VjaC5zY3JlZW5ZIiwgIjEwNCIpOworc2hvdWxk
QmUoImJhZFBhcmFtc1RvdWNoLndlYmtpdFJhZGl1c1giLCAiMCIpOworc2hvdWxkQmUoImJhZFBh
cmFtc1RvdWNoLndlYmtpdFJhZGl1c1kiLCAiMCIpOworc2hvdWxkQmVOYU4oImJhZFBhcmFtc1Rv
dWNoLndlYmtpdFJvdGF0aW9uQW5nbGUiKTsKIAogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU0NWUxZjgzN2QxYzg4YjFj
OTcwYTI4YmMxZmQyOTZmYmE0NmM3OC4uYzQxOTVmYTJiNDRjOTM0YjdhMzc0MGYwZTZjNjAzMzg1
NGIwMzJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTA1LTA0ICBZdWZlbmcg
U2hlbiAgPG1pbGV0dXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IGV4cG9zZSBleHRyYSB0b3VjaCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTkwMzAKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6Y3JlYXRlVG91Y2gpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5pZGw6CisgICAgICAgICogZG9tL1RvdWNoLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRvdWNoOjpUb3VjaCk6CisgICAgICAgICogZG9tL1RvdWNoLmg6CisgICAgICAg
IChXZWJDb3JlOjpUb3VjaDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoOjp3ZWJr
aXRSYWRpdXNYKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoOjp3ZWJraXRSYWRpdXNZKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRvdWNoOjp3ZWJraXRSb3RhdGlvbkFuZ2xlKToKKyAgICAgICAgKiBk
b20vVG91Y2guaWRsOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRv
dWNoUG9pbnQ6OnJhZGl1c1gpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaFBvaW50
OjpyYWRpdXNZKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hQb2ludDo6cm90YXRp
b25BbmdsZSk6CisKIDIwMTEtMDUtMDMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIEZpeCBtb3N0IHN0cmljdCBQYXNzT3duUHRyIHZpb2xhdGlvbnMgb24gV2luZG93
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjcwZDYzMGY5OTE0YTE0MDQ0YTQ2M2E1NmFm
ZGVhZTdhNzc4MmNkOS4uYWZlZWU4ZDY0ZGI2OGE1YzNiM2NjNDc4MTM1ZTI0ZWI1YTc5ZTk1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00OTY2LDcgKzQ5NjYsNyBAQCB2b2lkIERvY3Vt
ZW50OjpzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVTdGFtcCB0aW1lKQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotUGFzc1JlZlB0cjxUb3VjaD4gRG9jdW1lbnQ6
OmNyZWF0ZVRvdWNoKERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQg
aWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVu
WSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0CitQYXNzUmVmUHRyPFRvdWNoPiBEb2N1bWVudDo6Y3Jl
YXRlVG91Y2goRE9NV2luZG93KiB3aW5kb3csIEV2ZW50VGFyZ2V0KiB0YXJnZXQsIGludCBpZGVu
dGlmaWVyLCBpbnQgcGFnZVgsIGludCBwYWdlWSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcmFkaXVzWCwgaW50IHJhZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUsIEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBjbGVhciBmcm9tIHRoZSBkb2N1
bWVudGF0aW9uIGF0CiAgICAgLy8gaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9z
YWZhcmkvI2RvY3VtZW50YXRpb24vVXNlckV4cGVyaWVuY2UvUmVmZXJlbmNlL0RvY3VtZW50QWRk
aXRpb25zUmVmZXJlbmNlL0RvY3VtZW50QWRkaXRpb25zL0RvY3VtZW50QWRkaXRpb25zLmh0bWwK
QEAgLTQ5NzQsNyArNDk3NCw3IEBAIFBhc3NSZWZQdHI8VG91Y2g+IERvY3VtZW50OjpjcmVhdGVU
b3VjaChET01XaW5kb3cqIHdpbmRvdywgRXZlbnRUYXJnZXQqIHRhcmdldCwKICAgICAvLyBhbmQg
aW1wbGVtZW50IHRoZW0gaGVyZS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NzgxOQogICAgIC8vIERpdHRvIGZvciB0aGUgY3JlYXRlVG91Y2hMaXN0IG1ldGhv
ZCBiZWxvdy4KICAgICBGcmFtZSogZnJhbWUgPSB3aW5kb3cgPyB3aW5kb3ctPmZyYW1lKCkgOiB0
aGlzLT5mcmFtZSgpOwotICAgIHJldHVybiBUb3VjaDo6Y3JlYXRlKGZyYW1lLCB0YXJnZXQsIGlk
ZW50aWZpZXIsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSk7CisgICAgcmV0dXJuIFRv
dWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwg
cGFnZVgsIHBhZ2VZLCByYWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlKTsKIH0KIAogUGFz
c1JlZlB0cjxUb3VjaExpc3Q+IERvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QoRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc3ZmYyMzY5NWI3ZGYxODU5NzZiZDMx
MjU2MDczMGY3ZGMxMWNlMDUuLmM2NDNkODZiZGRjNDllNWE1MmY2MTYxZTE0OGQ0OTMzMzkyNDYy
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0RlbGF5aW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkRXZlbnRE
ZWxheUNvdW50OyB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIFBhc3NSZWZQdHI8
VG91Y2g+IGNyZWF0ZVRvdWNoKERPTVdpbmRvdyosIEV2ZW50VGFyZ2V0KiwgaW50IGlkZW50aWZp
ZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFRvdWNoPiBjcmVhdGVUb3VjaChET01X
aW5kb3cqLCBFdmVudFRhcmdldCosIGludCBpZGVudGlmaWVyLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcmFkaXVzWCwgaW50IHJhZGl1c1ksIGZs
b2F0IHJvdGF0aW9uQW5nbGUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBQYXNzUmVmUHRy
PFRvdWNoTGlzdD4gY3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA1Y2ZhYjI0ZTBmNzMzZDhlYjgxYTY3Yjc0
ZjVmOTdhN2FlZDBlYWQyLi5iZWNjNzc0MWMwNDVlNmRiN2E3ZmYzNDg0MTY0OGI2Mzc2N2JiNzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTMyMiw4ICszMjIsMTEgQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gbG9uZyBpZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBwYWdlWCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgcGFnZVks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBsb25nIFNjcmVlblgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVlblkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVlblgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBsb25nIHNjcmVlblksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBsb25nIHdlYmtpdFJhZGl1c1gsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHdlYmtpdFJh
ZGl1c1ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBmbG9hdCB3ZWJraXRSb3RhdGlvbkFuZ2xlKQogICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwogICAgICAgICBbUmV0dXJuc05ldywgRW5hYmxlZEF0UnVudGltZSwg
Q3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KCkKICAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guY3BwCmluZGV4IGZiYjNmZWRhNDI0YzFkOGFiYjhm
MzQ2YmE5ZjgzMTc0ZmJkNTljMGUuLjQ3ODA5MGIyMTM1YjkzZDI5MDhkMDEwOWNlMjk2NjljYTI1
NTU5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmNwcApAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgaW50IGNv
bnRlbnRzWShGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIGZyYW1lVmlldy0+c2Nyb2xsWSgpIC8g
ZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCk7CiB9CiAKLVRvdWNoOjpUb3VjaChGcmFtZSogZnJhbWUs
IEV2ZW50VGFyZ2V0KiB0YXJnZXQsIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3JlZW5YLCBp
bnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVkpCitUb3VjaDo6VG91Y2goRnJhbWUqIGZy
YW1lLCBFdmVudFRhcmdldCogdGFyZ2V0LCB1bnNpZ25lZCBpZGVudGlmaWVyLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgcmFkaXVzWCwgaW50IHJh
ZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUpCiAgICAgOiBtX3RhcmdldCh0YXJnZXQpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY2xpZW50WChwYWdlWCAtIGNvbnRl
bnRzWChmcmFtZSkpCkBAIC02Miw2ICs2Miw5IEBAIFRvdWNoOjpUb3VjaChGcmFtZSogZnJhbWUs
IEV2ZW50VGFyZ2V0KiB0YXJnZXQsIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3JlZW5YCiAg
ICAgLCBtX3NjcmVlblkoc2NyZWVuWSkKICAgICAsIG1fcGFnZVgocGFnZVgpCiAgICAgLCBtX3Bh
Z2VZKHBhZ2VZKQorICAgICwgbV9yYWRpdXNYKHJhZGl1c1gpCisgICAgLCBtX3JhZGl1c1kocmFk
aXVzWSkKKyAgICAsIG1fcm90YXRpb25BbmdsZShyb3RhdGlvbkFuZ2xlKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
b3VjaC5oCmluZGV4IDU0ZTg1YTUzZjAxYTBjY2U3ZjI0ZmQ2ZTM0MGM2YzM3ZDE3ODk3ZDYuLjU0
YjA0ZmFmNTZkZTA1M2JiMWZiZWFjNDAwNWE0NWQ2YWNmMTA1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5oCkBA
IC0zOSwxMCArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVG91Y2ggOiBwdWJs
aWMgUmVmQ291bnRlZDxUb3VjaD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRv
dWNoPiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBFdmVudFRhcmdldCogdGFyZ2V0LAotICAgICAgICAg
ICAgdW5zaWduZWQgaWRlbnRpZmllciwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFn
ZVgsIGludCBwYWdlWSkKKyAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXIsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCisgICAgICAgICAgICBpbnQg
cmFkaXVzWCwgaW50IHJhZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFRvdWNoKGZyYW1lLCB0YXJnZXQsIGlkZW50aWZpZXIsIHNj
cmVlblgsIAotICAgICAgICAgICAgICAgIHNjcmVlblksIHBhZ2VYLCBwYWdlWSkpOworICAgICAg
ICAgICAgICAgIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwgcmFkaXVzWCwgcmFkaXVzWSwgcm90YXRp
b25BbmdsZSkpOwogICAgIH0KIAogICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXQoKSBjb25zdCB7IHJl
dHVybiBtX3RhcmdldC5nZXQoKTsgfQpAQCAtNTMsMTAgKzU0LDE0IEBAIHB1YmxpYzoKICAgICBp
bnQgc2NyZWVuWSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuWTsgfQogICAgIGludCBwYWdlWCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFnZVg7IH0KICAgICBpbnQgcGFnZVkoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2VZOyB9CisgICAgaW50IHdlYmtpdFJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3Jh
ZGl1c1g7IH0KKyAgICBpbnQgd2Via2l0UmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVz
WTsgfQorICAgIGZsb2F0IHdlYmtpdFJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3Jv
dGF0aW9uQW5nbGU7IH0KIAogcHJpdmF0ZToKICAgICBUb3VjaChGcmFtZSogZnJhbWUsIEV2ZW50
VGFyZ2V0KiB0YXJnZXQsIHVuc2lnbmVkIGlkZW50aWZpZXIsCi0gICAgICAgICAgICBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZKTsKKyAgICAgICAgICAgIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCisgICAgICAgICAg
ICBpbnQgcmFkaXVzWCwgaW50IHJhZGl1c1ksIGZsb2F0IHJvdGF0aW9uQW5nbGUpOwogCiAgICAg
UmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKICAgICB1bnNpZ25lZCBtX2lkZW50aWZpZXI7
CkBAIC02Niw2ICs3MSw5IEBAIHByaXZhdGU6CiAgICAgaW50IG1fc2NyZWVuWTsKICAgICBpbnQg
bV9wYWdlWDsKICAgICBpbnQgbV9wYWdlWTsKKyAgICBpbnQgbV9yYWRpdXNYOworICAgIGludCBt
X3JhZGl1c1k7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ub3VjaC5pZGwKaW5kZXggMWFmYzYzYWI0OTU0YjVlN2E1NWI5M2I2
ZWY2YTRkYjY3NDc4MGE2MC4uM2M2MjA0MmZhOWMyNmVlMjQ4YmMyOGIyMzQxN2Q5NDRkYzA3ZDky
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVG91Y2guaWRsCkBAIC0zNiw1ICszNiw4IEBAIG1vZHVsZSBldmVudHMgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBwYWdlWTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEV2ZW50VGFyZ2V0ICAgICAgdGFyZ2V0OwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICBpZGVudGlmaWVyOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgaW50ICAgICAgICAgICAgICB3ZWJraXRSYWRpdXNYOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgaW50ICAgICAgICAgICAgICB3ZWJraXRSYWRpdXNZOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgICAgICAgICAgICB3ZWJraXRSb3RhdGlvbkFu
Z2xlOwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMmVj
ZDZlZDM4NzRlMmJjYTUzYjA1NDMwMzYyZjQyMDIyZTllOWQwZS4uNjg4MTBmZjUxZjJmOGE2MWUy
NGZkNjg2Nzc2ZGNhZmU5ZmYzMTk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMzEzMSw3ICszMTMxLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZl
bnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKIAogICAgICAgICBSZWZQdHI8VG91
Y2g+IHRvdWNoID0gVG91Y2g6OmNyZWF0ZShkb2MtPmZyYW1lKCksIHRvdWNoVGFyZ2V0LmdldCgp
LCBwb2ludC5pZCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwb2ludC5zY3JlZW5Qb3MoKS54KCksIHBvaW50LnNjcmVlblBvcygpLnkoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRQYWdlWCwgYWRqdXN0
ZWRQYWdlWSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFk
anVzdGVkUGFnZVgsIGFkanVzdGVkUGFnZVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBvaW50LnJhZGl1c1goKSwgcG9pbnQucmFkaXVzWSgpLCBwb2ludC5y
b3RhdGlvbkFuZ2xlKCkpOwogCiAgICAgICAgIC8vIEVuc3VyZSB0aGlzIHRhcmdldCdzIHRvdWNo
IGxpc3QgZXhpc3RzLCBldmVuIGlmIGl0IGVuZHMgdXAgZW1wdHksIHNvIGl0IGNhbiBhbHdheXMg
YmUgcGFzc2VkIHRvIFRvdWNoRXZlbnQ6OkNyZWF0ZSBiZWxvdy4KICAgICAgICAgVGFyZ2V0VG91
Y2hlc01hcDo6aXRlcmF0b3IgdGFyZ2V0VG91Y2hlc0l0ZXJhdG9yID0gdG91Y2hlc0J5VGFyZ2V0
LmZpbmQodG91Y2hUYXJnZXQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVRvdWNoUG9pbnQuaAppbmRleCBiYzE5ZjgwNmE4ZmQzYTg3MDZlZWQwNmJkNjUzNzFiNThh
N2RkY2YxLi45ZDliNGZjNjBiY2M0MmFlMTc3OTAyN2MxZWRkOWQwZDBkYzczZGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaApAQCAtNTksMTIgKzU5
LDE4IEBAIHB1YmxpYzoKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7
IH0KICAgICBJbnRQb2ludCBzY3JlZW5Qb3MoKSBjb25zdCB7IHJldHVybiBtX3NjcmVlblBvczsg
fQogICAgIEludFBvaW50IHBvcygpIGNvbnN0IHsgcmV0dXJuIG1fcG9zOyB9Ci0gICAgCisgICAg
aW50IHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1g7IH0KKyAgICBpbnQgcmFkaXVz
WSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIGZsb2F0IHJvdGF0aW9uQW5nbGUo
KSBjb25zdCB7IHJldHVybiBtX3JvdGF0aW9uQW5nbGU7IH0KKwogcHJvdGVjdGVkOgogICAgIHVu
c2lnbmVkIG1faWQ7CiAgICAgU3RhdGUgbV9zdGF0ZTsKICAgICBJbnRQb2ludCBtX3NjcmVlblBv
czsKICAgICBJbnRQb2ludCBtX3BvczsKKyAgICBpbnQgbV9yYWRpdXNZOworICAgIGludCBtX3Jh
ZGl1c1g7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCAxNjAwM2Y4ZDExMGE1N2Q5MDRmMjY1MDA5ZWE1MWQ5YzFiNjExMmMw
Li40NDUzNWEwZjlkZjQ1N2I3Y2ExODQyY2M4YjhkMTZmOTZlNTE3YTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA1LTA0ICBZdWZlbmcgU2hlbiAg
PG1pbGV0dXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IGV4cG9zZSBleHRyYSB0b3VjaCBpbmZvcm1hdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkwMzAK
KworICAgICAgICAqIHB1YmxpYy9XZWJUb3VjaFBvaW50Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlRvdWNoUG9pbnQ6OldlYlRvdWNoUG9pbnQpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50
Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtVG91Y2hQb2ludEJ1aWxk
ZXI6OlBsYXRmb3JtVG91Y2hQb2ludEJ1aWxkZXIpOgorCiAyMDExLTA1LTAzICBKdWxpZW4gQ2hh
ZmZyYWl4ICA8amNoYWZmcmFpeEBjb2RlYXVyb3JhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEaW1pdHJpIEdsYXprb3YuCkBAIC03MzksNiArNzUxLDcgQEAKIAogICAgICAgICAqIHNyYy9n
dGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOiBzZXQgY2xpY2sgY291bnQgZm9yIG1vdXNlIHVw
IGV2ZW50cy4KICAgICAgICAgKiB0ZXN0cy9XZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RHdGsuY3Bw
OiBhZGRlZCB0ZXN0IGNhc2UgTW91c2VVcENsaWNrQ291bnQuCisKIDIwMTEtMDQtMjAgIEV2YW4g
TWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBD
aGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRvdWNo
UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlRvdWNoUG9pbnQuaApp
bmRleCAzZDYwNzQ0MDExMWRjMjFlN2YxZTBlZjRiYTk5YzdiYmQ1MGM5YjNmLi42MmU1NzY5YTE1
ZGRiMTQ1MjFlMjNmYTZkZGE3ZjFlNzA3M2M1NGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJUb3VjaFBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVG91Y2hQb2ludC5oCkBAIC00Niw3ICs0NiwxMiBAQCBwdWJsaWM6CiAK
ICAgICBXZWJUb3VjaFBvaW50KCkKICAgICAgICAgOiBpZChGaW5nZXJGaXJzdCkKLSAgICAgICAg
LCBzdGF0ZShTdGF0ZVVuZGVmaW5lZCkgeyB9CisgICAgICAgICwgc3RhdGUoU3RhdGVVbmRlZmlu
ZWQpCisgICAgICAgICwgcmFkaXVzWCgwKQorICAgICAgICAsIHJhZGl1c1koMCkKKyAgICAgICAg
LCByb3RhdGlvbkFuZ2xlKDApCisgICAgeworICAgIH0KIAogICAgIGVudW0gU3RhdGUgewogICAg
ICAgICBTdGF0ZVVuZGVmaW5lZCwKQEAgLTYxLDYgKzY2LDEwIEBAIHB1YmxpYzoKICAgICBTdGF0
ZSBzdGF0ZTsKICAgICBXZWJQb2ludCBzY3JlZW5Qb3NpdGlvbjsKICAgICBXZWJQb2ludCBwb3Np
dGlvbjsKKworICAgIGludCByYWRpdXNYOworICAgIGludCByYWRpdXNZOworICAgIGZsb2F0IHJv
dGF0aW9uQW5nbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRl
eCAyNGVlYjg4NWIwZjI4MGM2YzIwOWRmMWYyMjBkOGMyZjM0MzY4M2NmLi5mODliODA3OWQwYmQx
ZTUzYjMxOTU4NDE5ODdkMzE2ZjBjZmE5MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC0yMTIsNiArMjEy
LDkgQEAgUGxhdGZvcm1Ub3VjaFBvaW50QnVpbGRlcjo6UGxhdGZvcm1Ub3VjaFBvaW50QnVpbGRl
cihXaWRnZXQqIHdpZGdldCwgY29uc3QgV2ViVG8KICAgICBtX3N0YXRlID0gdG9QbGF0Zm9ybVRv
dWNoUG9pbnRTdGF0ZShwb2ludC5zdGF0ZSk7CiAgICAgbV9wb3MgPSB3aWRnZXQtPmNvbnZlcnRG
cm9tQ29udGFpbmluZ1dpbmRvdyhwb2ludC5wb3NpdGlvbik7CiAgICAgbV9zY3JlZW5Qb3MgPSBw
b2ludC5zY3JlZW5Qb3NpdGlvbjsKKyAgICBtX3JhZGl1c1kgPSBwb2ludC5yYWRpdXNZOworICAg
IG1fcmFkaXVzWCA9IHBvaW50LnJhZGl1c1g7CisgICAgbV9yb3RhdGlvbkFuZ2xlID0gcG9pbnQu
cm90YXRpb25BbmdsZTsKIH0KIAogUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1U
b3VjaEV2ZW50QnVpbGRlcihXaWRnZXQqIHdpZGdldCwgY29uc3QgV2ViVG91Y2hFdmVudCYgZXZl
bnQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>