<?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>60525</bug_id>
          
          <creation_ts>2011-05-09 18:22:00 -0700</creation_ts>
          <short_desc>Implement reverse animation direction</short_desc>
          <delta_ts>2012-08-29 05:33:25 -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>CSS</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dbaron</cc>
    
    <cc>dglazkov</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>400965</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-05-09 18:22:00 -0700</bug_when>
    <thetext>See http://lists.w3.org/Archives/Public/www-style/2011May/0090.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400966</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-05-09 18:23:51 -0700</bug_when>
    <thetext>David,

Do you have opinions on this? We think it is a good idea but I don&apos;t want to implement it if Mozilla don&apos;t agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400969</commentid>
    <comment_count>2</comment_count>
    <who name="L. David Baron">dbaron</who>
    <bug_when>2011-05-09 18:38:32 -0700</bug_when>
    <thetext>Sounds fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549609</commentid>
    <comment_count>3</comment_count>
      <attachid>125534</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-02-05 13:47:02 -0800</bug_when>
    <thetext>Created attachment 125534
Patch

Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549610</commentid>
    <comment_count>4</comment_count>
      <attachid>125534</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-05 13:58:46 -0800</bug_when>
    <thetext>Comment on attachment 125534
Patch

Attachment 125534 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11428136</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549615</commentid>
    <comment_count>5</comment_count>
      <attachid>125534</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-05 14:10:13 -0800</bug_when>
    <thetext>Comment on attachment 125534
Patch

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

Some nitpicks to the TextureMapper part.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp:29
&gt; +static double normalizedAnimationValue(double runningTime, double duration, unsigned direction)

Why not just pass the AnimationDirection enum?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp:42
&gt; +    if ((direction == Animation::AnimationDirectionAlternate) &amp;&amp; (loopCount &amp; 1)
&gt; +        || ((direction == Animation::AnimationDirectionAlternateReverse) &amp;&amp; !(loopCount &amp; 1))
&gt; +        || direction == Animation::AnimationDirectionReverse)
&gt; +        normalized = 1 - normalized;

this part is a bit verbose... can be better in a static function that gets AnimationDirection and loopCount and returns if reverse or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549617</commentid>
    <comment_count>6</comment_count>
      <attachid>125534</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-05 14:16:11 -0800</bug_when>
    <thetext>Comment on attachment 125534
Patch

Attachment 125534 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11428139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549783</commentid>
    <comment_count>7</comment_count>
      <attachid>125534</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-06 00:17:24 -0800</bug_when>
    <thetext>Comment on attachment 125534
Patch

r- based on Noam&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550124</commentid>
    <comment_count>8</comment_count>
      <attachid>125673</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-02-06 11:19:00 -0800</bug_when>
    <thetext>Created attachment 125673
Patch

Proposed patch v2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550473</commentid>
    <comment_count>9</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-02-06 17:42:14 -0800</bug_when>
    <thetext>The last patch addresses Noam suggestions.

(In reply to comment #8)
&gt; Created an attachment (id=125673) [details]
&gt; Patch
&gt; 
&gt; Proposed patch v2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550561</commentid>
    <comment_count>10</comment_count>
      <attachid>125673</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-06 19:52:40 -0800</bug_when>
    <thetext>Comment on attachment 125673
Patch

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

Apart from the naming nitpick, this is an r+ for me on the TextureMapper part.
smfr/others, are you ok with the common part?

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp:30
&gt; +static bool animationValueIsReverse(Animation::AnimationDirection direction, int loopCount)

&lt;nitpicks/&gt;
name -&gt; shouldReverseAnimationValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551157</commentid>
    <comment_count>11</comment_count>
      <attachid>125880</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-02-07 11:23:17 -0800</bug_when>
    <thetext>Created attachment 125880
Patch

Fix nitpick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551370</commentid>
    <comment_count>12</comment_count>
      <attachid>125880</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-02-07 14:14:29 -0800</bug_when>
    <thetext>Comment on attachment 125880
Patch

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

I think we need a test for &quot;reverse&quot; as well. I could only see one for &quot;alternate-reverse&quot;. r- for the missing test, but otherwise looks good.

NOTE: Apple will need to raise a followup bug because our hardware animation won&apos;t support this directly.

&gt; LayoutTests/animations/animation-direction-alternate-reverse.html:53
&gt; +&lt;!-- Test animation-direction: alternate --&gt;

Nit: it&apos;s now alternate-reverse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551384</commentid>
    <comment_count>13</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-02-07 14:17:54 -0800</bug_when>
    <thetext>While I think of it, it would be nice to add tests of this in combination with fill-mode too. To make sure things extend in the right way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551389</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-02-07 14:19:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/10822885&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552362</commentid>
    <comment_count>15</comment_count>
      <attachid>126129</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-02-08 12:02:03 -0800</bug_when>
    <thetext>Created attachment 126129
Patch

Updated patch. Add new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552424</commentid>
    <comment_count>16</comment_count>
      <attachid>126129</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-02-08 13:08:57 -0800</bug_when>
    <thetext>Comment on attachment 126129
Patch

great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552509</commentid>
    <comment_count>17</comment_count>
      <attachid>126129</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 14:48:40 -0800</bug_when>
    <thetext>Comment on attachment 126129
Patch

Rejecting attachment 126129 from commit-queue.

New failing tests:
platform/chromium/compositing/layout-width-change.html
Full output: http://queues.webkit.org/results/11460584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552513</commentid>
    <comment_count>18</comment_count>
      <attachid>126129</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-02-08 14:53:59 -0800</bug_when>
    <thetext>Comment on attachment 126129
Patch

Trying again, this failing test does not looks related with this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552719</commentid>
    <comment_count>19</comment_count>
      <attachid>126129</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 18:07:29 -0800</bug_when>
    <thetext>Comment on attachment 126129
Patch

Clearing flags on attachment: 126129

Committed r107162: &lt;http://trac.webkit.org/changeset/107162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552720</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 18:07:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125534</attachid>
            <date>2012-02-05 13:47:02 -0800</date>
            <delta_ts>2012-02-06 11:19:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Implement-reverse-animation-direction.patch</filename>
            <type>text/plain</type>
            <size>12915</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBhNzQyYjY5NjcwN2M1OTUyZjI1ODY1NzU2M2UwNmVhOWZlNzc4Y2QyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNv
bT4KRGF0ZTogU3VuLCA1IEZlYiAyMDEyIDEzOjA4OjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SW1wbGVtZW50IHJldmVyc2UgYW5pbWF0aW9uIGRpcmVjdGlvbgoKLS0tCiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogLi4ubWF0
aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS1leHBlY3RlZC50eHQgfCAgICA1ICsrCiAu
Li4vYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sICAgICB8ICAgNjEg
KysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAyNiArKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAgICAgICAgICAgICB8ICAgMTUgKysrKystCiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNl
L1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwICAgICAgICAgICAgfCAgIDEzICsrKyst
CiBTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5oICAgICAgICAgICAgICB8ICAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwICAg
IHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5o
ICAgICAgfCAgIDExICsrKy0KIC4uLi9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1h
dGlvbi5jcHAgICAgIHwgICAxMCArKystCiAxMiBmaWxlcyBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9u
cygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZlcnNlLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRp
cmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI4ZWYwYzAuLmE1ZjdjNzMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0wNSAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iu
b0BzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIEltcGxlbWVudCByZXZlcnNlIGFuaW1hdGlv
biBkaXJlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNTI1CisKKyAgICAgICAgQWRkIHRlc3QgZm9yIHRoZSBuZXcgYW5pbWF0aW9uLWRpcmVj
dGlvbiB2YWx1ZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMDQgIEtlbiBC
dWNoYW5hbiAgPGtlbnJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCB3aGVuIHJlcGFy
ZW50aW5nIGNoaWxkcmVuIG9mIGZsZXhpYmxlIGJveGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLWFsdGVy
bmF0ZS1yZXZlcnNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yODJmYTI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZlcnNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMXMg
c2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMjAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAi
Ym94IiBlbGVtZW50IGF0IDJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAKK1BBU1MgLSAibGVm
dCIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgM3Mgc2F3IHNvbWV0aGluZyBjbG9zZSB0
bzogMjAwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDRzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IDQwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UuaHRtbCBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NWFkNDYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0
ZXJuYXRlLXJldmVyc2UuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKwor
PGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4K
KyAgCisgICAgI2NvbnRhaW5lciB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0
aDogNTAwcHg7CisgICAgfQorICAgIAorICAgICNib3ggeworICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3Zl
OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzOworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGUtcmV2ZXJzZTsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWlu
Zy1mdW5jdGlvbjogbGluZWFyOworICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBtb3Zl
IHsKKyAgICAgIDAlICAgeworICAgICAgICBsZWZ0OiAwOworICAgICAgfQorICAgICAgMTAwJSB7
CisgICAgICAgIGxlZnQ6IDQwMHB4OworICAgICAgfQorICAgIH0KKyAgICAKKyAgPC9zdHlsZT4K
KyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKworICAgIGNvbnN0IGV4cGVj
dGVkVmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlk
LCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFsibW92ZSIsIDEu
MCwgImJveCIsICJsZWZ0IiwgMjAwLCAyMF0sCisgICAgICBbIm1vdmUiLCAyLjAsICJib3giLCAi
bGVmdCIsIDAsIDIwXSwKKworICAgICAgWyJtb3ZlIiwgMy4wLCAiYm94IiwgImxlZnQiLCAyMDAs
IDIwXSwKKyAgICAgIFsibW92ZSIsIDQuMCwgImJveCIsICJsZWZ0IiwgNDAwLCAyMF0sCisgICAg
XTsKKyAgICAKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKKyAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPCEtLSBUZXN0IGFuaW1hdGlvbi1kaXJlY3Rpb246IGFs
dGVybmF0ZSAtLT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgIDxkaXYgaWQ9ImJveCI+PC9kaXY+
Cis8L2Rpdj4KKworPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGRjODAxZGYuLjdlYTk5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBA
QAorMjAxMi0wMi0wNSAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iub0BzaXNhLnNhbXN1bmcuY29tPgor
CisgICAgICAgIEltcGxlbWVudCByZXZlcnNlIGFuaW1hdGlvbiBkaXJlY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNTI1CisKKyAgICAgICAg
SW1wbGVtZW50IHJldmVyc2UgYW5kIGFsdGVybmF0ZS1yZXZlcnNlIGRpcmVjdGlvbi4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBhbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UuaHRtbAorCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
QW5pbWF0aW9uRGlyZWN0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25EaXJlY3Rp
b24pOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIHBhZ2Uv
V2ViS2l0QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEFuaW1hdGlvbjo6
ZGlyZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL1dlYktpdEFuaW1hdGlvbi5oOgorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5p
bWF0aW9uQmFzZTo6ZnJhY3Rpb25hbFRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlv
bi9BbmltYXRpb24uaDoKKyAgICAgICAgKEFuaW1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bm9ybWFsaXplZEFuaW1hdGlvblZhbHVlKToKKwogMjAxMi0wMi0wNSAgQW5kcmVhcyBL
bGluZyAgPGF3ZXNvbWVrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG1hcHBlZCB2
cyBub24tbWFwcGVkIGF0dHJpYnV0ZSBkaXN0aW5jdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggMTFhYzljZi4uYzNkMjU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTMzNzYsNyArMzM3Niw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VB
bmltYXRpb25EZWxheSgpCiBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQW5p
bWF0aW9uRGlyZWN0aW9uKCkKIHsKICAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVl
TGlzdC0+Y3VycmVudCgpOwotICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwg
dmFsdWUtPmlkID09IENTU1ZhbHVlQWx0ZXJuYXRlKQorICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NT
VmFsdWVOb3JtYWwgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVlQWx0ZXJuYXRlIHx8IHZhbHVlLT5p
ZCA9PSBDU1NWYWx1ZVJldmVyc2UgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVlQWx0ZXJuYXRlUmV2
ZXJzZSkKICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLT5jcmVhdGVJZGVudGlmaWVyVmFs
dWUodmFsdWUtPmlkKTsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAppbmRleCA4NmIwYWMzLi41ZGU1ZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC00Mjg2LDcgKzQyODYsMjAgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjptYXBBbmltYXRpb25EaXJlY3Rpb24oQW5pbWF0aW9uKiBsYXllciwgQ1NTVmFs
dWUqIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJp
bWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKLSAg
ICBsYXllci0+c2V0RGlyZWN0aW9uKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1Zh
bHVlQWx0ZXJuYXRlID8gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGUgOiBB
bmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCk7CisgICAgc3dpdGNoIChwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAg
IGxheWVyLT5zZXREaXJlY3Rpb24oQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25Ob3JtYWwp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQWx0ZXJuYXRlOgorICAgICAgICBs
YXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6CisgICAgICAgIGxh
eWVyLT5zZXREaXJlY3Rpb24oQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25SZXZlcnNlKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUFsdGVybmF0ZVJldmVyc2U6CisgICAg
ICAgIGxheWVyLT5zZXREaXJlY3Rpb24oQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRl
cm5hdGVSZXZlcnNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfQogCiB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6Om1hcEFuaW1hdGlvbkR1cmF0aW9uKEFuaW1hdGlvbiogYW5pbWF0aW9uLCBDU1NW
YWx1ZSogdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IGZk
MTA1MjguLjg3Zjg3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBA
IC03MDMsNiArNzAzLDggQEAgbGluZXMKIC8vCiAvLyBhbHRlcm5hdGUKIAorYWx0ZXJuYXRlLXJl
dmVyc2UKKwogLy8KIC8vIENTU19QUk9QX19XRUJLSVRfQU5JTUFUSU9OX0ZJTExfTU9ERQogLy8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcAppbmRleCBiNzU3ZDIzLi45OGU3
NzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwCkBAIC04NCw5ICs4
NCwxOCBAQCBib29sIFdlYktpdEFuaW1hdGlvbjo6ZW5kZWQoKSBjb25zdAogCiBXZWJLaXRBbmlt
YXRpb246OkRpcmVjdGlvbiBXZWJLaXRBbmltYXRpb246OmRpcmVjdGlvbigpIGNvbnN0CiB7Ci0g
ICAgaWYgKG1fa2V5ZnJhbWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5kaXJlY3Rpb24oKSA9PSBB
bmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCkKKyAgICBzd2l0Y2ggKG1fa2V5ZnJh
bWVBbmltYXRpb24tPmFuaW1hdGlvbigpLT5kaXJlY3Rpb24oKSkgeworICAgIGNhc2UgQW5pbWF0
aW9uOjpBbmltYXRpb25EaXJlY3Rpb25Ob3JtYWw6CiAgICAgICAgIHJldHVybiBESVJFQ1RJT05f
Tk9STUFMOwotICAgIHJldHVybiBESVJFQ1RJT05fQUxURVJOQVRFOworICAgIGNhc2UgQW5pbWF0
aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGU6CisgICAgICAgIHJldHVybiBESVJFQ1RJ
T05fQUxURVJOQVRFOworICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25SZXZl
cnNlOgorICAgICAgICByZXR1cm4gRElSRUNUSU9OX1JFVkVSU0U7CisgICAgY2FzZSBBbmltYXRp
b246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2U6CisgICAgICAgIHJldHVybiBE
SVJFQ1RJT05fQUxURVJOQVRFX1JFVkVSU0U7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBESVJFQ1RJT05fTk9STUFMOwogfQogCiBXZWJLaXRBbmltYXRpb246
OkZpbGxNb2RlIFdlYktpdEFuaW1hdGlvbjo6ZmlsbE1vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2ViS2l0QW5pbWF0aW9uLmgKaW5kZXggNmJlYTFlNS4uYmVmNzQzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGVuZGVkKCkgY29uc3Q7CiAKICAgICAvLyBkaXJlY3Rpb24KLSAgICBlbnVtIERpcmVjdGlv
biB7IERJUkVDVElPTl9OT1JNQUwsIERJUkVDVElPTl9BTFRFUk5BVEUgfTsKKyAgICBlbnVtIERp
cmVjdGlvbiB7IERJUkVDVElPTl9OT1JNQUwsIERJUkVDVElPTl9BTFRFUk5BVEUsIERJUkVDVElP
Tl9SRVZFUlNFLCBESVJFQ1RJT05fQUxURVJOQVRFX1JFVkVSU0UgfTsKICAgICBEaXJlY3Rpb24g
ZGlyZWN0aW9uKCkgY29uc3Q7CiAKICAgICAvLyBmaWxsIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKaW5kZXggZTNhZDkyZi4uOWZkZGMx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAKQEAgLTE2NzMsNyArMTY3Myw5IEBAIGRvdWJsZSBBbmltYXRpb25CYXNlOjpmcmFjdGlvbmFs
VGltZShkb3VibGUgc2NhbGUsIGRvdWJsZSBlbGFwc2VkVGltZSwgZG91YmxlIG9mCiAgICAgICAg
IGludGVncmFsVGltZSA9IG1pbihpbnRlZ3JhbFRpbWUsIG1fYW5pbWF0aW9uLT5pdGVyYXRpb25D
b3VudCgpIC0gMSk7CiAgICAgZnJhY3Rpb25hbFRpbWUgLT0gaW50ZWdyYWxUaW1lOwogCi0gICAg
aWYgKChtX2FuaW1hdGlvbi0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJl
Y3Rpb25BbHRlcm5hdGUpICYmIChpbnRlZ3JhbFRpbWUgJiAxKSkKKyAgICBpZiAoKG1fYW5pbWF0
aW9uLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0
ZSkgJiYgKGludGVncmFsVGltZSAmIDEpCisgICAgICAgIHx8ICgobV9hbmltYXRpb24tPmRpcmVj
dGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSkg
JiYgIShpbnRlZ3JhbFRpbWUgJiAxKSkKKyAgICAgICAgfHwgbV9hbmltYXRpb24tPmRpcmVjdGlv
bigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSkKICAgICAgICAgZnJh
Y3Rpb25hbFRpbWUgPSAxIC0gZnJhY3Rpb25hbFRpbWU7CiAKICAgICBpZiAoc2NhbGUgIT0gMSB8
fCBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24v
QW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9u
LmgKaW5kZXggMGE1ZjRkMi4uMTc1ZDk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxBbmltYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBBbmltYXRpb24pOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBjcmVhdGUo
Y29uc3QgQW5pbWF0aW9uKiBvKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKCpvKSk7
IH0KLSAgICAKKwogICAgIGJvb2wgaXNEZWxheVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsYXlT
ZXQ7IH0KICAgICBib29sIGlzRGlyZWN0aW9uU2V0KCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rp
b25TZXQ7IH0KICAgICBib29sIGlzRHVyYXRpb25TZXQoKSBjb25zdCB7IHJldHVybiBtX2R1cmF0
aW9uU2V0OyB9CkBAIC05Niw3ICs5NiwxMiBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZGVsYXko
KSBjb25zdCB7IHJldHVybiBtX2RlbGF5OyB9CiAKLSAgICBlbnVtIEFuaW1hdGlvbkRpcmVjdGlv
biB7IEFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCwgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRl
IH07CisgICAgZW51bSBBbmltYXRpb25EaXJlY3Rpb24geworICAgICAgICBBbmltYXRpb25EaXJl
Y3Rpb25Ob3JtYWwsCisgICAgICAgIEFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSwKKyAgICAg
ICAgQW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSwKKyAgICAgICAgQW5pbWF0aW9uRGlyZWN0aW9u
QWx0ZXJuYXRlUmV2ZXJzZQorICAgIH07CiAgICAgQW5pbWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuaW1hdGlvbkRpcmVjdGlvbj4obV9kaXJl
Y3Rpb24pOyB9CiAKICAgICB1bnNpZ25lZCBmaWxsTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmls
bE1vZGU7IH0KQEAgLTE0NCw3ICsxNDksNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2RlbGF5
OwogICAgIGRvdWJsZSBtX2R1cmF0aW9uOwogICAgIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4gbV90
aW1pbmdGdW5jdGlvbjsKLSAgICB1bnNpZ25lZCBtX2RpcmVjdGlvbiA6IDE7IC8vIEFuaW1hdGlv
bkRpcmVjdGlvbgorICAgIHVuc2lnbmVkIG1fZGlyZWN0aW9uIDogMjsgLy8gQW5pbWF0aW9uRGly
ZWN0aW9uCiAgICAgdW5zaWduZWQgbV9maWxsTW9kZSA6IDI7CiAKICAgICB1bnNpZ25lZCBtX3Bs
YXlTdGF0ZSAgICAgOiAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uY3BwCmluZGV4
IDA5NzE0ZDkuLjMyYmJhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyBkb3VibGUgbm9ybWFsaXplZEFuaW1hdGlvblZhbHVlKGRvdWJsZSBy
dW5uaW5nVGltZSwgZG91YmxlIGR1cmF0aW9uLCBib29sIGFsdGVybmF0ZSkKK3N0YXRpYyBkb3Vi
bGUgbm9ybWFsaXplZEFuaW1hdGlvblZhbHVlKGRvdWJsZSBydW5uaW5nVGltZSwgZG91YmxlIGR1
cmF0aW9uLCB1bnNpZ25lZCBkaXJlY3Rpb24pCiB7CiAgICAgaWYgKCFkdXJhdGlvbikKICAgICAg
ICAgcmV0dXJuIDA7CkBAIC0zNSw3ICszNSwxMyBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZWRB
bmltYXRpb25WYWx1ZShkb3VibGUgcnVubmluZ1RpbWUsIGRvdWJsZSBkdXJhdGlvbiwgYm9vbAog
ICAgIGNvbnN0IGRvdWJsZSBsYXN0RnVsbExvb3AgPSBkdXJhdGlvbiAqIGRvdWJsZShsb29wQ291
bnQpOwogICAgIGNvbnN0IGRvdWJsZSByZW1haW5kZXIgPSBydW5uaW5nVGltZSAtIGxhc3RGdWxs
TG9vcDsKICAgICBjb25zdCBkb3VibGUgbm9ybWFsaXplZCA9IHJlbWFpbmRlciAvIGR1cmF0aW9u
OwotICAgIHJldHVybiAobG9vcENvdW50ICUgMiAmJiBhbHRlcm5hdGUpID8gKDEgLSBub3JtYWxp
emVkKSA6IG5vcm1hbGl6ZWQ7CisKKyAgICBpZiAoKGRpcmVjdGlvbiA9PSBBbmltYXRpb246OkFu
aW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSkgJiYgKGxvb3BDb3VudCAmIDEpCisgICAgICAgIHx8
ICgoZGlyZWN0aW9uID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2
ZXJzZSkgJiYgIShsb29wQ291bnQgJiAxKSkKKyAgICAgICAgfHwgZGlyZWN0aW9uID09IEFuaW1h
dGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSkKKyAgICAgICAgbm9ybWFsaXplZCA9IDEg
LSBub3JtYWxpemVkOworCisgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7CiB9CiAKIHN0YXRpYyBmbG9h
dCBhcHBseU9wYWNpdHlBbmltYXRpb24oZmxvYXQgZnJvbU9wYWNpdHksIGZsb2F0IHRvT3BhY2l0
eSwgZG91YmxlIHByb2dyZXNzKQotLSAKMS43LjUuNAoK
</data>
<flag name="review"
          id="127051"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="127052"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125673</attachid>
            <date>2012-02-06 11:19:00 -0800</date>
            <delta_ts>2012-02-07 11:23:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Implement-reverse-animation-direction.patch</filename>
            <type>text/plain</type>
            <size>13196</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSA3OWI3MWFiZmM5ZjM4NzhkYjM5YzRhMDUyN2UwZTk1ODA1ZjE2MTQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNv
bT4KRGF0ZTogU3VuLCA1IEZlYiAyMDEyIDEzOjA4OjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SW1wbGVtZW50IHJldmVyc2UgYW5pbWF0aW9uIGRpcmVjdGlvbgoKLS0tCiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogLi4ubWF0
aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS1leHBlY3RlZC50eHQgfCAgICA1ICsrCiAu
Li4vYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sICAgICB8ICAgNjEg
KysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAyOCArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwICAgICAgICAgICAgfCAgIDE1ICsrKysrLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gICAgICAgICAgICAgfCAgICAyICsKIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcCAgICAgICAgICAgIHwgICAxMyArKysr
LQogU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaCAgICAgICAgICAgICAgfCAg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCAg
ICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24u
aCAgICAgIHwgICAxMSArKystCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmlt
YXRpb24uY3BwICAgICB8ICAgMTYgKysrKystCiAxMiBmaWxlcyBjaGFuZ2VkLCAxNjAgaW5zZXJ0
aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZlcnNlLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAyMTU1ZjkuLjRlOTdj
YTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0wNiAgSWdvciBPbGl2ZWlyYSAgPGln
b3Iub0BzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIEltcGxlbWVudCByZXZlcnNlIGFuaW1h
dGlvbiBkaXJlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwNTI1CisKKyAgICAgICAgQWRkIHRlc3QgZm9yIHRoZSBuZXcgYW5pbWF0aW9uLWRp
cmVjdGlvbiB2YWx1ZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVy
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMDUgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZWJhc2VsaW5lIHhzcy1p
bmFjdGl2ZS1jbG9zdXJlLmh0bWwuICBUaGlzIHRlc3QgImZhaWxzIiBiZWNhdXNlIG9mIGEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRl
cm5hdGUtcmV2ZXJzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4MmZhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3Ig
ImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMDAKK1BBU1MgLSAi
bGVmdCIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMnMgc2F3IHNvbWV0aGluZyBjbG9z
ZSB0bzogMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAzcyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMDAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJi
b3giIGVsZW1lbnQgYXQgNHMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAwCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUt
cmV2ZXJzZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9u
LWFsdGVybmF0ZS1yZXZlcnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTQ1YWQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sCkBAIC0wLDAgKzEsNjEgQEAK
KzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiIG1lZGlhPSJzY3JlZW4iPgorICAKKyAgICAjY29udGFpbmVyIHsKKyAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgaGVpZ2h0
OiAxMDBweDsKKyAgICAgIHdpZHRoOiA1MDBweDsKKyAgICB9CisgICAgCisgICAgI2JveCB7Cisg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLW5hbWU6IG1vdmU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjog
MnM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNl
OworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgfQorCisgICAgQC13
ZWJraXQta2V5ZnJhbWVzIG1vdmUgeworICAgICAgMCUgICB7CisgICAgICAgIGxlZnQ6IDA7Cisg
ICAgICB9CisgICAgICAxMDAlIHsKKyAgICAgICAgbGVmdDogNDAwcHg7CisgICAgICB9CisgICAg
fQorICAgIAorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10
ZXN0LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwv
c2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgi
PgorCisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbYW5pbWF0aW9uLW5h
bWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNl
XQorICAgICAgWyJtb3ZlIiwgMS4wLCAiYm94IiwgImxlZnQiLCAyMDAsIDIwXSwKKyAgICAgIFsi
bW92ZSIsIDIuMCwgImJveCIsICJsZWZ0IiwgMCwgMjBdLAorCisgICAgICBbIm1vdmUiLCAzLjAs
ICJib3giLCAibGVmdCIsIDIwMCwgMjBdLAorICAgICAgWyJtb3ZlIiwgNC4wLCAiYm94IiwgImxl
ZnQiLCA0MDAsIDIwXSwKKyAgICBdOworICAgIAorICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0
ZWRWYWx1ZXMpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8IS0tIFRlc3QgYW5p
bWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlIC0tPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAg
PGRpdiBpZD0iYm94Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM4MDFkZi4uMjY2ZGExMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAyLTA2ICBJZ29yIE9saXZlaXJhICA8aWdvci5v
QHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHJldmVyc2UgYW5pbWF0aW9u
IGRpcmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA1MjUKKworICAgICAgICBJbXBsZW1lbnQgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVy
c2UgZGlyZWN0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2
ZXJzZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25EaXJlY3Rpb24pOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6
Om1hcEFuaW1hdGlvbkRpcmVjdGlvbik6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW46CisgICAgICAgICogcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0QW5pbWF0aW9uOjpkaXJlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvV2ViS2l0QW5p
bWF0aW9uLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpmcmFjdGlvbmFsVGltZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oOgorICAgICAgICAoQW5pbWF0aW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmFuaW1hdGlvblZh
bHVlSXNSZXZlcnNlKToKKyAgICAgICAgKFdlYkNvcmU6Om5vcm1hbGl6ZWRBbmltYXRpb25WYWx1
ZSk6CisKIDIwMTItMDItMDUgIEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBtYXBwZWQgdnMgbm9uLW1hcHBlZCBhdHRyaWJ1dGUgZGlzdGlu
Y3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDExYWM5Y2YuLmMzZDI1NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0zMzc2LDcgKzMzNzYsNyBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uRGVsYXkoKQogUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkRpcmVjdGlvbigpCiB7CiAgICAgQ1NT
UGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKLSAgICBpZiAodmFs
dWUtPmlkID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUFsdGVybmF0
ZSkKKyAgICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlLT5pZCA9PSBD
U1NWYWx1ZUFsdGVybmF0ZSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVSZXZlcnNlIHx8IHZhbHVl
LT5pZCA9PSBDU1NWYWx1ZUFsdGVybmF0ZVJldmVyc2UpCiAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2woKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCk7CiAgICAgcmV0dXJuIDA7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggODZiMGFjMy4u
NWRlNWYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDI4
Niw3ICs0Mjg2LDIwIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFwQW5pbWF0aW9uRGlyZWN0
aW9uKEFuaW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgbGF5ZXItPnNldERpcmVjdGlvbihwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUFsdGVybmF0ZSA/IEFuaW1hdGlvbjo6QW5p
bWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIDogQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWwpOworICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgorICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlv
bjo6QW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
U1NWYWx1ZUFsdGVybmF0ZToKKyAgICAgICAgbGF5ZXItPnNldERpcmVjdGlvbihBbmltYXRpb246
OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1NTVmFsdWVSZXZlcnNlOgorICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6
QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVBbHRlcm5hdGVSZXZlcnNlOgorICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1h
dGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KIH0KIAogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25EdXJhdGlv
bihBbmltYXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBmZDEwNTI4Li44N2Y4NzFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtNzAzLDYgKzcwMyw4IEBAIGxpbmVzCiAvLwog
Ly8gYWx0ZXJuYXRlCiAKK2FsdGVybmF0ZS1yZXZlcnNlCisKIC8vCiAvLyBDU1NfUFJPUF9fV0VC
S0lUX0FOSU1BVElPTl9GSUxMX01PREUKIC8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1dlYktpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1h
dGlvbi5jcHAKaW5kZXggYjc1N2QyMy4uOThlNzczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2Vi
S2l0QW5pbWF0aW9uLmNwcApAQCAtODQsOSArODQsMTggQEAgYm9vbCBXZWJLaXRBbmltYXRpb246
OmVuZGVkKCkgY29uc3QKIAogV2ViS2l0QW5pbWF0aW9uOjpEaXJlY3Rpb24gV2ViS2l0QW5pbWF0
aW9uOjpkaXJlY3Rpb24oKSBjb25zdAogewotICAgIGlmIChtX2tleWZyYW1lQW5pbWF0aW9uLT5h
bmltYXRpb24oKS0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWwpCisgICAgc3dpdGNoIChtX2tleWZyYW1lQW5pbWF0aW9uLT5hbmltYXRpb24oKS0+ZGly
ZWN0aW9uKCkpIHsKKyAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFs
OgogICAgICAgICByZXR1cm4gRElSRUNUSU9OX05PUk1BTDsKLSAgICByZXR1cm4gRElSRUNUSU9O
X0FMVEVSTkFURTsKKyAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJu
YXRlOgorICAgICAgICByZXR1cm4gRElSRUNUSU9OX0FMVEVSTkFURTsKKyAgICBjYXNlIEFuaW1h
dGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZToKKyAgICAgICAgcmV0dXJuIERJUkVDVElP
Tl9SRVZFUlNFOworICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5h
dGVSZXZlcnNlOgorICAgICAgICByZXR1cm4gRElSRUNUSU9OX0FMVEVSTkFURV9SRVZFUlNFOwor
ICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gRElSRUNUSU9OX05P
Uk1BTDsKIH0KIAogV2ViS2l0QW5pbWF0aW9uOjpGaWxsTW9kZSBXZWJLaXRBbmltYXRpb246OmZp
bGxNb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5p
bWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5oCmluZGV4IDZi
ZWExZTUuLmJlZjc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5p
bWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0OwogCiAgICAgLy8g
ZGlyZWN0aW9uCi0gICAgZW51bSBEaXJlY3Rpb24geyBESVJFQ1RJT05fTk9STUFMLCBESVJFQ1RJ
T05fQUxURVJOQVRFIH07CisgICAgZW51bSBEaXJlY3Rpb24geyBESVJFQ1RJT05fTk9STUFMLCBE
SVJFQ1RJT05fQUxURVJOQVRFLCBESVJFQ1RJT05fUkVWRVJTRSwgRElSRUNUSU9OX0FMVEVSTkFU
RV9SRVZFUlNFIH07CiAgICAgRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0OwogCiAgICAgLy8g
ZmlsbCBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuY3BwCmluZGV4IGUzYWQ5MmYuLjRmZDA0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC0xNjczLDcgKzE2NzMsOSBAQCBkb3Vi
bGUgQW5pbWF0aW9uQmFzZTo6ZnJhY3Rpb25hbFRpbWUoZG91YmxlIHNjYWxlLCBkb3VibGUgZWxh
cHNlZFRpbWUsIGRvdWJsZSBvZgogICAgICAgICBpbnRlZ3JhbFRpbWUgPSBtaW4oaW50ZWdyYWxU
aW1lLCBtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSAtIDEpOwogICAgIGZyYWN0aW9uYWxU
aW1lIC09IGludGVncmFsVGltZTsKIAotICAgIGlmICgobV9hbmltYXRpb24tPmRpcmVjdGlvbigp
ID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKSAmJiAoaW50ZWdyYWxU
aW1lICYgMSkpCisgICAgaWYgKCgobV9hbmltYXRpb24tPmRpcmVjdGlvbigpID09IEFuaW1hdGlv
bjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKSAmJiAoaW50ZWdyYWxUaW1lICYgMSkpCisg
ICAgICAgIHx8ICgobV9hbmltYXRpb24tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0
aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSkgJiYgIShpbnRlZ3JhbFRpbWUgJiAxKSkKKyAg
ICAgICAgfHwgbV9hbmltYXRpb24tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9u
RGlyZWN0aW9uUmV2ZXJzZSkKICAgICAgICAgZnJhY3Rpb25hbFRpbWUgPSAxIC0gZnJhY3Rpb25h
bFRpbWU7CiAKICAgICBpZiAoc2NhbGUgIT0gMSB8fCBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKaW5kZXggMGE1ZjRkMi4uMTc1ZDk1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAt
NDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbmltYXRpb24+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb24pOyB9CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgQW5pbWF0aW9uKiBvKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKCpvKSk7IH0KLSAgICAKKwogICAgIGJvb2wgaXNEZWxh
eVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsYXlTZXQ7IH0KICAgICBib29sIGlzRGlyZWN0aW9u
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb25TZXQ7IH0KICAgICBib29sIGlzRHVyYXRp
b25TZXQoKSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uU2V0OyB9CkBAIC05Niw3ICs5NiwxMiBA
QCBwdWJsaWM6CiAKICAgICBkb3VibGUgZGVsYXkoKSBjb25zdCB7IHJldHVybiBtX2RlbGF5OyB9
CiAKLSAgICBlbnVtIEFuaW1hdGlvbkRpcmVjdGlvbiB7IEFuaW1hdGlvbkRpcmVjdGlvbk5vcm1h
bCwgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIH07CisgICAgZW51bSBBbmltYXRpb25EaXJl
Y3Rpb24geworICAgICAgICBBbmltYXRpb25EaXJlY3Rpb25Ob3JtYWwsCisgICAgICAgIEFuaW1h
dGlvbkRpcmVjdGlvbkFsdGVybmF0ZSwKKyAgICAgICAgQW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJz
ZSwKKyAgICAgICAgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZQorICAgIH07CiAg
ICAgQW5pbWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PEFuaW1hdGlvbkRpcmVjdGlvbj4obV9kaXJlY3Rpb24pOyB9CiAKICAgICB1bnNpZ25lZCBm
aWxsTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbE1vZGU7IH0KQEAgLTE0NCw3ICsxNDksNyBA
QCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2RlbGF5OwogICAgIGRvdWJsZSBtX2R1cmF0aW9uOwog
ICAgIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4gbV90aW1pbmdGdW5jdGlvbjsKLSAgICB1bnNpZ25l
ZCBtX2RpcmVjdGlvbiA6IDE7IC8vIEFuaW1hdGlvbkRpcmVjdGlvbgorICAgIHVuc2lnbmVkIG1f
ZGlyZWN0aW9uIDogMjsgLy8gQW5pbWF0aW9uRGlyZWN0aW9uCiAgICAgdW5zaWduZWQgbV9maWxs
TW9kZSA6IDI7CiAKICAgICB1bnNpZ25lZCBtX3BsYXlTdGF0ZSAgICAgOiAyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJBbmltYXRpb24uY3BwCmluZGV4IDA5NzE0ZDkuLmIxNDA5YTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5jcHAKQEAgLTI2LDcgKzI2LDE4IEBACiAjaWYgVVNF
KFRFWFRVUkVfTUFQUEVSKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgZG91YmxlIG5v
cm1hbGl6ZWRBbmltYXRpb25WYWx1ZShkb3VibGUgcnVubmluZ1RpbWUsIGRvdWJsZSBkdXJhdGlv
biwgYm9vbCBhbHRlcm5hdGUpCisKK3N0YXRpYyBib29sIGFuaW1hdGlvblZhbHVlSXNSZXZlcnNl
KEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgaW50IGxvb3BDb3VudCkK
K3sKKyAgICBpZiAoKChkaXJlY3Rpb24gPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25B
bHRlcm5hdGUpICYmIChsb29wQ291bnQgJiAxKSkKKyAgICAgICAgfHwgKChkaXJlY3Rpb24gPT0g
QW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGVSZXZlcnNlKSAmJiAhKGxvb3BD
b3VudCAmIDEpKQorICAgICAgICB8fCBkaXJlY3Rpb24gPT0gQW5pbWF0aW9uOjpBbmltYXRpb25E
aXJlY3Rpb25SZXZlcnNlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7
CisKK30KKworc3RhdGljIGRvdWJsZSBub3JtYWxpemVkQW5pbWF0aW9uVmFsdWUoZG91YmxlIHJ1
bm5pbmdUaW1lLCBkb3VibGUgZHVyYXRpb24sIEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbikKIHsKICAgICBpZiAoIWR1cmF0aW9uKQogICAgICAgICByZXR1cm4gMDsKQEAg
LTM1LDcgKzQ2LDggQEAgc3RhdGljIGRvdWJsZSBub3JtYWxpemVkQW5pbWF0aW9uVmFsdWUoZG91
YmxlIHJ1bm5pbmdUaW1lLCBkb3VibGUgZHVyYXRpb24sIGJvb2wKICAgICBjb25zdCBkb3VibGUg
bGFzdEZ1bGxMb29wID0gZHVyYXRpb24gKiBkb3VibGUobG9vcENvdW50KTsKICAgICBjb25zdCBk
b3VibGUgcmVtYWluZGVyID0gcnVubmluZ1RpbWUgLSBsYXN0RnVsbExvb3A7CiAgICAgY29uc3Qg
ZG91YmxlIG5vcm1hbGl6ZWQgPSByZW1haW5kZXIgLyBkdXJhdGlvbjsKLSAgICByZXR1cm4gKGxv
b3BDb3VudCAlIDIgJiYgYWx0ZXJuYXRlKSA/ICgxIC0gbm9ybWFsaXplZCkgOiBub3JtYWxpemVk
OworCisgICAgcmV0dXJuIGFuaW1hdGlvblZhbHVlSXNSZXZlcnNlKGRpcmVjdGlvbiwgbG9vcENv
dW50KSA/IDEgLSBub3JtYWxpemVkIDogbm9ybWFsaXplZDsKIH0KIAogc3RhdGljIGZsb2F0IGFw
cGx5T3BhY2l0eUFuaW1hdGlvbihmbG9hdCBmcm9tT3BhY2l0eSwgZmxvYXQgdG9PcGFjaXR5LCBk
b3VibGUgcHJvZ3Jlc3MpCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125880</attachid>
            <date>2012-02-07 11:23:17 -0800</date>
            <delta_ts>2012-02-08 12:02:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Implement-reverse-animation-direction.patch</filename>
            <type>text/plain</type>
            <size>13208</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSAwMGFjMGY0MDIwMzkxYzMwZmQ0NzNiMzM1MmQ2M2MyNDU5YTdmNDdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNv
bT4KRGF0ZTogU3VuLCA1IEZlYiAyMDEyIDEzOjA4OjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SW1wbGVtZW50IHJldmVyc2UgYW5pbWF0aW9uIGRpcmVjdGlvbgoKLS0tCiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogLi4ubWF0
aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS1leHBlY3RlZC50eHQgfCAgICA1ICsrCiAu
Li4vYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sICAgICB8ICAgNjEg
KysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAyOCArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwICAgICAgICAgICAgfCAgIDE1ICsrKysrLQogU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gICAgICAgICAgICAgfCAgICAyICsKIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcCAgICAgICAgICAgIHwgICAxMyArKysr
LQogU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaCAgICAgICAgICAgICAgfCAg
ICAyICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCAg
ICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24u
aCAgICAgIHwgICAxMSArKystCiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJBbmlt
YXRpb24uY3BwICAgICB8ICAgMTYgKysrKystCiAxMiBmaWxlcyBjaGFuZ2VkLCAxNjAgaW5zZXJ0
aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZlcnNlLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAyMTU1ZjkuLjRlOTdj
YTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0wNiAgSWdvciBPbGl2ZWlyYSAgPGln
b3Iub0BzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIEltcGxlbWVudCByZXZlcnNlIGFuaW1h
dGlvbiBkaXJlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwNTI1CisKKyAgICAgICAgQWRkIHRlc3QgZm9yIHRoZSBuZXcgYW5pbWF0aW9uLWRp
cmVjdGlvbiB2YWx1ZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVy
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMDUgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZWJhc2VsaW5lIHhzcy1p
bmFjdGl2ZS1jbG9zdXJlLmh0bWwuICBUaGlzIHRlc3QgImZhaWxzIiBiZWNhdXNlIG9mIGEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRl
cm5hdGUtcmV2ZXJzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4MmZhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3Ig
ImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMDAKK1BBU1MgLSAi
bGVmdCIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMnMgc2F3IHNvbWV0aGluZyBjbG9z
ZSB0bzogMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAzcyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMDAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJi
b3giIGVsZW1lbnQgYXQgNHMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAwCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUt
cmV2ZXJzZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9u
LWFsdGVybmF0ZS1yZXZlcnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTQ1YWQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sCkBAIC0wLDAgKzEsNjEgQEAK
KzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiIG1lZGlhPSJzY3JlZW4iPgorICAKKyAgICAjY29udGFpbmVyIHsKKyAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgaGVpZ2h0
OiAxMDBweDsKKyAgICAgIHdpZHRoOiA1MDBweDsKKyAgICB9CisgICAgCisgICAgI2JveCB7Cisg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLW5hbWU6IG1vdmU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjog
MnM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNl
OworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgfQorCisgICAgQC13
ZWJraXQta2V5ZnJhbWVzIG1vdmUgeworICAgICAgMCUgICB7CisgICAgICAgIGxlZnQ6IDA7Cisg
ICAgICB9CisgICAgICAxMDAlIHsKKyAgICAgICAgbGVmdDogNDAwcHg7CisgICAgICB9CisgICAg
fQorICAgIAorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10
ZXN0LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwv
c2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgi
PgorCisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbYW5pbWF0aW9uLW5h
bWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNl
XQorICAgICAgWyJtb3ZlIiwgMS4wLCAiYm94IiwgImxlZnQiLCAyMDAsIDIwXSwKKyAgICAgIFsi
bW92ZSIsIDIuMCwgImJveCIsICJsZWZ0IiwgMCwgMjBdLAorCisgICAgICBbIm1vdmUiLCAzLjAs
ICJib3giLCAibGVmdCIsIDIwMCwgMjBdLAorICAgICAgWyJtb3ZlIiwgNC4wLCAiYm94IiwgImxl
ZnQiLCA0MDAsIDIwXSwKKyAgICBdOworICAgIAorICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0
ZWRWYWx1ZXMpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8IS0tIFRlc3QgYW5p
bWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlIC0tPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAg
PGRpdiBpZD0iYm94Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM4MDFkZi4uYzUwOTlhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAyLTA2ICBJZ29yIE9saXZlaXJhICA8aWdvci5v
QHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHJldmVyc2UgYW5pbWF0aW9u
IGRpcmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA1MjUKKworICAgICAgICBJbXBsZW1lbnQgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVy
c2UgZGlyZWN0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2
ZXJzZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25EaXJlY3Rpb24pOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6
Om1hcEFuaW1hdGlvbkRpcmVjdGlvbik6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW46CisgICAgICAgICogcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0QW5pbWF0aW9uOjpkaXJlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvV2ViS2l0QW5p
bWF0aW9uLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpmcmFjdGlvbmFsVGltZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oOgorICAgICAgICAoQW5pbWF0aW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFJldmVy
c2VBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVkQW5pbWF0aW9u
VmFsdWUpOgorCiAyMDEyLTAyLTA1ICBBbmRyZWFzIEtsaW5nICA8YXdlc29tZWtsaW5nQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgbWFwcGVkIHZzIG5vbi1tYXBwZWQgYXR0cmlidXRlIGRp
c3RpbmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxMWFjOWNmLi5jM2QyNTY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMzM3Niw3ICszMzc2LDcgQEAgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkRlbGF5KCkKIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25EaXJlY3Rpb24oKQogewogICAg
IENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7Ci0gICAgaWYg
KHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBbHRl
cm5hdGUpCisgICAgaWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCB2YWx1ZS0+aWQg
PT0gQ1NTVmFsdWVBbHRlcm5hdGUgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVlUmV2ZXJzZSB8fCB2
YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBbHRlcm5hdGVSZXZlcnNlKQogICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS0+aWQpOwogICAgIHJldHVy
biAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDg2YjBh
YzMuLjVkZTVmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAg
LTQyODYsNyArNDI4NiwyMCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEFuaW1hdGlvbkRp
cmVjdGlvbihBbmltYXRpb24qIGxheWVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotICAgIGxheWVyLT5zZXREaXJlY3Rpb24ocHJp
bWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBbHRlcm5hdGUgPyBBbmltYXRpb246
OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSA6IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uTm9ybWFsKTsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7Cisg
ICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAgICAgbGF5ZXItPnNldERpcmVjdGlvbihBbmlt
YXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVBbHRlcm5hdGU6CisgICAgICAgIGxheWVyLT5zZXREaXJlY3Rpb24oQW5pbWF0
aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGUpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlUmV2ZXJzZToKKyAgICAgICAgbGF5ZXItPnNldERpcmVjdGlvbihBbmltYXRp
b246OkFuaW1hdGlvbkRpcmVjdGlvblJldmVyc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlQWx0ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgbGF5ZXItPnNldERpcmVjdGlvbihB
bmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UpOworICAgICAgICBi
cmVhazsKKyAgICB9CiB9CiAKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFwQW5pbWF0aW9uRHVy
YXRpb24oQW5pbWF0aW9uKiBhbmltYXRpb24sIENTU1ZhbHVlKiB2YWx1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggZmQxMDUyOC4uODdmODcxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTcwMyw2ICs3MDMsOCBAQCBsaW5lcwog
Ly8KIC8vIGFsdGVybmF0ZQogCithbHRlcm5hdGUtcmV2ZXJzZQorCiAvLwogLy8gQ1NTX1BST1Bf
X1dFQktJVF9BTklNQVRJT05fRklMTF9NT0RFCiAvLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRB
bmltYXRpb24uY3BwCmluZGV4IGI3NTdkMjMuLjk4ZTc3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1dlYktpdEFuaW1hdGlvbi5jcHAKQEAgLTg0LDkgKzg0LDE4IEBAIGJvb2wgV2ViS2l0QW5pbWF0
aW9uOjplbmRlZCgpIGNvbnN0CiAKIFdlYktpdEFuaW1hdGlvbjo6RGlyZWN0aW9uIFdlYktpdEFu
aW1hdGlvbjo6ZGlyZWN0aW9uKCkgY29uc3QKIHsKLSAgICBpZiAobV9rZXlmcmFtZUFuaW1hdGlv
bi0+YW5pbWF0aW9uKCktPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uTm9ybWFsKQorICAgIHN3aXRjaCAobV9rZXlmcmFtZUFuaW1hdGlvbi0+YW5pbWF0aW9uKCkt
PmRpcmVjdGlvbigpKSB7CisgICAgY2FzZSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbk5v
cm1hbDoKICAgICAgICAgcmV0dXJuIERJUkVDVElPTl9OT1JNQUw7Ci0gICAgcmV0dXJuIERJUkVD
VElPTl9BTFRFUk5BVEU7CisgICAgY2FzZSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFs
dGVybmF0ZToKKyAgICAgICAgcmV0dXJuIERJUkVDVElPTl9BTFRFUk5BVEU7CisgICAgY2FzZSBB
bmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvblJldmVyc2U6CisgICAgICAgIHJldHVybiBESVJF
Q1RJT05fUkVWRVJTRTsKKyAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlUmV2ZXJzZToKKyAgICAgICAgcmV0dXJuIERJUkVDVElPTl9BTFRFUk5BVEVfUkVWRVJT
RTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIERJUkVDVElP
Tl9OT1JNQUw7CiB9CiAKIFdlYktpdEFuaW1hdGlvbjo6RmlsbE1vZGUgV2ViS2l0QW5pbWF0aW9u
OjpmaWxsTW9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktp
dEFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaAppbmRl
eCA2YmVhMWU1Li5iZWY3NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktp
dEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmgK
QEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIGJvb2wgZW5kZWQoKSBjb25zdDsKIAogICAg
IC8vIGRpcmVjdGlvbgotICAgIGVudW0gRGlyZWN0aW9uIHsgRElSRUNUSU9OX05PUk1BTCwgRElS
RUNUSU9OX0FMVEVSTkFURSB9OworICAgIGVudW0gRGlyZWN0aW9uIHsgRElSRUNUSU9OX05PUk1B
TCwgRElSRUNUSU9OX0FMVEVSTkFURSwgRElSRUNUSU9OX1JFVkVSU0UsIERJUkVDVElPTl9BTFRF
Uk5BVEVfUkVWRVJTRSB9OwogICAgIERpcmVjdGlvbiBkaXJlY3Rpb24oKSBjb25zdDsKIAogICAg
IC8vIGZpbGwgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRp
b25CYXNlLmNwcAppbmRleCBlM2FkOTJmLi40ZmQwNDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtMTY3Myw3ICsxNjczLDkgQEAg
ZG91YmxlIEFuaW1hdGlvbkJhc2U6OmZyYWN0aW9uYWxUaW1lKGRvdWJsZSBzY2FsZSwgZG91Ymxl
IGVsYXBzZWRUaW1lLCBkb3VibGUgb2YKICAgICAgICAgaW50ZWdyYWxUaW1lID0gbWluKGludGVn
cmFsVGltZSwgbV9hbmltYXRpb24tPml0ZXJhdGlvbkNvdW50KCkgLSAxKTsKICAgICBmcmFjdGlv
bmFsVGltZSAtPSBpbnRlZ3JhbFRpbWU7CiAKLSAgICBpZiAoKG1fYW5pbWF0aW9uLT5kaXJlY3Rp
b24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSkgJiYgKGludGVn
cmFsVGltZSAmIDEpKQorICAgIGlmICgoKG1fYW5pbWF0aW9uLT5kaXJlY3Rpb24oKSA9PSBBbmlt
YXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSkgJiYgKGludGVncmFsVGltZSAmIDEp
KQorICAgICAgICB8fCAoKG1fYW5pbWF0aW9uLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFu
aW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UpICYmICEoaW50ZWdyYWxUaW1lICYgMSkp
CisgICAgICAgIHx8IG1fYW5pbWF0aW9uLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1h
dGlvbkRpcmVjdGlvblJldmVyc2UpCiAgICAgICAgIGZyYWN0aW9uYWxUaW1lID0gMSAtIGZyYWN0
aW9uYWxUaW1lOwogCiAgICAgaWYgKHNjYWxlICE9IDEgfHwgb2Zmc2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCmluZGV4IDBhNWY0ZDIuLjE3NWQ5
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgK
QEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QW5pbWF0
aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKTsgfQogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEFuaW1hdGlvbj4gY3JlYXRlKGNvbnN0IEFuaW1hdGlvbiogbykgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IEFuaW1hdGlvbigqbykpOyB9Ci0gICAgCisKICAgICBib29sIGlz
RGVsYXlTZXQoKSBjb25zdCB7IHJldHVybiBtX2RlbGF5U2V0OyB9CiAgICAgYm9vbCBpc0RpcmVj
dGlvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uU2V0OyB9CiAgICAgYm9vbCBpc0R1
cmF0aW9uU2V0KCkgY29uc3QgeyByZXR1cm4gbV9kdXJhdGlvblNldDsgfQpAQCAtOTYsNyArOTYs
MTIgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGRlbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kZWxh
eTsgfQogCi0gICAgZW51bSBBbmltYXRpb25EaXJlY3Rpb24geyBBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWwsIEFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSB9OworICAgIGVudW0gQW5pbWF0aW9u
RGlyZWN0aW9uIHsKKyAgICAgICAgQW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsLAorICAgICAgICBB
bmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGUsCisgICAgICAgIEFuaW1hdGlvbkRpcmVjdGlvblJl
dmVyc2UsCisgICAgICAgIEFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UKKyAgICB9
OwogICAgIEFuaW1hdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxBbmltYXRpb25EaXJlY3Rpb24+KG1fZGlyZWN0aW9uKTsgfQogCiAgICAgdW5zaWdu
ZWQgZmlsbE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxNb2RlOyB9CkBAIC0xNDQsNyArMTQ5
LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kZWxheTsKICAgICBkb3VibGUgbV9kdXJhdGlv
bjsKICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IG1fdGltaW5nRnVuY3Rpb247Ci0gICAgdW5z
aWduZWQgbV9kaXJlY3Rpb24gOiAxOyAvLyBBbmltYXRpb25EaXJlY3Rpb24KKyAgICB1bnNpZ25l
ZCBtX2RpcmVjdGlvbiA6IDI7IC8vIEFuaW1hdGlvbkRpcmVjdGlvbgogICAgIHVuc2lnbmVkIG1f
ZmlsbE1vZGUgOiAyOwogCiAgICAgdW5zaWduZWQgbV9wbGF5U3RhdGUgICAgIDogMjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmNwcAppbmRleCAwOTcxNGQ5Li4wYTJlNGJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJBbmltYXRpb24uY3BwCkBAIC0yNiw3ICsyNiwxOCBAQAogI2lm
IFVTRShURVhUVVJFX01BUFBFUikKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGRvdWJs
ZSBub3JtYWxpemVkQW5pbWF0aW9uVmFsdWUoZG91YmxlIHJ1bm5pbmdUaW1lLCBkb3VibGUgZHVy
YXRpb24sIGJvb2wgYWx0ZXJuYXRlKQorCitzdGF0aWMgYm9vbCBzaG91bGRSZXZlcnNlQW5pbWF0
aW9uVmFsdWUoQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBpbnQgbG9v
cENvdW50KQoreworICAgIGlmICgoKGRpcmVjdGlvbiA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRp
cmVjdGlvbkFsdGVybmF0ZSkgJiYgKGxvb3BDb3VudCAmIDEpKQorICAgICAgICB8fCAoKGRpcmVj
dGlvbiA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UpICYm
ICEobG9vcENvdW50ICYgMSkpCisgICAgICAgIHx8IGRpcmVjdGlvbiA9PSBBbmltYXRpb246OkFu
aW1hdGlvbkRpcmVjdGlvblJldmVyc2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biBmYWxzZTsKKworfQorCitzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZWRBbmltYXRpb25WYWx1ZShk
b3VibGUgcnVubmluZ1RpbWUsIGRvdWJsZSBkdXJhdGlvbiwgQW5pbWF0aW9uOjpBbmltYXRpb25E
aXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIGlmICghZHVyYXRpb24pCiAgICAgICAgIHJldHVy
biAwOwpAQCAtMzUsNyArNDYsOCBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZWRBbmltYXRpb25W
YWx1ZShkb3VibGUgcnVubmluZ1RpbWUsIGRvdWJsZSBkdXJhdGlvbiwgYm9vbAogICAgIGNvbnN0
IGRvdWJsZSBsYXN0RnVsbExvb3AgPSBkdXJhdGlvbiAqIGRvdWJsZShsb29wQ291bnQpOwogICAg
IGNvbnN0IGRvdWJsZSByZW1haW5kZXIgPSBydW5uaW5nVGltZSAtIGxhc3RGdWxsTG9vcDsKICAg
ICBjb25zdCBkb3VibGUgbm9ybWFsaXplZCA9IHJlbWFpbmRlciAvIGR1cmF0aW9uOwotICAgIHJl
dHVybiAobG9vcENvdW50ICUgMiAmJiBhbHRlcm5hdGUpID8gKDEgLSBub3JtYWxpemVkKSA6IG5v
cm1hbGl6ZWQ7CisKKyAgICByZXR1cm4gc2hvdWxkUmV2ZXJzZUFuaW1hdGlvblZhbHVlKGRpcmVj
dGlvbiwgbG9vcENvdW50KSA/IDEgLSBub3JtYWxpemVkIDogbm9ybWFsaXplZDsKIH0KIAogc3Rh
dGljIGZsb2F0IGFwcGx5T3BhY2l0eUFuaW1hdGlvbihmbG9hdCBmcm9tT3BhY2l0eSwgZmxvYXQg
dG9PcGFjaXR5LCBkb3VibGUgcHJvZ3Jlc3MpCi0tIAoxLjcuNS40Cgo=
</data>
<flag name="review"
          id="127504"
          type_id="1"
          status="-"
          setter="dino"
    />
    <flag name="commit-queue"
          id="127505"
          type_id="3"
          status="-"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126129</attachid>
            <date>2012-02-08 12:02:03 -0800</date>
            <delta_ts>2012-02-08 18:07:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Implement-reverse-animation-direction.patch</filename>
            <type>text/plain</type>
            <size>22265</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBkMGYzMDRlNjc5YTdjNjEyMDZkYzMzYzVkNDdhNGU2MjJhZTBhYmZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNv
bT4KRGF0ZTogU3VuLCA1IEZlYiAyMDEyIDEzOjA4OjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SW1wbGVtZW50IHJldmVyc2UgYW5pbWF0aW9uIGRpcmVjdGlvbgoKLS0tCiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysrCiAuLi5tYXRp
b24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZlcnNlLWV4cGVjdGVkLnR4dCB8ICAgIDUgKwogLi4u
L2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UuaHRtbCAgICAgfCAgIDYxICsr
KysrKysrKwogLi4uL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1leHBlY3RlZC50eHQgICAg
ICAgfCAgICA0ICsKIC4uLi9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS5o
dG1sICAgIHwgICA1OSArKysrKysrKysKIC4uLi9hbmltYXRpb25zL2ZpbGwtbW9kZS1yZXZlcnNl
LWV4cGVjdGVkLnR4dCAgICAgIHwgICAxNyArKysKIExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmls
bC1tb2RlLXJldmVyc2UuaHRtbCAgICAgIHwgIDEzMSArKysrKysrKysrKysrKysrKysrKwogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMyICsr
KysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCAgICAgICAgICAgICAgICAgICB8
ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCAgICAgICAg
ICAgIHwgICAxNSArKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluICAg
ICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5j
cHAgICAgICAgICAgICB8ICAgMTMgKystCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1h
dGlvbi5oICAgICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkJhc2UuY3BwICAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oICAgICAgfCAgIDExICsrLQogLi4uL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyQW5pbWF0aW9uLmNwcCAgICAgfCAgIDE1ICsrLQogMTYgZmlsZXMg
Y2hhbmdlZCwgMzc4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5h
dGUtcmV2ZXJzZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UuaHRtbAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlv
bi1yZXZlcnNlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1yZXZlcnNlLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJl
dmVyc2UuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBjNTc2OTU4Li45NWM0ZjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDItMDggIElnb3IgT2xpdmVpcmEgIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgcmV2ZXJzZSBhbmltYXRpb24gZGlyZWN0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDUyNQorCisgICAgICAg
IEFkZCB0ZXN0IGZvciB0aGUgbmV3IGFuaW1hdGlvbi1kaXJlY3Rpb24gdmFsdWVzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYW5pbWF0aW9ucy9h
bmltYXRpb24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZlcnNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZl
cnNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlv
bi1yZXZlcnNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9u
cy9maWxsLW1vZGUtcmV2ZXJzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1h
dGlvbnMvZmlsbC1tb2RlLXJldmVyc2UuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMDcgIEFiaGlz
aGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCBkdWUgdG8g
Y29sdW1uIHN0eWxlIG5vdCB1cGRhdGVkIG9uIHBvc3QgYmxvY2sKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
YWx0ZXJuYXRlLXJldmVyc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI4MmZhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJldmVyc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBh
dCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMDAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkg
Zm9yICJib3giIGVsZW1lbnQgYXQgMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMAorUEFTUyAt
ICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAzcyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiAyMDAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQg
NHMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLWFsdGVybmF0ZS1yZXZl
cnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZhMTYxMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlv
bi1hbHRlcm5hdGUtcmV2ZXJzZS5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3Jl
ZW4iPgorICAKKyAgICAjY29udGFpbmVyIHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
IHdpZHRoOiA1MDBweDsKKyAgICB9CisgICAgCisgICAgI2JveCB7CisgICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6
IG1vdmU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAgICAgLXdlYmtp
dC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
dGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgfQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVz
IG1vdmUgeworICAgICAgMCUgICB7CisgICAgICAgIGxlZnQ6IDA7CisgICAgICB9CisgICAgICAx
MDAlIHsKKyAgICAgICAgbGVmdDogNDAwcHg7CisgICAgICB9CisgICAgfQorICAgIAorICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgorICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorCisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1l
bnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWyJtb3Zl
IiwgMS4wLCAiYm94IiwgImxlZnQiLCAyMDAsIDIwXSwKKyAgICAgIFsibW92ZSIsIDIuMCwgImJv
eCIsICJsZWZ0IiwgMCwgMjBdLAorCisgICAgICBbIm1vdmUiLCAzLjAsICJib3giLCAibGVmdCIs
IDIwMCwgMjBdLAorICAgICAgWyJtb3ZlIiwgNC4wLCAiYm94IiwgImxlZnQiLCA0MDAsIDIwXSwK
KyAgICBdOworICAgIAorICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8IS0tIFRlc3QgYW5pbWF0aW9uLWRpcmVjdGlv
bjogYWx0ZXJuYXRlLXJldmVyc2UgLS0+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlk
PSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1yZXZlcnNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MzY4MWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94
IiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxNTAsMAor
UEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDFz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTAwLDAKK1BBU1MgLSAid2Via2l0VHJh
bnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAyLjVzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDEsMCwwLDEsMjAwLDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTc1NWQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLmh0bWwKQEAgLTAsMCArMSw1
OSBAQAorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKyAgPHRpdGxlPlRl
c3Qgb2YgLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZTwvdGl0bGU+CisgIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7
CisgICAgfQorCisgICAgI2JveCB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBs
ZWZ0OiAwcHg7CisgICAgICB0b3A6IDEwMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIG1hcmdp
bjogMDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsKKyAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTog
Im1vdmUxIjsKKyAgICB9CisgICAgQC13ZWJraXQta2V5ZnJhbWVzICJtb3ZlMSIgeworICAgICAg
ZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH0KKyAgICAgIHRvICAg
eyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7IH0KKyAgICB9CisgICAgI3Jl
c3VsdCB7CisgICAgICBjb2xvcjogd2hpdGU7IC8qIGhpZGUgZnJvbSBwaXhlbCByZXN1bHRzICov
CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10
ZXN0LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwv
c2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgi
PgorICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1l
LCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0K
KyAgICAgIFsibW92ZTEiLCAwLjUsICJib3giLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEs
IDE1MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDEuMCwgImJveCIsICJ3ZWJraXRUcmFuc2Zv
cm0iLCBbMSwwLDAsMSwxMDAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTEiLCAyLjUsICJib3giLCAi
d2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDIwMCwwXSwgMjBdLAorICAgIF07CisKKyAgICBm
dW5jdGlvbiBwYXVzZUFuaW1hdGlvbigpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYm94Iikuc3R5bGUud2Via2l0QW5pbWF0aW9uUGxheVN0YXRlID0gInBhdXNlZCI7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0VGltZXJzKCkKKyAgICB7CisgICAgICAgIHNldFRp
bWVvdXQocGF1c2VBbmltYXRpb24sIDI1MDApOworICAgIH0KKworICAgIHJ1bkFuaW1hdGlvblRl
c3QoZXhwZWN0ZWRWYWx1ZXMsIHNldFRpbWVycywgbnVsbCwgdHJ1ZSk7CisKKyAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveCI+PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1yZXZlcnNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvZmlsbC1tb2RlLXJldmVyc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyZTNjNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1yZXZlcnNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRoZSBsZWZ0IHByb3Bl
cnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEg
c2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRlbGF5LiBJdCB0YWtlcyBzbmFwc2hvdHMgYXQgZG9j
dW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLgorTm9uZQorQmFja3dhcmRz
CitGb3J3YXJkcworQm90aAorQm90aCBpdGVyYXRpbmcKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRp
b24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0gc3RhcnQgb2YgYW5p
bWF0aW9uIC0gaWQ6IGIgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IDMwMAorUEFTUyAtIHN0YXJ0IG9m
IGFuaW1hdGlvbiAtIGlkOiBjIGV4cGVjdGVkOiAxMDAgYWN0dWFsOiAxMDAKK1BBU1MgLSBzdGFy
dCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDogMzAwIGFjdHVhbDogMzAwCitQQVNTIC0g
c3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGUgZXhwZWN0ZWQ6IDIwMCBhY3R1YWw6IDIwMAorUEFT
UyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQ
QVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAxMDAgYWN0dWFsOiAxMDAK
K1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGMgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IDMw
MAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDogMzAwIGFjdHVhbDog
MzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBlIGV4cGVjdGVkOiAyMDAgYWN0dWFs
OiAyMDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtcmV2
ZXJzZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLW1vZGUtcmV2ZXJzZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkOGY0NjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtbW9kZS1yZXZlcnNlLmh0bWwKQEAg
LTAsMCArMSwxMzEgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9v
c2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKyAgPHRp
dGxlPlRlc3Qgc2ltcGxlIGFuaW1hdGlvbiB3aXRoIGZpbGwgbW9kZXM8L3RpdGxlPgorICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgcG9z
aXRpb246IHJlbGF0aXZlOworICAgICAgbGVmdDogMTAwcHg7CisgICAgICB0b3A6IDEwcHg7Cisg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZGVsYXk6IDAuMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjog
MnM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGFuaW07CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb246IHJldmVyc2UKKyAgICB9CisgICAgQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0g
eworICAgICAgICBmcm9tIHsgbGVmdDogMjAwcHg7IH0KKyAgICAgICAgdG8gICB7IGxlZnQ6IDMw
MHB4OyB9CisgICAgfQorICAgICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cisg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IG5vbmU7CisgICAgfQorICAgICNiIHsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZp
bGwtbW9kZTogYmFja3dhcmRzOworICAgIH0KKyAgICAjYyB7CisgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7
CisgICAgfQorICAgICNkIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKKyAgICB9CisgICAgI2UgeworICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwt
bW9kZTogYm90aDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsK
KyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIH0KKyAg
PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04
Ij4KKyAgICBjb25zdCBudW1BbmltcyA9IDU7CisgICAgdmFyIGFuaW1zRmluaXNoZWQgPSAwOwor
ICAgIGNvbnN0IGFsbG93YW5jZSA9IDU7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisg
ICAgICB7aWQ6ICJhIiwgc3RhcnQ6IDEwMCwgZW5kOiAxMDB9LAorICAgICAge2lkOiAiYiIsIHN0
YXJ0OiAzMDAsIGVuZDogMTAwfSwKKyAgICAgIHtpZDogImMiLCBzdGFydDogMTAwLCBlbmQ6IDMw
MH0sCisgICAgICB7aWQ6ICJkIiwgc3RhcnQ6IDMwMCwgZW5kOiAzMDB9LAorICAgICAge2lkOiAi
ZSIsIHN0YXJ0OiAyMDAsIGVuZDogMjAwfQorICAgIF07CisgICAgdmFyIHJlc3VsdCA9ICIiOwor
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhbmltYXRpb25FbmRlZChl
dmVudCkgeworICAgICAgICBpZiAoKythbmltc0ZpbmlzaGVkID09IG51bUFuaW1zKSB7CisgICAg
ICAgICAgICBzZXRUaW1lb3V0KGVuZFRlc3QsIDApOyAvLyB0aGlzIHNldCB0aW1lb3V0IHNob3Vs
ZCBiZSBvayBpbiB0aGUgdGVzdCBlbnZpcm9ubWVudAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gc2luY2Ugd2UncmUganVzdCBnaXZpbmcgc3R5bGUgYSBjaGFuY2UgdG8g
cmVzb2x2ZQorICAgICAgICB9CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7CisK
KyAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4cGVjdGVkVmFs
dWVzW2ldLmlkKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1
ZXNbaV0uZW5kOworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCJsZWZ0IikuZ2V0RmxvYXRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKTsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyhleHBl
Y3RlZFZhbHVlIC0gcmVhbFZhbHVlKSA8IGFsbG93YW5jZSkgeworICAgICAgICAgICAgICByZXN1
bHQgKz0gIlBBU1MiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgcmVzdWx0
ICs9ICJGQUlMIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCArPSAiIC0gZW5k
IG9mIGFuaW1hdGlvbiAtIGlkOiAiICsgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVk
OiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYWN0dWFsOiAiICsgcmVhbFZhbHVlICsgIjxicj4iOwor
ICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5l
ckhUTUwgPSByZXN1bHQ7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9
CisKKyAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICBmb3IgKHZhciBp
PTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOworICAgICAg
ICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5zdGFydDsKKyAgICAg
ICAgICAgIHZhciByZWFsVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJv
cGVydHlDU1NWYWx1ZSgibGVmdCIpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NT
X05VTUJFUik7CisgICAgICAgICAgICBpZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxW
YWx1ZSkgPCBhbGxvd2FuY2UpIHsKKyAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgKz0gIiAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAt
IGlkOiAiICsgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRW
YWx1ZSArICIgYWN0dWFsOiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9CisgICAg
ICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdEFuaW1hdGlvbkVuZCIsIGFuaW1h
dGlvbkVuZGVkLCBmYWxzZSk7CisgICAgfTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorVGhpcyB0ZXN0IHBlcmZvcm1zIGFuIGFuaW1hdGlvbiBvZiB0aGUgbGVmdCBwcm9wZXJ0eSB3
aXRoIGZvdXIgZGlmZmVyZW50CitmaWxsIG1vZGVzLiBJdCBhbmltYXRlcyBvdmVyIDAuMSBzZWNv
bmQgd2l0aCBhIDAuMSBzZWNvbmQgZGVsYXkuCitJdCB0YWtlcyBzbmFwc2hvdHMgYXQgZG9jdW1l
bnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLgorPGRpdiBpZD0iYSIgY2xhc3M9
ImJveCI+CisgIE5vbmUKKzwvZGl2PgorPGRpdiBpZD0iYiIgY2xhc3M9ImJveCI+CisgIEJhY2t3
YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJjIiBjbGFzcz0iYm94Ij4KKyAgRm9yd2FyZHMKKzwvZGl2
PgorPGRpdiBpZD0iZCIgY2xhc3M9ImJveCI+CisgIEJvdGgKKzwvZGl2PgorPGRpdiBpZD0iZSIg
Y2xhc3M9ImJveCI+CisgIEJvdGggaXRlcmF0aW5nCis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMmZmMTg3Li5mMDg1MmQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDItMDggIElnb3IgT2xpdmVpcmEg
IDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgcmV2ZXJzZSBh
bmltYXRpb24gZGlyZWN0aW9uCisKKyAgICAgICAgSW1wbGVtZW50IHJldmVyc2UgYW5pbWF0aW9u
IGRpcmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA1MjUKKworICAgICAgICBJbXBsZW1lbnQgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVy
c2UgZGlyZWN0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzOiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tYWx0ZXJuYXRlLXJl
dmVyc2UuaHRtbAorICAgICAgICAgICAgICAgYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9u
LXJldmVyc2UuaHRtbAorICAgICAgICAgICAgICAgYW5pbWF0aW9ucy9maWxsLW1vZGUtcmV2ZXJz
ZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25EaXJlY3Rpb24pOgorICAgICAgICAqIGNzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6Om1h
cEFuaW1hdGlvbkRpcmVjdGlvbik6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46
CisgICAgICAgICogcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0QW5pbWF0aW9uOjpkaXJlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvV2ViS2l0QW5pbWF0
aW9uLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpmcmFjdGlvbmFsVGltZSk6CisgICAgICAgICog
cGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oOgorICAgICAgICAoQW5pbWF0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFJldmVyc2VB
bmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVkQW5pbWF0aW9uVmFs
dWUpOgorCiAyMDEyLTAyLTA3ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgQ3Jhc2ggZHVlIHRvIGNvbHVtbiBzdHlsZSBub3QgdXBkYXRlZCBvbiBwb3N0
IGJsb2NrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDExYWM5Y2YuLmMzZDI1NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0zMzc2LDcgKzMzNzYsNyBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uRGVsYXkoKQogUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvbkRpcmVjdGlvbigpCiB7CiAgICAgQ1NT
UGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKLSAgICBpZiAodmFs
dWUtPmlkID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUFsdGVybmF0
ZSkKKyAgICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlLT5pZCA9PSBD
U1NWYWx1ZUFsdGVybmF0ZSB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVSZXZlcnNlIHx8IHZhbHVl
LT5pZCA9PSBDU1NWYWx1ZUFsdGVybmF0ZVJldmVyc2UpCiAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2woKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCk7CiAgICAgcmV0dXJuIDA7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggODZiMGFjMy4u
NWRlNWYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDI4
Niw3ICs0Mjg2LDIwIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bWFwQW5pbWF0aW9uRGlyZWN0
aW9uKEFuaW1hdGlvbiogbGF5ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0gICAgbGF5ZXItPnNldERpcmVjdGlvbihwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUFsdGVybmF0ZSA/IEFuaW1hdGlvbjo6QW5p
bWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIDogQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWwpOworICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgorICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlv
bjo6QW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
U1NWYWx1ZUFsdGVybmF0ZToKKyAgICAgICAgbGF5ZXItPnNldERpcmVjdGlvbihBbmltYXRpb246
OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1NTVmFsdWVSZXZlcnNlOgorICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6
QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVBbHRlcm5hdGVSZXZlcnNlOgorICAgICAgICBsYXllci0+c2V0RGlyZWN0aW9uKEFuaW1h
dGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KIH0KIAogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBBbmltYXRpb25EdXJhdGlv
bihBbmltYXRpb24qIGFuaW1hdGlvbiwgQ1NTVmFsdWUqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBmZDEwNTI4Li44N2Y4NzFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtNzAzLDYgKzcwMyw4IEBAIGxpbmVzCiAvLwog
Ly8gYWx0ZXJuYXRlCiAKK2FsdGVybmF0ZS1yZXZlcnNlCisKIC8vCiAvLyBDU1NfUFJPUF9fV0VC
S0lUX0FOSU1BVElPTl9GSUxMX01PREUKIC8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1dlYktpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1h
dGlvbi5jcHAKaW5kZXggYjc1N2QyMy4uOThlNzczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9XZWJLaXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2Vi
S2l0QW5pbWF0aW9uLmNwcApAQCAtODQsOSArODQsMTggQEAgYm9vbCBXZWJLaXRBbmltYXRpb246
OmVuZGVkKCkgY29uc3QKIAogV2ViS2l0QW5pbWF0aW9uOjpEaXJlY3Rpb24gV2ViS2l0QW5pbWF0
aW9uOjpkaXJlY3Rpb24oKSBjb25zdAogewotICAgIGlmIChtX2tleWZyYW1lQW5pbWF0aW9uLT5h
bmltYXRpb24oKS0+ZGlyZWN0aW9uKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25O
b3JtYWwpCisgICAgc3dpdGNoIChtX2tleWZyYW1lQW5pbWF0aW9uLT5hbmltYXRpb24oKS0+ZGly
ZWN0aW9uKCkpIHsKKyAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFs
OgogICAgICAgICByZXR1cm4gRElSRUNUSU9OX05PUk1BTDsKLSAgICByZXR1cm4gRElSRUNUSU9O
X0FMVEVSTkFURTsKKyAgICBjYXNlIEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJu
YXRlOgorICAgICAgICByZXR1cm4gRElSRUNUSU9OX0FMVEVSTkFURTsKKyAgICBjYXNlIEFuaW1h
dGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZToKKyAgICAgICAgcmV0dXJuIERJUkVDVElP
Tl9SRVZFUlNFOworICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5h
dGVSZXZlcnNlOgorICAgICAgICByZXR1cm4gRElSRUNUSU9OX0FMVEVSTkFURV9SRVZFUlNFOwor
ICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gRElSRUNUSU9OX05P
Uk1BTDsKIH0KIAogV2ViS2l0QW5pbWF0aW9uOjpGaWxsTW9kZSBXZWJLaXRBbmltYXRpb246OmZp
bGxNb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5p
bWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5oCmluZGV4IDZi
ZWExZTUuLmJlZjc0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5p
bWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0OwogCiAgICAgLy8g
ZGlyZWN0aW9uCi0gICAgZW51bSBEaXJlY3Rpb24geyBESVJFQ1RJT05fTk9STUFMLCBESVJFQ1RJ
T05fQUxURVJOQVRFIH07CisgICAgZW51bSBEaXJlY3Rpb24geyBESVJFQ1RJT05fTk9STUFMLCBE
SVJFQ1RJT05fQUxURVJOQVRFLCBESVJFQ1RJT05fUkVWRVJTRSwgRElSRUNUSU9OX0FMVEVSTkFU
RV9SRVZFUlNFIH07CiAgICAgRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0OwogCiAgICAgLy8g
ZmlsbCBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuY3BwCmluZGV4IGUzYWQ5MmYuLjRmZDA0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC0xNjczLDcgKzE2NzMsOSBAQCBkb3Vi
bGUgQW5pbWF0aW9uQmFzZTo6ZnJhY3Rpb25hbFRpbWUoZG91YmxlIHNjYWxlLCBkb3VibGUgZWxh
cHNlZFRpbWUsIGRvdWJsZSBvZgogICAgICAgICBpbnRlZ3JhbFRpbWUgPSBtaW4oaW50ZWdyYWxU
aW1lLCBtX2FuaW1hdGlvbi0+aXRlcmF0aW9uQ291bnQoKSAtIDEpOwogICAgIGZyYWN0aW9uYWxU
aW1lIC09IGludGVncmFsVGltZTsKIAotICAgIGlmICgobV9hbmltYXRpb24tPmRpcmVjdGlvbigp
ID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKSAmJiAoaW50ZWdyYWxU
aW1lICYgMSkpCisgICAgaWYgKCgobV9hbmltYXRpb24tPmRpcmVjdGlvbigpID09IEFuaW1hdGlv
bjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKSAmJiAoaW50ZWdyYWxUaW1lICYgMSkpCisg
ICAgICAgIHx8ICgobV9hbmltYXRpb24tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0
aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSkgJiYgIShpbnRlZ3JhbFRpbWUgJiAxKSkKKyAg
ICAgICAgfHwgbV9hbmltYXRpb24tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9u
RGlyZWN0aW9uUmV2ZXJzZSkKICAgICAgICAgZnJhY3Rpb25hbFRpbWUgPSAxIC0gZnJhY3Rpb25h
bFRpbWU7CiAKICAgICBpZiAoc2NhbGUgIT0gMSB8fCBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKaW5kZXggMGE1ZjRkMi4uMTc1ZDk1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAt
NDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBbmltYXRpb24+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBbmltYXRpb24pOyB9CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QW5pbWF0aW9uPiBjcmVhdGUoY29uc3QgQW5pbWF0aW9uKiBvKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQW5pbWF0aW9uKCpvKSk7IH0KLSAgICAKKwogICAgIGJvb2wgaXNEZWxh
eVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsYXlTZXQ7IH0KICAgICBib29sIGlzRGlyZWN0aW9u
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb25TZXQ7IH0KICAgICBib29sIGlzRHVyYXRp
b25TZXQoKSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uU2V0OyB9CkBAIC05Niw3ICs5NiwxMiBA
QCBwdWJsaWM6CiAKICAgICBkb3VibGUgZGVsYXkoKSBjb25zdCB7IHJldHVybiBtX2RlbGF5OyB9
CiAKLSAgICBlbnVtIEFuaW1hdGlvbkRpcmVjdGlvbiB7IEFuaW1hdGlvbkRpcmVjdGlvbk5vcm1h
bCwgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIH07CisgICAgZW51bSBBbmltYXRpb25EaXJl
Y3Rpb24geworICAgICAgICBBbmltYXRpb25EaXJlY3Rpb25Ob3JtYWwsCisgICAgICAgIEFuaW1h
dGlvbkRpcmVjdGlvbkFsdGVybmF0ZSwKKyAgICAgICAgQW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJz
ZSwKKyAgICAgICAgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZQorICAgIH07CiAg
ICAgQW5pbWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PEFuaW1hdGlvbkRpcmVjdGlvbj4obV9kaXJlY3Rpb24pOyB9CiAKICAgICB1bnNpZ25lZCBm
aWxsTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbE1vZGU7IH0KQEAgLTE0NCw3ICsxNDksNyBA
QCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2RlbGF5OwogICAgIGRvdWJsZSBtX2R1cmF0aW9uOwog
ICAgIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4gbV90aW1pbmdGdW5jdGlvbjsKLSAgICB1bnNpZ25l
ZCBtX2RpcmVjdGlvbiA6IDE7IC8vIEFuaW1hdGlvbkRpcmVjdGlvbgorICAgIHVuc2lnbmVkIG1f
ZGlyZWN0aW9uIDogMjsgLy8gQW5pbWF0aW9uRGlyZWN0aW9uCiAgICAgdW5zaWduZWQgbV9maWxs
TW9kZSA6IDI7CiAKICAgICB1bnNpZ25lZCBtX3BsYXlTdGF0ZSAgICAgOiAyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJBbmltYXRpb24uY3BwCmluZGV4IDA5NzE0ZDkuLjZiZTUxOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckFuaW1hdGlvbi5jcHAKQEAgLTI2LDcgKzI2LDE3IEBACiAjaWYgVVNF
KFRFWFRVUkVfTUFQUEVSKQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgZG91YmxlIG5v
cm1hbGl6ZWRBbmltYXRpb25WYWx1ZShkb3VibGUgcnVubmluZ1RpbWUsIGRvdWJsZSBkdXJhdGlv
biwgYm9vbCBhbHRlcm5hdGUpCisKK3N0YXRpYyBib29sIHNob3VsZFJldmVyc2VBbmltYXRpb25W
YWx1ZShBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIGludCBsb29wQ291
bnQpCit7CisgICAgaWYgKCgoZGlyZWN0aW9uID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uQWx0ZXJuYXRlKSAmJiAobG9vcENvdW50ICYgMSkpCisgICAgICAgIHx8ICgoZGlyZWN0aW9u
ID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSkgJiYgIShs
b29wQ291bnQgJiAxKSkKKyAgICAgICAgfHwgZGlyZWN0aW9uID09IEFuaW1hdGlvbjo6QW5pbWF0
aW9uRGlyZWN0aW9uUmV2ZXJzZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZWRBbmltYXRpb25WYWx1ZShkb3VibGUg
cnVubmluZ1RpbWUsIGRvdWJsZSBkdXJhdGlvbiwgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rp
b24gZGlyZWN0aW9uKQogewogICAgIGlmICghZHVyYXRpb24pCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMzUsNyArNDUsOCBAQCBzdGF0aWMgZG91YmxlIG5vcm1hbGl6ZWRBbmltYXRpb25WYWx1ZShk
b3VibGUgcnVubmluZ1RpbWUsIGRvdWJsZSBkdXJhdGlvbiwgYm9vbAogICAgIGNvbnN0IGRvdWJs
ZSBsYXN0RnVsbExvb3AgPSBkdXJhdGlvbiAqIGRvdWJsZShsb29wQ291bnQpOwogICAgIGNvbnN0
IGRvdWJsZSByZW1haW5kZXIgPSBydW5uaW5nVGltZSAtIGxhc3RGdWxsTG9vcDsKICAgICBjb25z
dCBkb3VibGUgbm9ybWFsaXplZCA9IHJlbWFpbmRlciAvIGR1cmF0aW9uOwotICAgIHJldHVybiAo
bG9vcENvdW50ICUgMiAmJiBhbHRlcm5hdGUpID8gKDEgLSBub3JtYWxpemVkKSA6IG5vcm1hbGl6
ZWQ7CisKKyAgICByZXR1cm4gc2hvdWxkUmV2ZXJzZUFuaW1hdGlvblZhbHVlKGRpcmVjdGlvbiwg
bG9vcENvdW50KSA/IDEgLSBub3JtYWxpemVkIDogbm9ybWFsaXplZDsKIH0KIAogc3RhdGljIGZs
b2F0IGFwcGx5T3BhY2l0eUFuaW1hdGlvbihmbG9hdCBmcm9tT3BhY2l0eSwgZmxvYXQgdG9PcGFj
aXR5LCBkb3VibGUgcHJvZ3Jlc3MpCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>