<?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>28023</bug_id>
          
          <creation_ts>2009-08-05 11:38:55 -0700</creation_ts>
          <short_desc>Scrolling with middle mouse button doesn&apos;t work in Expanded view on reader.google.com</short_desc>
          <delta_ts>2009-08-12 16:57:37 -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>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>28166</dependson>
          <blocked>27850</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>adele</cc>
    
    <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>137357</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-05 11:38:55 -0700</bug_when>
    <thetext>- Click any article under RSS subscriptions
- Click Expanded-List in the right top corner
- try pan-scrolling

Expected: The page pan scrolls.
Actual: It shows the icon, but doesn&apos;t.

&lt;rdar://6622771&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137360</commentid>
    <comment_count>1</comment_count>
      <attachid>34157</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-05 11:44:47 -0700</bug_when>
    <thetext>Created attachment 34157
Another way to Scroll</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137361</commentid>
    <comment_count>2</comment_count>
      <attachid>34157</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-08-05 11:54:46 -0700</bug_when>
    <thetext>Comment on attachment 34157
Another way to Scroll

Why are you scrolling the enclosing box here?  This makes me think that scrollByRecursively isn&apos;t getting on the right renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137362</commentid>
    <comment_count>3</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-08-05 11:55:18 -0700</bug_when>
    <thetext>meant to say &quot;isn&apos;t getting called on the right renderer&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137363</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-05 11:57:22 -0700</bug_when>
    <thetext>I was testing on Google Reader, and this was the case that caused the mouse wheel to scroll, I figured this might be a useful case to add. I got this code from EventHandler::scrollAndAcceptEvent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137366</commentid>
    <comment_count>5</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-08-05 12:04:36 -0700</bug_when>
    <thetext>scrollAndAcceptEvent gets called after the first node with a renderer is found.  So it makes sense that that renderer might not be scrollable.  But scrollByRecursively is called on a RenderLayer and is supposed to scroll that layer and be recursively called on other layers in the chain.

Adding this case is not correct.  Either we should be calling scrollByRecursively on a different starting layer, or its not being called recursively on the right layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137606</commentid>
    <comment_count>6</comment_count>
      <attachid>34214</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-06 11:23:33 -0700</bug_when>
    <thetext>Created attachment 34214
Scroll Fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137625</commentid>
    <comment_count>7</comment_count>
      <attachid>34214</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-08-06 12:45:12 -0700</bug_when>
    <thetext>Comment on attachment 34214
Scroll Fixes

How does the addition of canBeScrolledAndHasScrollableArea work for frames?  I mentioned offline to you that the recursion logic in scrollByRecursively should match the recursion logic in scrollRectToVisible.  Is that true now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137648</commentid>
    <comment_count>8</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-06 13:52:19 -0700</bug_when>
    <thetext>For frames, this won&apos;t change the current behavior. It will scroll in frames, but then won&apos;t jump out of them (making it do that would be a second patch). I need to clean up the end of the recursion, and will be posting another patch for that, but from what I can tell, the recursion that we have works very similarly to scrollRectToVisible, except that we don&apos;t jump out of frames like they do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137904</commentid>
    <comment_count>9</comment_count>
      <attachid>34214</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-07 08:47:27 -0700</bug_when>
    <thetext>Comment on attachment 34214
Scroll Fixes

LGTM, except this needs tests.  Layout tests would be *strongly* preferred (and should be possible with eventSender!).  But a WebCore/manual-test would be fine too.

Thanks for the change.  Please re-post with tests and I (or anyone else) will be happy to r+ this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138143</commentid>
    <comment_count>10</comment_count>
      <attachid>34328</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-07 14:17:32 -0700</bug_when>
    <thetext>Created attachment 34328
Scroll Fixes + Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138146</commentid>
    <comment_count>11</comment_count>
      <attachid>34330</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-07 14:21:40 -0700</bug_when>
    <thetext>Created attachment 34330
Scroll Fixes + Test + Newline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138338</commentid>
    <comment_count>12</comment_count>
      <attachid>34330</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-08 08:56:32 -0700</bug_when>
    <thetext>Comment on attachment 34330
Scroll Fixes + Test + Newline

Did you investigate making an automated test?  I really wouldn&apos;t think it would be very hard (but I may just be naive).  You just add a little &lt;script&gt; tag to your existing test, which calls eventSender.mouseDown(2) and then eventSender.mouseMoveTo(x, y).  But maybe pan scroll events wouldn&apos;t work in DRT?  Either way it seems we should have an explanation in a bug of why we can&apos;t test pan scrolling with the intention of fixing it in DRT some day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138427</commentid>
    <comment_count>13</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-08 14:06:58 -0700</bug_when>
    <thetext>I saw there was a pan-scrolling test in manual-tests, so I was following that idea. I see a few autoscroll tests, so I will try to make mine match that, and work as an automated test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138758</commentid>
    <comment_count>14</comment_count>
      <attachid>34495</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-10 11:52:12 -0700</bug_when>
    <thetext>Created attachment 34495
Scroll Fixes + Attempted Automated Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138763</commentid>
    <comment_count>15</comment_count>
      <attachid>34495</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-08-10 12:01:30 -0700</bug_when>
    <thetext>Comment on attachment 34495
Scroll Fixes + Attempted Automated Test

I think the test isn&apos;t working because Windows DRT doesn&apos;t support the button number parameter to eventSender.mouseDown/mouseUp. See &lt;http://trac.webkit.org/browser/trunk/WebKitTools/DumpRenderTree/win/EventSender.cpp?rev=43762#L147&gt;. This would be easy to fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139008</commentid>
    <comment_count>16</comment_count>
      <attachid>34571</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-11 10:05:22 -0700</bug_when>
    <thetext>Created attachment 34571
Scroll Fixes + Automated Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139011</commentid>
    <comment_count>17</comment_count>
      <attachid>34572</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-11 10:11:26 -0700</bug_when>
    <thetext>Created attachment 34572
Fixed ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139015</commentid>
    <comment_count>18</comment_count>
      <attachid>34574</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-11 10:13:53 -0700</bug_when>
    <thetext>Created attachment 34574
Scroll Fixes + Automated Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139619</commentid>
    <comment_count>19</comment_count>
      <attachid>34574</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 15:54:08 -0700</bug_when>
    <thetext>Comment on attachment 34574
Scroll Fixes + Automated Test

Looks fine.  We need a bug report for:
 1033         // FIXME: If we didn&apos;t scroll the whole way, do we want to try looking at the frames ownerElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139635</commentid>
    <comment_count>20</comment_count>
      <attachid>34574</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 16:11:16 -0700</bug_when>
    <thetext>Comment on attachment 34574
Scroll Fixes + Automated Test

Removing cq+ per request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139660</commentid>
    <comment_count>21</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-08-12 16:57:37 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/47163.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34157</attachid>
            <date>2009-08-05 11:44:47 -0700</date>
            <delta_ts>2009-08-06 11:23:33 -0700</delta_ts>
            <desc>Another way to Scroll</desc>
            <filename>0001-2009-08-05-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>2698</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSBhZjNmYjdjZTc2M2NkMjhiNTI3ZjkzY2IwZDliODUwNGViNGMzYjk1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBXZWluc3RlaW4gPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgpEYXRlOiBXZWQsIDUgQXVnIDIwMDkgMTE6NDE6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIXSAy
MDA5LTA4LTA1ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFNjcm9sbGluZyB3aXRoIG1p
ZGRsZSBtb3VzZSBidXR0b24gKHBhbiBzY3JvbGxpbmcpIGRvZXNuJ3Qgd29yayBpbiBFeHBhbmRl
ZCB2aWV3IG9uCiAgICAgICAgcmVhZGVyLmdvb2dsZS5jb20uCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzCgogICAgICAgIEFkZCBhbiBhZGRpdGlv
bmFsIG1ldGhvZCBvZiBzY3JvbGxpbmcgdG8gc2Nyb2xsQnlSZWN1cnNpdmVseSwgdGhhdCBjYXRj
aGVzIHRoZSBFeHBhbmRlZAogICAgICAgIFZpZXcgb24gR29vZ2xlIFJlYWRlci4KCiAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsQnlSZWN1cnNpdmVseSk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgIHwgICAxNCArKysrKysrKysrKysrKwogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwIHwgICAgOSArKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygr
KSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDc3NTIwYmUuLmI5N2EzNzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDkt
MDgtMDUgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjcm9sbGluZyB3aXRoIG1p
ZGRsZSBtb3VzZSBidXR0b24gKHBhbiBzY3JvbGxpbmcpIGRvZXNuJ3Qgd29yayBpbiBFeHBhbmRl
ZCB2aWV3IG9uIAorICAgICAgICByZWFkZXIuZ29vZ2xlLmNvbS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzCisgICAgICAgIAorICAgICAgICBB
ZGQgYW4gYWRkaXRpb25hbCBtZXRob2Qgb2Ygc2Nyb2xsaW5nIHRvIHNjcm9sbEJ5UmVjdXJzaXZl
bHksIHRoYXQgY2F0Y2hlcyB0aGUgRXhwYW5kZWQKKyAgICAgICAgVmlldyBvbiBHb29nbGUgUmVh
ZGVyLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KToKKwogMjAwOS0wOC0wNCAg
QnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDBm
ODI3Yi4uNzZhNmMxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTk3LDEwICs5
OTcsMTkgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFuU2Nyb2xsRnJvbVBvaW50KGNvbnN0IEludFBv
aW50JiBzb3VyY2VQb2ludCkKIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsQnlSZWN1cnNpdmVs
eShpbnQgeERlbHRhLCBpbnQgeURlbHRhKQogeworICAgIGlmICgheERlbHRhICYmICF5RGVsdGEp
CisgICAgICAgIHJldHVybjsKKwogICAgIGJvb2wgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gZmFs
c2U7CiAgICAgaWYgKHJlbmRlcmVyKCktPnBhcmVudCgpKQogICAgICAgICByZXN0cmljdGVkQnlM
aW5lQ2xhbXAgPSByZW5kZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUNsYW1wKCkgPj0g
MDsKIAorICAgIC8vIFRoaXMgY29kZSB3b3JrcyBvbiBleHBhbmRlZCB2aWV3IG9uIEdvb2dsZSBS
ZWFkZXIgLSA8cmRhcjovLzY2MjI3NzE+LCBhbmQgc2hvdWxkIGhlbHAgY2FsbGVycyB0byB0aGlz
IGZ1bmN0aW9uCisgICAgLy8gc2Nyb2xsIGluIG1vcmUgZGlmZmVyZW50IGNhc2VzLgorICAgIGlm
IChyZW5kZXJlcigpLT5lbmNsb3NpbmdCb3goKS0+c2Nyb2xsKHhEZWx0YSA8IDAgPyBTY3JvbGxM
ZWZ0IDogU2Nyb2xsUmlnaHQsIFNjcm9sbEJ5UGl4ZWwsIGFicyh4RGVsdGEpKQorICAgICAgICB8
fCByZW5kZXJlcigpLT5lbmNsb3NpbmdCb3goKS0+c2Nyb2xsKHlEZWx0YSA8IDAgPyBTY3JvbGxV
cCA6IFNjcm9sbERvd24sIFNjcm9sbEJ5UGl4ZWwsIGFicyh5RGVsdGEpKSkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgaWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpICYmICFyZXN0cmlj
dGVkQnlMaW5lQ2xhbXApIHsKICAgICAgICAgaW50IG5ld09mZnNldFggPSBzY3JvbGxYT2Zmc2V0
KCkgKyB4RGVsdGE7CiAgICAgICAgIGludCBuZXdPZmZzZXRZID0gc2Nyb2xsWU9mZnNldCgpICsg
eURlbHRhOwotLSAKMS42LjEKCg==
</data>
<flag name="review"
          id="18318"
          type_id="1"
          status="-"
          setter="adele"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34214</attachid>
            <date>2009-08-06 11:23:33 -0700</date>
            <delta_ts>2009-08-07 14:17:32 -0700</delta_ts>
            <desc>Scroll Fixes</desc>
            <filename>0001-2009-08-06-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>7141</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSA4Mzk1NzU1Y2U5MjVmZGNjNGY2ZTc3NzJjZDU2MDMxZTZiMTgwZDBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBid2VpbnN0ZWluQGFwcGxlLmNvbSA8YndlaW5zdGVpbkBhcHBs
ZS5jb21AMjY4ZjQ1Y2MtY2QwOS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjPgpEYXRlOiBXZWQsIDUg
QXVnIDIwMDkgMDU6MjA6MTMgKzAwMDAKU3ViamVjdDogW1BBVENIXSAyMDA5LTA4LTA2ICBCcmlh
biBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgogICAgICAgIEZpeGVzIHR3byBidWdzIGFib3V0IFBhbiBTY3JvbGxp
bmcgLSBTY3JvbGxpbmcgd2l0aCBtaWRkbGUgbW91c2UgYnV0dG9uIGRvZXNuJ3QKICAgICAgICB3
b3JrIGluIEV4cGFuZGVkIHZpZXcgb24gcmVhZGVyLmdvb2dsZS5jb20sIGFuZCBDYW4gZW50ZXIg
YXV0byBzY3JvbGwgZnJvbSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEuCiAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzk0CgogICAgICAgIEFkZGVkIGEgbmV3IG1l
dGhvZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJlIHNjcm9sbGVkIGFuZCBh
Y3R1YWxseSBoYXMgc29tZXRoaW5nIHRvCiAgICAgICAgc2Nyb2xsLCBhbmQgdXNlIHRoYXQgZm9y
IHBhbiBzY3JvbGxpbmcuCgogICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgogICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcik6CiAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSk6CiAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94Lmg6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgogICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQnlSZWN1cnNpdmVseSk6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysrKysrKysrKysK
IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICB8ICAgIDQgKystLQogV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgIHwgICAgNSArKysrKwogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggICAgIHwgICAgMSArCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgfCAgIDE0ICsrKysrKysrKysrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBiNGViNzMzLi5mM2UwNDY3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDA5
LTA4LTA2ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyB0d28gYnVncyBh
Ym91dCBQYW4gU2Nyb2xsaW5nIC0gU2Nyb2xsaW5nIHdpdGggbWlkZGxlIG1vdXNlIGJ1dHRvbiBk
b2Vzbid0IAorICAgICAgICB3b3JrIGluIEV4cGFuZGVkIHZpZXcgb24gcmVhZGVyLmdvb2dsZS5j
b20sIGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJvbSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODAyMwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3OTQKKyAg
ICAgICAgCisgICAgICAgIEFkZGVkIGEgbmV3IG1ldGhvZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlm
IHRoZSBCb3ggY2FuIGJlIHNjcm9sbGVkIGFuZCBhY3R1YWxseSBoYXMgc29tZXRoaW5nIHRvCisg
ICAgICAgIHNjcm9sbCwgYW5kIHVzZSB0aGF0IGZvciBwYW4gc2Nyb2xsaW5nLgorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
Ojp1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjYW5CZVNjcm9sbGVkQW5kSGFz
U2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkpOgorICAgICAgICAKIDIwMDktMDgtMDQgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZy
YXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggY2JiY2Q2NC4uOWI1YzBhNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKQEAgLTQzMCw3ICs0MzAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VEcmFnZ2VkRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZQog
ICAgICAgICAvLyBJZiB0aGUgc2VsZWN0aW9uIGlzIGNvbnRhaW5lZCBpbiBhIGxheWVyIHRoYXQg
Y2FuIHNjcm9sbCwgdGhhdCBsYXllciBzaG91bGQgaGFuZGxlIHRoZSBhdXRvc2Nyb2xsCiAgICAg
ICAgIC8vIE90aGVyd2lzZSwgbGV0IHRoZSBicmlkZ2UgaGFuZGxlIGl0IHNvIHRoZSB2aWV3IGNh
biBzY3JvbGwgaXRzZWxmLgogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGFyZ2V0
Tm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXIt
PmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlT
Y3JvbGxlZChmYWxzZSkpKSB7CisgICAgICAgIHdoaWxlIChyZW5kZXJlciAmJiAoIXJlbmRlcmVy
LT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChyZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRBbmRIYXNT
Y3JvbGxhYmxlQXJlYSgpKSkgewogICAgICAgICAgICAgaWYgKCFyZW5kZXJlci0+cGFyZW50KCkg
JiYgcmVuZGVyZXItPm5vZGUoKSA9PSByZW5kZXJlci0+ZG9jdW1lbnQoKSAmJiByZW5kZXJlci0+
ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCkpCiAgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBy
ZW5kZXJlci0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCktPnJlbmRlcmVyKCk7CiAgICAgICAg
ICAgICBlbHNlCkBAIC03MjAsNyArNzIwLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUF1
dG9zY3JvbGxSZW5kZXJlcigpCiAgICAgaWYgKE5vZGUqIG5vZGVBdFBvaW50ID0gaGl0VGVzdC5p
bm5lck5vZGUoKSkKICAgICAgICAgbV9hdXRvc2Nyb2xsUmVuZGVyZXIgPSBub2RlQXRQb2ludC0+
cmVuZGVyZXIoKTsKIAotICAgIHdoaWxlIChtX2F1dG9zY3JvbGxSZW5kZXJlciAmJiAoIW1fYXV0
b3Njcm9sbFJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChtX2F1dG9zY3JvbGxSZW5k
ZXJlciktPmNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoZmFsc2UpKSkKKyAgICB3aGlsZSAo
bV9hdXRvc2Nyb2xsUmVuZGVyZXIgJiYgKCFtX2F1dG9zY3JvbGxSZW5kZXJlci0+aXNCb3goKSB8
fCAhdG9SZW5kZXJCb3gobV9hdXRvc2Nyb2xsUmVuZGVyZXIpLT5jYW5CZVNjcm9sbGVkQW5kSGFz
U2Nyb2xsYWJsZUFyZWEoKSkpCiAgICAgICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gbV9hdXRv
c2Nyb2xsUmVuZGVyZXItPnBhcmVudCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRl
eCAxMjJiZTJmLi45MDdkYjRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQxMCw2ICs0
MTAsMTEgQEAgYm9vbCBSZW5kZXJCb3g6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9u
LCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwKICAgICAgICAgcmV0dXJuIGItPnNjcm9s
bChkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBtdWx0aXBsaWVyKTsKICAgICByZXR1cm4gZmFsc2U7
CiB9CisKK2Jvb2wgUmVuZGVyQm94OjpjYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEo
KSBjb25zdAoreworICAgcmV0dXJuIGNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoZmFsc2Up
ICYmIChzY3JvbGxIZWlnaHQoKSAhPSBjbGllbnRIZWlnaHQoKSB8fCBzY3JvbGxXaWR0aCgpICE9
IGNsaWVudFdpZHRoKCkpOworfQogICAgIAogYm9vbCBSZW5kZXJCb3g6OmNhbkJlUHJvZ3JhbWF0
aWNhbGx5U2Nyb2xsZWQoYm9vbCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggMjJm
ZTViNy4uYTU5YzM5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTIzMCw2ICsyMzAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBpbnQgdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpIGNvbnN0Owog
ICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0
aXBsaWVyID0gMS4wZik7CisgICAgYm9vbCBjYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFy
ZWEoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxl
ZChib29sKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYXV0b3Njcm9sbCgpOwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wQXV0b3Njcm9sbCgpIHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IDAwZjgyN2IuLmYwNGVkYjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTk5
Nyw2ICs5OTcsOSBAQCB2b2lkIFJlbmRlckxheWVyOjpwYW5TY3JvbGxGcm9tUG9pbnQoY29uc3Qg
SW50UG9pbnQmIHNvdXJjZVBvaW50KQogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxCeVJlY3Vy
c2l2ZWx5KGludCB4RGVsdGEsIGludCB5RGVsdGEpCiB7CisgICAgaWYgKCF4RGVsdGEgJiYgIXlE
ZWx0YSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYm9vbCByZXN0cmljdGVkQnlMaW5lQ2xhbXAg
PSBmYWxzZTsKICAgICBpZiAocmVuZGVyZXIoKS0+cGFyZW50KCkpCiAgICAgICAgIHJlc3RyaWN0
ZWRCeUxpbmVDbGFtcCA9IHJlbmRlcmVyKCktPnBhcmVudCgpLT5zdHlsZSgpLT5saW5lQ2xhbXAo
KSA+PSAwOwpAQCAtMTAwNiwxMSArMTAwOSwxOCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxC
eVJlY3Vyc2l2ZWx5KGludCB4RGVsdGEsIGludCB5RGVsdGEpCiAgICAgICAgIGludCBuZXdPZmZz
ZXRZID0gc2Nyb2xsWU9mZnNldCgpICsgeURlbHRhOwogICAgICAgICBzY3JvbGxUb09mZnNldChu
ZXdPZmZzZXRYLCBuZXdPZmZzZXRZKTsKIAotICAgICAgICAvLyBJZiB0aGlzIGxheWVyIGNhbid0
IGRvIHRoZSBzY3JvbGwgd2UgYXNrIGl0cyBwYXJlbnQKKyAgICAgICAgLy8gSWYgdGhpcyBsYXll
ciBjYW4ndCBkbyB0aGUgc2Nyb2xsIHdlIGFzayB0aGUgbmV4dCBsYXllciB1cCB0aGF0IGNhbiBi
ZSBwcm9ncmFtbWF0aWNhbGx5IHNjcm9sbGVkIHRvIHRyeQogICAgICAgICBpbnQgbGVmdFRvU2Ny
b2xsWCA9IG5ld09mZnNldFggLSBzY3JvbGxYT2Zmc2V0KCk7CiAgICAgICAgIGludCBsZWZ0VG9T
Y3JvbGxZID0gbmV3T2Zmc2V0WSAtIHNjcm9sbFlPZmZzZXQoKTsKICAgICAgICAgaWYgKChsZWZ0
VG9TY3JvbGxYIHx8IGxlZnRUb1Njcm9sbFkpICYmIHJlbmRlcmVyKCktPnBhcmVudCgpKSB7Ci0g
ICAgICAgICAgICByZW5kZXJlcigpLT5wYXJlbnQoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+c2Nyb2xs
QnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBsZWZ0VG9TY3JvbGxZKTsKKyAgICAgICAgICAg
IFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyID0gcmVuZGVyZXIoKS0+cGFyZW50KCk7CisgICAg
ICAgICAgICB3aGlsZSAobmV4dFJlbmRlcmVyICYmIG5leHRSZW5kZXJlci0+aXNCb3goKSkgewor
ICAgICAgICAgICAgICAgIGlmICh0b1JlbmRlckJveChuZXh0UmVuZGVyZXIpLT5jYW5CZVNjcm9s
bGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSkgeworICAgICAgICAgICAgICAgICAgICBuZXh0UmVu
ZGVyZXItPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbEJ5UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xs
WCwgbGVmdFRvU2Nyb2xsWSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXh0UmVuZGVyZXIgPSBuZXh0UmVuZGVyZXItPnBh
cmVudCgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcmVuZGVy
ZXIoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICAgICAgICAgIGlmIChmcmFtZSkKICAgICAg
ICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJl
cigpOwotLSAKMS42LjEKCg==
</data>
<flag name="review"
          id="18372"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34328</attachid>
            <date>2009-08-07 14:17:32 -0700</date>
            <delta_ts>2009-08-07 14:21:40 -0700</delta_ts>
            <desc>Scroll Fixes + Test</desc>
            <filename>0001-2009-08-07-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>9937</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSAyNjE2Y2NiYWJhNjYyMDIyYmM4ZmJiODgxMmRmNjNkMTc0Y2RkMDJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBXZWluc3RlaW4gPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDcgQXVnIDIwMDkgMTQ6MTM6MTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSAy
MDA5LTA4LTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEZpeGVzIHR3byBidWdzIGFi
b3V0IFBhbiBTY3JvbGxpbmcgLSBTY3JvbGxpbmcgd2l0aCBtaWRkbGUgbW91c2UgYnV0dG9uIGRv
ZXNuJ3QKICAgICAgICB3b3JrIGluIEV4cGFuZGVkIHZpZXcgb24gcmVhZGVyLmdvb2dsZS5jb20s
IGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJvbSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEuCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzCiAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzk0CgogICAgICAg
IEFkZGVkIGEgbmV3IG1ldGhvZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJl
IHNjcm9sbGVkIGFuZCBhY3R1YWxseSBoYXMgc29tZXRoaW5nIHRvCiAgICAgICAgc2Nyb2xsLCBh
bmQgdXNlIHRoYXQgZm9yIHBhbiBzY3JvbGxpbmcuCgogICAgICAgIEFkZGVkIGEgbWFudWFsIHRl
c3QgZm9yIHBhbiBzY3JvbGxpbmcgb2YgbmVzdGVkIGRpdnMuCgogICAgICAgICogbWFudWFsLXRl
c3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZURyYWdnZWRFdmVudCk6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0
b3Njcm9sbFJlbmRlcmVyKToKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQpOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CiAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVh
KToKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeVJl
Y3Vyc2l2ZWx5KToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgOTAgKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvbWFudWFsLXRl
c3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sIHwgICAxNyArKysrCiBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgICAgICAgICAgfCAgIDIxICsrKysrLQogNiBm
aWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDc1NSBXZWJDb3JlL21hbnVhbC10ZXN0cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRt
bAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMzM0ODgzMC4uNWU5OTE3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MyBAQAorMjAwOS0wOC0wNyAgQnJpYW4gV2Vp
bnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgdHdvIGJ1Z3MgYWJvdXQgUGFuIFNjcm9sbGlu
ZyAtIFNjcm9sbGluZyB3aXRoIG1pZGRsZSBtb3VzZSBidXR0b24gZG9lc24ndCAKKyAgICAgICAg
d29yayBpbiBFeHBhbmRlZCB2aWV3IG9uIHJlYWRlci5nb29nbGUuY29tLCBhbmQgQ2FuIGVudGVy
IGF1dG8gc2Nyb2xsIGZyb20gYSBub24tc2Nyb2xsYWJsZSBhcmVhLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgwMjMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzk0CisgICAgICAgIAorICAgICAgICBB
ZGRlZCBhIG5ldyBtZXRob2QgdG8gUmVuZGVyQm94IHNlZWluZyBpZiB0aGUgQm94IGNhbiBiZSBz
Y3JvbGxlZCBhbmQgYWN0dWFsbHkgaGFzIHNvbWV0aGluZyB0bworICAgICAgICBzY3JvbGwsIGFu
ZCB1c2UgdGhhdCBmb3IgcGFuIHNjcm9sbGluZy4KKworICAgICAgICBBZGRlZCBhIG1hbnVhbCB0
ZXN0IGZvciBwYW4gc2Nyb2xsaW5nIG9mIG5lc3RlZCBkaXZzLgorCisgICAgICAgICogbWFudWFs
LXRlc3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9s
bGFibGVBcmVhKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KToKKwogMjAwOS0wOC0wNiAgWm9sdGFuIEhvcnZhdGggIDxo
em9sdGFuQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZz
Lmh0bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMDdlZmFlCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwKQEAg
LTAsMCArMSwxNyBAQAorPGh0bWw+DQorICAgIDxoZWFkPjx0aXRsZT5QYW4gU2Nyb2xsaW5nIFRl
c3Q8L3RpdGxlPjwvaGVhZD4NCisgICAgPGJvZHk+DQorICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0
aDo1MDBweDsgaGVpZ2h0OjMwMHB4OyBvdmVyZmxvdzphdXRvOyBib3JkZXI6MnB4IHNvbGlkIHJl
ZDsgcGFkZGluZzoxMHB4Ij4NCisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7
IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDoxNTBweDsgYm9yZGVyOjFweCBibHVlIHNvbGlkOyBvdmVyZmxvdzphdXRvOyI+DQorICAgICAg
ICAgICAgICAgICAgICBQYW5zY3JvbGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3Vs
ZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAg
ICAgICAgICAgIFBhbnNjcm9sbGluZyBvdXRzaWRlIHRoZSBibHVlIGJveGVzIHNob3VsZCBzY3Jv
bGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8ZGl2
IHN0eWxlPSJoZWlnaHQ6MjAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQorICAgICAgICAgICAg
ICAgIDxkaXYgc3R5bGU9ImhlaWdodDoxNTBweDsgYm9yZGVyOjFweCBibHVlIHNvbGlkOyBvdmVy
ZmxvdzphdXRvOyI+DQorICAgICAgICAgICAgICAgICAgICBQYW5zY3JvbGxpbmcgc3RhcnRpbmcg
aW4gdGhlIGJsdWUgYm94IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAg
ICAgICAgPC9kaXY+DQorICAgICAgICAgICAgPC9kaXY+DQorICAgIDwvYm9keT4NCis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBmZDY0
YThiLi41OGU5ZWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAor
KysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudChjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgY29u
dGFpbmVkIGluIGEgbGF5ZXIgdGhhdCBjYW4gc2Nyb2xsLCB0aGF0IGxheWVyIHNob3VsZCBoYW5k
bGUgdGhlIGF1dG9zY3JvbGwKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBsZXQgdGhlIGJyaWRnZSBo
YW5kbGUgaXQgc28gdGhlIHZpZXcgY2FuIHNjcm9sbCBpdHNlbGYuCiAgICAgICAgIFJlbmRlck9i
amVjdCogcmVuZGVyZXIgPSB0YXJnZXROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICB3aGlsZSAo
cmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+aXNCb3goKSB8fCAhdG9SZW5kZXJCb3gocmVuZGVyZXIp
LT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGZhbHNlKSkpIHsKKyAgICAgICAgd2hpbGUg
KHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVy
KS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpKSB7CiAgICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAmJiByZW5kZXJlci0+bm9kZSgpID09IHJlbmRlcmVyLT5k
b2N1bWVudCgpICYmIHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAg
ICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQo
KS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTcyMCw3ICs3MjAsNyBAQCB2b2lk
IEV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBpZiAoTm9kZSog
bm9kZUF0UG9pbnQgPSBoaXRUZXN0LmlubmVyTm9kZSgpKQogICAgICAgICBtX2F1dG9zY3JvbGxS
ZW5kZXJlciA9IG5vZGVBdFBvaW50LT5yZW5kZXJlcigpOwogCi0gICAgd2hpbGUgKG1fYXV0b3Nj
cm9sbFJlbmRlcmVyICYmICghbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVu
ZGVyQm94KG1fYXV0b3Njcm9sbFJlbmRlcmVyKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxl
ZChmYWxzZSkpKQorICAgIHdoaWxlIChtX2F1dG9zY3JvbGxSZW5kZXJlciAmJiAoIW1fYXV0b3Nj
cm9sbFJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChtX2F1dG9zY3JvbGxSZW5kZXJl
ciktPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSkKICAgICAgICAgbV9hdXRv
c2Nyb2xsUmVuZGVyZXIgPSBtX2F1dG9zY3JvbGxSZW5kZXJlci0+cGFyZW50KCk7CiB9CiAKQEAg
LTExNjAsNyArMTE2MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZl
bnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAgIGlmIChtb3VzZUV2
ZW50LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRvbiAmJiAhbWV2LmlzT3ZlckxpbmsoKSkgewogICAg
ICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbWV2LnRhcmdldE5vZGUoKS0+cmVuZGVyZXIo
KTsKIAotICAgICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+aXNCb3goKSB8fCAh
dG9SZW5kZXJCb3gocmVuZGVyZXIpLT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGZhbHNl
KSkpIHsKKyAgICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwg
IXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVh
KCkpKSB7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAmJiByZW5kZXJlci0+
bm9kZSgpID09IHJlbmRlcmVyLT5kb2N1bWVudCgpICYmIHJlbmRlcmVyLT5kb2N1bWVudCgpLT5v
d25lckVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5kb2N1
bWVudCgpLT5vd25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDEyMmJlMmYuLjkwN2RiNGEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcApAQCAtNDEwLDYgKzQxMCwxMSBAQCBib29sIFJlbmRlckJveDo6c2Nyb2xsKFNj
cm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LAog
ICAgICAgICByZXR1cm4gYi0+c2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIG11bHRpcGxp
ZXIpOwogICAgIHJldHVybiBmYWxzZTsKIH0KKworYm9vbCBSZW5kZXJCb3g6OmNhbkJlU2Nyb2xs
ZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICByZXR1cm4gY2FuQmVQcm9ncmFt
YXRpY2FsbHlTY3JvbGxlZChmYWxzZSkgJiYgKHNjcm9sbEhlaWdodCgpICE9IGNsaWVudEhlaWdo
dCgpIHx8IHNjcm9sbFdpZHRoKCkgIT0gY2xpZW50V2lkdGgoKSk7Cit9CiAgICAgCiBib29sIFJl
bmRlckJveDo6Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChib29sKSBjb25zdAogewpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaAppbmRleCBmNGFkNWU5Li45MjE0NDNhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aApAQCAtMjMwLDYgKzIzMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCB2ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKCkgY29uc3Q7CiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLjBmKTsKKyAgICBib29sIGNhbkJlU2Ny
b2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5C
ZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGJvb2wpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBh
dXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCkgeyB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDBmODI3Yi4uNWYwODA1NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcApAQCAtOTk3LDYgKzk5Nyw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBh
blNjcm9sbEZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgc291cmNlUG9pbnQpCiAKIHZvaWQgUmVu
ZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50IHlEZWx0YSkKIHsK
KyAgICBpZiAoIXhEZWx0YSAmJiAheURlbHRhKQorICAgICAgICByZXR1cm47CisKICAgICBib29s
IHJlc3RyaWN0ZWRCeUxpbmVDbGFtcCA9IGZhbHNlOwogICAgIGlmIChyZW5kZXJlcigpLT5wYXJl
bnQoKSkKICAgICAgICAgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gcmVuZGVyZXIoKS0+cGFyZW50
KCktPnN0eWxlKCktPmxpbmVDbGFtcCgpID49IDA7CkBAIC0xMDA2LDE3ICsxMDA5LDI5IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50IHlEZWx0
YSkKICAgICAgICAgaW50IG5ld09mZnNldFkgPSBzY3JvbGxZT2Zmc2V0KCkgKyB5RGVsdGE7CiAg
ICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld09mZnNldFgsIG5ld09mZnNldFkpOwogCi0gICAgICAg
IC8vIElmIHRoaXMgbGF5ZXIgY2FuJ3QgZG8gdGhlIHNjcm9sbCB3ZSBhc2sgaXRzIHBhcmVudAor
ICAgICAgICAvLyBJZiB0aGlzIGxheWVyIGNhbid0IGRvIHRoZSBzY3JvbGwgd2UgYXNrIHRoZSBu
ZXh0IGxheWVyIHVwIHRoYXQgY2FuIHNjcm9sbCB0byB0cnkKICAgICAgICAgaW50IGxlZnRUb1Nj
cm9sbFggPSBuZXdPZmZzZXRYIC0gc2Nyb2xsWE9mZnNldCgpOwogICAgICAgICBpbnQgbGVmdFRv
U2Nyb2xsWSA9IG5ld09mZnNldFkgLSBzY3JvbGxZT2Zmc2V0KCk7CiAgICAgICAgIGlmICgobGVm
dFRvU2Nyb2xsWCB8fCBsZWZ0VG9TY3JvbGxZKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewot
ICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFyZW50KCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9s
bEJ5UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xsWCwgbGVmdFRvU2Nyb2xsWSk7CisgICAgICAgICAg
ICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlciA9IHJlbmRlcmVyKCktPnBhcmVudCgpOworICAg
ICAgICAgICAgd2hpbGUgKG5leHRSZW5kZXJlcikgeworICAgICAgICAgICAgICAgIGlmIChuZXh0
UmVuZGVyZXItPmlzQm94KCkgJiYgdG9SZW5kZXJCb3gobmV4dFJlbmRlcmVyKS0+Y2FuQmVTY3Jv
bGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFJl
bmRlcmVyLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5KGxlZnRUb1Njcm9s
bFgsIGxlZnRUb1Njcm9sbFkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV4dFJlbmRlcmVyID0gbmV4dFJlbmRlcmVyLT5w
YXJlbnQoKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcmVu
ZGVyZXIoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICAgICAgICAgIGlmIChmcmFtZSkKICAg
ICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnVwZGF0ZUF1dG9zY3JvbGxSZW5k
ZXJlcigpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZW5kZXJlcigpLT52aWV3KCktPmZy
YW1lVmlldygpKQorICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXco
KSkgeworICAgICAgICAvLyBJZiB3ZSBhcmUgaGVyZSwgd2Ugd2VyZSBjYWxsZWQgb24gYSByZW5k
ZXJlciB0aGF0IGNhbiBiZSBwcm9ncmFtYXRpY2FsbHkgc2Nyb2xsZWQsIGJ1dCBkb2Vzbid0Cisg
ICAgICAgIC8vIGhhdmUgYW4gb3ZlcmZsb3cgY2xpcC4gV2hpY2ggbWVhbnMgdGhhdCBpdCBpcyBh
IGRvY3VtZW50IG5vZGUgdGhhdCBjYW4gYmUgc2Nyb2xsZWQuCiAgICAgICAgIHJlbmRlcmVyKCkt
PnZpZXcoKS0+ZnJhbWVWaWV3KCktPnNjcm9sbEJ5KEludFNpemUoeERlbHRhLCB5RGVsdGEpKTsK
KyAgICAgICAgLy8gRklYTUU6IElmIHdlIGRpZG4ndCBzY3JvbGwgdGhlIHdob2xlIHdheSwgZG8g
d2Ugd2FudCB0byB0cnkgbG9va2luZyBhdCB0aGUgZnJhbWVzIG93bmVyRWxlbWVudD8KKyAgICB9
CiB9CiAKIAotLSAKMS42LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34330</attachid>
            <date>2009-08-07 14:21:40 -0700</date>
            <delta_ts>2009-08-10 11:52:12 -0700</delta_ts>
            <desc>Scroll Fixes + Test + Newline</desc>
            <filename>0001-2009-08-07-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>9910</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSA0Mjk1NThkODhjN2IzMDUxNzVkNjkxZTU4NjE3OGRkNjhjOGMyNDM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBXZWluc3RlaW4gPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDcgQXVnIDIwMDkgMTQ6MTM6MTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSAy
MDA5LTA4LTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEZpeGVzIHR3byBidWdzIGFi
b3V0IFBhbiBTY3JvbGxpbmcgLSBTY3JvbGxpbmcgd2l0aCBtaWRkbGUgbW91c2UgYnV0dG9uIGRv
ZXNuJ3QKICAgICAgICB3b3JrIGluIEV4cGFuZGVkIHZpZXcgb24gcmVhZGVyLmdvb2dsZS5jb20s
IGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJvbSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEuCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzCiAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzk0CgogICAgICAg
IEFkZGVkIGEgbmV3IG1ldGhvZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJl
IHNjcm9sbGVkIGFuZCBhY3R1YWxseSBoYXMgc29tZXRoaW5nIHRvCiAgICAgICAgc2Nyb2xsLCBh
bmQgdXNlIHRoYXQgZm9yIHBhbiBzY3JvbGxpbmcuCgogICAgICAgIEFkZGVkIGEgbWFudWFsIHRl
c3QgZm9yIHBhbiBzY3JvbGxpbmcgb2YgbmVzdGVkIGRpdnMuCgogICAgICAgICogbWFudWFsLXRl
c3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZURyYWdnZWRFdmVudCk6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0
b3Njcm9sbFJlbmRlcmVyKToKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQpOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CiAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVh
KToKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeVJl
Y3Vyc2l2ZWx5KToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgOTAgKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvbWFudWFsLXRl
c3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sIHwgICAxNyArKysrCiBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgICAgICAgICAgfCAgIDIxICsrKysrLQogNiBm
aWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDc1NSBXZWJDb3JlL21hbnVhbC10ZXN0cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRt
bAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMzM0ODgzMC4uNWU5OTE3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MyBAQAorMjAwOS0wOC0wNyAgQnJpYW4gV2Vp
bnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgdHdvIGJ1Z3MgYWJvdXQgUGFuIFNjcm9sbGlu
ZyAtIFNjcm9sbGluZyB3aXRoIG1pZGRsZSBtb3VzZSBidXR0b24gZG9lc24ndCAKKyAgICAgICAg
d29yayBpbiBFeHBhbmRlZCB2aWV3IG9uIHJlYWRlci5nb29nbGUuY29tLCBhbmQgQ2FuIGVudGVy
IGF1dG8gc2Nyb2xsIGZyb20gYSBub24tc2Nyb2xsYWJsZSBhcmVhLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgwMjMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzk0CisgICAgICAgIAorICAgICAgICBB
ZGRlZCBhIG5ldyBtZXRob2QgdG8gUmVuZGVyQm94IHNlZWluZyBpZiB0aGUgQm94IGNhbiBiZSBz
Y3JvbGxlZCBhbmQgYWN0dWFsbHkgaGFzIHNvbWV0aGluZyB0bworICAgICAgICBzY3JvbGwsIGFu
ZCB1c2UgdGhhdCBmb3IgcGFuIHNjcm9sbGluZy4KKworICAgICAgICBBZGRlZCBhIG1hbnVhbCB0
ZXN0IGZvciBwYW4gc2Nyb2xsaW5nIG9mIG5lc3RlZCBkaXZzLgorCisgICAgICAgICogbWFudWFs
LXRlc3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9s
bGFibGVBcmVhKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KToKKwogMjAwOS0wOC0wNiAgWm9sdGFuIEhvcnZhdGggIDxo
em9sdGFuQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZz
Lmh0bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMTY0YzBkCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwKQEAg
LTAsMCArMSwxNyBAQAorPGh0bWw+DQorICAgIDxoZWFkPjx0aXRsZT5QYW4gU2Nyb2xsaW5nIFRl
c3Q8L3RpdGxlPjwvaGVhZD4NCisgICAgPGJvZHk+DQorICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0
aDo1MDBweDsgaGVpZ2h0OjMwMHB4OyBvdmVyZmxvdzphdXRvOyBib3JkZXI6MnB4IHNvbGlkIHJl
ZDsgcGFkZGluZzoxMHB4Ij4NCisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7
IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDoxNTBweDsgYm9yZGVyOjFweCBibHVlIHNvbGlkOyBvdmVyZmxvdzphdXRvOyI+DQorICAgICAg
ICAgICAgICAgICAgICBQYW5zY3JvbGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3Vs
ZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAg
ICAgICAgICAgIFBhbnNjcm9sbGluZyBvdXRzaWRlIHRoZSBibHVlIGJveGVzIHNob3VsZCBzY3Jv
bGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8ZGl2
IHN0eWxlPSJoZWlnaHQ6MjAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQorICAgICAgICAgICAg
ICAgIDxkaXYgc3R5bGU9ImhlaWdodDoxNTBweDsgYm9yZGVyOjFweCBibHVlIHNvbGlkOyBvdmVy
ZmxvdzphdXRvOyI+DQorICAgICAgICAgICAgICAgICAgICBQYW5zY3JvbGxpbmcgc3RhcnRpbmcg
aW4gdGhlIGJsdWUgYm94IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAg
ICAgICAgPC9kaXY+DQorICAgICAgICAgICAgPC9kaXY+DQorICAgIDwvYm9keT4NCis8L2h0bWw+
DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBmZDY0YThiLi41OGU5ZWRkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZURyYWdnZWRFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAg
ICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgY29udGFpbmVkIGluIGEgbGF5ZXIgdGhhdCBjYW4g
c2Nyb2xsLCB0aGF0IGxheWVyIHNob3VsZCBoYW5kbGUgdGhlIGF1dG9zY3JvbGwKICAgICAgICAg
Ly8gT3RoZXJ3aXNlLCBsZXQgdGhlIGJyaWRnZSBoYW5kbGUgaXQgc28gdGhlIHZpZXcgY2FuIHNj
cm9sbCBpdHNlbGYuCiAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0YXJnZXROb2Rl
LT5yZW5kZXJlcigpOwotICAgICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+aXNC
b3goKSB8fCAhdG9SZW5kZXJCb3gocmVuZGVyZXIpLT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9s
bGVkKGZhbHNlKSkpIHsKKyAgICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlz
Qm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9s
bGFibGVBcmVhKCkpKSB7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAmJiBy
ZW5kZXJlci0+bm9kZSgpID09IHJlbmRlcmVyLT5kb2N1bWVudCgpICYmIHJlbmRlcmVyLT5kb2N1
bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlciA9IHJlbmRl
cmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAg
IGVsc2UKQEAgLTcyMCw3ICs3MjAsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0b3Nj
cm9sbFJlbmRlcmVyKCkKICAgICBpZiAoTm9kZSogbm9kZUF0UG9pbnQgPSBoaXRUZXN0LmlubmVy
Tm9kZSgpKQogICAgICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IG5vZGVBdFBvaW50LT5yZW5k
ZXJlcigpOwogCi0gICAgd2hpbGUgKG1fYXV0b3Njcm9sbFJlbmRlcmVyICYmICghbV9hdXRvc2Ny
b2xsUmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KG1fYXV0b3Njcm9sbFJlbmRlcmVy
KS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChmYWxzZSkpKQorICAgIHdoaWxlIChtX2F1
dG9zY3JvbGxSZW5kZXJlciAmJiAoIW1fYXV0b3Njcm9sbFJlbmRlcmVyLT5pc0JveCgpIHx8ICF0
b1JlbmRlckJveChtX2F1dG9zY3JvbGxSZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3Jv
bGxhYmxlQXJlYSgpKSkKICAgICAgICAgbV9hdXRvc2Nyb2xsUmVuZGVyZXIgPSBtX2F1dG9zY3Jv
bGxSZW5kZXJlci0+cGFyZW50KCk7CiB9CiAKQEAgLTExNjAsNyArMTE2MCw3IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiBtb3VzZUV2ZW50KQogICAgIGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRv
biAmJiAhbWV2LmlzT3ZlckxpbmsoKSkgewogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
ID0gbWV2LnRhcmdldE5vZGUoKS0+cmVuZGVyZXIoKTsKIAotICAgICAgICB3aGlsZSAocmVuZGVy
ZXIgJiYgKCFyZW5kZXJlci0+aXNCb3goKSB8fCAhdG9SZW5kZXJCb3gocmVuZGVyZXIpLT5jYW5C
ZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGZhbHNlKSkpIHsKKyAgICAgICAgd2hpbGUgKHJlbmRl
cmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y2Fu
QmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpKSB7CiAgICAgICAgICAgICBpZiAoIXJl
bmRlcmVyLT5wYXJlbnQoKSAmJiByZW5kZXJlci0+bm9kZSgpID09IHJlbmRlcmVyLT5kb2N1bWVu
dCgpICYmIHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgICAg
ICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKS0+cmVu
ZGVyZXIoKTsKICAgICAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDEy
MmJlMmYuLjkwN2RiNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDEwLDYgKzQxMCwx
MSBAQCBib29sIFJlbmRlckJveDo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LAogICAgICAgICByZXR1cm4gYi0+c2Nyb2xsKGRp
cmVjdGlvbiwgZ3JhbnVsYXJpdHksIG11bHRpcGxpZXIpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
KworYm9vbCBSZW5kZXJCb3g6OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNv
bnN0Cit7CisgICByZXR1cm4gY2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChmYWxzZSkgJiYg
KHNjcm9sbEhlaWdodCgpICE9IGNsaWVudEhlaWdodCgpIHx8IHNjcm9sbFdpZHRoKCkgIT0gY2xp
ZW50V2lkdGgoKSk7Cit9CiAgICAgCiBib29sIFJlbmRlckJveDo6Y2FuQmVQcm9ncmFtYXRpY2Fs
bHlTY3JvbGxlZChib29sKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBmNGFkNWU5
Li45MjE0NDNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtMjMwLDYgKzIzMCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgY29uc3Q7CiAgICAg
aW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxp
ZXIgPSAxLjBmKTsKKyAgICBib29sIGNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGJv
b2wpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhdXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2
b2lkIHN0b3BBdXRvc2Nyb2xsKCkgeyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXgg
MDBmODI3Yi4uNWYwODA1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTk3LDYg
Kzk5Nyw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Qb2ludChjb25zdCBJbnRQ
b2ludCYgc291cmNlUG9pbnQpCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZl
bHkoaW50IHhEZWx0YSwgaW50IHlEZWx0YSkKIHsKKyAgICBpZiAoIXhEZWx0YSAmJiAheURlbHRh
KQorICAgICAgICByZXR1cm47CisKICAgICBib29sIHJlc3RyaWN0ZWRCeUxpbmVDbGFtcCA9IGZh
bHNlOwogICAgIGlmIChyZW5kZXJlcigpLT5wYXJlbnQoKSkKICAgICAgICAgcmVzdHJpY3RlZEJ5
TGluZUNsYW1wID0gcmVuZGVyZXIoKS0+cGFyZW50KCktPnN0eWxlKCktPmxpbmVDbGFtcCgpID49
IDA7CkBAIC0xMDA2LDE3ICsxMDA5LDI5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVj
dXJzaXZlbHkoaW50IHhEZWx0YSwgaW50IHlEZWx0YSkKICAgICAgICAgaW50IG5ld09mZnNldFkg
PSBzY3JvbGxZT2Zmc2V0KCkgKyB5RGVsdGE7CiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld09m
ZnNldFgsIG5ld09mZnNldFkpOwogCi0gICAgICAgIC8vIElmIHRoaXMgbGF5ZXIgY2FuJ3QgZG8g
dGhlIHNjcm9sbCB3ZSBhc2sgaXRzIHBhcmVudAorICAgICAgICAvLyBJZiB0aGlzIGxheWVyIGNh
bid0IGRvIHRoZSBzY3JvbGwgd2UgYXNrIHRoZSBuZXh0IGxheWVyIHVwIHRoYXQgY2FuIHNjcm9s
bCB0byB0cnkKICAgICAgICAgaW50IGxlZnRUb1Njcm9sbFggPSBuZXdPZmZzZXRYIC0gc2Nyb2xs
WE9mZnNldCgpOwogICAgICAgICBpbnQgbGVmdFRvU2Nyb2xsWSA9IG5ld09mZnNldFkgLSBzY3Jv
bGxZT2Zmc2V0KCk7CiAgICAgICAgIGlmICgobGVmdFRvU2Nyb2xsWCB8fCBsZWZ0VG9TY3JvbGxZ
KSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFy
ZW50KCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbEJ5UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xs
WCwgbGVmdFRvU2Nyb2xsWSk7CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJl
ciA9IHJlbmRlcmVyKCktPnBhcmVudCgpOworICAgICAgICAgICAgd2hpbGUgKG5leHRSZW5kZXJl
cikgeworICAgICAgICAgICAgICAgIGlmIChuZXh0UmVuZGVyZXItPmlzQm94KCkgJiYgdG9SZW5k
ZXJCb3gobmV4dFJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpLT5z
Y3JvbGxCeVJlY3Vyc2l2ZWx5KGxlZnRUb1Njcm9sbFgsIGxlZnRUb1Njcm9sbFkpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
bmV4dFJlbmRlcmVyID0gbmV4dFJlbmRlcmVyLT5wYXJlbnQoKTsKKyAgICAgICAgICAgIH0KKwog
ICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUo
KTsKICAgICAgICAgICAgIGlmIChmcmFtZSkKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRI
YW5kbGVyKCktPnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcigpOwogICAgICAgICB9Ci0gICAgfSBl
bHNlIGlmIChyZW5kZXJlcigpLT52aWV3KCktPmZyYW1lVmlldygpKQorICAgIH0gZWxzZSBpZiAo
cmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKSkgeworICAgICAgICAvLyBJZiB3ZSBhcmUg
aGVyZSwgd2Ugd2VyZSBjYWxsZWQgb24gYSByZW5kZXJlciB0aGF0IGNhbiBiZSBwcm9ncmFtYXRp
Y2FsbHkgc2Nyb2xsZWQsIGJ1dCBkb2Vzbid0CisgICAgICAgIC8vIGhhdmUgYW4gb3ZlcmZsb3cg
Y2xpcC4gV2hpY2ggbWVhbnMgdGhhdCBpdCBpcyBhIGRvY3VtZW50IG5vZGUgdGhhdCBjYW4gYmUg
c2Nyb2xsZWQuCiAgICAgICAgIHJlbmRlcmVyKCktPnZpZXcoKS0+ZnJhbWVWaWV3KCktPnNjcm9s
bEJ5KEludFNpemUoeERlbHRhLCB5RGVsdGEpKTsKKyAgICAgICAgLy8gRklYTUU6IElmIHdlIGRp
ZG4ndCBzY3JvbGwgdGhlIHdob2xlIHdheSwgZG8gd2Ugd2FudCB0byB0cnkgbG9va2luZyBhdCB0
aGUgZnJhbWVzIG93bmVyRWxlbWVudD8KKyAgICB9CiB9CiAKIAotLSAKMS42LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34495</attachid>
            <date>2009-08-10 11:52:12 -0700</date>
            <delta_ts>2009-08-11 10:05:22 -0700</delta_ts>
            <desc>Scroll Fixes + Attempted Automated Test</desc>
            <filename>0001-2009-08-07-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>11702</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSA1ZGZmYzA4YjY5YWVjMTA4ODRhNGUwYzk5NmNmZTAwZWRlN2ZjNDk4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBXZWluc3RlaW4gPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDcgQXVnIDIwMDkgMTQ6MTM6MTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSAy
MDA5LTA4LTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEZpeGVzIHR3byBidWdzIGFi
b3V0IFBhbiBTY3JvbGxpbmcgLSBTY3JvbGxpbmcgd2l0aCBtaWRkbGUgbW91c2UgYnV0dG9uIGRv
ZXNuJ3QKICAgICAgICB3b3JrIGluIEV4cGFuZGVkIHZpZXcgb24gcmVhZGVyLmdvb2dsZS5jb20s
IGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJvbSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEuCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzCiAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzk0CgogICAgICAg
IEFkZGVkIGEgbmV3IG1ldGhvZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJl
IHNjcm9sbGVkIGFuZCBhY3R1YWxseSBoYXMgc29tZXRoaW5nIHRvCiAgICAgICAgc2Nyb2xsLCBh
bmQgdXNlIHRoYXQgZm9yIHBhbiBzY3JvbGxpbmcuCgogICAgICAgIEFkZGVkIGEgbWFudWFsIHRl
c3QgZm9yIHBhbiBzY3JvbGxpbmcgb2YgbmVzdGVkIGRpdnMuCgogICAgICAgICogbWFudWFsLXRl
c3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZURyYWdnZWRFdmVudCk6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0
b3Njcm9sbFJlbmRlcmVyKToKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQpOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CiAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVh
KToKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeVJl
Y3Vyc2l2ZWx5KToKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDggKysrCiAuLi4vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0
ZWQtZGl2cy5odG1sICAgICB8ICAgNDcgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKysr
CiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAg
IDYgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgICAg
IHwgICAgNSArKwogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgICAgICAg
ICAgICAgfCAgICAxICsKIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCAgICAgICAg
ICAgICAgICAgIHwgICAyMSArKysrKysrKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlv
bnMoKyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGU5ZjgyNjMuLjU2YzNjOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAwOS0wOC0xMCAgQnJp
YW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFu
ZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9w
YW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbDogQWRkZWQuCisKIDIwMDktMDgtMDcgIE1pa2UgRmVu
dG9uICA8bWlrZS5mZW50b25AdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gVHJlYXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9l
dmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMC4uN2U1YzY5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbApA
QCAtMCwwICsxLDQ3IEBACis8aHRtbD4NCisgICAgPGhlYWQ+DQorICAgICAgICA8dGl0bGU+UGFu
IFNjcm9sbGluZyBUZXN0PC90aXRsZT4NCisgICAgPC9oZWFkPg0KKyAgICA8Ym9keT4NCisgICAg
ICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyKSB7DQor
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCisgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KKyAgICAg
ICAgICAgIH0NCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICAgICAgPGRpdiBpZD0ib3ZlcmZsb3ci
IHN0eWxlPSJ3aWR0aDo1MDBweDsgaGVpZ2h0OjMwMHB4OyBvdmVyZmxvdzphdXRvOyBib3JkZXI6
MnB4IHNvbGlkIHJlZDsgcGFkZGluZzoxMHB4Ij4NCisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJo
ZWlnaHQ6MjAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQorICAgICAgICAgICAgICAgIDxkaXYg
c3R5bGU9ImhlaWdodDoxNTBweDsgYm9yZGVyOjFweCBibHVlIHNvbGlkOyBvdmVyZmxvdzphdXRv
OyI+DQorICAgICAgICAgICAgICAgICAgICBQYW5zY3JvbGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJs
dWUgYm94IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICAgICAgPC9k
aXY+DQorICAgICAgICAgICAgICAgIFBhbnNjcm9sbGluZyBvdXRzaWRlIHRoZSBibHVlIGJveGVz
IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICA8L2Rpdj4NCisgICAg
ICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQor
ICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDoxNTBweDsgYm9yZGVyOjFweCBibHVl
IHNvbGlkOyBvdmVyZmxvdzphdXRvOyI+DQorICAgICAgICAgICAgICAgICAgICBQYW5zY3JvbGxp
bmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4N
CisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICA8
L2Rpdj4NCisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yODAyMyI+YnVnIDI4MDIzPC9hPiBUaGlzIHRlc3RzIHRoYXQg
cGFuIHNjcm9sbGluZw0KKyAgICAgICAgcHJvcG9nYXRlcyBjb3JyZWN0bHkgdXAgdGhlIERPTSB0
cmVlLiBPbiBzdWNjZXNzLCBvdXIgc2Nyb2xsIG9mZnNldCBzaG91bGQgYmUgbm9uLXplcm8uPC9w
Pg0KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+DQorICAgICAgICA8c2NyaXB0Pg0K
KyAgICAgICAgICAgIGlmIChldmVudFNlbmRlcikNCisgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUwLCA1MCk7DQorICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigzKTsNCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgzKTsNCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAs
IDIwMCk7DQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZmluaXNoZWQsIDIwMDApOw0KKyAg
ICAgICAgICAgIH0NCisgICAgICAgICAgICANCisgICAgICAgICAgICBmdW5jdGlvbiBmaW5pc2hl
ZCgpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVySFRNTCANCisgICAgICAgICAgICAgICAgICAgID0gIlNjcm9s
bCBvZmZzZXQgaXMgIiArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9s
bFRvcDsNCisgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgPC9z
Y3JpcHQ+DQorICAgIDwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlN2JlZTZmLi40ZDc1ODdjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI4IEBACisyMDA5LTA4LTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhl
cyB0d28gYnVncyBhYm91dCBQYW4gU2Nyb2xsaW5nIC0gU2Nyb2xsaW5nIHdpdGggbWlkZGxlIG1v
dXNlIGJ1dHRvbiBkb2Vzbid0IAorICAgICAgICB3b3JrIGluIEV4cGFuZGVkIHZpZXcgb24gcmVh
ZGVyLmdvb2dsZS5jb20sIGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJvbSBhIG5vbi1zY3Jv
bGxhYmxlIGFyZWEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yODAyMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQ3OTQKKyAgICAgICAgCisgICAgICAgIEFkZGVkIGEgbmV3IG1ldGhvZCB0byBSZW5kZXJC
b3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJlIHNjcm9sbGVkIGFuZCBhY3R1YWxseSBoYXMgc29t
ZXRoaW5nIHRvCisgICAgICAgIHNjcm9sbCwgYW5kIHVzZSB0aGF0IGZvciBwYW4gc2Nyb2xsaW5n
LgorCisgICAgICAgIEFkZGVkIGEgbWFudWFsIHRlc3QgZm9yIHBhbiBzY3JvbGxpbmcgb2YgbmVz
dGVkIGRpdnMuCisKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkpOgorCiAy
MDA5LTA4LTA3ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZmQ2NGE4
Yi4uNThlOWVkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysr
IGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTQzMCw3ICs0MzAsNyBAQCBib29s
IEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQoY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYgZQogICAgICAgICAvLyBJZiB0aGUgc2VsZWN0aW9uIGlzIGNvbnRh
aW5lZCBpbiBhIGxheWVyIHRoYXQgY2FuIHNjcm9sbCwgdGhhdCBsYXllciBzaG91bGQgaGFuZGxl
IHRoZSBhdXRvc2Nyb2xsCiAgICAgICAgIC8vIE90aGVyd2lzZSwgbGV0IHRoZSBicmlkZ2UgaGFu
ZGxlIGl0IHNvIHRoZSB2aWV3IGNhbiBzY3JvbGwgaXRzZWxmLgogICAgICAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAgd2hpbGUgKHJl
bmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+
Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChmYWxzZSkpKSB7CisgICAgICAgIHdoaWxlIChy
ZW5kZXJlciAmJiAoIXJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChyZW5kZXJlcikt
PmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSkgewogICAgICAgICAgICAgaWYg
KCFyZW5kZXJlci0+cGFyZW50KCkgJiYgcmVuZGVyZXItPm5vZGUoKSA9PSByZW5kZXJlci0+ZG9j
dW1lbnQoKSAmJiByZW5kZXJlci0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCkpCiAgICAgICAg
ICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCkt
PnJlbmRlcmVyKCk7CiAgICAgICAgICAgICBlbHNlCkBAIC03MjAsNyArNzIwLDcgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcigpCiAgICAgaWYgKE5vZGUqIG5v
ZGVBdFBvaW50ID0gaGl0VGVzdC5pbm5lck5vZGUoKSkKICAgICAgICAgbV9hdXRvc2Nyb2xsUmVu
ZGVyZXIgPSBub2RlQXRQb2ludC0+cmVuZGVyZXIoKTsKIAotICAgIHdoaWxlIChtX2F1dG9zY3Jv
bGxSZW5kZXJlciAmJiAoIW1fYXV0b3Njcm9sbFJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRl
ckJveChtX2F1dG9zY3JvbGxSZW5kZXJlciktPmNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQo
ZmFsc2UpKSkKKyAgICB3aGlsZSAobV9hdXRvc2Nyb2xsUmVuZGVyZXIgJiYgKCFtX2F1dG9zY3Jv
bGxSZW5kZXJlci0+aXNCb3goKSB8fCAhdG9SZW5kZXJCb3gobV9hdXRvc2Nyb2xsUmVuZGVyZXIp
LT5jYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSkpCiAgICAgICAgIG1fYXV0b3Nj
cm9sbFJlbmRlcmVyID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXItPnBhcmVudCgpOwogfQogCkBAIC0x
MTYwLDcgKzExNjAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkKICAgICBpZiAobW91c2VFdmVu
dC5idXR0b24oKSA9PSBNaWRkbGVCdXR0b24gJiYgIW1ldi5pc092ZXJMaW5rKCkpIHsKICAgICAg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG1ldi50YXJnZXROb2RlKCktPnJlbmRlcmVyKCk7
CiAKLSAgICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRv
UmVuZGVyQm94KHJlbmRlcmVyKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChmYWxzZSkp
KSB7CisgICAgICAgIHdoaWxlIChyZW5kZXJlciAmJiAoIXJlbmRlcmVyLT5pc0JveCgpIHx8ICF0
b1JlbmRlckJveChyZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgp
KSkgewogICAgICAgICAgICAgaWYgKCFyZW5kZXJlci0+cGFyZW50KCkgJiYgcmVuZGVyZXItPm5v
ZGUoKSA9PSByZW5kZXJlci0+ZG9jdW1lbnQoKSAmJiByZW5kZXJlci0+ZG9jdW1lbnQoKS0+b3du
ZXJFbGVtZW50KCkpCiAgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+ZG9jdW1l
bnQoKS0+b3duZXJFbGVtZW50KCktPnJlbmRlcmVyKCk7CiAgICAgICAgICAgICBlbHNlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCAxMjJiZTJmLi45MDdkYjRhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKQEAgLTQxMCw2ICs0MTAsMTEgQEAgYm9vbCBSZW5kZXJCb3g6OnNjcm9sbChTY3Jv
bGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSwKICAg
ICAgICAgcmV0dXJuIGItPnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBtdWx0aXBsaWVy
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK2Jvb2wgUmVuZGVyQm94OjpjYW5CZVNjcm9sbGVk
QW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSBjb25zdAoreworICAgcmV0dXJuIGNhbkJlUHJvZ3JhbWF0
aWNhbGx5U2Nyb2xsZWQoZmFsc2UpICYmIChzY3JvbGxIZWlnaHQoKSAhPSBjbGllbnRIZWlnaHQo
KSB8fCBzY3JvbGxXaWR0aCgpICE9IGNsaWVudFdpZHRoKCkpOworfQogICAgIAogYm9vbCBSZW5k
ZXJCb3g6OmNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoYm9vbCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKaW5kZXggZjRhZDVlOS4uOTIxNDQzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgK
QEAgLTIzMCw2ICsyMzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpIGNvbnN0OwogICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMS4wZik7CisgICAgYm9vbCBjYW5CZVNjcm9s
bGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVQ
cm9ncmFtYXRpY2FsbHlTY3JvbGxlZChib29sKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYXV0
b3Njcm9sbCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wQXV0b3Njcm9sbCgpIHsgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDAwZjgyN2IuLjVmMDgwNTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKQEAgLTk5Nyw2ICs5OTcsOSBAQCB2b2lkIFJlbmRlckxheWVyOjpwYW5T
Y3JvbGxGcm9tUG9pbnQoY29uc3QgSW50UG9pbnQmIHNvdXJjZVBvaW50KQogCiB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KGludCB4RGVsdGEsIGludCB5RGVsdGEpCiB7Cisg
ICAgaWYgKCF4RGVsdGEgJiYgIXlEZWx0YSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYm9vbCBy
ZXN0cmljdGVkQnlMaW5lQ2xhbXAgPSBmYWxzZTsKICAgICBpZiAocmVuZGVyZXIoKS0+cGFyZW50
KCkpCiAgICAgICAgIHJlc3RyaWN0ZWRCeUxpbmVDbGFtcCA9IHJlbmRlcmVyKCktPnBhcmVudCgp
LT5zdHlsZSgpLT5saW5lQ2xhbXAoKSA+PSAwOwpAQCAtMTAwNiwxNyArMTAwOSwyOSBAQCB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KGludCB4RGVsdGEsIGludCB5RGVsdGEp
CiAgICAgICAgIGludCBuZXdPZmZzZXRZID0gc2Nyb2xsWU9mZnNldCgpICsgeURlbHRhOwogICAg
ICAgICBzY3JvbGxUb09mZnNldChuZXdPZmZzZXRYLCBuZXdPZmZzZXRZKTsKIAotICAgICAgICAv
LyBJZiB0aGlzIGxheWVyIGNhbid0IGRvIHRoZSBzY3JvbGwgd2UgYXNrIGl0cyBwYXJlbnQKKyAg
ICAgICAgLy8gSWYgdGhpcyBsYXllciBjYW4ndCBkbyB0aGUgc2Nyb2xsIHdlIGFzayB0aGUgbmV4
dCBsYXllciB1cCB0aGF0IGNhbiBzY3JvbGwgdG8gdHJ5CiAgICAgICAgIGludCBsZWZ0VG9TY3Jv
bGxYID0gbmV3T2Zmc2V0WCAtIHNjcm9sbFhPZmZzZXQoKTsKICAgICAgICAgaW50IGxlZnRUb1Nj
cm9sbFkgPSBuZXdPZmZzZXRZIC0gc2Nyb2xsWU9mZnNldCgpOwogICAgICAgICBpZiAoKGxlZnRU
b1Njcm9sbFggfHwgbGVmdFRvU2Nyb2xsWSkgJiYgcmVuZGVyZXIoKS0+cGFyZW50KCkpIHsKLSAg
ICAgICAgICAgIHJlbmRlcmVyKCktPnBhcmVudCgpLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxC
eVJlY3Vyc2l2ZWx5KGxlZnRUb1Njcm9sbFgsIGxlZnRUb1Njcm9sbFkpOworICAgICAgICAgICAg
UmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKTsKKyAgICAg
ICAgICAgIHdoaWxlIChuZXh0UmVuZGVyZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAobmV4dFJl
bmRlcmVyLT5pc0JveCgpICYmIHRvUmVuZGVyQm94KG5leHRSZW5kZXJlciktPmNhbkJlU2Nyb2xs
ZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRSZW5k
ZXJlci0+ZW5jbG9zaW5nTGF5ZXIoKS0+c2Nyb2xsQnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxY
LCBsZWZ0VG9TY3JvbGxZKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIG5leHRSZW5kZXJlciA9IG5leHRSZW5kZXJlci0+cGFy
ZW50KCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IHJlbmRl
cmVyKCktPmRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgICAgICAgICBpZiAoZnJhbWUpCiAgICAg
ICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT51cGRhdGVBdXRvc2Nyb2xsUmVuZGVy
ZXIoKTsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+dmlldygpLT5mcmFt
ZVZpZXcoKSkKKyAgICB9IGVsc2UgaWYgKHJlbmRlcmVyKCktPnZpZXcoKS0+ZnJhbWVWaWV3KCkp
IHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIGhlcmUsIHdlIHdlcmUgY2FsbGVkIG9uIGEgcmVuZGVy
ZXIgdGhhdCBjYW4gYmUgcHJvZ3JhbWF0aWNhbGx5IHNjcm9sbGVkLCBidXQgZG9lc24ndAorICAg
ICAgICAvLyBoYXZlIGFuIG92ZXJmbG93IGNsaXAuIFdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBk
b2N1bWVudCBub2RlIHRoYXQgY2FuIGJlIHNjcm9sbGVkLgogICAgICAgICByZW5kZXJlcigpLT52
aWV3KCktPmZyYW1lVmlldygpLT5zY3JvbGxCeShJbnRTaXplKHhEZWx0YSwgeURlbHRhKSk7Cisg
ICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBkaWRuJ3Qgc2Nyb2xsIHRoZSB3aG9sZSB3YXksIGRvIHdl
IHdhbnQgdG8gdHJ5IGxvb2tpbmcgYXQgdGhlIGZyYW1lcyBvd25lckVsZW1lbnQ/CisgICAgfQog
fQogCiAKLS0gCjEuNi4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34571</attachid>
            <date>2009-08-11 10:05:22 -0700</date>
            <delta_ts>2009-08-11 10:11:26 -0700</delta_ts>
            <desc>Scroll Fixes + Automated Test</desc>
            <filename>0001-2009-08-07-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>12727</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSBhMzYzMDFiMjE3OTQ5NzJlMjM0MTI3MmYwZTlmYWNiZWY0YjVhOTkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBXZWluc3RlaW4gPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDcgQXVnIDIwMDkgMTQ6MTM6MTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSAy
MDA5LTA4LTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEZpeGVzIHR3byBidWdzIGFi
b3V0IFBhbiBTY3JvbGxpbmcgLSBTY3JvbGxpbmcgd2l0aCBtaWRkbGUgbW91c2UgYnV0dG9uIGRv
ZXNuJ3QKICAgICAgICB3b3JrIGluIEV4cGFuZGVkIHZpZXcgb24gcmVhZGVyLmdvb2dsZS5jb20s
IGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJvbSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEuCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzCiAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzk0CgogICAgICAg
IEFkZGVkIGEgbmV3IG1ldGhvZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJl
IHNjcm9sbGVkIGFuZCBhY3R1YWxseSBoYXMgc29tZXRoaW5nIHRvCiAgICAgICAgc2Nyb2xsLCBh
bmQgdXNlIHRoYXQgZm9yIHBhbiBzY3JvbGxpbmcuCgogICAgICAgIEFkZGVkIGEgbWFudWFsIHRl
c3QgZm9yIHBhbiBzY3JvbGxpbmcgb2YgbmVzdGVkIGRpdnMuCgogICAgICAgICogbWFudWFsLXRl
c3RzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZURyYWdnZWRFdmVudCk6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0
b3Njcm9sbFJlbmRlcmVyKToKICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQpOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CiAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVh
KToKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeVJl
Y3Vyc2l2ZWx5KToKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDggKysrCiAuLi4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1k
aXZzLWV4cGVjdGVkLnR4dCB8ICAgIDYgKysKIC4uLi93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xs
LW5lc3RlZC1kaXZzLmh0bWwgICAgIHwgICA0OSArKysrKysrKysrKysrKysrKysrKwogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsrKysr
KysrKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgICAgICAgICAg
ICAgICAgfCAgICA1ICsrCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAg
ICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKystCiA4IGZpbGVzIGNoYW5nZWQsIDExNSBpbnNl
cnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA3NTUgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvZXZl
bnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU5ZjgyNjMuLmJhNGQ1YzMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAwOS0wOC0xMCAgQnJpYW4gV2VpbnN0ZWluICA8Yndl
aW5zdGVpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjgwMjMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMv
cGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA4LTA3ICBNaWtlIEZl
bnRvbiAgPG1pa2UuZmVudG9uQHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIFRyZWF0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3Qv
ZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2Y1ZjI2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1u
ZXN0ZWQtZGl2cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQYW5zY3JvbGxpbmcgc3Rh
cnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4KK1BhbnNj
cm9sbGluZyBvdXRzaWRlIHRoZSBibHVlIGJveGVzIHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRp
di4KK1BhbnNjcm9sbGluZyBzdGFydGluZyBpbiB0aGUgYmx1ZSBib3ggc2hvdWxkIHNjcm9sbCB0
aGUgb3V0ZXIgZGl2LgorVGVzdCBmb3IgYnVnIDI4MDIzIFRoaXMgdGVzdHMgdGhhdCBwYW4gc2Ny
b2xsaW5nIHByb3BvZ2F0ZXMgY29ycmVjdGx5IHVwIHRoZSBET00gdHJlZS4gT24gc3VjY2Vzcywg
b3VyIHNjcm9sbCBvZmZzZXQgc2hvdWxkIGJlIG5vbi16ZXJvLgorCitTdWNjZXNzISBEaXYgd2l0
aCBvdmVyZmxvdyB3YXMgc2Nyb2xsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Y2JiOTZmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQt
ZGl2cy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAg
IDx0aXRsZT5QYW4gU2Nyb2xsaW5nIFRlc3Q8L3RpdGxlPg0KKyAgICA8L2hlYWQ+DQorICAgIDxi
b2R5Pg0KKyAgICAgICAgPHNjcmlwdD4NCisgICAgICAgICAgICBpZiAobGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsNCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOw0KKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgICAgICA8ZGl2IGlk
PSJvdmVyZmxvdyIgc3R5bGU9IndpZHRoOjUwMHB4OyBoZWlnaHQ6MzAwcHg7IG92ZXJmbG93OmF1
dG87IGJvcmRlcjoycHggc29saWQgcmVkOyBwYWRkaW5nOjEwcHgiPg0KKyAgICAgICAgICAgIDxk
aXYgc3R5bGU9ImhlaWdodDoyMDBweDsgcG9zaXRpb246cmVsYXRpdmU7Ij4NCisgICAgICAgICAg
ICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OjE1MHB4OyBib3JkZXI6MXB4IGJsdWUgc29saWQ7IG92
ZXJmbG93OmF1dG87Ij4NCisgICAgICAgICAgICAgICAgICAgIFBhbnNjcm9sbGluZyBzdGFydGlu
ZyBpbiB0aGUgYmx1ZSBib3ggc2hvdWxkIHNjcm9sbCB0aGUgb3V0ZXIgZGl2Lg0KKyAgICAgICAg
ICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICAgICAgUGFuc2Nyb2xsaW5nIG91dHNpZGUgdGhl
IGJsdWUgYm94ZXMgc2hvdWxkIHNjcm9sbCB0aGUgb3V0ZXIgZGl2Lg0KKyAgICAgICAgICAgIDwv
ZGl2Pg0KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDoyMDBweDsgcG9zaXRpb246cmVs
YXRpdmU7Ij4NCisgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OjE1MHB4OyBib3Jk
ZXI6MXB4IGJsdWUgc29saWQ7IG92ZXJmbG93OmF1dG87Ij4NCisgICAgICAgICAgICAgICAgICAg
IFBhbnNjcm9sbGluZyBzdGFydGluZyBpbiB0aGUgYmx1ZSBib3ggc2hvdWxkIHNjcm9sbCB0aGUg
b3V0ZXIgZGl2Lg0KKyAgICAgICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8L2Rpdj4N
CisgICAgICAgIDwvZGl2Pg0KKyAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MDIzIj5idWcgMjgwMjM8L2E+IFRoaXMg
dGVzdHMgdGhhdCBwYW4gc2Nyb2xsaW5nDQorICAgICAgICBwcm9wb2dhdGVzIGNvcnJlY3RseSB1
cCB0aGUgRE9NIHRyZWUuIE9uIHN1Y2Nlc3MsIG91ciBzY3JvbGwgb2Zmc2V0IHNob3VsZCBiZSBu
b24temVyby48L3A+DQorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgICAg
IDxzY3JpcHQ+DQorICAgICAgICAgICAgaWYgKGV2ZW50U2VuZGVyKQ0KKyAgICAgICAgICAgIHsN
CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDUwKTsNCisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKDMpOw0KKyAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKDMpOw0KKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyg1MCwgMjAwKTsNCisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmaW5pc2hlZCwg
NTAwKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgZnVuY3Rp
b24gZmluaXNoZWQoKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgaWYgKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRvcCkNCisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gIlN1
Y2Nlc3MhIERpdiB3aXRoIG92ZXJmbG93IHdhcyBzY3JvbGxlZCI7DQorICAgICAgICAgICAgICAg
IGVsc2UNCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuaW5uZXJIVE1MID0gIkZhaWwhIERpdiB3aXRoIG92ZXJmbG93IHdhcyBub3Qgc2Nyb2xs
ZWQiOw0KKyAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsNCisgICAgICAgICAgICB9DQorICAgICAgICA8L3Nj
cmlwdD4NCisgICAgPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU3YmVlNmYuLjRkNzU4N2MgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjggQEAKKzIwMDktMDgtMDcgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVz
IHR3byBidWdzIGFib3V0IFBhbiBTY3JvbGxpbmcgLSBTY3JvbGxpbmcgd2l0aCBtaWRkbGUgbW91
c2UgYnV0dG9uIGRvZXNuJ3QgCisgICAgICAgIHdvcmsgaW4gRXhwYW5kZWQgdmlldyBvbiByZWFk
ZXIuZ29vZ2xlLmNvbSwgYW5kIENhbiBlbnRlciBhdXRvIHNjcm9sbCBmcm9tIGEgbm9uLXNjcm9s
bGFibGUgYXJlYS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI4MDIzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNDc5NAorICAgICAgICAKKyAgICAgICAgQWRkZWQgYSBuZXcgbWV0aG9kIHRvIFJlbmRlckJv
eCBzZWVpbmcgaWYgdGhlIEJveCBjYW4gYmUgc2Nyb2xsZWQgYW5kIGFjdHVhbGx5IGhhcyBzb21l
dGhpbmcgdG8KKyAgICAgICAgc2Nyb2xsLCBhbmQgdXNlIHRoYXQgZm9yIHBhbiBzY3JvbGxpbmcu
CisKKyAgICAgICAgQWRkZWQgYSBtYW51YWwgdGVzdCBmb3IgcGFuIHNjcm9sbGluZyBvZiBuZXN0
ZWQgZGl2cy4KKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcik6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQnlSZWN1cnNpdmVseSk6CisKIDIw
MDktMDgtMDcgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBmZDY0YThi
Li41OGU5ZWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgY29udGFp
bmVkIGluIGEgbGF5ZXIgdGhhdCBjYW4gc2Nyb2xsLCB0aGF0IGxheWVyIHNob3VsZCBoYW5kbGUg
dGhlIGF1dG9zY3JvbGwKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBsZXQgdGhlIGJyaWRnZSBoYW5k
bGUgaXQgc28gdGhlIHZpZXcgY2FuIHNjcm9sbCBpdHNlbGYuCiAgICAgICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSB0YXJnZXROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICB3aGlsZSAocmVu
ZGVyZXIgJiYgKCFyZW5kZXJlci0+aXNCb3goKSB8fCAhdG9SZW5kZXJCb3gocmVuZGVyZXIpLT5j
YW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGZhbHNlKSkpIHsKKyAgICAgICAgd2hpbGUgKHJl
bmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+
Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpKSB7CiAgICAgICAgICAgICBpZiAo
IXJlbmRlcmVyLT5wYXJlbnQoKSAmJiByZW5kZXJlci0+bm9kZSgpID09IHJlbmRlcmVyLT5kb2N1
bWVudCgpICYmIHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAg
ICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKS0+
cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTcyMCw3ICs3MjAsNyBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBpZiAoTm9kZSogbm9k
ZUF0UG9pbnQgPSBoaXRUZXN0LmlubmVyTm9kZSgpKQogICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlciA9IG5vZGVBdFBvaW50LT5yZW5kZXJlcigpOwogCi0gICAgd2hpbGUgKG1fYXV0b3Njcm9s
bFJlbmRlcmVyICYmICghbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVy
Qm94KG1fYXV0b3Njcm9sbFJlbmRlcmVyKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChm
YWxzZSkpKQorICAgIHdoaWxlIChtX2F1dG9zY3JvbGxSZW5kZXJlciAmJiAoIW1fYXV0b3Njcm9s
bFJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChtX2F1dG9zY3JvbGxSZW5kZXJlcikt
PmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSkKICAgICAgICAgbV9hdXRvc2Ny
b2xsUmVuZGVyZXIgPSBtX2F1dG9zY3JvbGxSZW5kZXJlci0+cGFyZW50KCk7CiB9CiAKQEAgLTEx
NjAsNyArMTE2MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQo
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAgIGlmIChtb3VzZUV2ZW50
LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRvbiAmJiAhbWV2LmlzT3ZlckxpbmsoKSkgewogICAgICAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbWV2LnRhcmdldE5vZGUoKS0+cmVuZGVyZXIoKTsK
IAotICAgICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+aXNCb3goKSB8fCAhdG9S
ZW5kZXJCb3gocmVuZGVyZXIpLT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGZhbHNlKSkp
IHsKKyAgICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRv
UmVuZGVyQm94KHJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkp
KSB7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAmJiByZW5kZXJlci0+bm9k
ZSgpID09IHJlbmRlcmVyLT5kb2N1bWVudCgpICYmIHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25l
ckVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5kb2N1bWVu
dCgpLT5vd25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGVsc2UKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCmluZGV4IDEyMmJlMmYuLjkwN2RiNGEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcApAQCAtNDEwLDYgKzQxMCwxMSBAQCBib29sIFJlbmRlckJveDo6c2Nyb2xsKFNjcm9s
bERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LAogICAg
ICAgICByZXR1cm4gYi0+c2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIG11bHRpcGxpZXIp
OwogICAgIHJldHVybiBmYWxzZTsKIH0KKworYm9vbCBSZW5kZXJCb3g6OmNhbkJlU2Nyb2xsZWRB
bmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICByZXR1cm4gY2FuQmVQcm9ncmFtYXRp
Y2FsbHlTY3JvbGxlZChmYWxzZSkgJiYgKHNjcm9sbEhlaWdodCgpICE9IGNsaWVudEhlaWdodCgp
IHx8IHNjcm9sbFdpZHRoKCkgIT0gY2xpZW50V2lkdGgoKSk7Cit9CiAgICAgCiBib29sIFJlbmRl
ckJveDo6Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChib29sKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAppbmRleCBmNGFkNWU5Li45MjE0NDNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApA
QCAtMjMwLDYgKzIzMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCB2ZXJ0aWNhbFNjcm9s
bGJhcldpZHRoKCkgY29uc3Q7CiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLjBmKTsKKyAgICBib29sIGNhbkJlU2Nyb2xs
ZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVBy
b2dyYW1hdGljYWxseVNjcm9sbGVkKGJvb2wpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhdXRv
c2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCkgeyB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDBmODI3Yi4uNWYwODA1NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtOTk3LDYgKzk5Nyw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhblNj
cm9sbEZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgc291cmNlUG9pbnQpCiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50IHlEZWx0YSkKIHsKKyAg
ICBpZiAoIXhEZWx0YSAmJiAheURlbHRhKQorICAgICAgICByZXR1cm47CisKICAgICBib29sIHJl
c3RyaWN0ZWRCeUxpbmVDbGFtcCA9IGZhbHNlOwogICAgIGlmIChyZW5kZXJlcigpLT5wYXJlbnQo
KSkKICAgICAgICAgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gcmVuZGVyZXIoKS0+cGFyZW50KCkt
PnN0eWxlKCktPmxpbmVDbGFtcCgpID49IDA7CkBAIC0xMDA2LDE3ICsxMDA5LDI5IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50IHlEZWx0YSkK
ICAgICAgICAgaW50IG5ld09mZnNldFkgPSBzY3JvbGxZT2Zmc2V0KCkgKyB5RGVsdGE7CiAgICAg
ICAgIHNjcm9sbFRvT2Zmc2V0KG5ld09mZnNldFgsIG5ld09mZnNldFkpOwogCi0gICAgICAgIC8v
IElmIHRoaXMgbGF5ZXIgY2FuJ3QgZG8gdGhlIHNjcm9sbCB3ZSBhc2sgaXRzIHBhcmVudAorICAg
ICAgICAvLyBJZiB0aGlzIGxheWVyIGNhbid0IGRvIHRoZSBzY3JvbGwgd2UgYXNrIHRoZSBuZXh0
IGxheWVyIHVwIHRoYXQgY2FuIHNjcm9sbCB0byB0cnkKICAgICAgICAgaW50IGxlZnRUb1Njcm9s
bFggPSBuZXdPZmZzZXRYIC0gc2Nyb2xsWE9mZnNldCgpOwogICAgICAgICBpbnQgbGVmdFRvU2Ny
b2xsWSA9IG5ld09mZnNldFkgLSBzY3JvbGxZT2Zmc2V0KCk7CiAgICAgICAgIGlmICgobGVmdFRv
U2Nyb2xsWCB8fCBsZWZ0VG9TY3JvbGxZKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewotICAg
ICAgICAgICAgcmVuZGVyZXIoKS0+cGFyZW50KCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbEJ5
UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xsWCwgbGVmdFRvU2Nyb2xsWSk7CisgICAgICAgICAgICBS
ZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlciA9IHJlbmRlcmVyKCktPnBhcmVudCgpOworICAgICAg
ICAgICAgd2hpbGUgKG5leHRSZW5kZXJlcikgeworICAgICAgICAgICAgICAgIGlmIChuZXh0UmVu
ZGVyZXItPmlzQm94KCkgJiYgdG9SZW5kZXJCb3gobmV4dFJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxl
ZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFJlbmRl
cmVyLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5KGxlZnRUb1Njcm9sbFgs
IGxlZnRUb1Njcm9sbFkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgbmV4dFJlbmRlcmVyID0gbmV4dFJlbmRlcmVyLT5wYXJl
bnQoKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcmVuZGVy
ZXIoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICAgICAgICAgIGlmIChmcmFtZSkKICAgICAg
ICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJl
cigpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZW5kZXJlcigpLT52aWV3KCktPmZyYW1l
VmlldygpKQorICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKSkg
eworICAgICAgICAvLyBJZiB3ZSBhcmUgaGVyZSwgd2Ugd2VyZSBjYWxsZWQgb24gYSByZW5kZXJl
ciB0aGF0IGNhbiBiZSBwcm9ncmFtYXRpY2FsbHkgc2Nyb2xsZWQsIGJ1dCBkb2Vzbid0CisgICAg
ICAgIC8vIGhhdmUgYW4gb3ZlcmZsb3cgY2xpcC4gV2hpY2ggbWVhbnMgdGhhdCBpdCBpcyBhIGRv
Y3VtZW50IG5vZGUgdGhhdCBjYW4gYmUgc2Nyb2xsZWQuCiAgICAgICAgIHJlbmRlcmVyKCktPnZp
ZXcoKS0+ZnJhbWVWaWV3KCktPnNjcm9sbEJ5KEludFNpemUoeERlbHRhLCB5RGVsdGEpKTsKKyAg
ICAgICAgLy8gRklYTUU6IElmIHdlIGRpZG4ndCBzY3JvbGwgdGhlIHdob2xlIHdheSwgZG8gd2Ug
d2FudCB0byB0cnkgbG9va2luZyBhdCB0aGUgZnJhbWVzIG93bmVyRWxlbWVudD8KKyAgICB9CiB9
CiAKIAotLSAKMS42LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34572</attachid>
            <date>2009-08-11 10:11:26 -0700</date>
            <delta_ts>2009-08-11 10:13:53 -0700</delta_ts>
            <desc>Fixed ChangeLogs</desc>
            <filename>0001-2009-08-11-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>13027</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSBhNTVkMDFiYTg2ZTM1M2Q2MzkwZTMzYjU2OGIzZjAyZDRjYzAwMDUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBXZWluc3RlaW4gPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDExIEF1ZyAyMDA5IDEwOjA3OjU4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
MjAwOS0wOC0xMSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBGaXhlcyB0d28gYnVncyBh
Ym91dCBQYW4gU2Nyb2xsaW5nIC0gU2Nyb2xsaW5nIHdpdGggbWlkZGxlIG1vdXNlIGJ1dHRvbiBk
b2Vzbid0CiAgICAgICAgd29yayBpbiBFeHBhbmRlZCB2aWV3IG9uIHJlYWRlci5nb29nbGUuY29t
LCBhbmQgQ2FuIGVudGVyIGF1dG8gc2Nyb2xsIGZyb20gYSBub24tc2Nyb2xsYWJsZSBhcmVhLgog
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODAyMwogICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc5NAoKICAgICAg
ICBBZGRlZCBhIG5ldyBtZXRob2QgdG8gUmVuZGVyQm94IHNlZWluZyBpZiB0aGUgQm94IGNhbiBi
ZSBzY3JvbGxlZCBhbmQgYWN0dWFsbHkgaGFzIHNvbWV0aGluZyB0bwogICAgICAgIHNjcm9sbCwg
YW5kIHVzZSB0aGF0IGZvciBwYW4gc2Nyb2xsaW5nLgoKICAgICAgICBUZXN0OiBwbGF0Zm9ybS93
aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwKCiAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VEcmFnZ2VkRXZlbnQpOgogICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0
ZUF1dG9zY3JvbGxSZW5kZXJlcik6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KToKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgog
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxl
QXJlYSk6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CiAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xs
QnlSZWN1cnNpdmVseSk6CgoyMDA5LTA4LTExICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWlu
QGFwcGxlLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAg
IEFkZGVkIGEgV2luZG93cyB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjgwMjMuCgogICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvZXZlbnRzL3BhblNj
cm9sbC1uZXN0ZWQtZGl2cy1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgICAgICogcGxhdGZvcm0v
d2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KLS0tCiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkg
KysrKwogLi4uL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy1leHBlY3RlZC50eHQg
fCAgICA2ICsrCiAuLi4vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1s
ICAgICB8ICAgNDkgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKysrCiBXZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArKwog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCAgICAgICAgICAgICAgICAgIHwg
ICAyMSArKysrKysrLQogOCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgNiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFz
dC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNzU1IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVz
dGVkLWRpdnMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlOWY4MjYzLi4wMTlmMGZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMDktMDgtMTEgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IGEgV2luZG93cyB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjgwMjMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xs
LW5lc3RlZC1kaXZzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2lu
L2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KKwogMjAwOS0w
OC0wNyAgTWlrZSBGZW50b24gIDxtaWtlLmZlbnRvbkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdmNWYy
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50
cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUGFu
c2Nyb2xsaW5nIHN0YXJ0aW5nIGluIHRoZSBibHVlIGJveCBzaG91bGQgc2Nyb2xsIHRoZSBvdXRl
ciBkaXYuCitQYW5zY3JvbGxpbmcgb3V0c2lkZSB0aGUgYmx1ZSBib3hlcyBzaG91bGQgc2Nyb2xs
IHRoZSBvdXRlciBkaXYuCitQYW5zY3JvbGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNo
b3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4KK1Rlc3QgZm9yIGJ1ZyAyODAyMyBUaGlzIHRlc3Rz
IHRoYXQgcGFuIHNjcm9sbGluZyBwcm9wb2dhdGVzIGNvcnJlY3RseSB1cCB0aGUgRE9NIHRyZWUu
IE9uIHN1Y2Nlc3MsIG91ciBzY3JvbGwgb2Zmc2V0IHNob3VsZCBiZSBub24temVyby4KKworU3Vj
Y2VzcyEgRGl2IHdpdGggb3ZlcmZsb3cgd2FzIHNjcm9sbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1k
aXZzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmNiYjk2ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5T
Y3JvbGwtbmVzdGVkLWRpdnMuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8aHRtbD4NCisgICAgPGhl
YWQ+DQorICAgICAgICA8dGl0bGU+UGFuIFNjcm9sbGluZyBUZXN0PC90aXRsZT4NCisgICAgPC9o
ZWFkPg0KKyAgICA8Ym9keT4NCisgICAgICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAgaWYgKGxh
eW91dFRlc3RDb250cm9sbGVyKSB7DQorICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsNCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIDwvc2NyaXB0Pg0KKyAg
ICAgICAgPGRpdiBpZD0ib3ZlcmZsb3ciIHN0eWxlPSJ3aWR0aDo1MDBweDsgaGVpZ2h0OjMwMHB4
OyBvdmVyZmxvdzphdXRvOyBib3JkZXI6MnB4IHNvbGlkIHJlZDsgcGFkZGluZzoxMHB4Ij4NCisg
ICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyI+
DQorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDoxNTBweDsgYm9yZGVyOjFweCBi
bHVlIHNvbGlkOyBvdmVyZmxvdzphdXRvOyI+DQorICAgICAgICAgICAgICAgICAgICBQYW5zY3Jv
bGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRp
di4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgICAgIFBhbnNjcm9sbGlu
ZyBvdXRzaWRlIHRoZSBibHVlIGJveGVzIHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisg
ICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7
IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDoxNTBweDsgYm9yZGVyOjFweCBibHVlIHNvbGlkOyBvdmVyZmxvdzphdXRvOyI+DQorICAgICAg
ICAgICAgICAgICAgICBQYW5zY3JvbGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3Vs
ZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAg
ICAgICAgPC9kaXY+DQorICAgICAgICA8L2Rpdj4NCisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODAyMyI+YnVnIDI4
MDIzPC9hPiBUaGlzIHRlc3RzIHRoYXQgcGFuIHNjcm9sbGluZw0KKyAgICAgICAgcHJvcG9nYXRl
cyBjb3JyZWN0bHkgdXAgdGhlIERPTSB0cmVlLiBPbiBzdWNjZXNzLCBvdXIgc2Nyb2xsIG9mZnNl
dCBzaG91bGQgYmUgbm9uLXplcm8uPC9wPg0KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIGlmIChldmVudFNlbmRlcikNCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUw
LCA1MCk7DQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigzKTsNCisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgzKTsNCisgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDIwMCk7DQorICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZmluaXNoZWQsIDUwMCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIA0KKyAgICAg
ICAgICAgIGZ1bmN0aW9uIGZpbmlzaGVkKCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZlcmZsb3cnKS5zY3JvbGxUb3ApDQor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCA9ICJTdWNjZXNzISBEaXYgd2l0aCBvdmVyZmxvdyB3YXMgc2Nyb2xsZWQiOw0KKyAg
ICAgICAgICAgICAgICBlbHNlDQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICJGYWlsISBEaXYgd2l0aCBvdmVyZmxvdyB3
YXMgbm90IHNjcm9sbGVkIjsNCisgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgICAgICAgICAgfQ0K
KyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlN2JlZTZmLi5jZjgx
MDM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA4LTExICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0
ZWluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXhlcyB0d28gYnVncyBhYm91dCBQYW4gU2Nyb2xsaW5nIC0gU2Nyb2xsaW5nIHdp
dGggbWlkZGxlIG1vdXNlIGJ1dHRvbiBkb2Vzbid0IAorICAgICAgICB3b3JrIGluIEV4cGFuZGVk
IHZpZXcgb24gcmVhZGVyLmdvb2dsZS5jb20sIGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJv
bSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAyMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjQ3OTQKKyAgICAgICAgCisgICAgICAgIEFkZGVkIGEgbmV3IG1ldGhv
ZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJlIHNjcm9sbGVkIGFuZCBhY3R1
YWxseSBoYXMgc29tZXRoaW5nIHRvCisgICAgICAgIHNjcm9sbCwgYW5kIHVzZSB0aGF0IGZvciBw
YW4gc2Nyb2xsaW5nLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9w
YW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbAorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZUF1dG9zY3JvbGxS
ZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJl
c3NFdmVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQnlSZWN1
cnNpdmVseSk6CisKIDIwMDktMDgtMDcgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCBmZDY0YThiLi41OGU5ZWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDMwLDcg
KzQzMCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgICAgIC8vIElmIHRoZSBzZWxl
Y3Rpb24gaXMgY29udGFpbmVkIGluIGEgbGF5ZXIgdGhhdCBjYW4gc2Nyb2xsLCB0aGF0IGxheWVy
IHNob3VsZCBoYW5kbGUgdGhlIGF1dG9zY3JvbGwKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBsZXQg
dGhlIGJyaWRnZSBoYW5kbGUgaXQgc28gdGhlIHZpZXcgY2FuIHNjcm9sbCBpdHNlbGYuCiAgICAg
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0YXJnZXROb2RlLT5yZW5kZXJlcigpOwotICAg
ICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+aXNCb3goKSB8fCAhdG9SZW5kZXJC
b3gocmVuZGVyZXIpLT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGZhbHNlKSkpIHsKKyAg
ICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVy
Qm94KHJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpKSB7CiAg
ICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAmJiByZW5kZXJlci0+bm9kZSgpID09
IHJlbmRlcmVyLT5kb2N1bWVudCgpICYmIHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1l
bnQoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5v
d25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTcyMCw3ICs3
MjAsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAg
ICBpZiAoTm9kZSogbm9kZUF0UG9pbnQgPSBoaXRUZXN0LmlubmVyTm9kZSgpKQogICAgICAgICBt
X2F1dG9zY3JvbGxSZW5kZXJlciA9IG5vZGVBdFBvaW50LT5yZW5kZXJlcigpOwogCi0gICAgd2hp
bGUgKG1fYXV0b3Njcm9sbFJlbmRlcmVyICYmICghbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmlzQm94
KCkgfHwgIXRvUmVuZGVyQm94KG1fYXV0b3Njcm9sbFJlbmRlcmVyKS0+Y2FuQmVQcm9ncmFtYXRp
Y2FsbHlTY3JvbGxlZChmYWxzZSkpKQorICAgIHdoaWxlIChtX2F1dG9zY3JvbGxSZW5kZXJlciAm
JiAoIW1fYXV0b3Njcm9sbFJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChtX2F1dG9z
Y3JvbGxSZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSkKICAg
ICAgICAgbV9hdXRvc2Nyb2xsUmVuZGVyZXIgPSBtX2F1dG9zY3JvbGxSZW5kZXJlci0+cGFyZW50
KCk7CiB9CiAKQEAgLTExNjAsNyArMTE2MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAg
IGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRvbiAmJiAhbWV2LmlzT3Zlckxp
bmsoKSkgewogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbWV2LnRhcmdldE5vZGUo
KS0+cmVuZGVyZXIoKTsKIAotICAgICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+
aXNCb3goKSB8fCAhdG9SZW5kZXJCb3gocmVuZGVyZXIpLT5jYW5CZVByb2dyYW1hdGljYWxseVNj
cm9sbGVkKGZhbHNlKSkpIHsKKyAgICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXIt
PmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Nj
cm9sbGFibGVBcmVhKCkpKSB7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAm
JiByZW5kZXJlci0+bm9kZSgpID09IHJlbmRlcmVyLT5kb2N1bWVudCgpICYmIHJlbmRlcmVyLT5k
b2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlciA9IHJl
bmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAg
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDEyMmJlMmYuLjkwN2RiNGEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDEwLDYgKzQxMCwxMSBAQCBib29sIFJlbmRlckJv
eDo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LAogICAgICAgICByZXR1cm4gYi0+c2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJp
dHksIG11bHRpcGxpZXIpOwogICAgIHJldHVybiBmYWxzZTsKIH0KKworYm9vbCBSZW5kZXJCb3g6
OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICByZXR1cm4g
Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChmYWxzZSkgJiYgKHNjcm9sbEhlaWdodCgpICE9
IGNsaWVudEhlaWdodCgpIHx8IHNjcm9sbFdpZHRoKCkgIT0gY2xpZW50V2lkdGgoKSk7Cit9CiAg
ICAgCiBib29sIFJlbmRlckJveDo6Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChib29sKSBj
b25zdAogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBmNGFkNWU5Li45MjE0NDNhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaApAQCAtMjMwLDYgKzIzMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGlu
dCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgY29uc3Q7CiAgICAgaW50IGhvcml6b250YWxTY3Jv
bGxiYXJIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLjBmKTsKKyAgICBi
b29sIGNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBjYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGJvb2wpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBhdXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xs
KCkgeyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDBmODI3Yi4uNWYwODA1NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTk3LDYgKzk5Nyw5IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgc291cmNlUG9pbnQp
CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50
IHlEZWx0YSkKIHsKKyAgICBpZiAoIXhEZWx0YSAmJiAheURlbHRhKQorICAgICAgICByZXR1cm47
CisKICAgICBib29sIHJlc3RyaWN0ZWRCeUxpbmVDbGFtcCA9IGZhbHNlOwogICAgIGlmIChyZW5k
ZXJlcigpLT5wYXJlbnQoKSkKICAgICAgICAgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gcmVuZGVy
ZXIoKS0+cGFyZW50KCktPnN0eWxlKCktPmxpbmVDbGFtcCgpID49IDA7CkBAIC0xMDA2LDE3ICsx
MDA5LDI5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0
YSwgaW50IHlEZWx0YSkKICAgICAgICAgaW50IG5ld09mZnNldFkgPSBzY3JvbGxZT2Zmc2V0KCkg
KyB5RGVsdGE7CiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld09mZnNldFgsIG5ld09mZnNldFkp
OwogCi0gICAgICAgIC8vIElmIHRoaXMgbGF5ZXIgY2FuJ3QgZG8gdGhlIHNjcm9sbCB3ZSBhc2sg
aXRzIHBhcmVudAorICAgICAgICAvLyBJZiB0aGlzIGxheWVyIGNhbid0IGRvIHRoZSBzY3JvbGwg
d2UgYXNrIHRoZSBuZXh0IGxheWVyIHVwIHRoYXQgY2FuIHNjcm9sbCB0byB0cnkKICAgICAgICAg
aW50IGxlZnRUb1Njcm9sbFggPSBuZXdPZmZzZXRYIC0gc2Nyb2xsWE9mZnNldCgpOwogICAgICAg
ICBpbnQgbGVmdFRvU2Nyb2xsWSA9IG5ld09mZnNldFkgLSBzY3JvbGxZT2Zmc2V0KCk7CiAgICAg
ICAgIGlmICgobGVmdFRvU2Nyb2xsWCB8fCBsZWZ0VG9TY3JvbGxZKSAmJiByZW5kZXJlcigpLT5w
YXJlbnQoKSkgewotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFyZW50KCktPmVuY2xvc2luZ0xh
eWVyKCktPnNjcm9sbEJ5UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xsWCwgbGVmdFRvU2Nyb2xsWSk7
CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlciA9IHJlbmRlcmVyKCktPnBh
cmVudCgpOworICAgICAgICAgICAgd2hpbGUgKG5leHRSZW5kZXJlcikgeworICAgICAgICAgICAg
ICAgIGlmIChuZXh0UmVuZGVyZXItPmlzQm94KCkgJiYgdG9SZW5kZXJCb3gobmV4dFJlbmRlcmVy
KS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dFJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5
KGxlZnRUb1Njcm9sbFgsIGxlZnRUb1Njcm9sbFkpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV4dFJlbmRlcmVyID0gbmV4
dFJlbmRlcmVyLT5wYXJlbnQoKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgRnJhbWUq
IGZyYW1lID0gcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICAgICAgICAgIGlm
IChmcmFtZSkKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnVwZGF0ZUF1
dG9zY3JvbGxSZW5kZXJlcigpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZW5kZXJlcigp
LT52aWV3KCktPmZyYW1lVmlldygpKQorICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+dmlldygp
LT5mcmFtZVZpZXcoKSkgeworICAgICAgICAvLyBJZiB3ZSBhcmUgaGVyZSwgd2Ugd2VyZSBjYWxs
ZWQgb24gYSByZW5kZXJlciB0aGF0IGNhbiBiZSBwcm9ncmFtYXRpY2FsbHkgc2Nyb2xsZWQsIGJ1
dCBkb2Vzbid0CisgICAgICAgIC8vIGhhdmUgYW4gb3ZlcmZsb3cgY2xpcC4gV2hpY2ggbWVhbnMg
dGhhdCBpdCBpcyBhIGRvY3VtZW50IG5vZGUgdGhhdCBjYW4gYmUgc2Nyb2xsZWQuCiAgICAgICAg
IHJlbmRlcmVyKCktPnZpZXcoKS0+ZnJhbWVWaWV3KCktPnNjcm9sbEJ5KEludFNpemUoeERlbHRh
LCB5RGVsdGEpKTsKKyAgICAgICAgLy8gRklYTUU6IElmIHdlIGRpZG4ndCBzY3JvbGwgdGhlIHdo
b2xlIHdheSwgZG8gd2Ugd2FudCB0byB0cnkgbG9va2luZyBhdCB0aGUgZnJhbWVzIG93bmVyRWxl
bWVudD8KKyAgICB9CiB9CiAKIAotLSAKMS42LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34574</attachid>
            <date>2009-08-11 10:13:53 -0700</date>
            <delta_ts>2009-08-12 16:11:16 -0700</delta_ts>
            <desc>Scroll Fixes + Automated Test</desc>
            <filename>0001-2009-08-11-Brian-Weinstein-bweinstein-apple.com.patch</filename>
            <type>text/plain</type>
            <size>13027</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">RnJvbSAwOWI0MzRlODEzMWU1YzAwNWU5MzgwZWE4ZjBmMDMwNzI3NGZhM2U1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBXZWluc3RlaW4gPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDExIEF1ZyAyMDA5IDEwOjA3OjU4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
MjAwOS0wOC0xMSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBGaXhlcyB0d28gYnVncyBh
Ym91dCBQYW4gU2Nyb2xsaW5nIC0gU2Nyb2xsaW5nIHdpdGggbWlkZGxlIG1vdXNlIGJ1dHRvbiBk
b2Vzbid0CiAgICAgICAgd29yayBpbiBFeHBhbmRlZCB2aWV3IG9uIHJlYWRlci5nb29nbGUuY29t
LCBhbmQgQ2FuIGVudGVyIGF1dG8gc2Nyb2xsIGZyb20gYSBub24tc2Nyb2xsYWJsZSBhcmVhLgog
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODAyMwogICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc5NAoKICAgICAg
ICBBZGRlZCBhIG5ldyBtZXRob2QgdG8gUmVuZGVyQm94IHNlZWluZyBpZiB0aGUgQm94IGNhbiBi
ZSBzY3JvbGxlZCBhbmQgYWN0dWFsbHkgaGFzIHNvbWV0aGluZyB0bwogICAgICAgIHNjcm9sbCwg
YW5kIHVzZSB0aGF0IGZvciBwYW4gc2Nyb2xsaW5nLgoKICAgICAgICBUZXN0OiBwbGF0Zm9ybS93
aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwKCiAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VEcmFnZ2VkRXZlbnQpOgogICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0
ZUF1dG9zY3JvbGxSZW5kZXJlcik6CiAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KToKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgog
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxl
QXJlYSk6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CiAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xs
QnlSZWN1cnNpdmVseSk6CgoyMDA5LTA4LTExICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWlu
QGFwcGxlLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAg
IEFkZGVkIGEgV2luZG93cyB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjgwMjMuCgogICAgICAgICogcGxhdGZvcm0vd2luL2Zhc3QvZXZlbnRzL3BhblNj
cm9sbC1uZXN0ZWQtZGl2cy1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgICAgICogcGxhdGZvcm0v
d2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KLS0tCiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkg
KysrKwogLi4uL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy1leHBlY3RlZC50eHQg
fCAgICA2ICsrCiAuLi4vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1s
ICAgICB8ICAgNDkgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKysrCiBXZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArKwog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggICAgICAgICAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCAgICAgICAgICAgICAgICAgIHwg
ICAyMSArKysrKysrLQogOCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgNiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFz
dC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNzU1IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVz
dGVkLWRpdnMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlOWY4MjYzLi4wMTlmMGZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMDktMDgtMTEgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IGEgV2luZG93cyB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjgwMjMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xs
LW5lc3RlZC1kaXZzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2lu
L2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2cy5odG1sOiBBZGRlZC4KKwogMjAwOS0w
OC0wNyAgTWlrZSBGZW50b24gIDxtaWtlLmZlbnRvbkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Zhc3QvZXZlbnRzL3BhblNjcm9sbC1uZXN0ZWQtZGl2
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdmNWYy
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50
cy9wYW5TY3JvbGwtbmVzdGVkLWRpdnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUGFu
c2Nyb2xsaW5nIHN0YXJ0aW5nIGluIHRoZSBibHVlIGJveCBzaG91bGQgc2Nyb2xsIHRoZSBvdXRl
ciBkaXYuCitQYW5zY3JvbGxpbmcgb3V0c2lkZSB0aGUgYmx1ZSBib3hlcyBzaG91bGQgc2Nyb2xs
IHRoZSBvdXRlciBkaXYuCitQYW5zY3JvbGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNo
b3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4KK1Rlc3QgZm9yIGJ1ZyAyODAyMyBUaGlzIHRlc3Rz
IHRoYXQgcGFuIHNjcm9sbGluZyBwcm9wb2dhdGVzIGNvcnJlY3RseSB1cCB0aGUgRE9NIHRyZWUu
IE9uIHN1Y2Nlc3MsIG91ciBzY3JvbGwgb2Zmc2V0IHNob3VsZCBiZSBub24temVyby4KKworU3Vj
Y2VzcyEgRGl2IHdpdGggb3ZlcmZsb3cgd2FzIHNjcm9sbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1kaXZzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5lc3RlZC1k
aXZzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmM4ZTRlZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5T
Y3JvbGwtbmVzdGVkLWRpdnMuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8aHRtbD4NCisgICAgPGhl
YWQ+DQorICAgICAgICA8dGl0bGU+UGFuIFNjcm9sbGluZyBUZXN0PC90aXRsZT4NCisgICAgPC9o
ZWFkPg0KKyAgICA8Ym9keT4NCisgICAgICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAgaWYgKGxh
eW91dFRlc3RDb250cm9sbGVyKSB7DQorICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsNCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIDwvc2NyaXB0Pg0KKyAg
ICAgICAgPGRpdiBpZD0ib3ZlcmZsb3ciIHN0eWxlPSJ3aWR0aDo1MDBweDsgaGVpZ2h0OjMwMHB4
OyBvdmVyZmxvdzphdXRvOyBib3JkZXI6MnB4IHNvbGlkIHJlZDsgcGFkZGluZzoxMHB4Ij4NCisg
ICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyI+
DQorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDoxNTBweDsgYm9yZGVyOjFweCBi
bHVlIHNvbGlkOyBvdmVyZmxvdzphdXRvOyI+DQorICAgICAgICAgICAgICAgICAgICBQYW5zY3Jv
bGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRp
di4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAgICAgICAgICAgIFBhbnNjcm9sbGlu
ZyBvdXRzaWRlIHRoZSBibHVlIGJveGVzIHNob3VsZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisg
ICAgICAgICAgICA8L2Rpdj4NCisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7
IHBvc2l0aW9uOnJlbGF0aXZlOyI+DQorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDoxNTBweDsgYm9yZGVyOjFweCBibHVlIHNvbGlkOyBvdmVyZmxvdzphdXRvOyI+DQorICAgICAg
ICAgICAgICAgICAgICBQYW5zY3JvbGxpbmcgc3RhcnRpbmcgaW4gdGhlIGJsdWUgYm94IHNob3Vs
ZCBzY3JvbGwgdGhlIG91dGVyIGRpdi4NCisgICAgICAgICAgICAgICAgPC9kaXY+DQorICAgICAg
ICAgICAgPC9kaXY+DQorICAgICAgICA8L2Rpdj4NCisgICAgICAgIDxwPlRlc3QgZm9yIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODAyMyI+YnVnIDI4
MDIzPC9hPiBUaGlzIHRlc3RzIHRoYXQgcGFuIHNjcm9sbGluZw0KKyAgICAgICAgcHJvcG9nYXRl
cyBjb3JyZWN0bHkgdXAgdGhlIERPTSB0cmVlLiBPbiBzdWNjZXNzLCBvdXIgc2Nyb2xsIG9mZnNl
dCBzaG91bGQgYmUgbm9uLXplcm8uPC9wPg0KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIGlmIChldmVudFNlbmRlcikNCisg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDUw
LCA1MCk7DQorICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigxKTsNCisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgxKTsNCisgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oNTAsIDIwMCk7DQorICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZmluaXNoZWQsIDUwMCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIA0KKyAgICAg
ICAgICAgIGZ1bmN0aW9uIGZpbmlzaGVkKCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZlcmZsb3cnKS5zY3JvbGxUb3ApDQor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlu
bmVySFRNTCA9ICJTdWNjZXNzISBEaXYgd2l0aCBvdmVyZmxvdyB3YXMgc2Nyb2xsZWQiOw0KKyAg
ICAgICAgICAgICAgICBlbHNlDQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICJGYWlsISBEaXYgd2l0aCBvdmVyZmxvdyB3
YXMgbm90IHNjcm9sbGVkIjsNCisgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgICAgICAgICAgfQ0K
KyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlN2JlZTZmLi5jZjgx
MDM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA4LTExICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0
ZWluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXhlcyB0d28gYnVncyBhYm91dCBQYW4gU2Nyb2xsaW5nIC0gU2Nyb2xsaW5nIHdp
dGggbWlkZGxlIG1vdXNlIGJ1dHRvbiBkb2Vzbid0IAorICAgICAgICB3b3JrIGluIEV4cGFuZGVk
IHZpZXcgb24gcmVhZGVyLmdvb2dsZS5jb20sIGFuZCBDYW4gZW50ZXIgYXV0byBzY3JvbGwgZnJv
bSBhIG5vbi1zY3JvbGxhYmxlIGFyZWEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODAyMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjQ3OTQKKyAgICAgICAgCisgICAgICAgIEFkZGVkIGEgbmV3IG1ldGhv
ZCB0byBSZW5kZXJCb3ggc2VlaW5nIGlmIHRoZSBCb3ggY2FuIGJlIHNjcm9sbGVkIGFuZCBhY3R1
YWxseSBoYXMgc29tZXRoaW5nIHRvCisgICAgICAgIHNjcm9sbCwgYW5kIHVzZSB0aGF0IGZvciBw
YW4gc2Nyb2xsaW5nLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9w
YW5TY3JvbGwtbmVzdGVkLWRpdnMuaHRtbAorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZUF1dG9zY3JvbGxS
ZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJl
c3NFdmVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQnlSZWN1
cnNpdmVseSk6CisKIDIwMDktMDgtMDcgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCBmZDY0YThiLi41OGU5ZWRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDMwLDcg
KzQzMCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgICAgIC8vIElmIHRoZSBzZWxl
Y3Rpb24gaXMgY29udGFpbmVkIGluIGEgbGF5ZXIgdGhhdCBjYW4gc2Nyb2xsLCB0aGF0IGxheWVy
IHNob3VsZCBoYW5kbGUgdGhlIGF1dG9zY3JvbGwKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBsZXQg
dGhlIGJyaWRnZSBoYW5kbGUgaXQgc28gdGhlIHZpZXcgY2FuIHNjcm9sbCBpdHNlbGYuCiAgICAg
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0YXJnZXROb2RlLT5yZW5kZXJlcigpOwotICAg
ICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+aXNCb3goKSB8fCAhdG9SZW5kZXJC
b3gocmVuZGVyZXIpLT5jYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGZhbHNlKSkpIHsKKyAg
ICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXItPmlzQm94KCkgfHwgIXRvUmVuZGVy
Qm94KHJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpKSB7CiAg
ICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAmJiByZW5kZXJlci0+bm9kZSgpID09
IHJlbmRlcmVyLT5kb2N1bWVudCgpICYmIHJlbmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1l
bnQoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5v
d25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTcyMCw3ICs3
MjAsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAg
ICBpZiAoTm9kZSogbm9kZUF0UG9pbnQgPSBoaXRUZXN0LmlubmVyTm9kZSgpKQogICAgICAgICBt
X2F1dG9zY3JvbGxSZW5kZXJlciA9IG5vZGVBdFBvaW50LT5yZW5kZXJlcigpOwogCi0gICAgd2hp
bGUgKG1fYXV0b3Njcm9sbFJlbmRlcmVyICYmICghbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmlzQm94
KCkgfHwgIXRvUmVuZGVyQm94KG1fYXV0b3Njcm9sbFJlbmRlcmVyKS0+Y2FuQmVQcm9ncmFtYXRp
Y2FsbHlTY3JvbGxlZChmYWxzZSkpKQorICAgIHdoaWxlIChtX2F1dG9zY3JvbGxSZW5kZXJlciAm
JiAoIW1fYXV0b3Njcm9sbFJlbmRlcmVyLT5pc0JveCgpIHx8ICF0b1JlbmRlckJveChtX2F1dG9z
Y3JvbGxSZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKSkKICAg
ICAgICAgbV9hdXRvc2Nyb2xsUmVuZGVyZXIgPSBtX2F1dG9zY3JvbGxSZW5kZXJlci0+cGFyZW50
KCk7CiB9CiAKQEAgLTExNjAsNyArMTE2MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVByZXNzRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAg
IGlmIChtb3VzZUV2ZW50LmJ1dHRvbigpID09IE1pZGRsZUJ1dHRvbiAmJiAhbWV2LmlzT3Zlckxp
bmsoKSkgewogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbWV2LnRhcmdldE5vZGUo
KS0+cmVuZGVyZXIoKTsKIAotICAgICAgICB3aGlsZSAocmVuZGVyZXIgJiYgKCFyZW5kZXJlci0+
aXNCb3goKSB8fCAhdG9SZW5kZXJCb3gocmVuZGVyZXIpLT5jYW5CZVByb2dyYW1hdGljYWxseVNj
cm9sbGVkKGZhbHNlKSkpIHsKKyAgICAgICAgd2hpbGUgKHJlbmRlcmVyICYmICghcmVuZGVyZXIt
PmlzQm94KCkgfHwgIXRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Nj
cm9sbGFibGVBcmVhKCkpKSB7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5wYXJlbnQoKSAm
JiByZW5kZXJlci0+bm9kZSgpID09IHJlbmRlcmVyLT5kb2N1bWVudCgpICYmIHJlbmRlcmVyLT5k
b2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICByZW5kZXJlciA9IHJl
bmRlcmVyLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAg
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDEyMmJlMmYuLjkwN2RiNGEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDEwLDYgKzQxMCwxMSBAQCBib29sIFJlbmRlckJv
eDo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LAogICAgICAgICByZXR1cm4gYi0+c2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJp
dHksIG11bHRpcGxpZXIpOwogICAgIHJldHVybiBmYWxzZTsKIH0KKworYm9vbCBSZW5kZXJCb3g6
OmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICByZXR1cm4g
Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChmYWxzZSkgJiYgKHNjcm9sbEhlaWdodCgpICE9
IGNsaWVudEhlaWdodCgpIHx8IHNjcm9sbFdpZHRoKCkgIT0gY2xpZW50V2lkdGgoKSk7Cit9CiAg
ICAgCiBib29sIFJlbmRlckJveDo6Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChib29sKSBj
b25zdAogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBmNGFkNWU5Li45MjE0NDNhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaApAQCAtMjMwLDYgKzIzMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGlu
dCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgY29uc3Q7CiAgICAgaW50IGhvcml6b250YWxTY3Jv
bGxiYXJIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLjBmKTsKKyAgICBi
b29sIGNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBjYW5CZVByb2dyYW1hdGljYWxseVNjcm9sbGVkKGJvb2wpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBhdXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xs
KCkgeyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDBmODI3Yi4uNWYwODA1NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTk3LDYgKzk5Nyw5IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgc291cmNlUG9pbnQp
CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50
IHlEZWx0YSkKIHsKKyAgICBpZiAoIXhEZWx0YSAmJiAheURlbHRhKQorICAgICAgICByZXR1cm47
CisKICAgICBib29sIHJlc3RyaWN0ZWRCeUxpbmVDbGFtcCA9IGZhbHNlOwogICAgIGlmIChyZW5k
ZXJlcigpLT5wYXJlbnQoKSkKICAgICAgICAgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gcmVuZGVy
ZXIoKS0+cGFyZW50KCktPnN0eWxlKCktPmxpbmVDbGFtcCgpID49IDA7CkBAIC0xMDA2LDE3ICsx
MDA5LDI5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0
YSwgaW50IHlEZWx0YSkKICAgICAgICAgaW50IG5ld09mZnNldFkgPSBzY3JvbGxZT2Zmc2V0KCkg
KyB5RGVsdGE7CiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld09mZnNldFgsIG5ld09mZnNldFkp
OwogCi0gICAgICAgIC8vIElmIHRoaXMgbGF5ZXIgY2FuJ3QgZG8gdGhlIHNjcm9sbCB3ZSBhc2sg
aXRzIHBhcmVudAorICAgICAgICAvLyBJZiB0aGlzIGxheWVyIGNhbid0IGRvIHRoZSBzY3JvbGwg
d2UgYXNrIHRoZSBuZXh0IGxheWVyIHVwIHRoYXQgY2FuIHNjcm9sbCB0byB0cnkKICAgICAgICAg
aW50IGxlZnRUb1Njcm9sbFggPSBuZXdPZmZzZXRYIC0gc2Nyb2xsWE9mZnNldCgpOwogICAgICAg
ICBpbnQgbGVmdFRvU2Nyb2xsWSA9IG5ld09mZnNldFkgLSBzY3JvbGxZT2Zmc2V0KCk7CiAgICAg
ICAgIGlmICgobGVmdFRvU2Nyb2xsWCB8fCBsZWZ0VG9TY3JvbGxZKSAmJiByZW5kZXJlcigpLT5w
YXJlbnQoKSkgewotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFyZW50KCktPmVuY2xvc2luZ0xh
eWVyKCktPnNjcm9sbEJ5UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xsWCwgbGVmdFRvU2Nyb2xsWSk7
CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlciA9IHJlbmRlcmVyKCktPnBh
cmVudCgpOworICAgICAgICAgICAgd2hpbGUgKG5leHRSZW5kZXJlcikgeworICAgICAgICAgICAg
ICAgIGlmIChuZXh0UmVuZGVyZXItPmlzQm94KCkgJiYgdG9SZW5kZXJCb3gobmV4dFJlbmRlcmVy
KS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dFJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5
KGxlZnRUb1Njcm9sbFgsIGxlZnRUb1Njcm9sbFkpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV4dFJlbmRlcmVyID0gbmV4
dFJlbmRlcmVyLT5wYXJlbnQoKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgRnJhbWUq
IGZyYW1lID0gcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICAgICAgICAgIGlm
IChmcmFtZSkKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnVwZGF0ZUF1
dG9zY3JvbGxSZW5kZXJlcigpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZW5kZXJlcigp
LT52aWV3KCktPmZyYW1lVmlldygpKQorICAgIH0gZWxzZSBpZiAocmVuZGVyZXIoKS0+dmlldygp
LT5mcmFtZVZpZXcoKSkgeworICAgICAgICAvLyBJZiB3ZSBhcmUgaGVyZSwgd2Ugd2VyZSBjYWxs
ZWQgb24gYSByZW5kZXJlciB0aGF0IGNhbiBiZSBwcm9ncmFtYXRpY2FsbHkgc2Nyb2xsZWQsIGJ1
dCBkb2Vzbid0CisgICAgICAgIC8vIGhhdmUgYW4gb3ZlcmZsb3cgY2xpcC4gV2hpY2ggbWVhbnMg
dGhhdCBpdCBpcyBhIGRvY3VtZW50IG5vZGUgdGhhdCBjYW4gYmUgc2Nyb2xsZWQuCiAgICAgICAg
IHJlbmRlcmVyKCktPnZpZXcoKS0+ZnJhbWVWaWV3KCktPnNjcm9sbEJ5KEludFNpemUoeERlbHRh
LCB5RGVsdGEpKTsKKyAgICAgICAgLy8gRklYTUU6IElmIHdlIGRpZG4ndCBzY3JvbGwgdGhlIHdo
b2xlIHdheSwgZG8gd2Ugd2FudCB0byB0cnkgbG9va2luZyBhdCB0aGUgZnJhbWVzIG93bmVyRWxl
bWVudD8KKyAgICB9CiB9CiAKIAotLSAKMS42LjEKCg==
</data>
<flag name="review"
          id="18728"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="18893"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>