<?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>66267</bug_id>
          
          <creation_ts>2011-08-15 17:15:54 -0700</creation_ts>
          <short_desc>[chromium] Update scroll-mechanism from GestureRecognizer</short_desc>
          <delta_ts>2011-08-19 12:25:14 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Sadrul Habib Chowdhury">sadrul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>fishd</cc>
    
    <cc>rjkroege</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>451407</commentid>
    <comment_count>0</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2011-08-15 17:15:54 -0700</bug_when>
    <thetext>This patch updates how the gesture-recognizer performs scroll: Instead of just sending a series of &apos;GestureUpdate&apos; events, send a single &apos;GestureBegin&apos; event, followed by a series of &apos;GestureUpdate&apos; events, and end with a &apos;GestureEnd&apos; event.

This change is covered by existing tests (e.g. fast/events/touch/touch-gesture-scroll.html). A series of subsequent patches will update how the EventHandler processes the ScrollUpdate gesture-event, add support in EventSender to send gesture-update events from the DRT, and include additional layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451410</commentid>
    <comment_count>1</comment_count>
      <attachid>103983</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2011-08-15 17:17:43 -0700</bug_when>
    <thetext>Created attachment 103983
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453283</commentid>
    <comment_count>2</comment_count>
      <attachid>103983</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-08-18 12:56:52 -0700</bug_when>
    <thetext>Comment on attachment 103983
patch

looks good to me. And is a step towards what I&apos;m proposing to Benjamin. Can you add one or more unit tests that demonstrate that the new protocol of start, update, end is getting generated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453339</commentid>
    <comment_count>3</comment_count>
      <attachid>104394</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2011-08-18 14:05:42 -0700</bug_when>
    <thetext>Created attachment 104394
added a unit-test

I have added a unit-test to test that the correct gesture events are being generated from touch-events. Please take another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453341</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 14:07:25 -0700</bug_when>
    <thetext>Attachment 104394 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp:81:  The parameter name &quot;state&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp:278:  gesture_start is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp:298:  gesture_end is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 3 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453343</commentid>
    <comment_count>5</comment_count>
      <attachid>104396</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2011-08-18 14:12:39 -0700</bug_when>
    <thetext>Created attachment 104396
fixed style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453388</commentid>
    <comment_count>6</comment_count>
      <attachid>104396</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-18 15:06:52 -0700</bug_when>
    <thetext>Comment on attachment 104396
fixed style

Looks reasonable to me.  I&apos;m relying on  Robert Kroeger&apos;s comments for actual knowledge of scrolling.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453401</commentid>
    <comment_count>7</comment_count>
      <attachid>104396</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 15:19:36 -0700</bug_when>
    <thetext>Comment on attachment 104396
fixed style

Clearing flags on attachment: 104396

Committed r93358: &lt;http://trac.webkit.org/changeset/93358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453402</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 15:19:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453915</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-19 10:37:17 -0700</bug_when>
    <thetext>After this patch landed, the WebKit Mac 10.5 canary bots started to fail 5 gesture tests.  This patch seems to be the most likely culprit:
http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.5%20%28CG%29/builds/35

Specifically, it looks like the tests started to time out:
http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.5%20%28CG%29/builds/35

Can you please investigate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453968</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-19 12:00:05 -0700</bug_when>
    <thetext>(In reply to comment #9)

&gt; Specifically, it looks like the tests started to time out:
&gt; http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.5%20%28CG%29/builds/35

Oops, this link was supposed to be:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fevents%2Ftouch%2Fbasic-single-touch-events.html%2Cfast%2Fevents%2Ftouch%2Fmulti-touch-grouped-targets.html%2Cfast%2Fevents%2Ftouch%2Ftouch-gesture-scroll.html%2Cfast%2Fevents%2Ftouch%2Ftouch-target-limited.html%2Cfast%2Fevents%2Ftouch%2Ftouch-target.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453982</commentid>
    <comment_count>11</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-08-19 12:25:14 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; 
&gt; &gt; Specifically, it looks like the tests started to time out:
&gt; &gt; http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.5%20%28CG%29/builds/35
&gt; 
&gt; Oops, this link was supposed to be:
&gt; http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fevents%2Ftouch%2Fbasic-single-touch-events.html%2Cfast%2Fevents%2Ftouch%2Fmulti-touch-grouped-targets.html%2Cfast%2Fevents%2Ftouch%2Ftouch-gesture-scroll.html%2Cfast%2Fevents%2Ftouch%2Ftouch-target-limited.html%2Cfast%2Fevents%2Ftouch%2Ftouch-target.html

I&apos;ll look into it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103983</attachid>
            <date>2011-08-15 17:17:43 -0700</date>
            <delta_ts>2011-08-18 14:05:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>gr-gesture-scroll-update.patch</filename>
            <type>text/plain</type>
            <size>9312</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3YWZkYmEyLi5jM2UxNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDgtMTUgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEdlc3R1cmVSZWNvZ25pemVyOiBVcGRhdGUgaG93IGdlc3R1cmUtc2Ny
b2xsIHdvcmtzLgorCisgICAgICAgIEluc3RlYWQgb2YganVzdCBzZW5kaW5nIGEgc2VyaWVzIG9m
ICdHZXN0dXJlVXBkYXRlJyBldmVudHMsIHNlbmQgYQorICAgICAgICBzaW5nbGUgJ0dlc3R1cmVC
ZWdpbicgZXZlbnQsIGZvbGxvd2VkIGJ5IGEgc2VyaWVzIG9mICdHZXN0dXJlVXBkYXRlJyBldmVu
dHMsCisgICAgICAgIGFuZCBlbmQgd2l0aCBhICdHZXN0dXJlRW5kJyBldmVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpJbm5lckdl
c3R1cmVSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OklubmVyR2VzdHVyZVJlY29nbml6
ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJbm5lckdl
c3R1cmVSZWNvZ25pemVyOjphcHBlbmRTY3JvbGxHZXN0dXJlRW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OklubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVVcGRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ2xpY2tP
clNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjppblNjcm9sbCk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5uZXJHZXN0dXJlUmVjb2duaXplcjo6Zmlyc3RUb3VjaFBvc2l0aW9uKToKKwogMjAxMS0w
OC0xMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBmb3J3
YXJkIGRlY2xhcmF0aW9uIG9mIC1bV2ViVW5kZWZpbmVkIGRlYWxsb2NdIHRvIGFwcGVhc2UgdGhl
IGJvdCBnb2RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDg0NmFmYmIu
LmI4YzM3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIyMzQsNyAr
MjIzNCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxh
dGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBjYXNlIFBsYXRmb3JtR2VzdHVy
ZUV2ZW50OjpTY3JvbGxVcGRhdGVUeXBlOiB7CiAgICAgICAgIGNvbnN0IGZsb2F0IHRpY2tEaXZp
c29yID0gKGZsb2F0KVdoZWVsRXZlbnQ6OnRpY2tNdWx0aXBsaWVyOwogICAgICAgICAvLyBGSVhN
RTogUmVwbGFjZSB0aGlzIGludGVyaW0gaW1wbGVtZW50YXRpb24gb25jZSB0aGUgYWJvdmUgZml4
bWUgaGFzIGJlZW4gYWRkcmVzc2VkLgotICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgc3ludGhl
dGljV2hlZWxFdmVudChnZXN0dXJlRXZlbnQucG9zaXRpb24oKSwgZ2VzdHVyZUV2ZW50Lmdsb2Jh
bFBvc2l0aW9uKCksIGdlc3R1cmVFdmVudC5kZWx0YVgoKSwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgp
LCBnZXN0dXJlRXZlbnQuZGVsdGFYKCkgLyB0aWNrRGl2aXNvciwgZ2VzdHVyZUV2ZW50LmRlbHRh
WSgpIC8gdGlja0Rpdmlzb3IsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCAvKiBpc0FjY2VwdGVk
ICovIGZhbHNlLCBnZXN0dXJlRXZlbnQuc2hpZnRLZXkoKSwgZ2VzdHVyZUV2ZW50LmN0cmxLZXko
KSwgZ2VzdHVyZUV2ZW50LmFsdEtleSgpLCBnZXN0dXJlRXZlbnQubWV0YUtleSgpKTsKKyAgICAg
ICAgSW50UG9pbnQgcG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkueCgpICsgZ2VzdHVyZUV2
ZW50LmRlbHRhWCgpLCBnZXN0dXJlRXZlbnQucG9zaXRpb24oKS55KCkgKyBnZXN0dXJlRXZlbnQu
ZGVsdGFZKCkpOworICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgc3ludGhldGljV2hlZWxFdmVu
dChwb2ludCwgcG9pbnQsIGdlc3R1cmVFdmVudC5kZWx0YVgoKSwgZ2VzdHVyZUV2ZW50LmRlbHRh
WSgpLCBnZXN0dXJlRXZlbnQuZGVsdGFYKCkgLyB0aWNrRGl2aXNvciwgZ2VzdHVyZUV2ZW50LmRl
bHRhWSgpIC8gdGlja0Rpdmlzb3IsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCAvKiBpc0FjY2Vw
dGVkICovIGZhbHNlLCBnZXN0dXJlRXZlbnQuc2hpZnRLZXkoKSwgZ2VzdHVyZUV2ZW50LmN0cmxL
ZXkoKSwgZ2VzdHVyZUV2ZW50LmFsdEtleSgpLCBnZXN0dXJlRXZlbnQubWV0YUtleSgpKTsKICAg
ICAgICAgaGFuZGxlV2hlZWxFdmVudChzeW50aGV0aWNXaGVlbEV2ZW50KTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcAppbmRleCA5MDU4MjAx
Li4xN2RiNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9H
ZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcApAQCAtNDAsNiArNDAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgYm9vbCBjbGljayhJbm5lckdlc3R1cmVSZWNv
Z25pemVyKiwgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXpl
cjo6R2VzdHVyZXMpOwogc3RhdGljIGJvb2wgaXNDbGlja09yU2Nyb2xsKElubmVyR2VzdHVyZVJl
Y29nbml6ZXIqLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25p
emVyOjpHZXN0dXJlcyk7CiBzdGF0aWMgYm9vbCBpblNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25p
emVyKiwgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6
R2VzdHVyZXMpOworc3RhdGljIGJvb2wgc2Nyb2xsRW5kKElubmVyR2VzdHVyZVJlY29nbml6ZXIq
LCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0
dXJlcyk7CiBzdGF0aWMgYm9vbCBub0dlc3R1cmUoSW5uZXJHZXN0dXJlUmVjb2duaXplciosIGNv
bnN0IFBsYXRmb3JtVG91Y2hQb2ludCYsIElubmVyR2VzdHVyZVJlY29nbml6ZXI6Okdlc3R1cmVz
KTsKIHN0YXRpYyBib29sIHRvdWNoRG93bihJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwgY29uc3Qg
UGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMpOwog
CkBAIC03MCw4ICs3MSw4IEBAIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OklubmVyR2VzdHVyZVJl
Y29nbml6ZXIoKQogICAgIGFkZEVkZ2VGdW5jdGlvbihQZW5kaW5nU3ludGhldGljQ2xpY2ssIEZp
cnN0RmluZ2VyLCBNb3ZlZCwgZmFsc2UsIGlzQ2xpY2tPclNjcm9sbCk7CiAgICAgYWRkRWRnZUZ1
bmN0aW9uKFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIFN0YXRpb25hcnksIGZh
bHNlLCBpc0NsaWNrT3JTY3JvbGwpOwogICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0
RmluZ2VyLCBNb3ZlZCwgZmFsc2UsIGluU2Nyb2xsKTsKLSAgICBhZGRFZGdlRnVuY3Rpb24oU2Ny
b2xsLCBGaXJzdEZpbmdlciwgUmVsZWFzZWQsIGZhbHNlLCBub0dlc3R1cmUpOwotICAgIGFkZEVk
Z2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0RmluZ2VyLCBDYW5jZWxsZWQsIGZhbHNlLCBub0dlc3R1
cmUpOworICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0RmluZ2VyLCBSZWxlYXNlZCwg
ZmFsc2UsIHNjcm9sbEVuZCk7CisgICAgYWRkRWRnZUZ1bmN0aW9uKFNjcm9sbCwgRmlyc3RGaW5n
ZXIsIENhbmNlbGxlZCwgZmFsc2UsIHNjcm9sbEVuZCk7CiB9CiAKIHZvaWQgSW5uZXJHZXN0dXJl
UmVjb2duaXplcjo6cmVzZXQoKQpAQCAtMTI2LDEzICsxMjcsMjUgQEAgUGxhdGZvcm1HZXN0dXJl
UmVjb2duaXplcjo6UGFzc0dlc3R1cmVzIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OnByb2Nlc3NU
b3VjaEV2ZW4KICAgICByZXR1cm4gZ2VzdHVyZXMucmVsZWFzZSgpOwogfQogCi12b2lkIElubmVy
R2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmUoY29uc3QgUGxhdGZvcm1Ub3Vj
aFBvaW50JiB0b3VjaFBvaW50LCBHZXN0dXJlcyBnZXN0dXJlcykKK3ZvaWQgSW5uZXJHZXN0dXJl
UmVjb2duaXplcjo6YXBwZW5kU2Nyb2xsR2VzdHVyZUJlZ2luKGNvbnN0IEludFBvaW50JiB0b3Vj
aFBvaW50LCBHZXN0dXJlcyBnZXN0dXJlcykKIHsKLSAgICBmbG9hdCBkZWx0YVgodG91Y2hQb2lu
dC5wb3MoKS54KCkgLSBtX2ZpcnN0VG91Y2hQb3NpdGlvbi54KCkpOwotICAgIGZsb2F0IGRlbHRh
WSh0b3VjaFBvaW50LnBvcygpLnkoKSAtIG1fZmlyc3RUb3VjaFBvc2l0aW9uLnkoKSk7CisgICAg
Z2VzdHVyZXMtPmFwcGVuZChQbGF0Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVu
dDo6U2Nyb2xsQmVnaW5UeXBlLCB0b3VjaFBvaW50LCB0b3VjaFBvaW50LCBtX2xhc3RUb3VjaFRp
bWUsIDAuMGYsIDAuMGYsIG1fc2hpZnRLZXksIG1fY3RybEtleSwgbV9hbHRLZXksIG1fbWV0YUtl
eSkpOworICAgIG1fZmlyc3RUb3VjaFBvc2l0aW9uID0gdG91Y2hQb2ludDsKKyAgICBtX2xhc3RU
b3VjaFBvc2l0aW9uID0gbV9maXJzdFRvdWNoUG9zaXRpb247Cit9CisKK3ZvaWQgSW5uZXJHZXN0
dXJlUmVjb2duaXplcjo6YXBwZW5kU2Nyb2xsR2VzdHVyZUVuZChjb25zdCBJbnRQb2ludCYgdG91
Y2hQb2ludCwgR2VzdHVyZXMgZ2VzdHVyZXMpCit7CisgICAgZ2VzdHVyZXMtPmFwcGVuZChQbGF0
Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Nyb2xsRW5kVHlwZSwgbV9m
aXJzdFRvdWNoUG9zaXRpb24sIG1fZmlyc3RUb3VjaFBvc2l0aW9uLCBtX2xhc3RUb3VjaFRpbWUs
IDAuMGYsIDAuMGYsIG1fc2hpZnRLZXksIG1fY3RybEtleSwgbV9hbHRLZXksIG1fbWV0YUtleSkp
OworfQorCit2b2lkIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVV
cGRhdGUoY29uc3QgSW50UG9pbnQmIHRvdWNoUG9pbnQsIEdlc3R1cmVzIGdlc3R1cmVzKQorewor
ICAgIGZsb2F0IGRlbHRhWCh0b3VjaFBvaW50LngoKSAtIG1fbGFzdFRvdWNoUG9zaXRpb24ueCgp
KTsKKyAgICBmbG9hdCBkZWx0YVkodG91Y2hQb2ludC55KCkgLSBtX2xhc3RUb3VjaFBvc2l0aW9u
LnkoKSk7CiAKLSAgICBnZXN0dXJlcy0+YXBwZW5kKFBsYXRmb3JtR2VzdHVyZUV2ZW50KFBsYXRm
b3JtR2VzdHVyZUV2ZW50OjpTY3JvbGxVcGRhdGVUeXBlLCB0b3VjaFBvaW50LnBvcygpLCB0b3Vj
aFBvaW50LnNjcmVlblBvcygpLCBtX2xhc3RUb3VjaFRpbWUsIGRlbHRhWCwgZGVsdGFZLCBtX3No
aWZ0S2V5LCBtX2N0cmxLZXksIG1fYWx0S2V5LCBtX21ldGFLZXkpKTsKLSAgICBtX2ZpcnN0VG91
Y2hQb3NpdGlvbiA9IHRvdWNoUG9pbnQucG9zKCk7CisgICAgZ2VzdHVyZXMtPmFwcGVuZChQbGF0
Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Nyb2xsVXBkYXRlVHlwZSwg
bV9maXJzdFRvdWNoUG9zaXRpb24sIG1fZmlyc3RUb3VjaFBvc2l0aW9uLCBtX2xhc3RUb3VjaFRp
bWUsIGRlbHRhWCwgZGVsdGFZLCBtX3NoaWZ0S2V5LCBtX2N0cmxLZXksIG1fYWx0S2V5LCBtX21l
dGFLZXkpKTsKKyAgICBtX2xhc3RUb3VjaFBvc2l0aW9uID0gdG91Y2hQb2ludDsKIH0KIAogdm9p
ZCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjp1cGRhdGVWYWx1ZXMoY29uc3QgZG91YmxlIHRvdWNo
VGltZSwgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiB0b3VjaFBvaW50KQpAQCAtMTYyLDYgKzE3
NSwxMyBAQCBzdGF0aWMgYm9vbCB0b3VjaERvd24oSW5uZXJHZXN0dXJlUmVjb2duaXplciogZ2Vz
dHVyZVJlY29nbml6ZXIsIGNvbnN0IFBsYXRmb3JtVAogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
c3RhdGljIGJvb2wgc2Nyb2xsRW5kKElubmVyR2VzdHVyZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNv
Z25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50LCBJbm5lckdlc3R1cmVSZWNv
Z25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKK3sKKyAgICBnZXN0dXJlUmVjb2duaXplci0+YXBw
ZW5kU2Nyb2xsR2VzdHVyZUVuZChwb2ludC5wb3MoKSwgZ2VzdHVyZXMpOworICAgIGdlc3R1cmVS
ZWNvZ25pemVyLT5zZXRTdGF0ZShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dlc3R1cmUpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgbm9HZXN0dXJlKElubmVyR2VzdHVy
ZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNvZ25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQm
LCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKIHsKICAgICBnZXN0
dXJlUmVjb2duaXplci0+cmVzZXQoKTsKQEAgLTE4Niw3ICsyMDYsOCBAQCBzdGF0aWMgYm9vbCBp
c0NsaWNrT3JTY3JvbGwoSW5uZXJHZXN0dXJlUmVjb2duaXplciogZ2VzdHVyZVJlY29nbml6ZXIs
IGNvbnN0IFBsYQogICAgIH0KIAogICAgIGlmIChwb2ludC5zdGF0ZSgpID09IFBsYXRmb3JtVG91
Y2hQb2ludDo6VG91Y2hNb3ZlZCAmJiAhZ2VzdHVyZVJlY29nbml6ZXItPmlzSW5zaWRlTWFuaGF0
dGFuU3F1YXJlKHBvaW50KSkgewotICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Ny
b2xsR2VzdHVyZShwb2ludCwgZ2VzdHVyZXMpOworICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+
YXBwZW5kU2Nyb2xsR2VzdHVyZUJlZ2luKGdlc3R1cmVSZWNvZ25pemVyLT5maXJzdFRvdWNoUG9z
aXRpb24oKSwgZ2VzdHVyZXMpOworICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Ny
b2xsR2VzdHVyZVVwZGF0ZShwb2ludC5wb3MoKSwgZ2VzdHVyZXMpOwogICAgICAgICBnZXN0dXJl
UmVjb2duaXplci0+c2V0U3RhdGUoSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6U2Nyb2xsKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTk1LDcgKzIxNiw3IEBAIHN0YXRpYyBib29s
IGlzQ2xpY2tPclNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25pemVyKiBnZXN0dXJlUmVjb2duaXpl
ciwgY29uc3QgUGxhCiAKIHN0YXRpYyBib29sIGluU2Nyb2xsKElubmVyR2VzdHVyZVJlY29nbml6
ZXIqIGdlc3R1cmVSZWNvZ25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50LCBJ
bm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKIHsKLSAgICBnZXN0dXJl
UmVjb2duaXplci0+YXBwZW5kU2Nyb2xsR2VzdHVyZShwb2ludCwgZ2VzdHVyZXMpOworICAgIGdl
c3R1cmVSZWNvZ25pemVyLT5hcHBlbmRTY3JvbGxHZXN0dXJlVXBkYXRlKHBvaW50LnBvcygpLCBn
ZXN0dXJlcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaApp
bmRleCBiZWFjNDY1Li5mZDQ2ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oCkBAIC01OSw5
ICs1OSwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luQ2xpY2tUaW1lV2luZG93KCk7CiAgICAg
Ym9vbCBpc0luc2lkZU1hbmhhdHRhblNxdWFyZShjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmKTsK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6OlBhc3NHZXN0dXJlcyAgcHJv
Y2Vzc1RvdWNoRXZlbnRGb3JHZXN0dXJlcyhjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmLCBib29s
IGRlZmF1bHRQcmV2ZW50ZWQpOwotICAgIHZvaWQgYXBwZW5kU2Nyb2xsR2VzdHVyZShjb25zdCBQ
bGF0Zm9ybVRvdWNoUG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBhcHBlbmRTY3JvbGxHZXN0
dXJlQmVnaW4oY29uc3QgSW50UG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBhcHBlbmRTY3Jv
bGxHZXN0dXJlRW5kKGNvbnN0IEludFBvaW50JiwgR2VzdHVyZXMpOworICAgIHZvaWQgYXBwZW5k
U2Nyb2xsR2VzdHVyZVVwZGF0ZShjb25zdCBJbnRQb2ludCYsIEdlc3R1cmVzKTsKICAgICB2b2lk
IHNldFN0YXRlKFN0YXRlIHZhbHVlKSB7IG1fc3RhdGUgPSB2YWx1ZTsgfQogICAgIFN0YXRlIHN0
YXRlKCkgeyByZXR1cm4gbV9zdGF0ZTsgfQorCisgICAgSW50UG9pbnQgZmlyc3RUb3VjaFBvc2l0
aW9uKCkgeyByZXR1cm4gbV9maXJzdFRvdWNoUG9zaXRpb247IH0KIHByb3RlY3RlZDoKICAgICBJ
bm5lckdlc3R1cmVSZWNvZ25pemVyKCk7CiAgICAgdm9pZCBhZGRFZGdlRnVuY3Rpb24oU3RhdGUs
IHVuc2lnbmVkIGZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSwgYm9vbCB0b3VjaEhh
bmRsZWRCeUphdmFTY3JpcHQsIEdlc3R1cmVUcmFuc2l0aW9uRnVuY3Rpb24pOwpAQCAtNzQsNiAr
NzgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSW50UG9pbnQgbV9maXJzdFRvdWNoUG9zaXRpb247CiAg
ICAgZG91YmxlIG1fZmlyc3RUb3VjaFRpbWU7CiAgICAgU3RhdGUgbV9zdGF0ZTsKKyAgICBJbnRQ
b2ludCBtX2xhc3RUb3VjaFBvc2l0aW9uOwogICAgIGRvdWJsZSBtX2xhc3RUb3VjaFRpbWU7CiAK
ICAgICBib29sIG1fY3RybEtleTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104394</attachid>
            <date>2011-08-18 14:05:42 -0700</date>
            <delta_ts>2011-08-18 14:12:39 -0700</delta_ts>
            <desc>added a unit-test</desc>
            <filename>update-scroll-mech.patch</filename>
            <type>text/plain</type>
            <size>13607</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YWM4MzgwLi43ZTEyMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDgtMTggIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEdlc3R1cmVSZWNvZ25pemVyOiBVcGRhdGUgaG93IGdlc3R1cmUtc2Ny
b2xsIHdvcmtzLgorCisgICAgICAgIEluc3RlYWQgb2YganVzdCBzZW5kaW5nIGEgc2VyaWVzIG9m
ICdHZXN0dXJlVXBkYXRlJyBldmVudHMsIHNlbmQgYQorICAgICAgICBzaW5nbGUgJ0dlc3R1cmVC
ZWdpbicgZXZlbnQsIGZvbGxvd2VkIGJ5IGEgc2VyaWVzIG9mICdHZXN0dXJlVXBkYXRlJyBldmVu
dHMsCisgICAgICAgIGFuZCBlbmQgd2l0aCBhICdHZXN0dXJlRW5kJyBldmVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpJbm5lckdl
c3R1cmVSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OklubmVyR2VzdHVyZVJlY29nbml6
ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJbm5lckdl
c3R1cmVSZWNvZ25pemVyOjphcHBlbmRTY3JvbGxHZXN0dXJlRW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OklubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVVcGRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ2xpY2tP
clNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjppblNjcm9sbCk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5uZXJHZXN0dXJlUmVjb2duaXplcjo6Zmlyc3RUb3VjaFBvc2l0aW9uKToKKwogMjAxMS0w
OC0xNyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBjaHJv
bWl1bSBtYWMgY29tcGlsZS4gIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuKiBt
b3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDE2MjE1OWYuLjgyZGEy
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIyMjIsNyArMjIyMiw4
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1H
ZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBjYXNlIFBsYXRmb3JtR2VzdHVyZUV2ZW50
OjpTY3JvbGxVcGRhdGVUeXBlOiB7CiAgICAgICAgIGNvbnN0IGZsb2F0IHRpY2tEaXZpc29yID0g
KGZsb2F0KVdoZWVsRXZlbnQ6OnRpY2tNdWx0aXBsaWVyOwogICAgICAgICAvLyBGSVhNRTogUmVw
bGFjZSB0aGlzIGludGVyaW0gaW1wbGVtZW50YXRpb24gb25jZSB0aGUgYWJvdmUgZml4bWUgaGFz
IGJlZW4gYWRkcmVzc2VkLgotICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgc3ludGhldGljV2hl
ZWxFdmVudChnZXN0dXJlRXZlbnQucG9zaXRpb24oKSwgZ2VzdHVyZUV2ZW50Lmdsb2JhbFBvc2l0
aW9uKCksIGdlc3R1cmVFdmVudC5kZWx0YVgoKSwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgpLCBnZXN0
dXJlRXZlbnQuZGVsdGFYKCkgLyB0aWNrRGl2aXNvciwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgpIC8g
dGlja0Rpdmlzb3IsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCAvKiBpc0FjY2VwdGVkICovIGZh
bHNlLCBnZXN0dXJlRXZlbnQuc2hpZnRLZXkoKSwgZ2VzdHVyZUV2ZW50LmN0cmxLZXkoKSwgZ2Vz
dHVyZUV2ZW50LmFsdEtleSgpLCBnZXN0dXJlRXZlbnQubWV0YUtleSgpKTsKKyAgICAgICAgSW50
UG9pbnQgcG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkueCgpICsgZ2VzdHVyZUV2ZW50LmRl
bHRhWCgpLCBnZXN0dXJlRXZlbnQucG9zaXRpb24oKS55KCkgKyBnZXN0dXJlRXZlbnQuZGVsdGFZ
KCkpOworICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgc3ludGhldGljV2hlZWxFdmVudChwb2lu
dCwgcG9pbnQsIGdlc3R1cmVFdmVudC5kZWx0YVgoKSwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgpLCBn
ZXN0dXJlRXZlbnQuZGVsdGFYKCkgLyB0aWNrRGl2aXNvciwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgp
IC8gdGlja0Rpdmlzb3IsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCAvKiBpc0FjY2VwdGVkICov
IGZhbHNlLCBnZXN0dXJlRXZlbnQuc2hpZnRLZXkoKSwgZ2VzdHVyZUV2ZW50LmN0cmxLZXkoKSwg
Z2VzdHVyZUV2ZW50LmFsdEtleSgpLCBnZXN0dXJlRXZlbnQubWV0YUtleSgpKTsKICAgICAgICAg
aGFuZGxlV2hlZWxFdmVudChzeW50aGV0aWNXaGVlbEV2ZW50KTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcAppbmRleCA5MDU4MjAxLi4xN2Ri
NWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJl
UmVjb2duaXplckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcApAQCAtNDAsNiArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgYm9vbCBjbGljayhJbm5lckdlc3R1cmVSZWNvZ25pemVy
KiwgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2Vz
dHVyZXMpOwogc3RhdGljIGJvb2wgaXNDbGlja09yU2Nyb2xsKElubmVyR2VzdHVyZVJlY29nbml6
ZXIqLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpH
ZXN0dXJlcyk7CiBzdGF0aWMgYm9vbCBpblNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwg
Y29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVy
ZXMpOworc3RhdGljIGJvb2wgc2Nyb2xsRW5kKElubmVyR2VzdHVyZVJlY29nbml6ZXIqLCBjb25z
dCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyk7
CiBzdGF0aWMgYm9vbCBub0dlc3R1cmUoSW5uZXJHZXN0dXJlUmVjb2duaXplciosIGNvbnN0IFBs
YXRmb3JtVG91Y2hQb2ludCYsIElubmVyR2VzdHVyZVJlY29nbml6ZXI6Okdlc3R1cmVzKTsKIHN0
YXRpYyBib29sIHRvdWNoRG93bihJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwgY29uc3QgUGxhdGZv
cm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMpOwogCkBAIC03
MCw4ICs3MSw4IEBAIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OklubmVyR2VzdHVyZVJlY29nbml6
ZXIoKQogICAgIGFkZEVkZ2VGdW5jdGlvbihQZW5kaW5nU3ludGhldGljQ2xpY2ssIEZpcnN0Rmlu
Z2VyLCBNb3ZlZCwgZmFsc2UsIGlzQ2xpY2tPclNjcm9sbCk7CiAgICAgYWRkRWRnZUZ1bmN0aW9u
KFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIFN0YXRpb25hcnksIGZhbHNlLCBp
c0NsaWNrT3JTY3JvbGwpOwogICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0RmluZ2Vy
LCBNb3ZlZCwgZmFsc2UsIGluU2Nyb2xsKTsKLSAgICBhZGRFZGdlRnVuY3Rpb24oU2Nyb2xsLCBG
aXJzdEZpbmdlciwgUmVsZWFzZWQsIGZhbHNlLCBub0dlc3R1cmUpOwotICAgIGFkZEVkZ2VGdW5j
dGlvbihTY3JvbGwsIEZpcnN0RmluZ2VyLCBDYW5jZWxsZWQsIGZhbHNlLCBub0dlc3R1cmUpOwor
ICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0RmluZ2VyLCBSZWxlYXNlZCwgZmFsc2Us
IHNjcm9sbEVuZCk7CisgICAgYWRkRWRnZUZ1bmN0aW9uKFNjcm9sbCwgRmlyc3RGaW5nZXIsIENh
bmNlbGxlZCwgZmFsc2UsIHNjcm9sbEVuZCk7CiB9CiAKIHZvaWQgSW5uZXJHZXN0dXJlUmVjb2du
aXplcjo6cmVzZXQoKQpAQCAtMTI2LDEzICsxMjcsMjUgQEAgUGxhdGZvcm1HZXN0dXJlUmVjb2du
aXplcjo6UGFzc0dlc3R1cmVzIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OnByb2Nlc3NUb3VjaEV2
ZW4KICAgICByZXR1cm4gZ2VzdHVyZXMucmVsZWFzZSgpOwogfQogCi12b2lkIElubmVyR2VzdHVy
ZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmUoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50
JiB0b3VjaFBvaW50LCBHZXN0dXJlcyBnZXN0dXJlcykKK3ZvaWQgSW5uZXJHZXN0dXJlUmVjb2du
aXplcjo6YXBwZW5kU2Nyb2xsR2VzdHVyZUJlZ2luKGNvbnN0IEludFBvaW50JiB0b3VjaFBvaW50
LCBHZXN0dXJlcyBnZXN0dXJlcykKIHsKLSAgICBmbG9hdCBkZWx0YVgodG91Y2hQb2ludC5wb3Mo
KS54KCkgLSBtX2ZpcnN0VG91Y2hQb3NpdGlvbi54KCkpOwotICAgIGZsb2F0IGRlbHRhWSh0b3Vj
aFBvaW50LnBvcygpLnkoKSAtIG1fZmlyc3RUb3VjaFBvc2l0aW9uLnkoKSk7CisgICAgZ2VzdHVy
ZXMtPmFwcGVuZChQbGF0Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Ny
b2xsQmVnaW5UeXBlLCB0b3VjaFBvaW50LCB0b3VjaFBvaW50LCBtX2xhc3RUb3VjaFRpbWUsIDAu
MGYsIDAuMGYsIG1fc2hpZnRLZXksIG1fY3RybEtleSwgbV9hbHRLZXksIG1fbWV0YUtleSkpOwor
ICAgIG1fZmlyc3RUb3VjaFBvc2l0aW9uID0gdG91Y2hQb2ludDsKKyAgICBtX2xhc3RUb3VjaFBv
c2l0aW9uID0gbV9maXJzdFRvdWNoUG9zaXRpb247Cit9CisKK3ZvaWQgSW5uZXJHZXN0dXJlUmVj
b2duaXplcjo6YXBwZW5kU2Nyb2xsR2VzdHVyZUVuZChjb25zdCBJbnRQb2ludCYgdG91Y2hQb2lu
dCwgR2VzdHVyZXMgZ2VzdHVyZXMpCit7CisgICAgZ2VzdHVyZXMtPmFwcGVuZChQbGF0Zm9ybUdl
c3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Nyb2xsRW5kVHlwZSwgbV9maXJzdFRv
dWNoUG9zaXRpb24sIG1fZmlyc3RUb3VjaFBvc2l0aW9uLCBtX2xhc3RUb3VjaFRpbWUsIDAuMGYs
IDAuMGYsIG1fc2hpZnRLZXksIG1fY3RybEtleSwgbV9hbHRLZXksIG1fbWV0YUtleSkpOworfQor
Cit2b2lkIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVVcGRhdGUo
Y29uc3QgSW50UG9pbnQmIHRvdWNoUG9pbnQsIEdlc3R1cmVzIGdlc3R1cmVzKQoreworICAgIGZs
b2F0IGRlbHRhWCh0b3VjaFBvaW50LngoKSAtIG1fbGFzdFRvdWNoUG9zaXRpb24ueCgpKTsKKyAg
ICBmbG9hdCBkZWx0YVkodG91Y2hQb2ludC55KCkgLSBtX2xhc3RUb3VjaFBvc2l0aW9uLnkoKSk7
CiAKLSAgICBnZXN0dXJlcy0+YXBwZW5kKFBsYXRmb3JtR2VzdHVyZUV2ZW50KFBsYXRmb3JtR2Vz
dHVyZUV2ZW50OjpTY3JvbGxVcGRhdGVUeXBlLCB0b3VjaFBvaW50LnBvcygpLCB0b3VjaFBvaW50
LnNjcmVlblBvcygpLCBtX2xhc3RUb3VjaFRpbWUsIGRlbHRhWCwgZGVsdGFZLCBtX3NoaWZ0S2V5
LCBtX2N0cmxLZXksIG1fYWx0S2V5LCBtX21ldGFLZXkpKTsKLSAgICBtX2ZpcnN0VG91Y2hQb3Np
dGlvbiA9IHRvdWNoUG9pbnQucG9zKCk7CisgICAgZ2VzdHVyZXMtPmFwcGVuZChQbGF0Zm9ybUdl
c3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Nyb2xsVXBkYXRlVHlwZSwgbV9maXJz
dFRvdWNoUG9zaXRpb24sIG1fZmlyc3RUb3VjaFBvc2l0aW9uLCBtX2xhc3RUb3VjaFRpbWUsIGRl
bHRhWCwgZGVsdGFZLCBtX3NoaWZ0S2V5LCBtX2N0cmxLZXksIG1fYWx0S2V5LCBtX21ldGFLZXkp
KTsKKyAgICBtX2xhc3RUb3VjaFBvc2l0aW9uID0gdG91Y2hQb2ludDsKIH0KIAogdm9pZCBJbm5l
ckdlc3R1cmVSZWNvZ25pemVyOjp1cGRhdGVWYWx1ZXMoY29uc3QgZG91YmxlIHRvdWNoVGltZSwg
Y29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiB0b3VjaFBvaW50KQpAQCAtMTYyLDYgKzE3NSwxMyBA
QCBzdGF0aWMgYm9vbCB0b3VjaERvd24oSW5uZXJHZXN0dXJlUmVjb2duaXplciogZ2VzdHVyZVJl
Y29nbml6ZXIsIGNvbnN0IFBsYXRmb3JtVAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGlj
IGJvb2wgc2Nyb2xsRW5kKElubmVyR2VzdHVyZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNvZ25pemVy
LCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50LCBJbm5lckdlc3R1cmVSZWNvZ25pemVy
OjpHZXN0dXJlcyBnZXN0dXJlcykKK3sKKyAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Ny
b2xsR2VzdHVyZUVuZChwb2ludC5wb3MoKSwgZ2VzdHVyZXMpOworICAgIGdlc3R1cmVSZWNvZ25p
emVyLT5zZXRTdGF0ZShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dlc3R1cmUpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgbm9HZXN0dXJlKElubmVyR2VzdHVyZVJlY29n
bml6ZXIqIGdlc3R1cmVSZWNvZ25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5l
ckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKIHsKICAgICBnZXN0dXJlUmVj
b2duaXplci0+cmVzZXQoKTsKQEAgLTE4Niw3ICsyMDYsOCBAQCBzdGF0aWMgYm9vbCBpc0NsaWNr
T3JTY3JvbGwoSW5uZXJHZXN0dXJlUmVjb2duaXplciogZ2VzdHVyZVJlY29nbml6ZXIsIGNvbnN0
IFBsYQogICAgIH0KIAogICAgIGlmIChwb2ludC5zdGF0ZSgpID09IFBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hNb3ZlZCAmJiAhZ2VzdHVyZVJlY29nbml6ZXItPmlzSW5zaWRlTWFuaGF0dGFuU3F1
YXJlKHBvaW50KSkgewotICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Nyb2xsR2Vz
dHVyZShwb2ludCwgZ2VzdHVyZXMpOworICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5k
U2Nyb2xsR2VzdHVyZUJlZ2luKGdlc3R1cmVSZWNvZ25pemVyLT5maXJzdFRvdWNoUG9zaXRpb24o
KSwgZ2VzdHVyZXMpOworICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Nyb2xsR2Vz
dHVyZVVwZGF0ZShwb2ludC5wb3MoKSwgZ2VzdHVyZXMpOwogICAgICAgICBnZXN0dXJlUmVjb2du
aXplci0+c2V0U3RhdGUoSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6U2Nyb2xsKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTk1LDcgKzIxNiw3IEBAIHN0YXRpYyBib29sIGlzQ2xp
Y2tPclNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25pemVyKiBnZXN0dXJlUmVjb2duaXplciwgY29u
c3QgUGxhCiAKIHN0YXRpYyBib29sIGluU2Nyb2xsKElubmVyR2VzdHVyZVJlY29nbml6ZXIqIGdl
c3R1cmVSZWNvZ25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50LCBJbm5lckdl
c3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKIHsKLSAgICBnZXN0dXJlUmVjb2du
aXplci0+YXBwZW5kU2Nyb2xsR2VzdHVyZShwb2ludCwgZ2VzdHVyZXMpOworICAgIGdlc3R1cmVS
ZWNvZ25pemVyLT5hcHBlbmRTY3JvbGxHZXN0dXJlVXBkYXRlKHBvaW50LnBvcygpLCBnZXN0dXJl
cyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaAppbmRleCBi
ZWFjNDY1Li5mZDQ2ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oCkBAIC01OSw5ICs1OSwx
MyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luQ2xpY2tUaW1lV2luZG93KCk7CiAgICAgYm9vbCBp
c0luc2lkZU1hbmhhdHRhblNxdWFyZShjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmKTsKICAgICB2
aXJ0dWFsIFBsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6OlBhc3NHZXN0dXJlcyAgcHJvY2Vzc1Rv
dWNoRXZlbnRGb3JHZXN0dXJlcyhjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmLCBib29sIGRlZmF1
bHRQcmV2ZW50ZWQpOwotICAgIHZvaWQgYXBwZW5kU2Nyb2xsR2VzdHVyZShjb25zdCBQbGF0Zm9y
bVRvdWNoUG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBhcHBlbmRTY3JvbGxHZXN0dXJlQmVn
aW4oY29uc3QgSW50UG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBhcHBlbmRTY3JvbGxHZXN0
dXJlRW5kKGNvbnN0IEludFBvaW50JiwgR2VzdHVyZXMpOworICAgIHZvaWQgYXBwZW5kU2Nyb2xs
R2VzdHVyZVVwZGF0ZShjb25zdCBJbnRQb2ludCYsIEdlc3R1cmVzKTsKICAgICB2b2lkIHNldFN0
YXRlKFN0YXRlIHZhbHVlKSB7IG1fc3RhdGUgPSB2YWx1ZTsgfQogICAgIFN0YXRlIHN0YXRlKCkg
eyByZXR1cm4gbV9zdGF0ZTsgfQorCisgICAgSW50UG9pbnQgZmlyc3RUb3VjaFBvc2l0aW9uKCkg
eyByZXR1cm4gbV9maXJzdFRvdWNoUG9zaXRpb247IH0KIHByb3RlY3RlZDoKICAgICBJbm5lckdl
c3R1cmVSZWNvZ25pemVyKCk7CiAgICAgdm9pZCBhZGRFZGdlRnVuY3Rpb24oU3RhdGUsIHVuc2ln
bmVkIGZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSwgYm9vbCB0b3VjaEhhbmRsZWRC
eUphdmFTY3JpcHQsIEdlc3R1cmVUcmFuc2l0aW9uRnVuY3Rpb24pOwpAQCAtNzQsNiArNzgsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgSW50UG9pbnQgbV9maXJzdFRvdWNoUG9zaXRpb247CiAgICAgZG91
YmxlIG1fZmlyc3RUb3VjaFRpbWU7CiAgICAgU3RhdGUgbV9zdGF0ZTsKKyAgICBJbnRQb2ludCBt
X2xhc3RUb3VjaFBvc2l0aW9uOwogICAgIGRvdWJsZSBtX2xhc3RUb3VjaFRpbWU7CiAKICAgICBi
b29sIG1fY3RybEtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNWMxZjQ1MS4uNGIz
N2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0w
OC0xOCAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgR2VzdHVyZVJlY29nbml6ZXI6IFVwZGF0ZSBob3cgZ2VzdHVyZS1zY3JvbGwgd29ya3Mu
CisKKyAgICAgICAgQWRkIGEgdW5pdC10ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgY29ycmVjdCBnZXN0
dXJlIGV2ZW50cyBhcmUgYmVpbmcKKyAgICAgICAgZ2VuZXJhdGVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0lubmVyR2VzdHVyZVJlY29n
bml6ZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJ1aWxkYWJsZVBsYXRmb3JtVG91Y2hQ
b2ludDo6QnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJ1
aWxkYWJsZVBsYXRmb3JtVG91Y2hFdmVudDo6QnVpbGRhYmxlUGxhdGZvcm1Ub3VjaEV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRFU1RfRik6CisKIDIwMTEtMDgtMTUgIEFhcm9uIEJvb2RtYW4g
IDxhYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIG9sZCBkaWRD
cmVhdGVJc29sYXRlZENvbnRleHQoKSBzaWduYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvSW5uZXJHZXN0dXJlUmVjb2duaXplclRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Jbm5lckdlc3R1cmVSZWNvZ25pemVyVGVzdC5jcHAKaW5k
ZXggZTA4YzY5MS4uZjllNTA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Jbm5lckdlc3R1cmVSZWNvZ25pemVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9Jbm5lckdlc3R1cmVSZWNvZ25pemVyVGVzdC5jcHAKQEAgLTc4LDYgKzc4
LDcgQEAgY2xhc3MgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50IDogcHVibGljIFdlYkNvcmU6
OlBsYXRmb3JtVG91Y2hQb2ludCB7CiBwdWJsaWM6CiAgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3Vj
aFBvaW50KCk7CiAgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50KGludCB4LCBpbnQgeSk7
CisgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50KGludCB4LCBpbnQgeSwgUGxhdGZvcm1U
b3VjaFBvaW50OjpTdGF0ZSBzdGF0ZSk7CiAKICAgICB2b2lkIHNldFgoaW50IHgpCiAgICAgewpA
QCAtMTA4LDYgKzEwOSwyMiBAQCBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoUG9pbnQ6OkJ1aWxkYWJs
ZVBsYXRmb3JtVG91Y2hQb2ludChpbnQgeCwgaW50IHkpCiAgICAgbV9zY3JlZW5Qb3MgPSBJbnRQ
b2ludCh4LCB5KTsKIH07CiAKK0J1aWxkYWJsZVBsYXRmb3JtVG91Y2hQb2ludDo6QnVpbGRhYmxl
UGxhdGZvcm1Ub3VjaFBvaW50KGludCB4LCBpbnQgeSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0
ZSBzdGF0ZSkKK3sKKyAgICBtX2lkID0gMDsKKyAgICBtX3N0YXRlID0gc3RhdGU7CisgICAgbV9w
b3MgPSBJbnRQb2ludCh4LCB5KTsKKyAgICBtX3NjcmVlblBvcyA9IEludFBvaW50KHgsIHkpOwor
fQorCitjbGFzcyBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViQ29yZTo6
UGxhdGZvcm1Ub3VjaEV2ZW50IHsKK3B1YmxpYzoKKyAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNo
RXZlbnQoV2ViQ29yZTo6VG91Y2hFdmVudFR5cGUgdHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50JiBw
b2ludCkKKyAgICB7CisgICAgICAgIG1fdHlwZSA9IHR5cGU7CisgICAgICAgIG1fdG91Y2hQb2lu
dHMuYXBwZW5kKHBvaW50KTsKKyAgICB9Cit9OwogCiBjbGFzcyBUZXN0R2VzdHVyZVJlY29nbml6
ZXIgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CkBAIC0yNDMsNCArMjYwLDU1IEBA
IFRFU1RfRihUZXN0R2VzdHVyZVJlY29nbml6ZXIsIHVwZGF0ZVZhbHVlcykKICAgICBBU1NFUlRf
RVEoMC4wLCBnbS5sYXN0VG91Y2hUaW1lKCkgLSBnbS5maXJzdFRvdWNoVGltZSgpKTsKIH0KIAor
VEVTVF9GKFRlc3RHZXN0dXJlUmVjb2duaXplciwgZ2VzdHVyZVNjcm9sbEV2ZW50cykKK3sKKyAg
ICBJbnNwZWN0YWJsZUlubmVyR2VzdHVyZVJlY29nbml6ZXIgZ207CisKKyAgICBBU1NFUlRfRVEo
SW5uZXJHZXN0dXJlUmVjb2duaXplcjo6Tm9HZXN0dXJlLCBnbS5zdGF0ZSgpKTsKKworICAgIEJ1
aWxkYWJsZVBsYXRmb3JtVG91Y2hQb2ludCBwcmVzcygxMCwgMTUsIFBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hQcmVzc2VkKTsKKyAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoRXZlbnQgcHJlc3NF
dmVudChXZWJDb3JlOjpUb3VjaFN0YXJ0LCBwcmVzcyk7CisgICAgZ20ucHJvY2Vzc1RvdWNoRXZl
bnRGb3JHZXN0dXJlcyhwcmVzc0V2ZW50LCBmYWxzZSk7CisKKyAgICBBU1NFUlRfRVEoSW5uZXJH
ZXN0dXJlUmVjb2duaXplcjo6UGVuZGluZ1N5bnRoZXRpY0NsaWNrLCBnbS5zdGF0ZSgpKTsKKwor
ICAgIEJ1aWxkYWJsZVBsYXRmb3JtVG91Y2hQb2ludCBtb3ZlKDEwLCA1MCwgUGxhdGZvcm1Ub3Vj
aFBvaW50OjpUb3VjaE1vdmVkKTsKKyAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoRXZlbnQgbW92
ZUV2ZW50KFdlYkNvcmU6OlRvdWNoTW92ZSwgbW92ZSk7CisgICAgT3duUHRyPFZlY3RvcjxXZWJD
b3JlOjpQbGF0Zm9ybUdlc3R1cmVFdmVudD4gPiBnZXN0dXJlU3RhcnQoZ20ucHJvY2Vzc1RvdWNo
RXZlbnRGb3JHZXN0dXJlcyhtb3ZlRXZlbnQsIGZhbHNlKSk7CisgICAgYm9vbCBnZXN0dXJlX3N0
YXJ0ID0gZmFsc2UsIGdlc3R1cmVfdXBkYXRlID0gZmFsc2U7CisgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBnZXN0dXJlU3RhcnQtPnNpemUoKTsgaSsrKSB7CisgICAgICAgIHN3aXRj
aCAoKCpnZXN0dXJlU3RhcnQpW2ldLnR5cGUoKSkgeworICAgICAgICBjYXNlIFBsYXRmb3JtR2Vz
dHVyZUV2ZW50OjpTY3JvbGxCZWdpblR5cGU6CisgICAgICAgICAgICBnZXN0dXJlX3N0YXJ0ID0g
dHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBsYXRmb3JtR2VzdHVyZUV2
ZW50OjpTY3JvbGxVcGRhdGVUeXBlOgorICAgICAgICAgICAgZ2VzdHVyZV91cGRhdGUgPSB0cnVl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NF
UlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlRfVFJVRShnZXN0
dXJlX3N0YXJ0KTsKKyAgICBBU1NFUlRfVFJVRShnZXN0dXJlX3VwZGF0ZSk7CisgICAgQVNTRVJU
X0VRKElubmVyR2VzdHVyZVJlY29nbml6ZXI6OlNjcm9sbCwgZ20uc3RhdGUoKSk7CisKKyAgICBC
dWlsZGFibGVQbGF0Zm9ybVRvdWNoUG9pbnQgcmVsZWFzZSgxMCwgNTAsIFBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hSZWxlYXNlZCk7CisgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaEV2ZW50IHJl
bGVhc2VFdmVudChXZWJDb3JlOjpUb3VjaEVuZCwgcmVsZWFzZSk7CisgICAgYm9vbCBnZXN0dXJl
X2VuZCA9IGZhbHNlOworICAgIGdlc3R1cmVfdXBkYXRlID0gZmFsc2U7CisgICAgT3duUHRyPFZl
Y3RvcjxXZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVFdmVudD4gPiBnZXN0dXJlRW5kKGdtLnByb2Nl
c3NUb3VjaEV2ZW50Rm9yR2VzdHVyZXMocmVsZWFzZUV2ZW50LCBmYWxzZSkpOworICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgZ2VzdHVyZUVuZC0+c2l6ZSgpOyBpKyspIHsKKyAgICAg
ICAgc3dpdGNoICgoKmdlc3R1cmVFbmQpW2ldLnR5cGUoKSkgeworICAgICAgICBjYXNlIFBsYXRm
b3JtR2VzdHVyZUV2ZW50OjpTY3JvbGxFbmRUeXBlOgorICAgICAgICAgICAgZ2VzdHVyZV9lbmQg
PSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUX1RSVUUo
Z2VzdHVyZV9lbmQpOworICAgIEFTU0VSVF9FUShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dl
c3R1cmUsIGdtLnN0YXRlKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104396</attachid>
            <date>2011-08-18 14:12:39 -0700</date>
            <delta_ts>2011-08-18 15:19:36 -0700</delta_ts>
            <desc>fixed style</desc>
            <filename>update-scroll-mech.patch</filename>
            <type>text/plain</type>
            <size>13563</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YWM4MzgwLi43ZTEyMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDgtMTggIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEdlc3R1cmVSZWNvZ25pemVyOiBVcGRhdGUgaG93IGdlc3R1cmUtc2Ny
b2xsIHdvcmtzLgorCisgICAgICAgIEluc3RlYWQgb2YganVzdCBzZW5kaW5nIGEgc2VyaWVzIG9m
ICdHZXN0dXJlVXBkYXRlJyBldmVudHMsIHNlbmQgYQorICAgICAgICBzaW5nbGUgJ0dlc3R1cmVC
ZWdpbicgZXZlbnQsIGZvbGxvd2VkIGJ5IGEgc2VyaWVzIG9mICdHZXN0dXJlVXBkYXRlJyBldmVu
dHMsCisgICAgICAgIGFuZCBlbmQgd2l0aCBhICdHZXN0dXJlRW5kJyBldmVudC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpJbm5lckdl
c3R1cmVSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OklubmVyR2VzdHVyZVJlY29nbml6
ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJbm5lckdl
c3R1cmVSZWNvZ25pemVyOjphcHBlbmRTY3JvbGxHZXN0dXJlRW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OklubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVVcGRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ2xpY2tP
clNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjppblNjcm9sbCk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5uZXJHZXN0dXJlUmVjb2duaXplcjo6Zmlyc3RUb3VjaFBvc2l0aW9uKToKKwogMjAxMS0w
OC0xNyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBjaHJv
bWl1bSBtYWMgY29tcGlsZS4gIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuKiBt
b3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDE2MjE1OWYuLjgyZGEy
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIyMjIsNyArMjIyMiw4
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1H
ZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICBjYXNlIFBsYXRmb3JtR2VzdHVyZUV2ZW50
OjpTY3JvbGxVcGRhdGVUeXBlOiB7CiAgICAgICAgIGNvbnN0IGZsb2F0IHRpY2tEaXZpc29yID0g
KGZsb2F0KVdoZWVsRXZlbnQ6OnRpY2tNdWx0aXBsaWVyOwogICAgICAgICAvLyBGSVhNRTogUmVw
bGFjZSB0aGlzIGludGVyaW0gaW1wbGVtZW50YXRpb24gb25jZSB0aGUgYWJvdmUgZml4bWUgaGFz
IGJlZW4gYWRkcmVzc2VkLgotICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgc3ludGhldGljV2hl
ZWxFdmVudChnZXN0dXJlRXZlbnQucG9zaXRpb24oKSwgZ2VzdHVyZUV2ZW50Lmdsb2JhbFBvc2l0
aW9uKCksIGdlc3R1cmVFdmVudC5kZWx0YVgoKSwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgpLCBnZXN0
dXJlRXZlbnQuZGVsdGFYKCkgLyB0aWNrRGl2aXNvciwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgpIC8g
dGlja0Rpdmlzb3IsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCAvKiBpc0FjY2VwdGVkICovIGZh
bHNlLCBnZXN0dXJlRXZlbnQuc2hpZnRLZXkoKSwgZ2VzdHVyZUV2ZW50LmN0cmxLZXkoKSwgZ2Vz
dHVyZUV2ZW50LmFsdEtleSgpLCBnZXN0dXJlRXZlbnQubWV0YUtleSgpKTsKKyAgICAgICAgSW50
UG9pbnQgcG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCkueCgpICsgZ2VzdHVyZUV2ZW50LmRl
bHRhWCgpLCBnZXN0dXJlRXZlbnQucG9zaXRpb24oKS55KCkgKyBnZXN0dXJlRXZlbnQuZGVsdGFZ
KCkpOworICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgc3ludGhldGljV2hlZWxFdmVudChwb2lu
dCwgcG9pbnQsIGdlc3R1cmVFdmVudC5kZWx0YVgoKSwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgpLCBn
ZXN0dXJlRXZlbnQuZGVsdGFYKCkgLyB0aWNrRGl2aXNvciwgZ2VzdHVyZUV2ZW50LmRlbHRhWSgp
IC8gdGlja0Rpdmlzb3IsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCAvKiBpc0FjY2VwdGVkICov
IGZhbHNlLCBnZXN0dXJlRXZlbnQuc2hpZnRLZXkoKSwgZ2VzdHVyZUV2ZW50LmN0cmxLZXkoKSwg
Z2VzdHVyZUV2ZW50LmFsdEtleSgpLCBnZXN0dXJlRXZlbnQubWV0YUtleSgpKTsKICAgICAgICAg
aGFuZGxlV2hlZWxFdmVudChzeW50aGV0aWNXaGVlbEV2ZW50KTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcAppbmRleCA5MDU4MjAxLi4xN2Ri
NWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJl
UmVjb2duaXplckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcApAQCAtNDAsNiArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgYm9vbCBjbGljayhJbm5lckdlc3R1cmVSZWNvZ25pemVy
KiwgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2Vz
dHVyZXMpOwogc3RhdGljIGJvb2wgaXNDbGlja09yU2Nyb2xsKElubmVyR2VzdHVyZVJlY29nbml6
ZXIqLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpH
ZXN0dXJlcyk7CiBzdGF0aWMgYm9vbCBpblNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwg
Y29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVy
ZXMpOworc3RhdGljIGJvb2wgc2Nyb2xsRW5kKElubmVyR2VzdHVyZVJlY29nbml6ZXIqLCBjb25z
dCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyk7
CiBzdGF0aWMgYm9vbCBub0dlc3R1cmUoSW5uZXJHZXN0dXJlUmVjb2duaXplciosIGNvbnN0IFBs
YXRmb3JtVG91Y2hQb2ludCYsIElubmVyR2VzdHVyZVJlY29nbml6ZXI6Okdlc3R1cmVzKTsKIHN0
YXRpYyBib29sIHRvdWNoRG93bihJbm5lckdlc3R1cmVSZWNvZ25pemVyKiwgY29uc3QgUGxhdGZv
cm1Ub3VjaFBvaW50JiwgSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZXMpOwogCkBAIC03
MCw4ICs3MSw4IEBAIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OklubmVyR2VzdHVyZVJlY29nbml6
ZXIoKQogICAgIGFkZEVkZ2VGdW5jdGlvbihQZW5kaW5nU3ludGhldGljQ2xpY2ssIEZpcnN0Rmlu
Z2VyLCBNb3ZlZCwgZmFsc2UsIGlzQ2xpY2tPclNjcm9sbCk7CiAgICAgYWRkRWRnZUZ1bmN0aW9u
KFBlbmRpbmdTeW50aGV0aWNDbGljaywgRmlyc3RGaW5nZXIsIFN0YXRpb25hcnksIGZhbHNlLCBp
c0NsaWNrT3JTY3JvbGwpOwogICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0RmluZ2Vy
LCBNb3ZlZCwgZmFsc2UsIGluU2Nyb2xsKTsKLSAgICBhZGRFZGdlRnVuY3Rpb24oU2Nyb2xsLCBG
aXJzdEZpbmdlciwgUmVsZWFzZWQsIGZhbHNlLCBub0dlc3R1cmUpOwotICAgIGFkZEVkZ2VGdW5j
dGlvbihTY3JvbGwsIEZpcnN0RmluZ2VyLCBDYW5jZWxsZWQsIGZhbHNlLCBub0dlc3R1cmUpOwor
ICAgIGFkZEVkZ2VGdW5jdGlvbihTY3JvbGwsIEZpcnN0RmluZ2VyLCBSZWxlYXNlZCwgZmFsc2Us
IHNjcm9sbEVuZCk7CisgICAgYWRkRWRnZUZ1bmN0aW9uKFNjcm9sbCwgRmlyc3RGaW5nZXIsIENh
bmNlbGxlZCwgZmFsc2UsIHNjcm9sbEVuZCk7CiB9CiAKIHZvaWQgSW5uZXJHZXN0dXJlUmVjb2du
aXplcjo6cmVzZXQoKQpAQCAtMTI2LDEzICsxMjcsMjUgQEAgUGxhdGZvcm1HZXN0dXJlUmVjb2du
aXplcjo6UGFzc0dlc3R1cmVzIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OnByb2Nlc3NUb3VjaEV2
ZW4KICAgICByZXR1cm4gZ2VzdHVyZXMucmVsZWFzZSgpOwogfQogCi12b2lkIElubmVyR2VzdHVy
ZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmUoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50
JiB0b3VjaFBvaW50LCBHZXN0dXJlcyBnZXN0dXJlcykKK3ZvaWQgSW5uZXJHZXN0dXJlUmVjb2du
aXplcjo6YXBwZW5kU2Nyb2xsR2VzdHVyZUJlZ2luKGNvbnN0IEludFBvaW50JiB0b3VjaFBvaW50
LCBHZXN0dXJlcyBnZXN0dXJlcykKIHsKLSAgICBmbG9hdCBkZWx0YVgodG91Y2hQb2ludC5wb3Mo
KS54KCkgLSBtX2ZpcnN0VG91Y2hQb3NpdGlvbi54KCkpOwotICAgIGZsb2F0IGRlbHRhWSh0b3Vj
aFBvaW50LnBvcygpLnkoKSAtIG1fZmlyc3RUb3VjaFBvc2l0aW9uLnkoKSk7CisgICAgZ2VzdHVy
ZXMtPmFwcGVuZChQbGF0Zm9ybUdlc3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Ny
b2xsQmVnaW5UeXBlLCB0b3VjaFBvaW50LCB0b3VjaFBvaW50LCBtX2xhc3RUb3VjaFRpbWUsIDAu
MGYsIDAuMGYsIG1fc2hpZnRLZXksIG1fY3RybEtleSwgbV9hbHRLZXksIG1fbWV0YUtleSkpOwor
ICAgIG1fZmlyc3RUb3VjaFBvc2l0aW9uID0gdG91Y2hQb2ludDsKKyAgICBtX2xhc3RUb3VjaFBv
c2l0aW9uID0gbV9maXJzdFRvdWNoUG9zaXRpb247Cit9CisKK3ZvaWQgSW5uZXJHZXN0dXJlUmVj
b2duaXplcjo6YXBwZW5kU2Nyb2xsR2VzdHVyZUVuZChjb25zdCBJbnRQb2ludCYgdG91Y2hQb2lu
dCwgR2VzdHVyZXMgZ2VzdHVyZXMpCit7CisgICAgZ2VzdHVyZXMtPmFwcGVuZChQbGF0Zm9ybUdl
c3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Nyb2xsRW5kVHlwZSwgbV9maXJzdFRv
dWNoUG9zaXRpb24sIG1fZmlyc3RUb3VjaFBvc2l0aW9uLCBtX2xhc3RUb3VjaFRpbWUsIDAuMGYs
IDAuMGYsIG1fc2hpZnRLZXksIG1fY3RybEtleSwgbV9hbHRLZXksIG1fbWV0YUtleSkpOworfQor
Cit2b2lkIElubmVyR2VzdHVyZVJlY29nbml6ZXI6OmFwcGVuZFNjcm9sbEdlc3R1cmVVcGRhdGUo
Y29uc3QgSW50UG9pbnQmIHRvdWNoUG9pbnQsIEdlc3R1cmVzIGdlc3R1cmVzKQoreworICAgIGZs
b2F0IGRlbHRhWCh0b3VjaFBvaW50LngoKSAtIG1fbGFzdFRvdWNoUG9zaXRpb24ueCgpKTsKKyAg
ICBmbG9hdCBkZWx0YVkodG91Y2hQb2ludC55KCkgLSBtX2xhc3RUb3VjaFBvc2l0aW9uLnkoKSk7
CiAKLSAgICBnZXN0dXJlcy0+YXBwZW5kKFBsYXRmb3JtR2VzdHVyZUV2ZW50KFBsYXRmb3JtR2Vz
dHVyZUV2ZW50OjpTY3JvbGxVcGRhdGVUeXBlLCB0b3VjaFBvaW50LnBvcygpLCB0b3VjaFBvaW50
LnNjcmVlblBvcygpLCBtX2xhc3RUb3VjaFRpbWUsIGRlbHRhWCwgZGVsdGFZLCBtX3NoaWZ0S2V5
LCBtX2N0cmxLZXksIG1fYWx0S2V5LCBtX21ldGFLZXkpKTsKLSAgICBtX2ZpcnN0VG91Y2hQb3Np
dGlvbiA9IHRvdWNoUG9pbnQucG9zKCk7CisgICAgZ2VzdHVyZXMtPmFwcGVuZChQbGF0Zm9ybUdl
c3R1cmVFdmVudChQbGF0Zm9ybUdlc3R1cmVFdmVudDo6U2Nyb2xsVXBkYXRlVHlwZSwgbV9maXJz
dFRvdWNoUG9zaXRpb24sIG1fZmlyc3RUb3VjaFBvc2l0aW9uLCBtX2xhc3RUb3VjaFRpbWUsIGRl
bHRhWCwgZGVsdGFZLCBtX3NoaWZ0S2V5LCBtX2N0cmxLZXksIG1fYWx0S2V5LCBtX21ldGFLZXkp
KTsKKyAgICBtX2xhc3RUb3VjaFBvc2l0aW9uID0gdG91Y2hQb2ludDsKIH0KIAogdm9pZCBJbm5l
ckdlc3R1cmVSZWNvZ25pemVyOjp1cGRhdGVWYWx1ZXMoY29uc3QgZG91YmxlIHRvdWNoVGltZSwg
Y29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiB0b3VjaFBvaW50KQpAQCAtMTYyLDYgKzE3NSwxMyBA
QCBzdGF0aWMgYm9vbCB0b3VjaERvd24oSW5uZXJHZXN0dXJlUmVjb2duaXplciogZ2VzdHVyZVJl
Y29nbml6ZXIsIGNvbnN0IFBsYXRmb3JtVAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGlj
IGJvb2wgc2Nyb2xsRW5kKElubmVyR2VzdHVyZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNvZ25pemVy
LCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50LCBJbm5lckdlc3R1cmVSZWNvZ25pemVy
OjpHZXN0dXJlcyBnZXN0dXJlcykKK3sKKyAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Ny
b2xsR2VzdHVyZUVuZChwb2ludC5wb3MoKSwgZ2VzdHVyZXMpOworICAgIGdlc3R1cmVSZWNvZ25p
emVyLT5zZXRTdGF0ZShJbm5lckdlc3R1cmVSZWNvZ25pemVyOjpOb0dlc3R1cmUpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgbm9HZXN0dXJlKElubmVyR2VzdHVyZVJlY29n
bml6ZXIqIGdlc3R1cmVSZWNvZ25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmLCBJbm5l
ckdlc3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKIHsKICAgICBnZXN0dXJlUmVj
b2duaXplci0+cmVzZXQoKTsKQEAgLTE4Niw3ICsyMDYsOCBAQCBzdGF0aWMgYm9vbCBpc0NsaWNr
T3JTY3JvbGwoSW5uZXJHZXN0dXJlUmVjb2duaXplciogZ2VzdHVyZVJlY29nbml6ZXIsIGNvbnN0
IFBsYQogICAgIH0KIAogICAgIGlmIChwb2ludC5zdGF0ZSgpID09IFBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hNb3ZlZCAmJiAhZ2VzdHVyZVJlY29nbml6ZXItPmlzSW5zaWRlTWFuaGF0dGFuU3F1
YXJlKHBvaW50KSkgewotICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Nyb2xsR2Vz
dHVyZShwb2ludCwgZ2VzdHVyZXMpOworICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5k
U2Nyb2xsR2VzdHVyZUJlZ2luKGdlc3R1cmVSZWNvZ25pemVyLT5maXJzdFRvdWNoUG9zaXRpb24o
KSwgZ2VzdHVyZXMpOworICAgICAgICBnZXN0dXJlUmVjb2duaXplci0+YXBwZW5kU2Nyb2xsR2Vz
dHVyZVVwZGF0ZShwb2ludC5wb3MoKSwgZ2VzdHVyZXMpOwogICAgICAgICBnZXN0dXJlUmVjb2du
aXplci0+c2V0U3RhdGUoSW5uZXJHZXN0dXJlUmVjb2duaXplcjo6U2Nyb2xsKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTk1LDcgKzIxNiw3IEBAIHN0YXRpYyBib29sIGlzQ2xp
Y2tPclNjcm9sbChJbm5lckdlc3R1cmVSZWNvZ25pemVyKiBnZXN0dXJlUmVjb2duaXplciwgY29u
c3QgUGxhCiAKIHN0YXRpYyBib29sIGluU2Nyb2xsKElubmVyR2VzdHVyZVJlY29nbml6ZXIqIGdl
c3R1cmVSZWNvZ25pemVyLCBjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50LCBJbm5lckdl
c3R1cmVSZWNvZ25pemVyOjpHZXN0dXJlcyBnZXN0dXJlcykKIHsKLSAgICBnZXN0dXJlUmVjb2du
aXplci0+YXBwZW5kU2Nyb2xsR2VzdHVyZShwb2ludCwgZ2VzdHVyZXMpOworICAgIGdlc3R1cmVS
ZWNvZ25pemVyLT5hcHBlbmRTY3JvbGxHZXN0dXJlVXBkYXRlKHBvaW50LnBvcygpLCBnZXN0dXJl
cyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaAppbmRleCBi
ZWFjNDY1Li5mZDQ2ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oCkBAIC01OSw5ICs1OSwx
MyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luQ2xpY2tUaW1lV2luZG93KCk7CiAgICAgYm9vbCBp
c0luc2lkZU1hbmhhdHRhblNxdWFyZShjb25zdCBQbGF0Zm9ybVRvdWNoUG9pbnQmKTsKICAgICB2
aXJ0dWFsIFBsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6OlBhc3NHZXN0dXJlcyAgcHJvY2Vzc1Rv
dWNoRXZlbnRGb3JHZXN0dXJlcyhjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmLCBib29sIGRlZmF1
bHRQcmV2ZW50ZWQpOwotICAgIHZvaWQgYXBwZW5kU2Nyb2xsR2VzdHVyZShjb25zdCBQbGF0Zm9y
bVRvdWNoUG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBhcHBlbmRTY3JvbGxHZXN0dXJlQmVn
aW4oY29uc3QgSW50UG9pbnQmLCBHZXN0dXJlcyk7CisgICAgdm9pZCBhcHBlbmRTY3JvbGxHZXN0
dXJlRW5kKGNvbnN0IEludFBvaW50JiwgR2VzdHVyZXMpOworICAgIHZvaWQgYXBwZW5kU2Nyb2xs
R2VzdHVyZVVwZGF0ZShjb25zdCBJbnRQb2ludCYsIEdlc3R1cmVzKTsKICAgICB2b2lkIHNldFN0
YXRlKFN0YXRlIHZhbHVlKSB7IG1fc3RhdGUgPSB2YWx1ZTsgfQogICAgIFN0YXRlIHN0YXRlKCkg
eyByZXR1cm4gbV9zdGF0ZTsgfQorCisgICAgSW50UG9pbnQgZmlyc3RUb3VjaFBvc2l0aW9uKCkg
eyByZXR1cm4gbV9maXJzdFRvdWNoUG9zaXRpb247IH0KIHByb3RlY3RlZDoKICAgICBJbm5lckdl
c3R1cmVSZWNvZ25pemVyKCk7CiAgICAgdm9pZCBhZGRFZGdlRnVuY3Rpb24oU3RhdGUsIHVuc2ln
bmVkIGZpbmdlciwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSwgYm9vbCB0b3VjaEhhbmRsZWRC
eUphdmFTY3JpcHQsIEdlc3R1cmVUcmFuc2l0aW9uRnVuY3Rpb24pOwpAQCAtNzQsNiArNzgsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgSW50UG9pbnQgbV9maXJzdFRvdWNoUG9zaXRpb247CiAgICAgZG91
YmxlIG1fZmlyc3RUb3VjaFRpbWU7CiAgICAgU3RhdGUgbV9zdGF0ZTsKKyAgICBJbnRQb2ludCBt
X2xhc3RUb3VjaFBvc2l0aW9uOwogICAgIGRvdWJsZSBtX2xhc3RUb3VjaFRpbWU7CiAKICAgICBi
b29sIG1fY3RybEtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNWMxZjQ1MS4uNGIz
N2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0w
OC0xOCAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgR2VzdHVyZVJlY29nbml6ZXI6IFVwZGF0ZSBob3cgZ2VzdHVyZS1zY3JvbGwgd29ya3Mu
CisKKyAgICAgICAgQWRkIGEgdW5pdC10ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgY29ycmVjdCBnZXN0
dXJlIGV2ZW50cyBhcmUgYmVpbmcKKyAgICAgICAgZ2VuZXJhdGVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0lubmVyR2VzdHVyZVJlY29n
bml6ZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJ1aWxkYWJsZVBsYXRmb3JtVG91Y2hQ
b2ludDo6QnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJ1
aWxkYWJsZVBsYXRmb3JtVG91Y2hFdmVudDo6QnVpbGRhYmxlUGxhdGZvcm1Ub3VjaEV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRFU1RfRik6CisKIDIwMTEtMDgtMTUgIEFhcm9uIEJvb2RtYW4g
IDxhYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIG9sZCBkaWRD
cmVhdGVJc29sYXRlZENvbnRleHQoKSBzaWduYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvSW5uZXJHZXN0dXJlUmVjb2duaXplclRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Jbm5lckdlc3R1cmVSZWNvZ25pemVyVGVzdC5jcHAKaW5k
ZXggZTA4YzY5MS4uN2RmMzFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Jbm5lckdlc3R1cmVSZWNvZ25pemVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9Jbm5lckdlc3R1cmVSZWNvZ25pemVyVGVzdC5jcHAKQEAgLTc4LDYgKzc4
LDcgQEAgY2xhc3MgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50IDogcHVibGljIFdlYkNvcmU6
OlBsYXRmb3JtVG91Y2hQb2ludCB7CiBwdWJsaWM6CiAgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3Vj
aFBvaW50KCk7CiAgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50KGludCB4LCBpbnQgeSk7
CisgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaFBvaW50KGludCB4LCBpbnQgeSwgUGxhdGZvcm1U
b3VjaFBvaW50OjpTdGF0ZSk7CiAKICAgICB2b2lkIHNldFgoaW50IHgpCiAgICAgewpAQCAtMTA4
LDYgKzEwOSwyMiBAQCBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoUG9pbnQ6OkJ1aWxkYWJsZVBsYXRm
b3JtVG91Y2hQb2ludChpbnQgeCwgaW50IHkpCiAgICAgbV9zY3JlZW5Qb3MgPSBJbnRQb2ludCh4
LCB5KTsKIH07CiAKK0J1aWxkYWJsZVBsYXRmb3JtVG91Y2hQb2ludDo6QnVpbGRhYmxlUGxhdGZv
cm1Ub3VjaFBvaW50KGludCB4LCBpbnQgeSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSBzdGF0
ZSkKK3sKKyAgICBtX2lkID0gMDsKKyAgICBtX3N0YXRlID0gc3RhdGU7CisgICAgbV9wb3MgPSBJ
bnRQb2ludCh4LCB5KTsKKyAgICBtX3NjcmVlblBvcyA9IEludFBvaW50KHgsIHkpOworfQorCitj
bGFzcyBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZv
cm1Ub3VjaEV2ZW50IHsKK3B1YmxpYzoKKyAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoRXZlbnQo
V2ViQ29yZTo6VG91Y2hFdmVudFR5cGUgdHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCkK
KyAgICB7CisgICAgICAgIG1fdHlwZSA9IHR5cGU7CisgICAgICAgIG1fdG91Y2hQb2ludHMuYXBw
ZW5kKHBvaW50KTsKKyAgICB9Cit9OwogCiBjbGFzcyBUZXN0R2VzdHVyZVJlY29nbml6ZXIgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CkBAIC0yNDMsNCArMjYwLDU0IEBAIFRFU1Rf
RihUZXN0R2VzdHVyZVJlY29nbml6ZXIsIHVwZGF0ZVZhbHVlcykKICAgICBBU1NFUlRfRVEoMC4w
LCBnbS5sYXN0VG91Y2hUaW1lKCkgLSBnbS5maXJzdFRvdWNoVGltZSgpKTsKIH0KIAorVEVTVF9G
KFRlc3RHZXN0dXJlUmVjb2duaXplciwgZ2VzdHVyZVNjcm9sbEV2ZW50cykKK3sKKyAgICBJbnNw
ZWN0YWJsZUlubmVyR2VzdHVyZVJlY29nbml6ZXIgZ207CisKKyAgICBBU1NFUlRfRVEoSW5uZXJH
ZXN0dXJlUmVjb2duaXplcjo6Tm9HZXN0dXJlLCBnbS5zdGF0ZSgpKTsKKworICAgIEJ1aWxkYWJs
ZVBsYXRmb3JtVG91Y2hQb2ludCBwcmVzcygxMCwgMTUsIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hQcmVzc2VkKTsKKyAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoRXZlbnQgcHJlc3NFdmVudChX
ZWJDb3JlOjpUb3VjaFN0YXJ0LCBwcmVzcyk7CisgICAgZ20ucHJvY2Vzc1RvdWNoRXZlbnRGb3JH
ZXN0dXJlcyhwcmVzc0V2ZW50LCBmYWxzZSk7CisKKyAgICBBU1NFUlRfRVEoSW5uZXJHZXN0dXJl
UmVjb2duaXplcjo6UGVuZGluZ1N5bnRoZXRpY0NsaWNrLCBnbS5zdGF0ZSgpKTsKKworICAgIEJ1
aWxkYWJsZVBsYXRmb3JtVG91Y2hQb2ludCBtb3ZlKDEwLCA1MCwgUGxhdGZvcm1Ub3VjaFBvaW50
OjpUb3VjaE1vdmVkKTsKKyAgICBCdWlsZGFibGVQbGF0Zm9ybVRvdWNoRXZlbnQgbW92ZUV2ZW50
KFdlYkNvcmU6OlRvdWNoTW92ZSwgbW92ZSk7CisgICAgT3duUHRyPFZlY3RvcjxXZWJDb3JlOjpQ
bGF0Zm9ybUdlc3R1cmVFdmVudD4gPiBnZXN0dXJlU3RhcnQoZ20ucHJvY2Vzc1RvdWNoRXZlbnRG
b3JHZXN0dXJlcyhtb3ZlRXZlbnQsIGZhbHNlKSk7CisgICAgYm9vbCBzY3JvbGxTdGFydGVkID0g
ZmFsc2UsIHNjcm9sbFVwZGF0ZWQgPSBmYWxzZTsKKyAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IGdlc3R1cmVTdGFydC0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgc3dpdGNoICgoKmdl
c3R1cmVTdGFydClbaV0udHlwZSgpKSB7CisgICAgICAgIGNhc2UgUGxhdGZvcm1HZXN0dXJlRXZl
bnQ6OlNjcm9sbEJlZ2luVHlwZToKKyAgICAgICAgICAgIHNjcm9sbFN0YXJ0ZWQgPSB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUGxhdGZvcm1HZXN0dXJlRXZlbnQ6OlNj
cm9sbFVwZGF0ZVR5cGU6CisgICAgICAgICAgICBzY3JvbGxVcGRhdGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX1RSVUUo
ZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgQVNTRVJUX1RSVUUoc2Nyb2xsU3RhcnRl
ZCk7CisgICAgQVNTRVJUX1RSVUUoc2Nyb2xsVXBkYXRlZCk7CisgICAgQVNTRVJUX0VRKElubmVy
R2VzdHVyZVJlY29nbml6ZXI6OlNjcm9sbCwgZ20uc3RhdGUoKSk7CisKKyAgICBCdWlsZGFibGVQ
bGF0Zm9ybVRvdWNoUG9pbnQgcmVsZWFzZSgxMCwgNTAsIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hSZWxlYXNlZCk7CisgICAgQnVpbGRhYmxlUGxhdGZvcm1Ub3VjaEV2ZW50IHJlbGVhc2VFdmVu
dChXZWJDb3JlOjpUb3VjaEVuZCwgcmVsZWFzZSk7CisgICAgYm9vbCBzY3JvbGxFbmQgPSBmYWxz
ZTsKKyAgICBPd25QdHI8VmVjdG9yPFdlYkNvcmU6OlBsYXRmb3JtR2VzdHVyZUV2ZW50PiA+IGdl
c3R1cmVFbmQoZ20ucHJvY2Vzc1RvdWNoRXZlbnRGb3JHZXN0dXJlcyhyZWxlYXNlRXZlbnQsIGZh
bHNlKSk7CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBnZXN0dXJlRW5kLT5zaXpl
KCk7IGkrKykgeworICAgICAgICBzd2l0Y2ggKCgqZ2VzdHVyZUVuZClbaV0udHlwZSgpKSB7Cisg
ICAgICAgIGNhc2UgUGxhdGZvcm1HZXN0dXJlRXZlbnQ6OlNjcm9sbEVuZFR5cGU6CisgICAgICAg
ICAgICBzY3JvbGxFbmQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgQVNTRVJUX1RSVUUoc2Nyb2xsRW5kKTsKKyAgICBBU1NFUlRfRVEoSW5uZXJHZXN0dXJlUmVj
b2duaXplcjo6Tm9HZXN0dXJlLCBnbS5zdGF0ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>