<?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>77662</bug_id>
          
          <creation_ts>2012-02-02 11:38:08 -0800</creation_ts>
          <short_desc>[chromium] Add impl-thread support for fill-mode and direction css animation properties</short_desc>
          <delta_ts>2012-05-09 13:26:22 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77646</dependson>
    
    <dependson>79819</dependson>
          <blocked>85813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>vollick</reporter>
          <assigned_to>vollick</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>548021</commentid>
    <comment_count>0</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-02-02 11:38:08 -0800</bug_when>
    <thetext>There are css animation properties that aren’t yet supported by the cc-thread animation code. If we detect an unsupported feature, it is possible to return false in GraphicsLayer::addAnimation to revert to the usual, main-thread animation code, but we should support most/all css animation properties. Specifically: animation-direction, animation-delay, animation-timing-function, and animation-fill-mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580053</commentid>
    <comment_count>1</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-03-15 19:49:33 -0700</bug_when>
    <thetext>This should not block turning the feature on by default, since we gracefully degrade.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594602</commentid>
    <comment_count>2</comment_count>
      <attachid>135354</attachid>
    <who name="">vollick</who>
    <bug_when>2012-04-03 10:23:15 -0700</bug_when>
    <thetext>Created attachment 135354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594658</commentid>
    <comment_count>3</comment_count>
      <attachid>135354</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-03 11:15:01 -0700</bug_when>
    <thetext>Comment on attachment 135354
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [chromium] Add impl-thread support for all css animation properties.

I think &quot;all&quot; is a bit ambitious. Can you say specifically what this patch is adding support for?

&gt; Source/WebKit/chromium/src/TextFieldDecoratorImpl.cpp:36
&gt; +#include &quot;Image.h&quot;

this looks unrelated

&gt; Source/WebKit/chromium/tests/CCActiveAnimationTest.cpp:72
&gt; +TEST(CCActiveAnimationTest, TrimTimeAlternating)

is this sufficient test coverage?  should we have some tests for reverse as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619509</commentid>
    <comment_count>4</comment_count>
      <attachid>140950</attachid>
    <who name="">vollick</who>
    <bug_when>2012-05-09 08:25:10 -0700</bug_when>
    <thetext>Created attachment 140950
Patch

(In reply to comment #3)
&gt; (From update of attachment 135354 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=135354&amp;action=review
&gt;
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        [chromium] Add impl-thread support for all css animation properties.
&gt;
&gt; I think &quot;all&quot; is a bit ambitious. Can you say specifically what this patch is adding support for?
Done.
&gt;
&gt; &gt; Source/WebKit/chromium/src/TextFieldDecoratorImpl.cpp:36
&gt; &gt; +#include &quot;Image.h&quot;
&gt;
&gt; this looks unrelated
Removed.
&gt;
&gt; &gt; Source/WebKit/chromium/tests/CCActiveAnimationTest.cpp:72
&gt; &gt; +TEST(CCActiveAnimationTest, TrimTimeAlternating)
&gt;
&gt; is this sufficient test coverage?  should we have some tests for reverse as well?
It isn&apos;t. Added tests to cover reverse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619695</commentid>
    <comment_count>5</comment_count>
      <attachid>140950</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-05-09 11:47:35 -0700</bug_when>
    <thetext>Comment on attachment 140950
Patch

Cool, R=me. Thanks for the extra tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619779</commentid>
    <comment_count>6</comment_count>
      <attachid>140950</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-09 13:26:18 -0700</bug_when>
    <thetext>Comment on attachment 140950
Patch

Clearing flags on attachment: 140950

Committed r116554: &lt;http://trac.webkit.org/changeset/116554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619780</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-09 13:26:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135354</attachid>
            <date>2012-04-03 10:23:15 -0700</date>
            <delta_ts>2012-05-09 08:25:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77662-20120403132314.patch</filename>
            <type>text/plain</type>
            <size>10700</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU0MWJhNjc1YTkzOWMz
YmIyMTBkNmI5M2FkMjRlZDIzOTExOGE0ZC4uYjc2MjdmYTMzNGYzYWRkMzNjM2NlNDIyMDE1MzZk
ZGE3MzdiM2FhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA0LTAzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGltcGwtdGhyZWFkIHN1cHBvcnQgZm9yIGFsbCBjc3MgYW5pbWF0aW9uIHByb3BlcnRpZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY2MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgc3VwcG9y
dCBmb3IgZmlsbCBtb2RlIGFuZCBhbmltYXRpb24gZGlyZWN0aW9uLgorCisgICAgICAgIFRlc3Rl
ZCBpbiBDQ0FjdGl2ZUFuaW1hdGlvblRlc3QuVHJpbVRpbWVBbHRlcm5hdGluZy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFuaW1hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6dHJpbVRpbWVUb0N1cnJlbnRJ
dGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246OmNsb25lRm9y
SW1wbFRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NB
Y3RpdmVBbmltYXRpb24uaDoKKyAgICAgICAgKENDQWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjphbHRlcm5hdGVzRGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpzZXRBbHRlcm5hdGVzRGlyZWN0aW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlci5jcHA6CisKIDIwMTItMDQtMDMgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENhbGwgaW5jcmVtZW50U3RhdHNDb3VudGVyIGRpcmVjdGx5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDhhNDQzMjkxMDQ3YWQxNWNiZDkzZDE2YTNh
OTU0ZTY4OWJhYWExY2UuLjM3NTE3MWQwMWI0YWJkYjJiMjhmNmQzMTRjMmQzZTdlMzQ0ODU5ZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQtMDMg
IElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVt
XSBBZGQgaW1wbC10aHJlYWQgc3VwcG9ydCBmb3IgYWxsIGNzcyBhbmltYXRpb24gcHJvcGVydGll
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjYy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMv
VGV4dEZpZWxkRGVjb3JhdG9ySW1wbC5jcHA6CisgICAgICAgICogdGVzdHMvQ0NBY3RpdmVBbmlt
YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29y
ZSk6CisKIDIwMTItMDQtMDMgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIENhbGwgaW5jcmVtZW50U3RhdHNDb3VudGVyIGRpcmVjdGx5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFu
aW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKaW5kZXggMjYwZDdkNDdlM2IzMWI2MmY1OWIxZGE4MDYw
YWNkNWI3ODczNzJhYy4uOGExZmI0OGFkN2UyMjQ4NDYyNDQ5NWJjZWFkZDQ3ZjY3NGU0YWZhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NBY3RpdmVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcApAQCAtNDUsNiArNDUsNyBAQCBD
Q0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVBbmltYXRpb24oUGFzc093blB0cjxDQ0FuaW1hdGlv
bkN1cnZlPiBjdXJ2ZSwgaW50IGFuaQogICAgICwgbV9ydW5TdGF0ZShXYWl0aW5nRm9yVGFyZ2V0
QXZhaWxhYmlsaXR5KQogICAgICwgbV9pdGVyYXRpb25zKDEpCiAgICAgLCBtX3N0YXJ0VGltZSgw
KQorICAgICwgbV9hbHRlcm5hdGVzRGlyZWN0aW9uKGZhbHNlKQogICAgICwgbV9uZWVkc1N5bmNo
cm9uaXplZFN0YXJ0VGltZShmYWxzZSkKICAgICAsIG1fcGF1c2VUaW1lKDApCiAgICAgLCBtX3Rv
dGFsUGF1c2VkVGltZSgwKQpAQCAtMTE0LDExICsxMTUsMjMgQEAgZG91YmxlIENDQWN0aXZlQW5p
bWF0aW9uOjp0cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbm93KSBjb25zdAogICAg
ICAgICByZXR1cm4gdHJpbW1lZDsKIAogICAgIC8vIElmIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0
byB0aGUgdG90YWwgZHVyYXRpb24sIHJldHVybiBpdGVyYXRpb24gZHVyYXRpb24uCi0gICAgaWYg
KG1faXRlcmF0aW9ucyA+PSAwICYmIHRyaW1tZWQgPj0gbV9jdXJ2ZS0+ZHVyYXRpb24oKSAqIG1f
aXRlcmF0aW9ucykKKyAgICBpZiAobV9pdGVyYXRpb25zID49IDAgJiYgdHJpbW1lZCA+PSBtX2N1
cnZlLT5kdXJhdGlvbigpICogbV9pdGVyYXRpb25zKSB7CisgICAgICAgIGlmIChtX2FsdGVybmF0
ZXNEaXJlY3Rpb24gJiYgIShtX2l0ZXJhdGlvbnMgJSAyKSkKKyAgICAgICAgICAgIHJldHVybiAw
OwogICAgICAgICByZXR1cm4gbV9jdXJ2ZS0+ZHVyYXRpb24oKTsKKyAgICB9CisKKyAgICAvLyBX
ZSBuZWVkIHRvIGtub3cgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIGlmIHdlJ3JlIGFsdGVybmF0aW5n
LgorICAgIGludCBpdGVyYXRpb24gPSBzdGF0aWNfY2FzdDxpbnQ+KHRyaW1tZWQgLyBtX2N1cnZl
LT5kdXJhdGlvbigpKTsKKworICAgIC8vIENhbGN1bGF0ZSB4IHdoZXJlIHRyaW1tZWQgPSB4ICsg
biAqIG1fY3VydmUtPmR1cmF0aW9uKCkgZm9yIHNvbWUgcG9zaXRpdmUgaW50ZWdlciBuLgorICAg
IHRyaW1tZWQgPSBmbW9kKHRyaW1tZWQsIG1fY3VydmUtPmR1cmF0aW9uKCkpOwogCi0gICAgLy8g
RmluYWxseSwgcmV0dXJuIHggd2hlcmUgdHJpbW1lZCA9IHggKyBuICogbV9hbmltYXRpb24tPmR1
cmF0aW9uKCkgZm9yIHNvbWUgcG9zaXRpdmUgaW50ZWdlciBuLgotICAgIHJldHVybiBmbW9kKHRy
aW1tZWQsIG1fY3VydmUtPmR1cmF0aW9uKCkpOworICAgIC8vIElmIHdlJ3JlIGFsdGVybmF0aW5n
IGFuZCBvbiBhbiBvZGQgaXRlcmF0aW9uLCByZXZlcnNlIHRoZSBkaXJlY3Rpb24uCisgICAgaWYg
KG1fYWx0ZXJuYXRlc0RpcmVjdGlvbiAmJiBpdGVyYXRpb24gJSAyID09IDEpCisgICAgICAgIHJl
dHVybiBtX2N1cnZlLT5kdXJhdGlvbigpIC0gdHJpbW1lZDsKKworICAgIHJldHVybiB0cmltbWVk
OwogfQogCiBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6
Y2xvbmVGb3JJbXBsVGhyZWFkKCkgY29uc3QKQEAgLTEyOSwyOCArMTQyLDggQEAgUGFzc093blB0
cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gQ0NBY3RpdmVBbmltYXRpb246OmNsb25lRm9ySW1wbFRocmVh
ZCgpIGNvbnN0CiAgICAgdG9SZXR1cm4tPm1fc3RhcnRUaW1lID0gbV9zdGFydFRpbWU7CiAgICAg
dG9SZXR1cm4tPm1fcGF1c2VUaW1lID0gbV9wYXVzZVRpbWU7CiAgICAgdG9SZXR1cm4tPm1fdG90
YWxQYXVzZWRUaW1lID0gbV90b3RhbFBhdXNlZFRpbWU7CisgICAgdG9SZXR1cm4tPm1fYWx0ZXJu
YXRlc0RpcmVjdGlvbiA9IG1fYWx0ZXJuYXRlc0RpcmVjdGlvbjsKICAgICByZXR1cm4gdG9SZXR1
cm4ucmVsZWFzZSgpOwogfQogCi12b2lkIENDQWN0aXZlQW5pbWF0aW9uOjpzeW5jaHJvbml6ZVBy
b3BlcnRpZXMoQ0NBY3RpdmVBbmltYXRpb24qIG90aGVyKQotewotICAgIC8vIEl0IGlzIHBvc3Np
YmxlIGZvciB0aGUgaW1wbCB0aHJlYWQgdG8gaW5pdGlhdGUgYSBydW4gc3RhdGUgY2hhbmdlLgot
ICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSBhbmltYXRpb24gd2FzIHdhaXRpbmcgZm9yIGEg
ZnV0dXJlIGV2ZW50IHRvIHRha2UKLSAgICAvLyBwbGFjZSwgYW5kIHRoZSBldmVudCBoYXMgaGFw
cGVuZWQuIEluIHRoYXQgY2FzZSwgd2Ugd2FudCAndGhpcycgdG8KLSAgICAvLyBhc3N1bWUgdGhl
IGltcGwgdGhyZWFkJ3MgcnVuIHN0YXRlIGFuZCBzdGFydCB0aW1lLgotICAgIGlmIChpc1dhaXRp
bmcoKSAmJiBvdGhlci0+aXNSdW5uaW5nT3JIYXNSdW4oKSkgewotICAgICAgICBtX3J1blN0YXRl
ID0gb3RoZXItPm1fcnVuU3RhdGU7Ci0gICAgICAgIG1fc3RhcnRUaW1lID0gb3RoZXItPm1fc3Rh
cnRUaW1lOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG90aGVyLT5tX3J1blN0YXRlID0gbV9ydW5T
dGF0ZTsKLSAgICAgICAgb3RoZXItPm1fc3RhcnRUaW1lID0gbV9zdGFydFRpbWU7Ci0gICAgfQot
Ci0gICAgLy8gQ2hhbmdlIGluIHN0YXRlIHJlbGF0ZWQgdG8gaXRlcmF0aW9ucyBhbmQgcGF1c2Ug
aXMgYWx3YXlzIGluaXRpYXRlZCBmcm9tCi0gICAgLy8gdGhlIG1haW4gdGhyZWFkLCBzbyBpdCBp
cyBzYWZlIHRvIHB1c2ggcHJvcGVydGllcyBpbiB0aGF0IGRpcmVjdGlvbi4KLSAgICBvdGhlci0+
bV9pdGVyYXRpb25zID0gbV9pdGVyYXRpb25zOwotICAgIG90aGVyLT5tX3BhdXNlVGltZSA9IG1f
cGF1c2VUaW1lOwotICAgIG90aGVyLT5tX3RvdGFsUGF1c2VkVGltZSA9IG1fdG90YWxQYXVzZWRU
aW1lOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmlt
YXRpb24uaAppbmRleCA1ZGI4M2FmOTU2MjFmNjUwZjNkZmMzZWVjMzE0ZDQ4ZGRjOTRlNGY1Li5m
N2Q0ODBhMTlkYzA3MDMwYWFmNzlkN2JiM2E1NjQ2ODFhYWI5YTYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
QWN0aXZlQW5pbWF0aW9uLmgKQEAgLTgzLDYgKzgzLDEwIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
c3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KICAgICB2b2lkIHNldFN0
YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fc3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CiAK
KyAgICAvLyBJZiBhbHRlcm5hdGVzRGlyZWN0aW9uIGlzIHRydWUsIG9uIG9kZCBudW1iZXJlZCBp
dGVyYXRpb25zIHdlIHJldmVyc2UgdGhlIGN1cnZlLgorICAgIGJvb2wgYWx0ZXJuYXRlc0RpcmVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWx0ZXJuYXRlc0RpcmVjdGlvbjsgfQorICAgIHZvaWQg
c2V0QWx0ZXJuYXRlc0RpcmVjdGlvbihib29sIGFsdGVybmF0ZXMpIHsgbV9hbHRlcm5hdGVzRGly
ZWN0aW9uID0gYWx0ZXJuYXRlczsgfQorCiAgICAgYm9vbCBpc0ZpbmlzaGVkQXQoZG91YmxlIHRp
bWUpIGNvbnN0OwogICAgIGJvb2wgaXNGaW5pc2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuU3Rh
dGUgPT0gRmluaXNoZWQgfHwgbV9ydW5TdGF0ZSA9PSBBYm9ydGVkOyB9CiAKQEAgLTEwMyw4ICsx
MDcsNiBAQCBwdWJsaWM6CiAKICAgICBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjbG9u
ZUZvckltcGxUaHJlYWQoKSBjb25zdDsKIAotICAgIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0aWVz
KENDQWN0aXZlQW5pbWF0aW9uKik7Ci0KIHByaXZhdGU6CiAgICAgQ0NBY3RpdmVBbmltYXRpb24o
UGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJ
ZCwgVGFyZ2V0UHJvcGVydHkpOwogCkBAIC0xMjQsNiArMTI2LDcgQEAgcHJpdmF0ZToKICAgICBS
dW5TdGF0ZSBtX3J1blN0YXRlOwogICAgIGludCBtX2l0ZXJhdGlvbnM7CiAgICAgZG91YmxlIG1f
c3RhcnRUaW1lOworICAgIGJvb2wgbV9hbHRlcm5hdGVzRGlyZWN0aW9uOwogCiAgICAgYm9vbCBt
X25lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggN2Y1YTkyOGU4Y2UxOTkwYTM5YzYzZmRh
NWM0YmJkYTE3ZGU5M2E5MC4uNTIyNzkwNjBhMjgyMmIxODA5NmM5NTM4MDcwM2Y0ZDkxYjQxYWNj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNw
cApAQCAtNTIsMTkgKzUyLDIzIEBAIHZvaWQgYXBwZW5kS2V5ZnJhbWU8VHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWUsIENDVHJhbnNmb3JtS2V5ZnJhbWUsIENDS2V5ZnJhbWVkVHJhCiB0ZW1wbGF0ZSA8
Y2xhc3MgVmFsdWUsIGNsYXNzIEtleWZyYW1lLCBjbGFzcyBDdXJ2ZT4KIFBhc3NPd25QdHI8Q0NB
Y3RpdmVBbmltYXRpb24+IGNyZWF0ZUFjdGl2ZUFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgc2l6ZV90IGFuaW1h
dGlvbklkLCBzaXplX3QgZ3JvdXBJZCwgZG91YmxlIHRpbWVPZmZzZXQsIENDQWN0aXZlQW5pbWF0
aW9uOjpUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSkKIHsKLSAgICAvLyBGSVhNRTogYWRk
IHN1cHBvcnQgZm9yIGRpZmZlcmVudCBkaXJlY3Rpb25zLgotICAgIGlmIChhbmltYXRpb24gJiYg
YW5pbWF0aW9uLT5pc0RpcmVjdGlvblNldCgpICYmIGFuaW1hdGlvbi0+ZGlyZWN0aW9uKCkgPT0g
QW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGUpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotCi0gICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBmaWxscyBmb3J3YXJkcyBh
bmQgZmlsbHMgYmFja3dhcmRzCi0gICAgaWYgKGFuaW1hdGlvbiAmJiBhbmltYXRpb24tPmlzRmls
bE1vZGVTZXQoKSAmJiAoYW5pbWF0aW9uLT5maWxsc0ZvcndhcmRzKCkgfHwgYW5pbWF0aW9uLT5m
aWxsc0JhY2t3YXJkcygpKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYm9vbCBhbHRl
cm5hdGUgPSBmYWxzZTsKKyAgICBib29sIHJldmVyc2UgPSBmYWxzZTsKKyAgICBpZiAoYW5pbWF0
aW9uICYmIGFuaW1hdGlvbi0+aXNEaXJlY3Rpb25TZXQoKSkgeworICAgICAgICBBbmltYXRpb246
OkFuaW1hdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBhbmltYXRpb24tPmRpcmVjdGlvbigpOwor
ICAgICAgICBpZiAoZGlyZWN0aW9uID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlIHx8IGRpcmVjdGlvbiA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVy
bmF0ZVJldmVyc2UpCisgICAgICAgICAgICBhbHRlcm5hdGUgPSB0cnVlOworICAgICAgICBpZiAo
ZGlyZWN0aW9uID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSB8fCBkaXJl
Y3Rpb24gPT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGVSZXZlcnNlKQor
ICAgICAgICAgICAgcmV2ZXJzZSA9IHRydWU7CisgICAgfQogCiAgICAgT3duUHRyPEN1cnZlPiBj
dXJ2ZSA9IEN1cnZlOjpjcmVhdGUoKTsKICAgICBWZWN0b3I8S2V5ZnJhbWU+IGtleWZyYW1lczsK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVMaXN0LnNpemUoKTsgaSsrKSB7Ci0g
ICAgICAgIGNvbnN0IFZhbHVlKiBvcmlnaW5hbFZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgVmFs
dWUqPih2YWx1ZUxpc3QuYXQoaSkpOworICAgICAgICBzaXplX3QgaW5kZXggPSByZXZlcnNlID8g
dmFsdWVMaXN0LnNpemUoKSAtIGkgLSAxIDogaTsKKworICAgICAgICBjb25zdCBWYWx1ZSogb3Jp
Z2luYWxWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFZhbHVlKj4odmFsdWVMaXN0LmF0KGluZGV4
KSk7CiAKICAgICAgICAgT3duUHRyPENDVGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uOwog
ICAgICAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiogb3JpZ2luYWxUaW1pbmdGdW5jdGlvbiA9IG9y
aWdpbmFsVmFsdWUtPnRpbWluZ0Z1bmN0aW9uKCk7CkBAIC0xMDEsNiArMTA1LDcgQEAgUGFzc093
blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY3JlYXRlQWN0aXZlQW5pbWF0aW9uKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiB2YWwKICAgICBpZiAoYW5pbS5nZXQoKSkgewogICAgICAgICBpbnQgaXRl
cmF0aW9ucyA9IChhbmltYXRpb24gJiYgYW5pbWF0aW9uLT5pc0l0ZXJhdGlvbkNvdW50U2V0KCkp
ID8gYW5pbWF0aW9uLT5pdGVyYXRpb25Db3VudCgpIDogMTsKICAgICAgICAgYW5pbS0+c2V0SXRl
cmF0aW9ucyhpdGVyYXRpb25zKTsKKyAgICAgICAgYW5pbS0+c2V0QWx0ZXJuYXRlc0RpcmVjdGlv
bihhbHRlcm5hdGUpOwogICAgIH0KIAogICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIHNrZXcsIHRo
ZSBtYWluIHRocmVhZCBhbmltYXRpb24gY2Fubm90IHRpY2sgdW50aWwgaXQgaGFzIHJlY2VpdmVk
IHRoZSBzdGFydCB0aW1lIG9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9UZXh0RmllbGREZWNvcmF0b3JJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1RleHRGaWVsZERlY29yYXRvckltcGwuY3BwCmluZGV4IGZlZjY2YTIxMzUyNjg1ZjliNDM5NDg4
ZmJjNjAwYmZkNzY3NjI5N2QuLmU1OGMwMjJlZWI0NjY3YTJjZDY3MWNhZWM5N2Y1NzcyOWZiYjI1
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1RleHRGaWVsZERlY29y
YXRvckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1RleHRGaWVsZERl
Y29yYXRvckltcGwuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFn
ZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgog
I2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYlRleHRGaWVsZERlY29y
YXRvckNsaWVudC5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDQWN0aXZlQW5pbWF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDQWN0aXZlQW5pbWF0aW9uVGVzdC5jcHAKaW5kZXggZTE0ZWY5YmMwOTcxYTExZTIxNGIzMTRk
NzU4MjkxNWVjYzU2ZDM1Mi4uNTUxNzJlYTM3Y2ZhMDBjNzNiNTNjMmQyNTYyN2I5Mzg0NTAwYzFl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0FjdGl2ZUFuaW1h
dGlvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBY3RpdmVB
bmltYXRpb25UZXN0LmNwcApAQCAtNjksNiArNjksMTYgQEAgVEVTVChDQ0FjdGl2ZUFuaW1hdGlv
blRlc3QsIFRyaW1UaW1lSW5maW5pdGVJdGVyYXRpb25zKQogICAgIEVYUEVDVF9FUSgwLjUsIGFu
aW0tPnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDEuNSkpOwogfQogCitURVNUKENDQWN0aXZl
QW5pbWF0aW9uVGVzdCwgVHJpbVRpbWVBbHRlcm5hdGluZykKK3sKKyAgICBPd25QdHI8Q0NBY3Rp
dmVBbmltYXRpb24+IGFuaW0oY3JlYXRlQWN0aXZlQW5pbWF0aW9uKC0xKSk7CisgICAgYW5pbS0+
c2V0QWx0ZXJuYXRlc0RpcmVjdGlvbih0cnVlKTsKKyAgICBFWFBFQ1RfRVEoMCwgYW5pbS0+dHJp
bVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oMCkpOworICAgIEVYUEVDVF9FUSgwLjUsIGFuaW0tPnRy
aW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDAuNSkpOworICAgIEVYUEVDVF9FUSgxLCBhbmltLT50
cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDAuNzUsIGFuaW0t
PnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDEuMjUpKTsKK30KKwogVEVTVChDQ0FjdGl2ZUFu
aW1hdGlvblRlc3QsIFRyaW1UaW1lU3RhcnRUaW1lKQogewogICAgIE93blB0cjxDQ0FjdGl2ZUFu
aW1hdGlvbj4gYW5pbShjcmVhdGVBY3RpdmVBbmltYXRpb24oMSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140950</attachid>
            <date>2012-05-09 08:25:10 -0700</date>
            <delta_ts>2012-05-09 13:26:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77662-20120509112509.patch</filename>
            <type>text/plain</type>
            <size>18204</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU3NzM2YTI0NjRiZTI2
M2Q2ZjAwYzEwOWM5ZDAyMzBiZmZlZmEyZC4uYTFmNzY2NDAwMTNmNDcwMTg1NDU0YjdjZjQ0MmQ4
YWVmYjFmZDZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA1LTA5ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGltcGwtdGhyZWFkIHN1cHBvcnQgZm9yIGZpbGwtbW9kZSBhbmQgZGlyZWN0aW9uIGNzcyBhbmlt
YXRpb24gcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzc2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGFjY2VsZXJhdGluZyBjc3MgYW5pbWF0aW9ucyB3aXRo
IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZSwKKyAgICAgICAgYW5kIC13ZWJraXQtYW5pbWF0
aW9uLWRpcmVjdGlvbiBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRlc3RlZCBpbjoKKyAgICAgICAg
ICBDQ0FjdGl2ZUFuaW1hdGlvblRlc3QuVHJpbVRpbWVBbHRlcm5hdGluZworICAgICAgICAgIEND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcmVhdGVSZXZlcnNlZEFuaW1hdGlvbgorICAg
ICAgICAgIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcmVhdGVBbHRlcm5hdGluZ0Fu
aW1hdGlvbgorICAgICAgICAgIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcmVhdGVS
ZXZlcnNlZEFsdGVybmF0aW5nQW5pbWF0aW9uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Q0NBY3RpdmVBbmltYXRpb246OnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpjbG9uZUZvckltcGxUaHJlYWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmg6Cisg
ICAgICAgIChDQ0FjdGl2ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFu
aW1hdGlvbjo6YWx0ZXJuYXRlc0RpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2
ZUFuaW1hdGlvbjo6c2V0QWx0ZXJuYXRlc0RpcmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorCiAy
MDEyLTA1LTA0ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAg
ICAgICAgIFRpZSBsaWZldGltZSBvZiBTVkdBbmltYXRlRWxlbWVudDo6bV9hbmltYXRlZFR5cGUg
dG8gdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNTY1ZDU2ZWJkYmQ0ZTNjYzNkMzRmOTAwN2Q3NjUwMjYxMjgwYWIyYy4uOTBiYTk2NjMx
YWI3NjM2Y2QwZjE3OWRhOGY2ODNjYmI0ODA0YmQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNS0wOSAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBpbXBsLXRocmVhZCBzdXBwb3J0
IGZvciBmaWxsLW1vZGUgYW5kIGRpcmVjdGlvbiBjc3MgYW5pbWF0aW9uIHByb3BlcnRpZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjYyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9DQ0Fj
dGl2ZUFuaW1hdGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRl
c3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OlRFU1QpOgorICAgICAgICAoV2ViS2l0VGVz
dHMpOgorCiAyMDEyLTA1LTA4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBtb3ZlIGV2ZW50X2xpc3RlbmVyX3VuaXR0ZXN0IHRvIHdlYmtpdF91
bml0X3Rlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKaW5kZXggY2NmZmRi
YzcyZGFkZWFkNjE3MjhiNjQ2YTI4NGNhMWUyY2I0NGMwNS4uMWVjY2I4ZjA4NzdmOGI2NWFiZDMx
ZGEyMzk2ZTVjZTcwYjEyNDdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNw
cApAQCAtNDUsNiArNDUsNyBAQCBDQ0FjdGl2ZUFuaW1hdGlvbjo6Q0NBY3RpdmVBbmltYXRpb24o
UGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiBjdXJ2ZSwgaW50IGFuaQogICAgICwgbV9ydW5T
dGF0ZShXYWl0aW5nRm9yVGFyZ2V0QXZhaWxhYmlsaXR5KQogICAgICwgbV9pdGVyYXRpb25zKDEp
CiAgICAgLCBtX3N0YXJ0VGltZSgwKQorICAgICwgbV9hbHRlcm5hdGVzRGlyZWN0aW9uKGZhbHNl
KQogICAgICwgbV90aW1lT2Zmc2V0KDApCiAgICAgLCBtX25lZWRzU3luY2hyb25pemVkU3RhcnRU
aW1lKGZhbHNlKQogICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCkBAIC0xMTksMTEgKzEyMCwyMyBA
QCBkb3VibGUgQ0NBY3RpdmVBbmltYXRpb246OnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRv
dWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAogICAgICAgICByZXR1cm4gdHJpbW1lZDsKIAogICAg
IC8vIElmIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdG90YWwgZHVyYXRpb24sIHJldHVy
biBpdGVyYXRpb24gZHVyYXRpb24uCi0gICAgaWYgKG1faXRlcmF0aW9ucyA+PSAwICYmIHRyaW1t
ZWQgPj0gbV9jdXJ2ZS0+ZHVyYXRpb24oKSAqIG1faXRlcmF0aW9ucykKKyAgICBpZiAobV9pdGVy
YXRpb25zID49IDAgJiYgdHJpbW1lZCA+PSBtX2N1cnZlLT5kdXJhdGlvbigpICogbV9pdGVyYXRp
b25zKSB7CisgICAgICAgIGlmIChtX2FsdGVybmF0ZXNEaXJlY3Rpb24gJiYgIShtX2l0ZXJhdGlv
bnMgJSAyKSkKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gbV9jdXJ2ZS0+
ZHVyYXRpb24oKTsKKyAgICB9CisKKyAgICAvLyBXZSBuZWVkIHRvIGtub3cgdGhlIGN1cnJlbnQg
aXRlcmF0aW9uIGlmIHdlJ3JlIGFsdGVybmF0aW5nLgorICAgIGludCBpdGVyYXRpb24gPSBzdGF0
aWNfY2FzdDxpbnQ+KHRyaW1tZWQgLyBtX2N1cnZlLT5kdXJhdGlvbigpKTsKKworICAgIC8vIENh
bGN1bGF0ZSB4IHdoZXJlIHRyaW1tZWQgPSB4ICsgbiAqIG1fY3VydmUtPmR1cmF0aW9uKCkgZm9y
IHNvbWUgcG9zaXRpdmUgaW50ZWdlciBuLgorICAgIHRyaW1tZWQgPSBmbW9kKHRyaW1tZWQsIG1f
Y3VydmUtPmR1cmF0aW9uKCkpOworCisgICAgLy8gSWYgd2UncmUgYWx0ZXJuYXRpbmcgYW5kIG9u
IGFuIG9kZCBpdGVyYXRpb24sIHJldmVyc2UgdGhlIGRpcmVjdGlvbi4KKyAgICBpZiAobV9hbHRl
cm5hdGVzRGlyZWN0aW9uICYmIGl0ZXJhdGlvbiAlIDIgPT0gMSkKKyAgICAgICAgcmV0dXJuIG1f
Y3VydmUtPmR1cmF0aW9uKCkgLSB0cmltbWVkOwogCi0gICAgLy8gRmluYWxseSwgcmV0dXJuIHgg
d2hlcmUgdHJpbW1lZCA9IHggKyBuICogbV9hbmltYXRpb24tPmR1cmF0aW9uKCkgZm9yIHNvbWUg
cG9zaXRpdmUgaW50ZWdlciBuLgotICAgIHJldHVybiBmbW9kKHRyaW1tZWQsIG1fY3VydmUtPmR1
cmF0aW9uKCkpOworICAgIHJldHVybiB0cmltbWVkOwogfQogCiBQYXNzT3duUHRyPENDQWN0aXZl
QW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJbXBsVGhyZWFkKCkgY29uc3QK
QEAgLTEzNSw2ICsxNDgsNyBAQCBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2
ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJbXBsVGhyZWFkKCkgY29uc3QKICAgICB0b1JldHVybi0+bV9w
YXVzZVRpbWUgPSBtX3BhdXNlVGltZTsKICAgICB0b1JldHVybi0+bV90b3RhbFBhdXNlZFRpbWUg
PSBtX3RvdGFsUGF1c2VkVGltZTsKICAgICB0b1JldHVybi0+bV90aW1lT2Zmc2V0ID0gbV90aW1l
T2Zmc2V0OworICAgIHRvUmV0dXJuLT5tX2FsdGVybmF0ZXNEaXJlY3Rpb24gPSBtX2FsdGVybmF0
ZXNEaXJlY3Rpb247CiAgICAgcmV0dXJuIHRvUmV0dXJuLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3Rp
dmVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKaW5kZXggNTMxZWI0NjRmYzM5Y2MzMDFiM2M3ZDhiZTAw
ZmJiODk5Mjk3NGE3NC4uMDIyNTU3MDJhNzcwZTE0ZDI2MDhmYmIzNTEwYTgzNThkMTQwYTI5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NBY3RpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBAIC05MCw2ICs5MCwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdXNwZW5kKGRvdWJsZSBtb25vdG9uaWNUaW1lKTsKICAgICB2b2lkIHJl
c3VtZShkb3VibGUgbW9ub3RvbmljVGltZSk7CiAKKyAgICAvLyBJZiBhbHRlcm5hdGVzRGlyZWN0
aW9uIGlzIHRydWUsIG9uIG9kZCBudW1iZXJlZCBpdGVyYXRpb25zIHdlIHJldmVyc2UgdGhlIGN1
cnZlLgorICAgIGJvb2wgYWx0ZXJuYXRlc0RpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWx0
ZXJuYXRlc0RpcmVjdGlvbjsgfQorICAgIHZvaWQgc2V0QWx0ZXJuYXRlc0RpcmVjdGlvbihib29s
IGFsdGVybmF0ZXMpIHsgbV9hbHRlcm5hdGVzRGlyZWN0aW9uID0gYWx0ZXJuYXRlczsgfQorCiAg
ICAgYm9vbCBpc0ZpbmlzaGVkQXQoZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0OwogICAgIGJv
b2wgaXNGaW5pc2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuU3RhdGUgPT0gRmluaXNoZWQgfHwg
bV9ydW5TdGF0ZSA9PSBBYm9ydGVkOyB9CiAKQEAgLTEyOCw2ICsxMzIsNyBAQCBwcml2YXRlOgog
ICAgIFJ1blN0YXRlIG1fcnVuU3RhdGU7CiAgICAgaW50IG1faXRlcmF0aW9uczsKICAgICBkb3Vi
bGUgbV9zdGFydFRpbWU7CisgICAgYm9vbCBtX2FsdGVybmF0ZXNEaXJlY3Rpb247CiAKICAgICAv
LyBUaGUgdGltZSBvZmZzZXQgZWZmZWN0aXZlbHkgcHVzaGVzIHRoZSBzdGFydCBvZiB0aGUgYW5p
bWF0aW9uIGJhY2sgaW4gdGltZS4gVGhpcyBpcwogICAgIC8vIHVzZWQgZm9yIHJlc3VtaW5nIHBh
dXNlZCBhbmltYXRpb25zIC0tIGFuIGFuaW1hdGlvbiBpcyBhZGRlZCB3aXRoIGEgbm9uLXplcm8g
dGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CmluZGV4IDE5OTE5MmQ1MmE0NDhhZGM5YmU0MmEzMmRkYjA4MDI3ZmY2Y2Q3M2UuLmRmNTBiZTgz
NDZhMDFjNGUwZDk3ZmFmZGQ1MzAzN2U0MWQyYjgyNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTUyLDE5ICs1MiwyMyBAQCB2b2lk
IGFwcGVuZEtleWZyYW1lPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlLCBDQ1RyYW5zZm9ybUtleWZy
YW1lLCBDQ0tleWZyYW1lZFRyYQogdGVtcGxhdGUgPGNsYXNzIFZhbHVlLCBjbGFzcyBLZXlmcmFt
ZSwgY2xhc3MgQ3VydmU+CiBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBjcmVhdGVBY3Rp
dmVBbmltYXRpb24oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5p
bWF0aW9uKiBhbmltYXRpb24sIHNpemVfdCBhbmltYXRpb25JZCwgc2l6ZV90IGdyb3VwSWQsIGRv
dWJsZSB0aW1lT2Zmc2V0LCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFyZ2V0UHJvcGVydHkgdGFyZ2V0
UHJvcGVydHkpCiB7Ci0gICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBkaWZmZXJlbnQgZGly
ZWN0aW9ucy4KLSAgICBpZiAoYW5pbWF0aW9uICYmIGFuaW1hdGlvbi0+aXNEaXJlY3Rpb25TZXQo
KSAmJiBhbmltYXRpb24tPmRpcmVjdGlvbigpICE9IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uTm9ybWFsKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIC8vIEZJWE1FOiBhZGQg
c3VwcG9ydCBmb3IgZmlsbHMgZm9yd2FyZHMgYW5kIGZpbGxzIGJhY2t3YXJkcwotICAgIGlmIChh
bmltYXRpb24gJiYgYW5pbWF0aW9uLT5pc0ZpbGxNb2RlU2V0KCkgJiYgKGFuaW1hdGlvbi0+Zmls
bHNGb3J3YXJkcygpIHx8IGFuaW1hdGlvbi0+ZmlsbHNCYWNrd2FyZHMoKSkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIGJvb2wgYWx0ZXJuYXRlID0gZmFsc2U7CisgICAgYm9vbCByZXZl
cnNlID0gZmFsc2U7CisgICAgaWYgKGFuaW1hdGlvbiAmJiBhbmltYXRpb24tPmlzRGlyZWN0aW9u
U2V0KCkpIHsKKyAgICAgICAgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9u
ID0gYW5pbWF0aW9uLT5kaXJlY3Rpb24oKTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBBbmlt
YXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSB8fCBkaXJlY3Rpb24gPT0gQW5pbWF0
aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGVSZXZlcnNlKQorICAgICAgICAgICAgYWx0
ZXJuYXRlID0gdHJ1ZTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBBbmltYXRpb246OkFuaW1h
dGlvbkRpcmVjdGlvblJldmVyc2UgfHwgZGlyZWN0aW9uID09IEFuaW1hdGlvbjo6QW5pbWF0aW9u
RGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSkKKyAgICAgICAgICAgIHJldmVyc2UgPSB0cnVlOwor
ICAgIH0KIAogICAgIE93blB0cjxDdXJ2ZT4gY3VydmUgPSBDdXJ2ZTo6Y3JlYXRlKCk7CiAgICAg
VmVjdG9yPEtleWZyYW1lPiBrZXlmcmFtZXM7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHZhbHVlTGlzdC5zaXplKCk7IGkrKykgewotICAgICAgICBjb25zdCBWYWx1ZSogb3JpZ2luYWxW
YWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFZhbHVlKj4odmFsdWVMaXN0LmF0KGkpKTsKKyAgICAg
ICAgc2l6ZV90IGluZGV4ID0gcmV2ZXJzZSA/IHZhbHVlTGlzdC5zaXplKCkgLSBpIC0gMSA6IGk7
CisKKyAgICAgICAgY29uc3QgVmFsdWUqIG9yaWdpbmFsVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25z
dCBWYWx1ZSo+KHZhbHVlTGlzdC5hdChpbmRleCkpOwogCiAgICAgICAgIE93blB0cjxDQ1RpbWlu
Z0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbjsKICAgICAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24q
IG9yaWdpbmFsVGltaW5nRnVuY3Rpb24gPSBvcmlnaW5hbFZhbHVlLT50aW1pbmdGdW5jdGlvbigp
OwpAQCAtOTEsNyArOTUsMTAgQEAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY3JlYXRl
QWN0aXZlQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWwKICAgICAgICAgICAg
IHRpbWluZ0Z1bmN0aW9uID0gQ0NFYXNlVGltaW5nRnVuY3Rpb246OmNyZWF0ZSgpOwogCiAgICAg
ICAgIGRvdWJsZSBkdXJhdGlvbiA9IChhbmltYXRpb24gJiYgYW5pbWF0aW9uLT5pc0R1cmF0aW9u
U2V0KCkpID8gYW5pbWF0aW9uLT5kdXJhdGlvbigpIDogMTsKLSAgICAgICAgYXBwZW5kS2V5ZnJh
bWU8VmFsdWUsIEtleWZyYW1lLCBDdXJ2ZT4oKmN1cnZlLCBvcmlnaW5hbFZhbHVlLT5rZXlUaW1l
KCkgKiBkdXJhdGlvbiwgb3JpZ2luYWxWYWx1ZSwgdGltaW5nRnVuY3Rpb24ucmVsZWFzZSgpKTsK
KyAgICAgICAgZG91YmxlIGtleVRpbWUgPSBvcmlnaW5hbFZhbHVlLT5rZXlUaW1lKCkgKiBkdXJh
dGlvbjsKKyAgICAgICAgaWYgKHJldmVyc2UpCisgICAgICAgICAgICBrZXlUaW1lID0gZHVyYXRp
b24gLSBrZXlUaW1lOworICAgICAgICBhcHBlbmRLZXlmcmFtZTxWYWx1ZSwgS2V5ZnJhbWUsIEN1
cnZlPigqY3VydmUsIGtleVRpbWUsIG9yaWdpbmFsVmFsdWUsIHRpbWluZ0Z1bmN0aW9uLnJlbGVh
c2UoKSk7CiAgICAgfQogCiAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBhbmltID0gQ0NB
Y3RpdmVBbmltYXRpb246OmNyZWF0ZShjdXJ2ZS5yZWxlYXNlKCksIGFuaW1hdGlvbklkLCBncm91
cElkLCB0YXJnZXRQcm9wZXJ0eSk7CkBAIC0xMDEsNiArMTA4LDcgQEAgUGFzc093blB0cjxDQ0Fj
dGl2ZUFuaW1hdGlvbj4gY3JlYXRlQWN0aXZlQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVM
aXN0JiB2YWwKICAgICBpZiAoYW5pbS5nZXQoKSkgewogICAgICAgICBpbnQgaXRlcmF0aW9ucyA9
IChhbmltYXRpb24gJiYgYW5pbWF0aW9uLT5pc0l0ZXJhdGlvbkNvdW50U2V0KCkpID8gYW5pbWF0
aW9uLT5pdGVyYXRpb25Db3VudCgpIDogMTsKICAgICAgICAgYW5pbS0+c2V0SXRlcmF0aW9ucyhp
dGVyYXRpb25zKTsKKyAgICAgICAgYW5pbS0+c2V0QWx0ZXJuYXRlc0RpcmVjdGlvbihhbHRlcm5h
dGUpOwogICAgIH0KIAogICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIHNrZXcsIHRoZSBtYWluIHRo
cmVhZCBhbmltYXRpb24gY2Fubm90IHRpY2sgdW50aWwgaXQgaGFzIHJlY2VpdmVkIHRoZSBzdGFy
dCB0aW1lIG9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQWN0
aXZlQW5pbWF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQWN0
aXZlQW5pbWF0aW9uVGVzdC5jcHAKaW5kZXggYTFhYjc3MGI3YTMxMjA3NmEzMTE4NTJkMmQ4OTgx
ZDU2MmFkZjU5Ni4uYWY5ZmRlMWQ1ZmNiY2Y2NGI5N2JhYjRiNjIwYjA3MWJiNzBhYWI1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0FjdGl2ZUFuaW1hdGlvblRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBY3RpdmVBbmltYXRp
b25UZXN0LmNwcApAQCAtNjksNiArNjksMTYgQEAgVEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3Qs
IFRyaW1UaW1lSW5maW5pdGVJdGVyYXRpb25zKQogICAgIEVYUEVDVF9FUSgwLjUsIGFuaW0tPnRy
aW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDEuNSkpOwogfQogCitURVNUKENDQWN0aXZlQW5pbWF0
aW9uVGVzdCwgVHJpbVRpbWVBbHRlcm5hdGluZykKK3sKKyAgICBPd25QdHI8Q0NBY3RpdmVBbmlt
YXRpb24+IGFuaW0oY3JlYXRlQWN0aXZlQW5pbWF0aW9uKC0xKSk7CisgICAgYW5pbS0+c2V0QWx0
ZXJuYXRlc0RpcmVjdGlvbih0cnVlKTsKKyAgICBFWFBFQ1RfRVEoMCwgYW5pbS0+dHJpbVRpbWVU
b0N1cnJlbnRJdGVyYXRpb24oMCkpOworICAgIEVYUEVDVF9FUSgwLjUsIGFuaW0tPnRyaW1UaW1l
VG9DdXJyZW50SXRlcmF0aW9uKDAuNSkpOworICAgIEVYUEVDVF9FUSgxLCBhbmltLT50cmltVGlt
ZVRvQ3VycmVudEl0ZXJhdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDAuNzUsIGFuaW0tPnRyaW1U
aW1lVG9DdXJyZW50SXRlcmF0aW9uKDEuMjUpKTsKK30KKwogVEVTVChDQ0FjdGl2ZUFuaW1hdGlv
blRlc3QsIFRyaW1UaW1lU3RhcnRUaW1lKQogewogICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlv
bj4gYW5pbShjcmVhdGVBY3RpdmVBbmltYXRpb24oMSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRl
c3QuY3BwCmluZGV4IGZhOTVhMmFjNWE5ZmM3MWNjNjdlNGM3MTViN2IyODMzMDIwZjQxOGUuLjFk
NTQwOWY5OGVkZDFhMzk0ZWU0Zjk5OWRhNmQ0NzUyY2E2NjU4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyVGVzdC5jcHAKQEAgLTg2LDM0ICs4Niw0NSBAQCBURVNUKENDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyVGVzdCwgY3JlYXRlT3BhY2l0eUFuaW1hdGlvbikKICAgICBFWFBFQ1RfRVEoMSwg
Y3VydmUtPmdldFZhbHVlKGR1cmF0aW9uKSk7CiB9CiAKLVRFU1QoQ0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXJUZXN0LCBpZ25vcmVVbnN1cHBvcnRlZEFuaW1hdGlvbkRpcmVjdGlvbnMpCitURVNU
KENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdCwgY3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9u
KQogewogICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQgZHVtbXk7CiAgICAg
T3duUHRyPENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyPiBjb250cm9sbGVyKENDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpjcmVhdGUoJmR1bW15KSk7CiAgICAgY29uc3QgZG91YmxlIGR1cmF0
aW9uID0gMTsKLSAgICBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCB2YWx1ZXMoQW5pbWF0ZWRQ
cm9wZXJ0eU9wYWNpdHkpOwotICAgIHZhbHVlcy5pbnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFs
dWUoMCwgMCkpOwotICAgIHZhbHVlcy5pbnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoZHVy
YXRpb24sIDEpKTsKKyAgICBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCB2YWx1ZXMoQW5pbWF0
ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CisKKyAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG9w
ZXJhdGlvbnMxOworICAgIG9wZXJhdGlvbnMxLm9wZXJhdGlvbnMoKS5hcHBlbmQoVHJhbnNsYXRl
VHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3RoKDIsIEZpeGVkKSwgTGVuZ3RoKDAsIEZp
eGVkKSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWCkpOworICAgIHZhbHVlcy5pbnNl
cnQobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDAsICZvcGVyYXRpb25zMSkpOworCisgICAg
VHJhbnNmb3JtT3BlcmF0aW9ucyBvcGVyYXRpb25zMjsKKyAgICBvcGVyYXRpb25zMi5vcGVyYXRp
b25zKCkuYXBwZW5kKFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKExlbmd0aCg0
LCBGaXhlZCksIExlbmd0aCgwLCBGaXhlZCksIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRF
X1gpKTsKKyAgICB2YWx1ZXMuaW5zZXJ0KG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShkdXJh
dGlvbiwgJm9wZXJhdGlvbnMyKSk7CiAKICAgICBSZWZQdHI8QW5pbWF0aW9uPiBhbmltYXRpb24g
PSBBbmltYXRpb246OmNyZWF0ZSgpOwogICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24oZHVyYXRp
b24pOwogCiAgICAgSW50U2l6ZSBib3hTaXplOworICAgIGNvbnRyb2xsZXItPmFkZEFuaW1hdGlv
bih2YWx1ZXMsIGJveFNpemUsIGFuaW1hdGlvbi5nZXQoKSwgMCwgMCwgMCk7CiAKLSAgICBhbmlt
YXRpb24tPnNldERpcmVjdGlvbihBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0
ZSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGNvbnRyb2xsZXItPmFkZEFuaW1hdGlvbih2YWx1ZXMsIGJv
eFNpemUsIGFuaW1hdGlvbi5nZXQoKSwgMCwgMCwgMCkpOworICAgIEVYUEVDVF9UUlVFKGNvbnRy
b2xsZXItPmhhc0FjdGl2ZUFuaW1hdGlvbigpKTsKIAotICAgIGFuaW1hdGlvbi0+c2V0RGlyZWN0
aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7Ci0gICAg
RVhQRUNUX0ZBTFNFKGNvbnRyb2xsZXItPmFkZEFuaW1hdGlvbih2YWx1ZXMsIGJveFNpemUsIGFu
aW1hdGlvbi5nZXQoKSwgMCwgMCwgMCkpOworICAgIENDQWN0aXZlQW5pbWF0aW9uKiBhY3RpdmVB
bmltYXRpb24gPSBjb250cm9sbGVyLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmlt
YXRpb246OlRyYW5zZm9ybSk7CisgICAgRVhQRUNUX1RSVUUoYWN0aXZlQW5pbWF0aW9uKTsKIAot
ICAgIGFuaW1hdGlvbi0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9u
UmV2ZXJzZSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGNvbnRyb2xsZXItPmFkZEFuaW1hdGlvbih2YWx1
ZXMsIGJveFNpemUsIGFuaW1hdGlvbi5nZXQoKSwgMCwgMCwgMCkpOworICAgIEVYUEVDVF9FUSgx
LCBhY3RpdmVBbmltYXRpb24tPml0ZXJhdGlvbnMoKSk7CisgICAgRVhQRUNUX0VRKENDQWN0aXZl
QW5pbWF0aW9uOjpUcmFuc2Zvcm0sIGFjdGl2ZUFuaW1hdGlvbi0+dGFyZ2V0UHJvcGVydHkoKSk7
CisKKyAgICBFWFBFQ1RfRVEoQ0NBbmltYXRpb25DdXJ2ZTo6VHJhbnNmb3JtLCBhY3RpdmVBbmlt
YXRpb24tPmN1cnZlKCktPnR5cGUoKSk7CiAKLSAgICBhbmltYXRpb24tPnNldERpcmVjdGlvbihB
bmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbk5vcm1hbCk7Ci0gICAgRVhQRUNUX1RSVUUoY29u
dHJvbGxlci0+YWRkQW5pbWF0aW9uKHZhbHVlcywgYm94U2l6ZSwgYW5pbWF0aW9uLmdldCgpLCAw
LCAwLCAwKSk7CisgICAgY29uc3QgQ0NUcmFuc2Zvcm1BbmltYXRpb25DdXJ2ZSogY3VydmUgPSBh
Y3RpdmVBbmltYXRpb24tPmN1cnZlKCktPnRvVHJhbnNmb3JtQW5pbWF0aW9uQ3VydmUoKTsKKyAg
ICBFWFBFQ1RfVFJVRShjdXJ2ZSk7CisKKyAgICBleHBlY3RUcmFuc2xhdGVYKDIsIGN1cnZlLT5n
ZXRWYWx1ZSgwLCBib3hTaXplKSk7CisgICAgZXhwZWN0VHJhbnNsYXRlWCg0LCBjdXJ2ZS0+Z2V0
VmFsdWUoZHVyYXRpb24sIGJveFNpemUpKTsKIH0KIAotVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlclRlc3QsIGNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbikKK1RFU1QoQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXJUZXN0LCBjcmVhdGVSZXZlcnNlZEFuaW1hdGlvbikKIHsKICAgICBGYWtl
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyQ2xpZW50IGR1bW15OwogICAgIE93blB0cjxDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcj4gY29udHJvbGxlcihDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxl
cjo6Y3JlYXRlKCZkdW1teSkpOwpAQCAtMTMwLDYgKzE0MSw3IEBAIFRFU1QoQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXJUZXN0LCBjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb24pCiAKICAgICBSZWZQ
dHI8QW5pbWF0aW9uPiBhbmltYXRpb24gPSBBbmltYXRpb246OmNyZWF0ZSgpOwogICAgIGFuaW1h
dGlvbi0+c2V0RHVyYXRpb24oZHVyYXRpb24pOworICAgIGFuaW1hdGlvbi0+c2V0RGlyZWN0aW9u
KEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSk7CiAKICAgICBJbnRTaXplIGJv
eFNpemU7CiAgICAgY29udHJvbGxlci0+YWRkQW5pbWF0aW9uKHZhbHVlcywgYm94U2l6ZSwgYW5p
bWF0aW9uLmdldCgpLCAwLCAwLCAwKTsKQEAgLTE0NywxMCArMTU5LDkyIEBAIFRFU1QoQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LCBjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb24pCiAgICAg
Y29uc3QgQ0NUcmFuc2Zvcm1BbmltYXRpb25DdXJ2ZSogY3VydmUgPSBhY3RpdmVBbmltYXRpb24t
PmN1cnZlKCktPnRvVHJhbnNmb3JtQW5pbWF0aW9uQ3VydmUoKTsKICAgICBFWFBFQ1RfVFJVRShj
dXJ2ZSk7CiAKKyAgICBleHBlY3RUcmFuc2xhdGVYKDQsIGN1cnZlLT5nZXRWYWx1ZSgwLCBib3hT
aXplKSk7CisgICAgZXhwZWN0VHJhbnNsYXRlWCgyLCBjdXJ2ZS0+Z2V0VmFsdWUoZHVyYXRpb24s
IGJveFNpemUpKTsKK30KKworVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QsIGNy
ZWF0ZUFsdGVybmF0aW5nQW5pbWF0aW9uKQoreworICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXJDbGllbnQgZHVtbXk7CisgICAgT3duUHRyPENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
PiBjb250cm9sbGVyKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUoJmR1bW15KSk7
CisgICAgY29uc3QgZG91YmxlIGR1cmF0aW9uID0gMTsKKyAgICBXZWJDb3JlOjpLZXlmcmFtZVZh
bHVlTGlzdCB2YWx1ZXMoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CisKKyAgICBU
cmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJhdGlvbnMxOworICAgIG9wZXJhdGlvbnMxLm9wZXJhdGlv
bnMoKS5hcHBlbmQoVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3RoKDIs
IEZpeGVkKSwgTGVuZ3RoKDAsIEZpeGVkKSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVf
WCkpOworICAgIHZhbHVlcy5pbnNlcnQobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDAsICZv
cGVyYXRpb25zMSkpOworCisgICAgVHJhbnNmb3JtT3BlcmF0aW9ucyBvcGVyYXRpb25zMjsKKyAg
ICBvcGVyYXRpb25zMi5vcGVyYXRpb25zKCkuYXBwZW5kKFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbjo6Y3JlYXRlKExlbmd0aCg0LCBGaXhlZCksIExlbmd0aCgwLCBGaXhlZCksIFRyYW5zZm9y
bU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gpKTsKKyAgICB2YWx1ZXMuaW5zZXJ0KG5ldyBUcmFuc2Zv
cm1BbmltYXRpb25WYWx1ZShkdXJhdGlvbiwgJm9wZXJhdGlvbnMyKSk7CisKKyAgICBSZWZQdHI8
QW5pbWF0aW9uPiBhbmltYXRpb24gPSBBbmltYXRpb246OmNyZWF0ZSgpOworICAgIGFuaW1hdGlv
bi0+c2V0RHVyYXRpb24oZHVyYXRpb24pOworICAgIGFuaW1hdGlvbi0+c2V0RGlyZWN0aW9uKEFu
aW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKTsKKyAgICBhbmltYXRpb24tPnNl
dEl0ZXJhdGlvbkNvdW50KDIpOworCisgICAgSW50U2l6ZSBib3hTaXplOworICAgIGNvbnRyb2xs
ZXItPmFkZEFuaW1hdGlvbih2YWx1ZXMsIGJveFNpemUsIGFuaW1hdGlvbi5nZXQoKSwgMCwgMCwg
MCk7CisKKyAgICBFWFBFQ1RfVFJVRShjb250cm9sbGVyLT5oYXNBY3RpdmVBbmltYXRpb24oKSk7
CisKKyAgICBDQ0FjdGl2ZUFuaW1hdGlvbiogYWN0aXZlQW5pbWF0aW9uID0gY29udHJvbGxlci0+
Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpUcmFuc2Zvcm0pOworICAg
IEVYUEVDVF9UUlVFKGFjdGl2ZUFuaW1hdGlvbik7CisgICAgRVhQRUNUX1RSVUUoYWN0aXZlQW5p
bWF0aW9uLT5hbHRlcm5hdGVzRGlyZWN0aW9uKCkpOworCisgICAgRVhQRUNUX0VRKDIsIGFjdGl2
ZUFuaW1hdGlvbi0+aXRlcmF0aW9ucygpKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRp
b246OlRyYW5zZm9ybSwgYWN0aXZlQW5pbWF0aW9uLT50YXJnZXRQcm9wZXJ0eSgpKTsKKworICAg
IEVYUEVDVF9FUShDQ0FuaW1hdGlvbkN1cnZlOjpUcmFuc2Zvcm0sIGFjdGl2ZUFuaW1hdGlvbi0+
Y3VydmUoKS0+dHlwZSgpKTsKKworICAgIGNvbnN0IENDVHJhbnNmb3JtQW5pbWF0aW9uQ3VydmUq
IGN1cnZlID0gYWN0aXZlQW5pbWF0aW9uLT5jdXJ2ZSgpLT50b1RyYW5zZm9ybUFuaW1hdGlvbkN1
cnZlKCk7CisgICAgRVhQRUNUX1RSVUUoY3VydmUpOworCiAgICAgZXhwZWN0VHJhbnNsYXRlWCgy
LCBjdXJ2ZS0+Z2V0VmFsdWUoMCwgYm94U2l6ZSkpOwogICAgIGV4cGVjdFRyYW5zbGF0ZVgoNCwg
Y3VydmUtPmdldFZhbHVlKGR1cmF0aW9uLCBib3hTaXplKSk7CiB9CiAKK1RFU1QoQ0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXJUZXN0LCBjcmVhdGVSZXZlcnNlZEFsdGVybmF0aW5nQW5pbWF0aW9u
KQoreworICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQgZHVtbXk7CisgICAg
T3duUHRyPENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyPiBjb250cm9sbGVyKENDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpjcmVhdGUoJmR1bW15KSk7CisgICAgY29uc3QgZG91YmxlIGR1cmF0
aW9uID0gMTsKKyAgICBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCB2YWx1ZXMoQW5pbWF0ZWRQ
cm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CisKKyAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJh
dGlvbnMxOworICAgIG9wZXJhdGlvbnMxLm9wZXJhdGlvbnMoKS5hcHBlbmQoVHJhbnNsYXRlVHJh
bnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoTGVuZ3RoKDIsIEZpeGVkKSwgTGVuZ3RoKDAsIEZpeGVk
KSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWCkpOworICAgIHZhbHVlcy5pbnNlcnQo
bmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDAsICZvcGVyYXRpb25zMSkpOworCisgICAgVHJh
bnNmb3JtT3BlcmF0aW9ucyBvcGVyYXRpb25zMjsKKyAgICBvcGVyYXRpb25zMi5vcGVyYXRpb25z
KCkuYXBwZW5kKFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKExlbmd0aCg0LCBG
aXhlZCksIExlbmd0aCgwLCBGaXhlZCksIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gp
KTsKKyAgICB2YWx1ZXMuaW5zZXJ0KG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShkdXJhdGlv
biwgJm9wZXJhdGlvbnMyKSk7CisKKyAgICBSZWZQdHI8QW5pbWF0aW9uPiBhbmltYXRpb24gPSBB
bmltYXRpb246OmNyZWF0ZSgpOworICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24oZHVyYXRpb24p
OworICAgIGFuaW1hdGlvbi0+c2V0RGlyZWN0aW9uKEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CisgICAgYW5pbWF0aW9uLT5zZXRJdGVyYXRpb25Db3VudCgy
KTsKKworICAgIEludFNpemUgYm94U2l6ZTsKKyAgICBjb250cm9sbGVyLT5hZGRBbmltYXRpb24o
dmFsdWVzLCBib3hTaXplLCBhbmltYXRpb24uZ2V0KCksIDAsIDAsIDApOworCisgICAgRVhQRUNU
X1RSVUUoY29udHJvbGxlci0+aGFzQWN0aXZlQW5pbWF0aW9uKCkpOworCisgICAgQ0NBY3RpdmVB
bmltYXRpb24qIGFjdGl2ZUFuaW1hdGlvbiA9IGNvbnRyb2xsZXItPmdldEFjdGl2ZUFuaW1hdGlv
bigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VHJhbnNmb3JtKTsKKyAgICBFWFBFQ1RfVFJVRShhY3Rp
dmVBbmltYXRpb24pOworICAgIEVYUEVDVF9UUlVFKGFjdGl2ZUFuaW1hdGlvbi0+YWx0ZXJuYXRl
c0RpcmVjdGlvbigpKTsKKworICAgIEVYUEVDVF9FUSgyLCBhY3RpdmVBbmltYXRpb24tPml0ZXJh
dGlvbnMoKSk7CisgICAgRVhQRUNUX0VRKENDQWN0aXZlQW5pbWF0aW9uOjpUcmFuc2Zvcm0sIGFj
dGl2ZUFuaW1hdGlvbi0+dGFyZ2V0UHJvcGVydHkoKSk7CisKKyAgICBFWFBFQ1RfRVEoQ0NBbmlt
YXRpb25DdXJ2ZTo6VHJhbnNmb3JtLCBhY3RpdmVBbmltYXRpb24tPmN1cnZlKCktPnR5cGUoKSk7
CisKKyAgICBjb25zdCBDQ1RyYW5zZm9ybUFuaW1hdGlvbkN1cnZlKiBjdXJ2ZSA9IGFjdGl2ZUFu
aW1hdGlvbi0+Y3VydmUoKS0+dG9UcmFuc2Zvcm1BbmltYXRpb25DdXJ2ZSgpOworICAgIEVYUEVD
VF9UUlVFKGN1cnZlKTsKKworICAgIGV4cGVjdFRyYW5zbGF0ZVgoNCwgY3VydmUtPmdldFZhbHVl
KDAsIGJveFNpemUpKTsKKyAgICBleHBlY3RUcmFuc2xhdGVYKDIsIGN1cnZlLT5nZXRWYWx1ZShk
dXJhdGlvbiwgYm94U2l6ZSkpOworfQorCiBURVNUKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
VGVzdCwgc3luY05ld0FuaW1hdGlvbikKIHsKICAgICBGYWtlTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyQ2xpZW50IGR1bW15SW1wbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>